@carto/ps-react-ui 4.20.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 (409) 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 +4 -4
  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/separator.d.ts +1 -1
  230. package/dist/types/widgets-v2/spread/skeleton.d.ts +1 -1
  231. package/dist/types/widgets-v2/spread/spread-ui.d.ts +1 -1
  232. package/dist/types/widgets-v2/spread/spread.d.ts +1 -1
  233. package/dist/types/widgets-v2/state/widget-state.d.ts +1 -1
  234. package/dist/types/widgets-v2/subheader/subheader.d.ts +1 -1
  235. package/dist/types/widgets-v2/table/skeleton.d.ts +1 -1
  236. package/dist/types/widgets-v2/table/table-ui.d.ts +1 -1
  237. package/dist/types/widgets-v2/table/table.d.ts +1 -1
  238. package/dist/types/widgets-v2/timeseries/skeleton.d.ts +1 -1
  239. package/dist/types/widgets-v2/toolbox/toolbox.d.ts +1 -1
  240. package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +2 -2
  241. package/dist/types/widgets-v2/wrapper/widget-content.d.ts +2 -2
  242. package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +1 -1
  243. package/dist/use-widget-selector-VSPhfhNm.js +12 -0
  244. package/dist/{use-widget-selector-DFl2hW0R.js.map → use-widget-selector-VSPhfhNm.js.map} +1 -1
  245. package/dist/utils-DtvTjjMq.js +58 -0
  246. package/dist/utils-DtvTjjMq.js.map +1 -0
  247. package/dist/widget-store-BFPKYm4R.js +187 -0
  248. package/dist/widget-store-BFPKYm4R.js.map +1 -0
  249. package/dist/widgets/actions.js +2 -1317
  250. package/dist/widgets/bar.js +183 -175
  251. package/dist/widgets/bar.js.map +1 -1
  252. package/dist/widgets/category.js +429 -434
  253. package/dist/widgets/category.js.map +1 -1
  254. package/dist/widgets/echart.js +3 -120
  255. package/dist/widgets/error.js +28 -38
  256. package/dist/widgets/error.js.map +1 -1
  257. package/dist/widgets/formula.js +3 -123
  258. package/dist/widgets/histogram.js +183 -202
  259. package/dist/widgets/histogram.js.map +1 -1
  260. package/dist/widgets/loader.js +63 -61
  261. package/dist/widgets/loader.js.map +1 -1
  262. package/dist/widgets/markdown.js +141 -123
  263. package/dist/widgets/markdown.js.map +1 -1
  264. package/dist/widgets/no-data.js +52 -58
  265. package/dist/widgets/no-data.js.map +1 -1
  266. package/dist/widgets/note.js +125 -122
  267. package/dist/widgets/note.js.map +1 -1
  268. package/dist/widgets/pie.js +245 -259
  269. package/dist/widgets/pie.js.map +1 -1
  270. package/dist/widgets/range.js +225 -204
  271. package/dist/widgets/range.js.map +1 -1
  272. package/dist/widgets/scatterplot.js +220 -215
  273. package/dist/widgets/scatterplot.js.map +1 -1
  274. package/dist/widgets/selection-summary.js +39 -38
  275. package/dist/widgets/selection-summary.js.map +1 -1
  276. package/dist/widgets/skeleton-loader.js +22 -23
  277. package/dist/widgets/skeleton-loader.js.map +1 -1
  278. package/dist/widgets/spread.js +150 -156
  279. package/dist/widgets/spread.js.map +1 -1
  280. package/dist/widgets/stores.js +3 -8
  281. package/dist/widgets/subheader.js +49 -50
  282. package/dist/widgets/subheader.js.map +1 -1
  283. package/dist/widgets/table.js +576 -644
  284. package/dist/widgets/table.js.map +1 -1
  285. package/dist/widgets/timeseries.js +175 -170
  286. package/dist/widgets/timeseries.js.map +1 -1
  287. package/dist/widgets/toolbar-actions.js +140 -145
  288. package/dist/widgets/toolbar-actions.js.map +1 -1
  289. package/dist/widgets/utils.js +17 -33
  290. package/dist/widgets/utils.js.map +1 -1
  291. package/dist/widgets/wrapper.js +265 -276
  292. package/dist/widgets/wrapper.js.map +1 -1
  293. package/dist/widgets-v2/actions.js +4 -51
  294. package/dist/widgets-v2/bar.js +253 -307
  295. package/dist/widgets-v2/bar.js.map +1 -1
  296. package/dist/widgets-v2/category.js +2 -98
  297. package/dist/widgets-v2/echart.js +2 -57
  298. package/dist/widgets-v2/formula.js +2 -68
  299. package/dist/widgets-v2/histogram.js +285 -350
  300. package/dist/widgets-v2/histogram.js.map +1 -1
  301. package/dist/widgets-v2/markdown.js +3 -69
  302. package/dist/widgets-v2/pie.js +363 -461
  303. package/dist/widgets-v2/pie.js.map +1 -1
  304. package/dist/widgets-v2/range.js +2 -52
  305. package/dist/widgets-v2/scatterplot.js +316 -391
  306. package/dist/widgets-v2/scatterplot.js.map +1 -1
  307. package/dist/widgets-v2/spread.js +2 -78
  308. package/dist/widgets-v2/stores.js +2 -42
  309. package/dist/widgets-v2/table.js +2 -78
  310. package/dist/widgets-v2/timeseries.js +285 -340
  311. package/dist/widgets-v2/timeseries.js.map +1 -1
  312. package/dist/widgets-v2/utils.js +2 -8
  313. package/dist/widgets-v2.js +955 -951
  314. package/dist/widgets-v2.js.map +1 -1
  315. package/dist/zoom-toggle-CA0ifG23.js +164 -0
  316. package/dist/zoom-toggle-CA0ifG23.js.map +1 -0
  317. package/package.json +4 -4
  318. package/src/hooks/use-widget-ref.ts +1 -0
  319. package/dist/category-Ct2BzADB.js +0 -753
  320. package/dist/category-Ct2BzADB.js.map +0 -1
  321. package/dist/change-column-Fu1DCYQ3.js +0 -1186
  322. package/dist/change-column-Fu1DCYQ3.js.map +0 -1
  323. package/dist/cjs-D4KH3azB.js +0 -85
  324. package/dist/cjs-D4KH3azB.js.map +0 -1
  325. package/dist/components.js.map +0 -1
  326. package/dist/copy-button-DGL1tyli.js +0 -26
  327. package/dist/copy-button-DGL1tyli.js.map +0 -1
  328. package/dist/csv-item-hH_Gt7ur.js +0 -32
  329. package/dist/csv-item-hH_Gt7ur.js.map +0 -1
  330. package/dist/data-zoom-layout-D_FYdnap.js +0 -28
  331. package/dist/data-zoom-layout-D_FYdnap.js.map +0 -1
  332. package/dist/download-config-OKlLLSW_.js +0 -58
  333. package/dist/download-config-OKlLLSW_.js.map +0 -1
  334. package/dist/echart-B10dhEaM.js +0 -262
  335. package/dist/echart-B10dhEaM.js.map +0 -1
  336. package/dist/exports-Cr43OCul.js +0 -51
  337. package/dist/exports-Cr43OCul.js.map +0 -1
  338. package/dist/exports-Cx-f6m6U.js +0 -63
  339. package/dist/exports-Cx-f6m6U.js.map +0 -1
  340. package/dist/formatter-B9Bxn1k7.js +0 -6
  341. package/dist/formatter-B9Bxn1k7.js.map +0 -1
  342. package/dist/formula-DuC0NQLH.js +0 -79
  343. package/dist/formula-DuC0NQLH.js.map +0 -1
  344. package/dist/lasso-tool-YLFRgb-S.js +0 -582
  345. package/dist/lasso-tool-YLFRgb-S.js.map +0 -1
  346. package/dist/legend/stores.js.map +0 -1
  347. package/dist/legend-store-registry-p1tSwJXH.js +0 -472
  348. package/dist/legend-store-registry-p1tSwJXH.js.map +0 -1
  349. package/dist/markdown-DdqANCiN.js +0 -102
  350. package/dist/markdown-DdqANCiN.js.map +0 -1
  351. package/dist/markdown-content-Dk2DSgbf.js +0 -10287
  352. package/dist/markdown-content-Dk2DSgbf.js.map +0 -1
  353. package/dist/option-builders-DPeoyQaM.js +0 -130
  354. package/dist/option-builders-DPeoyQaM.js.map +0 -1
  355. package/dist/options-CthfUJDz.js +0 -46
  356. package/dist/options-CthfUJDz.js.map +0 -1
  357. package/dist/png-item-9dNbB37T.js +0 -57
  358. package/dist/png-item-9dNbB37T.js.map +0 -1
  359. package/dist/range-l4fNHLEg.js +0 -213
  360. package/dist/range-l4fNHLEg.js.map +0 -1
  361. package/dist/resolve-theme-color-BdojIw0K.js +0 -47
  362. package/dist/resolve-theme-color-BdojIw0K.js.map +0 -1
  363. package/dist/row-DZSP99LW.js +0 -34
  364. package/dist/row-DZSP99LW.js.map +0 -1
  365. package/dist/series-DLNHDWs0.js +0 -90
  366. package/dist/series-DLNHDWs0.js.map +0 -1
  367. package/dist/shared-resize-observer-98b1SK1e.js +0 -17
  368. package/dist/shared-resize-observer-98b1SK1e.js.map +0 -1
  369. package/dist/smart-tooltip-DFV6GD8R.js +0 -40
  370. package/dist/smart-tooltip-DFV6GD8R.js.map +0 -1
  371. package/dist/spread-4MYPOntd.js +0 -66
  372. package/dist/spread-4MYPOntd.js.map +0 -1
  373. package/dist/style-DVnT6HC1.js +0 -131
  374. package/dist/style-DVnT6HC1.js.map +0 -1
  375. package/dist/styles-cohnxh9F.js +0 -23
  376. package/dist/styles-cohnxh9F.js.map +0 -1
  377. package/dist/table-CTcLOycx.js +0 -383
  378. package/dist/table-CTcLOycx.js.map +0 -1
  379. package/dist/tooltip-BDnrRKrp.js +0 -25
  380. package/dist/tooltip-BDnrRKrp.js.map +0 -1
  381. package/dist/transforms-Cdx4fkU5.js +0 -106
  382. package/dist/transforms-Cdx4fkU5.js.map +0 -1
  383. package/dist/use-transform-DXPN3nY7.js +0 -110
  384. package/dist/use-transform-DXPN3nY7.js.map +0 -1
  385. package/dist/use-widget-ref-Ddr_SlJJ.js +0 -22
  386. package/dist/use-widget-ref-Ddr_SlJJ.js.map +0 -1
  387. package/dist/use-widget-selector-DFl2hW0R.js +0 -12
  388. package/dist/utils-BOhInag6.js +0 -170
  389. package/dist/utils-BOhInag6.js.map +0 -1
  390. package/dist/widget-context-DTGO0Yta.js +0 -13
  391. package/dist/widget-context-DTGO0Yta.js.map +0 -1
  392. package/dist/widget-store-Bw5zRUGg.js +0 -261
  393. package/dist/widget-store-Bw5zRUGg.js.map +0 -1
  394. package/dist/widget-store-registry-_W4Z4xp-.js +0 -178
  395. package/dist/widget-store-registry-_W4Z4xp-.js.map +0 -1
  396. package/dist/widgets/actions.js.map +0 -1
  397. package/dist/widgets/echart.js.map +0 -1
  398. package/dist/widgets/formula.js.map +0 -1
  399. package/dist/widgets/stores.js.map +0 -1
  400. package/dist/widgets-v2/actions.js.map +0 -1
  401. package/dist/widgets-v2/category.js.map +0 -1
  402. package/dist/widgets-v2/echart.js.map +0 -1
  403. package/dist/widgets-v2/formula.js.map +0 -1
  404. package/dist/widgets-v2/markdown.js.map +0 -1
  405. package/dist/widgets-v2/range.js.map +0 -1
  406. package/dist/widgets-v2/spread.js.map +0 -1
  407. package/dist/widgets-v2/stores.js.map +0 -1
  408. package/dist/widgets-v2/table.js.map +0 -1
  409. package/dist/widgets-v2/utils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-DDt4mOQn.js","names":["SVGProps","DrawPolygonIcon","props","$","_c","t0","Symbol","for","t1","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","SpatialMaskIcon","TextAaIcon","LassoToolsMode","LassoToolsModesMapping","DrawPolygonIcon","DrawSquareIcon","DrawCircleIcon","DrawLassoIcon","SelectToolIcon","LassoToolsComponentProps","RequiredDeep","LASSO_TOOLS_LABELS","NonNullable","action","tooltip","active","inactive","chip","options","mode","title","circle","lasso","polygon","rectangle","edit","layerFilters","noData","description","actions","toggleAll","deleteAll","const","DEFAULT_LASSO_TOOLS_MODES_MAPPING","icon","alpha","SxProps","Theme","styles","container","display","flexDirection","alignItems","justifyContent","overflow","width","gap","spacing","actions","icon","height","borderRadius","options","menu","paddingY","boxShadow","backgroundColor","margin","marginLeft","marginRight","marginBottom","title","paddingX","paddingBottom","icons","color","palette","text","primary","tag","border","borderColor","main","more","chip","overflowX","scrollbarWidth","flexWrap","disabled","opacity","action","disabledOpacity","Record","Chip","PickDeep","LASSO_TOOLS_LABELS","styles","LassoToolsComponentProps","LassoToolsData","Tooltip","LassoToolsUIChip","t0","$","_c","chipProps","value","labels","onChipToggle","onDelete","chipState","visible","chipLabel","tooltip","chip","t1","TooltipProps","t2","Symbol","for","t3","t4","id","t5","t6","ChipsProps","t7","label","t8","ArrowDropDown","LayersOutlined","MoreVertOutlined","Box","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Paper","SvgIcon","ToggleButton","Typography","SxProps","Theme","deepmerge","useMemo","useState","ComponentProps","JSX","MouseEvent","PropsWithChildren","ReactNode","PickDeep","Tooltip","LassoToolsModes","LassoToolsUIChip","LASSO_TOOLS_LABELS","styles","LassoToolsComponentProps","OptionsChildrenProps","EMPTY_VALUES","EMPTY_PAPER_PROPS","NonNullable","LassoToolsUI","t0","$","_c","enabled","values","t1","actionProps","chipProps","labels","modes","modesMapping","modeSelected","PaperProps","t2","onActionToggle","onChipToggle","onDelete","onChangeMode","onAllChipToggle","onAllDelete","onLayerFilters","ChipsSlot","t3","ActionSlot","t4","SecondaryActionsSlot","t5","OptionsSlot","t6","undefined","t7","sx","Chips","Action","SecondaryActions","Options","t8","slotArgs","t9","container","t10","t11","props","t12","t13","t14","LassoToolsUIAction","children","actionState","actionLabel","tooltip","action","TooltipProps","actions","icon","EMPTY_TRIGGER_PROPS","Icon","TriggerProps","MenuProps","IconNode","anchorEl","setAnchorEl","open","Boolean","Symbol","for","event","currentTarget","handleToggle","handleClose","options","menu","onClose","ModeList","data","length","modeTitle","mode","title","OptionsList","Required","Pick","handleClick","e","HTMLLIElement","value","preventDefault","filter","map","label","disabled","icons","SecondaryActionsWrapper","hasVisible","some","_temp","toggleAllLabel","toggleAll","active","inactive","deleteAllLabel","deleteAll","more","anchorOrigin","vertical","horizontal","transformOrigin","visible","ActionsWrapper","Partial","Omit","modeExists","Object","keys","modeSelectedValue","ChipsWrapper","handleDelete","valueId","chip","id","OptionsWrapper","edit","_modes","modesValues","handleChangeMode","layerFilters","Divider","Typography","SvgIcon","ToggleButton","Box","ToggleButtonGroup","Button","useMemo","JSX","MouseEvent","ReactNode","styles","LassoToolsComponentProps","LassoToolsInlineComponentProps","LASSO_TOOLS_LABELS","PickDeep","LassoToolsModes","deepmerge","LassoToolsUIChip","Tooltip","EMPTY_VALUES","EMPTY_BOX_PROPS","NonNullable","LassoToolsInlineUI","t0","$","_c","enabled","values","t1","chipProps","labels","modes","modesMapping","modeSelected","BoxProps","t2","onChipToggle","onDelete","onChangeMode","onAllChipToggle","onAllDelete","undefined","t3","sx","t4","data","_modes","edit","t5","valueId","handleDelete","t6","evt","mode","preventDefault","handleClick","modeExists","mode_0","Object","keys","modeSelectedValue","t7","modesValues","t8","container","t9","options","t10","value","t11","t12","t13","length","disabled","t14","menu","t15","t16","Symbol","for","t17","t18","noData","t19","t20","chip","map","id","t21","actions","t22","t23","ModeList","children","modeTitle","title","OptionsList","filter","Boolean","label","icon","NoData","hasValues","description","Actions","hasVisible","some","_temp","toggleAllLabel","toggleAll","active","inactive","deleteAllLabel","deleteAll","visible","DeleteOutlined","LockOutlined","Box","Divider","IconButton","Paper","Popover","SvgIcon","TextField","SxProps","Theme","useRef","useState","JSX","KeyboardEvent","MouseEvent","ReactNode","Tooltip","SpatialMaskIcon","TextAaIcon","LassoGeometryToolbarUIProps","ICON_SIZE","containerSx","display","flexDirection","alignItems","width","gap","spacing","p","borderRadius","backgroundColor","palette","background","paper","baseButtonSx","toggleButtonSx","active","color","primary","main","text","secondary","action","hover","LassoGeometryToolbarUI","t0","$","_c","type","label","locked","t1","onToggleType","onRename","onToggleLock","onDelete","labels","PaperProps","t2","undefined","t3","sx","paperRef","committedRef","anchorEl","setAnchorEl","barWidth","setBarWidth","draft","setDraft","renaming","Boolean","toggleTypeLabel","toggleType","draw","mask","renameLabel","rename","renameInputLabel","renameInput","lockLabel","lock","unlock","deleteLabel","delete","t4","current","clientWidth","openRename","t5","next","trim","commitRename","t6","Symbol","for","cancelRename","t7","event","key","preventDefault","handleRenameKeyDown","t8","t9","t10","t11","t12","fontSize","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","vertical","horizontal","t26","minWidth","t27","t28","e","target","value","t29","_temp","t30","t31","node","focus","ToolbarButton","icon","pressed","disabled","onClick","Close","Search","Box","Button","Checkbox","Dialog","DialogActions","DialogContent","DialogTitle","Divider","IconButton","InputBase","List","ListItemButton","ListItemIcon","ListItemText","Typography","SxProps","Theme","useId","useState","JSX","LassoLayerFiltersUIProps","titleSx","display","alignItems","justifyContent","gap","p","groupSx","borderRadius","spacing","overflow","backgroundColor","palette","background","default","searchSx","height","px","color","text","secondary","rowSx","py","checkboxSlotSx","minWidth","mr","LassoLayerFiltersUI","t0","$","_c","open","onClose","layers","onApply","labels","DialogProps","labelId","draft","setDraft","_temp","search","setSearch","wasOpen","setWasOpen","Set","filter","_temp2","map","_temp3","title","description","allSelectedLabel","allSelected","empty","t1","length","every","l_1","has","l","id","allChecked","t2","t3","l_2","some","someChecked","Symbol","for","prev","next","delete","add","toggle","t4","_temp4","toggleAll","t5","l_4","_temp5","handleApply","normalized","t6","trim","toLowerCase","l_6","label","includes","filtered","t7","t8","t9","t10","t11","pt","pb","t12","mb","t13","t14","fontSize","t15","t16","t17","t18","t19","e","target","value","t20","t21","t22","maxHeight","overflowY","my","t23","variant","t24","layer","noWrap","t25","t26","t27","t28","t29","cancel","t30","t31","apply","t32","t33","t34","l_5","l_3","l_0","checked","Alert","AlertTitle","Snackbar","LassoMessageUIProps","LassoMessageUI","t0","$","_c","message","onDismiss","AlertProps","SnackbarProps","t1","_","reason","t2","Symbol","for","position","transform","t3","severity","t4","title","t5","action","content","t6","SVGProps","RulerIcon","props","$","_c","t0","Symbol","for","t1","BufferIcon","AreaIcon","t2","RequiredDeep","MeasurementMode","MeasurementModesMapping","MeasurementUnitsMapping","MeasurementToolsComponentProps","RulerIcon","BufferIcon","AreaIcon","DEFAULT_MEASUREMENT_TOOLS_LABELS","NonNullable","action","tooltip","active","inactive","chip","options","mode","title","distance","buffer","area","units","modal","subtitle","apply","metric","kilometer","meter","centimeter","milimeter","imperial","mile","feet","yard","const","DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING","short","DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING","icon","alpha","SxProps","Theme","styles","container","display","flexDirection","alignItems","justifyContent","gap","spacing","overflow","width","actions","icon","height","borderRadius","options","menu","marginTop","title","paddingX","paddingY","icons","color","palette","text","primary","tag","border","borderColor","main","backgroundColor","modal","toggle","boxShadow","padding","marginBottom","typography","fontWeight","margin","marginLeft","subtitle","secondary","optionsGroup","content","minWidth","chip","marginRight","disabled","opacity","action","disabledOpacity","Record","ArrowDropDown","Close","Box","Button","Dialog","DialogActions","DialogContent","DialogTitle","Divider","FormControl","FormControlLabel","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Paper","Radio","RadioGroup","SvgIcon","ToggleButton","ToggleButtonGroup","Typography","useMemo","useState","FormEvent","JSX","MouseEvent","PropsWithChildren","styles","deepmerge","MeasurementToolsComponentProps","PickDeep","ValueOf","DEFAULT_MEASUREMENT_TOOLS_LABELS","DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING","DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING","MeasurementSystem","MeasurementUnit","MeasurementUnitImperialDistance","MeasurementUnitMetricDistance","MeasurementUnitOption","MeasureUnitMapping","Tooltip","EMPTY_PAPER_PROPS","NonNullable","MeasurementToolsUI","t0","$","_c","enabled","actionProps","labels","t1","modes","modesMapping","t2","unitsMapping","t3","modeSelected","PaperProps","t4","units","unitSelected","onActionToggle","onChangeMode","onChangeUnit","undefined","t5","sx","t6","data","handleToggle","t7","data_0","modeExists","t8","Object","keys","mode","modeSelectedValue","option","t9","length","slice","options","t10","t11","t12","unit","value","map","_units","container","t13","action","t14","icon","t15","t16","t17","t18","t19","MeasurementToolsUIAction","children","actionState","actionLabel","tooltip","TooltipProps","actions","Options","anchorEl","setAnchorEl","unitModal","setUnitModal","values","modesAvailable","unitsAvailable","hasValues","open","Boolean","Symbol","for","event","currentTarget","handleClose","e","preventDefault","handleClick","handleClickUnit","handleCloseModal","handleApplyModal","modeTitle","title","unitTitle","hasDivider","find","unitSelectedValue","menu","mode_0","label","e_0","icons","tag","short","UnitsModal","onClose","onSubmit","system","setSystem","filter","_","handleToggleChange","_labels","modal","labelsBySystem","modalUnitTitle","modalUnitSubtitle","subtitle","modalUnitApply","apply","_unitSelectedValue","component","formData","FormData","get","metric","imperial","toggle","unit_0","optionsGroup","content","tooltipLabelsDefault","enabled","disabled","ariaLabel","Paper","IconButton","MyLocationOutlined","LocationDisabledOutlined","GeolocationControlProps","useCallback","useEffect","useEffectEvent","useReducer","useRef","JSX","ariaLabel","tooltipLabelsDefault","Tooltip","GeolocationControls","t0","$","_c","disabled","labels","PaperProps","TooltipProps","watch","onChange","onError","watchRef","hasGeolocation","navigator","allowed","dispatch","_temp","t1","error","notifyError","t2","permissions","query","name","then","result","state","onchange","catch","error_0","current","geolocation","clearWatch","t3","Symbol","for","t4","position","coords","success","t5","error_1","error_2","t6","watchPosition","getCurrentPosition","handleClick","tooltipLabels","tooltip","t7","t8","t9","t10","t11","t12","t13","_","action","SxProps","Theme","styles","zoom","position","height","spacing","aspectRatio","display","alignItems","justifyContent","paper","backgroundColor","palette","background","width","overflow","boxShadow","shadows","borderRadius","button","circularProgress","Record","IconButton","Divider","Box","Typography","CircularProgress","Paper","AddOutlined","RemoveOutlined","CropFreeOutlined","styles","ZoomControlProps","useCallback","JSX","ZoomControlsUI","t0","$","_c","zoom","disabled","direction","t1","reverse","t2","isLoading","maxZoom","t3","minZoom","t4","PaperProps","ResetViewProps","t5","showZoom","t6","onChange","onReset","undefined","t7","Icon","t8","newZoom","Math","min","increaseZoom","t9","newZoom_0","max","decreaseZoom","displayZoom","floor","dividerOrientation","flexDirection","t10","paper","t11","t12","Symbol","for","t13","t14","t15","circularProgress","t16","t17","t18","Box","Grid","Skeleton","ListDataSkeletonProps","length","ListDataSkeleton","t0","$","_c","t1","undefined","t2","Array","fill","map","_temp4","t3","_","idx","isOdd","height","_temp","marginTop","_temp2","marginBottom","_temp3","width","spacing","spacing_1","spacing_0","num","Alert","Box","Typography","AlertProps","TypographyProps","NoDataAlertProps","title","body","severity","NoDataAlert","t0","$","_c","t1","t2","undefined","t3","t4","t5","AlertBodyProps","color","children","React","ReactNode","AlertBody","Symbol","for","fontWeight","useState","useSkeleton","isLoading","$","_c","t0","phase","setPhase","SxProps","Theme","ellipsed","overflow","textOverflow","whiteSpace","styles","label","value","textAlign","clickable","cursor","backgroundColor","palette","action","hover","showDivider","borderBottom","divider","selected","disabled","opacity","pointerEvents","Record","useState","useMemo","JSX","Box","Button","Grid","ListItem","List","ListItemText","ListDataSkeleton","NoDataAlert","useSkeleton","ListDataProps","styles","SmartTooltip","DEFAULT_LABELS","showMore","showLess","const","EMPTY_DATA","ListDataUI","t0","$","_c","data","t1","isLoading","t2","maxItems","t3","labels","t4","showDivider","t5","selectedItemId","tooltipProps","onExpand","onItemClick","undefined","showAll","setShowAll","showSkeleton","t6","slice","items","t7","handleToggle","t8","length","Symbol","for","t9","item","id","tooltipTitle","t10","ref","clickable","selected","disabled","label","value","map","t11","SxProps","Theme","BASEMAPS_WIDTH","styles","root","width","overflow","toggle","padding","spacing","img","aspectRatio","borderRadius","header","display","alignItems","justifyContent","paddingInlineStart","position","top","zIndex","background","palette","paper","groupWrapper","content","paddingInline","paddingBlock","group","flexDirection","flexWrap","gap","item","container","border","cursor","height","maxWidth","borderColor","action","active","primary","main","selected","color","Record","BasemapsUILabels","DEFAULT_BASEMAPS_LABELS","toggle","title","header","actions","close","Close","Box","Typography","IconButton","styles","BasemapsUILabels","Tooltip","Header","t0","$","_c","isMobile","t1","labels","onChangeCollapsed","undefined","t2","title","actions","close","t3","header","Typography","ReactNode","styles","GroupWrapper","t0","$","_c","title","children","collapsed","t1","undefined","t2","groupWrapper","content","t3","Box","Typography","styles","BasemapOption","Group","t0","$","_c","values","selected","onChange","t1","t2","option","isSelected","id","item","container","label","icon","map","group","Drawer","Popover","PopoverActions","PopoverOrigin","PopoverProps","useCallback","useRef","useSyncExternalStore","CSSProperties","ReactNode","ResponsiveDrawerPosition","ResponsiveDrawerPlacement","resolveOrigins","position","placement","anchorOrigin","transformOrigin","isBottom","startsWith","isRight","endsWith","overlay","vertical","horizontal","ResponsiveDrawer","t0","$","_c","ref","children","collapsed","isMobile","t1","sx","slotProps","container","onChangeCollapsed","modal","t2","t3","undefined","popoverActions","observerRef","t4","Symbol","for","el","current","disconnect","ResizeObserver","observer","updatePosition","observe","observeContent","measurableContainer","t5","onStoreChange","_temp","observer_0","subscribe","t6","clientHeight","getSnapshot","containerHeight","t7","t8","t9","objectSlotProps","root","Record","paper","style","maxHeight","overflow","display","flexDirection","paperMaxHeightStyle","flex","minHeight","width","contentWrapperStyle","t10","pointerEvents","mergedSlotProps","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","IconButton","Paper","useMediaQuery","useTheme","BasemapsUIProps","useEffect","useRef","useState","JSX","styles","deepmerge","DEFAULT_BASEMAPS_LABELS","Header","GroupWrapper","Group","ResponsiveDrawer","Tooltip","EMPTY_OPTIONS","BasemapsUI","t0","$","_c","options","t1","labels","_labels","position","t2","selected","t3","onChange","TooltipProps","undefined","toggleRef","setToggleRef","isOpen","setIsOpen","timeoutRef","timer","setTimer","theme","t4","breakpoints","down","isMobile","t5","t6","t7","t8","option","id","find","optionSelected","Object","groupBy","_temp","groups","t9","keys","groupCount","length","t10","Symbol","for","handleClose","t11","t12","current","clearTimeout","setTimeout","t13","handleMouseOver","t14","handleMouseLeave","t15","e","currentTarget","HTMLButtonElement","t16","icon","t17","label","t18","toggle","t19","title","t20","endsWith","startsWith","t21","paper","sx","root","transform","onMouseOver","onMouseLeave","t22","t23","t24","t25","header","t26","entries","t27","map","t28","group","values","e_0","t29","option_0"],"sources":["../src/components/lasso-tool/icons.tsx","../src/components/lasso-tool/const.tsx","../src/components/lasso-tool/styles.ts","../src/components/lasso-tool/chip.tsx","../src/components/lasso-tool/lasso-tool.tsx","../src/components/lasso-tool/lasso-tool-inline.tsx","../src/components/lasso-tool/geometry-toolbar.tsx","../src/components/lasso-tool/layer-filters.tsx","../src/components/lasso-tool/message.tsx","../src/components/measurement-tools/icons.tsx","../src/components/measurement-tools/const.tsx","../src/components/measurement-tools/styles.ts","../src/components/measurement-tools/measurement-tools.tsx","../src/components/geolocation-controls/const.ts","../src/components/geolocation-controls/geolocation-controls.tsx","../src/components/zoom-controls/styles.ts","../src/components/zoom-controls/zoom-controls.tsx","../src/components/list-data/list-data-skeleton.tsx","../src/components/no-data-alert/no-data-alert.tsx","../src/hooks/use-skeleton.ts","../src/components/list-data/styles.ts","../src/components/list-data/list-data.tsx","../src/components/basemaps/styles.ts","../src/components/basemaps/const.ts","../src/components/basemaps/header.tsx","../src/components/basemaps/group-wrapper.tsx","../src/components/basemaps/group.tsx","../src/components/responsive-drawer/responsive-drawer.tsx","../src/components/basemaps/basemaps.tsx"],"sourcesContent":["import type { SVGProps } from 'react'\n\nexport function DrawPolygonIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.996 2.996 0 0 0 0 2H6.829a2.995 2.995 0 0 0 0-2h10.342Zm-2.463-5.707 3.998 4a3.013 3.013 0 0 0-1.414 1.414l-4-3.999a3.014 3.014 0 0 0 1.31-1.214l.106-.201ZM2.998 6.829a2.995 2.995 0 0 0 2.002 0v10.342a2.993 2.993 0 0 0-2.002 0V6.83ZM12 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm1.84-3.919c.464.483 1.09.81 1.79.896l-1.47 2.94a2.992 2.992 0 0 0-1.79-.894l1.47-2.942ZM16 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm9.171.998a2.994 2.994 0 0 0 0 2.002H6.829a2.995 2.995 0 0 0 0-2.002h6.342Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawSquareIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M4 18a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm16 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm-2.829 1a2.993 2.993 0 0 0-.17.974l-.001.052.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2h10.342ZM2.998 6.828a2.995 2.995 0 0 0 2.002 0V17.17a2.993 2.993 0 0 0-2.002 0V6.83Zm16.001 0a2.995 2.995 0 0 0 2 0V17.17a2.993 2.993 0 0 0-2 0V6.829ZM20 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM4 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4Zm13.171.998a2.991 2.991 0 0 0-.17.976L17 4.026l.007.183a3 3 0 0 0 .164.79H6.829a2.995 2.995 0 0 0 0-2H17.17Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawCircleIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2Zm0 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 6a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function DrawLassoIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M12 3c4.935 0 9 3.736 9 9l-.002.343-.012.668c-.012.438-.033.86-.062 1.266l-.05.597C20.498 18.767 19.267 21 17 21c-1.192 0-1.971-.341-2.988-1.122l-.472-.375c-.401-.319-.64-.473-.888-.566a4.938 4.938 0 0 0-.415-.13l-.34-.085-.398-.086-.456-.086-.66-.111-1.708-.273a9.112 9.112 0 0 1-.952-.206C5.46 17.301 3 14.954 3 12.015c0-1.508.485-2.995 1.436-4.458.355.585.906 1.04 1.562 1.272C5.328 9.916 5 10.977 5 12.015c0 1.889 1.78 3.588 3.282 4.025l.085.023.345.076.517.092 1.619.257.583.1.518.098.237.05.433.103c.272.07.512.143.73.224.434.161.783.373 1.235.718l.457.362c.806.646 1.24.857 1.959.857.893 0 1.63-1.518 1.895-4.45l.045-.585c.013-.2.024-.407.033-.62l.02-.655c.005-.224.007-.454.007-.69 0-4.12-3.133-7-7-7a1 1 0 1 1 0-2ZM7 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\nexport function SelectToolIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='m10.083 19.394.057.113a1 1 0 0 0 1.72.007l2.869-4.786 4.786-2.87a1 1 0 0 0-.121-1.777l-14-6c-.83-.356-1.669.483-1.313 1.313l6.002 14ZM6.905 6.904l9.903 4.244-3.322 1.995-.102.069a1 1 0 0 0-.242.274l-1.992 3.321-4.245-9.903Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\n/** Spatial-mask glyph (circle with horizontal \"globe\" stripes) for the lasso\n * geometry toolbar's mask/draw toggle. From Figma node 5960:14347. */\nexport function SpatialMaskIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 15 15'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M15 7.5C15 11.6421 11.6421 15 7.5 15C3.35786 15 0 11.6421 0 7.5C0 3.35786 3.35786 0 7.5 0C11.6421 0 15 3.35786 15 7.5ZM13.5 7.5C13.5 10.8137 10.8137 13.5 7.5 13.5C6.44531 13.5 5.45418 13.2279 4.59299 12.75H6.85607C7.29596 12.3013 7.67991 11.7975 7.99663 11.25H2.81597C2.62675 11.014 2.45501 10.7633 2.30269 10.5H8.37593C8.58402 10.0237 8.74407 9.52171 8.84997 9H1.68903C1.62614 8.75568 1.57826 8.50533 1.54642 8.25H8.96297C8.98746 8.00332 9 7.75312 9 7.5C9 7.24688 8.98746 6.99668 8.96297 6.75H1.54642C1.57826 6.49467 1.62614 6.24432 1.68903 6H8.84997C8.74407 5.47829 8.58402 4.97625 8.37593 4.5H2.30269C2.45501 4.2367 2.62675 3.98604 2.81597 3.75H7.99663C7.67991 3.20248 7.29596 2.69872 6.85607 2.25H4.59299C5.45418 1.77213 6.44531 1.5 7.5 1.5C10.8137 1.5 13.5 4.18629 13.5 7.5Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n\n/** \"Aa\" glyph for the lasso geometry toolbar's rename action. From Figma node\n * 5960:14347. */\nexport function TextAaIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 15.877 10.6875'\n {...props}\n >\n <path\n fillRule='evenodd'\n clipRule='evenodd'\n d='M5.4 0L9.18 10.5H7.56L6.72 8.085H2.475L1.62 10.5H0L3.795 0H5.4ZM4.605 1.95C4.515 2.31 4.395 2.705 4.245 3.135L2.955 6.705H6.24L4.965 3.135C4.785 2.645 4.665 2.25 4.605 1.95ZM12.9247 2.5875C13.3083 2.5875 13.6514 2.6203 13.9542 2.68591C14.257 2.75152 14.5649 2.87769 14.8778 3.06442C15.1907 3.25114 15.4355 3.55143 15.6121 3.96526C15.7887 4.37909 15.877 4.88881 15.877 5.49442V10.5058H14.363V9.83965C13.818 10.4049 13.1114 10.6875 12.2434 10.6875C11.4258 10.6875 10.7622 10.4629 10.2525 10.0138C9.74275 9.5646 9.48789 8.92619 9.48789 8.09853C9.48789 7.26077 9.77555 6.62488 10.3509 6.19086C10.9262 5.75685 11.6277 5.53984 12.4554 5.53984C13.2124 5.53984 13.8483 5.69124 14.363 5.99404V5.57012C14.363 4.99479 14.2318 4.586 13.9694 4.34376C13.707 4.10152 13.2881 3.9804 12.7127 3.9804C11.8649 3.9804 11.1281 4.21255 10.5023 4.67685L10.0329 3.38993C10.8101 2.85498 11.7741 2.5875 12.9247 2.5875ZM12.7127 6.90245C12.2081 6.90245 11.7968 7.00086 11.4788 7.19769C11.1609 7.39451 11.0019 7.69479 11.0019 8.09853C11.0019 8.47199 11.1331 8.7647 11.3955 8.97666C11.658 9.18862 12.0365 9.2946 12.5311 9.2946C13.2578 9.2946 13.8684 9.01703 14.363 8.46189V7.28096C13.8886 7.02862 13.3385 6.90245 12.7127 6.90245Z'\n fill='currentColor'\n />\n </svg>\n )\n}\n","import type { LassoToolsMode, LassoToolsModesMapping } from '../types'\nimport {\n DrawPolygonIcon,\n DrawSquareIcon,\n DrawCircleIcon,\n DrawLassoIcon,\n SelectToolIcon,\n} from './icons'\nimport type { LassoToolsComponentProps } from './types'\nimport type { RequiredDeep } from 'type-fest'\n\nexport const LASSO_TOOLS_LABELS: NonNullable<\n RequiredDeep<LassoToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to draw your spatial filter',\n inactive: 'Click on the map to draw your spatial filter',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide drawing',\n inactive: 'Show drawing',\n },\n },\n options: {\n mode: {\n title: 'Choose a drawing tool',\n options: {\n circle: 'Circle',\n lasso: 'Lasso tool',\n polygon: 'Polygon',\n rectangle: 'Rectangle',\n edit: 'Edit feature',\n },\n },\n layerFilters: 'Layer filters',\n },\n noData: {\n title: 'Spatial filter not applied',\n description:\n 'Select a drawing or editing tool and click on the map to define your spatial filter',\n },\n actions: {\n toggleAll: {\n active: 'Hide all',\n inactive: 'Show all',\n },\n deleteAll: 'Remove all',\n },\n} as const\n\nexport const DEFAULT_LASSO_TOOLS_MODES_MAPPING: LassoToolsModesMapping<LassoToolsMode> =\n {\n polygon: {\n icon: <DrawPolygonIcon />,\n },\n rectangle: {\n icon: <DrawSquareIcon />,\n },\n circle: {\n icon: <DrawCircleIcon />,\n },\n lasso: {\n icon: <DrawLassoIcon />,\n },\n edit: {\n icon: <SelectToolIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n width: 'fit-content',\n\n '&.inline': {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n paddingY: ({ spacing }) => spacing(1),\n '&.inline': {\n boxShadow: 'none',\n backgroundColor: 'transparent',\n borderRadius: ({ spacing }) => spacing(0.5),\n\n '& .MuiDivider-root': {\n height: ({ spacing }) => spacing(4),\n\n '&.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(4),\n },\n '&.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(4),\n margin: ({ spacing }) => `${spacing(0.5, 0, 1)} !important`,\n borderRadius: '0 !important',\n },\n },\n\n '& .MuiToggleButton-sizeSmall': {\n margin: 0,\n\n '&.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedHorizontal': {\n height: ({ spacing }) => spacing(3),\n },\n '& + .MuiDivider-root.MuiToggleButtonGroup-groupedVertical': {\n height: 'auto',\n width: ({ spacing }) => spacing(3),\n },\n },\n\n '.MuiToggleButtonGroup-grouped:not(.MuiDivider-root)': {\n margin: 0,\n\n '&:first-of-type': {\n marginLeft: 0,\n },\n '&:not(:last-of-type)': {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n },\n '&.MuiToggleButtonGroup-horizontal:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0.5),\n },\n },\n '&.MuiToggleButtonGroup-vertical:not(.MuiDivider-root)': {\n '.MuiToggleButtonGroup-grouped': {\n margin: ({ spacing }) => spacing(0, 0, 0.5),\n\n '&:not(:last-of-type)': {\n marginRight: 0,\n },\n '&:last-of-type': {\n marginBottom: 0,\n },\n },\n },\n },\n },\n icon: {\n borderRadius: 0,\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingBottom: ({ spacing }) => spacing(0.5),\n\n '&.inline': {\n paddingX: 0,\n paddingBottom: 0,\n },\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n more: {\n width: ({ spacing }) => spacing(4),\n },\n },\n chip: {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n overflowX: 'auto',\n scrollbarWidth: 'none',\n paddingX: ({ spacing }) => spacing(1),\n\n '&.inline': {\n overflowX: 'visible',\n flexWrap: 'wrap',\n },\n },\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Chip } from '@mui/material'\nimport type { PickDeep } from 'type-fest'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, LassoToolsData } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function LassoToolsUIChip({\n chipProps,\n value,\n labels,\n onChipToggle,\n onDelete,\n}: Pick<LassoToolsComponentProps, 'chipProps' | 'onDelete' | 'onChipToggle'> & {\n value: LassoToolsData\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'chip'>['chip']\n}) {\n const chipState = value.visible ? 'active' : 'inactive'\n const chipLabel =\n labels?.tooltip?.[chipState] ?? LASSO_TOOLS_LABELS.chip.tooltip[chipState]\n\n return (\n <Tooltip title={chipLabel} placement='bottom' {...chipProps?.TooltipProps}>\n <Chip\n sx={{\n ...styles.chip.chip,\n }}\n color={value.visible ? 'secondary' : 'default'}\n size='small'\n onDelete={() => onDelete(value.id)}\n label={value.label}\n onClick={() => onChipToggle(value.id, !value.visible)}\n {...chipProps?.ChipsProps}\n />\n </Tooltip>\n )\n}\n","import {\n ArrowDropDown,\n LayersOutlined,\n MoreVertOutlined,\n} from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n SvgIcon,\n ToggleButton,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport deepmerge from 'deepmerge'\nimport {\n useMemo,\n useState,\n type ComponentProps,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n type ReactNode,\n} from 'react'\nimport type { PickDeep } from 'type-fest'\nimport { Tooltip } from '../tooltip/tooltip'\nimport type { LassoToolsModes } from '../types'\nimport { LassoToolsUIChip } from './chip'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport { styles } from './styles'\nimport type { LassoToolsComponentProps, OptionsChildrenProps } from './types'\n\nconst EMPTY_VALUES: LassoToolsComponentProps['values'] = []\nconst EMPTY_PAPER_PROPS: NonNullable<LassoToolsComponentProps['PaperProps']> =\n {}\n\n/**\n * Provides a comprehensive floating interface for spatial selection and drawing operations on maps, supporting polygon, rectangle, circle, freehand lasso, and edit modes.\n *\n * @remarks\n * Supports customizable slots for action, options, chips, and secondary actions via compound component pattern (e.g., `LassoToolsUI.Action`, `LassoToolsUI.Chips`).\n *\n * @example\n * ```tsx\n * <LassoToolsUI\n * enabled={enabled}\n * values={spatialFilters}\n * modes={modes}\n * modesMapping={modesMapping}\n * modeSelected={modeSelected}\n * onActionToggle={setEnabled}\n * onChangeMode={setModeSelected}\n * onChipToggle={handleChipToggle}\n * onDelete={handleDelete}\n * />\n * ```\n */\nexport function LassoToolsUI({\n enabled,\n values = EMPTY_VALUES,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = EMPTY_PAPER_PROPS,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n onLayerFilters,\n ChipsSlot = LassoToolsUI.Chips,\n ActionSlot = LassoToolsUI.Action,\n SecondaryActionsSlot = LassoToolsUI.SecondaryActions,\n OptionsSlot = LassoToolsUI.Options,\n}: LassoToolsComponentProps): JSX.Element {\n const slotArgs = {\n enabled,\n values,\n actionProps,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n PaperProps,\n onActionToggle,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n onLayerFilters,\n }\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n {!!ActionSlot && <ActionSlot {...slotArgs} />}\n {!!OptionsSlot && (\n <Options>\n {(props) => {\n return <OptionsSlot {...slotArgs} {...props} />\n }}\n </Options>\n )}\n {!!ChipsSlot && <ChipsSlot {...slotArgs} />}\n {!!SecondaryActionsSlot && <SecondaryActionsSlot {...slotArgs} />}\n </Paper>\n )\n}\n\nfunction LassoToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n LassoToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'action'>['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n LASSO_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nconst EMPTY_TRIGGER_PROPS: { Icon?: ReactNode; sx?: SxProps<Theme> } = {}\n\nfunction Options({\n TriggerProps = EMPTY_TRIGGER_PROPS,\n MenuProps,\n children,\n}: {\n TriggerProps?: {\n Icon?: ReactNode\n sx?: SxProps<Theme>\n }\n MenuProps?: Partial<ComponentProps<typeof Menu>>\n children: (props: OptionsChildrenProps) => JSX.Element\n}) {\n const { Icon, sx } = TriggerProps\n const IconNode = Icon ?? <ArrowDropDown />\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n return (\n <>\n <IconButton\n sx={{\n ...styles.options.icon,\n ...sx,\n }}\n onClick={handleToggle}\n >\n {IconNode}\n </IconButton>\n <Menu\n id='lasso-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'lasso-button',\n sx: styles.options.menu,\n }}\n {...MenuProps}\n >\n <div>\n {children({\n onClose: handleClose,\n })}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n modeSelected,\n labels,\n onChangeMode,\n onClose,\n}: Required<Pick<LassoToolsComponentProps, 'modeSelected' | 'onChangeMode'>> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n onClose: OptionsChildrenProps['onClose']\n}) {\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n value: NonNullable<(typeof data)[number]>['value'],\n ) => {\n e.preventDefault()\n onChangeMode?.(value)\n onClose()\n }\n\n return data\n .filter((mode): mode is NonNullable<typeof mode> => Boolean(mode))\n .map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n disabled={!!mode.disabled}\n onClick={(e) => handleClick(e, mode.value)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })\n}\n\nfunction SecondaryActionsWrapper({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n if (!values?.length || values.length <= 1) {\n return null\n }\n\n const hasVisible = values?.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.actions?.toggleAll?.active ??\n LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.actions?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.actions?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <>\n <Divider orientation='vertical' flexItem />\n <Options\n TriggerProps={{ Icon: <MoreVertOutlined />, sx: styles.options.more }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'right',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'right',\n },\n }}\n >\n {(props) => {\n return (\n <>\n <MenuItem\n color='inherit'\n onClick={() => {\n onAllChipToggle?.()\n props.onClose()\n }}\n >\n {toggleAllLabel}\n </MenuItem>\n <Divider />\n <MenuItem\n color='error'\n onClick={() => {\n onAllDelete?.()\n props.onClose()\n }}\n >\n <Typography variant='body2' color='error'>\n {deleteAllLabel}\n </Typography>\n </MenuItem>\n </>\n )\n }}\n </Options>\n </>\n )\n}\n\nLassoToolsUI.Action = function ActionsWrapper({\n modes,\n modesMapping,\n modeSelected,\n actionProps,\n enabled,\n labels,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const handleToggle: LassoToolsComponentProps['onActionToggle'] = (data) => {\n return onActionToggle?.(data)\n }\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = data[mode]\n\n return (\n <LassoToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled ?? false}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </LassoToolsUIAction>\n )\n}\n\nLassoToolsUI.Chips = function ChipsWrapper({\n values,\n labels,\n chipProps,\n onDelete,\n onChipToggle,\n onActionToggle,\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n>) {\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n onActionToggle?.(false)\n return onDelete?.(valueId)\n }\n\n return (\n !!values?.length && (\n <Box sx={styles.chip.container}>\n {values?.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={(id, data) => onChipToggle?.(id, data)}\n />\n ))}\n </Box>\n )\n )\n}\n\nLassoToolsUI.SecondaryActions = SecondaryActionsWrapper\n\nLassoToolsUI.Options = function OptionsWrapper({\n values,\n modes,\n modesMapping,\n modeSelected,\n labels,\n onChangeMode,\n ...props\n}: Partial<\n Omit<\n LassoToolsComponentProps,\n 'ChipsSlot' | 'ActionsSlot' | 'OptionsSlot' | 'SecondaryActionsSlot'\n >\n> &\n OptionsChildrenProps) {\n const data = useMemo(() => {\n return deepmerge(modes ?? {}, modesMapping ?? {})\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const modeExists = modeSelected ? modeSelected in (modes ?? {}) : false\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modesValues = Object.values(_modes)\n\n const handleChangeMode: LassoToolsComponentProps['onChangeMode'] = (data) => {\n return onChangeMode?.(data)\n }\n\n return (\n <>\n <ModeList data={modesValues} labels={labels?.options}>\n <OptionsList\n {...props}\n labels={labels?.options}\n data={modesValues}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </ModeList>\n {!!edit && (\n <>\n <Divider />\n <OptionsList\n {...props}\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values?.length,\n },\n ]}\n modeSelected={mode}\n onChangeMode={handleChangeMode}\n />\n </>\n )}\n {!!props.onLayerFilters && (\n <>\n <Divider />\n <MenuItem\n onClick={() => {\n props.onLayerFilters?.()\n props.onClose()\n }}\n >\n <ListItemIcon sx={styles.options.icons}>\n <LayersOutlined />\n </ListItemIcon>\n <ListItemText>\n {labels?.options?.layerFilters ?? 'Layer filters'}\n </ListItemText>\n </MenuItem>\n </>\n )}\n </>\n )\n}\n","import {\n Divider,\n Typography,\n SvgIcon,\n ToggleButton,\n Box,\n ToggleButtonGroup,\n Button,\n} from '@mui/material'\nimport { useMemo, type JSX, type MouseEvent, type ReactNode } from 'react'\nimport { styles } from './styles'\nimport type {\n LassoToolsComponentProps,\n LassoToolsInlineComponentProps,\n} from './types'\nimport { LASSO_TOOLS_LABELS } from './const'\nimport type { PickDeep } from 'type-fest'\nimport type { LassoToolsModes } from '../types'\nimport deepmerge from 'deepmerge'\nimport { LassoToolsUIChip } from './chip'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_VALUES: LassoToolsInlineComponentProps['values'] = []\nconst EMPTY_BOX_PROPS: NonNullable<LassoToolsInlineComponentProps['BoxProps']> =\n {}\n\n/**\n * Provides an inline layout variant of the lasso tools interface with toggle button groups for mode selection and inline chip management for spatial filters.\n *\n * @example\n * ```tsx\n * <LassoToolsInlineUI\n * enabled={enabled}\n * values={spatialFilters}\n * modes={modes}\n * modesMapping={modesMapping}\n * modeSelected={modeSelected}\n * onChangeMode={setModeSelected}\n * onChipToggle={handleChipToggle}\n * onDelete={handleDelete}\n * />\n * ```\n */\nexport function LassoToolsInlineUI({\n enabled,\n values = EMPTY_VALUES,\n chipProps,\n labels,\n modes,\n modesMapping,\n modeSelected,\n BoxProps: { sx, ...BoxProps } = EMPTY_BOX_PROPS,\n onChipToggle,\n onDelete,\n onChangeMode,\n onAllChipToggle,\n onAllDelete,\n}: LassoToolsInlineComponentProps): JSX.Element {\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const { edit, ..._modes } = data\n\n const handleDelete: LassoToolsComponentProps['onDelete'] = (valueId) => {\n return onDelete(valueId)\n }\n\n const handleClick = (\n evt: MouseEvent<HTMLElement>,\n mode: NonNullable<(typeof modes)[keyof typeof modes]>['value'],\n ) => {\n evt.preventDefault()\n onChangeMode?.(mode)\n }\n\n const modeExists = (modeSelected ?? '') in modes\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof data\n\n const modeSelectedValue = enabled ? data[mode] : null\n\n const modesValues = Object.values(_modes)\n\n return (\n <Box\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...BoxProps}\n className='inline'\n >\n <ModeList data={modesValues} labels={labels?.options}>\n <ToggleButtonGroup\n value={modeSelectedValue?.value}\n exclusive\n className='inline'\n sx={styles.options.menu}\n onChange={handleClick}\n >\n <OptionsList labels={labels?.options} data={modesValues} />\n {!!edit && (\n <>\n <Divider orientation='vertical' />\n <OptionsList\n labels={labels?.options}\n data={[\n {\n ...edit,\n disabled: !values.length,\n },\n ]}\n />\n </>\n )}\n </ToggleButtonGroup>\n </ModeList>\n <Divider flexItem />\n <NoData hasValues={!!values.length} labels={labels?.noData} />\n {!!values.length && (\n <Box sx={styles.chip.container} className='inline'>\n {values.map((value) => (\n <LassoToolsUIChip\n key={value.id}\n value={value}\n labels={labels?.chip}\n chipProps={chipProps}\n onDelete={handleDelete}\n onChipToggle={onChipToggle}\n />\n ))}\n </Box>\n )}\n <Actions\n values={values}\n labels={labels?.actions}\n onAllChipToggle={onAllChipToggle}\n onAllDelete={onAllDelete}\n />\n </Box>\n )\n}\n\nfunction ModeList({\n data,\n labels,\n children,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: LassoToolsComponentProps['modes'][keyof LassoToolsModes][]\n children: ReactNode\n}) {\n if (data.length <= 1) {\n return null\n }\n\n const modeTitle = labels?.mode?.title ?? LASSO_TOOLS_LABELS.options.mode.title\n\n return (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n className='inline'\n >\n {modeTitle}\n </Typography>\n {children}\n </>\n )\n}\n\nfunction OptionsList({\n data,\n labels,\n}: {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'options'>['options']\n data: (LassoToolsComponentProps['modes'] &\n LassoToolsComponentProps['modesMapping'])[keyof LassoToolsModes][]\n}) {\n return data\n .filter((mode): mode is NonNullable<typeof mode> => Boolean(mode))\n .map((mode) => {\n const options =\n labels?.mode?.options ?? LASSO_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <Tooltip key={mode.value} title={label} placement='bottom'>\n <ToggleButton\n disabled={!!mode.disabled}\n value={mode.value}\n aria-label={mode.value}\n >\n <SvgIcon>{mode.icon}</SvgIcon>\n </ToggleButton>\n </Tooltip>\n )\n })\n}\n\nfunction NoData({\n hasValues,\n labels,\n}: {\n hasValues: boolean\n labels: PickDeep<LassoToolsComponentProps['labels'], 'noData'>['noData']\n}) {\n if (hasValues) {\n return null\n }\n\n const title = labels?.title ?? LASSO_TOOLS_LABELS.noData.title\n const description =\n labels?.description ?? LASSO_TOOLS_LABELS.noData.description\n\n return (\n <>\n <Typography variant='body1' color='textSecondary'>\n {title}\n </Typography>\n <Typography variant='body2' color='textSecondary'>\n {description}\n </Typography>\n </>\n )\n}\n\nfunction Actions({\n values,\n labels,\n onAllChipToggle,\n onAllDelete,\n}: Pick<\n LassoToolsComponentProps,\n 'values' | 'onAllChipToggle' | 'onAllDelete'\n> & {\n labels?: PickDeep<LassoToolsComponentProps['labels'], 'actions'>['actions']\n}) {\n if (values.length <= 1) {\n return null\n }\n\n const hasVisible = values.some((value) => value.visible)\n\n const toggleAllLabel = hasVisible\n ? (labels?.toggleAll?.active ?? LASSO_TOOLS_LABELS.actions.toggleAll.active)\n : (labels?.toggleAll?.inactive ??\n LASSO_TOOLS_LABELS.actions.toggleAll.inactive)\n\n const deleteAllLabel =\n labels?.deleteAll ?? LASSO_TOOLS_LABELS.actions.deleteAll\n\n return (\n <Box>\n <Button color='inherit' onClick={() => onAllChipToggle()}>\n {toggleAllLabel}\n </Button>\n <Button color='error' onClick={() => onAllDelete()}>\n {deleteAllLabel}\n </Button>\n </Box>\n )\n}\n","import { DeleteOutlined, LockOutlined } from '@mui/icons-material'\nimport {\n Box,\n Divider,\n IconButton,\n Paper,\n Popover,\n SvgIcon,\n TextField,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport {\n useRef,\n useState,\n type JSX,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport { Tooltip } from '../tooltip/tooltip'\nimport { SpatialMaskIcon, TextAaIcon } from './icons'\nimport type { LassoGeometryToolbarUIProps } from './types'\n\nconst ICON_SIZE = 18\n\nconst containerSx = {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n width: 'fit-content',\n gap: ({ spacing }) => spacing(0.5),\n p: ({ spacing }) => spacing(0.5),\n borderRadius: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.background.paper,\n} satisfies SxProps<Theme>\n\nconst baseButtonSx = {\n p: ({ spacing }) => spacing(0.375),\n borderRadius: ({ spacing }) => spacing(0.5),\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: ({ spacing }) => spacing(0.5),\n },\n} satisfies SxProps<Theme>\n\n/** Active = Figma toggle \"selected\" treatment (primary tint); inactive = gray. */\nconst toggleButtonSx = (active: boolean): SxProps<Theme> => ({\n ...baseButtonSx,\n color: ({ palette }) =>\n active ? palette.primary.main : palette.text.secondary,\n backgroundColor: active ? 'rgba(3, 111, 226, 0.08)' : 'transparent',\n '&:hover': {\n backgroundColor: ({ palette }) =>\n active ? 'rgba(3, 111, 226, 0.12)' : palette.action.hover,\n },\n})\n\n/**\n * Contextual toolbar for a single lasso geometry: toggle mask/draw, rename,\n * lock, and delete. Purely presentational — position it over the map and wire\n * the callbacks to the lasso store (see `LassoTools.GeometryToolbar` in\n * `@carto/ps-react-maps`).\n *\n * Each button keeps a fixed icon and toggles an active highlight: the mask\n * button is active when `type === 'mask'`, the lock button is active when\n * `locked`. When `locked`, every action but the lock toggle is disabled.\n */\nexport function LassoGeometryToolbarUI({\n type,\n label,\n locked = false,\n onToggleType,\n onRename,\n onToggleLock,\n onDelete,\n labels,\n PaperProps: { sx, ...PaperProps } = {},\n}: LassoGeometryToolbarUIProps): JSX.Element {\n const paperRef = useRef<HTMLDivElement>(null)\n // Guards `onRename` to once per rename session — the Popover `onClose` and the\n // TextField `onBlur` can both fire for a single close (and Enter blurs on unmount).\n const committedRef = useRef(false)\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const [barWidth, setBarWidth] = useState<number>()\n const [draft, setDraft] = useState(label)\n\n const renaming = Boolean(anchorEl)\n\n const toggleTypeLabel =\n type === 'mask'\n ? (labels?.toggleType?.draw ?? 'Switch to drawing')\n : (labels?.toggleType?.mask ?? 'Switch to mask')\n const renameLabel = labels?.rename ?? 'Rename'\n const renameInputLabel = labels?.renameInput ?? renameLabel\n const lockLabel = locked\n ? (labels?.lock?.unlock ?? 'Unlock')\n : (labels?.lock?.lock ?? 'Lock')\n const deleteLabel = labels?.delete ?? 'Delete'\n\n const openRename = () => {\n committedRef.current = false\n setDraft(label)\n setBarWidth(paperRef.current?.clientWidth)\n setAnchorEl(paperRef.current)\n }\n\n const commitRename = () => {\n if (!committedRef.current) {\n committedRef.current = true\n const next = draft.trim()\n if (next && next !== label) {\n onRename(next)\n }\n }\n setAnchorEl(null)\n }\n\n // Escape discards the edit: mark the session done so the unmount blur / onClose\n // don't fire `onRename`.\n const cancelRename = () => {\n committedRef.current = true\n setAnchorEl(null)\n }\n\n const handleRenameKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault()\n commitRename()\n }\n if (event.key === 'Escape') {\n event.preventDefault()\n cancelRename()\n }\n }\n\n return (\n <Paper\n ref={paperRef}\n elevation={6}\n sx={{ ...containerSx, ...sx }}\n {...PaperProps}\n >\n <ToolbarButton\n label={toggleTypeLabel}\n active={type === 'mask'}\n pressed={type === 'mask'}\n disabled={locked}\n onClick={() => onToggleType(type === 'mask' ? 'draw' : 'mask')}\n icon={\n <SvgIcon\n component={SpatialMaskIcon}\n inheritViewBox\n sx={{ fontSize: ICON_SIZE }}\n />\n }\n />\n\n <Divider orientation='vertical' flexItem />\n\n <ToolbarButton\n label={renameLabel}\n active={renaming}\n disabled={locked}\n onClick={openRename}\n icon={\n <SvgIcon\n component={TextAaIcon}\n inheritViewBox\n sx={{ fontSize: ICON_SIZE }}\n />\n }\n />\n\n <Divider orientation='vertical' flexItem />\n\n <ToolbarButton\n label={lockLabel}\n active={locked}\n pressed={locked}\n onClick={() => onToggleLock(!locked)}\n icon={<LockOutlined sx={{ fontSize: ICON_SIZE }} />}\n />\n\n <Divider orientation='vertical' flexItem />\n\n <ToolbarButton\n label={deleteLabel}\n disabled={locked}\n onClick={onDelete}\n icon={<DeleteOutlined sx={{ fontSize: ICON_SIZE }} />}\n color='error'\n />\n\n <Popover\n open={renaming}\n anchorEl={anchorEl}\n onClose={commitRename}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n transformOrigin={{ vertical: 'top', horizontal: 'left' }}\n slotProps={{\n paper: {\n sx: { width: barWidth, minWidth: 180 },\n },\n }}\n >\n <Box sx={{ p: 1 }}>\n <TextField\n inputRef={(node: HTMLInputElement | null) => node?.focus()}\n fullWidth\n label={renameInputLabel}\n size='small'\n variant='outlined'\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={handleRenameKeyDown}\n onBlur={commitRename}\n />\n </Box>\n </Popover>\n </Paper>\n )\n}\n\nfunction ToolbarButton({\n label,\n icon,\n active = false,\n pressed,\n disabled = false,\n color,\n onClick,\n}: {\n label: string\n icon: ReactNode\n active?: boolean\n /** When set, exposes `aria-pressed` so the button reads as a toggle. */\n pressed?: boolean\n disabled?: boolean\n color?: 'error'\n onClick: (event: MouseEvent<HTMLButtonElement>) => void\n}): ReactNode {\n return (\n <Tooltip title={label} placement='top'>\n <span>\n <IconButton\n aria-label={label}\n aria-pressed={pressed}\n disabled={disabled}\n color={color}\n onClick={onClick}\n sx={color ? baseButtonSx : toggleButtonSx(active)}\n >\n {icon}\n </IconButton>\n </span>\n </Tooltip>\n )\n}\n","import { Close, Search } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n IconButton,\n InputBase,\n List,\n ListItemButton,\n ListItemIcon,\n ListItemText,\n Typography,\n type SxProps,\n type Theme,\n} from '@mui/material'\nimport { useId, useState, type JSX } from 'react'\nimport type { LassoLayerFiltersUIProps } from './types'\n\nconst titleSx = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 1,\n p: 2,\n} satisfies SxProps<Theme>\n\n// One rounded group on the grey \"default\" background, holding the search row,\n// a divider, and the scrollable list (Figma node 5960-14780).\nconst groupSx = {\n borderRadius: ({ spacing }) => spacing(0.5),\n overflow: 'hidden',\n backgroundColor: ({ palette }) => palette.background.default,\n} satisfies SxProps<Theme>\n\nconst searchSx = {\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n height: 32,\n px: 1.5,\n color: ({ palette }) => palette.text.secondary,\n} satisfies SxProps<Theme>\n\nconst rowSx = {\n px: 2,\n py: 0.5,\n} satisfies SxProps<Theme>\n\nconst checkboxSlotSx = {\n minWidth: 0,\n mr: 1,\n} satisfies SxProps<Theme>\n\n/**\n * \"Layer filters\" dialog: choose which map layers the lasso mask clips. The\n * selection is a draft committed on Apply (Cancel/close discards it). Wire it\n * to the lasso store via `LassoTools.LayerFilters` in `@carto/ps-react-maps`,\n * and open it from the drawing-tool menu's \"Layer filters\" item\n * (`LassoToolsUI` `onLayerFilters`).\n */\nexport function LassoLayerFiltersUI({\n open,\n onClose,\n layers,\n onApply,\n labels,\n DialogProps,\n}: LassoLayerFiltersUIProps): JSX.Element {\n const labelId = useId()\n const [draft, setDraft] = useState<Set<string>>(() => new Set())\n const [search, setSearch] = useState('')\n\n // Reset the draft from the committed selection when the dialog opens, by\n // adjusting state during render (the React-recommended pattern — no effect,\n // and later `layers` changes don't discard in-progress edits).\n const [wasOpen, setWasOpen] = useState(false)\n if (open !== wasOpen) {\n setWasOpen(open)\n if (open) {\n setDraft(new Set(layers.filter((l) => l.checked).map((l) => l.id)))\n setSearch('')\n }\n }\n\n const title = labels?.title ?? 'Layer Filters'\n const description =\n labels?.description ??\n 'Select the layers you want to filter with this polygon'\n const allSelectedLabel = labels?.allSelected ?? 'All selected'\n const empty = labels?.empty ?? 'No layers to filter'\n\n const allChecked = layers.length > 0 && layers.every((l) => draft.has(l.id))\n const someChecked = layers.some((l) => draft.has(l.id))\n\n const toggle = (id: string) =>\n setDraft((prev) => {\n const next = new Set(prev)\n if (next.has(id)) next.delete(id)\n else next.add(id)\n return next\n })\n\n const toggleAll = () =>\n setDraft(allChecked ? new Set() : new Set(layers.map((l) => l.id)))\n\n const handleApply = () => {\n // Emit ids in `layers` order (stable, diff-friendly), not Set-insertion order.\n onApply(layers.filter((l) => draft.has(l.id)).map((l) => l.id))\n onClose()\n }\n\n const normalized = search.trim().toLowerCase()\n const filtered = normalized\n ? layers.filter((l) => l.label.toLowerCase().includes(normalized))\n : layers\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n maxWidth='xs'\n fullWidth\n {...DialogProps}\n >\n <DialogTitle component='div' sx={titleSx}>\n <Typography variant='subtitle1' fontWeight={500}>\n {title}\n </Typography>\n <IconButton aria-label='close' size='small' onClick={onClose}>\n <Close fontSize='small' />\n </IconButton>\n </DialogTitle>\n\n <DialogContent sx={{ pt: 1, px: 2, pb: 3 }}>\n <Typography variant='body2' color='text.secondary' sx={{ mb: 2 }}>\n {description}\n </Typography>\n\n <Box sx={groupSx}>\n <Box sx={searchSx}>\n <Search sx={{ fontSize: 18 }} />\n <InputBase\n fullWidth\n placeholder={labels?.search ?? 'Search layers'}\n inputProps={{ 'aria-label': labels?.search ?? 'Search layers' }}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n sx={{ fontSize: 13, color: 'text.primary' }}\n />\n </Box>\n <Divider />\n <List\n component='div'\n role='list'\n disablePadding\n sx={{\n maxHeight: 240,\n overflowY: 'auto',\n // MUI gives dividers inside a List an 8px vertical margin; the\n // \"All selected\" separator should sit flush like the rows.\n '& .MuiDivider-root': { my: 0 },\n }}\n >\n {/* \"All selected\" master row only makes sense over the full\n list — hide it while a search is narrowing the results. */}\n {!normalized && (\n <>\n <ListItemButton dense sx={rowSx} onClick={toggleAll}>\n <ListItemIcon sx={checkboxSlotSx}>\n <Checkbox\n edge='start'\n tabIndex={-1}\n disableRipple\n sx={{ p: 0.5 }}\n checked={allChecked}\n indeterminate={!allChecked && someChecked}\n inputProps={{ 'aria-labelledby': `${labelId}-all` }}\n />\n </ListItemIcon>\n <ListItemText\n id={`${labelId}-all`}\n primary={allSelectedLabel}\n primaryTypographyProps={{ variant: 'body2' }}\n />\n </ListItemButton>\n <Divider />\n </>\n )}\n {filtered.length === 0 ? (\n <Typography variant='body2' color='text.secondary' sx={{ p: 2 }}>\n {empty}\n </Typography>\n ) : (\n filtered.map((layer) => (\n <ListItemButton\n key={layer.id}\n dense\n sx={rowSx}\n onClick={() => toggle(layer.id)}\n >\n <ListItemIcon sx={checkboxSlotSx}>\n <Checkbox\n edge='start'\n tabIndex={-1}\n disableRipple\n sx={{ p: 0.5 }}\n checked={draft.has(layer.id)}\n inputProps={{\n 'aria-labelledby': `${labelId}-${layer.id}`,\n }}\n />\n </ListItemIcon>\n <ListItemText\n id={`${labelId}-${layer.id}`}\n primary={layer.label}\n primaryTypographyProps={{\n variant: 'body2',\n noWrap: true,\n title: layer.label,\n }}\n />\n </ListItemButton>\n ))\n )}\n </List>\n </Box>\n </DialogContent>\n\n <DialogActions sx={{ p: 2 }}>\n <Button onClick={onClose}>{labels?.cancel ?? 'Cancel'}</Button>\n <Button variant='contained' onClick={handleApply}>\n {labels?.apply ?? 'Apply'}\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import { Alert, AlertTitle, Snackbar } from '@mui/material'\nimport type { LassoMessageUIProps } from './types'\n\n/**\n * Presentational counterpart of `LassoTools.Message` (`@carto/ps-react-maps`),\n * positioned by that render-props component. Auto-hides after 5 seconds via\n * MUI `Snackbar` (calls `onDismiss`, which removes the message from the store).\n */\nexport function LassoMessageUI({\n message,\n onDismiss,\n AlertProps,\n SnackbarProps,\n}: LassoMessageUIProps) {\n return (\n <Snackbar\n open\n autoHideDuration={5000}\n // 'clickaway' is ignored so map interactions don't dismiss the message.\n onClose={(_, reason) => reason !== 'clickaway' && onDismiss()}\n // Stay in flow — the maps-side `LassoTools.Message` owns positioning.\n sx={{ position: 'static', transform: 'none' }}\n {...SnackbarProps}\n >\n <Alert\n severity={message.severity ?? 'info'}\n action={message.action}\n onClose={onDismiss}\n {...AlertProps}\n >\n <AlertTitle>{message.title}</AlertTitle>\n {message.content}\n </Alert>\n </Snackbar>\n )\n}\n","import type { SVGProps } from 'react'\n\nexport function RulerIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n fill='currentColor'\n {...props}\n >\n <path\n fill='currentColor'\n d='M3 13.5c-.413 0-.766-.147-1.06-.44A1.445 1.445 0 0 1 1.5 12V6c0-.412.147-.766.44-1.06.294-.293.647-.44 1.06-.44h12c.412 0 .766.147 1.06.44.293.294.44.647.44 1.06v6c0 .412-.147.766-.44 1.06-.294.293-.647.44-1.06.44H3ZM3 12h12V6h-2.25v3h-1.5V6h-1.5v3h-1.5V6h-1.5v3h-1.5V6H3v6Z'\n />\n </svg>\n )\n}\n\nexport function BufferIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n fill='none'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 18 18'\n {...props}\n >\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M9 1.5a7.5 7.5 0 1 1 0 15 7.5 7.5 0 0 1 0-15ZM9 3a6 6 0 1 0 0 12A6 6 0 0 0 9 3Zm0 4.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n\nexport function AreaIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18' {...props}>\n <path\n fill='currentColor'\n fillRule='evenodd'\n d='M4.5 13.5v-9h9v9h-9Zm.75-8.25h7.5v7.5h-7.5v-7.5Z'\n clipRule='evenodd'\n />\n <path\n fill='#2C3032'\n fillRule='evenodd'\n d='M1.5 3A1.5 1.5 0 0 1 3 1.5h12A1.5 1.5 0 0 1 16.5 3v12a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 15V3ZM3 3h12v12H3V3Z'\n clipRule='evenodd'\n />\n </svg>\n )\n}\n","import type { RequiredDeep } from 'type-fest'\nimport type {\n MeasurementMode,\n MeasurementModesMapping,\n MeasurementUnitsMapping,\n} from '../types'\nimport type { MeasurementToolsComponentProps } from './types'\nimport { RulerIcon, BufferIcon, AreaIcon } from './icons'\n\nexport const DEFAULT_MEASUREMENT_TOOLS_LABELS: NonNullable<\n RequiredDeep<MeasurementToolsComponentProps['labels']>\n> = {\n action: {\n tooltip: {\n active: 'Click on the map to start measuring',\n inactive: 'Click on the map to start measuring',\n },\n },\n chip: {\n tooltip: {\n active: 'Hide measure',\n inactive: 'Show measure',\n },\n },\n options: {\n mode: {\n title: 'Choose a measuring tool',\n options: {\n distance: 'Measure distance',\n buffer: 'Buffer distance',\n area: 'Area',\n },\n },\n units: {\n title: 'Unit of measurement',\n modal: {\n title: 'Map Measurement Unit',\n subtitle: 'Select the unit of measurement for your measurements',\n apply: 'Save',\n options: {\n metric: {\n title: 'Meters and Kilometers',\n options: {\n 'm-km': 'Auto',\n kilometer: 'Kilometers',\n meter: 'Meter',\n centimeter: 'Centimeter',\n milimeter: 'Milimeter',\n },\n },\n imperial: {\n title: 'Feet and Miles',\n options: {\n 'ft-mi': 'Auto',\n mile: 'Mile',\n feet: 'Feet',\n yard: 'Yard',\n },\n },\n },\n },\n },\n },\n} as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING: MeasurementUnitsMapping =\n {\n 'm-km': {\n short: 'm-km',\n },\n kilometer: {\n short: 'km',\n },\n meter: {\n short: 'm',\n },\n centimeter: {\n short: 'cm',\n },\n milimeter: {\n short: 'mm',\n },\n 'ft-mi': {\n short: 'ft-mi',\n },\n mile: {\n short: 'mi',\n },\n yard: {\n short: 'yd',\n },\n feet: {\n short: 'ft',\n },\n } as const\n\nexport const DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING: MeasurementModesMapping<MeasurementMode> =\n {\n distance: {\n icon: <RulerIcon />,\n },\n buffer: {\n icon: <BufferIcon />,\n },\n area: {\n icon: <AreaIcon />,\n },\n } as const\n","import { alpha, type SxProps, type Theme } from '@mui/material'\n\nexport const styles = {\n container: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n overflow: 'hidden',\n width: 'fit-content',\n },\n actions: {\n icon: {\n width: ({ spacing }) => spacing(4),\n height: ({ spacing }) => spacing(4),\n borderRadius: 0,\n '.MuiTouchRipple-ripple .MuiTouchRipple-child': {\n borderRadius: 0,\n },\n },\n },\n options: {\n menu: {\n marginTop: ({ spacing }) => spacing(1),\n },\n icon: {\n width: ({ spacing }) => spacing(3),\n },\n title: {\n paddingX: ({ spacing }) => spacing(2),\n paddingY: ({ spacing }) => spacing(0.5),\n },\n icons: {\n color: ({ palette }) => palette.text.primary,\n },\n tag: {\n borderRadius: ({ spacing }) => spacing(0.25),\n border: '1px solid',\n borderColor: ({ palette }) => palette.primary.main,\n paddingX: ({ spacing }) => spacing(0.5),\n color: ({ palette }) => palette.primary.main,\n backgroundColor: ({ palette }) => alpha(palette.primary.main, 0.08),\n },\n modal: {\n toggle: {\n boxShadow: 'none',\n backgroundColor: '#F8F9F9',\n padding: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(2),\n marginBottom: ({ spacing }) => spacing(1),\n '.MuiToggleButtonGroup-grouped': {\n typography: 'caption',\n fontWeight: 500,\n margin: 0,\n '&:first-of-type:not(.MuiDivider-root)': {\n marginLeft: 0,\n },\n },\n },\n subtitle: {\n typography: 'body2',\n color: ({ palette }) => palette.text.secondary,\n },\n optionsGroup: {\n marginLeft: ({ spacing }) => spacing(1),\n typography: 'body2',\n },\n title: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: ({ spacing }) => spacing(2),\n },\n content: {\n paddingX: ({ spacing }) => spacing(2),\n minWidth: ({ spacing }) => spacing(50),\n },\n actions: {\n paddingX: ({ spacing }) => spacing(2),\n },\n },\n },\n chip: {\n chip: {\n marginRight: ({ spacing }) => spacing(0.5),\n },\n disabled: {\n opacity: ({ palette }) => palette.action.disabledOpacity,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { ArrowDropDown, Close } from '@mui/icons-material'\nimport {\n Box,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Divider,\n FormControl,\n FormControlLabel,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Paper,\n Radio,\n RadioGroup,\n SvgIcon,\n ToggleButton,\n ToggleButtonGroup,\n Typography,\n} from '@mui/material'\nimport {\n useMemo,\n useState,\n type FormEvent,\n type JSX,\n type MouseEvent,\n type PropsWithChildren,\n} from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport type { MeasurementToolsComponentProps } from './types'\nimport type { PickDeep, ValueOf } from 'type-fest'\nimport {\n DEFAULT_MEASUREMENT_TOOLS_LABELS,\n DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n} from './const'\nimport type {\n MeasurementSystem,\n MeasurementUnit,\n MeasurementUnitImperialDistance,\n MeasurementUnitMetricDistance,\n MeasurementUnitOption,\n MeasureUnitMapping,\n} from '../types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_PAPER_PROPS: NonNullable<\n MeasurementToolsComponentProps['PaperProps']\n> = {}\n\n/**\n * Provides a measurement interface for calculating distances, areas, and buffers on maps with support for metric and imperial unit systems and real-time unit conversion.\n *\n * @example\n * ```tsx\n * <MeasurementToolsUI\n * enabled={enabled}\n * value={measurementValue}\n * modes={DEFAULT_MEASUREMENT_TOOLS_MODES}\n * units={DEFAULT_MEASUREMENT_TOOLS_UNITS}\n * modesMapping={DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING}\n * unitsMapping={DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING}\n * modeSelected={mode}\n * unitSelected={unit}\n * onActionToggle={setEnabled}\n * onChangeMode={setMode}\n * onChangeUnit={setUnit}\n * />\n * ```\n */\nexport function MeasurementToolsUI({\n enabled,\n actionProps,\n labels = DEFAULT_MEASUREMENT_TOOLS_LABELS,\n modes,\n modesMapping = DEFAULT_MEASUREMENT_TOOLS_MODES_MAPPING,\n unitsMapping = DEFAULT_MEASUREMENT_TOOLS_UNITS_MAPPING,\n modeSelected,\n PaperProps: { sx, ...PaperProps } = EMPTY_PAPER_PROPS,\n units,\n unitSelected,\n onActionToggle,\n onChangeMode,\n onChangeUnit,\n}: MeasurementToolsComponentProps): JSX.Element {\n const handleToggle: MeasurementToolsComponentProps['onActionToggle'] = (\n data,\n ) => {\n return onActionToggle(!!data)\n }\n\n const data = useMemo(() => {\n return deepmerge(modes, modesMapping)\n }, [modes, modesMapping])\n\n const modeExists = (modeSelected ?? '') in data\n\n const mode = (\n modeExists ? modeSelected : Object.keys(data)[0]\n ) as keyof typeof modes\n\n const modeSelectedValue = data[mode]\n\n const _units = useMemo(() => {\n const option = units[mode]\n const options =\n Object.keys(units).length >= 1 ? units : { [mode]: option.slice(0, 1) }\n return options[mode].map((unit) => {\n return {\n ...unit,\n ...unitsMapping[unit.value],\n }\n })\n }, [mode, units, unitsMapping])\n\n return (\n <Paper\n sx={{\n ...styles.container,\n ...sx,\n }}\n {...PaperProps}\n >\n <Box>\n <MeasurementToolsUIAction\n actionProps={actionProps}\n labels={labels?.action}\n enabled={enabled}\n onActionToggle={handleToggle}\n >\n {modeSelectedValue?.icon}\n </MeasurementToolsUIAction>\n <Options\n labels={labels?.options}\n modes={data}\n modeSelected={mode}\n units={_units}\n unitSelected={unitSelected}\n onChangeMode={onChangeMode}\n onChangeUnit={onChangeUnit}\n />\n </Box>\n </Paper>\n )\n}\n\nfunction MeasurementToolsUIAction({\n actionProps,\n labels,\n enabled,\n children,\n onActionToggle,\n}: PropsWithChildren<\n Pick<\n MeasurementToolsComponentProps,\n 'actionProps' | 'enabled' | 'onActionToggle'\n > & {\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'action'\n >['action']\n }\n>) {\n const actionState = enabled ? 'active' : 'inactive'\n const actionLabel =\n labels?.tooltip?.[actionState] ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.action.tooltip[actionState]\n\n return (\n <Tooltip\n title={actionLabel}\n placement='right'\n {...actionProps?.TooltipProps}\n >\n <ToggleButton\n value='toggle'\n sx={styles.actions.icon}\n onClick={() => onActionToggle(!enabled)}\n aria-label={actionLabel}\n selected={enabled}\n >\n {children}\n </ToggleButton>\n </Tooltip>\n )\n}\n\nfunction Options({\n modes,\n modeSelected,\n units,\n unitSelected,\n labels,\n onChangeMode,\n onChangeUnit,\n}: Required<\n Pick<\n MeasurementToolsComponentProps,\n 'modeSelected' | 'onChangeMode' | 'onChangeUnit'\n >\n> & {\n modes: MeasurementToolsComponentProps['modes'] &\n MeasurementToolsComponentProps['modesMapping']\n units: (MeasurementUnitOption<MeasurementUnit> & MeasureUnitMapping)[]\n unitSelected?: MeasurementToolsComponentProps['unitSelected']\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n}) {\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null)\n const [unitModal, setUnitModal] = useState(false)\n\n const modesAvailable = Object.values(modes)\n const unitsAvailable = Object.values(units)\n\n const hasValues = modesAvailable.length > 1 || unitsAvailable.length > 1\n\n if (!hasValues) {\n return null\n }\n\n const open = Boolean(anchorEl)\n\n const handleToggle = (event: MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget)\n }\n\n const handleClose = () => {\n setAnchorEl(null)\n }\n\n const handleClick = (\n e: MouseEvent<HTMLLIElement>,\n mode: ValueOf<Required<typeof modes>>,\n ) => {\n e.preventDefault()\n onChangeMode(mode.value)\n handleClose()\n }\n\n const handleClickUnit = () => {\n setUnitModal(true)\n }\n\n const handleCloseModal = () => {\n setUnitModal(false)\n }\n\n const handleApplyModal = (data: string) => {\n handleCloseModal()\n onChangeUnit(data)\n }\n\n const modeTitle =\n labels?.mode?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.title\n\n const unitTitle =\n labels?.units?.title ?? DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.title\n\n const hasDivider = modesAvailable.length > 1 && unitsAvailable.length > 1\n\n const unitSelectedValue = (units.find(\n (unit) => unit.value === unitSelected,\n ) ?? units[0])!\n\n return (\n <>\n <IconButton sx={styles.options.icon} onClick={handleToggle}>\n <ArrowDropDown />\n </IconButton>\n <Menu\n id='measurement-menu'\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n MenuListProps={{\n 'aria-labelledby': 'basic-button',\n sx: styles.options.menu,\n }}\n >\n <div>\n {modesAvailable.length > 1 && (\n <>\n <Typography\n variant='subtitle2'\n color='text.secondary'\n sx={styles.options.title}\n >\n {modeTitle}\n </Typography>\n {modesAvailable.map((mode) => {\n const options =\n labels?.mode?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.mode.options\n const label = options[mode.value]\n\n return (\n <MenuItem\n key={mode.value}\n onClick={(e) => handleClick(e, mode)}\n selected={mode.value === modeSelected}\n >\n <ListItemIcon sx={styles.options.icons}>\n <SvgIcon>{mode.icon}</SvgIcon>\n </ListItemIcon>\n <ListItemText>{label}</ListItemText>\n </MenuItem>\n )\n })}\n </>\n )}\n {hasDivider && <Divider />}\n {unitsAvailable.length > 1 && (\n <>\n <MenuItem onClick={handleClickUnit}>\n <ListItemText>{unitTitle}</ListItemText>\n <Typography\n variant='caption'\n fontWeight={500}\n sx={styles.options.tag}\n >\n {unitSelectedValue.short}\n </Typography>\n </MenuItem>\n <UnitsModal\n open={unitModal}\n labels={labels}\n units={units}\n unitSelectedValue={unitSelectedValue}\n onClose={handleCloseModal}\n onSubmit={handleApplyModal}\n />\n </>\n )}\n </div>\n </Menu>\n </>\n )\n}\n\nfunction UnitsModal({\n open,\n labels,\n units,\n unitSelectedValue,\n onClose,\n onSubmit,\n}: {\n open: boolean\n labels?: PickDeep<\n MeasurementToolsComponentProps['labels'],\n 'options'\n >['options']\n units: MeasurementUnitOption<MeasurementUnit>[]\n unitSelectedValue: MeasurementUnitOption<MeasurementUnit>\n onClose: () => void\n onSubmit: (data: string) => void\n}) {\n const [system, setSystem] = useState<MeasurementSystem>('metric')\n\n const _units = useMemo(() => {\n return units.filter((unit) => unit.system === system)\n }, [system, units])\n\n const handleToggleChange = (\n _: MouseEvent<HTMLElement>,\n value: MeasurementSystem,\n ) => {\n setSystem(value)\n }\n\n const _labels =\n labels?.units?.modal?.options ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.options\n\n const labelsBySystem = _labels[system].options\n\n const modalUnitTitle =\n labels?.units?.modal?.title ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.title\n const modalUnitSubtitle =\n labels?.units?.modal?.subtitle ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.subtitle\n const modalUnitApply =\n labels?.units?.modal?.apply ??\n DEFAULT_MEASUREMENT_TOOLS_LABELS.options.units.modal.apply\n\n const _unitSelectedValue =\n unitSelectedValue.system === system ? unitSelectedValue : _units[0]\n\n return (\n <Dialog\n open={open}\n component={Box}\n onClose={onClose}\n maxWidth='xs'\n PaperProps={{\n component: 'form',\n onSubmit: (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n const formData = new FormData(e.currentTarget)\n onSubmit(formData.get('unit-value') as string)\n },\n }}\n >\n <DialogTitle sx={styles.options.modal.title}>\n {modalUnitTitle}\n <IconButton onClick={onClose}>\n <Close />\n </IconButton>\n </DialogTitle>\n <DialogContent sx={styles.options.modal.content}>\n <Typography sx={styles.options.modal.subtitle}>\n {modalUnitSubtitle}\n </Typography>\n <ToggleButtonGroup\n color='primary'\n value={system}\n exclusive={true}\n fullWidth={true}\n onChange={handleToggleChange}\n aria-label='system'\n sx={styles.options.modal.toggle}\n >\n <ToggleButton value='metric'>{_labels.metric.title}</ToggleButton>\n <ToggleButton value='imperial'>{_labels.imperial.title}</ToggleButton>\n </ToggleButtonGroup>\n <FormControl key={_unitSelectedValue?.value}>\n <RadioGroup\n aria-labelledby='unit-value'\n defaultValue={_unitSelectedValue?.value}\n name='unit-value'\n sx={styles.options.modal.optionsGroup}\n >\n {_units.map((unit) => {\n const label =\n labelsBySystem[\n unit.value as MeasurementUnitMetricDistance &\n MeasurementUnitImperialDistance\n ]\n\n return (\n <FormControlLabel\n key={unit.value}\n value={unit.value}\n control={<Radio />}\n label={label}\n />\n )\n })}\n </RadioGroup>\n </FormControl>\n </DialogContent>\n <DialogActions sx={styles.options.modal.actions}>\n <Button variant='contained' type='submit'>\n {modalUnitApply}\n </Button>\n </DialogActions>\n </Dialog>\n )\n}\n","export const tooltipLabelsDefault = {\n enabled: 'Show your current location',\n disabled: 'Location unavailable',\n}\n\nexport const ariaLabel = 'geolocation'\n","import { Paper, IconButton } from '@mui/material'\nimport {\n MyLocationOutlined,\n LocationDisabledOutlined,\n} from '@mui/icons-material'\nimport type { GeolocationControlProps } from './types'\nimport {\n useCallback,\n useEffect,\n useEffectEvent,\n useReducer,\n useRef,\n type JSX,\n} from 'react'\nimport { ariaLabel, tooltipLabelsDefault } from './const'\nimport { Tooltip } from '../tooltip/tooltip'\n\n/**\n * Provides a seamless interface for accessing device location through the browser's Geolocation API, with permission handling, continuous tracking, and error management.\n *\n * @example\n * ```tsx\n * <GeolocationControls\n * onChange={(coords) => console.log(coords.latitude, coords.longitude)}\n * onError={(error) => console.error(error.message)}\n * />\n * ```\n */\nexport function GeolocationControls({\n disabled,\n labels,\n PaperProps,\n TooltipProps,\n watch,\n onChange,\n onError,\n}: GeolocationControlProps): JSX.Element {\n const watchRef = useRef<number>(null)\n const hasGeolocation = 'geolocation' in navigator\n\n const [allowed, dispatch] = useReducer(\n (_: boolean, action: 'granted' | 'denied') => action === 'granted',\n hasGeolocation,\n )\n\n // Read the latest `onError` without making the permission-query effect\n // re-run (and re-register the `result.onchange` permission listener)\n // whenever the consumer passes a fresh callback identity.\n const notifyError = useEffectEvent(\n (error: Parameters<PositionErrorCallback>[0]): void => {\n onError?.(error)\n },\n )\n\n useEffect(() => {\n if (hasGeolocation) {\n navigator.permissions\n .query({ name: 'geolocation' })\n .then((result) => {\n dispatch(result.state === 'granted' ? 'granted' : 'denied')\n result.onchange = () => {\n dispatch(result.state === 'granted' ? 'granted' : 'denied')\n }\n })\n .catch((error: Parameters<PositionErrorCallback>[0]) => {\n dispatch('denied')\n notifyError(error)\n })\n }\n\n return () => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n }\n }, [hasGeolocation])\n\n const success = useCallback(\n (position: Parameters<PositionCallback>[0]) => {\n onChange(position.coords)\n },\n [onChange],\n )\n\n const error = useCallback(\n (error: Parameters<PositionErrorCallback>[0]) => {\n dispatch('denied')\n onError?.(error)\n },\n [onError],\n )\n\n const handleClick = useCallback(() => {\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current)\n }\n\n if (watch) {\n watchRef.current = navigator.geolocation.watchPosition(success, error)\n return\n }\n\n navigator.geolocation.getCurrentPosition(success, error)\n }, [watch, success, error])\n\n const tooltipLabels = labels?.tooltip ?? tooltipLabelsDefault\n\n return (\n <Paper {...PaperProps}>\n <Tooltip\n arrow\n placement='right'\n title={tooltipLabels[allowed ? 'enabled' : 'disabled']}\n {...TooltipProps}\n >\n <IconButton\n onClick={handleClick}\n aria-label={labels?.ariaLabel ?? ariaLabel}\n disabled={!hasGeolocation || disabled}\n >\n {allowed ? <MyLocationOutlined /> : <LocationDisabledOutlined />}\n </IconButton>\n </Tooltip>\n </Paper>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const styles = {\n zoom: {\n position: 'relative',\n height: ({ spacing }) => spacing(4),\n aspectRatio: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n paper: {\n display: 'flex',\n backgroundColor: ({ palette }) => palette.background.paper,\n width: 'auto',\n overflow: 'hidden',\n boxShadow: ({ shadows }) => shadows[1],\n borderRadius: ({ spacing }) => spacing(0.5),\n\n button: {\n borderRadius: 0,\n },\n },\n circularProgress: {\n position: 'absolute',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n IconButton,\n Divider,\n Box,\n Typography,\n CircularProgress,\n Paper,\n} from '@mui/material'\nimport {\n AddOutlined,\n RemoveOutlined,\n CropFreeOutlined,\n} from '@mui/icons-material'\nimport { styles } from './styles'\nimport type { ZoomControlProps } from './types'\nimport { useCallback, type JSX } from 'react'\n\n/**\n * Provides intuitive zoom controls for maps and zoomable interfaces with flexible layouts, loading states, and optional reset functionality.\n *\n * @remarks\n * This is an uncontrolled component. Typically used with the `ZoomControls` HOC from `@carto/ps-react-maps` for automatic state management.\n *\n * @example\n * ```tsx\n * <ZoomControlsUI\n * zoom={zoom}\n * onChange={setZoom}\n * minZoom={2}\n * maxZoom={20}\n * />\n * ```\n */\nexport function ZoomControlsUI({\n zoom,\n disabled,\n direction = 'vertical',\n reverse = false,\n isLoading,\n maxZoom = 24,\n minZoom = 0,\n PaperProps,\n ResetViewProps = {\n Icon: CropFreeOutlined,\n },\n showZoom = true,\n onChange,\n onReset,\n}: ZoomControlProps): JSX.Element {\n const increaseZoom = useCallback(() => {\n const newZoom = Math.min(maxZoom, zoom + 1)\n onChange(newZoom)\n }, [maxZoom, onChange, zoom])\n\n const decreaseZoom = useCallback(() => {\n const newZoom = Math.max(minZoom, zoom - 1)\n onChange(newZoom)\n }, [minZoom, onChange, zoom])\n\n const displayZoom = Math.floor(zoom)\n\n const dividerOrientation =\n direction === 'vertical' ? 'horizontal' : 'vertical'\n\n let flexDirection = direction === 'vertical' ? 'column' : 'row'\n\n if (reverse) {\n flexDirection += '-reverse'\n }\n\n return (\n <Paper\n sx={{\n ...styles.paper,\n flexDirection,\n }}\n {...PaperProps}\n >\n {onReset && (\n <>\n <IconButton\n onClick={onReset}\n aria-label='Reset action'\n disabled={disabled}\n >\n <ResetViewProps.Icon />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={increaseZoom}\n aria-label='Increase zoom'\n disabled={disabled}\n >\n <AddOutlined />\n </IconButton>\n <Divider orientation={dividerOrientation} flexItem />\n {showZoom && (\n <>\n <Box sx={styles.zoom}>\n <Typography\n display='block'\n align='center'\n color='textSecondary'\n variant='overline'\n >\n {displayZoom}\n </Typography>\n {isLoading && (\n <CircularProgress\n sx={styles.circularProgress}\n variant='indeterminate'\n size={24}\n />\n )}\n </Box>\n <Divider orientation={dividerOrientation} flexItem />\n </>\n )}\n <IconButton\n onClick={decreaseZoom}\n aria-label='Decrease zoom'\n disabled={disabled}\n >\n <RemoveOutlined />\n </IconButton>\n </Paper>\n )\n}\n","import { Box, Grid, Skeleton } from '@mui/material'\n\ninterface ListDataSkeletonProps {\n length?: number\n}\n\nexport function ListDataSkeleton({ length = 5 }: ListDataSkeletonProps) {\n return (\n <Box aria-label='List Data skeleton'>\n {new Array(length).fill(null).map((_, idx) => (\n <Grid key={`skeleton-${idx}`} container spacing={1}>\n <Grid\n container\n item\n direction='row'\n justifyContent='space-between'\n alignItems='center'\n >\n <Skeleton width={isOdd(idx) ? 72 : 48} height={20} />\n <Skeleton width={48} height={8} />\n </Grid>\n\n <Skeleton\n sx={{\n height: ({ spacing }) => spacing(0.5),\n marginTop: ({ spacing }) => spacing(1.25),\n marginBottom: ({ spacing }) => spacing(1.75),\n width: '100%',\n }}\n />\n </Grid>\n ))}\n </Box>\n )\n}\n\n// Aux\nfunction isOdd(num: number) {\n return num % 2 === 1\n}\n","import {\n Alert,\n Box,\n Typography,\n type AlertProps,\n type TypographyProps,\n} from '@mui/material'\n\ninterface NoDataAlertProps {\n title?: string\n body?: string\n severity?: AlertProps['severity']\n}\n\nexport function NoDataAlert({\n title = 'No data available',\n body = 'There are no results for the combination of filters applied to your data. Try tweaking your filters, or zoom and pan the map to adjust the Map View.',\n severity,\n}: NoDataAlertProps) {\n if (severity) {\n return (\n <Alert title={title} severity={severity}>\n <AlertBody>{body}</AlertBody>\n </Alert>\n )\n }\n\n return (\n <Box>\n {title && <Typography variant='body2'>{title}</Typography>}\n <AlertBody color='textSecondary'>{body}</AlertBody>\n </Box>\n )\n}\n\n// Aux\ninterface AlertBodyProps {\n color?: TypographyProps['color']\n children: React.ReactNode\n}\n\nfunction AlertBody({ color, children }: AlertBodyProps) {\n if (children) {\n return (\n <Box mt={0.5}>\n <Typography\n component='div'\n variant='caption'\n color={color ?? 'inherit'}\n style={{ fontWeight: 'normal' }}\n >\n {children}\n </Typography>\n </Box>\n )\n }\n\n return <Box mt={-1} />\n}\n","import { useState } from 'react'\n\nexport function useSkeleton(isLoading: boolean) {\n // Track render phase: 0=never shown, 1=showing now, 2=already shown\n const [phase, setPhase] = useState(() => (isLoading ? 1 : 0))\n\n // Transition from phase 0 to 1 when loading starts\n if (isLoading && phase === 0) {\n setPhase(1)\n }\n\n // Transition from phase 1 to 2 when loading ends (skeleton was shown, now done)\n if (!isLoading && phase === 1) {\n setPhase(2)\n }\n\n // Show skeleton only in phase 1 (first time loading)\n return phase === 1\n}\n","import { type SxProps, type Theme } from '@mui/material'\n\nconst ellipsed = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nexport const styles = {\n label: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n },\n },\n value: {\n '& .MuiListItemText-primary': {\n ...ellipsed,\n textAlign: 'right',\n },\n },\n clickable: {\n cursor: 'pointer',\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n showDivider: {\n borderBottom: ({ palette }) => `1px solid ${palette.divider}`,\n },\n selected: {\n backgroundColor: ({ palette }) => palette.action.selected,\n },\n disabled: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { useState, useMemo, type JSX } from 'react'\nimport { Box, Button, Grid, ListItem, List, ListItemText } from '@mui/material'\nimport { ListDataSkeleton } from './list-data-skeleton'\nimport { NoDataAlert } from '../no-data-alert/no-data-alert'\nimport { useSkeleton } from '../../hooks/use-skeleton'\nimport type { ListDataProps } from './types'\nimport { styles } from './styles'\nimport { SmartTooltip } from '../smart-tooltip/smart-tooltip'\n\nconst DEFAULT_LABELS = {\n showMore: 'Show More',\n showLess: 'Show Less',\n} as const\n\nconst EMPTY_DATA: ListDataProps['data'] = []\n\n/**\n * Displays structured data in an accessible list format with expandable views, interactive selection, tooltips, and loading states.\n *\n * @example\n * ```tsx\n * <ListDataUI\n * data={[\n * { id: '1', label: 'Population', value: '8.4M' },\n * { id: '2', label: 'Median Age', value: '32 years' },\n * ]}\n * maxItems={3}\n * onItemClick={(item) => setSelectedId(item.id)}\n * selectedItemId={selectedId}\n * />\n * ```\n */\nexport function ListDataUI({\n data = EMPTY_DATA,\n isLoading = false,\n maxItems = 5,\n labels = DEFAULT_LABELS,\n showDivider = true,\n selectedItemId,\n tooltipProps,\n onExpand,\n onItemClick,\n}: ListDataProps): JSX.Element {\n const [showAll, setShowAll] = useState(false)\n\n const showSkeleton = useSkeleton(isLoading)\n\n const items = useMemo(() => {\n return showAll ? data : data.slice(0, maxItems)\n }, [data, maxItems, showAll])\n\n const handleToggle = () => {\n setShowAll(!showAll)\n onExpand?.(showAll)\n }\n\n if (showSkeleton) {\n return <ListDataSkeleton length={maxItems} />\n }\n\n if (items.length === 0) {\n return <NoDataAlert />\n }\n\n return (\n <>\n <List id='expandable-list' role='list'>\n {items.map((item) => (\n <SmartTooltip<HTMLLIElement>\n // Default tooltip props\n followCursor={false}\n key={item.id}\n placement='top'\n arrow\n title={item.tooltipTitle}\n enterDelay={10}\n // Custom tooltip props\n {...tooltipProps}\n >\n {({ ref }) => (\n <ListItem\n ref={ref}\n role='listitem'\n sx={{\n ...(showDivider && styles.showDivider),\n ...(onItemClick && styles.clickable),\n ...(selectedItemId === item.id && styles.selected),\n ...(item.disabled && styles.disabled),\n }}\n onClick={() => {\n if (item.disabled) return\n onItemClick?.(item)\n }}\n >\n <Grid container alignItems='center'>\n <Grid item xs={8}>\n <ListItemText primary={item.label} sx={styles.label} />\n </Grid>\n <Grid item xs={4}>\n <ListItemText primary={item.value} sx={styles.value} />\n </Grid>\n </Grid>\n </ListItem>\n )}\n </SmartTooltip>\n ))}\n </List>\n\n {data.length > maxItems && (\n <Box my={2}>\n <Button\n onClick={handleToggle}\n variant='text'\n color='primary'\n aria-expanded={showAll}\n aria-controls='expandable-list'\n >\n {showAll ? labels.showLess : labels.showMore}\n </Button>\n </Box>\n )}\n </>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\n\nexport const BASEMAPS_WIDTH = 288\n\nexport const styles = {\n root: {\n width: BASEMAPS_WIDTH,\n overflow: 'auto',\n },\n toggle: {\n padding: ({ spacing }) => spacing(0.5),\n\n img: {\n width: '100%',\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.25),\n },\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n paddingInlineStart: ({ spacing }) => spacing(2),\n position: 'sticky',\n top: 0,\n zIndex: 2,\n background: ({ palette }) => palette.background.paper,\n },\n groupWrapper: {\n content: {\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(0.5),\n },\n },\n group: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(2),\n paddingInline: ({ spacing }) => spacing(2),\n paddingBlock: ({ spacing }) => spacing(1),\n },\n item: {\n container: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(1),\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n height: ({ spacing }) => spacing(12),\n\n img: {\n maxWidth: ({ spacing }) => spacing(9),\n aspectRatio: '1 / 1',\n borderRadius: ({ spacing }) => spacing(0.5),\n border: `2px solid transparent`,\n\n '&:hover': {\n borderColor: ({ palette }) => palette.action.active,\n },\n\n '&[data-active=\"true\"]': {\n borderColor: ({ palette }) => palette.primary.main,\n },\n },\n },\n selected: {\n color: ({ palette }) => palette.primary.main,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import type { BasemapsUILabels } from './types'\n\nexport const DEFAULT_BASEMAPS_LABELS: BasemapsUILabels = {\n toggle: {\n title: 'Toggle basemaps controls',\n },\n header: {\n title: 'Basemaps',\n actions: {\n close: 'Close',\n },\n },\n}\n","import { Close } from '@mui/icons-material'\nimport { Box, Typography, IconButton } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapsUILabels } from './types'\nimport { Tooltip } from '../tooltip/tooltip'\n\nexport function Header({\n isMobile = false,\n labels,\n onChangeCollapsed,\n}: {\n labels: BasemapsUILabels['header']\n isMobile?: boolean\n onChangeCollapsed: () => void\n}) {\n return (\n <Box sx={styles.header}>\n {isMobile && (\n <>\n <Typography variant='caption' flexGrow={1}>\n {labels.title}\n </Typography>\n <Tooltip title={labels.actions.close}>\n <IconButton\n size='small'\n onClick={onChangeCollapsed}\n aria-label={labels.actions.close}\n >\n <Close />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ReactNode } from 'react'\nimport { styles } from './styles'\n\nexport function GroupWrapper({\n title,\n children,\n collapsed = false,\n}: {\n title: string\n children: ReactNode\n collapsed?: boolean\n}) {\n if (collapsed) return children\n\n return (\n <>\n <Typography\n variant='caption'\n color='textSecondary'\n sx={styles.groupWrapper.content}\n >\n {title}\n </Typography>\n {children}\n </>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport { styles } from './styles'\nimport type { BasemapOption } from './types'\n\nexport function Group({\n values,\n selected,\n onChange,\n}: {\n values: Omit<BasemapOption, 'group'>[]\n selected: string | null | undefined\n onChange: (id: string) => void\n}) {\n return (\n <Box sx={styles.group}>\n {values.map((option) => {\n const isSelected = option.id === selected\n return (\n <Box\n key={option.id}\n sx={styles.item.container}\n component='button'\n aria-label={option.label}\n onClick={() => onChange(option.id)}\n >\n <img\n src={option.icon}\n aria-label={option.label + ' icon'}\n data-active={isSelected}\n />\n <Typography\n variant='caption'\n sx={{ ...(isSelected && styles.item.selected) }}\n >\n {option.label}\n </Typography>\n </Box>\n )\n })}\n </Box>\n )\n}\n","import {\n Drawer,\n Popover,\n type PopoverActions,\n type PopoverOrigin,\n type PopoverProps,\n} from '@mui/material'\nimport {\n useCallback,\n useRef,\n useSyncExternalStore,\n type CSSProperties,\n type ReactNode,\n} from 'react'\n\ntype ResponsiveDrawerPosition =\n | 'top-left'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-right'\n\n/** Placement of the panel relative to its anchor (desktop popover only). */\nexport type ResponsiveDrawerPlacement = 'side' | 'overlay'\n\n/**\n * Popover anchor/transform origins. `'overlay'` pins corner-to-corner on the anchor.\n */\nexport function resolveOrigins(\n position: ResponsiveDrawerPosition,\n placement: ResponsiveDrawerPlacement,\n): { anchorOrigin: PopoverOrigin; transformOrigin: PopoverOrigin } {\n const isBottom = position.startsWith('bottom')\n const isRight = position.endsWith('right')\n const overlay = placement === 'overlay'\n\n return {\n anchorOrigin: {\n vertical: isBottom ? 'bottom' : 'top',\n horizontal: overlay\n ? isRight\n ? 'right'\n : 'left'\n : isRight\n ? 'left'\n : 'right',\n },\n transformOrigin: {\n vertical: isBottom ? 'bottom' : 'top',\n horizontal: isRight ? 'right' : 'left',\n },\n }\n}\n\nexport function ResponsiveDrawer<\n T extends {\n collapsed: boolean\n onChangeCollapsed: (collapsed: boolean) => void\n position: ResponsiveDrawerPosition\n slotProps?: PopoverProps['slotProps']\n },\n>({\n ref,\n children,\n collapsed,\n isMobile = false,\n position,\n sx,\n slotProps,\n container,\n onChangeCollapsed,\n modal = true,\n placement = 'side',\n}: Required<Pick<T, 'collapsed' | 'onChangeCollapsed' | 'position'>> &\n Pick<PopoverProps, 'slotProps' | 'sx' | 'container'> & {\n ref: HTMLElement | null\n isMobile: boolean\n children: ReactNode\n /**\n * When `false`, the desktop popover is **non-modal**: no backdrop, clicks\n * pass through to the content behind it (e.g. a map stays interactive), no\n * focus trap, and neither backdrop-click nor Escape closes it (close it via\n * `onChangeCollapsed`). Defaults to `true` (standard dismissable popover).\n * Desktop-only — the mobile drawer is unaffected.\n */\n modal?: boolean\n /**\n * Desktop popover placement relative to the anchor: `'side'` (default) opens\n * beside the trigger; `'overlay'` pins corner-to-corner, sitting on top of\n * the anchor (e.g. a trigger hidden while the panel is open). Desktop-only.\n */\n placement?: ResponsiveDrawerPlacement\n }) {\n // Popover position is frozen on open — re-measure on content resize (callback ref: portal mounts after open).\n const popoverActions = useRef<PopoverActions>(null)\n const observerRef = useRef<ResizeObserver | null>(null)\n const observeContent = useCallback((el: HTMLDivElement | null) => {\n observerRef.current?.disconnect()\n observerRef.current = null\n if (el && typeof ResizeObserver !== 'undefined') {\n const observer = new ResizeObserver(() =>\n popoverActions.current?.updatePosition(),\n )\n observer.observe(el)\n observerRef.current = observer\n }\n }, [])\n\n // Popover Paper is auto-height — `%` max-height needs a measured px cap from `container`.\n const measurableContainer =\n container && typeof container !== 'function' ? container : null\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n if (!measurableContainer || typeof ResizeObserver === 'undefined') {\n return () => undefined\n }\n const observer = new ResizeObserver(onStoreChange)\n observer.observe(measurableContainer)\n return () => observer.disconnect()\n },\n [measurableContainer],\n )\n const getSnapshot = useCallback(\n () => measurableContainer?.clientHeight,\n [measurableContainer],\n )\n const containerHeight = useSyncExternalStore(subscribe, getSnapshot)\n\n if (isMobile) {\n return (\n <Drawer\n anchor='bottom'\n open={!collapsed}\n onClose={() => onChangeCollapsed(true)}\n >\n {children}\n </Drawer>\n )\n }\n\n const { anchorOrigin, transformOrigin } = resolveOrigins(position, placement)\n\n const objectSlotProps = slotProps as\n | { root?: Record<string, unknown>; paper?: { style?: CSSProperties } }\n | undefined\n // Capped Paper: disable outer scroll + flex so inner scroll regions can shrink.\n const paperMaxHeightStyle: CSSProperties | undefined =\n containerHeight != null && containerHeight > 0\n ? {\n maxHeight: containerHeight * 0.9,\n overflow: 'hidden',\n display: 'flex',\n flexDirection: 'column',\n }\n : undefined\n const contentWrapperStyle: CSSProperties | undefined = paperMaxHeightStyle\n ? {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n maxHeight: '100%',\n overflow: 'hidden',\n width: '100%',\n }\n : undefined\n const mergedSlotProps: PopoverProps['slotProps'] =\n modal && !paperMaxHeightStyle\n ? slotProps\n : {\n ...(typeof slotProps === 'object' && slotProps != null\n ? slotProps\n : {}),\n ...(!modal && {\n root: {\n style: { pointerEvents: 'none' },\n ...objectSlotProps?.root,\n },\n }),\n paper: {\n ...objectSlotProps?.paper,\n style: {\n ...(!modal && { pointerEvents: 'auto' }),\n ...paperMaxHeightStyle,\n ...objectSlotProps?.paper?.style,\n },\n },\n }\n\n return (\n <Popover\n action={popoverActions}\n sx={sx}\n container={container}\n anchorEl={ref}\n open={!collapsed && ref != null}\n onClose={modal ? () => onChangeCollapsed(true) : undefined}\n hideBackdrop={!modal}\n disableScrollLock={!modal}\n disableEscapeKeyDown={!modal}\n disableAutoFocus={!modal}\n disableEnforceFocus={!modal}\n disableRestoreFocus={!modal}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n slotProps={mergedSlotProps}\n >\n <div ref={observeContent} style={contentWrapperStyle}>\n {children}\n </div>\n </Popover>\n )\n}\n","import { IconButton, Paper, useMediaQuery, useTheme } from '@mui/material'\nimport type { BasemapsUIProps } from './types'\nimport { useEffect, useRef, useState, type JSX } from 'react'\nimport { styles } from './styles'\nimport deepmerge from 'deepmerge'\nimport { DEFAULT_BASEMAPS_LABELS } from './const'\nimport { Header } from './header'\nimport { GroupWrapper } from './group-wrapper'\nimport { Group } from './group'\nimport { ResponsiveDrawer } from '../responsive-drawer/responsive-drawer'\nimport { Tooltip } from '../tooltip/tooltip'\n\nconst EMPTY_OPTIONS: BasemapsUIProps['options'] = []\n\n/**\n * Provides an interactive basemap selector with responsive drawer, grouping support, and customizable positioning.\n *\n * @remarks\n * This is an uncontrolled component focused on UI presentation. Typically used with the `BasemapsControls` HOC from `@carto/ps-react-maps` for automatic state management.\n *\n * @example\n * ```tsx\n * <BasemapsControls mapId={mapId}>\n * {({ basemap, setBasemap }) => (\n * <BasemapsUI\n * options={basemapOptions}\n * selected={basemap}\n * onChange={setBasemap}\n * position=\"bottom-right\"\n * />\n * )}\n * </BasemapsControls>\n * ```\n */\nexport function BasemapsUI({\n options = EMPTY_OPTIONS,\n labels: _labels,\n position = 'bottom-right',\n selected = null,\n onChange,\n TooltipProps,\n}: BasemapsUIProps): JSX.Element {\n const [toggleRef, setToggleRef] = useState<HTMLButtonElement | null>(null)\n const [isOpen, setIsOpen] = useState(false)\n const timeoutRef = useRef<NodeJS.Timeout | null>(null)\n const [timer, setTimer] = useState<number | null>(null)\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'))\n const labels = deepmerge(DEFAULT_BASEMAPS_LABELS, _labels ?? {})\n\n const optionSelected = options.find((option) => option.id === selected)\n\n const groups = Object.groupBy(options, (option) => option.group ?? 'default')\n\n const groupCount = Object.keys(groups).length\n\n const handleClose = () => {\n setToggleRef(null)\n setIsOpen(false)\n }\n\n useEffect(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n\n if (!timer) {\n return\n }\n\n timeoutRef.current = setTimeout(() => {\n handleClose()\n return\n }, timer)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [timer])\n\n const handleMouseOver = () => {\n setTimer(null)\n }\n const handleMouseLeave = () => {\n setTimer(400)\n }\n\n return (\n <Paper>\n <Tooltip title={labels.toggle.title} placement='right' {...TooltipProps}>\n <IconButton\n sx={styles.toggle}\n onClick={(e) => {\n setToggleRef(e.currentTarget as HTMLButtonElement)\n setIsOpen(true)\n }}\n >\n <img\n src={optionSelected?.icon}\n alt={optionSelected?.label ?? 'Basemap'}\n />\n </IconButton>\n </Tooltip>\n\n <ResponsiveDrawer\n ref={toggleRef}\n slotProps={{\n paper: {\n sx: {\n ...styles.root,\n transform: `translate3d(${position.endsWith('right') ? '-8px' : '8px'}, ${\n position.startsWith('bottom') ? '-4px' : '4px'\n }, 0) !important`,\n },\n onMouseOver: handleMouseOver,\n onMouseLeave: handleMouseLeave,\n },\n }}\n collapsed={!isOpen}\n position={position}\n isMobile={isMobile}\n onChangeCollapsed={() => handleClose()}\n >\n <Header\n isMobile={isMobile}\n labels={labels.header}\n onChangeCollapsed={() => handleClose()}\n />\n {Object.entries(groups).map(([group, values]) => (\n <GroupWrapper\n key={group}\n title={group + ' ' + labels.header.title}\n collapsed={groupCount < 2}\n >\n <Group\n values={values!}\n selected={selected}\n onChange={(e) => {\n handleClose()\n onChange(e)\n }}\n />\n </GroupWrapper>\n ))}\n </ResponsiveDrawer>\n </Paper>\n )\n}\n"],"mappings":"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"}