@carto/ps-react-ui 4.7.1 → 4.9.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/category-DwaeYjpX.js +656 -0
- package/dist/category-DwaeYjpX.js.map +1 -0
- package/dist/change-column-Cidl_M-4.js +1110 -0
- package/dist/change-column-Cidl_M-4.js.map +1 -0
- package/dist/data-zoom-layout-BH0LPwSy.js +28 -0
- package/dist/data-zoom-layout-BH0LPwSy.js.map +1 -0
- package/dist/echart-CU0KmClP.js +176 -0
- package/dist/echart-CU0KmClP.js.map +1 -0
- package/dist/exports-Cx-f6m6U.js +63 -0
- package/dist/exports-Cx-f6m6U.js.map +1 -0
- package/dist/formula-DuC0NQLH.js +79 -0
- package/dist/formula-DuC0NQLH.js.map +1 -0
- package/dist/markdown-BD1jcknS.js +8326 -0
- package/dist/markdown-BD1jcknS.js.map +1 -0
- package/dist/{styles-BYTyKQFP.js → option-builders-F-c9ELi1.js} +25 -45
- package/dist/option-builders-F-c9ELi1.js.map +1 -0
- package/dist/png-item-CS4z1iSH.js +45 -0
- package/dist/png-item-CS4z1iSH.js.map +1 -0
- package/dist/range-l4fNHLEg.js +213 -0
- package/dist/range-l4fNHLEg.js.map +1 -0
- package/dist/resolve-theme-color-BdojIw0K.js +47 -0
- package/dist/resolve-theme-color-BdojIw0K.js.map +1 -0
- package/dist/spread-CTuIXZSM.js +67 -0
- package/dist/spread-CTuIXZSM.js.map +1 -0
- package/dist/style-DVnT6HC1.js +131 -0
- package/dist/style-DVnT6HC1.js.map +1 -0
- package/dist/styles-cohnxh9F.js +23 -0
- package/dist/styles-cohnxh9F.js.map +1 -0
- package/dist/table-CQCAnDLb.js +388 -0
- package/dist/table-CQCAnDLb.js.map +1 -0
- package/dist/transforms-Cdx4fkU5.js +106 -0
- package/dist/transforms-Cdx4fkU5.js.map +1 -0
- package/dist/types/widgets/echart/utils.test.d.ts +1 -0
- package/dist/types/widgets/formula/config.test.d.ts +1 -0
- package/dist/types/widgets/stores/widget-store-branches.test.d.ts +1 -0
- package/dist/types/widgets/table/config.test.d.ts +1 -0
- package/dist/types/widgets-v2/actions/brush-toggle/brush-toggle.d.ts +56 -0
- package/dist/types/widgets-v2/actions/brush-toggle/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/brush-toggle/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/brush-toggle/style.d.ts +12 -0
- package/dist/types/widgets-v2/actions/brush-toggle/transforms.d.ts +11 -0
- package/dist/types/widgets-v2/actions/brush-toggle/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/actions/change-column/change-column-icon.d.ts +2 -0
- package/dist/types/widgets-v2/actions/change-column/change-column.d.ts +29 -0
- package/dist/types/widgets-v2/actions/change-column/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/change-column/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/change-column/sortable-column-item.d.ts +14 -0
- package/dist/types/widgets-v2/actions/change-column/style.d.ts +33 -0
- package/dist/types/widgets-v2/actions/change-column/types.d.ts +10 -0
- package/dist/types/widgets-v2/actions/download/download.d.ts +18 -0
- package/dist/types/widgets-v2/actions/download/exports.d.ts +37 -0
- package/dist/types/widgets-v2/actions/download/icons.d.ts +12 -0
- package/dist/types/widgets-v2/actions/download/index.d.ts +6 -0
- package/dist/types/widgets-v2/actions/download/labels.d.ts +11 -0
- package/dist/types/widgets-v2/actions/download/png-item.d.ts +24 -0
- package/dist/types/widgets-v2/actions/download/style.d.ts +1 -0
- package/dist/types/widgets-v2/actions/download/types.d.ts +35 -0
- package/dist/types/widgets-v2/actions/fullscreen/fullscreen.d.ts +59 -0
- package/dist/types/widgets-v2/actions/fullscreen/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/fullscreen/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/fullscreen/style.d.ts +48 -0
- package/dist/types/widgets-v2/actions/fullscreen/types.d.ts +14 -0
- package/dist/types/widgets-v2/actions/index.d.ts +9 -0
- package/dist/types/widgets-v2/actions/lock-selection/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/lock-selection/labels.d.ts +6 -0
- package/dist/types/widgets-v2/actions/lock-selection/lock-selection.d.ts +36 -0
- package/dist/types/widgets-v2/actions/lock-selection/style.d.ts +12 -0
- package/dist/types/widgets-v2/actions/lock-selection/transforms.d.ts +6 -0
- package/dist/types/widgets-v2/actions/relative-data/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/relative-data/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/relative-data/relative-data.d.ts +39 -0
- package/dist/types/widgets-v2/actions/relative-data/style.d.ts +12 -0
- package/dist/types/widgets-v2/actions/relative-data/transforms.d.ts +30 -0
- package/dist/types/widgets-v2/actions/relative-data/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/actions/searcher/filter.d.ts +6 -0
- package/dist/types/widgets-v2/actions/searcher/index.d.ts +4 -0
- package/dist/types/widgets-v2/actions/searcher/labels.d.ts +7 -0
- package/dist/types/widgets-v2/actions/searcher/searcher-toggle.d.ts +23 -0
- package/dist/types/widgets-v2/actions/searcher/searcher.d.ts +11 -0
- package/dist/types/widgets-v2/actions/searcher/style.d.ts +16 -0
- package/dist/types/widgets-v2/actions/stack-toggle/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/stack-toggle/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/stack-toggle/stack-toggle.d.ts +10 -0
- package/dist/types/widgets-v2/actions/stack-toggle/style.d.ts +12 -0
- package/dist/types/widgets-v2/actions/stack-toggle/transforms.d.ts +13 -0
- package/dist/types/widgets-v2/actions/stack-toggle/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/actions/zoom-toggle/index.d.ts +3 -0
- package/dist/types/widgets-v2/actions/zoom-toggle/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/zoom-toggle/style.d.ts +12 -0
- package/dist/types/widgets-v2/actions/zoom-toggle/transforms.d.ts +51 -0
- package/dist/types/widgets-v2/actions/zoom-toggle/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/actions/zoom-toggle/zoom-toggle.d.ts +35 -0
- package/dist/types/widgets-v2/bar/download.d.ts +24 -0
- package/dist/types/widgets-v2/bar/index.d.ts +4 -0
- package/dist/types/widgets-v2/bar/options.d.ts +43 -0
- package/dist/types/widgets-v2/bar/options.test.d.ts +1 -0
- package/dist/types/widgets-v2/bar/skeleton.d.ts +6 -0
- package/dist/types/widgets-v2/bar/types.d.ts +46 -0
- package/dist/types/widgets-v2/category/category-ui.d.ts +81 -0
- package/dist/types/widgets-v2/category/category.d.ts +48 -0
- package/dist/types/widgets-v2/category/components/category-bar-stacked.d.ts +28 -0
- package/dist/types/widgets-v2/category/components/category-bar.d.ts +23 -0
- package/dist/types/widgets-v2/category/components/category-legend.d.ts +18 -0
- package/dist/types/widgets-v2/category/components/category-row-multi.d.ts +31 -0
- package/dist/types/widgets-v2/category/components/category-row-other.d.ts +13 -0
- package/dist/types/widgets-v2/category/components/category-row-single.d.ts +28 -0
- package/dist/types/widgets-v2/category/components/category-row-stacked.d.ts +38 -0
- package/dist/types/widgets-v2/category/download.d.ts +16 -0
- package/dist/types/widgets-v2/category/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/category/index.d.ts +10 -0
- package/dist/types/widgets-v2/category/skeleton.d.ts +11 -0
- package/dist/types/widgets-v2/category/style.d.ts +166 -0
- package/dist/types/widgets-v2/category/types.d.ts +53 -0
- package/dist/types/widgets-v2/echart/echart-ui.d.ts +44 -0
- package/dist/types/widgets-v2/echart/echart.d.ts +75 -0
- package/dist/types/widgets-v2/echart/index.d.ts +4 -0
- package/dist/types/widgets-v2/echart/shared-resize-observer.d.ts +5 -0
- package/dist/types/widgets-v2/echart/shared-resize-observer.test.d.ts +1 -0
- package/dist/types/widgets-v2/echart/style.d.ts +6 -0
- package/dist/types/widgets-v2/echart/use-chart-selection.d.ts +51 -0
- package/dist/types/widgets-v2/formula/delta.d.ts +22 -0
- package/dist/types/widgets-v2/formula/download.d.ts +20 -0
- package/dist/types/widgets-v2/formula/formula-ui.d.ts +20 -0
- package/dist/types/widgets-v2/formula/formula.d.ts +8 -0
- package/dist/types/widgets-v2/formula/index.d.ts +11 -0
- package/dist/types/widgets-v2/formula/note.d.ts +11 -0
- package/dist/types/widgets-v2/formula/prefix.d.ts +12 -0
- package/dist/types/widgets-v2/formula/series.d.ts +16 -0
- package/dist/types/widgets-v2/formula/skeleton.d.ts +4 -0
- package/dist/types/widgets-v2/formula/style.d.ts +29 -0
- package/dist/types/widgets-v2/formula/suffix.d.ts +12 -0
- package/dist/types/widgets-v2/formula/types.d.ts +43 -0
- package/dist/types/widgets-v2/formula/value.d.ts +14 -0
- package/dist/types/widgets-v2/histogram/download.d.ts +17 -0
- package/dist/types/widgets-v2/histogram/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/histogram/index.d.ts +5 -0
- package/dist/types/widgets-v2/histogram/options.d.ts +42 -0
- package/dist/types/widgets-v2/histogram/options.test.d.ts +1 -0
- package/dist/types/widgets-v2/histogram/skeleton.d.ts +9 -0
- package/dist/types/widgets-v2/histogram/transforms.d.ts +17 -0
- package/dist/types/widgets-v2/histogram/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/histogram/types.d.ts +51 -0
- package/dist/types/widgets-v2/index.d.ts +108 -0
- package/dist/types/widgets-v2/markdown/download.d.ts +16 -0
- package/dist/types/widgets-v2/markdown/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/markdown/index.d.ts +6 -0
- package/dist/types/widgets-v2/markdown/markdown-content.d.ts +34 -0
- package/dist/types/widgets-v2/markdown/markdown-ui.d.ts +12 -0
- package/dist/types/widgets-v2/markdown/markdown.d.ts +6 -0
- package/dist/types/widgets-v2/markdown/skeleton.d.ts +4 -0
- package/dist/types/widgets-v2/markdown/style.d.ts +61 -0
- package/dist/types/widgets-v2/markdown/types.d.ts +4 -0
- package/dist/types/widgets-v2/note/labels.d.ts +5 -0
- package/dist/types/widgets-v2/note/style.d.ts +26 -0
- package/dist/types/widgets-v2/note/widget-note.d.ts +46 -0
- package/dist/types/widgets-v2/pie/download.d.ts +17 -0
- package/dist/types/widgets-v2/pie/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/pie/index.d.ts +4 -0
- package/dist/types/widgets-v2/pie/options.d.ts +35 -0
- package/dist/types/widgets-v2/pie/options.test.d.ts +1 -0
- package/dist/types/widgets-v2/pie/skeleton.d.ts +4 -0
- package/dist/types/widgets-v2/pie/types.d.ts +57 -0
- package/dist/types/widgets-v2/provider/widget-provider.d.ts +32 -0
- package/dist/types/widgets-v2/range/index.d.ts +4 -0
- package/dist/types/widgets-v2/range/range-ui.d.ts +27 -0
- package/dist/types/widgets-v2/range/range.d.ts +24 -0
- package/dist/types/widgets-v2/range/skeleton.d.ts +9 -0
- package/dist/types/widgets-v2/range/style.d.ts +40 -0
- package/dist/types/widgets-v2/range/types.d.ts +37 -0
- package/dist/types/widgets-v2/scatterplot/download.d.ts +16 -0
- package/dist/types/widgets-v2/scatterplot/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/scatterplot/index.d.ts +5 -0
- package/dist/types/widgets-v2/scatterplot/options.d.ts +42 -0
- package/dist/types/widgets-v2/scatterplot/options.test.d.ts +1 -0
- package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +12 -0
- package/dist/types/widgets-v2/scatterplot/transforms.d.ts +17 -0
- package/dist/types/widgets-v2/scatterplot/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/scatterplot/types.d.ts +54 -0
- package/dist/types/widgets-v2/selection-summary/labels.d.ts +6 -0
- package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +22 -0
- package/dist/types/widgets-v2/selection-summary/style.d.ts +23 -0
- package/dist/types/widgets-v2/spread/download.d.ts +15 -0
- package/dist/types/widgets-v2/spread/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/spread/index.d.ts +6 -0
- package/dist/types/widgets-v2/spread/separator.d.ts +7 -0
- package/dist/types/widgets-v2/spread/skeleton.d.ts +9 -0
- package/dist/types/widgets-v2/spread/spread-ui.d.ts +18 -0
- package/dist/types/widgets-v2/spread/spread.d.ts +5 -0
- package/dist/types/widgets-v2/spread/types.d.ts +25 -0
- package/dist/types/widgets-v2/state/labels.d.ts +7 -0
- package/dist/types/widgets-v2/state/labels.test.d.ts +1 -0
- package/dist/types/widgets-v2/state/style.d.ts +19 -0
- package/dist/types/widgets-v2/state/widget-state.d.ts +19 -0
- package/dist/types/widgets-v2/stores/index.d.ts +8 -0
- package/dist/types/widgets-v2/stores/pipeline-middleware.d.ts +5 -0
- package/dist/types/widgets-v2/stores/pipeline-middleware.test.d.ts +1 -0
- package/dist/types/widgets-v2/stores/transforms.d.ts +4 -0
- package/dist/types/widgets-v2/stores/transforms.test.d.ts +1 -0
- package/dist/types/widgets-v2/stores/types.d.ts +55 -0
- package/dist/types/widgets-v2/stores/use-echart-instance.d.ts +15 -0
- package/dist/types/widgets-v2/stores/use-transform-enabled.d.ts +17 -0
- package/dist/types/widgets-v2/stores/use-transform.d.ts +12 -0
- package/dist/types/widgets-v2/stores/widget-context.d.ts +2 -0
- package/dist/types/widgets-v2/stores/widget-store-registry.d.ts +74 -0
- package/dist/types/widgets-v2/stores/widget-store-registry.test.d.ts +1 -0
- package/dist/types/widgets-v2/subheader/style.d.ts +10 -0
- package/dist/types/widgets-v2/subheader/subheader.d.ts +11 -0
- package/dist/types/widgets-v2/table/download.d.ts +18 -0
- package/dist/types/widgets-v2/table/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/table/helpers.d.ts +32 -0
- package/dist/types/widgets-v2/table/helpers.test.d.ts +1 -0
- package/dist/types/widgets-v2/table/index.d.ts +7 -0
- package/dist/types/widgets-v2/table/labels.d.ts +22 -0
- package/dist/types/widgets-v2/table/skeleton.d.ts +22 -0
- package/dist/types/widgets-v2/table/style.d.ts +40 -0
- package/dist/types/widgets-v2/table/table-ui.d.ts +44 -0
- package/dist/types/widgets-v2/table/table.d.ts +50 -0
- package/dist/types/widgets-v2/table/types.d.ts +48 -0
- package/dist/types/widgets-v2/test-utils.d.ts +52 -0
- package/dist/types/widgets-v2/timeseries/download.d.ts +17 -0
- package/dist/types/widgets-v2/timeseries/download.test.d.ts +1 -0
- package/dist/types/widgets-v2/timeseries/index.d.ts +4 -0
- package/dist/types/widgets-v2/timeseries/options.d.ts +39 -0
- package/dist/types/widgets-v2/timeseries/options.test.d.ts +1 -0
- package/dist/types/widgets-v2/timeseries/skeleton.d.ts +8 -0
- package/dist/types/widgets-v2/timeseries/types.d.ts +60 -0
- package/dist/types/widgets-v2/toolbox/labels.d.ts +5 -0
- package/dist/types/widgets-v2/toolbox/style.d.ts +30 -0
- package/dist/types/widgets-v2/toolbox/toolbox.d.ts +49 -0
- package/dist/types/widgets-v2/types.d.ts +25 -0
- package/dist/types/widgets-v2/utils/data-zoom-layout.d.ts +11 -0
- package/dist/types/widgets-v2/utils/index.d.ts +3 -0
- package/dist/types/widgets-v2/utils/merge-options.d.ts +12 -0
- package/dist/types/widgets-v2/utils/merge-options.test.d.ts +1 -0
- package/dist/types/widgets-v2/utils/resolve-theme-color.d.ts +18 -0
- package/dist/types/widgets-v2/utils/resolve-theme-color.test.d.ts +1 -0
- package/dist/types/widgets-v2/wrapper/index.d.ts +4 -0
- package/dist/types/widgets-v2/wrapper/labels.d.ts +6 -0
- package/dist/types/widgets-v2/wrapper/style.d.ts +111 -0
- package/dist/types/widgets-v2/wrapper/widget-actions.d.ts +22 -0
- package/dist/types/widgets-v2/wrapper/widget-content.d.ts +12 -0
- package/dist/types/widgets-v2/wrapper/widget-wrapper.d.ts +51 -0
- package/dist/use-transform-DXPN3nY7.js +110 -0
- package/dist/use-transform-DXPN3nY7.js.map +1 -0
- package/dist/widget-context-DTGO0Yta.js +13 -0
- package/dist/widget-context-DTGO0Yta.js.map +1 -0
- package/dist/widget-store-registry-_W4Z4xp-.js +178 -0
- package/dist/widget-store-registry-_W4Z4xp-.js.map +1 -0
- package/dist/widgets/bar.js +14 -13
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/histogram.js +8 -7
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/pie.js +19 -18
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/scatterplot.js +8 -7
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/timeseries.js +11 -10
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/utils.js +8 -7
- package/dist/widgets/utils.js.map +1 -1
- package/dist/widgets-v2/actions.js +43 -0
- package/dist/widgets-v2/actions.js.map +1 -0
- package/dist/widgets-v2/bar.js +330 -0
- package/dist/widgets-v2/bar.js.map +1 -0
- package/dist/widgets-v2/category.js +104 -0
- package/dist/widgets-v2/category.js.map +1 -0
- package/dist/widgets-v2/echart.js +57 -0
- package/dist/widgets-v2/echart.js.map +1 -0
- package/dist/widgets-v2/formula.js +74 -0
- package/dist/widgets-v2/formula.js.map +1 -0
- package/dist/widgets-v2/histogram.js +353 -0
- package/dist/widgets-v2/histogram.js.map +1 -0
- package/dist/widgets-v2/markdown.js +68 -0
- package/dist/widgets-v2/markdown.js.map +1 -0
- package/dist/widgets-v2/pie.js +387 -0
- package/dist/widgets-v2/pie.js.map +1 -0
- package/dist/widgets-v2/range.js +52 -0
- package/dist/widgets-v2/range.js.map +1 -0
- package/dist/widgets-v2/scatterplot.js +411 -0
- package/dist/widgets-v2/scatterplot.js.map +1 -0
- package/dist/widgets-v2/spread.js +72 -0
- package/dist/widgets-v2/spread.js.map +1 -0
- package/dist/widgets-v2/stores.js +42 -0
- package/dist/widgets-v2/stores.js.map +1 -0
- package/dist/widgets-v2/table.js +78 -0
- package/dist/widgets-v2/table.js.map +1 -0
- package/dist/widgets-v2/timeseries.js +358 -0
- package/dist/widgets-v2/timeseries.js.map +1 -0
- package/dist/widgets-v2/utils.js +8 -0
- package/dist/widgets-v2/utils.js.map +1 -0
- package/dist/widgets-v2.js +953 -0
- package/dist/widgets-v2.js.map +1 -0
- package/package.json +71 -3
- package/src/components/lasso-tool/chip.test.tsx +176 -0
- package/src/components/lasso-tool/lasso-tool-inline.test.tsx +171 -0
- package/src/components/lasso-tool/lasso-tool.test.tsx +198 -0
- package/src/components/list-data/list-data.test.tsx +73 -0
- package/src/components/no-data-alert/no-data-alert.test.tsx +38 -0
- package/src/components/responsive-drawer/responsive-drawer.test.tsx +68 -0
- package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +465 -0
- package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +208 -0
- package/src/widgets/actions/change-column/change-column-dnd.test.tsx +193 -0
- package/src/widgets/actions/change-column/sortable-column-item.test.tsx +124 -0
- package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +322 -0
- package/src/widgets/category/components/category-rows.test.tsx +213 -0
- package/src/widgets/echart/utils.test.ts +277 -0
- package/src/widgets/formula/config.test.ts +37 -0
- package/src/widgets/range/components/range-item.test.tsx +243 -0
- package/src/widgets/stores/widget-store-branches.test.ts +275 -0
- package/src/widgets/table/config.test.ts +65 -0
- package/src/widgets/utils/chart-config/option-builders.test.ts +188 -0
- package/src/widgets-v2/PERFORMANCE.md +189 -0
- package/src/widgets-v2/actions/brush-toggle/brush-toggle.test.tsx +180 -0
- package/src/widgets-v2/actions/brush-toggle/brush-toggle.tsx +154 -0
- package/src/widgets-v2/actions/brush-toggle/index.ts +3 -0
- package/src/widgets-v2/actions/brush-toggle/labels.ts +9 -0
- package/src/widgets-v2/actions/brush-toggle/style.ts +11 -0
- package/src/widgets-v2/actions/brush-toggle/transforms.test.ts +47 -0
- package/src/widgets-v2/actions/brush-toggle/transforms.ts +31 -0
- package/src/widgets-v2/actions/change-column/change-column-icon.tsx +14 -0
- package/src/widgets-v2/actions/change-column/change-column.test.tsx +59 -0
- package/src/widgets-v2/actions/change-column/change-column.tsx +180 -0
- package/src/widgets-v2/actions/change-column/index.ts +7 -0
- package/src/widgets-v2/actions/change-column/labels.ts +9 -0
- package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +56 -0
- package/src/widgets-v2/actions/change-column/style.ts +32 -0
- package/src/widgets-v2/actions/change-column/types.ts +11 -0
- package/src/widgets-v2/actions/download/download.test.tsx +327 -0
- package/src/widgets-v2/actions/download/download.tsx +144 -0
- package/src/widgets-v2/actions/download/exports.test.tsx +198 -0
- package/src/widgets-v2/actions/download/exports.ts +115 -0
- package/src/widgets-v2/actions/download/icons.tsx +26 -0
- package/src/widgets-v2/actions/download/index.ts +13 -0
- package/src/widgets-v2/actions/download/labels.ts +16 -0
- package/src/widgets-v2/actions/download/png-item.test.tsx +72 -0
- package/src/widgets-v2/actions/download/png-item.tsx +52 -0
- package/src/widgets-v2/actions/download/style.ts +3 -0
- package/src/widgets-v2/actions/download/types.ts +32 -0
- package/src/widgets-v2/actions/fullscreen/fullscreen.test.tsx +150 -0
- package/src/widgets-v2/actions/fullscreen/fullscreen.tsx +230 -0
- package/src/widgets-v2/actions/fullscreen/index.ts +7 -0
- package/src/widgets-v2/actions/fullscreen/labels.ts +9 -0
- package/src/widgets-v2/actions/fullscreen/style.ts +59 -0
- package/src/widgets-v2/actions/fullscreen/types.ts +15 -0
- package/src/widgets-v2/actions/index.ts +82 -0
- package/src/widgets-v2/actions/lock-selection/index.ts +10 -0
- package/src/widgets-v2/actions/lock-selection/labels.ts +11 -0
- package/src/widgets-v2/actions/lock-selection/lock-selection.test.tsx +187 -0
- package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +130 -0
- package/src/widgets-v2/actions/lock-selection/style.ts +11 -0
- package/src/widgets-v2/actions/lock-selection/transforms.ts +27 -0
- package/src/widgets-v2/actions/relative-data/index.ts +3 -0
- package/src/widgets-v2/actions/relative-data/labels.ts +9 -0
- package/src/widgets-v2/actions/relative-data/relative-data.test.tsx +71 -0
- package/src/widgets-v2/actions/relative-data/relative-data.tsx +107 -0
- package/src/widgets-v2/actions/relative-data/style.ts +11 -0
- package/src/widgets-v2/actions/relative-data/transforms.test.ts +151 -0
- package/src/widgets-v2/actions/relative-data/transforms.ts +70 -0
- package/src/widgets-v2/actions/searcher/filter.ts +28 -0
- package/src/widgets-v2/actions/searcher/index.ts +8 -0
- package/src/widgets-v2/actions/searcher/labels.ts +13 -0
- package/src/widgets-v2/actions/searcher/searcher-toggle.tsx +91 -0
- package/src/widgets-v2/actions/searcher/searcher.test.tsx +92 -0
- package/src/widgets-v2/actions/searcher/searcher.tsx +112 -0
- package/src/widgets-v2/actions/searcher/style.ts +15 -0
- package/src/widgets-v2/actions/stack-toggle/index.ts +3 -0
- package/src/widgets-v2/actions/stack-toggle/labels.ts +9 -0
- package/src/widgets-v2/actions/stack-toggle/stack-toggle.test.tsx +61 -0
- package/src/widgets-v2/actions/stack-toggle/stack-toggle.tsx +54 -0
- package/src/widgets-v2/actions/stack-toggle/style.ts +11 -0
- package/src/widgets-v2/actions/stack-toggle/transforms.test.ts +43 -0
- package/src/widgets-v2/actions/stack-toggle/transforms.ts +25 -0
- package/src/widgets-v2/actions/zoom-toggle/index.ts +9 -0
- package/src/widgets-v2/actions/zoom-toggle/labels.ts +9 -0
- package/src/widgets-v2/actions/zoom-toggle/style.ts +11 -0
- package/src/widgets-v2/actions/zoom-toggle/transforms.test.ts +148 -0
- package/src/widgets-v2/actions/zoom-toggle/transforms.ts +171 -0
- package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.test.tsx +107 -0
- package/src/widgets-v2/actions/zoom-toggle/zoom-toggle.tsx +106 -0
- package/src/widgets-v2/bar/download.test.tsx +91 -0
- package/src/widgets-v2/bar/download.tsx +66 -0
- package/src/widgets-v2/bar/index.ts +10 -0
- package/src/widgets-v2/bar/options.test.ts +334 -0
- package/src/widgets-v2/bar/options.ts +332 -0
- package/src/widgets-v2/bar/skeleton.test.tsx +19 -0
- package/src/widgets-v2/bar/skeleton.tsx +69 -0
- package/src/widgets-v2/bar/types.ts +51 -0
- package/src/widgets-v2/category/category-ui.test.tsx +746 -0
- package/src/widgets-v2/category/category-ui.tsx +389 -0
- package/src/widgets-v2/category/category.relative-data.test.tsx +107 -0
- package/src/widgets-v2/category/category.stack-toggle.test.tsx +85 -0
- package/src/widgets-v2/category/category.test.tsx +305 -0
- package/src/widgets-v2/category/category.tsx +121 -0
- package/src/widgets-v2/category/components/category-bar-stacked.test.tsx +121 -0
- package/src/widgets-v2/category/components/category-bar-stacked.tsx +73 -0
- package/src/widgets-v2/category/components/category-bar.test.tsx +64 -0
- package/src/widgets-v2/category/components/category-bar.tsx +49 -0
- package/src/widgets-v2/category/components/category-legend.test.tsx +51 -0
- package/src/widgets-v2/category/components/category-legend.tsx +39 -0
- package/src/widgets-v2/category/components/category-row-multi.tsx +86 -0
- package/src/widgets-v2/category/components/category-row-other.test.tsx +28 -0
- package/src/widgets-v2/category/components/category-row-other.tsx +33 -0
- package/src/widgets-v2/category/components/category-row-single.tsx +76 -0
- package/src/widgets-v2/category/components/category-row-stacked.test.tsx +244 -0
- package/src/widgets-v2/category/components/category-row-stacked.tsx +99 -0
- package/src/widgets-v2/category/download.test.ts +71 -0
- package/src/widgets-v2/category/download.ts +54 -0
- package/src/widgets-v2/category/index.ts +32 -0
- package/src/widgets-v2/category/skeleton.test.tsx +26 -0
- package/src/widgets-v2/category/skeleton.tsx +74 -0
- package/src/widgets-v2/category/style.ts +290 -0
- package/src/widgets-v2/category/types.ts +59 -0
- package/src/widgets-v2/echart/echart-ui.test.tsx +232 -0
- package/src/widgets-v2/echart/echart-ui.tsx +184 -0
- package/src/widgets-v2/echart/echart.test.tsx +229 -0
- package/src/widgets-v2/echart/echart.tsx +199 -0
- package/src/widgets-v2/echart/index.ts +22 -0
- package/src/widgets-v2/echart/shared-resize-observer.test.ts +91 -0
- package/src/widgets-v2/echart/shared-resize-observer.ts +56 -0
- package/src/widgets-v2/echart/style.ts +8 -0
- package/src/widgets-v2/echart/use-chart-selection.test.tsx +118 -0
- package/src/widgets-v2/echart/use-chart-selection.ts +115 -0
- package/src/widgets-v2/formula/delta.tsx +61 -0
- package/src/widgets-v2/formula/download.test.tsx +65 -0
- package/src/widgets-v2/formula/download.tsx +69 -0
- package/src/widgets-v2/formula/formula-ui.test.tsx +91 -0
- package/src/widgets-v2/formula/formula-ui.tsx +66 -0
- package/src/widgets-v2/formula/formula.test.tsx +50 -0
- package/src/widgets-v2/formula/formula.tsx +34 -0
- package/src/widgets-v2/formula/index.ts +17 -0
- package/src/widgets-v2/formula/note.tsx +25 -0
- package/src/widgets-v2/formula/prefix.tsx +25 -0
- package/src/widgets-v2/formula/series.tsx +67 -0
- package/src/widgets-v2/formula/skeleton.test.tsx +21 -0
- package/src/widgets-v2/formula/skeleton.tsx +27 -0
- package/src/widgets-v2/formula/style.ts +31 -0
- package/src/widgets-v2/formula/subcomponents.test.tsx +107 -0
- package/src/widgets-v2/formula/suffix.tsx +25 -0
- package/src/widgets-v2/formula/types.ts +48 -0
- package/src/widgets-v2/formula/value.tsx +31 -0
- package/src/widgets-v2/histogram/download.test.ts +94 -0
- package/src/widgets-v2/histogram/download.ts +60 -0
- package/src/widgets-v2/histogram/index.ts +10 -0
- package/src/widgets-v2/histogram/options.test.ts +318 -0
- package/src/widgets-v2/histogram/options.ts +338 -0
- package/src/widgets-v2/histogram/skeleton.test.tsx +16 -0
- package/src/widgets-v2/histogram/skeleton.tsx +70 -0
- package/src/widgets-v2/histogram/transforms.test.ts +46 -0
- package/src/widgets-v2/histogram/transforms.ts +30 -0
- package/src/widgets-v2/histogram/types.ts +55 -0
- package/src/widgets-v2/index.ts +204 -0
- package/src/widgets-v2/markdown/download.test.ts +66 -0
- package/src/widgets-v2/markdown/download.ts +53 -0
- package/src/widgets-v2/markdown/index.ts +6 -0
- package/src/widgets-v2/markdown/markdown-content.test.tsx +155 -0
- package/src/widgets-v2/markdown/markdown-content.tsx +72 -0
- package/src/widgets-v2/markdown/markdown-ui.test.tsx +75 -0
- package/src/widgets-v2/markdown/markdown-ui.tsx +55 -0
- package/src/widgets-v2/markdown/markdown.test.tsx +39 -0
- package/src/widgets-v2/markdown/markdown.tsx +17 -0
- package/src/widgets-v2/markdown/skeleton.test.tsx +15 -0
- package/src/widgets-v2/markdown/skeleton.tsx +32 -0
- package/src/widgets-v2/markdown/style.ts +53 -0
- package/src/widgets-v2/markdown/types.ts +4 -0
- package/src/widgets-v2/note/labels.ts +9 -0
- package/src/widgets-v2/note/style.ts +26 -0
- package/src/widgets-v2/note/widget-note.test.tsx +158 -0
- package/src/widgets-v2/note/widget-note.tsx +172 -0
- package/src/widgets-v2/pie/download.test.ts +78 -0
- package/src/widgets-v2/pie/download.ts +55 -0
- package/src/widgets-v2/pie/index.ts +10 -0
- package/src/widgets-v2/pie/options.test.ts +601 -0
- package/src/widgets-v2/pie/options.ts +513 -0
- package/src/widgets-v2/pie/skeleton.test.tsx +17 -0
- package/src/widgets-v2/pie/skeleton.tsx +32 -0
- package/src/widgets-v2/pie/types.ts +62 -0
- package/src/widgets-v2/provider/widget-provider.test.tsx +119 -0
- package/src/widgets-v2/provider/widget-provider.tsx +111 -0
- package/src/widgets-v2/range/index.ts +4 -0
- package/src/widgets-v2/range/range-ui.test.tsx +136 -0
- package/src/widgets-v2/range/range-ui.tsx +278 -0
- package/src/widgets-v2/range/range.test.tsx +68 -0
- package/src/widgets-v2/range/range.tsx +52 -0
- package/src/widgets-v2/range/skeleton.test.tsx +17 -0
- package/src/widgets-v2/range/skeleton.tsx +47 -0
- package/src/widgets-v2/range/style.ts +41 -0
- package/src/widgets-v2/range/types.ts +37 -0
- package/src/widgets-v2/scatterplot/download.test.ts +71 -0
- package/src/widgets-v2/scatterplot/download.ts +54 -0
- package/src/widgets-v2/scatterplot/index.ts +11 -0
- package/src/widgets-v2/scatterplot/options.test.ts +411 -0
- package/src/widgets-v2/scatterplot/options.ts +425 -0
- package/src/widgets-v2/scatterplot/skeleton.test.tsx +17 -0
- package/src/widgets-v2/scatterplot/skeleton.tsx +84 -0
- package/src/widgets-v2/scatterplot/transforms.test.ts +97 -0
- package/src/widgets-v2/scatterplot/transforms.ts +38 -0
- package/src/widgets-v2/scatterplot/types.ts +59 -0
- package/src/widgets-v2/selection-summary/labels.ts +11 -0
- package/src/widgets-v2/selection-summary/selection-summary.test.tsx +53 -0
- package/src/widgets-v2/selection-summary/selection-summary.tsx +62 -0
- package/src/widgets-v2/selection-summary/style.ts +23 -0
- package/src/widgets-v2/spread/download.test.ts +64 -0
- package/src/widgets-v2/spread/download.ts +59 -0
- package/src/widgets-v2/spread/index.ts +6 -0
- package/src/widgets-v2/spread/separator.tsx +11 -0
- package/src/widgets-v2/spread/skeleton.test.tsx +17 -0
- package/src/widgets-v2/spread/skeleton.tsx +38 -0
- package/src/widgets-v2/spread/spread-ui.test.tsx +108 -0
- package/src/widgets-v2/spread/spread-ui.tsx +52 -0
- package/src/widgets-v2/spread/spread.test.tsx +50 -0
- package/src/widgets-v2/spread/spread.tsx +31 -0
- package/src/widgets-v2/spread/types.ts +27 -0
- package/src/widgets-v2/state/labels.test.ts +33 -0
- package/src/widgets-v2/state/labels.ts +20 -0
- package/src/widgets-v2/state/style.ts +25 -0
- package/src/widgets-v2/state/widget-state.test.tsx +294 -0
- package/src/widgets-v2/state/widget-state.tsx +184 -0
- package/src/widgets-v2/stores/index.ts +49 -0
- package/src/widgets-v2/stores/pipeline-middleware.test.ts +187 -0
- package/src/widgets-v2/stores/pipeline-middleware.ts +91 -0
- package/src/widgets-v2/stores/transforms.test.ts +162 -0
- package/src/widgets-v2/stores/transforms.ts +70 -0
- package/src/widgets-v2/stores/types.ts +64 -0
- package/src/widgets-v2/stores/use-echart-instance.test.tsx +91 -0
- package/src/widgets-v2/stores/use-echart-instance.ts +29 -0
- package/src/widgets-v2/stores/use-transform-enabled.test.tsx +127 -0
- package/src/widgets-v2/stores/use-transform-enabled.ts +25 -0
- package/src/widgets-v2/stores/use-transform.test.tsx +262 -0
- package/src/widgets-v2/stores/use-transform.ts +158 -0
- package/src/widgets-v2/stores/widget-context.test.tsx +58 -0
- package/src/widgets-v2/stores/widget-context.ts +15 -0
- package/src/widgets-v2/stores/widget-store-registry.test.ts +292 -0
- package/src/widgets-v2/stores/widget-store-registry.ts +248 -0
- package/src/widgets-v2/subheader/style.ts +12 -0
- package/src/widgets-v2/subheader/subheader.test.tsx +30 -0
- package/src/widgets-v2/subheader/subheader.tsx +16 -0
- package/src/widgets-v2/table/download.test.ts +75 -0
- package/src/widgets-v2/table/download.ts +47 -0
- package/src/widgets-v2/table/helpers.test.ts +214 -0
- package/src/widgets-v2/table/helpers.ts +136 -0
- package/src/widgets-v2/table/index.ts +23 -0
- package/src/widgets-v2/table/labels.tsx +41 -0
- package/src/widgets-v2/table/skeleton.test.tsx +26 -0
- package/src/widgets-v2/table/skeleton.tsx +65 -0
- package/src/widgets-v2/table/style.ts +43 -0
- package/src/widgets-v2/table/table-ui.test.tsx +200 -0
- package/src/widgets-v2/table/table-ui.tsx +364 -0
- package/src/widgets-v2/table/table.test.tsx +119 -0
- package/src/widgets-v2/table/table.tsx +179 -0
- package/src/widgets-v2/table/types.ts +55 -0
- package/src/widgets-v2/test-utils.ts +107 -0
- package/src/widgets-v2/timeseries/download.test.ts +95 -0
- package/src/widgets-v2/timeseries/download.ts +86 -0
- package/src/widgets-v2/timeseries/index.ts +10 -0
- package/src/widgets-v2/timeseries/options.test.ts +394 -0
- package/src/widgets-v2/timeseries/options.ts +348 -0
- package/src/widgets-v2/timeseries/skeleton.test.tsx +13 -0
- package/src/widgets-v2/timeseries/skeleton.tsx +76 -0
- package/src/widgets-v2/timeseries/types.ts +65 -0
- package/src/widgets-v2/toolbox/labels.ts +9 -0
- package/src/widgets-v2/toolbox/style.ts +33 -0
- package/src/widgets-v2/toolbox/toolbox.test.tsx +200 -0
- package/src/widgets-v2/toolbox/toolbox.tsx +309 -0
- package/src/widgets-v2/types.ts +25 -0
- package/src/widgets-v2/utils/data-zoom-layout.ts +26 -0
- package/src/widgets-v2/utils/index.ts +3 -0
- package/src/widgets-v2/utils/merge-options.test.ts +52 -0
- package/src/widgets-v2/utils/merge-options.ts +50 -0
- package/src/widgets-v2/utils/resolve-theme-color.test.ts +43 -0
- package/src/widgets-v2/utils/resolve-theme-color.ts +34 -0
- package/src/widgets-v2/wrapper/index.ts +14 -0
- package/src/widgets-v2/wrapper/labels.ts +11 -0
- package/src/widgets-v2/wrapper/style.ts +134 -0
- package/src/widgets-v2/wrapper/widget-actions.test.tsx +52 -0
- package/src/widgets-v2/wrapper/widget-actions.tsx +43 -0
- package/src/widgets-v2/wrapper/widget-content.test.tsx +27 -0
- package/src/widgets-v2/wrapper/widget-content.tsx +29 -0
- package/src/widgets-v2/wrapper/widget-wrapper.test.tsx +159 -0
- package/src/widgets-v2/wrapper/widget-wrapper.tsx +178 -0
- package/dist/styles-BYTyKQFP.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loading state for the Bar widget. Mirrors a bar chart's silhouette — five
|
|
3
|
+
* vertical bars at staggered heights anchored to the bottom, plus a legend
|
|
4
|
+
* stub — so the skeleton reads as "a bar chart" rather than a generic list.
|
|
5
|
+
*/
|
|
6
|
+
export declare function BarSkeleton(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Theme } from '@mui/material';
|
|
2
|
+
import { EChartsOption } from 'echarts';
|
|
3
|
+
import { WidgetSeries } from '../types';
|
|
4
|
+
/** A single category entry in a bar series. */
|
|
5
|
+
export interface BarDatum {
|
|
6
|
+
name: string | number;
|
|
7
|
+
value: number;
|
|
8
|
+
}
|
|
9
|
+
/** v2 bar widget data shape: array of series, each a flat list of `{name, value}`. */
|
|
10
|
+
export type BarWidgetData = readonly (readonly BarDatum[])[];
|
|
11
|
+
/** Inputs to the structural-only {@link barOptions} builder. */
|
|
12
|
+
export interface BarOptionsInput {
|
|
13
|
+
theme: Theme;
|
|
14
|
+
formatter?: (value: number) => string;
|
|
15
|
+
labelFormatter?: (value: string | number) => string | number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Combined inputs for the option factory creator. Carries everything the
|
|
19
|
+
* widget needs across BOTH phases — the structural-build (`theme`,
|
|
20
|
+
* `formatter`, `labelFormatter`, `optionsOverride`) AND the data merge
|
|
21
|
+
* (`series`, `selection`).
|
|
22
|
+
*/
|
|
23
|
+
export interface BarOptionFactoryInput {
|
|
24
|
+
theme: Theme;
|
|
25
|
+
formatter?: (value: number) => string;
|
|
26
|
+
labelFormatter?: (value: string | number) => string | number;
|
|
27
|
+
/**
|
|
28
|
+
* Per-series metadata — drives the legend, `series[i].name`, and
|
|
29
|
+
* (when `color` is set) per-series `itemStyle.color`. Paired with the
|
|
30
|
+
* data series by index.
|
|
31
|
+
*/
|
|
32
|
+
series?: readonly WidgetSeries[];
|
|
33
|
+
/**
|
|
34
|
+
* When set, every datum whose `name` is **not** in this list renders dimmed
|
|
35
|
+
* (`itemStyle.opacity: 0.15`, matching `outOfBrush` styling). `null`/empty
|
|
36
|
+
* means "no selection active" — every bar is fully opaque.
|
|
37
|
+
*/
|
|
38
|
+
selection?: readonly (string | number)[] | null;
|
|
39
|
+
/**
|
|
40
|
+
* Consumer-supplied partial option merged into the structural option at
|
|
41
|
+
* structural-build time (via `mergeOptions`). Lets stories override pieces
|
|
42
|
+
* of the theme-aware base without forking the structural builder.
|
|
43
|
+
*/
|
|
44
|
+
optionsOverride?: Partial<EChartsOption>;
|
|
45
|
+
}
|
|
46
|
+
export type BarEChartsOption = EChartsOption;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { CategoryKey, CategoryLabels, CategorySeriesConfig, CategorySize, CategoryWidgetData } from './types';
|
|
2
|
+
export interface CategoryUIProps {
|
|
3
|
+
data: CategoryWidgetData;
|
|
4
|
+
/** Currently-selected category names (destination-owned). */
|
|
5
|
+
selection?: readonly CategoryKey[];
|
|
6
|
+
/** Fires with the next selection set when a row is clicked. */
|
|
7
|
+
onSelectionChange?: (next: readonly CategoryKey[]) => void;
|
|
8
|
+
/** Number formatter applied to each row's value. */
|
|
9
|
+
formatter?: (value: number) => string;
|
|
10
|
+
/**
|
|
11
|
+
* Display-only transform for category names. Selection callbacks always
|
|
12
|
+
* receive the raw `item.name` regardless of this formatter.
|
|
13
|
+
*/
|
|
14
|
+
labelFormatter?: (value: string | number) => string | number;
|
|
15
|
+
/**
|
|
16
|
+
* Per-series metadata. Enables the legend (for multi-series) and
|
|
17
|
+
* overrides palette colors per series index. Length need not match
|
|
18
|
+
* `data.length`; mismatches degrade gracefully (extras ignored, gaps
|
|
19
|
+
* fall back to palette).
|
|
20
|
+
*/
|
|
21
|
+
series?: readonly CategorySeriesConfig[];
|
|
22
|
+
/**
|
|
23
|
+
* Caps the number of visible category rows.
|
|
24
|
+
*
|
|
25
|
+
* - `undefined` (omitted) — caps at {@link DEFAULT_MAX_ITEMS} (20).
|
|
26
|
+
* Surplus rows fold into a single italic "Other (X more)" footer.
|
|
27
|
+
* `undefined` cannot mean "no cap" because it's consumed by the
|
|
28
|
+
* default-parameter syntax — pass `null` instead.
|
|
29
|
+
* - positive finite N — same as the default but with a custom cap.
|
|
30
|
+
* - `0` — **no cap WITH scroll**: every row renders inside a
|
|
31
|
+
* fixed-height viewport that scrolls internally. The viewport's
|
|
32
|
+
* max-height is the list's natural `clientHeight` measured on the
|
|
33
|
+
* first render where the list was NOT in scroll mode (i.e., the
|
|
34
|
+
* capped view) — frozen for the component's lifetime. If the
|
|
35
|
+
* consumer mounts directly into scroll mode and we never see a
|
|
36
|
+
* capped render, the viewport falls back to `8 × ROW_HEIGHT_PX`.
|
|
37
|
+
* Composers flip into this mode while the user is searching
|
|
38
|
+
* (`maxItems = searcherOpen ? 0 : userMaxItems`) so the widget
|
|
39
|
+
* card height stays stable.
|
|
40
|
+
* - `null` / `Infinity` / negative — **no cap, no scroll**: render
|
|
41
|
+
* every row; the list grows with content. Matches v1's "undefined"
|
|
42
|
+
* behavior. Use `null` as the canonical explicit form.
|
|
43
|
+
*/
|
|
44
|
+
maxItems?: number | null;
|
|
45
|
+
/** Labels for the "Other" overflow row. `{count}` placeholder is replaced. */
|
|
46
|
+
labels?: CategoryLabels;
|
|
47
|
+
/** Manual override for the bar-width denominator. */
|
|
48
|
+
maxOverride?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Visual density of the bar primitive. `'small'` (default) keeps the
|
|
51
|
+
* historical 4px-tall pill; `'medium'` switches to a 12px-tall track
|
|
52
|
+
* with a 2px corner radius. Only the bar track + fill change.
|
|
53
|
+
*/
|
|
54
|
+
size?: CategorySize;
|
|
55
|
+
/**
|
|
56
|
+
* Multi-series stacked mode. When `true` and `data.length > 1`, each
|
|
57
|
+
* category renders as a single segmented bar (one segment per series)
|
|
58
|
+
* with a `formatter(sum)` total in the header and a per-series
|
|
59
|
+
* breakdown line below. Composers typically thread this from
|
|
60
|
+
* `useTransformEnabled(id, 'stack-toggle')`.
|
|
61
|
+
*
|
|
62
|
+
* No-op for single-series data — same convention as the legend.
|
|
63
|
+
*/
|
|
64
|
+
stacked?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Pure presentational component for the Category widget. Renders
|
|
68
|
+
* single-series rows (`data.length === 1`) as a compact grid or
|
|
69
|
+
* multi-series rows (`data.length > 1`) as stacked-bar groups, capped at
|
|
70
|
+
* `maxItems` with an overflow summary, and an optional sticky color
|
|
71
|
+
* legend when `series` metadata is supplied.
|
|
72
|
+
*
|
|
73
|
+
* Selection is destination-owned: clicking a row fires
|
|
74
|
+
* `onSelectionChange(next)` with the toggled set; the consumer keeps the
|
|
75
|
+
* list in their own store. `aria-pressed` + Enter/Space keyboard
|
|
76
|
+
* activation give full a11y parity with the mouse path.
|
|
77
|
+
*
|
|
78
|
+
* Returns `null` when there's nothing to render — `Widget.State` is the
|
|
79
|
+
* empty-state authority in the canonical compositor.
|
|
80
|
+
*/
|
|
81
|
+
export declare function CategoryUI({ data, selection, onSelectionChange, formatter, labelFormatter, series, maxItems, labels, maxOverride, size, stacked, }: CategoryUIProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CategoryKey, CategoryLabels, CategorySeriesConfig, CategorySize } from './types';
|
|
2
|
+
export interface CategoryProps {
|
|
3
|
+
/** Currently-selected category names. Destination-owned. */
|
|
4
|
+
selection?: readonly CategoryKey[];
|
|
5
|
+
/** Fires when a row is clicked. Consumer updates the destination's store. */
|
|
6
|
+
onSelectionChange?: (next: readonly CategoryKey[]) => void;
|
|
7
|
+
/** Per-series metadata. Enables the legend + overrides palette per index. */
|
|
8
|
+
series?: readonly CategorySeriesConfig[];
|
|
9
|
+
/**
|
|
10
|
+
* Cap visible rows; overflow folds into "Other (X more)". Default 20
|
|
11
|
+
* (when omitted). Pass `0` to swap the cap for a scrollable viewport
|
|
12
|
+
* (composers use this when the user opens the SearcherToggle —
|
|
13
|
+
* `maxItems = searcherOpen ? 0 : userMaxItems`). Pass `null` to disable
|
|
14
|
+
* the cap entirely without adding a scroll viewport.
|
|
15
|
+
*/
|
|
16
|
+
maxItems?: number | null;
|
|
17
|
+
/** Labels for the "Other" overflow row. */
|
|
18
|
+
labels?: CategoryLabels;
|
|
19
|
+
/**
|
|
20
|
+
* Manual override for the bar-width denominator. When omitted, the
|
|
21
|
+
* bridge auto-fills from the widget store's `rawData` so bar widths
|
|
22
|
+
* stay coherent across data transforms (e.g., the Searcher filtering
|
|
23
|
+
* rows in and out — bars don't rescale just because the larger rows
|
|
24
|
+
* got hidden). Pass an explicit number to fix the denominator
|
|
25
|
+
* regardless of the data.
|
|
26
|
+
*/
|
|
27
|
+
maxOverride?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Visual density of the bar primitive. `'small'` (default) keeps the
|
|
30
|
+
* historical 4px-tall pill; `'medium'` switches to a 12px-tall track
|
|
31
|
+
* with a 2px corner radius. Forwarded as-is to {@link CategoryUI}.
|
|
32
|
+
*/
|
|
33
|
+
size?: CategorySize;
|
|
34
|
+
/**
|
|
35
|
+
* Multi-series stacked mode. Forwarded as-is to {@link CategoryUI}.
|
|
36
|
+
* Composers typically wire this from
|
|
37
|
+
* `useTransformEnabled(id, 'stack-toggle')`. No-op for single-series.
|
|
38
|
+
*/
|
|
39
|
+
stacked?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Stateful Category bridge — reads `data`, `formatter`, and
|
|
43
|
+
* `labelFormatter` (post-pipeline) from the per-widget store and
|
|
44
|
+
* forwards them to the pure {@link CategoryUI}. `selection` and
|
|
45
|
+
* `onSelectionChange` follow the destination-owned principle: the
|
|
46
|
+
* consumer keeps the list in their own store and passes it through.
|
|
47
|
+
*/
|
|
48
|
+
export declare function Category({ selection, onSelectionChange, series, maxItems, labels, maxOverride, size, stacked, }: CategoryProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CategorySize } from '../types';
|
|
2
|
+
export interface CategoryBarStackedProps {
|
|
3
|
+
/** One value per series. Zero values render no segment (visually + in the DOM). */
|
|
4
|
+
values: readonly number[];
|
|
5
|
+
/** One color per series. Resolved upstream by `CategoryUI.colorAt`. */
|
|
6
|
+
colors: readonly string[];
|
|
7
|
+
/**
|
|
8
|
+
* Shared denominator across all rows + series (or `maxOverride`). Same
|
|
9
|
+
* value `CategoryBar` uses — segments scale identically to single-bar rows
|
|
10
|
+
* so cross-row comparison is preserved.
|
|
11
|
+
*/
|
|
12
|
+
maxValue: number;
|
|
13
|
+
/** Visual density. Forwarded to the track styling; segments inherit height. */
|
|
14
|
+
size?: CategorySize;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Stacked horizontal bar: one rounded track containing N square segments
|
|
18
|
+
* placed side-by-side. Each segment's width is `value_i / maxValue * 100%`
|
|
19
|
+
* and its left offset is the cumulative sum of preceding values. Square
|
|
20
|
+
* interior edges + the parent track's `overflow: hidden` + rounded radius
|
|
21
|
+
* mean the outer ends of the stacked bar match a single `CategoryBar` while
|
|
22
|
+
* interior segment boundaries meet cleanly.
|
|
23
|
+
*
|
|
24
|
+
* Pure presentation — selection / dimming is resolved upstream by the row
|
|
25
|
+
* via the `colors` prop. Each segment carries `data-bar-fill='true'` so the
|
|
26
|
+
* existing row-hover brightening selector still fires on every segment.
|
|
27
|
+
*/
|
|
28
|
+
export declare function CategoryBarStacked({ values, colors, maxValue, size, }: CategoryBarStackedProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CategorySize } from '../types';
|
|
2
|
+
export interface CategoryBarProps {
|
|
3
|
+
/** Numeric value driving the fill width. */
|
|
4
|
+
value: number;
|
|
5
|
+
/** Denominator for the percentage fill. `0` → empty bar (no division by zero). */
|
|
6
|
+
maxValue: number;
|
|
7
|
+
/** Fill color. Honors any CSS color or MUI theme token. */
|
|
8
|
+
color: string;
|
|
9
|
+
/**
|
|
10
|
+
* Visual density. `'small'` (default) keeps the historical 4px pill;
|
|
11
|
+
* `'medium'` renders a 12px-tall track with a 2px corner radius. Only
|
|
12
|
+
* the bar track + fill change — every other token in the parent row is
|
|
13
|
+
* size-invariant.
|
|
14
|
+
*/
|
|
15
|
+
size?: CategorySize;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Single horizontal bar (track + proportional fill). Pure presentation.
|
|
19
|
+
* Selection / dimming live at the row level; this component is unaware of
|
|
20
|
+
* both — bars stay vivid regardless of selection state (per the v2
|
|
21
|
+
* "row-bg + row-dim, never muted bar" rule).
|
|
22
|
+
*/
|
|
23
|
+
export declare function CategoryBar({ value, maxValue, color, size, }: CategoryBarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CategorySeriesConfig } from '../types';
|
|
2
|
+
export interface CategoryLegendProps {
|
|
3
|
+
/** Series metadata. Empty array → renders nothing. */
|
|
4
|
+
series: readonly CategorySeriesConfig[];
|
|
5
|
+
/**
|
|
6
|
+
* Per-series colour resolver. Receives the series index and returns the
|
|
7
|
+
* palette colour (or `undefined` to fall back to the MUI default). The
|
|
8
|
+
* legend derives its dot colour from this on the fly — the caller does
|
|
9
|
+
* NOT pre-compute a `colors` array (avoids passing two views of the
|
|
10
|
+
* same source).
|
|
11
|
+
*/
|
|
12
|
+
colorAt: (index: number) => string | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Sticky color legend rendered below a multi-series Category list.
|
|
16
|
+
* Per-series `color` overrides the matching `colorAt(i)` result.
|
|
17
|
+
*/
|
|
18
|
+
export declare function CategoryLegend({ series, colorAt }: CategoryLegendProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CategoryKey, CategorySize } from '../types';
|
|
2
|
+
export interface CategoryRowMultiProps {
|
|
3
|
+
/** Raw category key — what gets emitted to `onToggle`. */
|
|
4
|
+
name: CategoryKey;
|
|
5
|
+
/** Display label (post-`labelFormatter`). Falls back to `name`. */
|
|
6
|
+
displayName?: string | number;
|
|
7
|
+
/** One value per series. `0` is rendered as an empty bar (track only). */
|
|
8
|
+
values: readonly number[];
|
|
9
|
+
/** One color per series (palette + per-series overrides resolved upstream). */
|
|
10
|
+
colors: readonly string[];
|
|
11
|
+
/** Shared max across all series + rows (or `maxOverride`). */
|
|
12
|
+
maxValue: number;
|
|
13
|
+
formatter: (n: number) => string;
|
|
14
|
+
selected: boolean;
|
|
15
|
+
onToggle: (name: CategoryKey) => void;
|
|
16
|
+
/** Bar visual density. Forwarded to every {@link CategoryBar} in the row. */
|
|
17
|
+
size?: CategorySize;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Multi-series category row: label spans the top; bar+value pairs stack
|
|
21
|
+
* vertically below, one per series. Each bar uses the full row width
|
|
22
|
+
* track (no shared grid) for legibility at N>=2 series. Click anywhere
|
|
23
|
+
* in the row (label OR any bar/value) toggles selection by `name`.
|
|
24
|
+
*
|
|
25
|
+
* Visual selection / dim signal lives ENTIRELY in the bar colors
|
|
26
|
+
* (`colors` prop) — every series in a dimmed row receives
|
|
27
|
+
* `theme.palette.action.disabled`; selected / unselected-no-selection
|
|
28
|
+
* rows receive their real palette colors. Computed upstream by
|
|
29
|
+
* `CategoryUI`. The row itself has no bg tint, no opacity rule.
|
|
30
|
+
*/
|
|
31
|
+
export declare function CategoryRowMulti({ name, displayName, values, colors, maxValue, formatter, selected, onToggle, size, }: CategoryRowMultiProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface CategoryRowOtherProps {
|
|
2
|
+
hiddenCount: number;
|
|
3
|
+
/** Label for the overflow row. Defaults to `'Other'`. */
|
|
4
|
+
otherLabel?: string;
|
|
5
|
+
/** Count text with `{count}` placeholder. Defaults to `'{count} more'`. */
|
|
6
|
+
otherCountLabel?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Static "Other (X more)" overflow summary row. Rendered after the last
|
|
10
|
+
* visible category row when `data.length > maxItems`. Non-interactive —
|
|
11
|
+
* no selection, no keyboard target.
|
|
12
|
+
*/
|
|
13
|
+
export declare function CategoryRowOther({ hiddenCount, otherLabel, otherCountLabel, }: CategoryRowOtherProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CategoryKey, CategorySize } from '../types';
|
|
2
|
+
export interface CategoryRowSingleProps {
|
|
3
|
+
/** Raw category key — what gets emitted to `onToggle` regardless of formatter. */
|
|
4
|
+
name: CategoryKey;
|
|
5
|
+
/** Display label (post-`labelFormatter`). Falls back to `name` when omitted. */
|
|
6
|
+
displayName?: string | number;
|
|
7
|
+
value: number;
|
|
8
|
+
maxValue: number;
|
|
9
|
+
color: string;
|
|
10
|
+
formatter: (n: number) => string;
|
|
11
|
+
selected: boolean;
|
|
12
|
+
onToggle: (name: CategoryKey) => void;
|
|
13
|
+
/** Bar visual density. Forwarded to {@link CategoryBar}. */
|
|
14
|
+
size?: CategorySize;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Single-series category row: `[label] [bar] [value]` grid. Click /
|
|
18
|
+
* Enter / Space toggles `name` in/out of the selection set via
|
|
19
|
+
* `onToggle`. Selection key is always the raw `name` — `displayName` is
|
|
20
|
+
* presentation only.
|
|
21
|
+
*
|
|
22
|
+
* Visual selection / dim signal lives ENTIRELY in the bar color
|
|
23
|
+
* (`color` prop) — computed upstream by `CategoryUI` (real palette
|
|
24
|
+
* color when selected or no-selection; `theme.palette.action.disabled`
|
|
25
|
+
* when a selection exists and this row isn't in it). The row itself
|
|
26
|
+
* has no bg tint, no opacity rule.
|
|
27
|
+
*/
|
|
28
|
+
export declare function CategoryRowSingle({ name, displayName, value, maxValue, color, formatter, selected, onToggle, size, }: CategoryRowSingleProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { CategoryKey, CategorySize } from '../types';
|
|
2
|
+
export interface CategoryRowStackedProps {
|
|
3
|
+
/** Raw category key — what gets emitted to `onToggle`. */
|
|
4
|
+
name: CategoryKey;
|
|
5
|
+
/** Display label (post-`labelFormatter`). Falls back to `name`. */
|
|
6
|
+
displayName?: string | number;
|
|
7
|
+
/** One value per series. Zero values still appear in the breakdown row. */
|
|
8
|
+
values: readonly number[];
|
|
9
|
+
/** One color per series (palette + per-series overrides resolved upstream). */
|
|
10
|
+
colors: readonly string[];
|
|
11
|
+
/** Series names for the breakdown row. Missing entries fall back to `Series N`. */
|
|
12
|
+
seriesNames: readonly string[];
|
|
13
|
+
formatter: (n: number) => string;
|
|
14
|
+
selected: boolean;
|
|
15
|
+
onToggle: (name: CategoryKey) => void;
|
|
16
|
+
/** Bar visual density. Forwarded to the inner {@link CategoryBarStacked}. */
|
|
17
|
+
size?: CategorySize;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Stacked-mode category row: label + total share a header line; a single
|
|
21
|
+
* segmented bar sits below; an inline breakdown lists each series with its
|
|
22
|
+
* formatted value. Click anywhere in the row toggles selection by `name`.
|
|
23
|
+
*
|
|
24
|
+
* Per-row normalization: the stacked bar always fills 100% of the track,
|
|
25
|
+
* with each segment sized as `value_i / sum(values)`. This is intentionally
|
|
26
|
+
* different from `CategoryRowMulti` (which scales bars against the global
|
|
27
|
+
* `maxValue` for cross-row comparison) — in stacked mode the comparable
|
|
28
|
+
* axis is the proportion of each series within the row, not the row's
|
|
29
|
+
* total relative to other rows. The total numeric value is still shown in
|
|
30
|
+
* the header so the per-row magnitude isn't lost.
|
|
31
|
+
*
|
|
32
|
+
* Visual selection / dim signal lives entirely in the segment colors
|
|
33
|
+
* (`colors` prop) — every series in a dimmed row receives
|
|
34
|
+
* `theme.palette.action.disabled`. The bar visually collapses to a single
|
|
35
|
+
* grey shape when dimmed, but the breakdown text stays at full color so the
|
|
36
|
+
* per-series values remain legible.
|
|
37
|
+
*/
|
|
38
|
+
export declare function CategoryRowStacked({ name, displayName, values, colors, seriesNames, formatter, selected, onToggle, size, }: CategoryRowStackedProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DownloadItem } from '../actions/download';
|
|
2
|
+
import { CategoryWidgetData } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Download menu items for the Category widget. Always includes a CSV item
|
|
5
|
+
* with `series, name, value` columns (one row per item). When
|
|
6
|
+
* `getCaptureEl` is supplied, prepends a PNG item that rasterises the
|
|
7
|
+
* captured element via `html2canvas`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createCategoryDownloadConfig(args: {
|
|
10
|
+
filename: string;
|
|
11
|
+
getData: () => CategoryWidgetData;
|
|
12
|
+
seriesNames?: readonly string[];
|
|
13
|
+
getCaptureEl?: () => HTMLElement | null;
|
|
14
|
+
pngPixelRatio?: number;
|
|
15
|
+
pngBackgroundColor?: string | null;
|
|
16
|
+
}): DownloadItem[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Category, type CategoryProps } from './category';
|
|
2
|
+
export { CategoryUI, type CategoryUIProps } from './category-ui';
|
|
3
|
+
export { CategorySkeleton, type CategorySkeletonProps } from './skeleton';
|
|
4
|
+
export { createCategoryDownloadConfig } from './download';
|
|
5
|
+
export { CategoryBar, type CategoryBarProps } from './components/category-bar';
|
|
6
|
+
export { CategoryRowSingle, type CategoryRowSingleProps, } from './components/category-row-single';
|
|
7
|
+
export { CategoryRowMulti, type CategoryRowMultiProps, } from './components/category-row-multi';
|
|
8
|
+
export { CategoryRowOther, type CategoryRowOtherProps, } from './components/category-row-other';
|
|
9
|
+
export { CategoryLegend, type CategoryLegendProps, } from './components/category-legend';
|
|
10
|
+
export type { CategoryDataItem, CategoryWidgetData, CategoryKey, CategorySeriesConfig, CategoryLabels, CategorySize, } from './types';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CategorySize } from './types';
|
|
2
|
+
export interface CategorySkeletonProps {
|
|
3
|
+
rows?: number;
|
|
4
|
+
/**
|
|
5
|
+
* Visual density. Mirrors the live widget's `size` prop so the loading
|
|
6
|
+
* shimmer's bar height matches what's about to render — no row jump
|
|
7
|
+
* on data settle.
|
|
8
|
+
*/
|
|
9
|
+
size?: CategorySize;
|
|
10
|
+
}
|
|
11
|
+
export declare function CategorySkeleton({ rows, size, }: CategorySkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material';
|
|
2
|
+
import { CategorySize } from './types';
|
|
3
|
+
export declare const styles: {
|
|
4
|
+
root: {
|
|
5
|
+
display: string;
|
|
6
|
+
flexDirection: string;
|
|
7
|
+
position: string;
|
|
8
|
+
width: string;
|
|
9
|
+
};
|
|
10
|
+
list: {
|
|
11
|
+
display: string;
|
|
12
|
+
flexDirection: string;
|
|
13
|
+
gap: number;
|
|
14
|
+
py: number;
|
|
15
|
+
};
|
|
16
|
+
rowSingle: {
|
|
17
|
+
display: string;
|
|
18
|
+
flexDirection: string;
|
|
19
|
+
gap: number;
|
|
20
|
+
cursor: string;
|
|
21
|
+
userSelect: string;
|
|
22
|
+
transition: string;
|
|
23
|
+
'&:hover [data-bar-fill="true"]': {
|
|
24
|
+
filter: string;
|
|
25
|
+
};
|
|
26
|
+
'&:focus-visible': {
|
|
27
|
+
outline: string;
|
|
28
|
+
outlineColor: string;
|
|
29
|
+
outlineOffset: number;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
rowHeader: {
|
|
33
|
+
display: string;
|
|
34
|
+
justifyContent: string;
|
|
35
|
+
alignItems: string;
|
|
36
|
+
gap: number;
|
|
37
|
+
};
|
|
38
|
+
rowMulti: {
|
|
39
|
+
display: string;
|
|
40
|
+
flexDirection: string;
|
|
41
|
+
gap: number;
|
|
42
|
+
cursor: string;
|
|
43
|
+
userSelect: string;
|
|
44
|
+
transition: string;
|
|
45
|
+
'&:hover [data-bar-fill="true"]': {
|
|
46
|
+
filter: string;
|
|
47
|
+
};
|
|
48
|
+
'&:focus-visible': {
|
|
49
|
+
outline: string;
|
|
50
|
+
outlineColor: string;
|
|
51
|
+
outlineOffset: number;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
name: {
|
|
55
|
+
overflow: string;
|
|
56
|
+
whiteSpace: string;
|
|
57
|
+
textOverflow: string;
|
|
58
|
+
color: string;
|
|
59
|
+
fontWeight: string;
|
|
60
|
+
};
|
|
61
|
+
multiName: {
|
|
62
|
+
overflow: string;
|
|
63
|
+
whiteSpace: string;
|
|
64
|
+
textOverflow: string;
|
|
65
|
+
color: string;
|
|
66
|
+
fontWeight: string;
|
|
67
|
+
};
|
|
68
|
+
value: {
|
|
69
|
+
color: string;
|
|
70
|
+
fontVariantNumeric: string;
|
|
71
|
+
minWidth: number;
|
|
72
|
+
textAlign: string;
|
|
73
|
+
};
|
|
74
|
+
bar: Record<CategorySize, SxProps<Theme>>;
|
|
75
|
+
barFill: Record<CategorySize, SxProps<Theme>>;
|
|
76
|
+
stackedSegment: Record<CategorySize, SxProps<Theme>>;
|
|
77
|
+
multiBarRow: {
|
|
78
|
+
display: string;
|
|
79
|
+
alignItems: string;
|
|
80
|
+
gap: number;
|
|
81
|
+
};
|
|
82
|
+
multiBarContainer: {
|
|
83
|
+
flex: number;
|
|
84
|
+
};
|
|
85
|
+
rowStacked: {
|
|
86
|
+
display: string;
|
|
87
|
+
flexDirection: string;
|
|
88
|
+
gap: number;
|
|
89
|
+
cursor: string;
|
|
90
|
+
userSelect: string;
|
|
91
|
+
transition: string;
|
|
92
|
+
'&:hover [data-bar-fill="true"]': {
|
|
93
|
+
filter: string;
|
|
94
|
+
};
|
|
95
|
+
'&:focus-visible': {
|
|
96
|
+
outline: string;
|
|
97
|
+
outlineColor: string;
|
|
98
|
+
outlineOffset: number;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
stackedHeader: {
|
|
102
|
+
display: string;
|
|
103
|
+
justifyContent: string;
|
|
104
|
+
alignItems: string;
|
|
105
|
+
gap: number;
|
|
106
|
+
};
|
|
107
|
+
stackedTotal: {
|
|
108
|
+
color: string;
|
|
109
|
+
fontWeight: string;
|
|
110
|
+
fontVariantNumeric: string;
|
|
111
|
+
minWidth: number;
|
|
112
|
+
textAlign: string;
|
|
113
|
+
};
|
|
114
|
+
stackedBreakdown: {
|
|
115
|
+
display: string;
|
|
116
|
+
flexWrap: string;
|
|
117
|
+
columnGap: number;
|
|
118
|
+
rowGap: number;
|
|
119
|
+
};
|
|
120
|
+
stackedBreakdownItem: {
|
|
121
|
+
color: string;
|
|
122
|
+
fontVariantNumeric: string;
|
|
123
|
+
};
|
|
124
|
+
legend: {
|
|
125
|
+
display: string;
|
|
126
|
+
alignItems: string;
|
|
127
|
+
gap: number;
|
|
128
|
+
flexWrap: string;
|
|
129
|
+
pt: number;
|
|
130
|
+
mt: number;
|
|
131
|
+
position: string;
|
|
132
|
+
bottom: number;
|
|
133
|
+
bgcolor: string;
|
|
134
|
+
borderTop: (theme: Theme) => string;
|
|
135
|
+
};
|
|
136
|
+
legendItem: {
|
|
137
|
+
display: string;
|
|
138
|
+
alignItems: string;
|
|
139
|
+
gap: number;
|
|
140
|
+
};
|
|
141
|
+
legendDot: {
|
|
142
|
+
width: number;
|
|
143
|
+
height: number;
|
|
144
|
+
borderRadius: string;
|
|
145
|
+
};
|
|
146
|
+
legendLabel: {
|
|
147
|
+
color: string;
|
|
148
|
+
textTransform: string;
|
|
149
|
+
fontWeight: string;
|
|
150
|
+
};
|
|
151
|
+
otherRow: {
|
|
152
|
+
display: string;
|
|
153
|
+
justifyContent: string;
|
|
154
|
+
alignItems: string;
|
|
155
|
+
py: number;
|
|
156
|
+
px: number;
|
|
157
|
+
};
|
|
158
|
+
otherLabel: {
|
|
159
|
+
fontStyle: string;
|
|
160
|
+
color: string;
|
|
161
|
+
fontWeight: string;
|
|
162
|
+
};
|
|
163
|
+
otherCount: {
|
|
164
|
+
color: string;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { WidgetSeries } from '../types';
|
|
2
|
+
/** A single row in a Category widget. `name` is the category key. */
|
|
3
|
+
export interface CategoryDataItem {
|
|
4
|
+
name: string | number;
|
|
5
|
+
value: number;
|
|
6
|
+
/** Optional per-row color override (wins over series + palette). */
|
|
7
|
+
color?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Category widget data — array of series, each a flat list of `{name, value}`.
|
|
11
|
+
*
|
|
12
|
+
* Single-series (`data.length === 1`) renders one bar per row.
|
|
13
|
+
* Multi-series (`data.length > 1`) groups items by `name` across series and
|
|
14
|
+
* renders N vertically-stacked bars per row, with a sticky legend at the
|
|
15
|
+
* bottom when `series` metadata is supplied.
|
|
16
|
+
*/
|
|
17
|
+
export type CategoryWidgetData = readonly (readonly CategoryDataItem[])[];
|
|
18
|
+
/**
|
|
19
|
+
* The keyspace of selectable items. Per the destination-owned selection
|
|
20
|
+
* principle, the consumer keeps this in their own store.
|
|
21
|
+
*/
|
|
22
|
+
export type CategoryKey = string | number;
|
|
23
|
+
/**
|
|
24
|
+
* Per-series metadata. Supplied to enable the legend and override the
|
|
25
|
+
* auto-assigned palette color for a given series index. Length should
|
|
26
|
+
* mirror `data.length` for a full legend; shorter/longer arrays degrade
|
|
27
|
+
* gracefully (extra entries ignored; missing entries get palette
|
|
28
|
+
* defaults and are absent from the legend).
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Per-series metadata. Type alias of the cross-widget
|
|
32
|
+
* {@link WidgetSeries} shape (`{ name, color? }`) so Category, Formula,
|
|
33
|
+
* Spread, and the echart-based widgets all consume the same input
|
|
34
|
+
* shape. Kept as a named export for backwards compatibility.
|
|
35
|
+
*/
|
|
36
|
+
export type CategorySeriesConfig = WidgetSeries;
|
|
37
|
+
/**
|
|
38
|
+
* Labels for the "Other" overflow row (rendered when `data.length`
|
|
39
|
+
* exceeds `maxItems`). `{count}` in `otherCount` is replaced with the
|
|
40
|
+
* number of hidden categories.
|
|
41
|
+
*/
|
|
42
|
+
export interface CategoryLabels {
|
|
43
|
+
other?: string;
|
|
44
|
+
otherCount?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Visual density of the bar primitive. `'small'` (default) keeps the
|
|
48
|
+
* original 4px-tall, fully-rounded track. `'medium'` renders a 12px-tall
|
|
49
|
+
* track with a 2px corner radius (squarer affordance for denser layouts).
|
|
50
|
+
* Only the bar track + fill are affected — row layout, label typography,
|
|
51
|
+
* value column, legend, and hover affordance are unchanged.
|
|
52
|
+
*/
|
|
53
|
+
export type CategorySize = 'small' | 'medium';
|