@carto/ps-react-ui 5.0.0-widgets.8 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions-CGJD6q0t.js +1318 -0
- package/dist/actions-CGJD6q0t.js.map +1 -0
- package/dist/actions-yPZwFxSZ.js +1004 -0
- package/dist/actions-yPZwFxSZ.js.map +1 -0
- package/dist/category-DGUDabsi.js +829 -0
- package/dist/category-DGUDabsi.js.map +1 -0
- package/dist/chart-config-B_fdIcD3.js +108 -0
- package/dist/chart-config-B_fdIcD3.js.map +1 -0
- package/dist/chat.js +1642 -0
- package/dist/chat.js.map +1 -0
- package/dist/cjs-CBrZjPCj.js +75 -0
- package/dist/cjs-CBrZjPCj.js.map +1 -0
- package/dist/components-FED-ArwH.js +4053 -0
- package/dist/components-FED-ArwH.js.map +1 -0
- package/dist/components.js +5 -1351
- package/dist/copy-button-TTlZONkX.js +34 -0
- package/dist/copy-button-TTlZONkX.js.map +1 -0
- package/dist/csv-modifiers-D6HGC24b.js +26 -0
- package/dist/csv-modifiers-D6HGC24b.js.map +1 -0
- package/dist/download-DdaK3qgC.js +232 -0
- package/dist/download-DdaK3qgC.js.map +1 -0
- package/dist/echart-BkaV3V5G.js +133 -0
- package/dist/echart-BkaV3V5G.js.map +1 -0
- package/dist/echart-DeBgdOtX.js +250 -0
- package/dist/echart-DeBgdOtX.js.map +1 -0
- package/dist/formatter-wVO81tYk.js +6 -0
- package/dist/formatter-wVO81tYk.js.map +1 -0
- package/dist/formula-YfZmmuYX.js +190 -0
- package/dist/formula-YfZmmuYX.js.map +1 -0
- package/dist/formula-noJzQwKo.js +285 -0
- package/dist/formula-noJzQwKo.js.map +1 -0
- package/dist/hooks-zf5gKZYq.js +22 -0
- package/dist/hooks-zf5gKZYq.js.map +1 -0
- package/dist/legend/stores.js +2 -0
- package/dist/legend.js +2284 -0
- package/dist/legend.js.map +1 -0
- package/dist/markdown-2dfL6Cmb.js +165 -0
- package/dist/markdown-2dfL6Cmb.js.map +1 -0
- package/dist/markdown-content-BWUqwx9F.js +8776 -0
- package/dist/markdown-content-BWUqwx9F.js.map +1 -0
- package/dist/range-BCMAl5xf.js +277 -0
- package/dist/range-BCMAl5xf.js.map +1 -0
- package/dist/rolldown-runtime-B0aSnxlc.js +20 -0
- package/dist/row-CvVGBuy_.js +35 -0
- package/dist/row-CvVGBuy_.js.map +1 -0
- package/dist/shared-resize-observer-BEiP2rQt.js +157 -0
- package/dist/shared-resize-observer-BEiP2rQt.js.map +1 -0
- package/dist/smart-tooltip-CwGHCqab.js +34 -0
- package/dist/smart-tooltip-CwGHCqab.js.map +1 -0
- package/dist/spread-Ccpg9fi0.js +149 -0
- package/dist/spread-Ccpg9fi0.js.map +1 -0
- package/dist/stores-mad-9yFn.js +369 -0
- package/dist/stores-mad-9yFn.js.map +1 -0
- package/dist/stores-tiFePP0A.js +243 -0
- package/dist/stores-tiFePP0A.js.map +1 -0
- package/dist/styles-Y-qGBELO.js +13 -0
- package/dist/styles-Y-qGBELO.js.map +1 -0
- package/dist/table-Bx9Uj3U0.js +440 -0
- package/dist/table-Bx9Uj3U0.js.map +1 -0
- package/dist/tooltip-DJUGNZxY.js +23 -0
- package/dist/tooltip-DJUGNZxY.js.map +1 -0
- package/dist/types/chat/bubbles/chat-agent-message-markdown.d.ts +12 -0
- package/dist/types/chat/bubbles/chat-agent-message.d.ts +9 -0
- package/dist/types/chat/bubbles/chat-error-message.d.ts +2 -0
- package/dist/types/chat/bubbles/chat-suggestion-button.d.ts +2 -0
- package/dist/types/chat/bubbles/chat-user-message.d.ts +2 -0
- package/dist/types/chat/bubbles/index.d.ts +5 -0
- package/dist/types/chat/bubbles/styles.d.ts +88 -0
- package/dist/types/chat/const.d.ts +4 -0
- package/dist/types/chat/containers/chat-content.d.ts +2 -0
- package/dist/types/chat/containers/chat-footer.d.ts +2 -0
- package/dist/types/chat/containers/chat-header.d.ts +2 -0
- package/dist/types/chat/containers/chat-starter.d.ts +2 -0
- package/dist/types/chat/containers/index.d.ts +4 -0
- package/dist/types/chat/containers/styles.d.ts +160 -0
- package/dist/types/chat/feedback/chat-actions-container.d.ts +3 -0
- package/dist/types/chat/feedback/chat-loader.d.ts +2 -0
- package/dist/types/chat/feedback/chat-rating-action.d.ts +2 -0
- package/dist/types/chat/feedback/chat-thinking.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tool-code-area.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tool-full-view-dialog.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tool-group.d.ts +2 -0
- package/dist/types/chat/feedback/chat-tool-trace.d.ts +3 -0
- package/dist/types/chat/feedback/get-tool-label.d.ts +2 -0
- package/dist/types/chat/feedback/index.d.ts +8 -0
- package/dist/types/chat/feedback/styles.d.ts +212 -0
- package/dist/types/chat/index.d.ts +21 -0
- package/dist/types/chat/types.d.ts +214 -0
- package/dist/types/chat/use-typewriter.d.ts +32 -0
- package/dist/types/components/basemaps/basemaps.d.ts +21 -1
- package/dist/types/components/basemaps/const.d.ts +1 -1
- package/dist/types/components/basemaps/group-wrapper.d.ts +1 -1
- package/dist/types/components/basemaps/group.d.ts +2 -2
- package/dist/types/components/basemaps/header.d.ts +2 -2
- package/dist/types/components/common-types.d.ts +49 -0
- package/dist/types/components/copy-button/copy-button.d.ts +2 -0
- package/dist/types/components/copy-button/types.d.ts +6 -0
- package/dist/types/components/geolocation-controls/geolocation-controls.d.ts +12 -1
- package/dist/types/components/index.d.ts +37 -20
- package/dist/types/components/lasso-tool/chip.d.ts +2 -2
- package/dist/types/components/lasso-tool/const.d.ts +2 -2
- package/dist/types/components/lasso-tool/edit-confirm-toolbar.d.ts +26 -0
- package/dist/types/components/lasso-tool/geometry-toolbar.d.ts +49 -0
- package/dist/types/components/lasso-tool/icons.d.ts +22 -5
- package/dist/types/components/lasso-tool/lasso-tool-inline.d.ts +36 -3
- package/dist/types/components/lasso-tool/lasso-tool.d.ts +34 -9
- package/dist/types/components/lasso-tool/layer-filters.d.ts +10 -0
- package/dist/types/components/lasso-tool/message.d.ts +7 -0
- package/dist/types/components/lasso-tool/options-sections.d.ts +28 -0
- package/dist/types/components/lasso-tool/styles.d.ts +24 -2
- package/dist/types/components/lasso-tool/toolbar/actions/accept-action.d.ts +13 -0
- package/dist/types/components/lasso-tool/toolbar/actions/action-menu.d.ts +28 -0
- package/dist/types/components/lasso-tool/toolbar/actions/cancel-action.d.ts +13 -0
- package/dist/types/components/lasso-tool/toolbar/actions/color-action.d.ts +44 -0
- package/dist/types/components/lasso-tool/toolbar/actions/delete-action.d.ts +11 -0
- package/dist/types/components/lasso-tool/toolbar/actions/duplicate-action.d.ts +11 -0
- package/dist/types/components/lasso-tool/toolbar/actions/edit-geometry-action.d.ts +13 -0
- package/dist/types/components/lasso-tool/toolbar/actions/edit-properties-action.d.ts +60 -0
- package/dist/types/components/lasso-tool/toolbar/actions/fill-action.d.ts +26 -0
- package/dist/types/components/lasso-tool/toolbar/actions/intersect-action.d.ts +14 -0
- package/dist/types/components/lasso-tool/toolbar/actions/label-action.d.ts +69 -0
- package/dist/types/components/lasso-tool/toolbar/actions/lock-action.d.ts +17 -0
- package/dist/types/components/lasso-tool/toolbar/actions/redo-action.d.ts +14 -0
- package/dist/types/components/lasso-tool/toolbar/actions/split-action.d.ts +14 -0
- package/dist/types/components/lasso-tool/toolbar/actions/stroke-action.d.ts +27 -0
- package/dist/types/components/lasso-tool/toolbar/actions/subtract-action.d.ts +14 -0
- package/dist/types/components/lasso-tool/toolbar/actions/toggle-type-action.d.ts +19 -0
- package/dist/types/components/lasso-tool/toolbar/actions/undo-action.d.ts +14 -0
- package/dist/types/components/lasso-tool/toolbar/actions/union-action.d.ts +14 -0
- package/dist/types/components/lasso-tool/toolbar/button.d.ts +24 -0
- package/dist/types/components/lasso-tool/toolbar/connected.d.ts +55 -0
- package/dist/types/components/lasso-tool/toolbar/context.d.ts +31 -0
- package/dist/types/components/lasso-tool/toolbar/index.d.ts +41 -0
- package/dist/types/components/lasso-tool/toolbar/styles.d.ts +26 -0
- package/dist/types/components/lasso-tool/toolbar/toolbar.d.ts +30 -0
- package/dist/types/components/lasso-tool/tools-context.d.ts +12 -0
- package/dist/types/components/lasso-tool/types.d.ts +284 -10
- package/dist/types/components/lasso-tool/undo-redo.d.ts +25 -0
- package/dist/types/components/list-data/list-data-skeleton.d.ts +1 -1
- package/dist/types/components/list-data/list-data.d.ts +17 -1
- package/dist/types/components/measurement-tools/const.d.ts +2 -2
- package/dist/types/components/measurement-tools/icons.d.ts +3 -3
- package/dist/types/components/measurement-tools/measurement-tools.d.ts +21 -1
- package/dist/types/components/measurement-tools/styles.d.ts +14 -4
- package/dist/types/components/measurement-tools/types.d.ts +1 -1
- package/dist/types/components/no-data-alert/no-data-alert.d.ts +1 -1
- package/dist/types/components/responsive-drawer/responsive-drawer.d.ts +38 -6
- package/dist/types/components/smart-tooltip/smart-tooltip.d.ts +18 -1
- package/dist/types/components/tooltip/tooltip.d.ts +14 -1
- package/dist/types/components/types.d.ts +1 -1
- package/dist/types/components/zoom-controls/zoom-controls.d.ts +17 -1
- package/dist/types/hooks/index.d.ts +1 -2
- package/dist/types/hooks/use-widget-ref.d.ts +10 -6
- package/dist/types/legend/components/a11y.d.ts +6 -0
- package/dist/types/legend/components/contexts.d.ts +38 -0
- package/dist/types/legend/components/icons.d.ts +12 -0
- package/dist/types/legend/components/index.d.ts +26 -0
- package/dist/types/legend/components/legend-actions/legend-actions.d.ts +25 -0
- package/dist/types/legend/components/legend-actions/styles.d.ts +7 -0
- package/dist/types/legend/components/legend-category/legend-category-ui.d.ts +13 -0
- package/dist/types/legend/components/legend-category/styles.d.ts +52 -0
- package/dist/types/legend/components/legend-config-select/legend-config-select.d.ts +14 -0
- package/dist/types/legend/components/legend-config-select/styles.d.ts +44 -0
- package/dist/types/legend/components/legend-group/legend-group.d.ts +12 -0
- package/dist/types/legend/components/legend-group/styles.d.ts +129 -0
- package/dist/types/legend/components/legend-group-menu/legend-group-menu-items.d.ts +28 -0
- package/dist/types/legend/components/legend-group-menu/legend-group-menu.d.ts +11 -0
- package/dist/types/legend/components/legend-icon/legend-icon-ui.d.ts +10 -0
- package/dist/types/legend/components/legend-icon/styles.d.ts +52 -0
- package/dist/types/legend/components/legend-item/legend-item-ui.d.ts +14 -0
- package/dist/types/legend/components/legend-item/legend-item.d.ts +10 -0
- package/dist/types/{widgets/root/style.d.ts → legend/components/legend-item/styles.d.ts} +2 -3
- package/dist/types/legend/components/legend-opacity/legend-opacity.d.ts +22 -0
- package/dist/types/legend/components/legend-opacity/styles.d.ts +28 -0
- package/dist/types/legend/components/legend-overflow-menu/legend-overflow-menu.d.ts +12 -0
- package/dist/types/legend/components/legend-panel-menu/legend-panel-menu.d.ts +11 -0
- package/dist/types/legend/components/legend-proportion/legend-proportion-ui.d.ts +16 -0
- package/dist/types/legend/components/legend-proportion/styles.d.ts +37 -0
- package/dist/types/legend/components/legend-ramp/legend-ramp-ui.d.ts +20 -0
- package/dist/types/legend/components/legend-ramp/styles.d.ts +53 -0
- package/dist/types/legend/components/legend-row/legend-row.d.ts +16 -0
- package/dist/types/legend/components/legend-row/styles.d.ts +149 -0
- package/dist/types/legend/components/legend-row-menu/legend-row-menu-items.d.ts +12 -0
- package/dist/types/legend/components/legend-row-menu/legend-row-menu.d.ts +12 -0
- package/dist/types/legend/components/legend-row-menu/legend-zoom-to.d.ts +10 -0
- package/dist/types/legend/components/legend-sortable/contexts.d.ts +7 -0
- package/dist/types/legend/components/legend-sortable/legend-sortable.d.ts +11 -0
- package/dist/types/legend/components/legend-sortable/sortable-entity.d.ts +27 -0
- package/dist/types/legend/components/legend-sortable/sortable-ids.d.ts +6 -0
- package/dist/types/legend/components/legend-sortable/styles.d.ts +55 -0
- package/dist/types/legend/components/legend-swatch/legend-swatch.d.ts +26 -0
- package/dist/types/legend/components/legend-visibility-toggle/legend-visibility-toggle.d.ts +35 -0
- package/dist/types/legend/components/legend-visible-layers/legend-visible-layers.d.ts +7 -0
- package/dist/types/legend/components/legend-visible-layers/styles.d.ts +48 -0
- package/dist/types/legend/components/run-async-menu-action.d.ts +7 -0
- package/dist/types/legend/index.d.ts +135 -0
- package/dist/types/legend/provider/index.d.ts +6 -0
- package/dist/types/legend/provider/labels.d.ts +48 -0
- package/dist/types/legend/provider/legend-config-context.d.ts +7 -0
- package/dist/types/legend/provider/legend-provider.d.ts +38 -0
- package/dist/types/legend/stores/index.d.ts +5 -0
- package/dist/types/legend/stores/legend-context.d.ts +4 -0
- package/dist/types/legend/stores/legend-store-registry.d.ts +39 -0
- package/dist/types/legend/stores/selectors.d.ts +64 -0
- package/dist/types/legend/stores/types.d.ts +294 -0
- package/dist/types/widgets/actions/brush-toggle/brush-overlay.d.ts +24 -0
- package/dist/types/widgets/actions/brush-toggle/brush-toggle.d.ts +29 -0
- package/dist/types/widgets/actions/brush-toggle/hit-test.d.ts +19 -0
- package/dist/types/widgets/actions/brush-toggle/style.d.ts +21 -0
- package/dist/types/widgets/actions/brush-toggle/types.d.ts +73 -0
- package/dist/types/widgets/actions/change-column/change-column-icon.d.ts +1 -1
- package/dist/types/widgets/actions/change-column/change-column.d.ts +6 -2
- package/dist/types/widgets/actions/change-column/sortable-column-item.d.ts +2 -2
- package/dist/types/widgets/actions/download/download.d.ts +13 -2
- package/dist/types/widgets/actions/download/exports.d.ts +16 -1
- package/dist/types/widgets/actions/download/types.d.ts +1 -1
- package/dist/types/widgets/actions/fullscreen/fullscreen.d.ts +15 -2
- package/dist/types/widgets/actions/fullscreen/types.d.ts +3 -2
- package/dist/types/widgets/actions/index.d.ts +20 -18
- package/dist/types/widgets/actions/lock-selection/lock-selection.d.ts +2 -2
- package/dist/types/widgets/actions/lock-selection/types.d.ts +10 -10
- package/dist/types/widgets/actions/relative-data/relative-data.d.ts +10 -4
- package/dist/types/widgets/actions/relative-data/types.d.ts +3 -1
- package/dist/types/widgets/actions/relative-data/utils.d.ts +1 -1
- package/dist/types/widgets/actions/searcher/searcher-toggle.d.ts +2 -2
- package/dist/types/widgets/actions/searcher/searcher.d.ts +2 -2
- package/dist/types/widgets/actions/searcher/types.d.ts +2 -2
- package/dist/types/widgets/actions/stack-toggle/grouped-bar-chart-icon.d.ts +1 -1
- package/dist/types/widgets/actions/stack-toggle/stack-toggle.d.ts +5 -4
- 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 +10 -2
- package/dist/types/widgets/bar/config.d.ts +8 -4
- package/dist/types/widgets/bar/index.d.ts +3 -3
- package/dist/types/widgets/bar/skeleton.d.ts +1 -1
- package/dist/types/widgets/bar/types.d.ts +3 -3
- package/dist/types/widgets/category/category-ui.d.ts +5 -2
- package/dist/types/widgets/category/components/category-bar.d.ts +4 -1
- package/dist/types/widgets/category/components/category-legend.d.ts +5 -2
- package/dist/types/widgets/category/components/category-row-multi.d.ts +6 -2
- package/dist/types/widgets/category/components/category-row-other.d.ts +4 -1
- package/dist/types/widgets/category/components/category-row-single.d.ts +6 -2
- package/dist/types/widgets/category/config.d.ts +16 -12
- package/dist/types/widgets/category/index.d.ts +14 -6
- package/dist/types/widgets/category/skeleton.d.ts +1 -1
- package/dist/types/widgets/category/style.d.ts +1 -1
- package/dist/types/widgets/category/types.d.ts +4 -3
- package/dist/types/widgets/echart/echart-ui.d.ts +9 -2
- package/dist/types/widgets/echart/echart.d.ts +8 -2
- package/dist/types/widgets/echart/index.d.ts +5 -5
- package/dist/types/widgets/echart/options.d.ts +8 -1
- package/dist/types/widgets/echart/shared-resize-observer.d.ts +12 -0
- package/dist/types/widgets/echart/types.d.ts +7 -2
- package/dist/types/widgets/echart/utils.d.ts +57 -9
- package/dist/types/widgets/error/error.d.ts +12 -2
- package/dist/types/widgets/error/index.d.ts +2 -2
- package/dist/types/widgets/error/types.d.ts +9 -1
- package/dist/types/widgets/formula/components/item.d.ts +5 -2
- package/dist/types/widgets/formula/components/prefix.d.ts +5 -2
- package/dist/types/widgets/formula/components/row.d.ts +5 -2
- package/dist/types/widgets/formula/components/series.d.ts +5 -2
- package/dist/types/widgets/formula/components/suffix.d.ts +5 -2
- package/dist/types/widgets/formula/components/value.d.ts +5 -2
- package/dist/types/widgets/formula/config.d.ts +13 -2
- package/dist/types/widgets/formula/formula-ui.d.ts +5 -2
- 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/skeleton.d.ts +1 -1
- package/dist/types/widgets/formula/types.d.ts +3 -3
- package/dist/types/widgets/histogram/config.d.ts +20 -4
- package/dist/types/widgets/histogram/index.d.ts +4 -3
- package/dist/types/widgets/histogram/skeleton.d.ts +1 -1
- package/dist/types/widgets/histogram/types.d.ts +8 -5
- package/dist/types/widgets/loader/index.d.ts +3 -0
- package/dist/types/widgets/loader/loader.d.ts +24 -0
- package/dist/types/widgets/loader/types.d.ts +9 -0
- package/dist/types/widgets/loader/utils.d.ts +35 -0
- package/dist/types/widgets/markdown/config.d.ts +12 -2
- package/dist/types/widgets/markdown/index.d.ts +5 -5
- package/dist/types/widgets/markdown/markdown-ui.d.ts +9 -2
- package/dist/types/widgets/markdown/markdown.d.ts +5 -2
- package/dist/types/widgets/markdown/skeleton.d.ts +1 -1
- package/dist/types/widgets/markdown/types.d.ts +4 -4
- package/dist/types/widgets/no-data/index.d.ts +2 -2
- package/dist/types/widgets/no-data/no-data.d.ts +5 -4
- package/dist/types/widgets/no-data/types.d.ts +6 -2
- package/dist/types/widgets/note/index.d.ts +2 -2
- package/dist/types/widgets/note/note.d.ts +12 -2
- package/dist/types/widgets/note/types.d.ts +1 -1
- package/dist/types/widgets/pie/config.d.ts +8 -4
- package/dist/types/widgets/pie/index.d.ts +3 -3
- package/dist/types/widgets/pie/skeleton.d.ts +1 -1
- package/dist/types/widgets/pie/types.d.ts +3 -3
- package/dist/types/widgets/range/components/range-item.d.ts +5 -2
- package/dist/types/widgets/range/config.d.ts +6 -5
- package/dist/types/widgets/range/index.d.ts +6 -6
- package/dist/types/widgets/range/range-ui.d.ts +5 -2
- package/dist/types/widgets/range/serializer.d.ts +1 -1
- package/dist/types/widgets/range/skeleton.d.ts +1 -1
- package/dist/types/widgets/range/types.d.ts +3 -3
- package/dist/types/widgets/scatterplot/config.d.ts +8 -4
- package/dist/types/widgets/scatterplot/index.d.ts +3 -3
- package/dist/types/widgets/scatterplot/skeleton.d.ts +1 -1
- 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 +13 -2
- package/dist/types/widgets/skeleton-loader/index.d.ts +2 -2
- package/dist/types/widgets/skeleton-loader/skeleton-loader.d.ts +12 -2
- package/dist/types/widgets/skeleton-loader/types.d.ts +1 -1
- package/dist/types/widgets/spread/components/max-value.d.ts +5 -2
- package/dist/types/widgets/spread/components/min-value.d.ts +5 -2
- package/dist/types/widgets/spread/components/separator.d.ts +5 -2
- package/dist/types/widgets/spread/config.d.ts +14 -8
- package/dist/types/widgets/spread/index.d.ts +9 -9
- package/dist/types/widgets/spread/skeleton.d.ts +1 -1
- package/dist/types/widgets/spread/spread-ui.d.ts +5 -2
- package/dist/types/widgets/spread/types.d.ts +4 -4
- package/dist/types/widgets/stores/index.d.ts +3 -2
- package/dist/types/widgets/stores/types.d.ts +31 -10
- package/dist/types/widgets/stores/use-widget-selector.d.ts +35 -0
- package/dist/types/widgets/stores/widget-store.d.ts +48 -27
- package/dist/types/widgets/subheader/index.d.ts +2 -2
- package/dist/types/widgets/subheader/subheader.d.ts +13 -2
- package/dist/types/widgets/table/components/cell-header.d.ts +2 -2
- package/dist/types/widgets/table/components/cell.d.ts +4 -2
- package/dist/types/widgets/table/components/pagination-actions.d.ts +2 -2
- package/dist/types/widgets/table/components/pagination.d.ts +2 -2
- package/dist/types/widgets/table/components/row.d.ts +2 -2
- package/dist/types/widgets/table/config.d.ts +10 -6
- package/dist/types/widgets/table/hooks/use-pagination.d.ts +12 -4
- package/dist/types/widgets/table/hooks/use-selection.d.ts +15 -6
- package/dist/types/widgets/table/hooks/use-sort.d.ts +13 -9
- package/dist/types/widgets/table/index.d.ts +17 -13
- package/dist/types/widgets/table/serializer.d.ts +1 -1
- package/dist/types/widgets/table/skeleton.d.ts +1 -1
- package/dist/types/widgets/table/table-ui.d.ts +8 -8
- package/dist/types/widgets/table/types.d.ts +6 -6
- package/dist/types/widgets/timeseries/config.d.ts +8 -4
- package/dist/types/widgets/timeseries/index.d.ts +3 -3
- package/dist/types/widgets/timeseries/skeleton.d.ts +1 -1
- 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 +13 -4
- package/dist/types/widgets/toolbar-actions/types.d.ts +10 -3
- package/dist/types/widgets/{_shared → utils}/chart-config/config-factory.d.ts +1 -1
- package/dist/types/widgets/utils/chart-config/download-config.d.ts +3 -0
- package/dist/types/widgets/utils/chart-config/index.d.ts +9 -0
- package/dist/types/widgets/utils/chart-config/option-builders.d.ts +142 -0
- package/dist/types/widgets/utils/formatter.d.ts +2 -0
- package/dist/types/widgets/utils/index.d.ts +7 -0
- package/dist/types/widgets/utils/skeleton/index.d.ts +4 -0
- package/dist/types/widgets/wrapper/components/actions.d.ts +5 -2
- package/dist/types/widgets/wrapper/components/options.d.ts +5 -2
- package/dist/types/widgets/wrapper/components/title.d.ts +5 -2
- 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 +16 -2
- package/dist/types/widgets/wrapper/wrapper.d.ts +16 -2
- 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/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 +6 -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 +59 -0
- package/dist/types/widgets-v2/actions/change-column/types.d.ts +10 -0
- package/dist/types/widgets-v2/actions/download/constants.d.ts +12 -0
- package/dist/types/widgets-v2/actions/download/csv-item.d.ts +38 -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 +18 -0
- package/dist/types/widgets-v2/actions/download/index.d.ts +8 -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 +10 -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 +57 -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/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/show-all/index.d.ts +2 -0
- package/dist/types/widgets-v2/actions/show-all/labels.d.ts +5 -0
- package/dist/types/widgets-v2/actions/show-all/show-all.d.ts +33 -0
- package/dist/types/widgets-v2/actions/show-all/style.d.ts +8 -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/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/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/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 +88 -0
- package/dist/types/widgets-v2/category/category.d.ts +55 -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 +34 -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 +26 -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 +43 -0
- package/dist/types/widgets-v2/category/download.d.ts +16 -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 +193 -0
- package/dist/types/widgets-v2/category/types.d.ts +55 -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/edge-label-clamp.d.ts +57 -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/style.d.ts +6 -0
- package/dist/types/widgets-v2/echart/use-chart-selection.d.ts +57 -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/index.d.ts +5 -0
- package/dist/types/widgets-v2/histogram/options.d.ts +42 -0
- package/dist/types/widgets-v2/histogram/skeleton.d.ts +9 -0
- package/dist/types/widgets-v2/histogram/transforms.d.ts +28 -0
- package/dist/types/widgets-v2/histogram/types.d.ts +60 -0
- package/dist/types/widgets-v2/index.d.ts +109 -0
- package/dist/types/widgets-v2/markdown/download.d.ts +16 -0
- package/dist/types/widgets-v2/markdown/index.d.ts +6 -0
- package/dist/types/widgets-v2/markdown/markdown-content.d.ts +40 -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/index.d.ts +4 -0
- package/dist/types/widgets-v2/pie/options.d.ts +35 -0
- package/dist/types/widgets-v2/pie/skeleton.d.ts +13 -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/index.d.ts +5 -0
- package/dist/types/widgets-v2/scatterplot/options.d.ts +42 -0
- package/dist/types/widgets-v2/scatterplot/skeleton.d.ts +12 -0
- package/dist/types/widgets-v2/scatterplot/transforms.d.ts +26 -0
- package/dist/types/widgets-v2/scatterplot/types.d.ts +54 -0
- package/dist/types/widgets-v2/selection-summary/labels.d.ts +11 -0
- package/dist/types/widgets-v2/selection-summary/selection-summary.d.ts +29 -0
- package/dist/types/widgets-v2/selection-summary/style.d.ts +38 -0
- package/dist/types/widgets-v2/spread/band.d.ts +37 -0
- package/dist/types/widgets-v2/spread/download.d.ts +15 -0
- package/dist/types/widgets-v2/spread/index.d.ts +7 -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/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/transforms.d.ts +4 -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/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/helpers.d.ts +32 -0
- package/dist/types/widgets-v2/table/index.d.ts +8 -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/transforms.d.ts +15 -0
- package/dist/types/widgets-v2/table/types.d.ts +48 -0
- package/dist/types/widgets-v2/timeseries/download.d.ts +17 -0
- package/dist/types/widgets-v2/timeseries/index.d.ts +5 -0
- package/dist/types/widgets-v2/timeseries/options.d.ts +39 -0
- package/dist/types/widgets-v2/timeseries/skeleton.d.ts +8 -0
- package/dist/types/widgets-v2/timeseries/transforms.d.ts +10 -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/resolve-theme-color.d.ts +18 -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 +103 -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 +56 -0
- package/dist/use-widget-selector-VSPhfhNm.js +12 -0
- package/dist/use-widget-selector-VSPhfhNm.js.map +1 -0
- package/dist/utils-Dr6gf3vD.js +58 -0
- package/dist/utils-Dr6gf3vD.js.map +1 -0
- package/dist/widget-store-BFPKYm4R.js +187 -0
- package/dist/widget-store-BFPKYm4R.js.map +1 -0
- package/dist/widgets/actions.js +2 -830
- package/dist/widgets/bar.js +183 -186
- package/dist/widgets/bar.js.map +1 -1
- package/dist/widgets/category.js +438 -455
- package/dist/widgets/category.js.map +1 -1
- package/dist/widgets/echart.js +3 -123
- package/dist/widgets/error.js +30 -5
- package/dist/widgets/error.js.map +1 -1
- package/dist/widgets/formula.js +3 -125
- package/dist/widgets/histogram.js +185 -167
- package/dist/widgets/histogram.js.map +1 -1
- package/dist/widgets/loader.js +66 -0
- package/dist/widgets/loader.js.map +1 -0
- package/dist/widgets/markdown.js +142 -121
- package/dist/widgets/markdown.js.map +1 -1
- package/dist/widgets/no-data.js +55 -5
- package/dist/widgets/no-data.js.map +1 -1
- package/dist/widgets/note.js +126 -4
- package/dist/widgets/note.js.map +1 -1
- package/dist/widgets/pie.js +244 -208
- package/dist/widgets/pie.js.map +1 -1
- package/dist/widgets/range.js +226 -210
- package/dist/widgets/range.js.map +1 -1
- package/dist/widgets/scatterplot.js +219 -216
- package/dist/widgets/scatterplot.js.map +1 -1
- package/dist/widgets/selection-summary.js +39 -38
- package/dist/widgets/selection-summary.js.map +1 -1
- package/dist/widgets/skeleton-loader.js +23 -23
- package/dist/widgets/skeleton-loader.js.map +1 -1
- package/dist/widgets/spread.js +150 -159
- package/dist/widgets/spread.js.map +1 -1
- package/dist/widgets/stores.js +3 -5
- package/dist/widgets/subheader.js +49 -50
- package/dist/widgets/subheader.js.map +1 -1
- package/dist/widgets/table.js +573 -665
- package/dist/widgets/table.js.map +1 -1
- package/dist/widgets/timeseries.js +175 -170
- package/dist/widgets/timeseries.js.map +1 -1
- package/dist/widgets/toolbar-actions.js +144 -6105
- package/dist/widgets/toolbar-actions.js.map +1 -1
- package/dist/widgets/utils.js +18 -0
- package/dist/widgets/utils.js.map +1 -0
- package/dist/widgets/wrapper.js +265 -287
- package/dist/widgets/wrapper.js.map +1 -1
- package/dist/widgets-v2/actions.js +4 -0
- package/dist/widgets-v2/bar.js +260 -0
- package/dist/widgets-v2/bar.js.map +1 -0
- package/dist/widgets-v2/category.js +2 -0
- package/dist/widgets-v2/echart.js +2 -0
- package/dist/widgets-v2/formula.js +2 -0
- package/dist/widgets-v2/histogram.js +297 -0
- package/dist/widgets-v2/histogram.js.map +1 -0
- package/dist/widgets-v2/markdown.js +3 -0
- package/dist/widgets-v2/pie.js +374 -0
- package/dist/widgets-v2/pie.js.map +1 -0
- package/dist/widgets-v2/range.js +2 -0
- package/dist/widgets-v2/scatterplot.js +330 -0
- package/dist/widgets-v2/scatterplot.js.map +1 -0
- package/dist/widgets-v2/spread.js +2 -0
- package/dist/widgets-v2/stores.js +2 -0
- package/dist/widgets-v2/table.js +2 -0
- package/dist/widgets-v2/timeseries.js +294 -0
- package/dist/widgets-v2/timeseries.js.map +1 -0
- package/dist/widgets-v2/utils.js +2 -0
- package/dist/widgets-v2.js +964 -0
- package/dist/widgets-v2.js.map +1 -0
- package/dist/zoom-toggle-IsF8BnAp.js +163 -0
- package/dist/zoom-toggle-IsF8BnAp.js.map +1 -0
- package/package.json +109 -17
- package/src/chat/bubbles/chat-agent-message-markdown.test.tsx +38 -0
- package/src/chat/bubbles/chat-agent-message-markdown.tsx +34 -0
- package/src/chat/bubbles/chat-agent-message.test.tsx +42 -0
- package/src/chat/bubbles/chat-agent-message.tsx +31 -0
- package/src/chat/bubbles/chat-error-message.test.tsx +40 -0
- package/src/chat/bubbles/chat-error-message.tsx +47 -0
- package/src/chat/bubbles/chat-suggestion-button.test.tsx +24 -0
- package/src/chat/bubbles/chat-suggestion-button.tsx +27 -0
- package/src/chat/bubbles/chat-user-message.test.tsx +27 -0
- package/src/chat/bubbles/chat-user-message.tsx +27 -0
- package/src/chat/bubbles/index.ts +5 -0
- package/src/chat/bubbles/styles.ts +171 -0
- package/src/chat/const.ts +4 -0
- package/src/chat/containers/chat-content.test.tsx +269 -0
- package/src/chat/containers/chat-content.tsx +145 -0
- package/src/chat/containers/chat-footer.test.tsx +93 -0
- package/src/chat/containers/chat-footer.tsx +166 -0
- package/src/chat/containers/chat-header.test.tsx +28 -0
- package/src/chat/containers/chat-header.tsx +29 -0
- package/src/chat/containers/chat-starter.test.tsx +32 -0
- package/src/chat/containers/chat-starter.tsx +75 -0
- package/src/chat/containers/index.ts +4 -0
- package/src/chat/containers/styles.ts +187 -0
- package/src/chat/feedback/chat-actions-container.test.tsx +64 -0
- package/src/chat/feedback/chat-actions-container.tsx +10 -0
- package/src/chat/feedback/chat-loader.test.tsx +10 -0
- package/src/chat/feedback/chat-loader.tsx +31 -0
- package/src/chat/feedback/chat-rating-action.tsx +43 -0
- package/src/chat/feedback/chat-thinking.test.tsx +15 -0
- package/src/chat/feedback/chat-thinking.tsx +23 -0
- package/src/chat/feedback/chat-tool-code-area.test.tsx +23 -0
- package/src/chat/feedback/chat-tool-code-area.tsx +71 -0
- package/src/chat/feedback/chat-tool-full-view-dialog.test.tsx +39 -0
- package/src/chat/feedback/chat-tool-full-view-dialog.tsx +121 -0
- package/src/chat/feedback/chat-tool-group.test.tsx +84 -0
- package/src/chat/feedback/chat-tool-group.tsx +156 -0
- package/src/chat/feedback/chat-tool-trace.test.tsx +81 -0
- package/src/chat/feedback/chat-tool-trace.tsx +192 -0
- package/src/chat/feedback/get-tool-label.test.tsx +91 -0
- package/src/chat/feedback/get-tool-label.ts +13 -0
- package/src/chat/feedback/index.ts +8 -0
- package/src/chat/feedback/styles.ts +239 -0
- package/src/chat/index.ts +62 -0
- package/src/chat/types.ts +247 -0
- package/src/chat/use-typewriter.test.tsx +38 -0
- package/src/chat/use-typewriter.ts +90 -0
- package/src/components/basemaps/basemaps.test.tsx +196 -0
- package/src/components/basemaps/basemaps.tsx +150 -0
- package/src/components/basemaps/const.ts +13 -0
- package/src/components/basemaps/group-wrapper.test.tsx +38 -0
- package/src/components/basemaps/group-wrapper.tsx +28 -0
- package/src/components/basemaps/group.test.tsx +52 -0
- package/src/components/basemaps/group.tsx +42 -0
- package/src/components/basemaps/header.test.tsx +54 -0
- package/src/components/basemaps/header.tsx +36 -0
- package/src/components/basemaps/styles.ts +76 -0
- package/src/components/basemaps/types.ts +30 -0
- package/src/components/common-types.ts +1 -0
- package/src/components/copy-button/copy-button.test.tsx +41 -0
- package/src/components/copy-button/copy-button.tsx +31 -0
- package/src/components/copy-button/types.ts +10 -0
- package/src/components/geolocation-controls/const.ts +6 -0
- package/src/components/geolocation-controls/geolocation-controls.test.tsx +148 -0
- package/src/components/geolocation-controls/geolocation-controls.tsx +126 -0
- package/src/components/geolocation-controls/types.ts +17 -0
- package/src/components/index.ts +163 -0
- package/src/components/lasso-tool/chip.test.tsx +257 -0
- package/src/components/lasso-tool/chip.tsx +66 -0
- package/src/components/lasso-tool/const.tsx +94 -0
- package/src/components/lasso-tool/edit-confirm-toolbar.test.tsx +67 -0
- package/src/components/lasso-tool/edit-confirm-toolbar.tsx +48 -0
- package/src/components/lasso-tool/geometry-toolbar.test.tsx +804 -0
- package/src/components/lasso-tool/geometry-toolbar.tsx +158 -0
- package/src/components/lasso-tool/icons.tsx +193 -0
- package/src/components/lasso-tool/lasso-tool-inline.test.tsx +759 -0
- package/src/components/lasso-tool/lasso-tool-inline.tsx +508 -0
- package/src/components/lasso-tool/lasso-tool.test.tsx +700 -0
- package/src/components/lasso-tool/lasso-tool.tsx +673 -0
- package/src/components/lasso-tool/layer-filters.test.tsx +103 -0
- package/src/components/lasso-tool/layer-filters.tsx +242 -0
- package/src/components/lasso-tool/message.tsx +36 -0
- package/src/components/lasso-tool/options-sections.test.tsx +101 -0
- package/src/components/lasso-tool/options-sections.tsx +104 -0
- package/src/components/lasso-tool/styles.test.ts +26 -0
- package/src/components/lasso-tool/styles.ts +190 -0
- package/src/components/lasso-tool/toolbar/actions/accept-action.tsx +34 -0
- package/src/components/lasso-tool/toolbar/actions/action-menu.tsx +103 -0
- package/src/components/lasso-tool/toolbar/actions/cancel-action.tsx +34 -0
- package/src/components/lasso-tool/toolbar/actions/color-action.tsx +201 -0
- package/src/components/lasso-tool/toolbar/actions/delete-action.tsx +31 -0
- package/src/components/lasso-tool/toolbar/actions/duplicate-action.tsx +30 -0
- package/src/components/lasso-tool/toolbar/actions/edit-geometry-action.tsx +44 -0
- package/src/components/lasso-tool/toolbar/actions/edit-properties-action.tsx +487 -0
- package/src/components/lasso-tool/toolbar/actions/fill-action.tsx +55 -0
- package/src/components/lasso-tool/toolbar/actions/intersect-action.tsx +33 -0
- package/src/components/lasso-tool/toolbar/actions/label-action.tsx +292 -0
- package/src/components/lasso-tool/toolbar/actions/lock-action.tsx +40 -0
- package/src/components/lasso-tool/toolbar/actions/redo-action.tsx +35 -0
- package/src/components/lasso-tool/toolbar/actions/split-action.tsx +33 -0
- package/src/components/lasso-tool/toolbar/actions/stroke-action.tsx +57 -0
- package/src/components/lasso-tool/toolbar/actions/style-actions.test.tsx +212 -0
- package/src/components/lasso-tool/toolbar/actions/subtract-action.tsx +33 -0
- package/src/components/lasso-tool/toolbar/actions/toggle-type-action.tsx +50 -0
- package/src/components/lasso-tool/toolbar/actions/undo-action.tsx +35 -0
- package/src/components/lasso-tool/toolbar/actions/union-action.tsx +40 -0
- package/src/components/lasso-tool/toolbar/button.tsx +62 -0
- package/src/components/lasso-tool/toolbar/connected.tsx +383 -0
- package/src/components/lasso-tool/toolbar/context.tsx +65 -0
- package/src/components/lasso-tool/toolbar/index.ts +70 -0
- package/src/components/lasso-tool/toolbar/styles.ts +42 -0
- package/src/components/lasso-tool/toolbar/toolbar.test.tsx +77 -0
- package/src/components/lasso-tool/toolbar/toolbar.tsx +50 -0
- package/src/components/lasso-tool/tools-context.tsx +47 -0
- package/src/components/lasso-tool/types.ts +384 -0
- package/src/components/lasso-tool/undo-redo.test.tsx +162 -0
- package/src/components/lasso-tool/undo-redo.tsx +55 -0
- package/src/components/list-data/list-data-skeleton.test.tsx +10 -0
- package/src/components/list-data/list-data-skeleton.tsx +40 -0
- package/src/components/list-data/list-data.test.tsx +167 -0
- package/src/components/list-data/list-data.tsx +124 -0
- package/src/components/list-data/styles.ts +37 -0
- package/src/components/list-data/types.ts +25 -0
- package/src/components/measurement-tools/const.tsx +108 -0
- package/src/components/measurement-tools/icons.tsx +54 -0
- package/src/components/measurement-tools/measurement-tools.test.tsx +165 -0
- package/src/components/measurement-tools/measurement-tools.tsx +467 -0
- package/src/components/measurement-tools/styles.ts +92 -0
- package/src/components/measurement-tools/types.ts +77 -0
- package/src/components/no-data-alert/no-data-alert.test.tsx +69 -0
- package/src/components/no-data-alert/no-data-alert.tsx +59 -0
- package/src/components/responsive-drawer/responsive-drawer.test.tsx +415 -0
- package/src/components/responsive-drawer/responsive-drawer.tsx +219 -0
- package/src/components/smart-tooltip/smart-tooltip.test.tsx +168 -0
- package/src/components/smart-tooltip/smart-tooltip.tsx +74 -0
- package/src/components/tooltip/tooltip.test.tsx +86 -0
- package/src/components/tooltip/tooltip.tsx +43 -0
- package/src/components/types.ts +1 -0
- package/src/components/zoom-controls/styles.ts +27 -0
- package/src/components/zoom-controls/types.ts +19 -0
- package/src/components/zoom-controls/zoom-controls.test.tsx +101 -0
- package/src/components/zoom-controls/zoom-controls.tsx +130 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/use-skeleton.test.tsx +32 -0
- package/src/hooks/use-skeleton.ts +19 -0
- package/src/hooks/use-widget-ref.ts +34 -0
- package/src/legend/components/a11y.ts +14 -0
- package/src/legend/components/contexts.ts +57 -0
- package/src/legend/components/icons.tsx +22 -0
- package/src/legend/components/index.ts +38 -0
- package/src/legend/components/legend-actions/legend-actions.tsx +58 -0
- package/src/legend/components/legend-actions/styles.ts +9 -0
- package/src/legend/components/legend-category/legend-category-ui.tsx +91 -0
- package/src/legend/components/legend-category/styles.ts +61 -0
- package/src/legend/components/legend-config-select/legend-config-select.tsx +96 -0
- package/src/legend/components/legend-config-select/styles.ts +48 -0
- package/src/legend/components/legend-group/legend-group.test.tsx +297 -0
- package/src/legend/components/legend-group/legend-group.tsx +126 -0
- package/src/legend/components/legend-group/styles.ts +184 -0
- package/src/legend/components/legend-group-menu/legend-group-menu-items.tsx +132 -0
- package/src/legend/components/legend-group-menu/legend-group-menu.tsx +25 -0
- package/src/legend/components/legend-icon/legend-icon-ui.tsx +56 -0
- package/src/legend/components/legend-icon/styles.ts +56 -0
- package/src/legend/components/legend-item/legend-item-ui.test.tsx +362 -0
- package/src/legend/components/legend-item/legend-item-ui.tsx +43 -0
- package/src/legend/components/legend-item/legend-item.tsx +34 -0
- package/src/legend/components/legend-item/styles.ts +11 -0
- package/src/legend/components/legend-opacity/legend-opacity.tsx +152 -0
- package/src/legend/components/legend-opacity/styles.ts +33 -0
- package/src/legend/components/legend-overflow-menu/legend-overflow-menu.tsx +84 -0
- package/src/legend/components/legend-panel-menu/legend-panel-menu.tsx +23 -0
- package/src/legend/components/legend-proportion/legend-proportion-ui.tsx +122 -0
- package/src/legend/components/legend-proportion/styles.ts +43 -0
- package/src/legend/components/legend-ramp/legend-ramp-ui.tsx +160 -0
- package/src/legend/components/legend-ramp/styles.ts +62 -0
- package/src/legend/components/legend-row/legend-row.test.tsx +736 -0
- package/src/legend/components/legend-row/legend-row.tsx +170 -0
- package/src/legend/components/legend-row/styles.ts +219 -0
- package/src/legend/components/legend-row-menu/legend-row-menu-items.tsx +57 -0
- package/src/legend/components/legend-row-menu/legend-row-menu.tsx +30 -0
- package/src/legend/components/legend-row-menu/legend-zoom-to.tsx +43 -0
- package/src/legend/components/legend-sortable/contexts.ts +12 -0
- package/src/legend/components/legend-sortable/legend-sortable.test.tsx +144 -0
- package/src/legend/components/legend-sortable/legend-sortable.tsx +195 -0
- package/src/legend/components/legend-sortable/sortable-entity.tsx +91 -0
- package/src/legend/components/legend-sortable/sortable-ids.ts +17 -0
- package/src/legend/components/legend-sortable/styles.ts +65 -0
- package/src/legend/components/legend-swatch/legend-swatch.test.tsx +109 -0
- package/src/legend/components/legend-swatch/legend-swatch.tsx +237 -0
- package/src/legend/components/legend-visibility-toggle/legend-visibility-toggle.tsx +133 -0
- package/src/legend/components/legend-visible-layers/legend-visible-layers.test.tsx +86 -0
- package/src/legend/components/legend-visible-layers/legend-visible-layers.tsx +135 -0
- package/src/legend/components/legend-visible-layers/styles.ts +60 -0
- package/src/legend/components/run-async-menu-action.ts +20 -0
- package/src/legend/index.ts +176 -0
- package/src/legend/provider/index.ts +6 -0
- package/src/legend/provider/labels.ts +101 -0
- package/src/legend/provider/legend-config-context.ts +15 -0
- package/src/legend/provider/legend-provider.tsx +102 -0
- package/src/legend/stores/index.ts +50 -0
- package/src/legend/stores/legend-context.ts +17 -0
- package/src/legend/stores/legend-store-registry.ts +745 -0
- package/src/legend/stores/legend-store.test.ts +701 -0
- package/src/legend/stores/selectors.ts +127 -0
- package/src/legend/stores/types.ts +359 -0
- package/src/widgets/README.md +277 -0
- package/src/widgets/actions/brush-toggle/brush-overlay.test.tsx +465 -0
- package/src/widgets/actions/brush-toggle/brush-overlay.tsx +408 -0
- package/src/widgets/actions/brush-toggle/brush-toggle.test.tsx +208 -0
- package/src/widgets/actions/brush-toggle/brush-toggle.tsx +133 -0
- package/src/widgets/actions/brush-toggle/hit-test.test.ts +65 -0
- package/src/widgets/actions/brush-toggle/hit-test.ts +45 -0
- package/src/widgets/actions/brush-toggle/style.ts +46 -0
- package/src/widgets/actions/brush-toggle/types.ts +78 -0
- package/src/widgets/actions/change-column/change-column-dnd.test.tsx +193 -0
- package/src/widgets/actions/change-column/change-column-icon.tsx +10 -0
- package/src/widgets/actions/change-column/change-column.test.tsx +290 -0
- package/src/widgets/actions/change-column/change-column.tsx +218 -0
- package/src/widgets/actions/change-column/sortable-column-item.test.tsx +124 -0
- package/src/widgets/actions/change-column/sortable-column-item.tsx +51 -0
- package/src/widgets/actions/change-column/types.ts +20 -0
- package/src/widgets/actions/download/download.test.tsx +326 -0
- package/src/widgets/actions/download/download.tsx +132 -0
- package/src/widgets/actions/download/exports.test.tsx +288 -0
- package/src/widgets/actions/download/exports.tsx +118 -0
- package/src/widgets/actions/download/types.ts +21 -0
- package/src/widgets/actions/fullscreen/fullscreen.test.tsx +269 -0
- package/src/widgets/actions/fullscreen/fullscreen.tsx +98 -0
- package/src/widgets/actions/fullscreen/styles.ts +17 -0
- package/src/widgets/actions/fullscreen/types.ts +32 -0
- package/src/widgets/actions/index.ts +73 -0
- package/src/widgets/actions/lock-selection/lock-selection.test.tsx +198 -0
- package/src/widgets/actions/lock-selection/lock-selection.tsx +128 -0
- package/src/widgets/actions/lock-selection/types.ts +43 -0
- package/src/widgets/actions/relative-data/relative-data.test.tsx +542 -0
- package/src/widgets/actions/relative-data/relative-data.tsx +188 -0
- package/src/widgets/actions/relative-data/types.ts +33 -0
- package/src/widgets/actions/relative-data/utils.test.ts +223 -0
- package/src/widgets/actions/relative-data/utils.ts +58 -0
- package/src/widgets/actions/searcher/searcher-toggle.test.tsx +354 -0
- package/src/widgets/actions/searcher/searcher-toggle.tsx +72 -0
- package/src/widgets/actions/searcher/searcher.tsx +196 -0
- package/src/widgets/actions/searcher/types.ts +72 -0
- package/src/widgets/actions/shared/styles.ts +12 -0
- package/src/widgets/actions/stack-toggle/grouped-bar-chart-icon.tsx +14 -0
- package/src/widgets/actions/stack-toggle/stack-toggle.test.tsx +414 -0
- package/src/widgets/actions/stack-toggle/stack-toggle.tsx +129 -0
- package/src/widgets/actions/stack-toggle/types.ts +29 -0
- package/src/widgets/actions/zoom-toggle/style.ts +14 -0
- package/src/widgets/actions/zoom-toggle/types.ts +44 -0
- package/src/widgets/actions/zoom-toggle/zoom-toggle.test.tsx +322 -0
- package/src/widgets/actions/zoom-toggle/zoom-toggle.tsx +218 -0
- package/src/widgets/bar/config.ts +140 -0
- package/src/widgets/bar/index.ts +9 -0
- package/src/widgets/bar/skeleton.tsx +60 -0
- package/src/widgets/bar/style.ts +33 -0
- package/src/widgets/bar/types.ts +16 -0
- package/src/widgets/category/category-ui.test.tsx +399 -0
- package/src/widgets/category/category-ui.tsx +166 -0
- package/src/widgets/category/components/category-bar.tsx +31 -0
- package/src/widgets/category/components/category-legend.tsx +33 -0
- package/src/widgets/category/components/category-row-multi.tsx +57 -0
- package/src/widgets/category/components/category-row-other.tsx +26 -0
- package/src/widgets/category/components/category-row-single.tsx +54 -0
- package/src/widgets/category/components/category-rows.test.tsx +213 -0
- package/src/widgets/category/config.ts +86 -0
- package/src/widgets/category/index.ts +29 -0
- package/src/widgets/category/skeleton.tsx +24 -0
- package/src/widgets/category/style.ts +134 -0
- package/src/widgets/category/types.ts +41 -0
- package/src/widgets/echart/const.ts +1 -0
- package/src/widgets/echart/echart-ui.test.tsx +526 -0
- package/src/widgets/echart/echart-ui.tsx +78 -0
- package/src/widgets/echart/echart.test.tsx +546 -0
- package/src/widgets/echart/echart.tsx +66 -0
- package/src/widgets/echart/index.ts +16 -0
- package/src/widgets/echart/options.ts +57 -0
- package/src/widgets/echart/shared-resize-observer.ts +45 -0
- package/src/widgets/echart/types.ts +45 -0
- package/src/widgets/echart/utils.test.ts +277 -0
- package/src/widgets/echart/utils.ts +244 -0
- package/src/widgets/error/error.test.tsx +331 -0
- package/src/widgets/error/error.tsx +51 -0
- package/src/widgets/error/index.ts +2 -0
- package/src/widgets/error/types.ts +24 -0
- package/src/widgets/formula/components/item.test.tsx +249 -0
- package/src/widgets/formula/components/item.tsx +21 -0
- package/src/widgets/formula/components/prefix.test.tsx +341 -0
- package/src/widgets/formula/components/prefix.tsx +19 -0
- package/src/widgets/formula/components/row.test.tsx +364 -0
- package/src/widgets/formula/components/row.tsx +24 -0
- package/src/widgets/formula/components/series.tsx +35 -0
- package/src/widgets/formula/components/suffix.test.tsx +383 -0
- package/src/widgets/formula/components/suffix.tsx +29 -0
- package/src/widgets/formula/components/value.test.tsx +329 -0
- package/src/widgets/formula/components/value.tsx +24 -0
- package/src/widgets/formula/config.test.ts +37 -0
- package/src/widgets/formula/config.ts +38 -0
- package/src/widgets/formula/formula-ui.test.tsx +399 -0
- package/src/widgets/formula/formula-ui.tsx +30 -0
- package/src/widgets/formula/index.ts +24 -0
- package/src/widgets/formula/serializer.test.tsx +144 -0
- package/src/widgets/formula/serializer.ts +28 -0
- package/src/widgets/formula/skeleton.tsx +10 -0
- package/src/widgets/formula/style.ts +23 -0
- package/src/widgets/formula/types.ts +50 -0
- package/src/widgets/histogram/config.ts +230 -0
- package/src/widgets/histogram/index.ts +13 -0
- package/src/widgets/histogram/skeleton.tsx +52 -0
- package/src/widgets/histogram/style.ts +8 -0
- package/src/widgets/histogram/types.ts +23 -0
- package/src/widgets/loader/index.ts +4 -0
- package/src/widgets/loader/loader.tsx +92 -0
- package/src/widgets/loader/types.ts +13 -0
- package/src/widgets/loader/utils.test.ts +112 -0
- package/src/widgets/loader/utils.ts +57 -0
- package/src/widgets/markdown/config.ts +28 -0
- package/src/widgets/markdown/index.ts +14 -0
- package/src/widgets/markdown/markdown-ui.test.tsx +341 -0
- package/src/widgets/markdown/markdown-ui.tsx +59 -0
- package/src/widgets/markdown/markdown.tsx +20 -0
- package/src/widgets/markdown/skeleton.tsx +12 -0
- package/src/widgets/markdown/style.ts +28 -0
- package/src/widgets/markdown/types.ts +28 -0
- package/src/widgets/no-data/index.ts +2 -0
- package/src/widgets/no-data/no-data.test.tsx +497 -0
- package/src/widgets/no-data/no-data.tsx +112 -0
- package/src/widgets/no-data/style.ts +18 -0
- package/src/widgets/no-data/types.ts +76 -0
- package/src/widgets/note/index.ts +2 -0
- package/src/widgets/note/note.test.tsx +391 -0
- package/src/widgets/note/note.tsx +124 -0
- package/src/widgets/note/style.ts +29 -0
- package/src/widgets/note/types.ts +9 -0
- package/src/widgets/pie/config.ts +245 -0
- package/src/widgets/pie/index.ts +8 -0
- package/src/widgets/pie/skeleton.tsx +70 -0
- package/src/widgets/pie/style.ts +8 -0
- package/src/widgets/pie/types.ts +16 -0
- package/src/widgets/range/components/range-item.test.tsx +243 -0
- package/src/widgets/range/components/range-item.tsx +214 -0
- package/src/widgets/range/config.ts +10 -0
- package/src/widgets/range/index.ts +16 -0
- package/src/widgets/range/range-ui.test.tsx +203 -0
- package/src/widgets/range/range-ui.tsx +14 -0
- package/src/widgets/range/serializer.test.ts +70 -0
- package/src/widgets/range/serializer.ts +27 -0
- package/src/widgets/range/skeleton.tsx +14 -0
- package/src/widgets/range/style.ts +37 -0
- package/src/widgets/range/types.ts +39 -0
- package/src/widgets/scatterplot/config.ts +136 -0
- package/src/widgets/scatterplot/index.ts +8 -0
- package/src/widgets/scatterplot/skeleton.tsx +59 -0
- package/src/widgets/scatterplot/style.ts +21 -0
- package/src/widgets/scatterplot/types.ts +17 -0
- package/src/widgets/selection-summary/index.ts +6 -0
- package/src/widgets/selection-summary/selection-summary.tsx +57 -0
- package/src/widgets/selection-summary/style.ts +10 -0
- package/src/widgets/selection-summary/types.ts +14 -0
- package/src/widgets/skeleton-loader/index.ts +2 -0
- package/src/widgets/skeleton-loader/skeleton-loader.test.tsx +139 -0
- package/src/widgets/skeleton-loader/skeleton-loader.tsx +35 -0
- package/src/widgets/skeleton-loader/types.ts +8 -0
- package/src/widgets/spread/components/max-value.tsx +29 -0
- package/src/widgets/spread/components/min-value.tsx +29 -0
- package/src/widgets/spread/components/separator.tsx +9 -0
- package/src/widgets/spread/config.ts +39 -0
- package/src/widgets/spread/index.ts +23 -0
- package/src/widgets/spread/skeleton.tsx +10 -0
- package/src/widgets/spread/spread-ui.test.tsx +368 -0
- package/src/widgets/spread/spread-ui.tsx +32 -0
- package/src/widgets/spread/style.ts +22 -0
- package/src/widgets/spread/types.ts +47 -0
- package/src/widgets/stores/index.ts +13 -0
- package/src/widgets/stores/types.ts +203 -0
- package/src/widgets/stores/use-widget-selector.ts +47 -0
- package/src/widgets/stores/widget-store-branches.test.ts +275 -0
- package/src/widgets/stores/widget-store-performance.test.ts +750 -0
- package/src/widgets/stores/widget-store.test.ts +942 -0
- package/src/widgets/stores/widget-store.ts +484 -0
- package/src/widgets/subheader/index.ts +3 -0
- package/src/widgets/subheader/style.ts +20 -0
- package/src/widgets/subheader/subheader.test.tsx +45 -0
- package/src/widgets/subheader/subheader.tsx +35 -0
- package/src/widgets/subheader/types.ts +11 -0
- package/src/widgets/table/components/cell-header.tsx +58 -0
- package/src/widgets/table/components/cell.tsx +82 -0
- package/src/widgets/table/components/pagination-actions.tsx +67 -0
- package/src/widgets/table/components/pagination.tsx +41 -0
- package/src/widgets/table/components/row.tsx +65 -0
- package/src/widgets/table/config.test.ts +65 -0
- package/src/widgets/table/config.ts +75 -0
- package/src/widgets/table/helpers.test.ts +244 -0
- package/src/widgets/table/helpers.ts +107 -0
- package/src/widgets/table/hooks/use-pagination.test.ts +294 -0
- package/src/widgets/table/hooks/use-pagination.ts +148 -0
- package/src/widgets/table/hooks/use-selection.test.ts +504 -0
- package/src/widgets/table/hooks/use-selection.ts +194 -0
- package/src/widgets/table/hooks/use-sort.test.ts +296 -0
- package/src/widgets/table/hooks/use-sort.ts +131 -0
- package/src/widgets/table/index.ts +55 -0
- package/src/widgets/table/serializer.ts +54 -0
- package/src/widgets/table/skeleton.tsx +48 -0
- package/src/widgets/table/style.ts +34 -0
- package/src/widgets/table/table-ui.tsx +64 -0
- package/src/widgets/table/types.ts +223 -0
- package/src/widgets/timeseries/config.ts +136 -0
- package/src/widgets/timeseries/index.ts +8 -0
- package/src/widgets/timeseries/skeleton.tsx +55 -0
- package/src/widgets/timeseries/style.ts +36 -0
- package/src/widgets/timeseries/types.ts +17 -0
- package/src/widgets/toolbar-actions/index.ts +6 -0
- package/src/widgets/toolbar-actions/styles.ts +38 -0
- package/src/widgets/toolbar-actions/toolbar-actions.test.tsx +691 -0
- package/src/widgets/toolbar-actions/toolbar-actions.tsx +145 -0
- package/src/widgets/toolbar-actions/types.ts +60 -0
- package/src/widgets/utils/chart-config/config-factory.ts +67 -0
- package/src/widgets/utils/chart-config/csv-modifiers.ts +56 -0
- package/src/widgets/utils/chart-config/download-config.ts +22 -0
- package/src/widgets/utils/chart-config/index.ts +29 -0
- package/src/widgets/utils/chart-config/option-builders.test.ts +366 -0
- package/src/widgets/utils/chart-config/option-builders.ts +308 -0
- package/src/widgets/utils/formatter.ts +2 -0
- package/src/widgets/utils/index.ts +26 -0
- package/{dist/types/widgets/_shared/skeleton/index.d.ts → src/widgets/utils/skeleton/index.ts} +2 -1
- package/src/widgets/utils/skeleton/styles.ts +20 -0
- package/src/widgets/wrapper/components/actions.test.tsx +105 -0
- package/src/widgets/wrapper/components/actions.tsx +35 -0
- package/src/widgets/wrapper/components/options.test.tsx +331 -0
- package/src/widgets/wrapper/components/options.tsx +81 -0
- package/src/widgets/wrapper/components/title.test.tsx +126 -0
- package/src/widgets/wrapper/components/title.tsx +35 -0
- package/src/widgets/wrapper/index.ts +16 -0
- package/src/widgets/wrapper/styles.ts +98 -0
- package/src/widgets/wrapper/types.ts +55 -0
- package/src/widgets/wrapper/wrapper-ui.test.tsx +232 -0
- package/src/widgets/wrapper/wrapper-ui.tsx +72 -0
- package/src/widgets/wrapper/wrapper.test.tsx +365 -0
- package/src/widgets/wrapper/wrapper.tsx +60 -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 +189 -0
- package/src/widgets-v2/actions/change-column/index.ts +7 -0
- package/src/widgets-v2/actions/change-column/labels.ts +11 -0
- package/src/widgets-v2/actions/change-column/sortable-column-item.tsx +63 -0
- package/src/widgets-v2/actions/change-column/style.ts +58 -0
- package/src/widgets-v2/actions/change-column/types.ts +11 -0
- package/src/widgets-v2/actions/download/constants.ts +14 -0
- package/src/widgets-v2/actions/download/csv-item.test.tsx +77 -0
- package/src/widgets-v2/actions/download/csv-item.tsx +71 -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 +35 -0
- package/src/widgets-v2/actions/download/index.ts +15 -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 +53 -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 +95 -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 +301 -0
- package/src/widgets-v2/actions/lock-selection/lock-selection.tsx +188 -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 +111 -0
- package/src/widgets-v2/actions/searcher/style.ts +15 -0
- package/src/widgets-v2/actions/show-all/index.ts +7 -0
- package/src/widgets-v2/actions/show-all/labels.ts +8 -0
- package/src/widgets-v2/actions/show-all/show-all.test.tsx +50 -0
- package/src/widgets-v2/actions/show-all/show-all.tsx +72 -0
- package/src/widgets-v2/actions/show-all/style.ts +8 -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 +60 -0
- package/src/widgets-v2/bar/index.ts +10 -0
- package/src/widgets-v2/bar/options.test.ts +361 -0
- package/src/widgets-v2/bar/options.ts +333 -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 +909 -0
- package/src/widgets-v2/category/category-ui.tsx +479 -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 +130 -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 +102 -0
- package/src/widgets-v2/category/components/category-legend.tsx +82 -0
- package/src/widgets-v2/category/components/category-row-multi.tsx +86 -0
- package/src/widgets-v2/category/components/category-row-other.test.tsx +57 -0
- package/src/widgets-v2/category/components/category-row-other.tsx +84 -0
- package/src/widgets-v2/category/components/category-row-single.tsx +76 -0
- package/src/widgets-v2/category/components/category-row-stacked.test.tsx +248 -0
- package/src/widgets-v2/category/components/category-row-stacked.tsx +104 -0
- package/src/widgets-v2/category/download.test.ts +80 -0
- package/src/widgets-v2/category/download.ts +50 -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 +329 -0
- package/src/widgets-v2/category/types.ts +61 -0
- package/src/widgets-v2/echart/echart-ui.test.tsx +327 -0
- package/src/widgets-v2/echart/echart-ui.tsx +232 -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/edge-label-clamp.test.ts +198 -0
- package/src/widgets-v2/echart/edge-label-clamp.ts +217 -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 +120 -0
- package/src/widgets-v2/echart/use-chart-selection.ts +121 -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 +63 -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 +56 -0
- package/src/widgets-v2/histogram/index.ts +13 -0
- package/src/widgets-v2/histogram/options.test.ts +411 -0
- package/src/widgets-v2/histogram/options.ts +390 -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 +81 -0
- package/src/widgets-v2/histogram/transforms.ts +53 -0
- package/src/widgets-v2/histogram/types.ts +64 -0
- package/src/widgets-v2/index.ts +212 -0
- package/src/widgets-v2/markdown/download.test.ts +66 -0
- package/src/widgets-v2/markdown/download.tsx +56 -0
- package/src/widgets-v2/markdown/index.ts +6 -0
- package/src/widgets-v2/markdown/markdown-content.test.tsx +165 -0
- package/src/widgets-v2/markdown/markdown-content.tsx +81 -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 +51 -0
- package/src/widgets-v2/pie/index.ts +10 -0
- package/src/widgets-v2/pie/options.test.ts +930 -0
- package/src/widgets-v2/pie/options.ts +611 -0
- package/src/widgets-v2/pie/skeleton.test.tsx +20 -0
- package/src/widgets-v2/pie/skeleton.tsx +94 -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 +50 -0
- package/src/widgets-v2/scatterplot/index.ts +14 -0
- package/src/widgets-v2/scatterplot/options.test.ts +411 -0
- package/src/widgets-v2/scatterplot/options.ts +422 -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 +134 -0
- package/src/widgets-v2/scatterplot/transforms.ts +61 -0
- package/src/widgets-v2/scatterplot/types.ts +59 -0
- package/src/widgets-v2/selection-summary/labels.ts +15 -0
- package/src/widgets-v2/selection-summary/selection-summary.test.tsx +59 -0
- package/src/widgets-v2/selection-summary/selection-summary.tsx +82 -0
- package/src/widgets-v2/selection-summary/style.ts +38 -0
- package/src/widgets-v2/spread/band.test.ts +46 -0
- package/src/widgets-v2/spread/band.ts +47 -0
- package/src/widgets-v2/spread/download.test.ts +64 -0
- package/src/widgets-v2/spread/download.ts +55 -0
- package/src/widgets-v2/spread/index.ts +11 -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 +239 -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 +85 -0
- package/src/widgets-v2/table/download.ts +43 -0
- package/src/widgets-v2/table/helpers.test.ts +233 -0
- package/src/widgets-v2/table/helpers.ts +131 -0
- package/src/widgets-v2/table/index.ts +24 -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/transforms.test.ts +40 -0
- package/src/widgets-v2/table/transforms.ts +28 -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 +82 -0
- package/src/widgets-v2/timeseries/index.ts +11 -0
- package/src/widgets-v2/timeseries/options.test.ts +399 -0
- package/src/widgets-v2/timeseries/options.ts +342 -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/transforms.test.ts +49 -0
- package/src/widgets-v2/timeseries/transforms.ts +31 -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 +128 -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 +255 -0
- package/src/widgets-v2/wrapper/widget-wrapper.tsx +194 -0
- package/dist/cjs-D9ro6BXv.js +0 -85
- package/dist/cjs-D9ro6BXv.js.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/error-G3sy6lw3.js +0 -38
- package/dist/error-G3sy6lw3.js.map +0 -1
- package/dist/exports-Cr43OCul.js +0 -51
- package/dist/exports-Cr43OCul.js.map +0 -1
- package/dist/lasso-tool-CYn3ivf-.js +0 -534
- package/dist/lasso-tool-CYn3ivf-.js.map +0 -1
- package/dist/no-data-DfkC_Kc_.js +0 -61
- package/dist/no-data-DfkC_Kc_.js.map +0 -1
- package/dist/note-Clng2ej6.js +0 -124
- package/dist/note-Clng2ej6.js.map +0 -1
- package/dist/options-D9wflre6.js +0 -49
- package/dist/options-D9wflre6.js.map +0 -1
- package/dist/row-B9hTUitn.js +0 -35
- package/dist/row-B9hTUitn.js.map +0 -1
- package/dist/series-DojKkd_o.js +0 -91
- package/dist/series-DojKkd_o.js.map +0 -1
- package/dist/smart-tooltip-BEtBaIdz.js +0 -39
- package/dist/smart-tooltip-BEtBaIdz.js.map +0 -1
- package/dist/styles-dOu_pRNb.js +0 -77
- package/dist/styles-dOu_pRNb.js.map +0 -1
- package/dist/tooltip-BDnrRKrp.js +0 -25
- package/dist/tooltip-BDnrRKrp.js.map +0 -1
- package/dist/types/common/common.d.ts +0 -3
- package/dist/types/common/index.d.ts +0 -26
- package/dist/types/common/lasso-tools.d.ts +0 -36
- package/dist/types/common/measurement-tools.d.ts +0 -65
- package/dist/types/hooks/use-debounce.d.ts +0 -19
- package/dist/types/widgets/_shared/chart-config/index.d.ts +0 -7
- package/dist/types/widgets/_shared/chart-config/option-builders.d.ts +0 -34
- package/dist/types/widgets/actions/relative-data/style.d.ts +0 -8
- package/dist/types/widgets/actions/relative-data/utils.test.d.ts +0 -1
- package/dist/types/widgets/actions/zoom-toggle/index.d.ts +0 -2
- package/dist/types/widgets/category/components/index.d.ts +0 -10
- package/dist/types/widgets/index.d.ts +0 -8
- package/dist/types/widgets/range/serializer.test.d.ts +0 -1
- package/dist/types/widgets/root/index.d.ts +0 -3
- package/dist/types/widgets/root/root.d.ts +0 -2
- package/dist/types/widgets/root/types.d.ts +0 -9
- package/dist/types/widgets/root/utils.d.ts +0 -1
- package/dist/types/widgets/stores/widget-store.test.d.ts +0 -1
- package/dist/types/widgets/table/components/index.d.ts +0 -4
- package/dist/types/widgets/table/helpers.test.d.ts +0 -1
- package/dist/types/widgets/table/hooks/index.d.ts +0 -6
- 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/utils-Dv5Z47UQ.js +0 -144
- package/dist/utils-Dv5Z47UQ.js.map +0 -1
- package/dist/widget-store-Dd7_sWZT.js +0 -132
- package/dist/widget-store-Dd7_sWZT.js.map +0 -1
- package/dist/widgets/actions.js.map +0 -1
- package/dist/widgets/echart.js.map +0 -1
- package/dist/widgets/formula.js.map +0 -1
- package/dist/widgets/root.js +0 -68
- package/dist/widgets/root.js.map +0 -1
- package/dist/widgets/stores.js.map +0 -1
- package/dist/widgets.js +0 -11
- package/dist/widgets.js.map +0 -1
- /package/dist/types/widgets/{_shared → utils}/chart-config/csv-modifiers.d.ts +0 -0
- /package/dist/types/widgets/{_shared → utils}/skeleton/styles.d.ts +0 -0
package/dist/chat.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","names":["options: UseTypewriterOptions = {}","speed = 500","skipAnimation = false","() =>\n skipAnimation ? fullText.length : 0","fullText.length","() => {\n // When `skipAnimation` is set there's nothing to animate — the full text is\n // shown directly via the derived `displayedText` below (no setState here, so\n // a streamed message snaps to its full text the moment generation finishes,\n // without an extra render or a `set-state-in-effect` cascade).\n if (skipAnimation) return\n\n // Already fully revealed (e.g. text hasn't grown since the last frame).\n if (charRef.current >= fullText.length) return\n\n const msPerChar = 1000 / speed\n let rafId: number\n let lastTime: number | null = null\n\n function tick(timestamp: number) {\n // Plain `?? =` not `??=`: the React Compiler can't lower logical-assignment\n // operators and would bail this hook out of optimization.\n lastTime = lastTime ?? timestamp\n const charsToAdd = Math.floor((timestamp - lastTime) / msPerChar)\n if (charsToAdd > 0) {\n lastTime = timestamp\n const next = Math.min(charRef.current + charsToAdd, fullText.length)\n charRef.current = next\n setCharIndex(next)\n if (next >= fullText.length) return // fully revealed — stop the loop\n }\n rafId = requestAnimationFrame(tick)\n }\n\n rafId = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(rafId)\n }","[fullText, speed, skipAnimation]","skipAnimation ? fullText : fullText.slice(0, charIndex)","{\n displayedText: skipAnimation ? fullText : fullText.slice(0, charIndex),\n isTyping: !skipAnimation && charIndex < fullText.length,\n }","!skipAnimation && charIndex < fullText.length","{\n children,\n muted = false,\n topContext,\n sx,\n}: ChatUserMessageProps","muted = false","topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>","{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }","muted ? styles.muted : undefined","<ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>","<Box className='PsChat--user-message' sx={styles.userMessageContainer}>\n {topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>}\n <ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>\n </Box>","{ className, ...props }: BoxProps","<Box className={`PsChat--agent-message ${className ?? ''}`} {...props} />","`PsChat--agent-message ${className ?? ''}`","{ children, ...props }","<StyledAgentMessage ref={ref} {...props}>\n {children}\n </StyledAgentMessage>","{\n children,\n ...props\n}: ChatAgentMessageMarkdownProps","<MarkdownContent content={children} gfm />","<Suspense fallback={children}>\n <MarkdownContent content={children} gfm />\n </Suspense>","<ChatAgentMessage {...props}>\n <Suspense fallback={children}>\n <MarkdownContent content={children} gfm />\n </Suspense>\n </ChatAgentMessage>","{\n errors,\n icon,\n actions,\n sx,\n}: ChatErrorMessageProps","{ ...styles.errorMessage, ...sx }","icon ?? <ErrorOutline fontSize='medium' color='error' />","errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))","(error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n )","actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n ·\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null","(action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n ·\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n )","actions?.length","<Box sx={{ ...styles.errorMessage, ...sx }}>\n {icon ?? <ErrorOutline fontSize='medium' color='error' />}\n {errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))}\n {actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n ·\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null}\n </Box>","index","{\n label,\n color,\n sx,\n ...props\n}: ChatSuggestionButtonProps","color ? { backgroundColor: color } : undefined","{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }","<Typography color='inherit' variant='body2'>\n {label}\n </Typography>","<ArrowUpward />","<ButtonBase\n sx={{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }}\n {...props}\n >\n <Typography color='inherit' variant='body2'>\n {label}\n </Typography>\n <ArrowUpward />\n </ButtonBase>","{\n children = 'Thinking...',\n duration = 2000,\n sx,\n}: ChatThinkingProps","children = 'Thinking...'","duration = 2000","{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }","<Typography\n variant='body2'\n sx={{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }}\n >\n {children}\n </Typography>","{ size = 24, labels = {}, sx }: ChatLoaderProps","size = 24","labels = {}","{ ...styles.loader, width: size, height: size, ...sx }","<Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />","size * 0.75","<Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />","size * 0.32","<Box\n role='status'\n aria-busy={true}\n aria-label={labels.loading ?? 'Loading'}\n sx={{ ...styles.loader, width: size, height: size, ...sx }}\n >\n <Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />\n <Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />\n </Box>","labels.loading ?? 'Loading'","{ children, autoScroll = true, labels = {}, sx }","autoScroll = true","labels = {}","() => {\n scrollRef.current?.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }","() => {\n scrollRef.current?.scrollTo({ top: 0, behavior: 'smooth' })\n }","() => ({ scrollToBottom, scrollToTop, isAtBottom, isAtTop })","[isAtBottom, isAtTop]","() => {\n const root = scrollRef.current\n const topEl = topSentinelRef.current\n const bottomEl = bottomSentinelRef.current\n if (!root || !topEl || !bottomEl) return\n\n const topObserver = new IntersectionObserver(\n ([entry]) => setIsAtTop(entry?.isIntersecting ?? true),\n { root },\n )\n const bottomObserver = new IntersectionObserver(\n ([entry]) => setIsAtBottom(entry?.isIntersecting ?? true),\n { root },\n )\n topObserver.observe(topEl)\n bottomObserver.observe(bottomEl)\n return () => {\n topObserver.disconnect()\n bottomObserver.disconnect()\n }\n }","[]","[entry]","entry","() => {\n if (!autoScroll) return\n const root = scrollRef.current\n if (!root) return\n\n // We can't watch `children` to detect new content: tool traces and\n // `useTypewriter` live inside child components and update via local\n // state, so they mutate the DOM without re-rendering `ChatContent`.\n // MutationObserver picks up every DOM change regardless of source.\n let prevScrollHeight = root.scrollHeight\n let rafId: number | null = null\n\n const check = () => {\n rafId = null\n const newScrollHeight = root.scrollHeight\n if (newScrollHeight > prevScrollHeight) {\n const growth = newScrollHeight - prevScrollHeight\n // If the distance from the bottom doesn't exceed the amount the\n // content just grew (plus a small slack), the user was at the\n // bottom *before* the growth — scroll them to the new bottom.\n // Otherwise they've scrolled up to read history and we leave them\n // alone.\n const distanceFromBottom =\n newScrollHeight - root.scrollTop - root.clientHeight\n if (distanceFromBottom <= growth + AUTO_SCROLL_THRESHOLD) {\n root.scrollTo({ top: newScrollHeight, behavior: 'smooth' })\n }\n }\n prevScrollHeight = newScrollHeight\n }\n\n const mo = new MutationObserver(() => {\n // Plain `?? =` rather than `??=`: the React Compiler can't yet lower\n // logical-assignment operators, and bailing out would drop memoization\n // for this scroll container (which re-renders on every message).\n rafId = rafId ?? requestAnimationFrame(check)\n })\n mo.observe(root, {\n childList: true,\n subtree: true,\n characterData: true,\n })\n return () => {\n mo.disconnect()\n if (rafId !== null) cancelAnimationFrame(rafId)\n }\n }","[autoScroll]","root","({ palette }) =>\n isAtTop ? 'transparent' : palette.divider","{ palette }","({ palette }) =>\n isAtBottom ? 'transparent' : palette.divider","palette","{\n ...styles.content,\n borderTopColor: ({ palette }) =>\n isAtTop ? 'transparent' : palette.divider,\n borderBottomColor: ({ palette }) =>\n isAtBottom ? 'transparent' : palette.divider,\n ...sx,\n }","<Box ref={topSentinelRef} sx={styles.sentinel} aria-hidden />","<Box ref={bottomSentinelRef} sx={styles.sentinel} aria-hidden />","{\n ...styles.jumpToLatest,\n opacity: isAtBottom ? 0 : 1,\n pointerEvents: isAtBottom ? 'none' : 'auto',\n }","isAtBottom ? 0 : 1","isAtBottom ? 'none' : 'auto'","<KeyboardArrowDown />","<Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={{\n ...styles.jumpToLatest,\n opacity: isAtBottom ? 0 : 1,\n pointerEvents: isAtBottom ? 'none' : 'auto',\n }}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>","labels.jumpToLatest ?? 'Jump to latest'","<Box\n ref={scrollRef}\n sx={{\n ...styles.content,\n borderTopColor: ({ palette }) =>\n isAtTop ? 'transparent' : palette.divider,\n borderBottomColor: ({ palette }) =>\n isAtBottom ? 'transparent' : palette.divider,\n ...sx,\n }}\n >\n <Box ref={topSentinelRef} sx={styles.sentinel} aria-hidden />\n {children}\n <Box ref={bottomSentinelRef} sx={styles.sentinel} aria-hidden />\n <Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={{\n ...styles.jumpToLatest,\n opacity: isAtBottom ? 0 : 1,\n pointerEvents: isAtBottom ? 'none' : 'auto',\n }}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>\n </Box>","{\n leftSlot,\n title,\n rightSlot,\n onClose,\n sx,\n}: ChatHeaderProps","{ ...styles.header, ...sx }","<Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>","onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )","<Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>","<Box sx={{ ...styles.header, ...sx }}>\n {leftSlot}\n <Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>\n <Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>\n </Box>","{\n value,\n onChange,\n onSend,\n onStop,\n isGenerating = false,\n disabled = false,\n placeholder = 'Type a message...',\n labels = {},\n caption = DEFAULT_CAPTION,\n models,\n selectedModel,\n onModelChange,\n startToolbarSlot,\n endToolbarSlot,\n sx,\n}: ChatFooterProps","isGenerating = false","disabled = false","placeholder = 'Type a message...'","labels = {}","caption = DEFAULT_CAPTION","value.trim() && !disabled && !isGenerating","models?.find((m) => m.value === selectedModel)?.label ??\n (selectedModel && selectedModel.length > 0 ? selectedModel : modelLabel)","models?.find","(e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (canSend) {\n onSend()\n }\n }\n }","isGenerating && onStop ? (\n <IconButton\n size='small'\n onClick={onStop}\n disabled={disabled}\n aria-label={labels.stop ?? 'Stop'}\n >\n <StopCircleOutlined />\n </IconButton>\n ) : (\n <IconButton\n size='small'\n variant='contained'\n color='primary'\n onClick={onSend}\n disabled={!canSend}\n aria-label={labels.send ?? 'Send'}\n >\n <ArrowUpwardOutlined />\n </IconButton>\n )","send","stop","{ ...styles.footerWrapper, ...sx }","(e) => onChange(e.target.value)","e","<InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />","disabled || isGenerating","hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )","models?.map","m","<Box sx={styles.footerMain}>\n <InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />\n {hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )}\n </Box>","<Box sx={styles.footerSend}>{sendButton}</Box>","<Box sx={styles.footerBox}>\n <Box sx={styles.footerMain}>\n <InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />\n {hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )}\n </Box>\n <Box sx={styles.footerSend}>{sendButton}</Box>\n </Box>","caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null","<FormControl fullWidth sx={{ ...styles.footerWrapper, ...sx }}>\n {/* Two grid areas: [input + slots] | [send button, aligned to the end]. */}\n <Box sx={styles.footerBox}>\n <Box sx={styles.footerMain}>\n <InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />\n {hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )}\n </Box>\n <Box sx={styles.footerSend}>{sendButton}</Box>\n </Box>\n {caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null}\n </FormControl>","{\n icon,\n title,\n description,\n items,\n size = 'small',\n onSelect,\n sx,\n}: ChatStarterProps","size = 'small'","Box","{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }","fullItems.map((item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))","{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }","icon","title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )","description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )","(item, index) => {\n if (typeof item === 'string') {\n return {\n label: item,\n color: DEFAULT_PALETTE[index],\n }\n } else {\n return {\n label: item.label,\n color: item.color ?? DEFAULT_PALETTE[index],\n }\n }\n }","size === 'small' ? 1 : 2","items.length > 2 ? styles.starterItemsTwoCol : undefined","(item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n )","item","<Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>","<Box\n sx={{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }}\n >\n {icon}\n {title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )}\n <Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>\n </Box>","{\n rating,\n onRatingChange,\n labels = {},\n}: ChatRatingActionProps","labels = {}","() => onRatingChange?.(rating === 'up' ? null : 'up')","rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )","<IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>","labels.thumbUp ?? 'Thumbs up'","rating === 'up' ? 'primary' : undefined","() => onRatingChange?.(rating === 'down' ? null : 'down')","rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )","<IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>","rating === 'down' ? 'primary' : undefined","labels.thumbDown ?? 'Thumbs down'","<>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>\n </>","{\n open,\n onClose,\n title,\n content,\n}: ChatToolFullViewDialogProps","content.split('\\n').map((line) => tokenizeLine(line))","(line) => tokenizeLine(line)","useMemo(\n () => content.split('\\n').map((line) => tokenizeLine(line)),\n [content],\n )","{ sx: styles.fullViewPaper }","{ display: 'flex', alignItems: 'center', gap: 0.5 }","<CopyButton copyText={content} aria-label='Copy content' />","<Close />","<IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>","<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>","<DialogTitle sx={styles.fullViewTitle}>\n {title}\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>\n </DialogTitle>","tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))","(tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n )","<DialogContent sx={styles.fullViewDialogContent}>\n <Box component='pre' sx={styles.fullViewPre}>\n {tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))}\n </Box>\n </DialogContent>","<Dialog\n open={open}\n onClose={onClose}\n sx={styles.fullViewDialog}\n PaperProps={{ sx: styles.fullViewPaper }}\n fullScreen\n >\n <DialogTitle sx={styles.fullViewTitle}>\n {title}\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent sx={styles.fullViewDialogContent}>\n <Box component='pre' sx={styles.fullViewPre}>\n {tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>","(token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n )","{\n content,\n title = '',\n isError = false,\n labels = {},\n sx,\n}: ChatToolCodeAreaProps","title = ''","isError = false","labels = {}","() => {\n const el = preRef.current\n if (el) {\n setIsOverflowing(el.scrollHeight > el.clientHeight)\n }\n }","useCallback(() => {\n const el = preRef.current\n if (el) {\n setIsOverflowing(el.scrollHeight > el.clientHeight)\n }\n }, [])","() => {\n checkOverflow()\n const el = preRef.current\n if (!el) return\n\n const observer = new ResizeObserver(checkOverflow)\n observer.observe(el)\n return () => observer.disconnect()\n }","el","[checkOverflow, content]","{ ...styles.codeArea, ...sx }","isError ? styles.codeAreaPreError : {}","{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }","<Box\n component='pre'\n ref={preRef}\n sx={{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }}\n >\n {content}\n </Box>","isOverflowing && (\n <Tooltip title={fullViewLabel}>\n <IconButton\n size='small'\n onClick={() => setDialogOpen(true)}\n sx={styles.codeAreaFullViewButton}\n >\n <OpenDiagonallyRight />\n </IconButton>\n </Tooltip>\n )","() => setDialogOpen(false)","<ChatToolFullViewDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n title={title}\n content={content}\n />","<Box sx={{ ...styles.codeArea, ...sx }}>\n <Box\n component='pre'\n ref={preRef}\n sx={{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }}\n >\n {content}\n </Box>\n {isOverflowing && (\n <Tooltip title={fullViewLabel}>\n <IconButton\n size='small'\n onClick={() => setDialogOpen(true)}\n sx={styles.codeAreaFullViewButton}\n >\n <OpenDiagonallyRight />\n </IconButton>\n </Tooltip>\n )}\n <ChatToolFullViewDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n title={title}\n content={content}\n />\n </Box>","{\n status,\n labels,\n}: {\n status: string\n labels: ChatToolTraceProps['labels']\n}","{ display: 'flex', alignItems: 'center', gap: 0.5 }","<CheckCircle sx={{ fontSize: 12 }} color='success' />","<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CheckCircle sx={{ fontSize: 12 }} color='success' />\n <Typography variant='caption'>\n {labels?.success ?? 'Success'}\n </Typography>\n </Box>","labels?.success ?? 'Success'","<Error sx={{ fontSize: 12 }} color='error' />","<Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Error sx={{ fontSize: 12 }} color='error' />\n <Typography variant='code3'>{labels?.error ?? 'Error'}</Typography>\n </Box>","labels?.error ?? 'Error'","<CircularProgress size={14} />","{\n tool,\n labels = {},\n}: Pick<ChatToolTraceProps, 'tool' | 'labels'>","labels = {}","tool.reference && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {referenceLabel}\n </Typography>\n <Box sx={styles.traceReference}>\n <McpTool color='success' />\n <Typography variant='code3' fontWeight={600}>\n {tool.reference}\n </Typography>\n </Box>\n </Box>\n )","reference","tool.duration != null && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {durationLabel}\n </Typography>\n <Typography variant='code3'>{tool.duration}s</Typography>\n </Box>\n )","duration","<Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>","<TraceStatusIndicator status={tool.status} labels={labels} />","status","<Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>\n <TraceStatusIndicator status={tool.status} labels={labels} />\n </Box>","tool.inputArguments && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {inputArgumentsLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5, mb: tool.output ? 1.5 : 0 }}\n content={tool.inputArguments}\n title={`${toolExecutedLabel}: ${inputArgumentsLabel}`}\n isError={isError}\n />\n </Box>\n )","inputArguments","output","tool.output && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {outputLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5 }}\n content={tool.output}\n title={`${toolExecutedLabel}: ${outputLabel}`}\n isError={isError}\n />\n </Box>\n )","<Box>\n {tool.reference && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {referenceLabel}\n </Typography>\n <Box sx={styles.traceReference}>\n <McpTool color='success' />\n <Typography variant='code3' fontWeight={600}>\n {tool.reference}\n </Typography>\n </Box>\n </Box>\n )}\n\n {tool.duration != null && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {durationLabel}\n </Typography>\n <Typography variant='code3'>{tool.duration}s</Typography>\n </Box>\n )}\n\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>\n <TraceStatusIndicator status={tool.status} labels={labels} />\n </Box>\n\n {tool.inputArguments && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {inputArgumentsLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5, mb: tool.output ? 1.5 : 0 }}\n content={tool.inputArguments}\n title={`${toolExecutedLabel}: ${inputArgumentsLabel}`}\n isError={isError}\n />\n </Box>\n )}\n\n {tool.output && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {outputLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5 }}\n content={tool.output}\n title={`${toolExecutedLabel}: ${outputLabel}`}\n isError={isError}\n />\n </Box>\n )}\n </Box>","{\n tool,\n expanded,\n onExpandedChange,\n labels = {},\n sx,\n}: ChatToolTraceProps","getToolLabel(tool)","<ChatThinking>{getToolLabel(tool)}</ChatThinking>","() => onExpandedChange?.(!expanded)","<Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>","<ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />","expanded ? 'rotate(90deg)' : 'rotate(0deg)'","<Button\n size='small'\n variant='text'\n onClick={() => onExpandedChange?.(!expanded)}\n aria-expanded={expanded}\n sx={styles.traceHeader}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>","<Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>","<Collapse in={expanded} unmountOnExit>\n <Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>","<Box\n width='100%'\n sx={sx}\n data-tool={tool.name}\n className={`PsChat--tool-trace`}\n >\n <Button\n size='small'\n variant='text'\n onClick={() => onExpandedChange?.(!expanded)}\n aria-expanded={expanded}\n sx={styles.traceHeader}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>","name","[value, setter]","[_value, _setter]","_expanded = false","_expandedTools = {}","{\n tools,\n expanded: _expanded = false,\n onExpandedChange: _setExpanded,\n expandedTools: _expandedTools = {},\n onToolExpandedChange: _setExpandedTools,\n labels = {},\n sx,\n}: ChatToolGroupProps","labels = {}","tools.filter((t) => t.status === 'error')","(t) => t.status === 'error'","<Box width='100%' sx={sx} className='PsChat--tool-group'>\n <Button\n size='small'\n variant='text'\n onClick={() => setExpanded(!expanded)}\n aria-expanded={expanded}\n sx={{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n {numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )}\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>\n </Collapse>\n {runningTools.map((tool) => (\n <ChatToolTrace\n key={tool.id}\n tool={tool}\n labels={labels}\n expanded={expandedTools[tool.id]}\n onExpandedChange={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !expandedTools[tool.id],\n })\n }\n />\n ))}\n </Box>","labels.toolsUsed","(t) => t.status === 'running'","(t) => t.status !== 'running'","<ChatToolTrace\n tool={tools[0]!}\n expanded={expanded}\n onExpandedChange={setExpanded}\n labels={labels}\n sx={sx}\n />","0","() => setExpanded(!expanded)","{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }","numErrors > 0 ? 0.5 : 0","<Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>","length","<ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />","expanded ? 'rotate(90deg)' : 'rotate(0deg)'","numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )","<Button\n size='small'\n variant='text'\n onClick={() => setExpanded(!expanded)}\n aria-expanded={expanded}\n sx={{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n {numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )}\n </Button>","{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }","(tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n }","<Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>","Box","'ul'","nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })","<Collapse in={expanded} unmountOnExit>\n <Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>\n </Collapse>","Collapse","expanded","unmountOnExit","(tool) => (\n <ChatToolTrace\n key={tool.id}\n tool={tool}\n labels={labels}\n expanded={expandedTools[tool.id]}\n onExpandedChange={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !expandedTools[tool.id],\n })\n }\n />\n )","tool","t"],"sources":["../src/chat/const.ts","../src/chat/use-typewriter.ts","../src/chat/bubbles/styles.ts","../src/chat/bubbles/chat-user-message.tsx","../src/chat/bubbles/chat-agent-message.tsx","../src/chat/bubbles/chat-agent-message-markdown.tsx","../src/chat/bubbles/chat-error-message.tsx","../src/chat/bubbles/chat-suggestion-button.tsx","../src/chat/feedback/styles.ts","../src/chat/feedback/chat-thinking.tsx","../src/chat/feedback/chat-loader.tsx","../src/chat/containers/styles.ts","../src/chat/containers/chat-content.tsx","../src/chat/containers/chat-header.tsx","../src/chat/containers/chat-footer.tsx","../src/chat/containers/chat-starter.tsx","../src/chat/feedback/chat-actions-container.tsx","../src/chat/feedback/chat-rating-action.tsx","../src/chat/feedback/chat-tool-full-view-dialog.tsx","../src/chat/feedback/chat-tool-code-area.tsx","../src/chat/feedback/get-tool-label.ts","../src/chat/feedback/chat-tool-trace.tsx","../src/chat/feedback/chat-tool-group.tsx"],"sourcesContent":["export const CHAT_MAX_WIDTH = 768\nexport const CHAT_SCROLL_DELAY = 300\nexport const CHAT_DIVIDER_DELAY = 100\nexport const CHAT_TOOL_CODE_AREA_MAX_HEIGHT = 126\n","import { useEffect, useRef, useState } from 'react'\n\ninterface UseTypewriterOptions {\n /** Characters revealed per second (default: `500`). */\n speed?: number\n /** When true, reveal the full text immediately (and snap to it if it grows). */\n skipAnimation?: boolean\n}\n\ninterface UseTypewriterResult {\n /** The portion of `fullText` revealed so far. */\n displayedText: string\n /** `true` while characters are still being revealed. */\n isTyping: boolean\n}\n\n/**\n * Reveals a string character-by-character at a steady rate via\n * `requestAnimationFrame`. Designed for bursty, streamed agent text: as\n * `fullText` grows the reveal keeps chasing the new end, and flipping\n * `skipAnimation` to `true` (e.g. once generation finishes) snaps to the full\n * text. Pair it with `ChatAgentMessage`.\n *\n * @example\n * ```tsx\n * const { displayedText, isTyping } = useTypewriter(message)\n * return (\n * <ChatAgentMessage>\n * <Markdown>{displayedText}</Markdown>\n * {isTyping ? <Cursor /> : null}\n * </ChatAgentMessage>\n * )\n * ```\n */\nexport function useTypewriter(\n fullText: string,\n options: UseTypewriterOptions = {},\n): UseTypewriterResult {\n const { speed = 500, skipAnimation = false } = options\n\n const [charIndex, setCharIndex] = useState(() =>\n skipAnimation ? fullText.length : 0,\n )\n\n // Mirror of the revealed count, read/written ONLY inside the rAF loop (never\n // during render). This lets the animation effect omit `charIndex` from its\n // deps: were it a dep, the loop would tear down and restart on every revealed\n // frame — resetting its frame timer — and never accumulate the elapsed time\n // needed to advance, which stalls completely while `fullText` is also growing\n // (the streaming case).\n const charRef = useRef(charIndex)\n\n useEffect(() => {\n // When `skipAnimation` is set there's nothing to animate — the full text is\n // shown directly via the derived `displayedText` below (no setState here, so\n // a streamed message snaps to its full text the moment generation finishes,\n // without an extra render or a `set-state-in-effect` cascade).\n if (skipAnimation) return\n\n // Already fully revealed (e.g. text hasn't grown since the last frame).\n if (charRef.current >= fullText.length) return\n\n const msPerChar = 1000 / speed\n let rafId: number\n let lastTime: number | null = null\n\n function tick(timestamp: number) {\n // Plain `?? =` not `??=`: the React Compiler can't lower logical-assignment\n // operators and would bail this hook out of optimization.\n lastTime = lastTime ?? timestamp\n const charsToAdd = Math.floor((timestamp - lastTime) / msPerChar)\n if (charsToAdd > 0) {\n lastTime = timestamp\n const next = Math.min(charRef.current + charsToAdd, fullText.length)\n charRef.current = next\n setCharIndex(next)\n if (next >= fullText.length) return // fully revealed — stop the loop\n }\n rafId = requestAnimationFrame(tick)\n }\n\n rafId = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(rafId)\n }, [fullText, speed, skipAnimation])\n\n return {\n displayedText: skipAnimation ? fullText : fullText.slice(0, charIndex),\n isTyping: !skipAnimation && charIndex < fullText.length,\n }\n}\n","import {\n styled,\n Typography,\n type SxProps,\n type Theme,\n type TypographyProps,\n} from '@mui/material'\nimport type { CSSObject } from '@mui/material/styles'\nimport type { FC } from 'react'\n\n// The explicit annotation is what keeps this file's .d.ts emittable: the type\n// `styled()` infers can only be named through a pnpm-internal @mui/system path\n// (TS2742), and vite-plugin-dts drops the whole declaration when that happens.\n//\n// ponytail: `component` and `ref` still typecheck, but the prop re-typing that\n// comes with them does not — `component=\"a\" href=\"#\"` is rejected here and\n// accepted on `Typography` itself. Restoring it needs `OverridableComponent`,\n// which a MUI v5 `styled()` result isn't assignable to under React 19 types.\n// Consumers who need the polymorphism use `Typography` directly.\nexport const ChatMessageOverflow: FC<TypographyProps> = styled(Typography)(\n () => ({\n whiteSpace: 'pre-wrap',\n overflowX: 'clip',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n }),\n)\nChatMessageOverflow.displayName = 'ChatMessageOverflow'\n\nexport const styles = {\n agentMessageContainer: (theme: Theme): CSSObject => ({\n ...theme.typography.body2,\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n // Separate the stacked turn blocks (tools → answer text → actions) per the\n // Figma \"Chat Turn\" spec (gap-8).\n gap: theme.spacing(1),\n paddingRight: theme.spacing(4),\n '& + .PsChat--agent-message': {\n marginTop: theme.spacing(1),\n },\n '& + .PsChat--user-message': {\n marginTop: theme.spacing(3),\n },\n '& > p:first-of-type': {\n marginTop: 0,\n },\n '& table': {\n alignSelf: 'stretch',\n display: 'block',\n overflowX: 'auto',\n maxWidth: '100%',\n borderCollapse: 'collapse',\n margin: theme.spacing(1, 0),\n fontSize: '0.875em',\n },\n '& th, & td': {\n border: `1px solid ${theme.palette.divider}`,\n padding: theme.spacing(0.5, 1),\n textAlign: 'left',\n },\n '& th': {\n backgroundColor: theme.palette.action.hover,\n fontWeight: 600,\n },\n '& tr:nth-of-type(even) td': {\n backgroundColor: theme.palette.action.hover,\n },\n '& ul.contains-task-list': {\n listStyle: 'none',\n paddingLeft: 0,\n },\n '& .task-list-item input[type=\"checkbox\"]': {\n marginRight: theme.spacing(0.5),\n },\n '& del': {\n textDecoration: 'line-through',\n opacity: 0.7,\n },\n '& > ul, & > ol': {\n margin: theme.spacing(1, 0),\n paddingLeft: theme.spacing(3),\n '& > li + li': {\n marginTop: theme.spacing(1),\n },\n },\n }),\n userMessageContainer: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n paddingLeft: ({ spacing }) => spacing(4),\n '&:has(+ .PsChat--user-message) > .PsChat--user-message-inner': {\n borderRadius: ({ spacing }) => spacing(2),\n },\n '& + .PsChat--user-message': {\n marginTop: ({ spacing }) => spacing(0.5),\n },\n '& + .PsChat--agent-message': {\n marginTop: ({ spacing }) => spacing(3),\n },\n },\n userMessage: {\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2, 2, 0.25, 2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n backgroundColor: ({ palette }) => palette.background.paper,\n color: ({ palette }) => palette.text.primary,\n width: 'fit-content',\n },\n muted: {\n color: ({ palette }) => palette.text.disabled,\n },\n userMessageTop: {\n textAlign: 'right',\n marginBottom: ({ spacing }) => spacing(0.5),\n },\n errorMessage: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: ({ spacing }) => spacing(1),\n },\n errorActions: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n },\n errorAction: {\n color: ({ palette }) => palette.text.primary,\n },\n errorActionSeparator: {\n mr: 0.5,\n color: ({ palette }) => palette.black[25],\n fontWeight: 600,\n },\n suggestionButton: {\n transition: 'border-color 0.2s',\n width: '100%',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n textAlign: 'left',\n gap: ({ spacing }) => spacing(1),\n padding: ({ spacing }) => spacing(0.75, 1.5),\n borderRadius: ({ spacing }) => spacing(2),\n border: ({ palette }) => `1px solid ${palette.divider}`,\n '& .MuiSvgIcon-root': {\n transition: 'color 0.2s',\n color: 'inherit',\n fontSize: ({ spacing }) => spacing(1.5),\n width: ({ spacing }) => spacing(1.5),\n minWidth: ({ spacing }) => spacing(1.5),\n height: ({ spacing }) => spacing(2.5),\n },\n '&:not(.Mui-disabled) .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.secondary,\n },\n '&:hover': {\n borderColor: ({ palette }) => palette.text.hint,\n '& .MuiSvgIcon-root': {\n color: ({ palette }) => palette.text.primary,\n },\n },\n '&.Mui-disabled': {\n color: ({ palette }) => palette.text.disabled,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Box } from '@mui/material'\nimport type { ChatUserMessageProps } from '../types'\nimport { ChatMessageOverflow, styles } from './styles'\n\nexport function ChatUserMessage({\n children,\n muted = false,\n topContext,\n sx,\n}: ChatUserMessageProps) {\n return (\n <Box className='PsChat--user-message' sx={styles.userMessageContainer}>\n {topContext && <Box sx={styles.userMessageTop}>{topContext}</Box>}\n <ChatMessageOverflow\n className='PsChat--user-message-inner'\n variant='body2'\n sx={{\n ...styles.userMessage,\n ...(muted ? styles.muted : undefined),\n ...sx,\n }}\n >\n {children}\n </ChatMessageOverflow>\n </Box>\n )\n}\n","import { forwardRef } from 'react'\nimport { Box, styled, type BoxProps } from '@mui/material'\nimport type { ChatAgentMessageProps } from '../types'\nimport { styles } from './styles'\n\nconst InnerBox = ({ className, ...props }: BoxProps) => (\n <Box className={`PsChat--agent-message ${className ?? ''}`} {...props} />\n)\n\nconst StyledAgentMessage = styled(InnerBox)(({ theme }) =>\n styles.agentMessageContainer(theme),\n)\n\n/**\n * Agent reply bubble. A styles container that positions the reply and its\n * composed pieces (text, loaders, tool traces, …); it renders `children`\n * verbatim and forwards its `ref` to the underlying element. For Markdown\n * replies, compose `ChatAgentMessageMarkdown` instead of teaching this\n * container about the markdown engine.\n */\nexport const ChatAgentMessage = forwardRef<\n HTMLDivElement,\n ChatAgentMessageProps\n>(function ChatAgentMessage({ children, ...props }, ref) {\n return (\n <StyledAgentMessage ref={ref} {...props}>\n {children}\n </StyledAgentMessage>\n )\n})\nChatAgentMessage.displayName = 'ChatAgentMessage'\n","import { lazy, Suspense } from 'react'\nimport { ChatAgentMessage } from './chat-agent-message'\nimport type { ChatAgentMessageMarkdownProps } from '../types'\n\n// Lazy-loaded so the markdown engine (`react-markdown` + remark/rehype plugins)\n// stays in a separate async chunk: consumers only pay its bundle cost when they\n// actually import this component. The Suspense fallback renders the raw text\n// until the chunk resolves.\nconst MarkdownContent = lazy(() =>\n import('../../widgets-v2/markdown/markdown-content').then((m) => ({\n default: m.MarkdownContent,\n })),\n)\n\n/**\n * Agent reply bubble that renders its (string) children as GitHub-Flavored\n * Markdown through the library's sanitized renderer — raw HTML is skipped and\n * images are stripped, since the content is model output; tables / task lists /\n * strikethrough pick up the bubble's element styling. Composition over\n * `ChatAgentMessage`, which stays a plain styles container.\n */\nexport function ChatAgentMessageMarkdown({\n children,\n ...props\n}: ChatAgentMessageMarkdownProps) {\n return (\n <ChatAgentMessage {...props}>\n <Suspense fallback={children}>\n <MarkdownContent content={children} gfm />\n </Suspense>\n </ChatAgentMessage>\n )\n}\nChatAgentMessageMarkdown.displayName = 'ChatAgentMessageMarkdown'\n","import { Box, Link, Typography } from '@mui/material'\nimport { ErrorOutline } from '@mui/icons-material'\nimport type { ChatErrorMessageProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatErrorMessage({\n errors,\n icon,\n actions,\n sx,\n}: ChatErrorMessageProps) {\n return (\n <Box sx={{ ...styles.errorMessage, ...sx }}>\n {icon ?? <ErrorOutline fontSize='medium' color='error' />}\n {errors.map((error, index) => (\n <Typography key={index} variant='subtitle2' color='error.relatedDark'>\n {error}\n </Typography>\n ))}\n {actions?.length ? (\n <Box sx={styles.errorActions}>\n {(actions ?? []).map((action, index) => (\n <span key={index}>\n {index > 0 && (\n <Typography\n component='span'\n variant='body2'\n sx={styles.errorActionSeparator}\n >\n ·\n </Typography>\n )}\n <Link\n component='button'\n variant='body2'\n onClick={action.onClick}\n sx={styles.errorAction}\n >\n {action.label}\n </Link>\n </span>\n ))}\n </Box>\n ) : null}\n </Box>\n )\n}\n","import { ButtonBase, Typography } from '@mui/material'\nimport { ArrowUpward } from '@mui/icons-material'\nimport type { ChatSuggestionButtonProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatSuggestionButton({\n label,\n color,\n sx,\n ...props\n}: ChatSuggestionButtonProps) {\n return (\n <ButtonBase\n sx={{\n ...styles.suggestionButton,\n ...(color ? { backgroundColor: color } : undefined),\n ...sx,\n }}\n {...props}\n >\n <Typography color='inherit' variant='body2'>\n {label}\n </Typography>\n <ArrowUpward />\n </ButtonBase>\n )\n}\n","import { type SxProps, type Theme } from '@mui/material'\nimport { keyframes } from '@mui/material/styles'\n\nconst shimmer = keyframes`\n 0% {\n background-position: 150% 0;\n }\n 100% {\n background-position: -50% 0;\n }\n`\n\nconst breatheOuter = keyframes`\n 0% { transform: scale(0.68); opacity: 0.7; }\n 40% { transform: scale(1); opacity: 1; }\n 80% { transform: scale(0.6); opacity: 0.65; }\n 100% { transform: scale(0.68); opacity: 0.7; }\n`\n\nconst breatheInner = keyframes`\n 0% { transform: scale(1); }\n 40% { transform: scale(0.75); }\n 80% { transform: scale(1.125); }\n 100% { transform: scale(1); }\n`\n\nexport const styles = {\n thinking: {\n display: 'flex',\n alignItems: 'center',\n minHeight: ({ spacing }) => spacing(3),\n background: ({ palette }) => `linear-gradient(\n 90deg,\n ${palette.text.disabled} 25%,\n ${palette.text.secondary} 50%,\n ${palette.text.disabled} 75%\n )`,\n backgroundSize: '200% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n WebkitTextFillColor: 'transparent',\n animation: `${shimmer} 2s ease-in-out infinite`,\n animationDuration: '2s',\n },\n loader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n p: 1,\n },\n loaderOuterCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.action.disabled,\n animation: `${breatheOuter} 1s ease-in-out infinite`,\n },\n loaderInnerCircle: {\n position: 'absolute',\n inset: 0,\n margin: 'auto',\n borderRadius: '50%',\n backgroundColor: ({ palette }) => palette.text.primary,\n animation: `${breatheInner} 1s ease-in-out infinite`,\n },\n // --- Tool Trace styles ---\n traceHeader: {\n display: 'flex',\n alignItems: 'center',\n padding: 0,\n paddingLeft: ({ spacing }) => spacing(0.5),\n borderRadius: ({ spacing }) => spacing(0.5),\n width: 'fit-content',\n color: ({ palette }) => palette.text.secondary,\n '&:hover': {\n backgroundColor: ({ palette }) => palette.action.hover,\n },\n },\n traceChevron: {\n color: ({ palette }) => palette.text.secondary,\n transition: 'transform 0.2s',\n },\n traceDetailsWrapper: {\n marginTop: ({ spacing }) => spacing(0.5),\n padding: ({ spacing }) => spacing(1.5),\n border: '1px solid',\n borderColor: 'divider',\n borderRadius: ({ spacing }) => spacing(1),\n },\n traceField: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: ({ spacing }) => spacing(1),\n },\n traceFieldLabel: {\n flexShrink: 0,\n },\n traceReference: {\n display: 'flex',\n borderRadius: ({ spacing }) => spacing(0.25),\n padding: ({ spacing }) => spacing(0, 0.5),\n gap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.success.relatedLight,\n color: ({ palette }) => palette.success.dark,\n },\n traceStatusSuccess: {\n color: ({ palette }) => palette.success.main,\n },\n traceStatusError: {\n color: ({ palette }) => palette.error.main,\n },\n // --- Code Area styles ---\n codeArea: {\n position: 'relative',\n width: '100%',\n },\n codeAreaPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n borderRadius: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) => palette.background.default,\n fontFamily: ({ typography }): string =>\n typography.code3?.fontFamily ??\n typography.code1?.fontFamily ??\n 'monospace',\n fontSize: ({ typography }): string | number =>\n typography.code3?.fontSize ?? '0.75rem',\n lineHeight: ({ typography }): string | number =>\n typography.code3?.lineHeight ?? 1.333,\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowY: 'auto',\n },\n codeAreaPreError: {\n borderLeft: ({ palette }) => `3px solid ${palette.error.main}`,\n backgroundColor: ({ palette }) => `${palette.error.main}08`,\n },\n codeAreaFullViewButton: {\n position: 'absolute',\n top: ({ spacing }) => spacing(0.5),\n right: ({ spacing }) => spacing(0.5),\n },\n // --- Full View Dialog styles ---\n fullViewDialog: {\n margin: ({ spacing }) => spacing(5),\n },\n fullViewPaper: {\n borderRadius: 1,\n },\n fullViewTitle: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(2),\n borderBottom: '1px solid',\n borderBottomColor: 'divider',\n },\n fullViewDialogContent: {\n padding: 0,\n '&:first-of-type': { paddingTop: 0 },\n },\n fullViewPre: {\n margin: 0,\n padding: ({ spacing }) => spacing(1),\n background: ({ palette, spacing }) =>\n `linear-gradient(to right, ${palette.action.hover} calc(${spacing(1)} + 3em), ${palette.background.default} calc(${spacing(1)} + 3em))`,\n fontFamily: ({ typography }): string =>\n typography.code3?.fontFamily ??\n typography.code1?.fontFamily ??\n 'monospace',\n fontSize: ({ typography }): string | number =>\n typography.code3?.fontSize ?? '0.75rem',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n lineHeight: 1.6,\n counterReset: 'line',\n },\n fullViewLine: {\n display: 'block',\n '&::before': {\n counterIncrement: 'line',\n content: 'counter(line)',\n display: 'inline-block',\n width: '2em',\n marginRight: '2em',\n textAlign: 'right',\n color: ({ palette }) => palette.text.secondary,\n userSelect: 'none',\n },\n },\n groupHeader: {\n textAlign: 'left',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n gap: ({ spacing }) => spacing(0.5),\n },\n errorBadge: {\n color: ({ palette }) => palette.error.main,\n fontWeight: 600,\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.25),\n },\n // --- Syntax highlighting token styles ---\n syntaxToken_key: {\n color: '#881280',\n },\n syntaxToken_string: {\n color: '#c41a16',\n },\n syntaxToken_number: {\n color: '#1c00cf',\n },\n syntaxToken_boolean: {\n color: '#1c00cf',\n },\n syntaxToken_null: {\n color: '#808080',\n },\n syntaxToken_punctuation: {\n color: ({ palette }) => palette.text.primary,\n },\n groupListItem: {\n borderBottom: '1px solid',\n borderColor: 'divider',\n '&:first-of-type .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(1, 1, 0, 0),\n },\n '&:last-of-type:not([aria-expanded=true]) .MuiButton-root': {\n borderRadius: ({ spacing }) => spacing(0, 0, 1, 1),\n },\n '&:last-of-type': {\n borderBottomWidth: 0,\n },\n },\n} satisfies Record<string, SxProps<Theme>>\n","import { Typography } from '@mui/material'\nimport type { ChatThinkingProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatThinking({\n children = 'Thinking...',\n duration = 2000,\n sx,\n}: ChatThinkingProps) {\n const durSeconds = `${duration / 1000}s`\n return (\n <Typography\n variant='body2'\n sx={{\n ...styles.thinking,\n animationDuration: durSeconds,\n ...sx,\n }}\n >\n {children}\n </Typography>\n )\n}\n","import { Box } from '@mui/material'\nimport type { ChatLoaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatLoader({ size = 24, labels = {}, sx }: ChatLoaderProps) {\n return (\n <Box\n role='status'\n aria-busy={true}\n aria-label={labels.loading ?? 'Loading'}\n sx={{ ...styles.loader, width: size, height: size, ...sx }}\n >\n <Box\n component='span'\n sx={{\n ...styles.loaderOuterCircle,\n width: size * 0.75,\n height: size * 0.75,\n }}\n />\n <Box\n component='span'\n sx={{\n ...styles.loaderInnerCircle,\n width: size * 0.32,\n height: size * 0.32,\n }}\n />\n </Box>\n )\n}\n","import type { SxProps, Theme } from '@mui/material'\nimport { CHAT_MAX_WIDTH } from '../const'\n\nexport const styles = {\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: ({ spacing }) => spacing(1),\n },\n headerTitle: {\n flexGrow: 1,\n px: ({ spacing }) => spacing(0.5),\n },\n headerActions: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: ({ spacing }) => spacing(2),\n gap: ({ spacing }) => spacing(0.5),\n },\n footerWrapper: {\n padding: ({ spacing }) => spacing(1),\n },\n /**\n * Rounded input box, matching the reference ChatFooter. A two-column grid:\n * main column (input + optional slots) | send button, bottom-aligned so it\n * stays at the end as the input grows. NO vertical padding — the textarea's own\n * padding sets the ~32px single-line height, so the box hugs the input.\n */\n footerBox: {\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n margin: '0 auto',\n display: 'grid',\n gridTemplateColumns: '1fr auto',\n alignItems: 'end',\n columnGap: ({ spacing }) => spacing(0.5),\n backgroundColor: ({ palette }) =>\n palette.default?.background ?? 'rgba(44, 48, 50, 0.04)',\n borderRadius: ({ spacing }) => spacing(0.5),\n paddingInline: ({ spacing }) => spacing(0.5),\n },\n /** Main grid area: input stacked above the (optional) slots row. */\n footerMain: {\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: ({ spacing }) => spacing(0.5),\n },\n /**\n * Send-button grid area, bottom-aligned (matches the reference flex-end row) so\n * the button stays at the bottom as the input grows. The small bottom padding\n * keeps it off the box edge — in the single-line state it reads as vertically\n * centered (4px top / 4px bottom around the 24px button in the 32px row).\n */\n footerSend: {\n alignSelf: 'end',\n paddingBottom: ({ spacing }) => spacing(0.5),\n '& .MuiIconButton-root': {\n padding: ({ spacing }) => spacing(0.5),\n },\n },\n /** The chrome-less multiline input (no underline / no filled affordance). */\n footerInput: {\n width: '100%',\n typography: 'body2',\n // The Meridian theme styles multiline InputBase as a tall \"comment field\"\n // (min-height: 96px on the root, 12px/14px textarea padding). Override both to\n // get the compact chat field: kill the root min-height and use the reference's\n // 6px/10px padding — both need !important to beat the theme override. Height\n // then comes from MUI's TextareaAutosize (minRows=1/maxRows=8): one line\n // (~32px) → grows → scrolls.\n //\n // TextareaAutosize renders a hidden shadow <textarea> (it carries\n // `aria-hidden=\"true\"`, the same class, and an inline `padding: 0`) to measure\n // the content height; MUI then applies that height to the visible input. Getting\n // the compact ~32px single line right needs the two rules below split apart:\n //\n // • Font metrics (size/line-height/letter-spacing) go on BOTH textareas. The\n // shadow measures with its own CSS, so if it isn't pinned to body2 it\n // measures at the default ~24px line-height and the box ends up too tall.\n // • Padding goes on the VISIBLE input ONLY (`:not([aria-hidden])`). A\n // `!important` padding that also hit the shadow would clobber its measurement\n // `padding: 0`, double-counting the padding (~44px instead of 32px).\n //\n // `!important` is required on both to beat the Meridian theme's tall\n // \"comment field\" multiline overrides (12px/14px padding, larger metrics); the\n // root `min-height: 0` kills that theme's 96px min-height.\n minHeight: '0 !important',\n '& textarea': {\n fontSize: ({ typography }) => `${typography.body2.fontSize} !important`,\n lineHeight: ({ typography }) =>\n `${typography.body2.lineHeight} !important`,\n letterSpacing: ({ typography }) =>\n `${typography.body2.letterSpacing} !important`,\n },\n '& textarea:not([aria-hidden])': {\n resize: 'none',\n padding: ({ spacing }) => `${spacing(0.75, 1.25)} !important`,\n },\n },\n /**\n * Slots row under the input: start slot + model selector + end slot. The left\n * padding lines the row's content up with the input text above it: the input\n * text is inset ~12px from the box edge (InputBase root padding + the textarea's\n * 10px left padding) while the model-selector text button only insets ~8px, so a\n * 4px indent here makes the slot label share the placeholder's left edge instead\n * of sitting further out.\n */\n footerSlots: {\n display: 'flex',\n alignItems: 'center',\n gap: ({ spacing }) => spacing(0.5),\n minWidth: 0,\n flexWrap: 'wrap',\n paddingLeft: ({ spacing }) => spacing(0.5),\n paddingBottom: ({ spacing }) => spacing(0.5),\n },\n modelSelector: {\n textTransform: 'none',\n color: ({ palette }) => palette.text.secondary,\n maxWidth: '100%',\n minWidth: 0,\n '& .MuiButton-endIcon': {\n marginLeft: ({ spacing }) => spacing(0.25),\n },\n },\n modelSelectorLabel: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n footerCaption: {\n textAlign: 'center',\n },\n content: {\n overflowY: 'auto',\n flex: 1,\n position: 'relative',\n mx: 'auto',\n maxWidth: CHAT_MAX_WIDTH,\n width: '100%',\n maxHeight: '100%',\n pt: 1,\n pb: 3,\n px: 2,\n display: 'flex',\n flexDirection: 'column',\n borderTopWidth: '1px',\n borderTopStyle: 'solid',\n borderBottomWidth: '1px',\n borderBottomStyle: 'solid',\n },\n sentinel: {\n height: '1px',\n flexShrink: 0,\n },\n jumpToLatestWrapper: {\n position: 'sticky',\n bottom: ({ spacing }) => spacing(3),\n height: 0,\n display: 'flex',\n justifyContent: 'center',\n zIndex: 1,\n },\n jumpToLatest: {\n transition: 'opacity 0.2s',\n },\n starter: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: ({ spacing }) => spacing(3),\n textAlign: 'center',\n maxWidth: CHAT_MAX_WIDTH,\n margin: '0 auto',\n },\n starterItems: {\n display: 'grid',\n width: '100%',\n marginTop: ({ spacing }) => spacing(2),\n },\n starterItemsTwoCol: {\n gridTemplateColumns: 'repeat(2, 1fr)',\n },\n} satisfies Record<string, SxProps<Theme>>\n","import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\nimport { Box, Fab } from '@mui/material'\nimport { KeyboardArrowDown } from '@mui/icons-material'\nimport type { ChatContentProps, ChatContentRef } from '../types'\nimport { styles } from './styles'\n\n/** Slack in px for treating the user as \"at the bottom\" when content grows. */\nconst AUTO_SCROLL_THRESHOLD = 32\n\nexport const ChatContent = forwardRef<ChatContentRef, ChatContentProps>(\n function ChatContent({ children, autoScroll = true, labels = {}, sx }, ref) {\n const scrollRef = useRef<HTMLDivElement>(null)\n const topSentinelRef = useRef<HTMLDivElement>(null)\n const bottomSentinelRef = useRef<HTMLDivElement>(null)\n\n const [isAtTop, setIsAtTop] = useState(true)\n const [isAtBottom, setIsAtBottom] = useState(true)\n\n const scrollToBottom = () => {\n scrollRef.current?.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: 'smooth',\n })\n }\n\n const scrollToTop = () => {\n scrollRef.current?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n\n useImperativeHandle(\n ref,\n () => ({ scrollToBottom, scrollToTop, isAtBottom, isAtTop }),\n [isAtBottom, isAtTop],\n )\n\n useEffect(() => {\n const root = scrollRef.current\n const topEl = topSentinelRef.current\n const bottomEl = bottomSentinelRef.current\n if (!root || !topEl || !bottomEl) return\n\n const topObserver = new IntersectionObserver(\n ([entry]) => setIsAtTop(entry?.isIntersecting ?? true),\n { root },\n )\n const bottomObserver = new IntersectionObserver(\n ([entry]) => setIsAtBottom(entry?.isIntersecting ?? true),\n { root },\n )\n topObserver.observe(topEl)\n bottomObserver.observe(bottomEl)\n return () => {\n topObserver.disconnect()\n bottomObserver.disconnect()\n }\n }, [])\n\n useEffect(() => {\n if (!autoScroll) return\n const root = scrollRef.current\n if (!root) return\n\n // We can't watch `children` to detect new content: tool traces and\n // `useTypewriter` live inside child components and update via local\n // state, so they mutate the DOM without re-rendering `ChatContent`.\n // MutationObserver picks up every DOM change regardless of source.\n let prevScrollHeight = root.scrollHeight\n let rafId: number | null = null\n\n const check = () => {\n rafId = null\n const newScrollHeight = root.scrollHeight\n if (newScrollHeight > prevScrollHeight) {\n const growth = newScrollHeight - prevScrollHeight\n // If the distance from the bottom doesn't exceed the amount the\n // content just grew (plus a small slack), the user was at the\n // bottom *before* the growth — scroll them to the new bottom.\n // Otherwise they've scrolled up to read history and we leave them\n // alone.\n const distanceFromBottom =\n newScrollHeight - root.scrollTop - root.clientHeight\n if (distanceFromBottom <= growth + AUTO_SCROLL_THRESHOLD) {\n root.scrollTo({ top: newScrollHeight, behavior: 'smooth' })\n }\n }\n prevScrollHeight = newScrollHeight\n }\n\n const mo = new MutationObserver(() => {\n // Plain `?? =` rather than `??=`: the React Compiler can't yet lower\n // logical-assignment operators, and bailing out would drop memoization\n // for this scroll container (which re-renders on every message).\n rafId = rafId ?? requestAnimationFrame(check)\n })\n mo.observe(root, {\n childList: true,\n subtree: true,\n characterData: true,\n })\n return () => {\n mo.disconnect()\n if (rafId !== null) cancelAnimationFrame(rafId)\n }\n }, [autoScroll])\n\n return (\n <Box\n ref={scrollRef}\n sx={{\n ...styles.content,\n borderTopColor: ({ palette }) =>\n isAtTop ? 'transparent' : palette.divider,\n borderBottomColor: ({ palette }) =>\n isAtBottom ? 'transparent' : palette.divider,\n ...sx,\n }}\n >\n <Box ref={topSentinelRef} sx={styles.sentinel} aria-hidden />\n {children}\n <Box ref={bottomSentinelRef} sx={styles.sentinel} aria-hidden />\n <Box sx={styles.jumpToLatestWrapper}>\n <Fab\n size='small'\n onClick={scrollToBottom}\n aria-label={labels.jumpToLatest ?? 'Jump to latest'}\n sx={{\n ...styles.jumpToLatest,\n opacity: isAtBottom ? 0 : 1,\n pointerEvents: isAtBottom ? 'none' : 'auto',\n }}\n >\n <KeyboardArrowDown />\n </Fab>\n </Box>\n </Box>\n )\n },\n)\nChatContent.displayName = 'ChatContent'\n","import { Box, IconButton, Typography } from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport type { ChatHeaderProps } from '../types'\nimport { styles } from './styles'\n\nexport function ChatHeader({\n leftSlot,\n title,\n rightSlot,\n onClose,\n sx,\n}: ChatHeaderProps) {\n return (\n <Box sx={{ ...styles.header, ...sx }}>\n {leftSlot}\n <Typography variant='subtitle2' sx={styles.headerTitle}>\n {title}\n </Typography>\n <Box sx={styles.headerActions}>\n {rightSlot}\n {onClose && (\n <IconButton size='medium' onClick={onClose} aria-label='Close'>\n <Close />\n </IconButton>\n )}\n </Box>\n </Box>\n )\n}\n","import { useState } from 'react'\nimport {\n Box,\n Button,\n FormControl,\n FormHelperText,\n IconButton,\n InputBase,\n Menu,\n MenuItem,\n Typography,\n} from '@mui/material'\nimport {\n ArrowUpwardOutlined,\n StopCircleOutlined,\n KeyboardArrowDown,\n} from '@mui/icons-material'\nimport type { ChatFooterProps } from '../types'\nimport { styles } from './styles'\n\nconst DEFAULT_CAPTION =\n 'Responses are AI-generated. Please verify key information.'\n\nexport function ChatFooter({\n value,\n onChange,\n onSend,\n onStop,\n isGenerating = false,\n disabled = false,\n placeholder = 'Type a message...',\n labels = {},\n caption = DEFAULT_CAPTION,\n models,\n selectedModel,\n onModelChange,\n startToolbarSlot,\n endToolbarSlot,\n sx,\n}: ChatFooterProps) {\n const [modelAnchor, setModelAnchor] = useState<HTMLElement | null>(null)\n const canSend = value.trim() && !disabled && !isGenerating\n // Only worth showing when there's an actual choice — a single option is dead UI.\n const showModelSelector = (models?.length ?? 0) > 1\n const modelLabel = labels.model ?? 'Select model'\n // Visible trigger text: the matched option's label, the raw value as a\n // fallback, or the placeholder when nothing is selected yet.\n const selectedLabel =\n models?.find((m) => m.value === selectedModel)?.label ??\n (selectedModel && selectedModel.length > 0 ? selectedModel : modelLabel)\n\n // The slots row (start slot + model selector + end slot) renders under the input\n // only when there's something to show; otherwise the grid is just input | send.\n const hasSlots =\n showModelSelector || Boolean(startToolbarSlot) || Boolean(endToolbarSlot)\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault()\n if (canSend) {\n onSend()\n }\n }\n }\n\n const sendButton =\n isGenerating && onStop ? (\n <IconButton\n size='small'\n onClick={onStop}\n disabled={disabled}\n aria-label={labels.stop ?? 'Stop'}\n >\n <StopCircleOutlined />\n </IconButton>\n ) : (\n <IconButton\n size='small'\n variant='contained'\n color='primary'\n onClick={onSend}\n disabled={!canSend}\n aria-label={labels.send ?? 'Send'}\n >\n <ArrowUpwardOutlined />\n </IconButton>\n )\n\n return (\n <FormControl fullWidth sx={{ ...styles.footerWrapper, ...sx }}>\n {/* Two grid areas: [input + slots] | [send button, aligned to the end]. */}\n <Box sx={styles.footerBox}>\n <Box sx={styles.footerMain}>\n <InputBase\n multiline\n minRows={1}\n maxRows={8}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled || isGenerating}\n sx={styles.footerInput}\n />\n {hasSlots && (\n <Box sx={styles.footerSlots}>\n {startToolbarSlot}\n {showModelSelector && (\n <>\n <Button\n size='small'\n variant='text'\n color='inherit'\n disabled={disabled || isGenerating}\n onClick={(e) => setModelAnchor(e.currentTarget)}\n aria-label={modelLabel}\n aria-haspopup='menu'\n aria-expanded={modelAnchor ? 'true' : undefined}\n endIcon={<KeyboardArrowDown />}\n sx={styles.modelSelector}\n >\n <Typography\n variant='caption'\n component='span'\n color='inherit'\n sx={styles.modelSelectorLabel}\n >\n {selectedLabel}\n </Typography>\n </Button>\n <Menu\n anchorEl={modelAnchor}\n open={Boolean(modelAnchor)}\n onClose={() => setModelAnchor(null)}\n variant='menu'\n elevation={8}\n anchorOrigin={{ vertical: 'top', horizontal: 'left' }}\n transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}\n >\n {models?.map((m) => (\n <MenuItem\n key={m.value}\n selected={m.value === selectedModel}\n onClick={() => {\n onModelChange?.(m.value)\n setModelAnchor(null)\n }}\n >\n {m.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n )}\n {endToolbarSlot}\n </Box>\n )}\n </Box>\n <Box sx={styles.footerSend}>{sendButton}</Box>\n </Box>\n {caption ? (\n <FormHelperText sx={styles.footerCaption}>{caption}</FormHelperText>\n ) : null}\n </FormControl>\n )\n}\n","import { Box, Typography } from '@mui/material'\nimport type { ChatStarterProps } from '../types'\nimport { ChatSuggestionButton } from '../bubbles/chat-suggestion-button'\nimport { styles } from './styles'\n\nconst DEFAULT_PALETTE = [\n '#C9DB7440', // pastel green\n '#FE88B140', // pastel red\n '#9EB9F340', // pastel blue\n '#F6CF7140', // pastel yellow\n]\n\nexport function ChatStarter({\n icon,\n title,\n description,\n items,\n size = 'small',\n onSelect,\n sx,\n}: ChatStarterProps) {\n const fullItems = items.map((item, index) => {\n if (typeof item === 'string') {\n return {\n label: item,\n color: DEFAULT_PALETTE[index],\n }\n } else {\n return {\n label: item.label,\n color: item.color ?? DEFAULT_PALETTE[index],\n }\n }\n })\n return (\n <Box\n sx={{\n ...styles.starter,\n gap: size === 'small' ? 1 : 2,\n ...sx,\n }}\n >\n {icon}\n {title && (\n <Typography variant={size === 'small' ? 'h6' : 'h5'}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant={size === 'small' ? 'body2' : 'body1'}\n color='text.secondary'\n >\n {description}\n </Typography>\n )}\n <Box\n sx={{\n ...styles.starterItems,\n gap: size === 'small' ? 1 : 2,\n ...(items.length > 2 ? styles.starterItemsTwoCol : undefined),\n }}\n >\n {fullItems.map((item, i) => (\n <ChatSuggestionButton\n key={i}\n label={item.label}\n onClick={() => onSelect?.(item.label)}\n color={item.color}\n />\n ))}\n </Box>\n </Box>\n )\n}\n","import { Box, styled, type BoxProps } from '@mui/material'\nimport type { FC } from 'react'\n\n// See chat/bubbles/styles.ts: the annotation keeps the declaration emittable,\n// and what it gives up on `component=`.\nexport const ChatActionsContainer: FC<BoxProps> = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(0.5),\n}))\n","import { IconButton } from '@mui/material'\nimport {\n ThumbUpOutlined,\n ThumbDownOutlined,\n ThumbUp,\n ThumbDown,\n} from '@mui/icons-material'\nimport type { ChatRatingActionProps } from '../types'\n\nexport function ChatRatingAction({\n rating,\n onRatingChange,\n labels = {},\n}: ChatRatingActionProps) {\n return (\n <>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'up' ? null : 'up')}\n aria-label={labels.thumbUp ?? 'Thumbs up'}\n color={rating === 'up' ? 'primary' : undefined}\n >\n {rating === 'up' ? (\n <ThumbUp fontSize='small' />\n ) : (\n <ThumbUpOutlined fontSize='small' />\n )}\n </IconButton>\n <IconButton\n size='small'\n onClick={() => onRatingChange?.(rating === 'down' ? null : 'down')}\n aria-label={labels.thumbDown ?? 'Thumbs down'}\n color={rating === 'down' ? 'primary' : undefined}\n >\n {rating === 'down' ? (\n <ThumbDown fontSize='small' />\n ) : (\n <ThumbDownOutlined fontSize='small' />\n )}\n </IconButton>\n </>\n )\n}\n","import { useMemo } from 'react'\nimport {\n Dialog,\n DialogTitle,\n DialogContent,\n IconButton,\n Box,\n} from '@mui/material'\nimport { Close } from '@mui/icons-material'\nimport { CopyButton } from '../../components/copy-button/copy-button'\nimport type { ChatToolFullViewDialogProps } from '../types'\nimport { styles } from './styles'\n\ninterface Token {\n type: 'key' | 'string' | 'number' | 'boolean' | 'null' | 'punctuation'\n value: string\n}\n\nconst NUMBER_START_REGEX = /^-?\\d/\n\nfunction tokenizeLine(line: string): (Token | string)[] {\n const tokens: (Token | string)[] = []\n let lastIndex = 0\n let match: RegExpExecArray | null\n\n // First, find all key positions by looking for \"...\": patterns\n const keyPositions = new Set<number>()\n const keyRegex = /(\"(?:[^\"\\\\]|\\\\.)*\")\\s*:/g\n let keyMatch: RegExpExecArray | null\n while ((keyMatch = keyRegex.exec(line)) !== null) {\n keyPositions.add(keyMatch.index)\n }\n\n const tokenRegex = // eslint-disable-next-line no-useless-escape\n /\"(?:[^\"\\\\]|\\\\.)*\"|\\b(?:true|false)\\b|\\bnull\\b|-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?|[{}\\[\\]:,]/g\n\n while ((match = tokenRegex.exec(line)) !== null) {\n if (match.index > lastIndex) {\n tokens.push(line.slice(lastIndex, match.index))\n }\n const value = match[0]\n if (value.startsWith('\"')) {\n if (keyPositions.has(match.index)) {\n tokens.push({ type: 'key', value })\n } else {\n tokens.push({ type: 'string', value })\n }\n } else if (NUMBER_START_REGEX.test(value)) {\n tokens.push({ type: 'number', value })\n } else if (value === 'true' || value === 'false') {\n tokens.push({ type: 'boolean', value })\n } else if (value === 'null') {\n tokens.push({ type: 'null', value })\n } else {\n tokens.push({ type: 'punctuation', value })\n }\n lastIndex = match.index + value.length\n }\n\n if (lastIndex < line.length) {\n tokens.push(line.slice(lastIndex))\n }\n\n return tokens\n}\n\nexport function ChatToolFullViewDialog({\n open,\n onClose,\n title,\n content,\n}: ChatToolFullViewDialogProps) {\n const tokenizedLines = useMemo(\n () => content.split('\\n').map((line) => tokenizeLine(line)),\n [content],\n )\n\n return (\n <Dialog\n open={open}\n onClose={onClose}\n sx={styles.fullViewDialog}\n PaperProps={{ sx: styles.fullViewPaper }}\n fullScreen\n >\n <DialogTitle sx={styles.fullViewTitle}>\n {title}\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CopyButton copyText={content} aria-label='Copy content' />\n <IconButton onClick={onClose} aria-label='close'>\n <Close />\n </IconButton>\n </Box>\n </DialogTitle>\n <DialogContent sx={styles.fullViewDialogContent}>\n <Box component='pre' sx={styles.fullViewPre}>\n {tokenizedLines.map((tokens, i) => (\n <Box component='span' key={i} sx={styles.fullViewLine}>\n {tokens.map((token, j) =>\n typeof token === 'string' ? (\n token\n ) : (\n <Box\n component='span'\n key={j}\n sx={\n styles[`syntaxToken_${token.type}` as keyof typeof styles]\n }\n >\n {token.value}\n </Box>\n ),\n )}\n {'\\n'}\n </Box>\n ))}\n </Box>\n </DialogContent>\n </Dialog>\n )\n}\n","import { useRef, useState, useEffect, useCallback } from 'react'\nimport { Box, IconButton, Tooltip } from '@mui/material'\nimport type { ChatToolCodeAreaProps } from '../types'\nimport { CHAT_TOOL_CODE_AREA_MAX_HEIGHT } from '../const'\nimport { ChatToolFullViewDialog } from './chat-tool-full-view-dialog'\nimport { styles } from './styles'\nimport { OpenDiagonallyRight } from '@carto/meridian-ds/custom-icons'\n\nexport function ChatToolCodeArea({\n content,\n title = '',\n isError = false,\n labels = {},\n sx,\n}: ChatToolCodeAreaProps) {\n const preRef = useRef<HTMLPreElement>(null)\n const [isOverflowing, setIsOverflowing] = useState(false)\n const [dialogOpen, setDialogOpen] = useState(false)\n\n const checkOverflow = useCallback(() => {\n const el = preRef.current\n if (el) {\n setIsOverflowing(el.scrollHeight > el.clientHeight)\n }\n }, [])\n\n useEffect(() => {\n checkOverflow()\n const el = preRef.current\n if (!el) return\n\n const observer = new ResizeObserver(checkOverflow)\n observer.observe(el)\n return () => observer.disconnect()\n }, [checkOverflow, content])\n\n const fullViewLabel = labels.fullView ?? 'Full view'\n\n return (\n <Box sx={{ ...styles.codeArea, ...sx }}>\n <Box\n component='pre'\n ref={preRef}\n sx={{\n ...styles.codeAreaPre,\n maxHeight: CHAT_TOOL_CODE_AREA_MAX_HEIGHT,\n ...(isError ? styles.codeAreaPreError : {}),\n }}\n >\n {content}\n </Box>\n {isOverflowing && (\n <Tooltip title={fullViewLabel}>\n <IconButton\n size='small'\n onClick={() => setDialogOpen(true)}\n sx={styles.codeAreaFullViewButton}\n >\n <OpenDiagonallyRight />\n </IconButton>\n </Tooltip>\n )}\n <ChatToolFullViewDialog\n open={dialogOpen}\n onClose={() => setDialogOpen(false)}\n title={title}\n content={content}\n />\n </Box>\n )\n}\n","import type { ChatToolItem } from '../types'\n\nfunction capitalize(str: string): string {\n const spaced = str.replace(/_/g, ' ')\n return spaced.charAt(0).toUpperCase() + spaced.slice(1)\n}\n\nexport function getToolLabel(tool: ChatToolItem): string {\n if (tool.status === 'running') {\n return tool.runningLabel ?? capitalize(tool.name)\n }\n return tool.label ?? capitalize(tool.name)\n}\n","import {\n Box,\n CircularProgress,\n Typography,\n Collapse,\n Button,\n} from '@mui/material'\nimport { ArrowRight, CheckCircle, Error } from '@mui/icons-material'\nimport type { ChatToolTraceProps } from '../types'\nimport { ChatToolCodeArea } from './chat-tool-code-area'\nimport { styles } from './styles'\nimport { ChatThinking } from './chat-thinking'\nimport { getToolLabel } from './get-tool-label'\nimport { McpTool } from '@carto/meridian-ds/custom-icons'\n\nfunction TraceStatusIndicator({\n status,\n labels,\n}: {\n status: string\n labels: ChatToolTraceProps['labels']\n}) {\n switch (status) {\n case 'complete':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <CheckCircle sx={{ fontSize: 12 }} color='success' />\n <Typography variant='caption'>\n {labels?.success ?? 'Success'}\n </Typography>\n </Box>\n )\n case 'error':\n return (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.5 }}>\n <Error sx={{ fontSize: 12 }} color='error' />\n <Typography variant='code3'>{labels?.error ?? 'Error'}</Typography>\n </Box>\n )\n case 'running':\n return <CircularProgress size={14} />\n default:\n return null\n }\n}\n\nexport function ChatToolTraceDetails({\n tool,\n labels = {},\n}: Pick<ChatToolTraceProps, 'tool' | 'labels'>) {\n const isError = tool.status === 'error'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n const referenceLabel = labels.reference ?? 'Reference:'\n const durationLabel = labels.duration ?? 'Duration:'\n const statusLabel = labels.status ?? 'Status:'\n const inputArgumentsLabel = labels.inputArguments ?? 'Input arguments:'\n const outputLabel = labels.output ?? 'Output:'\n\n return (\n <Box>\n {tool.reference && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {referenceLabel}\n </Typography>\n <Box sx={styles.traceReference}>\n <McpTool color='success' />\n <Typography variant='code3' fontWeight={600}>\n {tool.reference}\n </Typography>\n </Box>\n </Box>\n )}\n\n {tool.duration != null && (\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {durationLabel}\n </Typography>\n <Typography variant='code3'>{tool.duration}s</Typography>\n </Box>\n )}\n\n <Box sx={styles.traceField}>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceFieldLabel}\n >\n {statusLabel}\n </Typography>\n <TraceStatusIndicator status={tool.status} labels={labels} />\n </Box>\n\n {tool.inputArguments && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {inputArgumentsLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5, mb: tool.output ? 1.5 : 0 }}\n content={tool.inputArguments}\n title={`${toolExecutedLabel}: ${inputArgumentsLabel}`}\n isError={isError}\n />\n </Box>\n )}\n\n {tool.output && (\n <Box>\n <Typography\n variant='code3'\n fontWeight={600}\n color='text.secondary'\n sx={styles.traceField}\n >\n {outputLabel}\n </Typography>\n <ChatToolCodeArea\n sx={{ mt: 0.5 }}\n content={tool.output}\n title={`${toolExecutedLabel}: ${outputLabel}`}\n isError={isError}\n />\n </Box>\n )}\n </Box>\n )\n}\n\nexport function ChatToolTrace({\n tool,\n expanded,\n onExpandedChange,\n labels = {},\n sx,\n}: ChatToolTraceProps) {\n const isRunning = tool.status === 'running'\n const toolExecutedLabel = labels.toolExecuted ?? 'Tool executed'\n\n if (isRunning) {\n return <ChatThinking>{getToolLabel(tool)}</ChatThinking>\n }\n\n return (\n <Box\n width='100%'\n sx={sx}\n data-tool={tool.name}\n className={`PsChat--tool-trace`}\n >\n <Button\n size='small'\n variant='text'\n onClick={() => onExpandedChange?.(!expanded)}\n aria-expanded={expanded}\n sx={styles.traceHeader}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {toolExecutedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box sx={styles.traceDetailsWrapper}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n}\n","import { Box, Button, Collapse, Typography } from '@mui/material'\nimport { ArrowRight, ChevronRight, ErrorOutline } from '@mui/icons-material'\nimport type { ChatToolGroupProps } from '../types'\nimport { ChatToolTrace, ChatToolTraceDetails } from './chat-tool-trace'\nimport { styles } from './styles'\nimport { getToolLabel } from './get-tool-label'\nimport { useState } from 'react'\n\nfunction useController<T>(value: T, setter?: (value: T) => void) {\n const [_value, _setter] = useState<T>(value)\n if (setter) {\n return [value, setter] as const\n } else {\n return [_value, _setter] as const\n }\n}\n\nexport function ChatToolGroup({\n tools,\n expanded: _expanded = false,\n onExpandedChange: _setExpanded,\n expandedTools: _expandedTools = {},\n onToolExpandedChange: _setExpandedTools,\n labels = {},\n sx,\n}: ChatToolGroupProps) {\n const [expanded, setExpanded] = useController(_expanded, _setExpanded)\n const [expandedTools, setExpandedTools] = useController(\n _expandedTools,\n _setExpandedTools,\n )\n\n const numErrors = tools.filter((t) => t.status === 'error').length\n const runningTools = tools.filter((t) => t.status === 'running')\n const nonRunningTools = tools.filter((t) => t.status !== 'running')\n const toolsUsedLabel = labels.toolsUsed ?? 'tools used'\n const errorLabel = labels.error ?? 'Error'\n\n if (tools.length === 1) {\n return (\n <ChatToolTrace\n tool={tools[0]!}\n expanded={expanded}\n onExpandedChange={setExpanded}\n labels={labels}\n sx={sx}\n />\n )\n }\n\n return (\n <Box width='100%' sx={sx} className='PsChat--tool-group'>\n <Button\n size='small'\n variant='text'\n onClick={() => setExpanded(!expanded)}\n aria-expanded={expanded}\n sx={{\n ...styles.traceHeader,\n pr: numErrors > 0 ? 0.5 : 0,\n }}\n >\n <Typography variant='caption' fontWeight={600} color='text.secondary'>\n {tools.length} {toolsUsedLabel}\n </Typography>\n <ArrowRight\n sx={{\n ...styles.traceChevron,\n transform: expanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n {numErrors > 0 && (\n <Typography variant='code3' sx={styles.errorBadge}>\n {numErrors}\n <ErrorOutline sx={{ fontSize: 12 }} color='error' />\n </Typography>\n )}\n </Button>\n <Collapse in={expanded} unmountOnExit>\n <Box\n component='ul'\n sx={{\n ...styles.traceDetailsWrapper,\n p: 0,\n listStyle: 'none',\n }}\n >\n {nonRunningTools.map((tool) => {\n const isExpanded = expandedTools[tool.id] ?? false\n return (\n <Box\n key={tool.id}\n component='li'\n sx={styles.groupListItem}\n aria-expanded={isExpanded}\n >\n <Button\n variant='text'\n color='inherit'\n fullWidth\n onClick={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !isExpanded,\n })\n }\n aria-expanded={isExpanded}\n sx={styles.groupHeader}\n >\n <Typography\n flexGrow={1}\n flexShrink={0}\n variant='caption'\n color='text.secondary'\n >\n {getToolLabel(tool)}\n </Typography>\n {tool.status === 'error' && (\n <Typography variant='code3' color='error.main'>\n {errorLabel}\n </Typography>\n )}\n <ChevronRight\n sx={{\n ...styles.traceChevron,\n transform: isExpanded ? 'rotate(90deg)' : 'rotate(0deg)',\n }}\n />\n </Button>\n <Collapse in={isExpanded} unmountOnExit>\n <Box px={1.5} py={1}>\n <ChatToolTraceDetails tool={tool} labels={labels} />\n </Box>\n </Collapse>\n </Box>\n )\n })}\n </Box>\n </Collapse>\n {runningTools.map((tool) => (\n <ChatToolTrace\n key={tool.id}\n tool={tool}\n labels={labels}\n expanded={expandedTools[tool.id]}\n onExpandedChange={() =>\n setExpandedTools({\n ...expandedTools,\n [tool.id]: !expandedTools[tool.id],\n })\n }\n />\n ))}\n </Box>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { t as e } from "./rolldown-runtime-B0aSnxlc.js";
|
|
2
|
+
//#region ../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js
|
|
3
|
+
var t = /* @__PURE__ */ e(((e, t) => {
|
|
4
|
+
var n = function(e) {
|
|
5
|
+
return r(e) && !i(e);
|
|
6
|
+
};
|
|
7
|
+
function r(e) {
|
|
8
|
+
return !!e && typeof e == "object";
|
|
9
|
+
}
|
|
10
|
+
function i(e) {
|
|
11
|
+
var t = Object.prototype.toString.call(e);
|
|
12
|
+
return t === "[object RegExp]" || t === "[object Date]" || o(e);
|
|
13
|
+
}
|
|
14
|
+
var a = typeof Symbol == "function" && Symbol.for ? Symbol.for("react.element") : 60103;
|
|
15
|
+
function o(e) {
|
|
16
|
+
return e.$$typeof === a;
|
|
17
|
+
}
|
|
18
|
+
function s(e) {
|
|
19
|
+
return Array.isArray(e) ? [] : {};
|
|
20
|
+
}
|
|
21
|
+
function c(e, t) {
|
|
22
|
+
return t.clone !== !1 && t.isMergeableObject(e) ? g(s(e), e, t) : e;
|
|
23
|
+
}
|
|
24
|
+
function l(e, t, n) {
|
|
25
|
+
return e.concat(t).map(function(e) {
|
|
26
|
+
return c(e, n);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function u(e, t) {
|
|
30
|
+
if (!t.customMerge) return g;
|
|
31
|
+
var n = t.customMerge(e);
|
|
32
|
+
return typeof n == "function" ? n : g;
|
|
33
|
+
}
|
|
34
|
+
function d(e) {
|
|
35
|
+
return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(e).filter(function(t) {
|
|
36
|
+
return Object.propertyIsEnumerable.call(e, t);
|
|
37
|
+
}) : [];
|
|
38
|
+
}
|
|
39
|
+
function f(e) {
|
|
40
|
+
return Object.keys(e).concat(d(e));
|
|
41
|
+
}
|
|
42
|
+
function p(e, t) {
|
|
43
|
+
try {
|
|
44
|
+
return t in e;
|
|
45
|
+
} catch {
|
|
46
|
+
return !1;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function m(e, t) {
|
|
50
|
+
return p(e, t) && !(Object.hasOwnProperty.call(e, t) && Object.propertyIsEnumerable.call(e, t));
|
|
51
|
+
}
|
|
52
|
+
function h(e, t, n) {
|
|
53
|
+
var r = {};
|
|
54
|
+
return n.isMergeableObject(e) && f(e).forEach(function(t) {
|
|
55
|
+
r[t] = c(e[t], n);
|
|
56
|
+
}), f(t).forEach(function(i) {
|
|
57
|
+
m(e, i) || (r[i] = p(e, i) && n.isMergeableObject(t[i]) ? u(i, n)(e[i], t[i], n) : c(t[i], n));
|
|
58
|
+
}), r;
|
|
59
|
+
}
|
|
60
|
+
function g(e, t, r) {
|
|
61
|
+
r ||= {}, r.arrayMerge = r.arrayMerge || l, r.isMergeableObject = r.isMergeableObject || n, r.cloneUnlessOtherwiseSpecified = c;
|
|
62
|
+
var i = Array.isArray(t);
|
|
63
|
+
return i === Array.isArray(e) ? i ? r.arrayMerge(e, t, r) : h(e, t, r) : c(t, r);
|
|
64
|
+
}
|
|
65
|
+
g.all = function(e, t) {
|
|
66
|
+
if (!Array.isArray(e)) throw Error("first argument should be an array");
|
|
67
|
+
return e.reduce(function(e, n) {
|
|
68
|
+
return g(e, n, t);
|
|
69
|
+
}, {});
|
|
70
|
+
}, t.exports = g;
|
|
71
|
+
}));
|
|
72
|
+
//#endregion
|
|
73
|
+
export { t };
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=cjs-CBrZjPCj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cjs-CBrZjPCj.js","names":[],"sources":["../../../node_modules/.pnpm/deepmerge@4.3.1/node_modules/deepmerge/dist/cjs.js"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n"],"x_google_ignoreList":[0],"mappings":";;;CAEA,IAAI,IAAoB,SAA2B,GAAO;EACzD,OAAO,EAAgB,CAAK,KACxB,CAAC,EAAU,CAAK;CACrB;CAEA,SAAS,EAAgB,GAAO;EAC/B,OAAO,CAAC,CAAC,KAAS,OAAO,KAAU;CACpC;CAEA,SAAS,EAAU,GAAO;EACzB,IAAI,IAAc,OAAO,UAAU,SAAS,KAAK,CAAK;EAEtD,OAAO,MAAgB,qBACnB,MAAgB,mBAChB,EAAe,CAAK;CACzB;CAIA,IAAI,IADe,OAAO,UAAW,cAAc,OAAO,MAClB,OAAO,IAAI,eAAe,IAAI;CAEtE,SAAS,EAAe,GAAO;EAC9B,OAAO,EAAM,aAAa;CAC3B;CAEA,SAAS,EAAY,GAAK;EACzB,OAAO,MAAM,QAAQ,CAAG,IAAI,CAAC,IAAI,CAAC;CACnC;CAEA,SAAS,EAA8B,GAAO,GAAS;EACtD,OAAQ,EAAQ,UAAU,MAAS,EAAQ,kBAAkB,CAAK,IAC/D,EAAU,EAAY,CAAK,GAAG,GAAO,CAAO,IAC5C;CACJ;CAEA,SAAS,EAAkB,GAAQ,GAAQ,GAAS;EACnD,OAAO,EAAO,OAAO,CAAM,CAAC,CAAC,IAAI,SAAS,GAAS;GAClD,OAAO,EAA8B,GAAS,CAAO;EACtD,CAAC;CACF;CAEA,SAAS,EAAiB,GAAK,GAAS;EACvC,IAAI,CAAC,EAAQ,aACZ,OAAO;EAER,IAAI,IAAc,EAAQ,YAAY,CAAG;EACzC,OAAO,OAAO,KAAgB,aAAa,IAAc;CAC1D;CAEA,SAAS,EAAgC,GAAQ;EAChD,OAAO,OAAO,wBACX,OAAO,sBAAsB,CAAM,CAAC,CAAC,OAAO,SAAS,GAAQ;GAC9D,OAAO,OAAO,qBAAqB,KAAK,GAAQ,CAAM;EACvD,CAAC,IACC,CAAC;CACL;CAEA,SAAS,EAAQ,GAAQ;EACxB,OAAO,OAAO,KAAK,CAAM,CAAC,CAAC,OAAO,EAAgC,CAAM,CAAC;CAC1E;CAEA,SAAS,EAAmB,GAAQ,GAAU;EAC7C,IAAI;GACH,OAAO,KAAY;EACpB,QAAW;GACV,OAAO;EACR;CACD;CAGA,SAAS,EAAiB,GAAQ,GAAK;EACtC,OAAO,EAAmB,GAAQ,CAAG,KACjC,EAAE,OAAO,eAAe,KAAK,GAAQ,CAAG,KACvC,OAAO,qBAAqB,KAAK,GAAQ,CAAG;CAClD;CAEA,SAAS,EAAY,GAAQ,GAAQ,GAAS;EAC7C,IAAI,IAAc,CAAC;EAiBnB,OAhBI,EAAQ,kBAAkB,CAAM,KACnC,EAAQ,CAAM,CAAC,CAAC,QAAQ,SAAS,GAAK;GACrC,EAAY,KAAO,EAA8B,EAAO,IAAM,CAAO;EACtE,CAAC,GAEF,EAAQ,CAAM,CAAC,CAAC,QAAQ,SAAS,GAAK;GACjC,EAAiB,GAAQ,CAAG,MAIhC,AAGC,EAAY,KAHT,EAAmB,GAAQ,CAAG,KAAK,EAAQ,kBAAkB,EAAO,EAAI,IACxD,EAAiB,GAAK,CAAO,CAAC,CAAC,EAAO,IAAM,EAAO,IAAM,CAAO,IAEhE,EAA8B,EAAO,IAAM,CAAO;EAEvE,CAAC,GACM;CACR;CAEA,SAAS,EAAU,GAAQ,GAAQ,GAAS;EAM3C,AALA,MAAqB,CAAC,GACtB,EAAQ,aAAa,EAAQ,cAAc,GAC3C,EAAQ,oBAAoB,EAAQ,qBAAqB,GAGzD,EAAQ,gCAAgC;EAExC,IAAI,IAAgB,MAAM,QAAQ,CAAM;EASvC,OAP+B,MADZ,MAAM,QAAQ,CAC4B,IAInD,IACH,EAAQ,WAAW,GAAQ,GAAQ,CAAO,IAE1C,EAAY,GAAQ,GAAQ,CAAO,IAJnC,EAA8B,GAAQ,CAAO;CAMtD;CAcA,AAZA,EAAU,MAAM,SAAsB,GAAO,GAAS;EACrD,IAAI,CAAC,MAAM,QAAQ,CAAK,GACvB,MAAU,MAAM,mCAAmC;EAGpD,OAAO,EAAM,OAAO,SAAS,GAAM,GAAM;GACxC,OAAO,EAAU,GAAM,GAAM,CAAO;EACrC,GAAG,CAAC,CAAC;CACN,GAIA,EAAO,UAAU"}
|