@carto/ps-react-ui 4.20.2 → 4.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{actions-DKX98LlI.js → actions-DZGaL_uT.js} +2 -2
- package/dist/{actions-DKX98LlI.js.map → actions-DZGaL_uT.js.map} +1 -1
- package/dist/{actions-Dy9JVr7F.js → actions-iN1jwyxA.js} +363 -343
- package/dist/actions-iN1jwyxA.js.map +1 -0
- package/dist/{category-DHZscHaS.js → category-DZt6yiST.js} +3 -3
- package/dist/{category-DHZscHaS.js.map → category-DZt6yiST.js.map} +1 -1
- package/dist/{chart-config-BGt7wkK7.js → chart-config-BWxjodlt.js} +2 -2
- package/dist/chart-config-BWxjodlt.js.map +1 -0
- package/dist/chat.js.map +1 -1
- package/dist/{components-DDt4mOQn.js → components-DKjBezcJ.js} +73 -73
- package/dist/components-DKjBezcJ.js.map +1 -0
- package/dist/components.js +1 -1
- package/dist/{download-BT6qBamM.js → download-C7he8mSh.js} +2 -2
- package/dist/{download-BT6qBamM.js.map → download-C7he8mSh.js.map} +1 -1
- package/dist/{echart-DSz2Tu0z.js → echart-BnJYXH7H.js} +28 -29
- package/dist/echart-BnJYXH7H.js.map +1 -0
- package/dist/{formula-Bk9CBzm2.js → formula-BNuRXsmh.js} +2 -2
- package/dist/{formula-Bk9CBzm2.js.map → formula-BNuRXsmh.js.map} +1 -1
- package/dist/{formula-Dsru_p-g.js → formula-Cqj84ZGX.js} +2 -2
- package/dist/{formula-Dsru_p-g.js.map → formula-Cqj84ZGX.js.map} +1 -1
- package/dist/legend.js +2 -0
- package/dist/legend.js.map +1 -1
- package/dist/{markdown-DnSJMPjQ.js → markdown-CV_KP-at.js} +2 -2
- package/dist/{markdown-DnSJMPjQ.js.map → markdown-CV_KP-at.js.map} +1 -1
- package/dist/{spread-Dy8pshpN.js → spread-C8T12Nfh.js} +3 -3
- package/dist/{spread-Dy8pshpN.js.map → spread-C8T12Nfh.js.map} +1 -1
- package/dist/{table-BfTG6rrs.js → table-CNQijNNB.js} +2 -2
- package/dist/{table-BfTG6rrs.js.map → table-CNQijNNB.js.map} +1 -1
- package/dist/types/chat/bubbles/chat-agent-message-markdown.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-agent-message.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-error-message.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +1 -1
- package/dist/types/chat/bubbles/chat-user-message.d.ts +1 -1
- package/dist/types/chat/bubbles/index.d.ts +5 -5
- package/dist/types/chat/bubbles/styles.d.ts +88 -0
- package/dist/types/chat/containers/chat-content.d.ts +1 -1
- package/dist/types/chat/containers/chat-footer.d.ts +1 -1
- package/dist/types/chat/containers/chat-header.d.ts +1 -1
- package/dist/types/chat/containers/chat-starter.d.ts +1 -1
- package/dist/types/chat/containers/index.d.ts +4 -4
- package/dist/types/chat/feedback/chat-actions-container.d.ts +3 -0
- package/dist/types/chat/feedback/chat-loader.d.ts +1 -1
- package/dist/types/chat/feedback/chat-rating-action.d.ts +1 -1
- package/dist/types/chat/feedback/chat-thinking.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-code-area.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-full-view-dialog.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-group.d.ts +1 -1
- package/dist/types/chat/feedback/chat-tool-trace.d.ts +1 -1
- package/dist/types/chat/feedback/get-tool-label.d.ts +1 -1
- package/dist/types/chat/feedback/index.d.ts +8 -8
- package/dist/types/chat/feedback/styles.d.ts +212 -0
- package/dist/types/chat/index.d.ts +21 -21
- package/dist/types/components/basemaps/basemaps.d.ts +1 -1
- package/dist/types/components/basemaps/const.d.ts +1 -1
- package/dist/types/components/basemaps/group.d.ts +1 -1
- package/dist/types/components/basemaps/header.d.ts +1 -1
- package/dist/types/components/copy-button/copy-button.d.ts +1 -1
- package/dist/types/components/geolocation-controls/geolocation-controls.d.ts +1 -1
- package/dist/types/components/index.d.ts +26 -26
- package/dist/types/components/lasso-tool/chip.d.ts +1 -1
- package/dist/types/components/lasso-tool/const.d.ts +2 -2
- package/dist/types/components/lasso-tool/geometry-toolbar.d.ts +1 -1
- package/dist/types/components/lasso-tool/lasso-tool-inline.d.ts +1 -1
- package/dist/types/components/lasso-tool/lasso-tool.d.ts +1 -1
- package/dist/types/components/lasso-tool/layer-filters.d.ts +1 -1
- package/dist/types/components/lasso-tool/message.d.ts +1 -1
- package/dist/types/components/lasso-tool/types.d.ts +1 -1
- package/dist/types/components/list-data/list-data.d.ts +1 -1
- package/dist/types/components/measurement-tools/const.d.ts +2 -2
- package/dist/types/components/measurement-tools/measurement-tools.d.ts +1 -1
- package/dist/types/components/measurement-tools/types.d.ts +1 -1
- package/dist/types/components/responsive-drawer/responsive-drawer.d.ts +10 -3
- package/dist/types/components/types.d.ts +1 -1
- package/dist/types/components/zoom-controls/zoom-controls.d.ts +1 -1
- package/dist/types/hooks/index.d.ts +1 -1
- package/dist/types/legend/components/icons.d.ts +1 -1
- package/dist/types/legend/components/index.d.ts +26 -26
- package/dist/types/legend/components/legend-category/legend-category-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-icon/legend-icon-ui.d.ts +1 -1
- package/dist/types/legend/components/legend-item/legend-item-ui.d.ts +2 -2
- package/dist/types/legend/components/legend-proportion/legend-proportion-ui.d.ts +2 -2
- package/dist/types/legend/components/legend-ramp/legend-ramp-ui.d.ts +2 -2
- package/dist/types/legend/components/legend-sortable/sortable-entity.d.ts +1 -1
- package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +1 -1
- package/dist/types/legend/components/legend-visibility-toggle/legend-visibility-toggle.d.ts +2 -2
- package/dist/types/legend/components/run-async-menu-action.d.ts +1 -1
- package/dist/types/legend/index.d.ts +41 -41
- package/dist/types/legend/provider/index.d.ts +6 -6
- package/dist/types/legend/provider/legend-config-context.d.ts +1 -1
- package/dist/types/legend/provider/legend-provider.d.ts +2 -2
- package/dist/types/legend/stores/index.d.ts +5 -5
- package/dist/types/legend/stores/legend-store-registry.d.ts +1 -1
- package/dist/types/legend/stores/selectors.d.ts +1 -1
- package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +1 -1
- package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +1 -1
- package/dist/types/widgets/actions/brush-toggle/types.d.ts +1 -1
- package/dist/types/widgets/actions/change-column/change-column.d.ts +1 -1
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +1 -1
- package/dist/types/widgets/actions/download/download.d.ts +1 -1
- package/dist/types/widgets/actions/download/exports.d.ts +1 -1
- package/dist/types/widgets/actions/download/types.d.ts +1 -1
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +1 -1
- package/dist/types/widgets/actions/fullscreen/types.d.ts +1 -1
- package/dist/types/widgets/actions/index.d.ts +20 -20
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +1 -1
- package/dist/types/widgets/actions/lock-selection/types.d.ts +1 -1
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +1 -1
- package/dist/types/widgets/actions/relative-data/types.d.ts +1 -1
- package/dist/types/widgets/actions/relative-data/utils.d.ts +1 -1
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +1 -1
- package/dist/types/widgets/actions/searcher/searcher.d.ts +1 -1
- package/dist/types/widgets/actions/searcher/types.d.ts +2 -2
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +1 -1
- package/dist/types/widgets/actions/stack-toggle/types.d.ts +1 -1
- package/dist/types/widgets/actions/zoom-toggle/types.d.ts +1 -1
- package/dist/types/widgets/actions/zoom-toggle/zoom-toggle.d.ts +1 -1
- package/dist/types/widgets/bar/config.d.ts +2 -2
- package/dist/types/widgets/bar/index.d.ts +3 -3
- package/dist/types/widgets/bar/types.d.ts +3 -3
- package/dist/types/widgets/category/category-ui.d.ts +1 -1
- package/dist/types/widgets/category/components/category-legend.d.ts +1 -1
- package/dist/types/widgets/category/components/category-row-multi.d.ts +1 -1
- package/dist/types/widgets/category/components/category-row-single.d.ts +1 -1
- package/dist/types/widgets/category/config.d.ts +3 -3
- package/dist/types/widgets/category/index.d.ts +14 -14
- package/dist/types/widgets/category/types.d.ts +3 -3
- package/dist/types/widgets/echart/echart-ui.d.ts +1 -1
- package/dist/types/widgets/echart/echart.d.ts +1 -1
- package/dist/types/widgets/echart/index.d.ts +5 -5
- package/dist/types/widgets/echart/options.d.ts +1 -1
- package/dist/types/widgets/echart/types.d.ts +1 -1
- package/dist/types/widgets/echart/utils.d.ts +1 -1
- package/dist/types/widgets/error/error.d.ts +1 -1
- package/dist/types/widgets/error/index.d.ts +2 -2
- package/dist/types/widgets/error/types.d.ts +1 -1
- package/dist/types/widgets/formula/components/item.d.ts +1 -1
- package/dist/types/widgets/formula/components/prefix.d.ts +1 -1
- package/dist/types/widgets/formula/components/row.d.ts +1 -1
- package/dist/types/widgets/formula/components/series.d.ts +1 -1
- package/dist/types/widgets/formula/components/suffix.d.ts +1 -1
- package/dist/types/widgets/formula/components/value.d.ts +1 -1
- package/dist/types/widgets/formula/config.d.ts +2 -2
- package/dist/types/widgets/formula/formula-ui.d.ts +1 -1
- package/dist/types/widgets/formula/index.d.ts +11 -11
- package/dist/types/widgets/formula/serializer.d.ts +1 -1
- package/dist/types/widgets/formula/types.d.ts +3 -3
- package/dist/types/widgets/histogram/config.d.ts +3 -3
- package/dist/types/widgets/histogram/index.d.ts +4 -4
- package/dist/types/widgets/histogram/types.d.ts +3 -3
- package/dist/types/widgets/loader/index.d.ts +3 -3
- package/dist/types/widgets/loader/loader.d.ts +1 -1
- package/dist/types/widgets/loader/types.d.ts +1 -1
- package/dist/types/widgets/markdown/config.d.ts +2 -2
- package/dist/types/widgets/markdown/index.d.ts +5 -5
- package/dist/types/widgets/markdown/markdown-ui.d.ts +1 -1
- package/dist/types/widgets/markdown/markdown.d.ts +1 -1
- package/dist/types/widgets/markdown/types.d.ts +3 -3
- package/dist/types/widgets/no-data/index.d.ts +2 -2
- package/dist/types/widgets/no-data/no-data.d.ts +1 -1
- package/dist/types/widgets/no-data/types.d.ts +1 -1
- package/dist/types/widgets/note/index.d.ts +2 -2
- package/dist/types/widgets/note/note.d.ts +1 -1
- package/dist/types/widgets/note/types.d.ts +1 -1
- package/dist/types/widgets/pie/config.d.ts +2 -2
- package/dist/types/widgets/pie/index.d.ts +3 -3
- package/dist/types/widgets/pie/types.d.ts +3 -3
- package/dist/types/widgets/range/components/range-item.d.ts +1 -1
- package/dist/types/widgets/range/config.d.ts +1 -1
- package/dist/types/widgets/range/index.d.ts +6 -6
- package/dist/types/widgets/range/range-ui.d.ts +1 -1
- package/dist/types/widgets/range/serializer.d.ts +1 -1
- package/dist/types/widgets/range/types.d.ts +3 -3
- package/dist/types/widgets/scatterplot/config.d.ts +2 -2
- package/dist/types/widgets/scatterplot/index.d.ts +3 -3
- package/dist/types/widgets/scatterplot/types.d.ts +3 -3
- package/dist/types/widgets/selection-summary/index.d.ts +2 -2
- package/dist/types/widgets/selection-summary/selection-summary.d.ts +1 -1
- package/dist/types/widgets/skeleton-loader/index.d.ts +2 -2
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +1 -1
- package/dist/types/widgets/skeleton-loader/types.d.ts +1 -1
- package/dist/types/widgets/spread/components/max-value.d.ts +1 -1
- package/dist/types/widgets/spread/components/min-value.d.ts +1 -1
- package/dist/types/widgets/spread/components/separator.d.ts +1 -1
- package/dist/types/widgets/spread/config.d.ts +3 -3
- package/dist/types/widgets/spread/index.d.ts +9 -9
- package/dist/types/widgets/spread/spread-ui.d.ts +1 -1
- package/dist/types/widgets/spread/types.d.ts +4 -4
- package/dist/types/widgets/stores/index.d.ts +3 -3
- package/dist/types/widgets/stores/use-widget-selector.d.ts +1 -1
- package/dist/types/widgets/stores/widget-store.d.ts +2 -2
- package/dist/types/widgets/subheader/index.d.ts +2 -2
- package/dist/types/widgets/subheader/subheader.d.ts +1 -1
- package/dist/types/widgets/table/components/cell-header.d.ts +1 -1
- package/dist/types/widgets/table/components/cell.d.ts +1 -1
- package/dist/types/widgets/table/components/pagination-actions.d.ts +1 -1
- package/dist/types/widgets/table/components/pagination.d.ts +1 -1
- package/dist/types/widgets/table/components/row.d.ts +1 -1
- package/dist/types/widgets/table/config.d.ts +2 -2
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +1 -1
- package/dist/types/widgets/table/hooks/use-selection.d.ts +1 -1
- package/dist/types/widgets/table/hooks/use-sort.d.ts +1 -1
- package/dist/types/widgets/table/index.d.ts +17 -17
- package/dist/types/widgets/table/serializer.d.ts +1 -1
- package/dist/types/widgets/table/table-ui.d.ts +8 -8
- package/dist/types/widgets/table/types.d.ts +3 -3
- package/dist/types/widgets/timeseries/config.d.ts +2 -2
- package/dist/types/widgets/timeseries/index.d.ts +3 -3
- package/dist/types/widgets/timeseries/types.d.ts +3 -3
- package/dist/types/widgets/toolbar-actions/index.d.ts +2 -2
- package/dist/types/widgets/toolbar-actions/toolbar-actions.d.ts +1 -1
- package/dist/types/widgets/utils/chart-config/config-factory.d.ts +1 -1
- package/dist/types/widgets/utils/chart-config/download-config.d.ts +2 -2
- package/dist/types/widgets/utils/chart-config/index.d.ts +6 -6
- package/dist/types/widgets/utils/chart-config/option-builders.d.ts +142 -0
- package/dist/types/widgets/utils/index.d.ts +7 -7
- package/dist/types/widgets/utils/skeleton/index.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/actions.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/options.d.ts +1 -1
- package/dist/types/widgets/wrapper/components/title.d.ts +1 -1
- package/dist/types/widgets/wrapper/index.d.ts +6 -6
- package/dist/types/widgets/wrapper/types.d.ts +1 -1
- package/dist/types/widgets/wrapper/wrapper-ui.d.ts +1 -1
- package/dist/types/widgets/wrapper/wrapper.d.ts +1 -1
- package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/actions/brush-toggle/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +1 -1
- package/dist/types/widgets-v2/actions/change-column/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/change-column/types.d.ts +1 -1
- package/dist/types/widgets-v2/actions/download/csv-item.d.ts +1 -1
- package/dist/types/widgets-v2/actions/download/download.d.ts +2 -2
- package/dist/types/widgets-v2/actions/download/index.d.ts +8 -8
- package/dist/types/widgets-v2/actions/download/png-item.d.ts +1 -1
- package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +23 -4
- package/dist/types/widgets-v2/actions/fullscreen/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/fullscreen/style.d.ts +9 -0
- package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +1 -1
- package/dist/types/widgets-v2/actions/index.d.ts +10 -10
- package/dist/types/widgets-v2/actions/lock-selection/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +1 -1
- package/dist/types/widgets-v2/actions/relative-data/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +1 -1
- package/dist/types/widgets-v2/actions/searcher/index.d.ts +4 -4
- package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +1 -1
- package/dist/types/widgets-v2/actions/show-all/index.d.ts +2 -2
- package/dist/types/widgets-v2/actions/show-all/show-all.d.ts +1 -1
- package/dist/types/widgets-v2/actions/stack-toggle/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +1 -1
- package/dist/types/widgets-v2/actions/zoom-toggle/index.d.ts +3 -3
- package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +2 -2
- package/dist/types/widgets-v2/bar/download.d.ts +2 -2
- package/dist/types/widgets-v2/bar/index.d.ts +4 -4
- package/dist/types/widgets-v2/bar/options.d.ts +2 -2
- package/dist/types/widgets-v2/bar/types.d.ts +1 -1
- package/dist/types/widgets-v2/category/category-ui.d.ts +1 -1
- package/dist/types/widgets-v2/category/category.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-bar-stacked.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-bar.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-legend.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-single.d.ts +1 -1
- package/dist/types/widgets-v2/category/components/category-row-stacked.d.ts +1 -1
- package/dist/types/widgets-v2/category/download.d.ts +2 -2
- package/dist/types/widgets-v2/category/index.d.ts +10 -10
- package/dist/types/widgets-v2/category/skeleton.d.ts +1 -1
- package/dist/types/widgets-v2/category/style.d.ts +1 -1
- package/dist/types/widgets-v2/category/types.d.ts +1 -1
- package/dist/types/widgets-v2/echart/echart-ui.d.ts +2 -2
- package/dist/types/widgets-v2/echart/echart.d.ts +10 -2
- package/dist/types/widgets-v2/echart/index.d.ts +4 -4
- package/dist/types/widgets-v2/echart/style.d.ts +1 -0
- package/dist/types/widgets-v2/echart/use-chart-selection.d.ts +1 -1
- package/dist/types/widgets-v2/formula/delta.d.ts +1 -1
- package/dist/types/widgets-v2/formula/download.d.ts +2 -2
- package/dist/types/widgets-v2/formula/formula-ui.d.ts +1 -1
- package/dist/types/widgets-v2/formula/index.d.ts +11 -11
- package/dist/types/widgets-v2/formula/types.d.ts +1 -1
- package/dist/types/widgets-v2/histogram/download.d.ts +2 -2
- package/dist/types/widgets-v2/histogram/index.d.ts +5 -5
- package/dist/types/widgets-v2/histogram/options.d.ts +3 -3
- package/dist/types/widgets-v2/histogram/types.d.ts +1 -1
- package/dist/types/widgets-v2/index.d.ts +45 -45
- package/dist/types/widgets-v2/markdown/download.d.ts +2 -2
- package/dist/types/widgets-v2/markdown/index.d.ts +6 -6
- package/dist/types/widgets-v2/note/widget-note.d.ts +1 -1
- package/dist/types/widgets-v2/pie/download.d.ts +2 -2
- package/dist/types/widgets-v2/pie/index.d.ts +4 -4
- package/dist/types/widgets-v2/pie/options.d.ts +2 -2
- package/dist/types/widgets-v2/pie/types.d.ts +1 -1
- package/dist/types/widgets-v2/range/index.d.ts +4 -4
- package/dist/types/widgets-v2/range/range-ui.d.ts +1 -1
- package/dist/types/widgets-v2/range/range.d.ts +1 -1
- package/dist/types/widgets-v2/scatterplot/download.d.ts +2 -2
- package/dist/types/widgets-v2/scatterplot/index.d.ts +5 -5
- package/dist/types/widgets-v2/scatterplot/options.d.ts +2 -2
- package/dist/types/widgets-v2/scatterplot/types.d.ts +1 -1
- package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +1 -1
- package/dist/types/widgets-v2/spread/download.d.ts +2 -2
- package/dist/types/widgets-v2/spread/index.d.ts +7 -7
- package/dist/types/widgets-v2/spread/spread-ui.d.ts +1 -1
- package/dist/types/widgets-v2/spread/types.d.ts +1 -1
- package/dist/types/widgets-v2/state/widget-state.d.ts +1 -1
- package/dist/types/widgets-v2/stores/index.d.ts +8 -8
- package/dist/types/widgets-v2/stores/pipeline-middleware.d.ts +1 -1
- package/dist/types/widgets-v2/stores/transforms.d.ts +1 -1
- package/dist/types/widgets-v2/stores/use-transform.d.ts +1 -1
- package/dist/types/widgets-v2/stores/widget-store-registry.d.ts +1 -1
- package/dist/types/widgets-v2/table/download.d.ts +2 -2
- package/dist/types/widgets-v2/table/helpers.d.ts +1 -1
- package/dist/types/widgets-v2/table/index.d.ts +8 -8
- package/dist/types/widgets-v2/table/table-ui.d.ts +2 -2
- package/dist/types/widgets-v2/table/table.d.ts +2 -2
- package/dist/types/widgets-v2/table/types.d.ts +1 -1
- package/dist/types/widgets-v2/timeseries/download.d.ts +2 -2
- package/dist/types/widgets-v2/timeseries/index.d.ts +5 -5
- package/dist/types/widgets-v2/timeseries/options.d.ts +4 -4
- package/dist/types/widgets-v2/timeseries/types.d.ts +1 -1
- package/dist/types/widgets-v2/toolbox/toolbox.d.ts +1 -1
- package/dist/types/widgets-v2/utils/index.d.ts +3 -3
- package/dist/types/widgets-v2/wrapper/index.d.ts +4 -4
- package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +1 -1
- package/dist/{utils-DtvTjjMq.js → utils-ClB6nn4w.js} +2 -2
- package/dist/{utils-DtvTjjMq.js.map → utils-ClB6nn4w.js.map} +1 -1
- package/dist/widgets/actions.js +1 -1
- package/dist/widgets/bar.js +1 -1
- package/dist/widgets/category.js +1 -1
- package/dist/widgets/formula.js +1 -1
- package/dist/widgets/histogram.js +2 -2
- package/dist/widgets/markdown.js +1 -1
- package/dist/widgets/pie.js +1 -1
- package/dist/widgets/scatterplot.js +1 -1
- package/dist/widgets/spread.js +2 -2
- package/dist/widgets/table.js +1 -1
- package/dist/widgets/timeseries.js +1 -1
- package/dist/widgets/utils.js +1 -1
- package/dist/widgets/wrapper.js +1 -1
- package/dist/widgets-v2/actions.js +3 -3
- package/dist/widgets-v2/bar.js +4 -4
- package/dist/widgets-v2/category.js +1 -1
- package/dist/widgets-v2/echart.js +1 -1
- package/dist/widgets-v2/formula.js +1 -1
- package/dist/widgets-v2/histogram.js +4 -4
- package/dist/widgets-v2/markdown.js +1 -1
- package/dist/widgets-v2/pie.js +3 -4
- package/dist/widgets-v2/pie.js.map +1 -1
- package/dist/widgets-v2/scatterplot.js +4 -4
- package/dist/widgets-v2/spread.js +1 -1
- package/dist/widgets-v2/table.js +1 -1
- package/dist/widgets-v2/timeseries.js +4 -4
- package/dist/widgets-v2/utils.js +1 -1
- package/dist/widgets-v2.js +10 -10
- package/dist/{zoom-toggle-CA0ifG23.js → zoom-toggle-KA63b6-J.js} +2 -2
- package/dist/{zoom-toggle-CA0ifG23.js.map → zoom-toggle-KA63b6-J.js.map} +1 -1
- package/package.json +5 -4
- package/src/chat/bubbles/styles.ts +27 -8
- package/src/chat/feedback/chat-actions-container.tsx +5 -2
- package/src/chat/feedback/styles.ts +8 -5
- package/src/components/basemaps/basemaps.tsx +4 -4
- package/src/components/responsive-drawer/responsive-drawer.test.tsx +37 -23
- package/src/components/responsive-drawer/responsive-drawer.tsx +15 -8
- package/src/legend/components/legend-row/legend-row.test.tsx +19 -0
- package/src/legend/components/legend-row/legend-row.tsx +15 -2
- package/src/widgets/utils/chart-config/option-builders.ts +5 -1
- package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +62 -0
- package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +85 -14
- package/src/widgets-v2/actions/fullscreen/style.ts +31 -4
- package/src/widgets-v2/echart/echart-ui.test.tsx +6 -3
- package/src/widgets-v2/echart/echart-ui.tsx +6 -2
- package/src/widgets-v2/echart/echart.test.tsx +1 -1
- package/src/widgets-v2/echart/echart.tsx +10 -0
- package/src/widgets-v2/echart/style.ts +10 -1
- package/src/widgets-v2/pie/options.test.ts +8 -0
- package/src/widgets-v2/pie/options.ts +3 -8
- package/dist/actions-Dy9JVr7F.js.map +0 -1
- package/dist/chart-config-BGt7wkK7.js.map +0 -1
- package/dist/components-DDt4mOQn.js.map +0 -1
- package/dist/echart-DSz2Tu0z.js.map +0 -1
- package/dist/types/legend/stores/legend-store.test.d.ts +0 -1
- package/dist/types/widgets/actions/brush-toggle/hit-test.test.d.ts +0 -1
- package/dist/types/widgets/actions/relative-data/utils.test.d.ts +0 -1
- package/dist/types/widgets/echart/utils.test.d.ts +0 -1
- package/dist/types/widgets/formula/config.test.d.ts +0 -1
- package/dist/types/widgets/loader/utils.test.d.ts +0 -1
- package/dist/types/widgets/range/serializer.test.d.ts +0 -1
- package/dist/types/widgets/stores/widget-store-branches.test.d.ts +0 -1
- package/dist/types/widgets/stores/widget-store-performance.test.d.ts +0 -1
- package/dist/types/widgets/stores/widget-store.test.d.ts +0 -1
- package/dist/types/widgets/table/config.test.d.ts +0 -1
- package/dist/types/widgets/table/helpers.test.d.ts +0 -1
- package/dist/types/widgets/table/hooks/use-pagination.test.d.ts +0 -1
- package/dist/types/widgets/table/hooks/use-selection.test.d.ts +0 -1
- package/dist/types/widgets/table/hooks/use-sort.test.d.ts +0 -1
- package/dist/types/widgets/utils/chart-config/option-builders.test.d.ts +0 -1
- package/dist/types/widgets-v2/actions/brush-toggle/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/actions/relative-data/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/actions/stack-toggle/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/actions/zoom-toggle/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/bar/options.test.d.ts +0 -1
- package/dist/types/widgets-v2/category/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/echart/edge-label-clamp.test.d.ts +0 -1
- package/dist/types/widgets-v2/echart/shared-resize-observer.test.d.ts +0 -1
- package/dist/types/widgets-v2/histogram/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/histogram/options.test.d.ts +0 -1
- package/dist/types/widgets-v2/histogram/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/markdown/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/pie/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/pie/options.test.d.ts +0 -1
- package/dist/types/widgets-v2/scatterplot/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/scatterplot/options.test.d.ts +0 -1
- package/dist/types/widgets-v2/scatterplot/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/spread/band.test.d.ts +0 -1
- package/dist/types/widgets-v2/spread/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/state/labels.test.d.ts +0 -1
- package/dist/types/widgets-v2/stores/pipeline-middleware.test.d.ts +0 -1
- package/dist/types/widgets-v2/stores/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/stores/widget-store-registry.test.d.ts +0 -1
- package/dist/types/widgets-v2/table/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/table/helpers.test.d.ts +0 -1
- package/dist/types/widgets-v2/table/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/test-utils.d.ts +0 -52
- package/dist/types/widgets-v2/timeseries/download.test.d.ts +0 -1
- package/dist/types/widgets-v2/timeseries/options.test.d.ts +0 -1
- package/dist/types/widgets-v2/timeseries/transforms.test.d.ts +0 -1
- package/dist/types/widgets-v2/utils/merge-options.test.d.ts +0 -1
- package/dist/types/widgets-v2/utils/resolve-theme-color.test.d.ts +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carto/ps-react-ui",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.22.0",
|
|
4
4
|
"description": "CARTO's Professional Service React Material library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"devDependencies": {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"react-dom": "19.2.8",
|
|
18
18
|
"react-markdown": "10.1.0",
|
|
19
19
|
"zustand": "5.0.15",
|
|
20
|
-
"@carto/ps-utils": "2.1.
|
|
20
|
+
"@carto/ps-utils": "2.1.1",
|
|
21
21
|
"@carto/ps-common-types": "1.0.0"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"react-dom": "^19.2.0",
|
|
36
36
|
"react-markdown": "^10.0.0",
|
|
37
37
|
"zustand": "^5.0.0",
|
|
38
|
-
"@carto/ps-utils": "2.1.
|
|
38
|
+
"@carto/ps-utils": "2.1.1"
|
|
39
39
|
},
|
|
40
40
|
"exports": {
|
|
41
41
|
"./chat": {
|
|
@@ -244,7 +244,8 @@
|
|
|
244
244
|
"dependencies": {
|
|
245
245
|
"rehype-raw": "7.0.0",
|
|
246
246
|
"rehype-sanitize": "6.0.0",
|
|
247
|
-
"remark-gfm": "4.0.1"
|
|
247
|
+
"remark-gfm": "4.0.1",
|
|
248
|
+
"type-fest": "5.8.0"
|
|
248
249
|
},
|
|
249
250
|
"scripts": {
|
|
250
251
|
"dev": "vite build --watch --emptyOutDir=false",
|
|
@@ -1,15 +1,34 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
styled,
|
|
3
|
+
Typography,
|
|
4
|
+
type SxProps,
|
|
5
|
+
type Theme,
|
|
6
|
+
type TypographyProps,
|
|
7
|
+
} from '@mui/material'
|
|
8
|
+
import type { CSSObject } from '@mui/material/styles'
|
|
9
|
+
import type { FC } from 'react'
|
|
2
10
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
// The explicit annotation is what keeps this file's .d.ts emittable: the type
|
|
12
|
+
// `styled()` infers can only be named through a pnpm-internal @mui/system path
|
|
13
|
+
// (TS2742), and vite-plugin-dts drops the whole declaration when that happens.
|
|
14
|
+
//
|
|
15
|
+
// ponytail: `component` and `ref` still typecheck, but the prop re-typing that
|
|
16
|
+
// comes with them does not — `component="a" href="#"` is rejected here and
|
|
17
|
+
// accepted on `Typography` itself. Restoring it needs `OverridableComponent`,
|
|
18
|
+
// which a MUI v5 `styled()` result isn't assignable to under React 19 types.
|
|
19
|
+
// Consumers who need the polymorphism use `Typography` directly.
|
|
20
|
+
export const ChatMessageOverflow: FC<TypographyProps> = styled(Typography)(
|
|
21
|
+
() => ({
|
|
22
|
+
whiteSpace: 'pre-wrap',
|
|
23
|
+
overflowX: 'clip',
|
|
24
|
+
overflowWrap: 'break-word',
|
|
25
|
+
maxWidth: '100%',
|
|
26
|
+
}),
|
|
27
|
+
)
|
|
9
28
|
ChatMessageOverflow.displayName = 'ChatMessageOverflow'
|
|
10
29
|
|
|
11
30
|
export const styles = {
|
|
12
|
-
agentMessageContainer: (theme: Theme) => ({
|
|
31
|
+
agentMessageContainer: (theme: Theme): CSSObject => ({
|
|
13
32
|
...theme.typography.body2,
|
|
14
33
|
width: '100%',
|
|
15
34
|
display: 'flex',
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { Box, styled } from '@mui/material'
|
|
1
|
+
import { Box, styled, type BoxProps } from '@mui/material'
|
|
2
|
+
import type { FC } from 'react'
|
|
2
3
|
|
|
3
|
-
|
|
4
|
+
// See chat/bubbles/styles.ts: the annotation keeps the declaration emittable,
|
|
5
|
+
// and what it gives up on `component=`.
|
|
6
|
+
export const ChatActionsContainer: FC<BoxProps> = styled(Box)(({ theme }) => ({
|
|
4
7
|
display: 'flex',
|
|
5
8
|
alignItems: 'center',
|
|
6
9
|
gap: theme.spacing(0.5),
|
|
@@ -121,12 +121,14 @@ export const styles = {
|
|
|
121
121
|
padding: ({ spacing }) => spacing(1),
|
|
122
122
|
borderRadius: ({ spacing }) => spacing(0.5),
|
|
123
123
|
backgroundColor: ({ palette }) => palette.background.default,
|
|
124
|
-
fontFamily: ({ typography }) =>
|
|
124
|
+
fontFamily: ({ typography }): string =>
|
|
125
125
|
typography.code3?.fontFamily ??
|
|
126
126
|
typography.code1?.fontFamily ??
|
|
127
127
|
'monospace',
|
|
128
|
-
fontSize: ({ typography })
|
|
129
|
-
|
|
128
|
+
fontSize: ({ typography }): string | number =>
|
|
129
|
+
typography.code3?.fontSize ?? '0.75rem',
|
|
130
|
+
lineHeight: ({ typography }): string | number =>
|
|
131
|
+
typography.code3?.lineHeight ?? 1.333,
|
|
130
132
|
whiteSpace: 'pre-wrap',
|
|
131
133
|
wordBreak: 'break-word',
|
|
132
134
|
overflowY: 'auto',
|
|
@@ -164,11 +166,12 @@ export const styles = {
|
|
|
164
166
|
padding: ({ spacing }) => spacing(1),
|
|
165
167
|
background: ({ palette, spacing }) =>
|
|
166
168
|
`linear-gradient(to right, ${palette.action.hover} calc(${spacing(1)} + 3em), ${palette.background.default} calc(${spacing(1)} + 3em))`,
|
|
167
|
-
fontFamily: ({ typography }) =>
|
|
169
|
+
fontFamily: ({ typography }): string =>
|
|
168
170
|
typography.code3?.fontFamily ??
|
|
169
171
|
typography.code1?.fontFamily ??
|
|
170
172
|
'monospace',
|
|
171
|
-
fontSize: ({ typography })
|
|
173
|
+
fontSize: ({ typography }): string | number =>
|
|
174
|
+
typography.code3?.fontSize ?? '0.75rem',
|
|
172
175
|
whiteSpace: 'pre-wrap',
|
|
173
176
|
wordBreak: 'break-word',
|
|
174
177
|
lineHeight: 1.6,
|
|
@@ -40,7 +40,7 @@ export function BasemapsUI({
|
|
|
40
40
|
onChange,
|
|
41
41
|
TooltipProps,
|
|
42
42
|
}: BasemapsUIProps): JSX.Element {
|
|
43
|
-
const [
|
|
43
|
+
const [anchorEl, setAnchorEl] = useState<HTMLButtonElement | null>(null)
|
|
44
44
|
const [isOpen, setIsOpen] = useState(false)
|
|
45
45
|
const timeoutRef = useRef<NodeJS.Timeout | null>(null)
|
|
46
46
|
const [timer, setTimer] = useState<number | null>(null)
|
|
@@ -55,7 +55,7 @@ export function BasemapsUI({
|
|
|
55
55
|
const groupCount = Object.keys(groups).length
|
|
56
56
|
|
|
57
57
|
const handleClose = () => {
|
|
58
|
-
|
|
58
|
+
setAnchorEl(null)
|
|
59
59
|
setIsOpen(false)
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -93,7 +93,7 @@ export function BasemapsUI({
|
|
|
93
93
|
<IconButton
|
|
94
94
|
sx={styles.toggle}
|
|
95
95
|
onClick={(e) => {
|
|
96
|
-
|
|
96
|
+
setAnchorEl(e.currentTarget as HTMLButtonElement)
|
|
97
97
|
setIsOpen(true)
|
|
98
98
|
}}
|
|
99
99
|
>
|
|
@@ -105,7 +105,7 @@ export function BasemapsUI({
|
|
|
105
105
|
</Tooltip>
|
|
106
106
|
|
|
107
107
|
<ResponsiveDrawer
|
|
108
|
-
|
|
108
|
+
anchorEl={anchorEl}
|
|
109
109
|
slotProps={{
|
|
110
110
|
paper: {
|
|
111
111
|
sx: {
|
|
@@ -10,8 +10,8 @@ const theme = createTheme()
|
|
|
10
10
|
describe('ResponsiveDrawer', () => {
|
|
11
11
|
const mockOnChangeCollapsed = vi.fn()
|
|
12
12
|
|
|
13
|
-
// A real anchor element: the desktop Popover only opens when
|
|
14
|
-
// (the open-by-default guard), and positioning needs a DOM node.
|
|
13
|
+
// A real anchor element: the desktop Popover only opens when the anchor is
|
|
14
|
+
// non-null (the open-by-default guard), and positioning needs a DOM node.
|
|
15
15
|
let anchor: HTMLElement
|
|
16
16
|
|
|
17
17
|
const defaultProps = {
|
|
@@ -32,10 +32,20 @@ describe('ResponsiveDrawer', () => {
|
|
|
32
32
|
anchor.remove()
|
|
33
33
|
})
|
|
34
34
|
|
|
35
|
+
test('accepts the anchor through the deprecated `ref` alias', () => {
|
|
36
|
+
render(
|
|
37
|
+
<ThemeProvider theme={theme}>
|
|
38
|
+
<ResponsiveDrawer ref={anchor} {...defaultProps} />
|
|
39
|
+
</ThemeProvider>,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
expect(screen.getByTestId('drawer-content')).toBeDefined()
|
|
43
|
+
})
|
|
44
|
+
|
|
35
45
|
test('renders in desktop mode when isMobile is false', () => {
|
|
36
46
|
const { container } = render(
|
|
37
47
|
<ThemeProvider theme={theme}>
|
|
38
|
-
<ResponsiveDrawer
|
|
48
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} />
|
|
39
49
|
</ThemeProvider>,
|
|
40
50
|
)
|
|
41
51
|
|
|
@@ -50,12 +60,12 @@ describe('ResponsiveDrawer', () => {
|
|
|
50
60
|
expect(presentationElements.length).toBe(0)
|
|
51
61
|
})
|
|
52
62
|
|
|
53
|
-
test('does not open the desktop popover until the anchor
|
|
54
|
-
// Open-by-default guard: collapsed=false but
|
|
55
|
-
// popover never renders with a null anchorEl.
|
|
63
|
+
test('does not open the desktop popover until the anchor resolves', () => {
|
|
64
|
+
// Open-by-default guard: collapsed=false but anchorEl=null → stays closed so
|
|
65
|
+
// the popover never renders with a null anchorEl.
|
|
56
66
|
render(
|
|
57
67
|
<ThemeProvider theme={theme}>
|
|
58
|
-
<ResponsiveDrawer
|
|
68
|
+
<ResponsiveDrawer anchorEl={null} {...defaultProps} />
|
|
59
69
|
</ThemeProvider>,
|
|
60
70
|
)
|
|
61
71
|
expect(screen.queryByTestId('drawer-content')).toBeNull()
|
|
@@ -64,7 +74,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
64
74
|
test('renders in mobile mode when isMobile is true', () => {
|
|
65
75
|
render(
|
|
66
76
|
<ThemeProvider theme={theme}>
|
|
67
|
-
<ResponsiveDrawer
|
|
77
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} isMobile={true} />
|
|
68
78
|
</ThemeProvider>,
|
|
69
79
|
)
|
|
70
80
|
|
|
@@ -82,7 +92,11 @@ describe('ResponsiveDrawer', () => {
|
|
|
82
92
|
test('hides content when collapsed is true in desktop mode', () => {
|
|
83
93
|
render(
|
|
84
94
|
<ThemeProvider theme={theme}>
|
|
85
|
-
<ResponsiveDrawer
|
|
95
|
+
<ResponsiveDrawer
|
|
96
|
+
anchorEl={anchor}
|
|
97
|
+
{...defaultProps}
|
|
98
|
+
collapsed={true}
|
|
99
|
+
/>
|
|
86
100
|
</ThemeProvider>,
|
|
87
101
|
)
|
|
88
102
|
|
|
@@ -94,7 +108,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
94
108
|
test('closes drawer when clicking outside in mobile mode', () => {
|
|
95
109
|
const { container } = render(
|
|
96
110
|
<ThemeProvider theme={theme}>
|
|
97
|
-
<ResponsiveDrawer
|
|
111
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} isMobile={true} />
|
|
98
112
|
</ThemeProvider>,
|
|
99
113
|
)
|
|
100
114
|
|
|
@@ -119,7 +133,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
119
133
|
render(
|
|
120
134
|
<ThemeProvider theme={theme}>
|
|
121
135
|
<ResponsiveDrawer
|
|
122
|
-
|
|
136
|
+
anchorEl={anchor}
|
|
123
137
|
{...defaultProps}
|
|
124
138
|
position={position}
|
|
125
139
|
/>
|
|
@@ -132,7 +146,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
132
146
|
test('modal (default): renders an (invisible) backdrop', () => {
|
|
133
147
|
render(
|
|
134
148
|
<ThemeProvider theme={theme}>
|
|
135
|
-
<ResponsiveDrawer
|
|
149
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} />
|
|
136
150
|
</ThemeProvider>,
|
|
137
151
|
)
|
|
138
152
|
// The popover portals to document.body, so query the whole document.
|
|
@@ -145,7 +159,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
145
159
|
render(
|
|
146
160
|
<ThemeProvider theme={theme}>
|
|
147
161
|
<ResponsiveDrawer
|
|
148
|
-
|
|
162
|
+
anchorEl={anchor}
|
|
149
163
|
{...defaultProps}
|
|
150
164
|
slotProps={slotProps}
|
|
151
165
|
/>
|
|
@@ -157,7 +171,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
157
171
|
test('defaults to portaling into document.body when container is omitted', () => {
|
|
158
172
|
render(
|
|
159
173
|
<ThemeProvider theme={theme}>
|
|
160
|
-
<ResponsiveDrawer
|
|
174
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} />
|
|
161
175
|
</ThemeProvider>,
|
|
162
176
|
)
|
|
163
177
|
const content = screen.getByTestId('drawer-content')
|
|
@@ -172,7 +186,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
172
186
|
render(
|
|
173
187
|
<ThemeProvider theme={theme}>
|
|
174
188
|
<ResponsiveDrawer
|
|
175
|
-
|
|
189
|
+
anchorEl={anchor}
|
|
176
190
|
{...defaultProps}
|
|
177
191
|
container={customContainer}
|
|
178
192
|
/>
|
|
@@ -197,7 +211,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
197
211
|
render(
|
|
198
212
|
<ThemeProvider theme={theme}>
|
|
199
213
|
<ResponsiveDrawer
|
|
200
|
-
|
|
214
|
+
anchorEl={anchor}
|
|
201
215
|
{...defaultProps}
|
|
202
216
|
container={customContainer}
|
|
203
217
|
/>
|
|
@@ -225,7 +239,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
225
239
|
test('leaves paper maxHeight unset when no container is given', () => {
|
|
226
240
|
render(
|
|
227
241
|
<ThemeProvider theme={theme}>
|
|
228
|
-
<ResponsiveDrawer
|
|
242
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} />
|
|
229
243
|
</ThemeProvider>,
|
|
230
244
|
)
|
|
231
245
|
const paper = document.querySelector<HTMLElement>('.MuiPopover-paper')!
|
|
@@ -247,7 +261,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
247
261
|
render(
|
|
248
262
|
<ThemeProvider theme={theme}>
|
|
249
263
|
<ResponsiveDrawer
|
|
250
|
-
|
|
264
|
+
anchorEl={anchor}
|
|
251
265
|
{...defaultProps}
|
|
252
266
|
container={customContainer}
|
|
253
267
|
/>
|
|
@@ -271,7 +285,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
271
285
|
render(
|
|
272
286
|
<ThemeProvider theme={theme}>
|
|
273
287
|
<ResponsiveDrawer
|
|
274
|
-
|
|
288
|
+
anchorEl={anchor}
|
|
275
289
|
{...defaultProps}
|
|
276
290
|
container={customContainer}
|
|
277
291
|
slotProps={
|
|
@@ -297,7 +311,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
297
311
|
render(
|
|
298
312
|
<ThemeProvider theme={theme}>
|
|
299
313
|
<ResponsiveDrawer
|
|
300
|
-
|
|
314
|
+
anchorEl={anchor}
|
|
301
315
|
{...defaultProps}
|
|
302
316
|
sx={{ zIndex: 9999 }}
|
|
303
317
|
/>
|
|
@@ -311,7 +325,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
311
325
|
test('non-modal: renders no backdrop', () => {
|
|
312
326
|
render(
|
|
313
327
|
<ThemeProvider theme={theme}>
|
|
314
|
-
<ResponsiveDrawer
|
|
328
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} modal={false} />
|
|
315
329
|
</ThemeProvider>,
|
|
316
330
|
)
|
|
317
331
|
expect(document.querySelector('.MuiBackdrop-root')).toBeNull()
|
|
@@ -322,7 +336,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
322
336
|
test('non-modal: Escape does not close the panel', () => {
|
|
323
337
|
render(
|
|
324
338
|
<ThemeProvider theme={theme}>
|
|
325
|
-
<ResponsiveDrawer
|
|
339
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} modal={false} />
|
|
326
340
|
</ThemeProvider>,
|
|
327
341
|
)
|
|
328
342
|
// Fire on a node inside the Modal root so it reaches the Modal's key handler.
|
|
@@ -336,7 +350,7 @@ describe('ResponsiveDrawer', () => {
|
|
|
336
350
|
test('modal (default): Escape closes the panel', () => {
|
|
337
351
|
render(
|
|
338
352
|
<ThemeProvider theme={theme}>
|
|
339
|
-
<ResponsiveDrawer
|
|
353
|
+
<ResponsiveDrawer anchorEl={anchor} {...defaultProps} />
|
|
340
354
|
</ThemeProvider>,
|
|
341
355
|
)
|
|
342
356
|
fireEvent.keyDown(screen.getByTestId('drawer-content'), {
|
|
@@ -14,10 +14,7 @@ import {
|
|
|
14
14
|
} from 'react'
|
|
15
15
|
|
|
16
16
|
type ResponsiveDrawerPosition =
|
|
17
|
-
| 'top-left'
|
|
18
|
-
| 'top-right'
|
|
19
|
-
| 'bottom-left'
|
|
20
|
-
| 'bottom-right'
|
|
17
|
+
'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'
|
|
21
18
|
|
|
22
19
|
/** Placement of the panel relative to its anchor (desktop popover only). */
|
|
23
20
|
export type ResponsiveDrawerPlacement = 'side' | 'overlay'
|
|
@@ -59,6 +56,7 @@ export function ResponsiveDrawer<
|
|
|
59
56
|
slotProps?: PopoverProps['slotProps']
|
|
60
57
|
},
|
|
61
58
|
>({
|
|
59
|
+
anchorEl,
|
|
62
60
|
ref,
|
|
63
61
|
children,
|
|
64
62
|
collapsed,
|
|
@@ -72,8 +70,15 @@ export function ResponsiveDrawer<
|
|
|
72
70
|
placement = 'side',
|
|
73
71
|
}: Required<Pick<T, 'collapsed' | 'onChangeCollapsed' | 'position'>> &
|
|
74
72
|
Pick<PopoverProps, 'slotProps' | 'sx' | 'container'> & {
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
/** Element the desktop popover is anchored to. */
|
|
74
|
+
anchorEl?: HTMLElement | null
|
|
75
|
+
/**
|
|
76
|
+
* @deprecated Use `anchorEl`. A JSX prop named `ref` is non-reactive under
|
|
77
|
+
* the React Compiler, so a state-held anchor stays frozen at its initial
|
|
78
|
+
* `null` and the popover never opens. Removed in the next major.
|
|
79
|
+
*/
|
|
80
|
+
ref?: HTMLElement | null
|
|
81
|
+
isMobile?: boolean
|
|
77
82
|
children: ReactNode
|
|
78
83
|
/**
|
|
79
84
|
* When `false`, the desktop popover is **non-modal**: no backdrop, clicks
|
|
@@ -91,6 +96,8 @@ export function ResponsiveDrawer<
|
|
|
91
96
|
placement?: ResponsiveDrawerPlacement
|
|
92
97
|
}) {
|
|
93
98
|
// Popover position is frozen on open — re-measure on content resize (callback ref: portal mounts after open).
|
|
99
|
+
const anchor = anchorEl ?? ref ?? null
|
|
100
|
+
|
|
94
101
|
const popoverActions = useRef<PopoverActions>(null)
|
|
95
102
|
const observerRef = useRef<ResizeObserver | null>(null)
|
|
96
103
|
const observeContent = useCallback((el: HTMLDivElement | null) => {
|
|
@@ -191,8 +198,8 @@ export function ResponsiveDrawer<
|
|
|
191
198
|
action={popoverActions}
|
|
192
199
|
sx={sx}
|
|
193
200
|
container={container}
|
|
194
|
-
anchorEl={
|
|
195
|
-
open={!collapsed &&
|
|
201
|
+
anchorEl={anchor}
|
|
202
|
+
open={!collapsed && anchor != null}
|
|
196
203
|
onClose={modal ? () => onChangeCollapsed(true) : undefined}
|
|
197
204
|
hideBackdrop={!modal}
|
|
198
205
|
disableScrollLock={!modal}
|
|
@@ -177,6 +177,25 @@ describe('<LegendRow> composition', () => {
|
|
|
177
177
|
// …and the note renders exactly once, after all variables.
|
|
178
178
|
expect(screen.getAllByText('One note for the whole layer.')).toHaveLength(1)
|
|
179
179
|
})
|
|
180
|
+
|
|
181
|
+
// These render with no ThemeProvider, i.e. MUI's default theme, whose
|
|
182
|
+
// defaultVariantMapping has no `caption` entry and falls back to a `span`.
|
|
183
|
+
// An inline box ignores the line-height, so the type must not depend on a
|
|
184
|
+
// theme-level variantMapping to come out as a block.
|
|
185
|
+
it('renders the note and the subtitle as blocks, not inline', () => {
|
|
186
|
+
renderRow('boxes', [
|
|
187
|
+
{
|
|
188
|
+
id: 'a',
|
|
189
|
+
name: 'A',
|
|
190
|
+
subtitle: 'Zoom 0-12',
|
|
191
|
+
helperText: 'A note.',
|
|
192
|
+
variables: [cat],
|
|
193
|
+
},
|
|
194
|
+
])
|
|
195
|
+
|
|
196
|
+
expect(screen.getByText('A note.').tagName).toBe('P')
|
|
197
|
+
expect(screen.getByText('Zoom 0-12').tagName).toBe('P')
|
|
198
|
+
})
|
|
180
199
|
})
|
|
181
200
|
|
|
182
201
|
describe('<LegendRow> grouped (inside Legend.Group)', () => {
|
|
@@ -112,7 +112,11 @@ export function LegendRow({ layerId, children }: LegendRowProps) {
|
|
|
112
112
|
)}
|
|
113
113
|
</Box>
|
|
114
114
|
{layer.subtitle && !effectivelyCollapsed && (
|
|
115
|
-
<Typography
|
|
115
|
+
<Typography
|
|
116
|
+
variant='caption'
|
|
117
|
+
color='text.secondary'
|
|
118
|
+
component='p'
|
|
119
|
+
>
|
|
116
120
|
{layer.subtitle}
|
|
117
121
|
</Typography>
|
|
118
122
|
)}
|
|
@@ -136,7 +140,16 @@ export function LegendRow({ layerId, children }: LegendRowProps) {
|
|
|
136
140
|
{layer.helperText && (
|
|
137
141
|
<Box sx={[styles.footer, inGroup && styles.footerGrouped]}>
|
|
138
142
|
{typeof layer.helperText === 'string' ? (
|
|
139
|
-
|
|
143
|
+
// `component` is load-bearing: MUI's defaultVariantMapping has
|
|
144
|
+
// no entry for `caption`, so it falls back to a `span` and the
|
|
145
|
+
// line-height stops governing the box. Meridian maps it to `p`
|
|
146
|
+
// by theme, which makes the box type depend on the consumer's
|
|
147
|
+
// theme rather than on this component.
|
|
148
|
+
<Typography
|
|
149
|
+
variant='caption'
|
|
150
|
+
color='text.secondary'
|
|
151
|
+
component='p'
|
|
152
|
+
>
|
|
140
153
|
{layer.helperText}
|
|
141
154
|
</Typography>
|
|
142
155
|
) : (
|
|
@@ -79,7 +79,11 @@ export function buildGridConfig(hasLegend: boolean, theme: Theme) {
|
|
|
79
79
|
* @param theme - MUI theme providing the typography token and palette
|
|
80
80
|
* @returns `{ fontSize, fontFamily, color }` for an ECharts `axisLabel`
|
|
81
81
|
*/
|
|
82
|
-
export function buildAxisLabelStyle(theme: Theme) {
|
|
82
|
+
export function buildAxisLabelStyle(theme: Theme): {
|
|
83
|
+
fontSize: string | number | undefined
|
|
84
|
+
fontFamily: string | undefined
|
|
85
|
+
color: string
|
|
86
|
+
} {
|
|
83
87
|
return {
|
|
84
88
|
fontSize: theme.typography.overlineDelicate?.fontSize,
|
|
85
89
|
fontFamily: theme.typography.overlineDelicate?.fontFamily,
|
|
@@ -104,6 +104,68 @@ describe('<FullScreen.Slot> — render-prop body + portal', () => {
|
|
|
104
104
|
expect(closes.length).toBeGreaterThan(0)
|
|
105
105
|
})
|
|
106
106
|
|
|
107
|
+
it('renders `actions` in the modal header, next to the close button', async () => {
|
|
108
|
+
render(
|
|
109
|
+
<Provider id='fs-actions' data={[]}>
|
|
110
|
+
<FullScreen.Trigger labels={{ open: 'OpenT', close: 'CloseT' }} />
|
|
111
|
+
<FullScreen.Slot
|
|
112
|
+
title='With actions'
|
|
113
|
+
actions={<button type='button'>Download</button>}
|
|
114
|
+
>
|
|
115
|
+
{() => <div>body</div>}
|
|
116
|
+
</FullScreen.Slot>
|
|
117
|
+
</Provider>,
|
|
118
|
+
)
|
|
119
|
+
fireEvent.click(screen.getByLabelText('OpenT'))
|
|
120
|
+
const action = await screen.findByText('Download')
|
|
121
|
+
// Same header row as the close button — the wrapper's action row is
|
|
122
|
+
// covered by the dialog, so the modal has to carry them itself.
|
|
123
|
+
const header = action.closest('.MuiDialogTitle-root')
|
|
124
|
+
expect(header).toBeTruthy()
|
|
125
|
+
expect(
|
|
126
|
+
header?.querySelector('[aria-label="Exit full screen"]'),
|
|
127
|
+
).toBeTruthy()
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
it('keeps `actions` mounted across a fullscreen toggle', () => {
|
|
131
|
+
render(
|
|
132
|
+
<Provider id='fs-actions-keep' data={[]}>
|
|
133
|
+
<FullScreen.Trigger labels={{ open: 'OpenT', close: 'CloseT' }} />
|
|
134
|
+
<FullScreen.Slot
|
|
135
|
+
title='Y'
|
|
136
|
+
actions={<button type='button'>Download</button>}
|
|
137
|
+
>
|
|
138
|
+
{() => <div>body</div>}
|
|
139
|
+
</FullScreen.Slot>
|
|
140
|
+
</Provider>,
|
|
141
|
+
)
|
|
142
|
+
fireEvent.click(screen.getByLabelText('OpenT'))
|
|
143
|
+
const before = screen.getByText('Download')
|
|
144
|
+
fireEvent.click(screen.getByLabelText('CloseT'))
|
|
145
|
+
fireEvent.click(screen.getByLabelText('OpenT'))
|
|
146
|
+
expect(screen.getByText('Download')).toBe(before)
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
it('merges `paperSx` over the default dialog paper size', () => {
|
|
150
|
+
render(
|
|
151
|
+
<Provider id='fs-paper' data={[]}>
|
|
152
|
+
<FullScreen.Trigger />
|
|
153
|
+
<FullScreen.Slot title='P' paperSx={{ width: 560, height: 'auto' }}>
|
|
154
|
+
{() => <div>body</div>}
|
|
155
|
+
</FullScreen.Slot>
|
|
156
|
+
</Provider>,
|
|
157
|
+
)
|
|
158
|
+
fireEvent.click(screen.getByLabelText('Open in full screen'))
|
|
159
|
+
const paper = document.querySelector<HTMLElement>('.MuiDialog-paper')
|
|
160
|
+
expect(paper).toBeTruthy()
|
|
161
|
+
const css = getComputedStyle(paper!)
|
|
162
|
+
expect(css.width).toBe('560px')
|
|
163
|
+
expect(css.height).toBe('auto')
|
|
164
|
+
// Untouched keys still come from the default — `90vw`, resolved against
|
|
165
|
+
// the test viewport (1024px).
|
|
166
|
+
expect(css.maxWidth).toBe('921.6px')
|
|
167
|
+
})
|
|
168
|
+
|
|
107
169
|
it('keeps the same DOM node across the fullscreen toggle (portal reparent)', () => {
|
|
108
170
|
render(
|
|
109
171
|
<Provider id='fs-reparent' data={[]}>
|