@dynatrace/strato-components 3.12.1 → 3.13.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/CHANGELOG.md +185 -0
- package/buttons/button/Button.css +15 -15
- package/buttons/button/Button.sty.js +4 -4
- package/buttons/index.d.ts +4 -0
- package/buttons/index.js +2 -0
- package/buttons/inline-button/InlineButton.css +145 -0
- package/buttons/inline-button/InlineButton.css.d.ts +107 -0
- package/buttons/inline-button/InlineButton.d.ts +62 -0
- package/buttons/inline-button/InlineButton.js +213 -0
- package/buttons/inline-button/InlineButton.sty.js +40 -0
- package/buttons/inline-button/Prefix.d.ts +13 -0
- package/buttons/inline-button/Prefix.js +61 -0
- package/buttons/inline-button/Suffix.d.ts +13 -0
- package/buttons/inline-button/Suffix.js +61 -0
- package/buttons/intent-button/IntentButton.css +1 -1
- package/buttons/intent-button/IntentButton.sty.js +1 -1
- package/buttons/notify-button/NotifyButton.css +2 -2
- package/buttons/notify-button/NotifyButton.sty.js +2 -2
- package/charts/categorical-bar/CategoricalBarChartLayout.js +1 -1
- package/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.css +2 -2
- package/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js +2 -2
- package/charts/categorical-bar/providers/StoreProvider.js +1 -1
- package/charts/core/components/annotations/AnnotationsAtom.css +1 -1
- package/charts/core/components/annotations/AnnotationsAtom.sty.js +1 -1
- package/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.css +1 -1
- package/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.sty.js +1 -1
- package/charts/core/components/annotations/components/overlays/AnnotationsOverlays.css +1 -1
- package/charts/core/components/annotations/components/overlays/AnnotationsOverlays.sty.js +1 -1
- package/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.css +1 -1
- package/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.sty.js +1 -1
- package/charts/core/components/axes/Axis.css +1 -1
- package/charts/core/components/axes/Axis.sty.js +1 -1
- package/charts/core/components/axes/components/PanningControls/PanningControls.css +16 -16
- package/charts/core/components/axes/components/PanningControls/PanningControls.sty.js +2 -2
- package/charts/core/components/chart-grid/ChartGrid.css +3 -3
- package/charts/core/components/chart-grid/ChartGrid.sty.js +3 -3
- package/charts/core/components/chart-layout/components/styles.css +15 -15
- package/charts/core/components/chart-layout/components/styles.sty.js +4 -4
- package/charts/core/components/chart-layout/slots/Graph.js +1 -1
- package/charts/core/components/chart-layout/slots/Legend.js +1 -1
- package/charts/core/components/chart-layout/utils/get-chart-layout-settings.js +1 -1
- package/charts/core/components/chart-states/ChartState.css +4 -4
- package/charts/core/components/chart-states/ChartState.sty.js +4 -4
- package/charts/core/components/crosshair/VerticalCrosshair.d.ts +3 -1
- package/charts/core/components/crosshair/VerticalCrosshair.js +2 -1
- package/charts/core/components/crosshair/components/Magnifier.css +7 -7
- package/charts/core/components/crosshair/components/Magnifier.sty.js +7 -7
- package/charts/core/components/crosshair/components/TopMagnifier.js +2 -2
- package/charts/core/components/interactions-overlay/InteractionsOverlay.css +5 -5
- package/charts/core/components/interactions-overlay/InteractionsOverlay.js +2 -0
- package/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js +2 -2
- package/charts/core/components/interactions-overlay/interactions/explore/keyboardInteractions.d.ts +2 -1
- package/charts/core/components/interactions-overlay/interactions/explore/keyboardInteractions.js +4 -1
- package/charts/core/components/interactions-overlay/interactions/pan/keyboardInteractions.d.ts +2 -1
- package/charts/core/components/interactions-overlay/interactions/pan/keyboardInteractions.js +4 -1
- package/charts/core/components/interactions-overlay/interactions/zoom/keyboardInteractions.d.ts +2 -1
- package/charts/core/components/interactions-overlay/interactions/zoom/keyboardInteractions.js +4 -1
- package/charts/core/components/interactions-overlay/types.d.ts +1 -0
- package/charts/core/components/interactions-overlay/utils/get-explore-interations.d.ts +1 -1
- package/charts/core/components/interactions-overlay/utils/get-explore-interations.js +2 -0
- package/charts/core/components/interactions-overlay/utils/get-pan-interactions.d.ts +1 -1
- package/charts/core/components/interactions-overlay/utils/get-pan-interactions.js +2 -0
- package/charts/core/components/interactions-overlay/utils/get-zoom-interactions.d.ts +1 -1
- package/charts/core/components/interactions-overlay/utils/get-zoom-interactions.js +2 -0
- package/charts/core/components/interactions-overlay/utils/handle-keydown.d.ts +2 -1
- package/charts/core/components/interactions-overlay/utils/handle-keydown.js +7 -2
- package/charts/core/components/legend/categorical/ChartLegend.css +1 -1
- package/charts/core/components/legend/categorical/ChartLegend.sty.js +1 -1
- package/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.css +5 -4
- package/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.js +1 -0
- package/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js +3 -3
- package/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.css +20 -18
- package/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js +6 -6
- package/charts/core/components/legend/categorical/components/ChartLegendItemLabel/ChartLegendItemLabel.js +1 -1
- package/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.css +3 -3
- package/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.sty.js +1 -1
- package/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.css +8 -8
- package/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.sty.js +4 -4
- package/charts/core/components/legend/categorical/constants.js +1 -1
- package/charts/core/components/legend/categorical/hooks/useLegendInteractions.js +5 -1
- package/charts/core/components/legend/range/RangeLegend.css +3 -3
- package/charts/core/components/legend/range/RangeLegend.sty.js +1 -1
- package/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.css +2 -2
- package/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.sty.js +1 -1
- package/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.css +1 -1
- package/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.sty.js +1 -1
- package/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.css +3 -3
- package/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.sty.js +1 -1
- package/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.css +3 -3
- package/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.sty.js +1 -1
- package/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.css +5 -5
- package/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.sty.js +1 -1
- package/charts/core/components/legend/range/utils/get-min-max-values.js +2 -2
- package/charts/core/components/loader-overlay/LoaderOverlay.css +2 -2
- package/charts/core/components/loader-overlay/LoaderOverlay.sty.js +2 -2
- package/charts/core/components/overlay-tooltip/OverlayTooltip.js +5 -2
- package/charts/core/components/overlay-tooltip/components/DynamicTooltip.js +6 -5
- package/charts/core/components/overlay-tooltip/components/DynamicTooltipRenderer.js +4 -1
- package/charts/core/components/overlay-tooltip/components/SeriesActionsMenuContent.d.ts +14 -0
- package/charts/core/components/overlay-tooltip/components/SeriesActionsMenuContent.js +93 -0
- package/charts/core/components/overlay-tooltip/components/TooltipPortal.d.ts +1 -0
- package/charts/core/components/overlay-tooltip/components/TooltipPortal.js +89 -18
- package/charts/core/components/overlay-tooltip/components/global-actions/actions.css +4 -4
- package/charts/core/components/overlay-tooltip/components/global-actions/actions.sty.js +2 -2
- package/charts/core/components/overlay-tooltip/components/header/Header.css +14 -6
- package/charts/core/components/overlay-tooltip/components/header/Header.css.d.ts +1 -1
- package/charts/core/components/overlay-tooltip/components/header/Header.js +13 -9
- package/charts/core/components/overlay-tooltip/components/header/Header.sty.js +7 -7
- package/charts/core/components/overlay-tooltip/components/header/utils/get-shown-header-text.js +9 -5
- package/charts/core/components/overlay-tooltip/components/series/SeriesItem.js +27 -22
- package/charts/core/components/overlay-tooltip/components/series/seriesSymbol.css +2 -2
- package/charts/core/components/overlay-tooltip/components/series/seriesSymbol.sty.js +2 -2
- package/charts/core/components/overlay-tooltip/contexts/ActiveSeriesMenuContext.d.ts +21 -0
- package/charts/core/components/overlay-tooltip/contexts/ActiveSeriesMenuContext.js +42 -0
- package/charts/core/components/overlay-tooltip/hooks/useSvgAriaDescribedBy.d.ts +4 -0
- package/charts/core/components/overlay-tooltip/hooks/useSvgAriaDescribedBy.js +54 -0
- package/charts/core/components/overlay-tooltip/tooltip.css +52 -52
- package/charts/core/components/overlay-tooltip/tooltip.sty.js +39 -39
- package/charts/core/components/overlay-tooltip/utils/text-truncation-header.d.ts +10 -0
- package/charts/core/components/overlay-tooltip/utils/text-truncation-header.js +99 -1
- package/charts/core/components/overlays/ChartOverlaysBorder.css +6 -6
- package/charts/core/components/overlays/ChartOverlaysBorder.sty.js +6 -6
- package/charts/core/components/selection-area/SelectionArea.css +9 -9
- package/charts/core/components/selection-area/SelectionArea.sty.js +4 -4
- package/charts/core/components/selection-area/tooltip/CustomActions.d.ts +2 -2
- package/charts/core/components/selection-area/tooltip/CustomActions.js +4 -4
- package/charts/core/components/series-action/ChartSeriesAction.js +1 -1
- package/charts/core/components/shape/BubbleShape/BubbleShape.css +5 -5
- package/charts/core/components/shape/BubbleShape/BubbleShape.sty.js +3 -3
- package/charts/core/components/shape/EmojiShape/EmojiShape.css +3 -3
- package/charts/core/components/shape/EmojiShape/EmojiShape.sty.js +1 -1
- package/charts/core/components/shape/IconShape/IconShape.css +3 -3
- package/charts/core/components/shape/IconShape/IconShape.sty.js +1 -1
- package/charts/core/components/shape/styles/DataPointShape.css +8 -8
- package/charts/core/components/shape/styles/DataPointShape.sty.js +4 -4
- package/charts/core/components/shared-chart-interactions/SharedChartInteractions.css +1 -1
- package/charts/core/components/shared-chart-interactions/SharedChartInteractions.sty.js +1 -1
- package/charts/core/components/single-value-renderer/SingleValueRenderer.css +5 -5
- package/charts/core/components/single-value-renderer/SingleValueRenderer.sty.js +5 -5
- package/charts/core/components/single-value-renderer/components/ContentGrid.css +1 -1
- package/charts/core/components/single-value-renderer/components/ContentGrid.sty.js +1 -1
- package/charts/core/components/single-value-renderer/components/Icon.css +3 -3
- package/charts/core/components/single-value-renderer/components/Icon.sty.js +2 -2
- package/charts/core/components/single-value-renderer/components/Label.css +1 -1
- package/charts/core/components/single-value-renderer/components/Label.sty.js +1 -1
- package/charts/core/components/single-value-renderer/components/SingleValueToolbar.css +1 -1
- package/charts/core/components/single-value-renderer/components/SingleValueToolbar.sty.js +1 -1
- package/charts/core/components/single-value-renderer/components/Value.css +5 -5
- package/charts/core/components/single-value-renderer/components/Value.sty.js +3 -3
- package/charts/core/components/single-value-renderer/components/trend/Trend.css +3 -3
- package/charts/core/components/single-value-renderer/components/trend/Trend.sty.js +3 -3
- package/charts/core/components/single-value-renderer/components/trend/components/Icon.css +2 -2
- package/charts/core/components/single-value-renderer/components/trend/components/Icon.sty.js +1 -1
- package/charts/core/components/single-value-renderer/components/trend/utils/define-trend-colors.js +2 -2
- package/charts/core/components/sparkline-display/Sparkline.css +6 -6
- package/charts/core/components/sparkline-display/Sparkline.sty.js +2 -2
- package/charts/core/components/sparkline-display/SparklineRenderer.js +40 -32
- package/charts/core/components/text-ellipsis/ChartTextEllipsis.css +7 -7
- package/charts/core/components/text-ellipsis/ChartTextEllipsis.sty.js +3 -3
- package/charts/core/components/text-ellipsis/truncate-string.d.ts +19 -0
- package/charts/core/components/text-ellipsis/truncate-string.js +105 -9
- package/charts/core/components/threshold-bar/styles.css +11 -11
- package/charts/core/components/threshold-bar/styles.sty.js +2 -2
- package/charts/core/components/toolbar/ChartToolbarRenderer.css +16 -16
- package/charts/core/components/toolbar/ChartToolbarRenderer.js +2 -2
- package/charts/core/components/toolbar/ChartToolbarRenderer.sty.js +8 -8
- package/charts/core/components/toolbar/components/ChartDataMenu.css +2 -2
- package/charts/core/components/toolbar/components/ChartDataMenu.sty.js +1 -1
- package/charts/core/components/toolbar/components/Control.css +17 -17
- package/charts/core/components/toolbar/components/Control.sty.js +5 -5
- package/charts/core/components/toolbar/components/ToolbarMenu.css +4 -4
- package/charts/core/components/toolbar/components/ToolbarMenu.sty.js +2 -2
- package/charts/core/components/toolbar/styles.css +1 -1
- package/charts/core/components/toolbar/styles.sty.js +1 -1
- package/charts/core/components/tooltip/ChartTooltip/ChartTooltip.css +6 -6
- package/charts/core/components/tooltip/ChartTooltip/ChartTooltip.sty.js +2 -2
- package/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.css +8 -8
- package/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.sty.js +3 -3
- package/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.css +2 -2
- package/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.sty.js +1 -1
- package/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.css +1 -1
- package/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.sty.js +1 -1
- package/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.css +6 -6
- package/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.sty.js +2 -2
- package/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.css +7 -7
- package/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.sty.js +6 -6
- package/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.css +1 -1
- package/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.sty.js +1 -1
- package/charts/core/components/tooltip/InteractiveChartTooltip/slots/Actions.js +1 -1
- package/charts/core/components/tooltip/InteractiveChartTooltip/slots/Body.js +1 -1
- package/charts/core/components/tooltip/InteractiveChartTooltip/slots/Header.js +1 -1
- package/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.css +1 -1
- package/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.sty.js +1 -1
- package/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.css +2 -2
- package/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.sty.js +1 -1
- package/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.css +1 -1
- package/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.sty.js +1 -1
- package/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.css +3 -3
- package/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.sty.js +2 -2
- package/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.css +1 -1
- package/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.sty.js +1 -1
- package/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.css +2 -2
- package/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.sty.js +2 -2
- package/charts/core/components/tooltip/shared/styles/SeriesBasedContent.css +12 -12
- package/charts/core/components/tooltip/shared/styles/SeriesBasedContent.sty.js +7 -7
- package/charts/core/components/tooltip/shared/styles/TooltipBody.css +1 -1
- package/charts/core/components/tooltip/shared/styles/TooltipBody.sty.js +1 -1
- package/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.css +1 -1
- package/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.sty.js +1 -1
- package/charts/core/components/tooltip-atoms/components/styles.css +4 -4
- package/charts/core/components/tooltip-atoms/components/styles.sty.js +4 -4
- package/charts/core/components/zoom/ZoomCursors.css +2 -2
- package/charts/core/components/zoom/ZoomCursors.sty.js +3 -3
- package/charts/core/hooks/usePointerAndScrollResponsiveChartBounds.js +2 -2
- package/charts/core/hooks/useScrollResponsiveChartBounds.js +1 -1
- package/charts/core/hooks/useThrottledCallbackOnScroll.js +1 -1
- package/charts/core/slots/chart-states/EmptyStateSlot.js +4 -1
- package/charts/core/slots/chart-states/ErrorStateSlot.js +4 -1
- package/charts/core/slots/toolbar/ChartToolbar.js +2 -2
- package/charts/core/typographyStyles.css +1 -1
- package/charts/core/typographyStyles.sty.js +1 -1
- package/charts/core/utils/build-rgba-color-with-opacity.js +1 -1
- package/charts/flame/flame-chart/FlameChart.d.ts +7 -3
- package/charts/flame/flame-chart/FlameChart.js +24 -31
- package/charts/flame/flame-chart/components/tooltip/DefaultTooltip.d.ts +17 -0
- package/charts/flame/flame-chart/components/tooltip/DefaultTooltip.js +65 -0
- package/charts/flame/flame-chart/components/tooltip/messages.d.ts +8 -0
- package/charts/flame/flame-chart/components/tooltip/messages.js +30 -0
- package/charts/flame/flame-chart/utils/iterate-slots.d.ts +1 -4
- package/charts/flame/flame-chart/utils/iterate-slots.js +2 -14
- package/charts/flame/flame-graph/FlameGraph.d.ts +7 -3
- package/charts/flame/flame-graph/FlameGraph.js +34 -43
- package/charts/flame/flame-graph/components/tooltip/DefaultTooltip.d.ts +19 -0
- package/charts/flame/flame-graph/components/tooltip/DefaultTooltip.js +78 -0
- package/charts/flame/flame-graph/components/tooltip/messages.d.ts +8 -0
- package/charts/flame/flame-graph/components/tooltip/messages.js +30 -0
- package/charts/flame/flame-graph/utils/iterate-slots.d.ts +1 -4
- package/charts/flame/flame-graph/utils/iterate-slots.js +2 -17
- package/charts/flame/shared/components/tooltip/FlameTooltip.d.ts +11 -13
- package/charts/flame/shared/components/tooltip/FlameTooltip.js +72 -29
- package/charts/flame/shared/components/tooltip/messages.d.ts +28 -0
- package/charts/flame/shared/components/tooltip/messages.js +50 -0
- package/charts/flame/shared/slots/Tooltip.d.ts +11 -3
- package/charts/flame/shared/types/flame-chart.d.ts +14 -0
- package/charts/flame/shared/types/flame-internal.d.ts +16 -1
- package/charts/flame/shared/utils/build-tooltip-base-data.d.ts +25 -0
- package/charts/flame/shared/utils/build-tooltip-base-data.js +55 -0
- package/charts/flame/shared/utils/make-iterate-slots.d.ts +8 -0
- package/charts/flame/shared/utils/make-iterate-slots.js +39 -0
- package/charts/flame/shared/utils/order-spans-hierarchically.js +6 -1
- package/charts/flame/shared/utils/resolve-flame-tooltip-content.d.ts +6 -0
- package/charts/flame/shared/utils/resolve-flame-tooltip-content.js +44 -0
- package/charts/gantt-chart/GanttChartLine.css +1 -1
- package/charts/gantt-chart/GanttChartLine.sty.js +1 -1
- package/charts/gantt-chart/components/GanttChartLineRenderer.css +1 -1
- package/charts/gantt-chart/components/GanttChartLineRenderer.sty.js +1 -1
- package/charts/gantt-chart/components/tooltip/GanttChartTooltip.css +1 -1
- package/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.js +1 -1
- package/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.css +1 -1
- package/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.sty.js +1 -1
- package/charts/gauge/components/GaugeLabel/GaugeLabel.css +6 -6
- package/charts/gauge/components/GaugeLabel/GaugeLabel.sty.js +3 -3
- package/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.css +3 -3
- package/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.sty.js +1 -1
- package/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.css +4 -4
- package/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.sty.js +3 -3
- package/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.css +2 -2
- package/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.js +1 -1
- package/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js +2 -2
- package/charts/gauge/components/GaugeRootSVG.js +1 -0
- package/charts/gauge/utils/apply-threshold-default.js +1 -1
- package/charts/histogram/HistogramChartRoot.js +1 -1
- package/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.css +1 -1
- package/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.sty.js +1 -1
- package/charts/histogram/components/overlays/HistogramExplore/HistogramCrosshair.js +1 -1
- package/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.css +1 -1
- package/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.js +2 -2
- package/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.sty.js +1 -1
- package/charts/histogram/components/overlays/HistogramOverlays.css +2 -2
- package/charts/histogram/components/overlays/HistogramOverlays.sty.js +2 -2
- package/charts/histogram/hooks/useSetClosestBins.js +1 -1
- package/charts/histogram/providers/HistogramDataProvider.js +1 -1
- package/charts/histogram/providers/HistogramStateSyncProvider.d.ts +2 -2
- package/charts/histogram/providers/HistogramStateSyncProvider.js +1 -2
- package/charts/histogram/providers/StoreProvider.js +2 -2
- package/charts/histogram/utils/iterate-slots.js +1 -2
- package/charts/honeycomb/HoneycombChart.css +1 -1
- package/charts/honeycomb/HoneycombChart.sty.js +1 -1
- package/charts/honeycomb/components/HiveOverlay.css +1 -1
- package/charts/honeycomb/components/HiveOverlay.sty.js +1 -1
- package/charts/honeycomb/components/canvas/HiveCanvasLayout.css +1 -1
- package/charts/honeycomb/components/canvas/HiveCanvasLayout.sty.js +1 -1
- package/charts/honeycomb/utils/build-honeycomb-config.js +2 -2
- package/charts/index.d.ts +1 -1
- package/charts/meter-bar/multi-meter-bar/providers/StoreProvider.js +10 -1
- package/charts/meter-bar/multi-meter-bar/slots/Label.js +1 -1
- package/charts/meter-bar/multi-meter-bar/slots/Max.js +1 -1
- package/charts/meter-bar/multi-meter-bar/slots/Min.js +1 -1
- package/charts/meter-bar/multi-meter-bar/slots/Value.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css +16 -16
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js +11 -11
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Chart.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.css +2 -2
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.sty.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.css +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.sty.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Legend.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.css +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.sty.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.css +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.sty.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.css +1 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.sty.js +1 -1
- package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.css +1 -1
- package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js +1 -0
- package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.sty.js +1 -1
- package/charts/meter-bar/shared/styles/element-size.css +4 -4
- package/charts/meter-bar/shared/styles/element-size.sty.js +1 -1
- package/charts/meter-bar/shared/styles.css +1 -1
- package/charts/meter-bar/shared/styles.sty.js +1 -1
- package/charts/meter-bar/single-meter-bar/MeterBarChart.js +1 -1
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css +1 -1
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js +1 -1
- package/charts/meter-bar/single-meter-bar/slots/Label.js +1 -1
- package/charts/meter-bar/single-meter-bar/slots/Max.js +1 -1
- package/charts/meter-bar/single-meter-bar/slots/Min.js +1 -1
- package/charts/meter-bar/single-meter-bar/slots/Value.js +1 -1
- package/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js +1 -1
- package/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js +1 -1
- package/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.css +1 -1
- package/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.sty.js +1 -1
- package/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.css +1 -1
- package/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.sty.js +1 -1
- package/charts/pie/components/PieChartInternal.js +1 -1
- package/charts/pie/components/PieChartOverlays/PieChartOverlays.css +1 -1
- package/charts/pie/components/PieChartOverlays/PieChartOverlays.sty.js +1 -1
- package/charts/pie/components/PieChartPlot/PieChartPlot.css +1 -1
- package/charts/pie/components/PieChartPlot/PieChartPlot.js +49 -40
- package/charts/pie/components/PieChartPlot/PieChartPlot.sty.js +1 -1
- package/charts/pie/providers/PieChartSlicesDataProvider.js +5 -1
- package/charts/pie/providers/StoreProvider.js +1 -1
- package/charts/sankey-chart/SankeyChart.css +3 -3
- package/charts/sankey-chart/SankeyChart.sty.js +3 -3
- package/charts/sankey-chart/SankeyChartRoot.js +5 -2
- package/charts/sankey-chart/components/SankeyCanvas.css +7 -1
- package/charts/sankey-chart/components/SankeyCanvas.css.d.ts +1 -0
- package/charts/sankey-chart/components/SankeyCanvas.js +46 -3
- package/charts/sankey-chart/components/SankeyCanvas.sty.js +4 -2
- package/charts/sankey-chart/components/SankeyGraphArea.js +4 -49
- package/charts/sankey-chart/components/SankeyGraphAreaContent.d.ts +15 -0
- package/charts/sankey-chart/components/SankeyGraphAreaContent.js +80 -0
- package/charts/sankey-chart/components/SankeyLabelOverlay.css +13 -9
- package/charts/sankey-chart/components/SankeyLabelOverlay.css.d.ts +1 -0
- package/charts/sankey-chart/components/SankeyLabelOverlay.js +38 -59
- package/charts/sankey-chart/components/SankeyLabelOverlay.sty.js +10 -8
- package/charts/sankey-chart/components/SankeyNodeLabel.d.ts +17 -0
- package/charts/sankey-chart/components/SankeyNodeLabel.js +65 -0
- package/charts/sankey-chart/components/SankeyOverlay.css +1 -1
- package/charts/sankey-chart/components/SankeyOverlay.js +1 -3
- package/charts/sankey-chart/components/SankeyOverlay.sty.js +1 -1
- package/charts/sankey-chart/constants.d.ts +6 -5
- package/charts/sankey-chart/constants.js +12 -7
- package/charts/sankey-chart/context/SankeyFormatter.context.d.ts +2 -0
- package/charts/sankey-chart/context/SankeyFormatter.context.js +26 -0
- package/charts/sankey-chart/context/SankeyHighlight.context.d.ts +13 -0
- package/charts/sankey-chart/context/SankeyHighlight.context.js +25 -0
- package/charts/sankey-chart/context/SankeyStore.context.d.ts +4 -0
- package/charts/sankey-chart/context/{SankeyHoverStore.context.js → SankeyStore.context.js} +7 -7
- package/charts/sankey-chart/hooks/use-draw-sankey.d.ts +2 -1
- package/charts/sankey-chart/hooks/use-draw-sankey.js +31 -6
- package/charts/sankey-chart/hooks/use-sankey-formatter.d.ts +5 -0
- package/charts/sankey-chart/hooks/use-sankey-formatter.js +27 -0
- package/charts/sankey-chart/hooks/use-sankey-overlay-events.d.ts +4 -3
- package/charts/sankey-chart/hooks/use-sankey-overlay-events.js +28 -14
- package/charts/sankey-chart/providers/SankeyFormatterProvider.d.ts +17 -0
- package/charts/sankey-chart/providers/SankeyFormatterProvider.js +34 -0
- package/charts/sankey-chart/providers/{SankeyHoverStoreProvider.d.ts → SankeyStoreProvider.d.ts} +2 -2
- package/charts/sankey-chart/providers/{SankeyHoverStoreProvider.js → SankeyStoreProvider.js} +9 -9
- package/charts/sankey-chart/store/selectors.d.ts +14 -7
- package/charts/sankey-chart/store/selectors.js +11 -5
- package/charts/sankey-chart/store/store.d.ts +5 -2
- package/charts/sankey-chart/store/store.js +29 -7
- package/charts/sankey-chart/types/sankey-props.d.ts +11 -0
- package/charts/sankey-chart/types/sankey-shape.d.ts +22 -0
- package/charts/sankey-chart/types/{sankey-hover.js → sankey-shape.js} +2 -2
- package/charts/sankey-chart/types/sankey-state.d.ts +12 -0
- package/charts/sankey-chart/types/sankey-state.js +15 -0
- package/charts/sankey-chart/utils/find-connected-shapes.d.ts +35 -0
- package/charts/sankey-chart/utils/find-connected-shapes.js +44 -0
- package/charts/sankey-chart/utils/find-hovered-shape.d.ts +2 -2
- package/charts/sankey-chart/utils/find-hovered-shape.js +4 -11
- package/charts/sankey-chart/utils/generate-sankey-layout.js +10 -1
- package/charts/sankey-chart/utils/get-active-connected-set.d.ts +27 -0
- package/charts/sankey-chart/utils/get-active-connected-set.js +77 -0
- package/charts/sankey-chart/utils/is-same-sankey-shape.d.ts +3 -0
- package/charts/sankey-chart/utils/is-same-sankey-shape.js +37 -0
- package/charts/sankey-chart/utils/layout-index.d.ts +38 -0
- package/charts/sankey-chart/utils/layout-index.js +84 -0
- package/charts/sankey-chart/vendor/d3-sankey/sankey.js +20 -2
- package/charts/single-value/SingleValue.css +1 -1
- package/charts/single-value/SingleValue.sty.js +1 -1
- package/charts/single-value-grid/SingleValueGrid.css +2 -2
- package/charts/single-value-grid/SingleValueGrid.sty.js +1 -1
- package/charts/single-value-grid/components/GlobalFontSizeVariables.css +1 -1
- package/charts/single-value-grid/components/GlobalFontSizeVariables.sty.js +1 -1
- package/charts/single-value-grid/utils/build-props-from-grid.js +17 -14
- package/charts/timeseries/TimeseriesChart.d.ts +1 -0
- package/charts/timeseries/TimeseriesChart.js +2 -0
- package/charts/timeseries/TimeseriesChartInternal.js +0 -3
- package/charts/timeseries/TimeseriesChartRoot.js +2 -1
- package/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.css +2 -2
- package/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js +1 -1
- package/charts/timeseries/components/overlays/TimeseriesOverlays.css +4 -4
- package/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js +4 -4
- package/charts/timeseries/components/overlays/TimeseriesSelection/utils/get-selected-datapoints.js +2 -2
- package/charts/timeseries/components/overlays/utils/tooltip/timeseries-tooltip.js +2 -2
- package/charts/timeseries/components/thresholds/ThresholdIndicators.css +2 -2
- package/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js +2 -2
- package/charts/timeseries/providers/StoreProvider.js +2 -3
- package/charts/timeseries/providers/TimeseriesDataProvider.js +1 -1
- package/charts/timeseries/slots/shapes/Area.d.ts +4 -1
- package/charts/timeseries/slots/shapes/Line.d.ts +4 -1
- package/charts/timeseries/types/timeseries-band.d.ts +8 -1
- package/charts/timeseries/types/timeseries-props.d.ts +4 -1
- package/charts/timeseries/types/timeseries.d.ts +4 -1
- package/charts/top-list/TopList.css +1 -1
- package/charts/top-list/TopList.sty.js +1 -1
- package/charts/tree-map/components/TreeMapChartLayout.js +1 -1
- package/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.css +1 -1
- package/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.sty.js +1 -1
- package/charts/tree-map/providers/StoreProvider.js +1 -1
- package/charts/tree-map/providers/TreeMapChartProviders.js +1 -2
- package/charts/xy-chart/XYChartRoot.js +2 -2
- package/charts/xy-chart/components/axes/AxisArea.css +1 -1
- package/charts/xy-chart/components/axes/AxisArea.sty.js +1 -1
- package/charts/xy-chart/components/axes/AxisTickWithTruncation.css +3 -3
- package/charts/xy-chart/components/axes/AxisTickWithTruncation.sty.js +3 -3
- package/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.css +2 -2
- package/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js +2 -2
- package/charts/xy-chart/components/displays/RectLabelOverlay.css +3 -3
- package/charts/xy-chart/components/displays/RectLabelOverlay.sty.js +3 -3
- package/charts/xy-chart/components/displays/rect-accessors.js +1 -1
- package/charts/xy-chart/components/legend/XYLegend/XYLegend.js +1 -1
- package/charts/xy-chart/components/legend/XYLegend/xy-legend.css +1 -1
- package/charts/xy-chart/components/legend/XYLegend/xy-legend.sty.js +1 -1
- package/charts/xy-chart/components/overlay/XYChartOverlay.js +1 -3
- package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.css +1 -1
- package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js +31 -11
- package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.sty.js +1 -1
- package/charts/xy-chart/components/overlay/explore/XYChartExplore.css +2 -2
- package/charts/xy-chart/components/overlay/explore/XYChartExplore.sty.js +2 -2
- package/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.css +1 -1
- package/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.sty.js +1 -1
- package/charts/xy-chart/components/tooltip/XYChartTooltipContent.js +9 -1
- package/charts/xy-chart/components/tooltip/utils/tooltip-styles.css +5 -5
- package/charts/xy-chart/components/tooltip/utils/tooltip-styles.sty.js +4 -4
- package/charts/xy-chart/layout/XYChartLayout.css +2 -2
- package/charts/xy-chart/layout/XYChartLayout.sty.js +2 -2
- package/charts/xy-chart/processing-strategies/strategies/dot-series.js +1 -1
- package/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js +5 -2
- package/charts/xy-chart/providers/XYChartStoreProvider.js +2 -2
- package/charts/xy-chart/utils/query-closest-quadtree.js +3 -0
- package/charts/xy-chart/utils/query-hovered-grid.d.ts +2 -2
- package/charts/xy-chart/utils/query-hovered-grid.js +8 -2
- package/charts/xy-chart/utils/query-shared.js +9 -0
- package/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js +19 -6
- package/charts/xy-chart-adoption/categorical-bar/constants.d.ts +1 -0
- package/charts/xy-chart-adoption/categorical-bar/constants.js +3 -1
- package/charts/xy-chart-adoption/categorical-bar/iterate-slots.d.ts +2 -0
- package/charts/xy-chart-adoption/categorical-bar/iterate-slots.js +6 -1
- package/charts/xy-chart-adoption/categorical-bar/utils/map-threshold-to-xy.d.ts +4 -0
- package/charts/xy-chart-adoption/categorical-bar/utils/map-threshold-to-xy.js +54 -0
- package/content/accordion/Accordion.css +14 -14
- package/content/accordion/Accordion.sty.js +8 -8
- package/content/ai-loading-indicator/AiLoadingIndicator.css +12 -12
- package/content/ai-loading-indicator/AiLoadingIndicator.sty.js +4 -4
- package/content/ai-response/AiResponse.css +5 -5
- package/content/ai-response/AiResponse.sty.js +2 -2
- package/content/avatar/Avatar.css +13 -13
- package/content/avatar/Avatar.sty.js +4 -4
- package/content/avatar-group/AvatarGroup.css +3 -3
- package/content/avatar-group/AvatarGroup.sty.js +2 -2
- package/content/chip/BaseChip.css +82 -41
- package/content/chip/BaseChip.css.d.ts +59 -3
- package/content/chip/BaseChip.js +1 -2
- package/content/chip/BaseChip.sty.js +6 -6
- package/content/chip/ChipContent.css +11 -11
- package/content/chip/ChipContent.sty.js +2 -2
- package/content/chip/ChipDeleteButton.css +33 -19
- package/content/chip/ChipDeleteButton.css.d.ts +5 -0
- package/content/chip/ChipDeleteButton.js +3 -5
- package/content/chip/ChipDeleteButton.sty.js +7 -4
- package/content/chip/ChipKey.css +6 -6
- package/content/chip/ChipKey.sty.js +1 -1
- package/content/chip/GroupedChip.css +71 -3
- package/content/chip/GroupedChip.css.d.ts +1 -0
- package/content/chip/GroupedChip.js +26 -5
- package/content/chip/GroupedChip.sty.js +7 -4
- package/content/chip/hooks/usePendingFocusAnnouncement.d.ts +15 -0
- package/content/chip/hooks/usePendingFocusAnnouncement.js +70 -0
- package/content/chip/messages.d.ts +8 -0
- package/content/chip/messages.js +30 -0
- package/content/chip-group/ChipGroup.css +4 -4
- package/content/chip-group/ChipGroup.js +4 -1
- package/content/chip-group/ChipGroup.sty.js +1 -1
- package/content/chip-group/Control.css +4 -4
- package/content/chip-group/Control.js +15 -1
- package/content/chip-group/Control.sty.js +1 -1
- package/content/chip-group/contexts/InternalChipGroupContext.d.ts +12 -0
- package/content/code-snippet/CodeHighlight.css +25 -25
- package/content/code-snippet/CodeHighlight.sty.js +6 -6
- package/content/code-snippet/CodeSnippet.css +18 -18
- package/content/code-snippet/CodeSnippet.js +1 -1
- package/content/code-snippet/CodeSnippet.sty.js +4 -4
- package/content/code-snippet/HighlightExtended.js +3 -6
- package/content/empty-state/EmptyState.css +28 -28
- package/content/empty-state/EmptyState.sty.js +7 -7
- package/content/empty-state/slot-components/Footer.css +1 -1
- package/content/empty-state/slot-components/Footer.sty.js +1 -1
- package/content/empty-state/slot-components/Visual.css +3 -3
- package/content/empty-state/slot-components/Visual.sty.js +1 -1
- package/content/expandable-text/ExpandableText.css +7 -7
- package/content/expandable-text/ExpandableText.sty.js +2 -2
- package/content/feature-highlight/FeatureHighlight.css +12 -12
- package/content/feature-highlight/FeatureHighlight.sty.js +3 -3
- package/content/health-indicator/styles.css +23 -23
- package/content/health-indicator/styles.sty.js +1 -1
- package/content/information-overlay/InformationOverlay.css +25 -25
- package/content/information-overlay/InformationOverlay.sty.js +5 -5
- package/content/keyboard-shortcut/KeyboardShortcut.css +14 -14
- package/content/keyboard-shortcut/KeyboardShortcut.sty.js +2 -2
- package/content/markdown/Markdown.css +6 -3
- package/content/markdown/Markdown.css.d.ts +2 -1
- package/content/markdown/Markdown.js +11 -7
- package/content/markdown/Markdown.sty.js +4 -2
- package/content/markdown/remark-frontmatter-to-table.d.ts +14 -0
- package/content/markdown/remark-frontmatter-to-table.js +80 -0
- package/content/markdown/transformers/table-mapping.js +1 -1
- package/content/markdown/transformers/typography-mapping.css +9 -9
- package/content/markdown/transformers/typography-mapping.sty.js +6 -6
- package/content/microguide/Microguide.css +11 -11
- package/content/microguide/Microguide.sty.js +7 -7
- package/content/progress/ProgressBar.css +71 -71
- package/content/progress/ProgressBar.sty.js +5 -5
- package/content/progress/ProgressBarIcon.css +2 -2
- package/content/progress/ProgressBarIcon.sty.js +1 -1
- package/content/progress/ProgressBarLabel.css +3 -3
- package/content/progress/ProgressBarLabel.sty.js +1 -1
- package/content/progress/ProgressBarValue.css +5 -5
- package/content/progress/ProgressBarValue.sty.js +1 -1
- package/content/progress/ProgressCircle.css +48 -40
- package/content/progress/ProgressCircle.css.d.ts +25 -5
- package/content/progress/ProgressCircle.js +9 -11
- package/content/progress/ProgressCircle.sty.js +12 -10
- package/content/shared-components/Visual.css +3 -3
- package/content/shared-components/Visual.sty.js +1 -1
- package/content/skeleton/Skeleton.css +7 -7
- package/content/skeleton/Skeleton.sty.js +5 -5
- package/content/terminology-overlay/TerminologyOverlay.css +4 -4
- package/content/terminology-overlay/TerminologyOverlay.sty.js +1 -1
- package/core/components/app-root/AppRoot.css +1031 -924
- package/core/components/app-root/AppRoot.sty.js +1 -1
- package/core/components/app-root/visual-refresh-overrides.d.ts +0 -10
- package/core/components/app-root/visual-refresh-overrides.js +2 -12
- package/core/components/focus-scope/FocusScope.js +38 -15
- package/core/components/time-indicator/TimeIndicator.js +4 -4
- package/core/components/visually-hidden/VisuallyHidden.css +1 -1
- package/core/components/visually-hidden/VisuallyHidden.sty.js +1 -1
- package/core/hooks/useFocusRing.js +1 -1
- package/core/hooks/useRovingFocus.js +1 -1
- package/core/hooks/useSlots.js +7 -4
- package/core/hooks/useVisualRefreshEnabled.js +1 -1
- package/core/sdk/app-state/AppStateContext.d.ts +12 -0
- package/core/sdk/app-state/AppStateContext.js +14 -1
- package/core/sdk/app-state/AppStateProvider.js +9 -2
- package/core/sdk/app-state/app-state-store.d.ts +3 -0
- package/core/sdk/app-state/app-state-store.js +4 -1
- package/core/sdk/app-state/useAppStateInternal.js +80 -12
- package/core/sdk/sdk-logger.js +2 -2
- package/core/styles/defaultChartValues.css +1 -1
- package/core/styles/defaultChartValues.sty.js +1 -1
- package/core/styles/focusRing.css +66 -66
- package/core/styles/focusRing.sty.js +2 -2
- package/core/styles/focusRingStatic.css +34 -34
- package/core/styles/focusRingStatic.css.d.ts +22 -0
- package/core/styles/focusRingStatic.sty.js +3 -1
- package/core/styles/virtualFocus.css +2 -2
- package/core/styles/virtualFocus.sty.js +1 -1
- package/core/types/a11y-props.d.ts +5 -0
- package/core/utils/colorUtils.css +60 -60
- package/core/utils/colorUtils.sty.js +2 -2
- package/core/utils/focus-management/get-first-tabbable-child.d.ts +10 -0
- package/core/utils/focus-management/get-first-tabbable-child.js +32 -0
- package/core/utils/focus-management/get-last-tabbable-child.d.ts +10 -0
- package/core/utils/focus-management/get-last-tabbable-child.js +35 -0
- package/core/utils/focus-management/is-tabbable.d.ts +18 -0
- package/core/utils/focus-management/is-tabbable.js +61 -0
- package/core/utils/isBrowser.js +1 -1
- package/editors/base-code-editor/BaseCodeEditor.css +137 -136
- package/editors/base-code-editor/BaseCodeEditor.d.ts +6 -0
- package/editors/base-code-editor/BaseCodeEditor.js +113 -8
- package/editors/base-code-editor/BaseCodeEditor.sty.js +2 -2
- package/editors/base-code-editor/baseCodeEditorMessages.d.ts +20 -0
- package/editors/base-code-editor/baseCodeEditorMessages.js +20 -0
- package/editors/base-code-editor/configuration/getDefaultConfigurations.js +1 -1
- package/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.css +40 -0
- package/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.css.d.ts +25 -0
- package/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.d.ts +20 -0
- package/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.js +131 -0
- package/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.sty.js +25 -0
- package/editors/base-code-editor/off-screen-diagnostic-indicators/off-screen-diagnostic-indicators.utils.d.ts +101 -0
- package/editors/base-code-editor/off-screen-diagnostic-indicators/off-screen-diagnostic-indicators.utils.js +122 -0
- package/editors/code-editor/CodeEditor.d.ts +10 -0
- package/editors/code-editor/CodeEditor.js +5 -3
- package/editors/dql-editor/DQLEditor.js +2 -2
- package/editors/dql-editor/actions-menu/ActionsMenu.css +10 -10
- package/editors/dql-editor/actions-menu/ActionsMenu.sty.js +5 -5
- package/editors/dql-editor/autocomplete/SuggestionsInfoSection.css +7 -7
- package/editors/dql-editor/autocomplete/SuggestionsInfoSection.sty.js +3 -3
- package/esm/buttons/button/Button.css +15 -15
- package/esm/buttons/button/Button.sty.js +4 -4
- package/esm/buttons/button/Button.sty.js.map +1 -1
- package/esm/buttons/button/utils/is-virtual-event.js.map +1 -1
- package/esm/buttons/index.js +2 -0
- package/esm/buttons/index.js.map +2 -2
- package/esm/buttons/inline-button/InlineButton.css +145 -0
- package/esm/buttons/inline-button/InlineButton.js +188 -0
- package/esm/buttons/inline-button/InlineButton.js.map +7 -0
- package/esm/buttons/inline-button/InlineButton.sty.js +22 -0
- package/esm/buttons/inline-button/InlineButton.sty.js.map +7 -0
- package/esm/buttons/inline-button/Prefix.js +33 -0
- package/esm/buttons/inline-button/Prefix.js.map +7 -0
- package/esm/buttons/inline-button/Suffix.js +33 -0
- package/esm/buttons/inline-button/Suffix.js.map +7 -0
- package/esm/buttons/intent-button/IntentButton.css +1 -1
- package/esm/buttons/intent-button/IntentButton.sty.js +1 -1
- package/esm/buttons/intent-button/IntentButton.sty.js.map +1 -1
- package/esm/buttons/notify-button/NotifyButton.css +2 -2
- package/esm/buttons/notify-button/NotifyButton.sty.js +2 -2
- package/esm/buttons/notify-button/NotifyButton.sty.js.map +1 -1
- package/esm/charts/categorical-bar/CategoricalBarChartLayout.js +1 -1
- package/esm/charts/categorical-bar/CategoricalBarChartLayout.js.map +1 -1
- package/esm/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.css +2 -2
- package/esm/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js +2 -2
- package/esm/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js.map +1 -1
- package/esm/charts/categorical-bar/components/interactions/tooltip/CategoricalBarChartTooltip.js.map +1 -1
- package/esm/charts/categorical-bar/components/interactions/tooltip/CategoricalBarChartTooltipWrapper.js.map +1 -1
- package/esm/charts/categorical-bar/providers/StoreProvider.js +1 -1
- package/esm/charts/categorical-bar/providers/StoreProvider.js.map +2 -2
- package/esm/charts/categorical-bar/types/categorical-bar-chart.js.map +1 -1
- package/esm/charts/categorical-bar/utils/iterate-slots.js.map +1 -1
- package/esm/charts/core/components/annotations/AnnotationsAtom.css +1 -1
- package/esm/charts/core/components/annotations/AnnotationsAtom.sty.js +1 -1
- package/esm/charts/core/components/annotations/AnnotationsAtom.sty.js.map +1 -1
- package/esm/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.css +1 -1
- package/esm/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.sty.js +1 -1
- package/esm/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.sty.js.map +1 -1
- package/esm/charts/core/components/annotations/components/indicators/utils/extract-unique-indicators-by-priority.js.map +1 -1
- package/esm/charts/core/components/annotations/components/overlays/AnnotationsOverlays.css +1 -1
- package/esm/charts/core/components/annotations/components/overlays/AnnotationsOverlays.sty.js +1 -1
- package/esm/charts/core/components/annotations/components/overlays/AnnotationsOverlays.sty.js.map +1 -1
- package/esm/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.css +1 -1
- package/esm/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.sty.js +1 -1
- package/esm/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.sty.js.map +1 -1
- package/esm/charts/core/components/annotations/components/tooltip/AnnotationsOverlayTooltip.js.map +1 -1
- package/esm/charts/core/components/axes/Axis.css +1 -1
- package/esm/charts/core/components/axes/Axis.js.map +2 -2
- package/esm/charts/core/components/axes/Axis.sty.js +1 -1
- package/esm/charts/core/components/axes/Axis.sty.js.map +1 -1
- package/esm/charts/core/components/axes/AxisBottom.js.map +1 -1
- package/esm/charts/core/components/axes/AxisLeft.js.map +1 -1
- package/esm/charts/core/components/axes/AxisPrimitive.js.map +1 -1
- package/esm/charts/core/components/axes/AxisRight.js.map +1 -1
- package/esm/charts/core/components/axes/AxisTop.js.map +1 -1
- package/esm/charts/core/components/axes/components/PanningControls/PanningControls.css +16 -16
- package/esm/charts/core/components/axes/components/PanningControls/PanningControls.sty.js +2 -2
- package/esm/charts/core/components/axes/components/PanningControls/PanningControls.sty.js.map +1 -1
- package/esm/charts/core/components/axes/types.js.map +2 -2
- package/esm/charts/core/components/chart-grid/ChartGrid.css +3 -3
- package/esm/charts/core/components/chart-grid/ChartGrid.sty.js +3 -3
- package/esm/charts/core/components/chart-grid/ChartGrid.sty.js.map +1 -1
- package/esm/charts/core/components/chart-layout/components/styles.css +15 -15
- package/esm/charts/core/components/chart-layout/components/styles.sty.js +4 -4
- package/esm/charts/core/components/chart-layout/components/styles.sty.js.map +1 -1
- package/esm/charts/core/components/chart-layout/slots/Graph.js +1 -1
- package/esm/charts/core/components/chart-layout/slots/Graph.js.map +2 -2
- package/esm/charts/core/components/chart-layout/slots/Legend.js +1 -1
- package/esm/charts/core/components/chart-layout/slots/Legend.js.map +2 -2
- package/esm/charts/core/components/chart-layout/utils/extract-layout-slots.js.map +1 -1
- package/esm/charts/core/components/chart-layout/utils/get-chart-layout-settings.js +1 -1
- package/esm/charts/core/components/chart-layout/utils/get-chart-layout-settings.js.map +1 -1
- package/esm/charts/core/components/chart-states/ChartState.css +4 -4
- package/esm/charts/core/components/chart-states/ChartState.sty.js +4 -4
- package/esm/charts/core/components/chart-states/ChartState.sty.js.map +1 -1
- package/esm/charts/core/components/crosshair/VerticalCrosshair.js +2 -1
- package/esm/charts/core/components/crosshair/VerticalCrosshair.js.map +2 -2
- package/esm/charts/core/components/crosshair/components/Magnifier.css +7 -7
- package/esm/charts/core/components/crosshair/components/Magnifier.sty.js +7 -7
- package/esm/charts/core/components/crosshair/components/Magnifier.sty.js.map +1 -1
- package/esm/charts/core/components/crosshair/components/TopMagnifier.js +2 -2
- package/esm/charts/core/components/crosshair/components/TopMagnifier.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.css +5 -5
- package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.js +2 -0
- package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js +2 -2
- package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js.map +1 -1
- package/esm/charts/core/components/interactions-overlay/interactions/explore/keyboardInteractions.js +4 -1
- package/esm/charts/core/components/interactions-overlay/interactions/explore/keyboardInteractions.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/interactions/pan/keyboardInteractions.js +4 -1
- package/esm/charts/core/components/interactions-overlay/interactions/pan/keyboardInteractions.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/interactions/zoom/keyboardInteractions.js +4 -1
- package/esm/charts/core/components/interactions-overlay/interactions/zoom/keyboardInteractions.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/types.js.map +1 -1
- package/esm/charts/core/components/interactions-overlay/utils/get-explore-interations.js +2 -0
- package/esm/charts/core/components/interactions-overlay/utils/get-explore-interations.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/utils/get-pan-interactions.js +2 -0
- package/esm/charts/core/components/interactions-overlay/utils/get-pan-interactions.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/utils/get-zoom-interactions.js +2 -0
- package/esm/charts/core/components/interactions-overlay/utils/get-zoom-interactions.js.map +2 -2
- package/esm/charts/core/components/interactions-overlay/utils/handle-keydown.js +7 -2
- package/esm/charts/core/components/interactions-overlay/utils/handle-keydown.js.map +2 -2
- package/esm/charts/core/components/legend/categorical/ChartLegend.css +1 -1
- package/esm/charts/core/components/legend/categorical/ChartLegend.sty.js +1 -1
- package/esm/charts/core/components/legend/categorical/ChartLegend.sty.js.map +1 -1
- package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.css +5 -4
- package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.js +1 -0
- package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.js.map +2 -2
- package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js +3 -3
- package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js.map +1 -1
- package/esm/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.css +20 -18
- package/esm/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js +6 -6
- package/esm/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js.map +1 -1
- package/esm/charts/core/components/legend/categorical/components/ChartLegendItemLabel/ChartLegendItemLabel.js +1 -1
- package/esm/charts/core/components/legend/categorical/components/ChartLegendItemLabel/ChartLegendItemLabel.js.map +2 -2
- package/esm/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.css +3 -3
- package/esm/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.sty.js +1 -1
- package/esm/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.sty.js.map +1 -1
- package/esm/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.css +8 -8
- package/esm/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.sty.js +4 -4
- package/esm/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.sty.js.map +1 -1
- package/esm/charts/core/components/legend/categorical/constants.js +1 -1
- package/esm/charts/core/components/legend/categorical/constants.js.map +1 -1
- package/esm/charts/core/components/legend/categorical/hooks/useLegendInteractions.js +6 -2
- package/esm/charts/core/components/legend/categorical/hooks/useLegendInteractions.js.map +2 -2
- package/esm/charts/core/components/legend/range/RangeLegend.css +3 -3
- package/esm/charts/core/components/legend/range/RangeLegend.sty.js +1 -1
- package/esm/charts/core/components/legend/range/RangeLegend.sty.js.map +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.css +2 -2
- package/esm/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.sty.js +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.sty.js.map +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.css +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.sty.js +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.sty.js.map +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.css +3 -3
- package/esm/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.sty.js +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.sty.js.map +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.css +3 -3
- package/esm/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.sty.js +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.sty.js.map +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.css +5 -5
- package/esm/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.sty.js +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.sty.js.map +1 -1
- package/esm/charts/core/components/legend/range/components/RangeLegendSegmentsOverlay.js.map +1 -1
- package/esm/charts/core/components/legend/range/utils/get-min-max-values.js +2 -2
- package/esm/charts/core/components/legend/range/utils/get-min-max-values.js.map +1 -1
- package/esm/charts/core/components/legend/range/utils/labels-collision.js.map +1 -1
- package/esm/charts/core/components/loader-overlay/LoaderOverlay.css +2 -2
- package/esm/charts/core/components/loader-overlay/LoaderOverlay.sty.js +2 -2
- package/esm/charts/core/components/loader-overlay/LoaderOverlay.sty.js.map +1 -1
- package/esm/charts/core/components/overlay-tooltip/OverlayTooltip.js +5 -2
- package/esm/charts/core/components/overlay-tooltip/OverlayTooltip.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/DynamicTooltip.js +6 -5
- package/esm/charts/core/components/overlay-tooltip/components/DynamicTooltip.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/DynamicTooltipRenderer.js +4 -1
- package/esm/charts/core/components/overlay-tooltip/components/DynamicTooltipRenderer.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/SeriesActionsMenuContent.js +80 -0
- package/esm/charts/core/components/overlay-tooltip/components/SeriesActionsMenuContent.js.map +7 -0
- package/esm/charts/core/components/overlay-tooltip/components/TooltipPortal.js +95 -20
- package/esm/charts/core/components/overlay-tooltip/components/TooltipPortal.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/global-actions/actions.css +4 -4
- package/esm/charts/core/components/overlay-tooltip/components/global-actions/actions.sty.js +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/global-actions/actions.sty.js.map +1 -1
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.css +14 -6
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.js +15 -11
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.sty.js +7 -7
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.sty.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/header/utils/get-shown-header-text.js +13 -6
- package/esm/charts/core/components/overlay-tooltip/components/header/utils/get-shown-header-text.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/series/SeriesItem.js +28 -23
- package/esm/charts/core/components/overlay-tooltip/components/series/SeriesItem.js.map +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/series/seriesSymbol.css +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/series/seriesSymbol.sty.js +2 -2
- package/esm/charts/core/components/overlay-tooltip/components/series/seriesSymbol.sty.js.map +1 -1
- package/esm/charts/core/components/overlay-tooltip/contexts/ActiveSeriesMenuContext.js +29 -0
- package/esm/charts/core/components/overlay-tooltip/contexts/ActiveSeriesMenuContext.js.map +7 -0
- package/esm/charts/core/components/overlay-tooltip/hooks/useSvgAriaDescribedBy.js +36 -0
- package/esm/charts/core/components/overlay-tooltip/hooks/useSvgAriaDescribedBy.js.map +7 -0
- package/esm/charts/core/components/overlay-tooltip/tooltip.css +52 -52
- package/esm/charts/core/components/overlay-tooltip/tooltip.sty.js +39 -39
- package/esm/charts/core/components/overlay-tooltip/tooltip.sty.js.map +1 -1
- package/esm/charts/core/components/overlay-tooltip/utils/text-truncation-header.js +104 -2
- package/esm/charts/core/components/overlay-tooltip/utils/text-truncation-header.js.map +2 -2
- package/esm/charts/core/components/overlays/ChartOverlaysBorder.css +6 -6
- package/esm/charts/core/components/overlays/ChartOverlaysBorder.sty.js +6 -6
- package/esm/charts/core/components/overlays/ChartOverlaysBorder.sty.js.map +1 -1
- package/esm/charts/core/components/selection-area/SelectionArea.css +9 -9
- package/esm/charts/core/components/selection-area/SelectionArea.sty.js +4 -4
- package/esm/charts/core/components/selection-area/SelectionArea.sty.js.map +1 -1
- package/esm/charts/core/components/selection-area/SelectionTooltipWithAsyncActions.js.map +1 -1
- package/esm/charts/core/components/selection-area/tooltip/CustomActions.js +5 -5
- package/esm/charts/core/components/selection-area/tooltip/CustomActions.js.map +2 -2
- package/esm/charts/core/components/series-action/ChartSeriesAction.js +1 -1
- package/esm/charts/core/components/series-action/ChartSeriesAction.js.map +2 -2
- package/esm/charts/core/components/shape/BubbleShape/BubbleShape.css +5 -5
- package/esm/charts/core/components/shape/BubbleShape/BubbleShape.sty.js +3 -3
- package/esm/charts/core/components/shape/BubbleShape/BubbleShape.sty.js.map +1 -1
- package/esm/charts/core/components/shape/EmojiShape/EmojiShape.css +3 -3
- package/esm/charts/core/components/shape/EmojiShape/EmojiShape.sty.js +1 -1
- package/esm/charts/core/components/shape/EmojiShape/EmojiShape.sty.js.map +1 -1
- package/esm/charts/core/components/shape/IconShape/IconShape.css +3 -3
- package/esm/charts/core/components/shape/IconShape/IconShape.sty.js +1 -1
- package/esm/charts/core/components/shape/IconShape/IconShape.sty.js.map +1 -1
- package/esm/charts/core/components/shape/styles/DataPointShape.css +8 -8
- package/esm/charts/core/components/shape/styles/DataPointShape.sty.js +4 -4
- package/esm/charts/core/components/shape/styles/DataPointShape.sty.js.map +1 -1
- package/esm/charts/core/components/shared-chart-interactions/SharedChartInteractions.css +1 -1
- package/esm/charts/core/components/shared-chart-interactions/SharedChartInteractions.sty.js +1 -1
- package/esm/charts/core/components/shared-chart-interactions/SharedChartInteractions.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/SingleValueRenderer.css +5 -5
- package/esm/charts/core/components/single-value-renderer/SingleValueRenderer.sty.js +5 -5
- package/esm/charts/core/components/single-value-renderer/SingleValueRenderer.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/ContentGrid.css +1 -1
- package/esm/charts/core/components/single-value-renderer/components/ContentGrid.sty.js +1 -1
- package/esm/charts/core/components/single-value-renderer/components/ContentGrid.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/Icon.css +3 -3
- package/esm/charts/core/components/single-value-renderer/components/Icon.sty.js +2 -2
- package/esm/charts/core/components/single-value-renderer/components/Icon.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/Label.css +1 -1
- package/esm/charts/core/components/single-value-renderer/components/Label.sty.js +1 -1
- package/esm/charts/core/components/single-value-renderer/components/Label.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/SingleValueToolbar.css +1 -1
- package/esm/charts/core/components/single-value-renderer/components/SingleValueToolbar.sty.js +1 -1
- package/esm/charts/core/components/single-value-renderer/components/SingleValueToolbar.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/Value.css +5 -5
- package/esm/charts/core/components/single-value-renderer/components/Value.sty.js +3 -3
- package/esm/charts/core/components/single-value-renderer/components/Value.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/trend/Trend.css +3 -3
- package/esm/charts/core/components/single-value-renderer/components/trend/Trend.sty.js +3 -3
- package/esm/charts/core/components/single-value-renderer/components/trend/Trend.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/trend/components/Icon.css +2 -2
- package/esm/charts/core/components/single-value-renderer/components/trend/components/Icon.sty.js +1 -1
- package/esm/charts/core/components/single-value-renderer/components/trend/components/Icon.sty.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/components/trend/utils/define-trend-colors.js +2 -2
- package/esm/charts/core/components/single-value-renderer/components/trend/utils/define-trend-colors.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/utils/format-value.js.map +1 -1
- package/esm/charts/core/components/single-value-renderer/utils/get-content-and-background-color.js.map +1 -1
- package/esm/charts/core/components/sparkline-display/Sparkline.css +6 -6
- package/esm/charts/core/components/sparkline-display/Sparkline.sty.js +2 -2
- package/esm/charts/core/components/sparkline-display/Sparkline.sty.js.map +1 -1
- package/esm/charts/core/components/sparkline-display/SparklineRenderer.js +40 -32
- package/esm/charts/core/components/sparkline-display/SparklineRenderer.js.map +2 -2
- package/esm/charts/core/components/text-ellipsis/ChartTextEllipsis.css +7 -7
- package/esm/charts/core/components/text-ellipsis/ChartTextEllipsis.sty.js +3 -3
- package/esm/charts/core/components/text-ellipsis/ChartTextEllipsis.sty.js.map +1 -1
- package/esm/charts/core/components/text-ellipsis/truncate-string.js +105 -9
- package/esm/charts/core/components/text-ellipsis/truncate-string.js.map +2 -2
- package/esm/charts/core/components/threshold-bar/styles.css +11 -11
- package/esm/charts/core/components/threshold-bar/styles.sty.js +2 -2
- package/esm/charts/core/components/threshold-bar/styles.sty.js.map +1 -1
- package/esm/charts/core/components/toolbar/ChartToolbarRenderer.css +16 -16
- package/esm/charts/core/components/toolbar/ChartToolbarRenderer.js +2 -2
- package/esm/charts/core/components/toolbar/ChartToolbarRenderer.js.map +1 -1
- package/esm/charts/core/components/toolbar/ChartToolbarRenderer.sty.js +8 -8
- package/esm/charts/core/components/toolbar/ChartToolbarRenderer.sty.js.map +1 -1
- package/esm/charts/core/components/toolbar/ChartToolbarVisibilityOverlay.js.map +1 -1
- package/esm/charts/core/components/toolbar/components/ChartDataMenu.css +2 -2
- package/esm/charts/core/components/toolbar/components/ChartDataMenu.sty.js +1 -1
- package/esm/charts/core/components/toolbar/components/ChartDataMenu.sty.js.map +1 -1
- package/esm/charts/core/components/toolbar/components/Control.css +17 -17
- package/esm/charts/core/components/toolbar/components/Control.sty.js +5 -5
- package/esm/charts/core/components/toolbar/components/Control.sty.js.map +1 -1
- package/esm/charts/core/components/toolbar/components/ToolbarMenu.css +4 -4
- package/esm/charts/core/components/toolbar/components/ToolbarMenu.sty.js +2 -2
- package/esm/charts/core/components/toolbar/components/ToolbarMenu.sty.js.map +1 -1
- package/esm/charts/core/components/toolbar/styles.css +1 -1
- package/esm/charts/core/components/toolbar/styles.sty.js +1 -1
- package/esm/charts/core/components/toolbar/styles.sty.js.map +1 -1
- package/esm/charts/core/components/toolbar/types.js.map +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.css +6 -6
- package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.js.map +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.sty.js +2 -2
- package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.css +8 -8
- package/esm/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.sty.js +3 -3
- package/esm/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.css +2 -2
- package/esm/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.sty.js +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.css +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.sty.js +1 -1
- package/esm/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.css +6 -6
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.sty.js +2 -2
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.css +7 -7
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.sty.js +6 -6
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltipVirtualizedSeries.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/contents/SeriesBasedContent.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.css +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.sty.js +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/slots/Actions.js +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/slots/Actions.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/slots/Body.js +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/slots/Body.js.map +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/slots/Header.js +1 -1
- package/esm/charts/core/components/tooltip/InteractiveChartTooltip/slots/Header.js.map +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.css +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.sty.js +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.css +2 -2
- package/esm/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.sty.js +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.css +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.sty.js +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.css +3 -3
- package/esm/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.sty.js +2 -2
- package/esm/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.css +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.sty.js +1 -1
- package/esm/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.css +2 -2
- package/esm/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.sty.js +2 -2
- package/esm/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/shared/styles/SeriesBasedContent.css +12 -12
- package/esm/charts/core/components/tooltip/shared/styles/SeriesBasedContent.sty.js +7 -7
- package/esm/charts/core/components/tooltip/shared/styles/SeriesBasedContent.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip/shared/styles/TooltipBody.css +1 -1
- package/esm/charts/core/components/tooltip/shared/styles/TooltipBody.sty.js +1 -1
- package/esm/charts/core/components/tooltip/shared/styles/TooltipBody.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.css +1 -1
- package/esm/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.sty.js +1 -1
- package/esm/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.sty.js.map +1 -1
- package/esm/charts/core/components/tooltip-atoms/components/styles.css +4 -4
- package/esm/charts/core/components/tooltip-atoms/components/styles.sty.js +4 -4
- package/esm/charts/core/components/tooltip-atoms/components/styles.sty.js.map +1 -1
- package/esm/charts/core/components/zoom/ZoomCursors.css +2 -2
- package/esm/charts/core/components/zoom/ZoomCursors.sty.js +3 -3
- package/esm/charts/core/components/zoom/ZoomCursors.sty.js.map +1 -1
- package/esm/charts/core/hooks/useDragElement.js.map +1 -1
- package/esm/charts/core/hooks/usePointerAndScrollResponsiveChartBounds.js +2 -2
- package/esm/charts/core/hooks/usePointerAndScrollResponsiveChartBounds.js.map +1 -1
- package/esm/charts/core/hooks/useResolveAsyncComponent.js.map +1 -1
- package/esm/charts/core/hooks/useScrollResponsiveChartBounds.js +1 -1
- package/esm/charts/core/hooks/useScrollResponsiveChartBounds.js.map +1 -1
- package/esm/charts/core/hooks/useThrottledCallbackOnScroll.js +1 -1
- package/esm/charts/core/hooks/useThrottledCallbackOnScroll.js.map +1 -1
- package/esm/charts/core/slots/chart-interactions/Pan.js.map +1 -1
- package/esm/charts/core/slots/chart-interactions/Zoom.js.map +1 -1
- package/esm/charts/core/slots/chart-interactions/ZoomX.js.map +1 -1
- package/esm/charts/core/slots/chart-states/EmptyStateSlot.js +4 -1
- package/esm/charts/core/slots/chart-states/EmptyStateSlot.js.map +2 -2
- package/esm/charts/core/slots/chart-states/ErrorStateSlot.js +4 -1
- package/esm/charts/core/slots/chart-states/ErrorStateSlot.js.map +2 -2
- package/esm/charts/core/slots/toolbar/ChartToolbar.js +2 -2
- package/esm/charts/core/slots/toolbar/ChartToolbar.js.map +2 -2
- package/esm/charts/core/slots/toolbar/DownloadData.js.map +1 -1
- package/esm/charts/core/types/tooltip.js.map +1 -1
- package/esm/charts/core/typographyStyles.css +1 -1
- package/esm/charts/core/typographyStyles.sty.js +1 -1
- package/esm/charts/core/typographyStyles.sty.js.map +1 -1
- package/esm/charts/core/utils/build-rgba-color-with-opacity.js +1 -1
- package/esm/charts/core/utils/build-rgba-color-with-opacity.js.map +1 -1
- package/esm/charts/core/utils/iterate-chart-interactions-slots.js.map +1 -1
- package/esm/charts/core/utils/prepare-inverted-color-palette.js.map +1 -1
- package/esm/charts/core/utils/text-truncation.js.map +1 -1
- package/esm/charts/flame/flame-chart/FlameChart.js +25 -32
- package/esm/charts/flame/flame-chart/FlameChart.js.map +2 -2
- package/esm/charts/flame/flame-chart/components/tooltip/DefaultTooltip.js +51 -0
- package/esm/charts/flame/flame-chart/components/tooltip/DefaultTooltip.js.map +7 -0
- package/esm/charts/flame/flame-chart/components/tooltip/messages.js +12 -0
- package/esm/charts/flame/flame-chart/components/tooltip/messages.js.map +7 -0
- package/esm/charts/flame/flame-chart/utils/iterate-slots.js +2 -14
- package/esm/charts/flame/flame-chart/utils/iterate-slots.js.map +2 -2
- package/esm/charts/flame/flame-graph/FlameGraph.js +35 -45
- package/esm/charts/flame/flame-graph/FlameGraph.js.map +2 -2
- package/esm/charts/flame/flame-graph/components/tooltip/DefaultTooltip.js +60 -0
- package/esm/charts/flame/flame-graph/components/tooltip/DefaultTooltip.js.map +7 -0
- package/esm/charts/flame/flame-graph/components/tooltip/messages.js +12 -0
- package/esm/charts/flame/flame-graph/components/tooltip/messages.js.map +7 -0
- package/esm/charts/flame/flame-graph/utils/iterate-slots.js +2 -17
- package/esm/charts/flame/flame-graph/utils/iterate-slots.js.map +2 -2
- package/esm/charts/flame/shared/components/tooltip/FlameTooltip.js +76 -30
- package/esm/charts/flame/shared/components/tooltip/FlameTooltip.js.map +2 -2
- package/esm/charts/flame/shared/components/tooltip/messages.js +32 -0
- package/esm/charts/flame/shared/components/tooltip/messages.js.map +7 -0
- package/esm/charts/flame/shared/slots/Tooltip.js.map +2 -2
- package/esm/charts/flame/shared/utils/build-tooltip-base-data.js +37 -0
- package/esm/charts/flame/shared/utils/build-tooltip-base-data.js.map +7 -0
- package/esm/charts/flame/shared/utils/make-iterate-slots.js +21 -0
- package/esm/charts/flame/shared/utils/make-iterate-slots.js.map +7 -0
- package/esm/charts/flame/shared/utils/order-spans-hierarchically.js +7 -2
- package/esm/charts/flame/shared/utils/order-spans-hierarchically.js.map +2 -2
- package/esm/charts/flame/shared/utils/resolve-flame-tooltip-content.js +26 -0
- package/esm/charts/flame/shared/utils/resolve-flame-tooltip-content.js.map +7 -0
- package/esm/charts/gantt-chart/GanttChartLine.css +1 -1
- package/esm/charts/gantt-chart/GanttChartLine.sty.js +1 -1
- package/esm/charts/gantt-chart/GanttChartLine.sty.js.map +1 -1
- package/esm/charts/gantt-chart/components/GanttChartLineRenderer.css +1 -1
- package/esm/charts/gantt-chart/components/GanttChartLineRenderer.sty.js +1 -1
- package/esm/charts/gantt-chart/components/GanttChartLineRenderer.sty.js.map +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.css +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.js.map +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.js +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.js.map +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltipBody.js.map +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltipContent.js.map +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltipHeader.js.map +1 -1
- package/esm/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.css +1 -1
- package/esm/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.sty.js +1 -1
- package/esm/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.sty.js.map +1 -1
- package/esm/charts/gauge/components/GaugeLabel/GaugeLabel.css +6 -6
- package/esm/charts/gauge/components/GaugeLabel/GaugeLabel.sty.js +3 -3
- package/esm/charts/gauge/components/GaugeLabel/GaugeLabel.sty.js.map +1 -1
- package/esm/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.css +3 -3
- package/esm/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.sty.js +1 -1
- package/esm/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.sty.js.map +1 -1
- package/esm/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.css +4 -4
- package/esm/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.sty.js +3 -3
- package/esm/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.sty.js.map +1 -1
- package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.css +2 -2
- package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.js +1 -1
- package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.js.map +2 -2
- package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js +2 -2
- package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js.map +1 -1
- package/esm/charts/gauge/components/GaugeRootSVG.js +1 -0
- package/esm/charts/gauge/components/GaugeRootSVG.js.map +2 -2
- package/esm/charts/gauge/hooks/useGaugeChartAspectRatio.js.map +1 -1
- package/esm/charts/gauge/utils/apply-threshold-default.js +1 -1
- package/esm/charts/gauge/utils/apply-threshold-default.js.map +1 -1
- package/esm/charts/histogram/HistogramChartRoot.js +1 -1
- package/esm/charts/histogram/HistogramChartRoot.js.map +1 -1
- package/esm/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.css +1 -1
- package/esm/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.sty.js +1 -1
- package/esm/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.sty.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramCrosshair.js +1 -1
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramCrosshair.js.map +2 -2
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.css +1 -1
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.js +2 -2
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.sty.js +1 -1
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.sty.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltipWrapper.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramOverlays.css +2 -2
- package/esm/charts/histogram/components/overlays/HistogramOverlays.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramOverlays.sty.js +2 -2
- package/esm/charts/histogram/components/overlays/HistogramOverlays.sty.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramSelectionArea/HistogramSelectionArea.js.map +1 -1
- package/esm/charts/histogram/components/overlays/HistogramSelectionArea/HistogramSelectionAreaTooltip.js.map +1 -1
- package/esm/charts/histogram/components/toolbar/HistogramToolbar.js.map +1 -1
- package/esm/charts/histogram/components/toolbar/ResetButton.js.map +1 -1
- package/esm/charts/histogram/hooks/useSetClosestBins.js +1 -1
- package/esm/charts/histogram/hooks/useSetClosestBins.js.map +1 -1
- package/esm/charts/histogram/providers/HistogramDataProvider.js +1 -1
- package/esm/charts/histogram/providers/HistogramDataProvider.js.map +2 -2
- package/esm/charts/histogram/providers/HistogramStateSyncProvider.js +1 -2
- package/esm/charts/histogram/providers/HistogramStateSyncProvider.js.map +2 -2
- package/esm/charts/histogram/providers/StoreProvider.js +2 -2
- package/esm/charts/histogram/providers/StoreProvider.js.map +2 -2
- package/esm/charts/histogram/utils/iterate-slots.js +1 -2
- package/esm/charts/histogram/utils/iterate-slots.js.map +2 -2
- package/esm/charts/honeycomb/HoneycombChart.css +1 -1
- package/esm/charts/honeycomb/HoneycombChart.sty.js +1 -1
- package/esm/charts/honeycomb/HoneycombChart.sty.js.map +1 -1
- package/esm/charts/honeycomb/components/HiveOverlay.css +1 -1
- package/esm/charts/honeycomb/components/HiveOverlay.sty.js +1 -1
- package/esm/charts/honeycomb/components/HiveOverlay.sty.js.map +1 -1
- package/esm/charts/honeycomb/components/HoneycombChartLayout.js.map +1 -1
- package/esm/charts/honeycomb/components/canvas/HiveCanvasLayout.css +1 -1
- package/esm/charts/honeycomb/components/canvas/HiveCanvasLayout.sty.js +1 -1
- package/esm/charts/honeycomb/components/canvas/HiveCanvasLayout.sty.js.map +1 -1
- package/esm/charts/honeycomb/providers/honeycomb-base-scale.provider.js.map +1 -1
- package/esm/charts/honeycomb/utils/build-honeycomb-config.js +2 -2
- package/esm/charts/honeycomb/utils/build-honeycomb-config.js.map +1 -1
- package/esm/charts/honeycomb/utils/iterate-honeycomb-slots.js.map +1 -1
- package/esm/charts/index.js.map +1 -1
- package/esm/charts/meter-bar/multi-meter-bar/components/MultiMeterBarChartSegments.js.map +1 -1
- package/esm/charts/meter-bar/multi-meter-bar/providers/StoreProvider.js +10 -1
- package/esm/charts/meter-bar/multi-meter-bar/providers/StoreProvider.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/slots/Label.js +1 -1
- package/esm/charts/meter-bar/multi-meter-bar/slots/Label.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/slots/Max.js +1 -1
- package/esm/charts/meter-bar/multi-meter-bar/slots/Max.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/slots/Min.js +1 -1
- package/esm/charts/meter-bar/multi-meter-bar/slots/Min.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/slots/Value.js +1 -1
- package/esm/charts/meter-bar/multi-meter-bar/slots/Value.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/utils/build-multi-meter-bar-chart-config.js.map +2 -2
- package/esm/charts/meter-bar/shared/components/formatted-value/MeterBarChartFormattedValue.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css +16 -16
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js +11 -11
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Chart.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Chart.js.map +2 -2
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.css +2 -2
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.sty.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.css +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.sty.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Legend.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Legend.js.map +2 -2
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.css +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.sty.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.css +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.sty.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.css +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.sty.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.css +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js +1 -0
- package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js.map +2 -2
- package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.sty.js +1 -1
- package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/styles/element-size.css +4 -4
- package/esm/charts/meter-bar/shared/styles/element-size.sty.js +1 -1
- package/esm/charts/meter-bar/shared/styles/element-size.sty.js.map +1 -1
- package/esm/charts/meter-bar/shared/styles.css +1 -1
- package/esm/charts/meter-bar/shared/styles.sty.js +1 -1
- package/esm/charts/meter-bar/shared/styles.sty.js.map +1 -1
- package/esm/charts/meter-bar/single-meter-bar/MeterBarChart.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/MeterBarChart.js.map +1 -1
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css +1 -1
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js.map +1 -1
- package/esm/charts/meter-bar/single-meter-bar/slots/Label.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/slots/Label.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/slots/Max.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/slots/Max.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/slots/Min.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/slots/Min.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/slots/ThresholdLegend.js.map +1 -1
- package/esm/charts/meter-bar/single-meter-bar/slots/Value.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/slots/Value.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js.map +1 -1
- package/esm/charts/meter-bar/single-meter-bar/utils/iterate-slots.js.map +1 -1
- package/esm/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js +1 -1
- package/esm/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js.map +1 -1
- package/esm/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.css +1 -1
- package/esm/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.sty.js +1 -1
- package/esm/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.sty.js.map +1 -1
- package/esm/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.css +1 -1
- package/esm/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.sty.js +1 -1
- package/esm/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.sty.js.map +1 -1
- package/esm/charts/pie/components/PieChartInternal.js +1 -1
- package/esm/charts/pie/components/PieChartInternal.js.map +2 -2
- package/esm/charts/pie/components/PieChartOverlays/PieChartOverlays.css +1 -1
- package/esm/charts/pie/components/PieChartOverlays/PieChartOverlays.sty.js +1 -1
- package/esm/charts/pie/components/PieChartOverlays/PieChartOverlays.sty.js.map +1 -1
- package/esm/charts/pie/components/PieChartPlot/PieChartPlot.css +1 -1
- package/esm/charts/pie/components/PieChartPlot/PieChartPlot.js +49 -40
- package/esm/charts/pie/components/PieChartPlot/PieChartPlot.js.map +2 -2
- package/esm/charts/pie/components/PieChartPlot/PieChartPlot.sty.js +1 -1
- package/esm/charts/pie/components/PieChartPlot/PieChartPlot.sty.js.map +1 -1
- package/esm/charts/pie/context/PieChartRawDataContext.js.map +1 -1
- package/esm/charts/pie/providers/ChartProviders.js.map +1 -1
- package/esm/charts/pie/providers/PieChartSlicesDataProvider.js +5 -1
- package/esm/charts/pie/providers/PieChartSlicesDataProvider.js.map +2 -2
- package/esm/charts/pie/providers/StoreProvider.js +1 -1
- package/esm/charts/pie/providers/StoreProvider.js.map +2 -2
- package/esm/charts/pie/slots/DonutChartInner.js.map +2 -2
- package/esm/charts/pie/types/pie-chart.config.js.map +2 -2
- package/esm/charts/pie/utils/build-and-download-csv.js.map +1 -1
- package/esm/charts/pie/utils/build-group-threshold.js.map +1 -1
- package/esm/charts/pie/utils/build-slices.js.map +1 -1
- package/esm/charts/pie/utils/format-csv.js.map +1 -1
- package/esm/charts/pie/utils/iterate-slots.js.map +1 -1
- package/esm/charts/pie/utils/normalize-pie-data.js.map +1 -1
- package/esm/charts/pie/utils/pie-config.js.map +1 -1
- package/esm/charts/sankey-chart/SankeyChart.css +3 -3
- package/esm/charts/sankey-chart/SankeyChart.sty.js +3 -3
- package/esm/charts/sankey-chart/SankeyChart.sty.js.map +1 -1
- package/esm/charts/sankey-chart/SankeyChartRoot.js +5 -2
- package/esm/charts/sankey-chart/SankeyChartRoot.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyCanvas.css +7 -1
- package/esm/charts/sankey-chart/components/SankeyCanvas.js +49 -6
- package/esm/charts/sankey-chart/components/SankeyCanvas.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyCanvas.sty.js +4 -2
- package/esm/charts/sankey-chart/components/SankeyCanvas.sty.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyGraphArea.js +5 -54
- package/esm/charts/sankey-chart/components/SankeyGraphArea.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyGraphAreaContent.js +65 -0
- package/esm/charts/sankey-chart/components/SankeyGraphAreaContent.js.map +7 -0
- package/esm/charts/sankey-chart/components/SankeyLabelOverlay.css +13 -9
- package/esm/charts/sankey-chart/components/SankeyLabelOverlay.js +40 -55
- package/esm/charts/sankey-chart/components/SankeyLabelOverlay.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyLabelOverlay.sty.js +10 -8
- package/esm/charts/sankey-chart/components/SankeyLabelOverlay.sty.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyNodeLabel.js +37 -0
- package/esm/charts/sankey-chart/components/SankeyNodeLabel.js.map +7 -0
- package/esm/charts/sankey-chart/components/SankeyOverlay.css +1 -1
- package/esm/charts/sankey-chart/components/SankeyOverlay.js +1 -3
- package/esm/charts/sankey-chart/components/SankeyOverlay.js.map +2 -2
- package/esm/charts/sankey-chart/components/SankeyOverlay.sty.js +1 -1
- package/esm/charts/sankey-chart/components/SankeyOverlay.sty.js.map +1 -1
- package/esm/charts/sankey-chart/constants.js +12 -7
- package/esm/charts/sankey-chart/constants.js.map +2 -2
- package/esm/charts/sankey-chart/context/SankeyFormatter.context.js +8 -0
- package/esm/charts/sankey-chart/context/SankeyFormatter.context.js.map +7 -0
- package/esm/charts/sankey-chart/context/SankeyHighlight.context.js +7 -0
- package/esm/charts/sankey-chart/context/SankeyHighlight.context.js.map +7 -0
- package/esm/charts/sankey-chart/context/SankeyStore.context.js +11 -0
- package/esm/charts/sankey-chart/context/SankeyStore.context.js.map +7 -0
- package/esm/charts/sankey-chart/hooks/use-draw-sankey.js +32 -7
- package/esm/charts/sankey-chart/hooks/use-draw-sankey.js.map +2 -2
- package/esm/charts/sankey-chart/hooks/use-sankey-formatter.js +9 -0
- package/esm/charts/sankey-chart/hooks/use-sankey-formatter.js.map +7 -0
- package/esm/charts/sankey-chart/hooks/use-sankey-overlay-events.js +34 -15
- package/esm/charts/sankey-chart/hooks/use-sankey-overlay-events.js.map +2 -2
- package/esm/charts/sankey-chart/providers/SankeyFormatterProvider.js +16 -0
- package/esm/charts/sankey-chart/providers/SankeyFormatterProvider.js.map +7 -0
- package/esm/charts/sankey-chart/providers/SankeyStoreProvider.js +15 -0
- package/esm/charts/sankey-chart/providers/SankeyStoreProvider.js.map +7 -0
- package/esm/charts/sankey-chart/store/selectors.js +11 -5
- package/esm/charts/sankey-chart/store/selectors.js.map +2 -2
- package/esm/charts/sankey-chart/store/store.js +29 -7
- package/esm/charts/sankey-chart/store/store.js.map +2 -2
- package/esm/charts/sankey-chart/types/sankey-shape.js +1 -0
- package/esm/charts/sankey-chart/types/sankey-state.js +1 -0
- package/esm/charts/sankey-chart/types/sankey-state.js.map +7 -0
- package/esm/charts/sankey-chart/utils/find-connected-shapes.js +26 -0
- package/esm/charts/sankey-chart/utils/find-connected-shapes.js.map +7 -0
- package/esm/charts/sankey-chart/utils/find-hovered-shape.js +4 -11
- package/esm/charts/sankey-chart/utils/find-hovered-shape.js.map +2 -2
- package/esm/charts/sankey-chart/utils/generate-sankey-layout.js +10 -1
- package/esm/charts/sankey-chart/utils/generate-sankey-layout.js.map +2 -2
- package/esm/charts/sankey-chart/utils/get-active-connected-set.js +59 -0
- package/esm/charts/sankey-chart/utils/get-active-connected-set.js.map +7 -0
- package/esm/charts/sankey-chart/utils/is-same-sankey-shape.js +19 -0
- package/esm/charts/sankey-chart/utils/is-same-sankey-shape.js.map +7 -0
- package/esm/charts/sankey-chart/utils/layout-index.js +66 -0
- package/esm/charts/sankey-chart/utils/layout-index.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/sankey.js +20 -2
- package/esm/charts/sankey-chart/vendor/d3-sankey/sankey.js.map +2 -2
- package/esm/charts/single-value/SingleValue.css +1 -1
- package/esm/charts/single-value/SingleValue.sty.js +1 -1
- package/esm/charts/single-value/SingleValue.sty.js.map +1 -1
- package/esm/charts/single-value-grid/SingleValueGrid.css +2 -2
- package/esm/charts/single-value-grid/SingleValueGrid.sty.js +1 -1
- package/esm/charts/single-value-grid/SingleValueGrid.sty.js.map +1 -1
- package/esm/charts/single-value-grid/components/GlobalFontSizeVariables.css +1 -1
- package/esm/charts/single-value-grid/components/GlobalFontSizeVariables.sty.js +1 -1
- package/esm/charts/single-value-grid/components/GlobalFontSizeVariables.sty.js.map +1 -1
- package/esm/charts/single-value-grid/components/SingleValueDisplay.js.map +1 -1
- package/esm/charts/single-value-grid/slots/Value.js.map +1 -1
- package/esm/charts/single-value-grid/utils/build-props-from-grid.js +17 -14
- package/esm/charts/single-value-grid/utils/build-props-from-grid.js.map +2 -2
- package/esm/charts/single-value-grid/utils/get-config-from-accessors.js.map +1 -1
- package/esm/charts/timeseries/TimeseriesChart.js +2 -0
- package/esm/charts/timeseries/TimeseriesChart.js.map +2 -2
- package/esm/charts/timeseries/TimeseriesChartInternal.js +0 -3
- package/esm/charts/timeseries/TimeseriesChartInternal.js.map +2 -2
- package/esm/charts/timeseries/TimeseriesChartRoot.js +2 -1
- package/esm/charts/timeseries/TimeseriesChartRoot.js.map +2 -2
- package/esm/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.css +2 -2
- package/esm/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js +1 -1
- package/esm/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/TimeseriesChartOverlays.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/TimeseriesExplore/TimeseriesChartTooltip.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/TimeseriesOverlays.css +4 -4
- package/esm/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js +4 -4
- package/esm/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/TimeseriesSelection/TimeseriesSelectionArea.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/TimeseriesSelection/TimeseriesSelectionAreaTooltip.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/TimeseriesSelection/utils/get-selected-datapoints.js +2 -2
- package/esm/charts/timeseries/components/overlays/TimeseriesSelection/utils/get-selected-datapoints.js.map +1 -1
- package/esm/charts/timeseries/components/overlays/utils/tooltip/timeseries-tooltip.js +2 -2
- package/esm/charts/timeseries/components/overlays/utils/tooltip/timeseries-tooltip.js.map +1 -1
- package/esm/charts/timeseries/components/thresholds/ThresholdIndicators.css +2 -2
- package/esm/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js +2 -2
- package/esm/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js.map +1 -1
- package/esm/charts/timeseries/components/toolbar/ResetButton.js.map +1 -1
- package/esm/charts/timeseries/components/toolbar/TimeseriesChartToolbar.js.map +1 -1
- package/esm/charts/timeseries/providers/StoreProvider.js +2 -3
- package/esm/charts/timeseries/providers/StoreProvider.js.map +2 -2
- package/esm/charts/timeseries/providers/TimeseriesDataProvider.js +1 -1
- package/esm/charts/timeseries/providers/TimeseriesDataProvider.js.map +2 -2
- package/esm/charts/timeseries/slots/shapes/Area.js.map +2 -2
- package/esm/charts/timeseries/slots/shapes/Line.js.map +2 -2
- package/esm/charts/timeseries/types/timeseries.js.map +1 -1
- package/esm/charts/timeseries/utils/convert-to-timeseries/convert-to-timeseries.js.map +2 -2
- package/esm/charts/timeseries/utils/convert-to-timeseries/utils/unit-mapping.js.map +1 -1
- package/esm/charts/timeseries/utils/get-datapoint-value.js.map +1 -1
- package/esm/charts/timeseries/utils/iterate-config-slots.js.map +2 -2
- package/esm/charts/top-list/TopList.css +1 -1
- package/esm/charts/top-list/TopList.sty.js +1 -1
- package/esm/charts/top-list/TopList.sty.js.map +1 -1
- package/esm/charts/tree-map/TreeMap.js.map +1 -1
- package/esm/charts/tree-map/components/TreeMapCanvas.js.map +1 -1
- package/esm/charts/tree-map/components/TreeMapChartLayout.js +1 -1
- package/esm/charts/tree-map/components/TreeMapChartLayout.js.map +2 -2
- package/esm/charts/tree-map/components/TreeMapInternal.js.map +2 -2
- package/esm/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.css +1 -1
- package/esm/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.sty.js +1 -1
- package/esm/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.sty.js.map +1 -1
- package/esm/charts/tree-map/hooks/useTreeMapChartConfig.js.map +1 -1
- package/esm/charts/tree-map/providers/StoreProvider.js +1 -1
- package/esm/charts/tree-map/providers/StoreProvider.js.map +2 -2
- package/esm/charts/tree-map/providers/TreeMapChartProviders.js +1 -2
- package/esm/charts/tree-map/providers/TreeMapChartProviders.js.map +2 -2
- package/esm/charts/tree-map/utils/build-tree-map-chart-config.js.map +1 -1
- package/esm/charts/tree-map/utils/get-colored-internal-range-data.js.map +1 -1
- package/esm/charts/tree-map/utils/iterate-slots.js.map +1 -1
- package/esm/charts/tree-map/utils/to-hierarchical-props.js.map +1 -1
- package/esm/charts/xy-chart/XYChartRoot.js +2 -2
- package/esm/charts/xy-chart/XYChartRoot.js.map +1 -1
- package/esm/charts/xy-chart/components/axes/AxisArea.css +1 -1
- package/esm/charts/xy-chart/components/axes/AxisArea.sty.js +1 -1
- package/esm/charts/xy-chart/components/axes/AxisArea.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/axes/AxisTickWithTruncation.css +3 -3
- package/esm/charts/xy-chart/components/axes/AxisTickWithTruncation.sty.js +3 -3
- package/esm/charts/xy-chart/components/axes/AxisTickWithTruncation.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.css +2 -2
- package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js +2 -2
- package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.css +3 -3
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.sty.js +3 -3
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/displays/rect-accessors.js +1 -1
- package/esm/charts/xy-chart/components/displays/rect-accessors.js.map +1 -1
- package/esm/charts/xy-chart/components/legend/XYChartLegend.js.map +1 -1
- package/esm/charts/xy-chart/components/legend/XYLegend/XYLegend.js +1 -1
- package/esm/charts/xy-chart/components/legend/XYLegend/XYLegend.js.map +1 -1
- package/esm/charts/xy-chart/components/legend/XYLegend/xy-legend.css +1 -1
- package/esm/charts/xy-chart/components/legend/XYLegend/xy-legend.sty.js +1 -1
- package/esm/charts/xy-chart/components/legend/XYLegend/xy-legend.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/overlay/XYChartOverlay.js +2 -4
- package/esm/charts/xy-chart/components/overlay/XYChartOverlay.js.map +2 -2
- package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.css +1 -1
- package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js +32 -12
- package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js.map +2 -2
- package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.sty.js +1 -1
- package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/overlay/explore/XYChartExplore.css +2 -2
- package/esm/charts/xy-chart/components/overlay/explore/XYChartExplore.sty.js +2 -2
- package/esm/charts/xy-chart/components/overlay/explore/XYChartExplore.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/overlay/hooks/useOverlayEvents.js.map +1 -1
- package/esm/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.css +1 -1
- package/esm/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.sty.js +1 -1
- package/esm/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/tooltip/XYChartTooltipContent.js +9 -1
- package/esm/charts/xy-chart/components/tooltip/XYChartTooltipContent.js.map +2 -2
- package/esm/charts/xy-chart/components/tooltip/utils/tooltip-styles.css +5 -5
- package/esm/charts/xy-chart/components/tooltip/utils/tooltip-styles.sty.js +4 -4
- package/esm/charts/xy-chart/components/tooltip/utils/tooltip-styles.sty.js.map +1 -1
- package/esm/charts/xy-chart/layout/XYChartLayout.css +2 -2
- package/esm/charts/xy-chart/layout/XYChartLayout.sty.js +2 -2
- package/esm/charts/xy-chart/layout/XYChartLayout.sty.js.map +1 -1
- package/esm/charts/xy-chart/processing-strategies/strategies/base-series.js.map +2 -2
- package/esm/charts/xy-chart/processing-strategies/strategies/dot-series.js +1 -1
- package/esm/charts/xy-chart/processing-strategies/strategies/dot-series.js.map +1 -1
- package/esm/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js +5 -2
- package/esm/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js.map +2 -2
- package/esm/charts/xy-chart/providers/XYChartStoreProvider.js +2 -2
- package/esm/charts/xy-chart/providers/XYChartStoreProvider.js.map +2 -2
- package/esm/charts/xy-chart/slots/CustomTooltip.js.map +1 -1
- package/esm/charts/xy-chart/types/xy-chart-internals.js.map +2 -2
- package/esm/charts/xy-chart/utils/iterate-slots.js.map +1 -1
- package/esm/charts/xy-chart/utils/query-closest-quadtree.js +3 -0
- package/esm/charts/xy-chart/utils/query-closest-quadtree.js.map +2 -2
- package/esm/charts/xy-chart/utils/query-hovered-grid.js +8 -2
- package/esm/charts/xy-chart/utils/query-hovered-grid.js.map +2 -2
- package/esm/charts/xy-chart/utils/query-shared.js +9 -0
- package/esm/charts/xy-chart/utils/query-shared.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js +20 -4
- package/esm/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/constants.js +3 -1
- package/esm/charts/xy-chart-adoption/categorical-bar/constants.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/iterate-slots.js +8 -1
- package/esm/charts/xy-chart-adoption/categorical-bar/iterate-slots.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/utils/map-threshold-to-xy.js +36 -0
- package/esm/charts/xy-chart-adoption/categorical-bar/utils/map-threshold-to-xy.js.map +7 -0
- package/esm/charts/xy-chart-adoption/timeseries/iterate-slots.js.map +1 -1
- package/esm/charts/xy-chart-adoption/timeseries/types/timeseries.js.map +1 -1
- package/esm/charts/xy-chart-adoption/timeseries/utils/iterate-config-slots.js.map +1 -1
- package/esm/content/accordion/Accordion.css +14 -14
- package/esm/content/accordion/Accordion.sty.js +8 -8
- package/esm/content/accordion/Accordion.sty.js.map +1 -1
- package/esm/content/ai-loading-indicator/AiLoadingIndicator.css +12 -12
- package/esm/content/ai-loading-indicator/AiLoadingIndicator.sty.js +4 -4
- package/esm/content/ai-loading-indicator/AiLoadingIndicator.sty.js.map +1 -1
- package/esm/content/ai-response/AiResponse.css +5 -5
- package/esm/content/ai-response/AiResponse.sty.js +2 -2
- package/esm/content/ai-response/AiResponse.sty.js.map +1 -1
- package/esm/content/avatar/Avatar.css +13 -13
- package/esm/content/avatar/Avatar.sty.js +4 -4
- package/esm/content/avatar/Avatar.sty.js.map +1 -1
- package/esm/content/avatar-group/AvatarGroup.css +3 -3
- package/esm/content/avatar-group/AvatarGroup.sty.js +2 -2
- package/esm/content/avatar-group/AvatarGroup.sty.js.map +1 -1
- package/esm/content/chip/BaseChip.css +82 -41
- package/esm/content/chip/BaseChip.js +1 -2
- package/esm/content/chip/BaseChip.js.map +2 -2
- package/esm/content/chip/BaseChip.sty.js +6 -6
- package/esm/content/chip/BaseChip.sty.js.map +2 -2
- package/esm/content/chip/ChipContent.css +11 -11
- package/esm/content/chip/ChipContent.sty.js +2 -2
- package/esm/content/chip/ChipContent.sty.js.map +1 -1
- package/esm/content/chip/ChipDeleteButton.css +33 -19
- package/esm/content/chip/ChipDeleteButton.js +3 -5
- package/esm/content/chip/ChipDeleteButton.js.map +2 -2
- package/esm/content/chip/ChipDeleteButton.sty.js +7 -4
- package/esm/content/chip/ChipDeleteButton.sty.js.map +2 -2
- package/esm/content/chip/ChipKey.css +6 -6
- package/esm/content/chip/ChipKey.sty.js +1 -1
- package/esm/content/chip/ChipKey.sty.js.map +1 -1
- package/esm/content/chip/GroupedChip.css +71 -3
- package/esm/content/chip/GroupedChip.js +26 -5
- package/esm/content/chip/GroupedChip.js.map +2 -2
- package/esm/content/chip/GroupedChip.sty.js +7 -4
- package/esm/content/chip/GroupedChip.sty.js.map +2 -2
- package/esm/content/chip/hooks/usePendingFocusAnnouncement.js +54 -0
- package/esm/content/chip/hooks/usePendingFocusAnnouncement.js.map +7 -0
- package/esm/content/chip/messages.js +12 -0
- package/esm/content/chip/messages.js.map +7 -0
- package/esm/content/chip-group/ChipGroup.css +4 -4
- package/esm/content/chip-group/ChipGroup.js +7 -2
- package/esm/content/chip-group/ChipGroup.js.map +2 -2
- package/esm/content/chip-group/ChipGroup.sty.js +1 -1
- package/esm/content/chip-group/ChipGroup.sty.js.map +1 -1
- package/esm/content/chip-group/Control.css +4 -4
- package/esm/content/chip-group/Control.js +15 -1
- package/esm/content/chip-group/Control.js.map +2 -2
- package/esm/content/chip-group/Control.sty.js +1 -1
- package/esm/content/chip-group/Control.sty.js.map +1 -1
- package/esm/content/chip-group/HiddenCount.js.map +1 -1
- package/esm/content/chip-group/contexts/InternalChipGroupContext.js.map +2 -2
- package/esm/content/code-snippet/CodeHighlight.css +25 -25
- package/esm/content/code-snippet/CodeHighlight.sty.js +6 -6
- package/esm/content/code-snippet/CodeHighlight.sty.js.map +1 -1
- package/esm/content/code-snippet/CodeSnippet.css +18 -18
- package/esm/content/code-snippet/CodeSnippet.js +1 -1
- package/esm/content/code-snippet/CodeSnippet.js.map +1 -1
- package/esm/content/code-snippet/CodeSnippet.sty.js +4 -4
- package/esm/content/code-snippet/CodeSnippet.sty.js.map +1 -1
- package/esm/content/code-snippet/HighlightExtended.js +3 -6
- package/esm/content/code-snippet/HighlightExtended.js.map +2 -2
- package/esm/content/empty-state/EmptyState.css +28 -28
- package/esm/content/empty-state/EmptyState.sty.js +7 -7
- package/esm/content/empty-state/EmptyState.sty.js.map +1 -1
- package/esm/content/empty-state/slot-components/Footer.css +1 -1
- package/esm/content/empty-state/slot-components/Footer.sty.js +1 -1
- package/esm/content/empty-state/slot-components/Footer.sty.js.map +1 -1
- package/esm/content/empty-state/slot-components/Visual.css +3 -3
- package/esm/content/empty-state/slot-components/Visual.sty.js +1 -1
- package/esm/content/empty-state/slot-components/Visual.sty.js.map +1 -1
- package/esm/content/expandable-text/ExpandableText.css +7 -7
- package/esm/content/expandable-text/ExpandableText.sty.js +2 -2
- package/esm/content/expandable-text/ExpandableText.sty.js.map +1 -1
- package/esm/content/feature-highlight/FeatureHighlight.css +12 -12
- package/esm/content/feature-highlight/FeatureHighlight.sty.js +3 -3
- package/esm/content/feature-highlight/FeatureHighlight.sty.js.map +1 -1
- package/esm/content/health-indicator/styles.css +23 -23
- package/esm/content/health-indicator/styles.sty.js +1 -1
- package/esm/content/health-indicator/styles.sty.js.map +1 -1
- package/esm/content/information-overlay/InformationOverlay.css +25 -25
- package/esm/content/information-overlay/InformationOverlay.sty.js +5 -5
- package/esm/content/information-overlay/InformationOverlay.sty.js.map +1 -1
- package/esm/content/keyboard-shortcut/KeyboardShortcut.css +14 -14
- package/esm/content/keyboard-shortcut/KeyboardShortcut.sty.js +2 -2
- package/esm/content/keyboard-shortcut/KeyboardShortcut.sty.js.map +1 -1
- package/esm/content/markdown/Markdown.css +6 -3
- package/esm/content/markdown/Markdown.js +11 -7
- package/esm/content/markdown/Markdown.js.map +2 -2
- package/esm/content/markdown/Markdown.sty.js +4 -2
- package/esm/content/markdown/Markdown.sty.js.map +2 -2
- package/esm/content/markdown/remark-frontmatter-to-table.js +62 -0
- package/esm/content/markdown/remark-frontmatter-to-table.js.map +7 -0
- package/esm/content/markdown/transformers/table-mapping.js +1 -1
- package/esm/content/markdown/transformers/table-mapping.js.map +1 -1
- package/esm/content/markdown/transformers/typography-mapping.css +9 -9
- package/esm/content/markdown/transformers/typography-mapping.sty.js +6 -6
- package/esm/content/markdown/transformers/typography-mapping.sty.js.map +1 -1
- package/esm/content/microguide/Microguide.css +11 -11
- package/esm/content/microguide/Microguide.sty.js +7 -7
- package/esm/content/microguide/Microguide.sty.js.map +1 -1
- package/esm/content/progress/ProgressBar.css +71 -71
- package/esm/content/progress/ProgressBar.sty.js +5 -5
- package/esm/content/progress/ProgressBar.sty.js.map +1 -1
- package/esm/content/progress/ProgressBarIcon.css +2 -2
- package/esm/content/progress/ProgressBarIcon.sty.js +1 -1
- package/esm/content/progress/ProgressBarIcon.sty.js.map +1 -1
- package/esm/content/progress/ProgressBarLabel.css +3 -3
- package/esm/content/progress/ProgressBarLabel.sty.js +1 -1
- package/esm/content/progress/ProgressBarLabel.sty.js.map +1 -1
- package/esm/content/progress/ProgressBarValue.css +5 -5
- package/esm/content/progress/ProgressBarValue.sty.js +1 -1
- package/esm/content/progress/ProgressBarValue.sty.js.map +1 -1
- package/esm/content/progress/ProgressCircle.css +48 -40
- package/esm/content/progress/ProgressCircle.js +9 -17
- package/esm/content/progress/ProgressCircle.js.map +2 -2
- package/esm/content/progress/ProgressCircle.sty.js +12 -10
- package/esm/content/progress/ProgressCircle.sty.js.map +2 -2
- package/esm/content/shared-components/Visual.css +3 -3
- package/esm/content/shared-components/Visual.sty.js +1 -1
- package/esm/content/shared-components/Visual.sty.js.map +1 -1
- package/esm/content/skeleton/Skeleton.css +7 -7
- package/esm/content/skeleton/Skeleton.sty.js +5 -5
- package/esm/content/skeleton/Skeleton.sty.js.map +1 -1
- package/esm/content/terminology-overlay/TerminologyOverlay.css +4 -4
- package/esm/content/terminology-overlay/TerminologyOverlay.sty.js +1 -1
- package/esm/content/terminology-overlay/TerminologyOverlay.sty.js.map +1 -1
- package/esm/core/components/app-root/AppRoot.css +1031 -924
- package/esm/core/components/app-root/AppRoot.sty.js +1 -1
- package/esm/core/components/app-root/AppRoot.sty.js.map +1 -1
- package/esm/core/components/app-root/visual-refresh-overrides.js +2 -12
- package/esm/core/components/app-root/visual-refresh-overrides.js.map +2 -2
- package/esm/core/components/focus-scope/FocusScope.js +37 -14
- package/esm/core/components/focus-scope/FocusScope.js.map +2 -2
- package/esm/core/components/time-indicator/TimeIndicator.js +4 -4
- package/esm/core/components/time-indicator/TimeIndicator.js.map +2 -2
- package/esm/core/components/visually-hidden/VisuallyHidden.css +1 -1
- package/esm/core/components/visually-hidden/VisuallyHidden.sty.js +1 -1
- package/esm/core/components/visually-hidden/VisuallyHidden.sty.js.map +1 -1
- package/esm/core/hooks/useCallbackRef.js.map +1 -1
- package/esm/core/hooks/useCurrentTheme.js.map +1 -1
- package/esm/core/hooks/useFocusRing.js +1 -1
- package/esm/core/hooks/useFocusRing.js.map +1 -1
- package/esm/core/hooks/useFormControlState.js.map +1 -1
- package/esm/core/hooks/useId.js.map +1 -1
- package/esm/core/hooks/useMeasureChildren.js.map +1 -1
- package/esm/core/hooks/useMergeRefs.js.map +2 -2
- package/esm/core/hooks/usePrevious.js.map +1 -1
- package/esm/core/hooks/useRovingFocus.js +1 -1
- package/esm/core/hooks/useRovingFocus.js.map +2 -2
- package/esm/core/hooks/useSlots.js +7 -4
- package/esm/core/hooks/useSlots.js.map +2 -2
- package/esm/core/hooks/useVisualRefreshEnabled.js +1 -1
- package/esm/core/hooks/useVisualRefreshEnabled.js.map +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/providers/ScrollProvider.js.map +2 -2
- package/esm/core/sdk/app-state/AppStateContext.js +14 -1
- package/esm/core/sdk/app-state/AppStateContext.js.map +2 -2
- package/esm/core/sdk/app-state/AppStateProvider.js +9 -2
- package/esm/core/sdk/app-state/AppStateProvider.js.map +2 -2
- package/esm/core/sdk/app-state/app-state-store.js +4 -1
- package/esm/core/sdk/app-state/app-state-store.js.map +2 -2
- package/esm/core/sdk/app-state/useAppStateInternal.js +86 -13
- package/esm/core/sdk/app-state/useAppStateInternal.js.map +3 -3
- package/esm/core/sdk/sdk-logger.js +2 -2
- package/esm/core/sdk/sdk-logger.js.map +1 -1
- package/esm/core/styles/defaultChartValues.css +1 -1
- package/esm/core/styles/defaultChartValues.sty.js +1 -1
- package/esm/core/styles/defaultChartValues.sty.js.map +1 -1
- package/esm/core/styles/focusRing.css +66 -66
- package/esm/core/styles/focusRing.sty.js +2 -2
- package/esm/core/styles/focusRing.sty.js.map +1 -1
- package/esm/core/styles/focusRingStatic.css +34 -34
- package/esm/core/styles/focusRingStatic.sty.js +3 -1
- package/esm/core/styles/focusRingStatic.sty.js.map +2 -2
- package/esm/core/styles/virtualFocus.css +2 -2
- package/esm/core/styles/virtualFocus.sty.js +1 -1
- package/esm/core/styles/virtualFocus.sty.js.map +1 -1
- package/esm/core/time/useIntervalCallback.js.map +1 -1
- package/esm/core/utils/can-receive-default-text-format.js.map +1 -1
- package/esm/core/utils/colorUtils.css +60 -60
- package/esm/core/utils/colorUtils.sty.js +2 -2
- package/esm/core/utils/colorUtils.sty.js.map +1 -1
- package/esm/core/utils/focus-management/get-first-tabbable-child.js +14 -0
- package/esm/core/utils/focus-management/get-first-tabbable-child.js.map +7 -0
- package/esm/core/utils/focus-management/get-last-tabbable-child.js +17 -0
- package/esm/core/utils/focus-management/get-last-tabbable-child.js.map +7 -0
- package/esm/core/utils/focus-management/is-focusable.js.map +1 -1
- package/esm/core/utils/focus-management/is-tabbable.js +43 -0
- package/esm/core/utils/focus-management/is-tabbable.js.map +7 -0
- package/esm/core/utils/get-inert-value.js.map +2 -2
- package/esm/core/utils/is-visual-refresh-enabled.js.map +1 -1
- package/esm/core/utils/isBrowser.js +1 -1
- package/esm/core/utils/isBrowser.js.map +1 -1
- package/esm/core/utils/logging.js.map +1 -1
- package/esm/core/utils/merge-props.js.map +1 -1
- package/esm/core/utils/threshold-utils.js.map +2 -2
- package/esm/core/utils/timeParser.js.map +1 -1
- package/esm/editors/base-code-editor/BaseCodeEditor.css +137 -136
- package/esm/editors/base-code-editor/BaseCodeEditor.js +119 -8
- package/esm/editors/base-code-editor/BaseCodeEditor.js.map +3 -3
- package/esm/editors/base-code-editor/BaseCodeEditor.sty.js +2 -2
- package/esm/editors/base-code-editor/BaseCodeEditor.sty.js.map +1 -1
- package/esm/editors/base-code-editor/baseCodeEditorMessages.js +20 -0
- package/esm/editors/base-code-editor/baseCodeEditorMessages.js.map +2 -2
- package/esm/editors/base-code-editor/configuration/getDefaultConfigurations.js +1 -1
- package/esm/editors/base-code-editor/configuration/getDefaultConfigurations.js.map +1 -1
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.css +40 -0
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.js +107 -0
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.js.map +7 -0
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.sty.js +7 -0
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/OffScreenDiagnosticIndicators.sty.js.map +7 -0
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/off-screen-diagnostic-indicators.utils.js +104 -0
- package/esm/editors/base-code-editor/off-screen-diagnostic-indicators/off-screen-diagnostic-indicators.utils.js.map +7 -0
- package/esm/editors/code-editor/CodeEditor.js +5 -3
- package/esm/editors/code-editor/CodeEditor.js.map +2 -2
- package/esm/editors/dql-editor/DQLEditor.js +2 -2
- package/esm/editors/dql-editor/DQLEditor.js.map +2 -2
- package/esm/editors/dql-editor/actions-menu/ActionsMenu.css +10 -10
- package/esm/editors/dql-editor/actions-menu/ActionsMenu.sty.js +5 -5
- package/esm/editors/dql-editor/actions-menu/ActionsMenu.sty.js.map +1 -1
- package/esm/editors/dql-editor/autocomplete/SuggestionsInfoSection.css +7 -7
- package/esm/editors/dql-editor/autocomplete/SuggestionsInfoSection.sty.js +3 -3
- package/esm/editors/dql-editor/autocomplete/SuggestionsInfoSection.sty.js.map +1 -1
- package/esm/filters/filter/FilterBar.js +3 -4
- package/esm/filters/filter/FilterBar.js.map +2 -2
- package/esm/filters/filter/Item.js.map +2 -2
- package/esm/filters/filter/utils/getTextFromNode.js.map +1 -1
- package/esm/filters/filter-field/FilterField.css +166 -143
- package/esm/filters/filter-field/FilterField.js +39 -17
- package/esm/filters/filter-field/FilterField.js.map +2 -2
- package/esm/filters/filter-field/FilterField.sty.js +29 -29
- package/esm/filters/filter-field/FilterField.sty.js.map +2 -2
- package/esm/filters/filter-field/components/FilterFieldSuffixButtons.css +3 -3
- package/esm/filters/filter-field/components/FilterFieldSuffixButtons.sty.js +3 -3
- package/esm/filters/filter-field/components/FilterFieldSuffixButtons.sty.js.map +1 -1
- package/esm/filters/filter-field/components/FilterStatement.css +25 -14
- package/esm/filters/filter-field/components/FilterStatement.js +53 -24
- package/esm/filters/filter-field/components/FilterStatement.js.map +2 -2
- package/esm/filters/filter-field/components/FilterStatement.sty.js +9 -9
- package/esm/filters/filter-field/components/FilterStatement.sty.js.map +2 -2
- package/esm/filters/filter-field/contexts/FilterFieldContext.js +2 -0
- package/esm/filters/filter-field/contexts/FilterFieldContext.js.map +2 -2
- package/esm/filters/filter-field/decorations/decoration-marks.js +7 -1
- package/esm/filters/filter-field/decorations/decoration-marks.js.map +2 -2
- package/esm/filters/filter-field/decorations/filter-statements.js +1 -0
- package/esm/filters/filter-field/decorations/filter-statements.js.map +2 -2
- package/esm/filters/filter-field/decorations/wildcards-in-value.js +98 -0
- package/esm/filters/filter-field/decorations/wildcards-in-value.js.map +7 -0
- package/esm/filters/filter-field/editor-state-configs/pasting-update-listener.js.map +1 -1
- package/esm/filters/filter-field/extensions/interactions-extensions.js.map +1 -1
- package/esm/filters/filter-field/extensions/syntax-highlighting-extension.js +23 -19
- package/esm/filters/filter-field/extensions/syntax-highlighting-extension.js.map +2 -2
- package/esm/filters/filter-field/hooks/recent-and-pinned/usePinnedFilterSuggestions.js.map +1 -1
- package/esm/filters/filter-field/hooks/recent-and-pinned/useRecentFilterSuggestions.js.map +1 -1
- package/esm/filters/filter-field/hooks/useShowMore.js +1 -1
- package/esm/filters/filter-field/hooks/useShowMore.js.map +1 -1
- package/esm/filters/filter-field/hooks/useSuggestions.js +3 -7
- package/esm/filters/filter-field/hooks/useSuggestions.js.map +2 -2
- package/esm/filters/filter-field/hooks/useUpdatableCallback.js.map +1 -1
- package/esm/filters/filter-field/messages.js +19 -34
- package/esm/filters/filter-field/messages.js.map +2 -2
- package/esm/filters/filter-field/parser/parser.js.map +2 -2
- package/esm/filters/filter-field/suggestions/AriaLiveInfo.js +65 -161
- package/esm/filters/filter-field/suggestions/AriaLiveInfo.js.map +2 -2
- package/esm/filters/filter-field/suggestions/RecentPinnedSuggestionItem.css +9 -9
- package/esm/filters/filter-field/suggestions/RecentPinnedSuggestionItem.sty.js +2 -2
- package/esm/filters/filter-field/suggestions/RecentPinnedSuggestionItem.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/Suggestion.css +24 -24
- package/esm/filters/filter-field/suggestions/Suggestion.js +11 -4
- package/esm/filters/filter-field/suggestions/Suggestion.js.map +2 -2
- package/esm/filters/filter-field/suggestions/Suggestion.sty.js +16 -16
- package/esm/filters/filter-field/suggestions/Suggestion.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/SuggestionDetails.css +2 -2
- package/esm/filters/filter-field/suggestions/SuggestionDetails.sty.js +2 -2
- package/esm/filters/filter-field/suggestions/SuggestionDetails.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/SuggestionGroup.css +6 -6
- package/esm/filters/filter-field/suggestions/SuggestionGroup.sty.js +3 -3
- package/esm/filters/filter-field/suggestions/SuggestionGroup.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/SuggestionGroupLabel.css +1 -1
- package/esm/filters/filter-field/suggestions/SuggestionGroupLabel.sty.js +1 -1
- package/esm/filters/filter-field/suggestions/SuggestionGroupLabel.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/SuggestionTips.css +8 -8
- package/esm/filters/filter-field/suggestions/SuggestionTips.js +1 -0
- package/esm/filters/filter-field/suggestions/SuggestionTips.js.map +2 -2
- package/esm/filters/filter-field/suggestions/SuggestionTips.sty.js +6 -6
- package/esm/filters/filter-field/suggestions/SuggestionTips.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/Suggestions.js +9 -22
- package/esm/filters/filter-field/suggestions/Suggestions.js.map +2 -2
- package/esm/filters/filter-field/suggestions/SuggestionsOverlay.css +7 -7
- package/esm/filters/filter-field/suggestions/SuggestionsOverlay.js +36 -32
- package/esm/filters/filter-field/suggestions/SuggestionsOverlay.js.map +2 -2
- package/esm/filters/filter-field/suggestions/SuggestionsOverlay.sty.js +5 -5
- package/esm/filters/filter-field/suggestions/SuggestionsOverlay.sty.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js +61 -9
- package/esm/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/comparator/search.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/group.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js +7 -3
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js +49 -6
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/free-text.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js +13 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js +92 -7
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/tree-conversion.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/tree-precedence.js.map +1 -1
- package/esm/filters/filter-field/utils/conversion/tree-string-conversion.js +15 -4
- package/esm/filters/filter-field/utils/conversion/tree-string-conversion.js.map +2 -2
- package/esm/filters/filter-field/utils/escape-suggestion.js +6 -2
- package/esm/filters/filter-field/utils/escape-suggestion.js.map +2 -2
- package/esm/filters/filter-field/utils/generate-errors-or-diagnostics.js.map +1 -1
- package/esm/filters/filter-field/utils/get-suggestion-transaction.js +44 -3
- package/esm/filters/filter-field/utils/get-suggestion-transaction.js.map +2 -2
- package/esm/filters/filter-field/utils/suggestions-utils/operator-suggestions.js +1 -1
- package/esm/filters/filter-field/utils/suggestions-utils/operator-suggestions.js.map +2 -2
- package/esm/filters/filter-field/utils/suggestions-utils/shared-suggestions.js +4 -3
- package/esm/filters/filter-field/utils/suggestions-utils/shared-suggestions.js.map +2 -2
- package/esm/filters/filter-field/utils/suggestions-utils/value-suggestions.js +42 -0
- package/esm/filters/filter-field/utils/suggestions-utils/value-suggestions.js.map +2 -2
- package/esm/filters/filter-field/utils/validation-utils/operator-specification.js +8 -2
- package/esm/filters/filter-field/utils/validation-utils/operator-specification.js.map +2 -2
- package/esm/filters/filter-field/utils/validation-utils/type-guards.js.map +1 -1
- package/esm/filters/filter-field/utils/validation-utils/validation-helper-functions.js +33 -4
- package/esm/filters/filter-field/utils/validation-utils/validation-helper-functions.js.map +2 -2
- package/esm/filters/filter-field/utils/value-operations/add-filter.js.map +1 -1
- package/esm/filters/filter-field/utils/value-operations/remove-filter.js +4 -1
- package/esm/filters/filter-field/utils/value-operations/remove-filter.js.map +2 -2
- package/esm/filters/helper/queryHelper.js.map +1 -1
- package/esm/filters/index.js.map +1 -1
- package/esm/filters/segment-selector/CustomTrigger.js.map +1 -1
- package/esm/filters/segment-selector/SegmentSelector.css +4 -4
- package/esm/filters/segment-selector/SegmentSelector.js.map +2 -2
- package/esm/filters/segment-selector/SegmentSelector.sty.js +4 -4
- package/esm/filters/segment-selector/SegmentSelector.sty.js.map +1 -1
- package/esm/filters/segment-selector/hooks/useSegments.js.map +1 -1
- package/esm/filters/segment-selector/parts/EmptySegments.css +1 -1
- package/esm/filters/segment-selector/parts/EmptySegments.sty.js +1 -1
- package/esm/filters/segment-selector/parts/EmptySegments.sty.js.map +1 -1
- package/esm/filters/segment-selector/parts/Overlay.css +8 -8
- package/esm/filters/segment-selector/parts/Overlay.sty.js +8 -8
- package/esm/filters/segment-selector/parts/Overlay.sty.js.map +1 -1
- package/esm/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.css +4 -4
- package/esm/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.sty.js +4 -4
- package/esm/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.sty.js.map +1 -1
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.css +34 -34
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js +10 -10
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js.map +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.css +22 -22
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.js.map +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.sty.js +7 -7
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.sty.js.map +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.css +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.sty.js +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.sty.js.map +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/ValueSelect.js +1 -1
- package/esm/filters/segment-selector/parts/selectionBar/ValueSelect.js.map +1 -1
- package/esm/filters/timeframe-selector/TimeframeSelector.css +2 -2
- package/esm/filters/timeframe-selector/TimeframeSelector.js +4 -4
- package/esm/filters/timeframe-selector/TimeframeSelector.js.map +1 -1
- package/esm/filters/timeframe-selector/TimeframeSelector.sty.js +2 -2
- package/esm/filters/timeframe-selector/TimeframeSelector.sty.js.map +1 -1
- package/esm/filters/timeframe-selector/TimeframeSelectorRoot.js +1 -1
- package/esm/filters/timeframe-selector/TimeframeSelectorRoot.js.map +1 -1
- package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.css +4 -4
- package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.sty.js +3 -3
- package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.sty.js.map +1 -1
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.css +4 -4
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.js +1 -1
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.js.map +2 -2
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js +4 -4
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js.map +1 -1
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlayFooter.js +3 -0
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlayFooter.js.map +2 -2
- package/esm/filters/timeframe-selector/components/presets/PresetItem.js.map +2 -2
- package/esm/filters/timeframe-selector/components/presets/Presets.css +27 -27
- package/esm/filters/timeframe-selector/components/presets/Presets.sty.js +11 -11
- package/esm/filters/timeframe-selector/components/presets/Presets.sty.js.map +1 -1
- package/esm/filters/timeframe-selector/components/trigger/Trigger.css +11 -11
- package/esm/filters/timeframe-selector/components/trigger/Trigger.sty.js +4 -4
- package/esm/filters/timeframe-selector/components/trigger/Trigger.sty.js.map +1 -1
- package/esm/filters/timeframe-selector/constants/timeframeSelectorMessages.js +5 -0
- package/esm/filters/timeframe-selector/constants/timeframeSelectorMessages.js.map +2 -2
- package/esm/filters/timeframe-selector/utils/presets-helpers.js.map +1 -1
- package/esm/forms/_base-input/BaseInput.css +87 -87
- package/esm/forms/_base-input/BaseInput.js +4 -4
- package/esm/forms/_base-input/BaseInput.js.map +2 -2
- package/esm/forms/_base-input/BaseInput.sty.js +11 -11
- package/esm/forms/_base-input/BaseInput.sty.js.map +1 -1
- package/esm/forms/_base-input/BaseInputContent.css +7 -7
- package/esm/forms/_base-input/BaseInputContent.sty.js +1 -1
- package/esm/forms/_base-input/BaseInputContent.sty.js.map +1 -1
- package/esm/forms/calendar/Calendar.css +48 -48
- package/esm/forms/calendar/Calendar.js +3 -3
- package/esm/forms/calendar/Calendar.js.map +1 -1
- package/esm/forms/calendar/Calendar.sty.js +12 -12
- package/esm/forms/calendar/Calendar.sty.js.map +1 -1
- package/esm/forms/calendar/CalendarRoot.js +36 -42
- package/esm/forms/calendar/CalendarRoot.js.map +2 -2
- package/esm/forms/calendar/components/CalendarItem.css +7 -7
- package/esm/forms/calendar/components/CalendarItem.sty.js +4 -4
- package/esm/forms/calendar/components/CalendarItem.sty.js.map +1 -1
- package/esm/forms/calendar/components/CalendarOutlineIcon.css +8 -8
- package/esm/forms/calendar/components/CalendarOutlineIcon.sty.js +5 -5
- package/esm/forms/calendar/components/CalendarOutlineIcon.sty.js.map +1 -1
- package/esm/forms/calendar/hooks/useCalendar.js +1 -2
- package/esm/forms/calendar/hooks/useCalendar.js.map +2 -2
- package/esm/forms/calendar/state/calendar-state-reducer.js.map +1 -1
- package/esm/forms/calendar/variables.sty.js +2 -2
- package/esm/forms/calendar/variables.sty.js.map +1 -1
- package/esm/forms/checkbox/Checkbox.css +20 -20
- package/esm/forms/checkbox/Checkbox.js +1 -1
- package/esm/forms/checkbox/Checkbox.js.map +1 -1
- package/esm/forms/checkbox/Checkbox.sty.js +3 -3
- package/esm/forms/checkbox/Checkbox.sty.js.map +1 -1
- package/esm/forms/date-time-picker/DateTimePicker.css +42 -42
- package/esm/forms/date-time-picker/DateTimePicker.js +2 -2
- package/esm/forms/date-time-picker/DateTimePicker.js.map +1 -1
- package/esm/forms/date-time-picker/DateTimePicker.sty.js +6 -6
- package/esm/forms/date-time-picker/DateTimePicker.sty.js.map +1 -1
- package/esm/forms/date-time-picker/hooks/useDateTimePicker.js.map +1 -1
- package/esm/forms/date-time-picker/hooks/useSpinButtons.js.map +1 -1
- package/esm/forms/date-time-range-picker/DateRangeSelector.css +1 -1
- package/esm/forms/date-time-range-picker/DateRangeSelector.sty.js +1 -1
- package/esm/forms/date-time-range-picker/DateRangeSelector.sty.js.map +1 -1
- package/esm/forms/date-time-range-picker/DateTimeInput.css +11 -11
- package/esm/forms/date-time-range-picker/DateTimeInput.js.map +1 -1
- package/esm/forms/date-time-range-picker/DateTimeInput.sty.js +3 -3
- package/esm/forms/date-time-range-picker/DateTimeInput.sty.js.map +1 -1
- package/esm/forms/date-time-range-picker/DateTimeRangePicker.css +27 -27
- package/esm/forms/date-time-range-picker/DateTimeRangePicker.js +2 -2
- package/esm/forms/date-time-range-picker/DateTimeRangePicker.js.map +1 -1
- package/esm/forms/date-time-range-picker/DateTimeRangePicker.sty.js +4 -4
- package/esm/forms/date-time-range-picker/DateTimeRangePicker.sty.js.map +1 -1
- package/esm/forms/date-time-range-picker/hooks/useDateTimeInput.js +1 -1
- package/esm/forms/date-time-range-picker/hooks/useDateTimeInput.js.map +1 -1
- package/esm/forms/form/hooks/useInternalFormRegistration.js +1 -1
- package/esm/forms/form/hooks/useInternalFormRegistration.js.map +1 -1
- package/esm/forms/form/runtime/createFormRuntime.js +20 -6
- package/esm/forms/form/runtime/createFormRuntime.js.map +2 -2
- package/esm/forms/forms-core/components/field-set/FieldSet.css +2 -2
- package/esm/forms/forms-core/components/field-set/FieldSet.sty.js +2 -2
- package/esm/forms/forms-core/components/field-set/FieldSet.sty.js.map +1 -1
- package/esm/forms/forms-core/components/form-field/FormField.js +1 -1
- package/esm/forms/forms-core/components/form-field/FormField.js.map +2 -2
- package/esm/forms/forms-core/components/form-field/FormField.sty.js +1 -1
- package/esm/forms/forms-core/components/form-field/FormField.sty.js.map +1 -1
- package/esm/forms/forms-core/components/form-field/FormFieldMessageContextProvider.js +1 -1
- package/esm/forms/forms-core/components/form-field/FormFieldMessageContextProvider.js.map +1 -1
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.css +5 -5
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.js +4 -2
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.js.map +2 -2
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.sty.js +2 -2
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.sty.js.map +1 -1
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.css +3 -3
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.js +12 -10
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.js.map +2 -2
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.sty.js +1 -1
- package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.sty.js.map +1 -1
- package/esm/forms/forms-core/components/hint/Hint.js.map +1 -1
- package/esm/forms/forms-core/components/label/Label.css +5 -5
- package/esm/forms/forms-core/components/label/Label.js +1 -1
- package/esm/forms/forms-core/components/label/Label.js.map +2 -2
- package/esm/forms/forms-core/components/label/Label.sty.js +2 -2
- package/esm/forms/forms-core/components/label/Label.sty.js.map +1 -1
- package/esm/forms/forms-core/contexts/FormFieldContext.js.map +1 -1
- package/esm/forms/forms-core/hooks/useFormControl.js +2 -2
- package/esm/forms/forms-core/hooks/useFormControl.js.map +2 -2
- package/esm/forms/forms-core/state/formfield-state-reducer.js +5 -5
- package/esm/forms/forms-core/state/formfield-state-reducer.js.map +1 -1
- package/esm/forms/forms-core/time/helpers.js.map +1 -1
- package/esm/forms/forms-core/time/timeParser.js.map +1 -1
- package/esm/forms/forms-core/time/useIntervalCallback.js.map +1 -1
- package/esm/forms/hooks/useAutofillEvent.css +8 -8
- package/esm/forms/hooks/useAutofillEvent.sty.js +4 -4
- package/esm/forms/hooks/useAutofillEvent.sty.js.map +1 -1
- package/esm/forms/hooks/useContainerFocus.css +1 -1
- package/esm/forms/hooks/useContainerFocus.sty.js +1 -1
- package/esm/forms/hooks/useContainerFocus.sty.js.map +1 -1
- package/esm/forms/index.js.map +2 -2
- package/esm/forms/number-input/NumberInput.js.map +1 -1
- package/esm/forms/number-input/NumberInputBase.js +0 -2
- package/esm/forms/number-input/NumberInputBase.js.map +2 -2
- package/esm/forms/number-input-v2/NumberInput.js +101 -166
- package/esm/forms/number-input-v2/NumberInput.js.map +2 -2
- package/esm/forms/password-input/PasswordInput.js +1 -1
- package/esm/forms/password-input/PasswordInput.js.map +1 -1
- package/esm/forms/radio/Radio.js.map +1 -1
- package/esm/forms/radio/RadioGroup.js +1 -1
- package/esm/forms/radio/RadioGroup.js.map +2 -2
- package/esm/forms/radio/RadioGroupContext.js.map +1 -1
- package/esm/forms/radio/styles.css +18 -18
- package/esm/forms/radio/styles.sty.js +8 -8
- package/esm/forms/radio/styles.sty.js.map +1 -1
- package/esm/forms/search-input/SearchInput.css +2 -2
- package/esm/forms/search-input/SearchInput.js.map +1 -1
- package/esm/forms/search-input/SearchInput.sty.js +1 -1
- package/esm/forms/search-input/SearchInput.sty.js.map +1 -1
- package/esm/forms/search-input/Stepper.css +5 -5
- package/esm/forms/search-input/Stepper.sty.js +3 -3
- package/esm/forms/search-input/Stepper.sty.js.map +1 -1
- package/esm/forms/select/Select.js +1 -1
- package/esm/forms/select/Select.js.map +1 -1
- package/esm/forms/select/components/HiddenSelect.js +0 -2
- package/esm/forms/select/components/HiddenSelect.js.map +2 -2
- package/esm/forms/select/components/MenuList.js.map +1 -1
- package/esm/forms/select/components/ValueContainer.js.map +2 -2
- package/esm/forms/select/components/sort-selected-options-first.js +1 -1
- package/esm/forms/select/components/sort-selected-options-first.js.map +1 -1
- package/esm/forms/select/hooks/use-select-options.js.map +1 -1
- package/esm/forms/select/hooks/use-select-slots.js.map +1 -1
- package/esm/forms/select/styles/Select.css +46 -46
- package/esm/forms/select/styles/Select.sty.js +24 -24
- package/esm/forms/select/styles/Select.sty.js.map +1 -1
- package/esm/forms/shared-types.js.map +2 -2
- package/esm/forms/spin-buttons/SpinButton.css +8 -8
- package/esm/forms/spin-buttons/SpinButton.sty.js +2 -2
- package/esm/forms/spin-buttons/SpinButton.sty.js.map +1 -1
- package/esm/forms/spin-buttons/hooks/useSelection.js.map +1 -1
- package/esm/forms/spin-buttons/number-spin-button/NumberSpinButton.js.map +1 -1
- package/esm/forms/spin-buttons/text-spin-button/TextSpinButton.js.map +1 -1
- package/esm/forms/switch/Switch.css +36 -36
- package/esm/forms/switch/Switch.js +1 -1
- package/esm/forms/switch/Switch.js.map +2 -2
- package/esm/forms/switch/Switch.sty.js +5 -5
- package/esm/forms/switch/Switch.sty.js.map +1 -1
- package/esm/forms/text-area/TextArea.css +59 -59
- package/esm/forms/text-area/TextArea.js +1 -1
- package/esm/forms/text-area/TextArea.js.map +1 -1
- package/esm/forms/text-area/TextArea.sty.js +3 -3
- package/esm/forms/text-area/TextArea.sty.js.map +1 -1
- package/esm/forms/toggle-button-group/Item.js.map +1 -1
- package/esm/forms/toggle-button-group/ToggleButtonGroup.js.map +2 -2
- package/esm/forms/toggle-button-group/styles.css +58 -58
- package/esm/forms/toggle-button-group/styles.sty.js +15 -15
- package/esm/forms/toggle-button-group/styles.sty.js.map +1 -1
- package/esm/forms/validation/useCustomMessageEmitter.js +3 -1
- package/esm/forms/validation/useCustomMessageEmitter.js.map +2 -2
- package/esm/layouts/app-header/AppHeader.css +1 -1
- package/esm/layouts/app-header/AppHeader.js.map +2 -2
- package/esm/layouts/app-header/AppHeader.sty.js +1 -1
- package/esm/layouts/app-header/AppHeader.sty.js.map +1 -1
- package/esm/layouts/app-header/Navigation.css +9 -9
- package/esm/layouts/app-header/Navigation.sty.js +5 -5
- package/esm/layouts/app-header/Navigation.sty.js.map +1 -1
- package/esm/layouts/app-header/action-group/ActionButton.css +17 -17
- package/esm/layouts/app-header/action-group/ActionButton.js.map +1 -1
- package/esm/layouts/app-header/action-group/ActionButton.sty.js +3 -3
- package/esm/layouts/app-header/action-group/ActionButton.sty.js.map +1 -1
- package/esm/layouts/app-header/action-group/ActionGroup.css +1 -1
- package/esm/layouts/app-header/action-group/ActionGroup.js.map +1 -1
- package/esm/layouts/app-header/action-group/ActionGroup.sty.js +1 -1
- package/esm/layouts/app-header/action-group/ActionGroup.sty.js.map +1 -1
- package/esm/layouts/app-header/action-group/NavItem.css +4 -4
- package/esm/layouts/app-header/action-group/NavItem.sty.js +3 -3
- package/esm/layouts/app-header/action-group/NavItem.sty.js.map +1 -1
- package/esm/layouts/app-header/app-icon/AppIcon.css +4 -4
- package/esm/layouts/app-header/app-icon/AppIcon.sty.js +1 -1
- package/esm/layouts/app-header/app-icon/AppIcon.sty.js.map +1 -1
- package/esm/layouts/container/Container.css +5 -5
- package/esm/layouts/container/Container.sty.js +1 -1
- package/esm/layouts/container/Container.sty.js.map +1 -1
- package/esm/layouts/divider/Divider.css +6 -6
- package/esm/layouts/divider/Divider.sty.js +1 -1
- package/esm/layouts/divider/Divider.sty.js.map +1 -1
- package/esm/layouts/help-menu/HelpMenu.css +20 -0
- package/esm/layouts/help-menu/HelpMenu.js +17 -18
- package/esm/layouts/help-menu/HelpMenu.js.map +2 -2
- package/esm/layouts/help-menu/HelpMenu.sty.js +9 -0
- package/esm/layouts/help-menu/HelpMenu.sty.js.map +7 -0
- package/esm/layouts/hooks/useLayoutStyles.js.map +1 -1
- package/esm/layouts/index.js.map +1 -1
- package/esm/layouts/input-group/InputGroup.css +62 -62
- package/esm/layouts/input-group/InputGroup.sty.js +1 -1
- package/esm/layouts/input-group/InputGroup.sty.js.map +1 -1
- package/esm/layouts/page/DetailView.css +3 -3
- package/esm/layouts/page/DetailView.js.map +2 -2
- package/esm/layouts/page/DetailView.sty.js +2 -2
- package/esm/layouts/page/DetailView.sty.js.map +1 -1
- package/esm/layouts/page/Header.css +2 -2
- package/esm/layouts/page/Header.js.map +2 -2
- package/esm/layouts/page/Header.sty.js +1 -1
- package/esm/layouts/page/Header.sty.js.map +1 -1
- package/esm/layouts/page/Main.css +6 -6
- package/esm/layouts/page/Main.js.map +2 -2
- package/esm/layouts/page/Main.sty.js +4 -4
- package/esm/layouts/page/Main.sty.js.map +1 -1
- package/esm/layouts/page/Page.css +2 -2
- package/esm/layouts/page/Page.js.map +2 -2
- package/esm/layouts/page/Page.sty.js +1 -1
- package/esm/layouts/page/Page.sty.js.map +1 -1
- package/esm/layouts/page/Panel.js.map +2 -2
- package/esm/layouts/page/PanelControlButton.js.map +2 -2
- package/esm/layouts/page/Sidebar.css +35 -35
- package/esm/layouts/page/Sidebar.js.map +2 -2
- package/esm/layouts/page/Sidebar.sty.js +8 -8
- package/esm/layouts/page/Sidebar.sty.js.map +1 -1
- package/esm/layouts/page/page-context.js.map +1 -1
- package/esm/layouts/page/page-types.js.map +1 -1
- package/esm/layouts/page/panel-context.js.map +1 -1
- package/esm/layouts/page/panel-types.js.map +1 -1
- package/esm/layouts/page/panel.css +19 -19
- package/esm/layouts/page/panel.sty.js +10 -10
- package/esm/layouts/page/panel.sty.js.map +1 -1
- package/esm/layouts/page-layout/PageLayout.css +10 -10
- package/esm/layouts/page-layout/PageLayout.js +1 -1
- package/esm/layouts/page-layout/PageLayout.js.map +2 -2
- package/esm/layouts/page-layout/PageLayout.sty.js +6 -6
- package/esm/layouts/page-layout/PageLayout.sty.js.map +1 -1
- package/esm/layouts/page-layout/details-layout/DetailsControlBar.css +3 -3
- package/esm/layouts/page-layout/details-layout/DetailsControlBar.sty.js +3 -3
- package/esm/layouts/page-layout/details-layout/DetailsControlBar.sty.js.map +1 -1
- package/esm/layouts/page-layout/details-layout/DetailsLayout.css +6 -6
- package/esm/layouts/page-layout/details-layout/DetailsLayout.sty.js +5 -5
- package/esm/layouts/page-layout/details-layout/DetailsLayout.sty.js.map +1 -1
- package/esm/layouts/page-layout/details-layout/Overlay.css +18 -18
- package/esm/layouts/page-layout/details-layout/Overlay.sty.js +4 -4
- package/esm/layouts/page-layout/details-layout/Overlay.sty.js.map +1 -1
- package/esm/layouts/page-layout/shared/TeleportTarget.js.map +1 -1
- package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.css +37 -37
- package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js +14 -14
- package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js.map +1 -1
- package/esm/layouts/split-layout/SplitLayout.css +19 -19
- package/esm/layouts/split-layout/SplitLayout.sty.js +7 -7
- package/esm/layouts/split-layout/SplitLayout.sty.js.map +1 -1
- package/esm/layouts/surface/Surface.css +39 -39
- package/esm/layouts/surface/Surface.sty.js +2 -2
- package/esm/layouts/surface/Surface.sty.js.map +1 -1
- package/esm/layouts/surface/variables.sty.js +1 -1
- package/esm/layouts/surface/variables.sty.js.map +1 -1
- package/esm/layouts/title-bar/TitleBar.css +5 -5
- package/esm/layouts/title-bar/TitleBar.sty.js +4 -4
- package/esm/layouts/title-bar/TitleBar.sty.js.map +1 -1
- package/esm/navigation/breadcrumbs/Breadcrumbs.css +9 -9
- package/esm/navigation/breadcrumbs/Breadcrumbs.sty.js +5 -5
- package/esm/navigation/breadcrumbs/Breadcrumbs.sty.js.map +1 -1
- package/esm/navigation/menu/Content.js +2 -0
- package/esm/navigation/menu/Content.js.map +2 -2
- package/esm/navigation/menu/Group.js +42 -16
- package/esm/navigation/menu/Group.js.map +2 -2
- package/esm/navigation/menu/Item.js +10 -5
- package/esm/navigation/menu/Item.js.map +2 -2
- package/esm/navigation/menu/Label.js +28 -14
- package/esm/navigation/menu/Label.js.map +2 -2
- package/esm/navigation/menu/Menu.css +17 -17
- package/esm/navigation/menu/Menu.js +2 -1
- package/esm/navigation/menu/Menu.js.map +2 -2
- package/esm/navigation/menu/Menu.sty.js +8 -8
- package/esm/navigation/menu/Menu.sty.js.map +1 -1
- package/esm/navigation/menu/MobileContent.js +4 -1
- package/esm/navigation/menu/MobileContent.js.map +2 -2
- package/esm/navigation/menu/MobileMenu.css +14 -14
- package/esm/navigation/menu/MobileMenu.sty.js +8 -8
- package/esm/navigation/menu/MobileMenu.sty.js.map +1 -1
- package/esm/navigation/menu/MobileSubTrigger.js +1 -0
- package/esm/navigation/menu/MobileSubTrigger.js.map +2 -2
- package/esm/navigation/menu/contexts/MenuGroupContext.js +6 -0
- package/esm/navigation/menu/contexts/MenuGroupContext.js.map +7 -0
- package/esm/navigation/tabs/RenderTab.css +14 -14
- package/esm/navigation/tabs/RenderTab.sty.js +3 -3
- package/esm/navigation/tabs/RenderTab.sty.js.map +1 -1
- package/esm/navigation/tabs/TabPanel.css +3 -3
- package/esm/navigation/tabs/TabPanel.sty.js +2 -2
- package/esm/navigation/tabs/TabPanel.sty.js.map +1 -1
- package/esm/navigation/tabs/Tabs.css +9 -9
- package/esm/navigation/tabs/Tabs.js.map +1 -1
- package/esm/navigation/tabs/Tabs.sty.js +5 -5
- package/esm/navigation/tabs/Tabs.sty.js.map +1 -1
- package/esm/notifications/notification-settings/NotificationSettings.css +1 -1
- package/esm/notifications/notification-settings/NotificationSettings.sty.js +1 -1
- package/esm/notifications/notification-settings/NotificationSettings.sty.js.map +1 -1
- package/esm/notifications/toast/Toast.css +6 -6
- package/esm/notifications/toast/Toast.sty.js +4 -4
- package/esm/notifications/toast/Toast.sty.js.map +1 -1
- package/esm/notifications/toast/ToastContainer.css +17 -17
- package/esm/notifications/toast/ToastContainer.js.map +1 -1
- package/esm/notifications/toast/ToastContainer.sty.js +1 -1
- package/esm/notifications/toast/ToastContainer.sty.js.map +1 -1
- package/esm/overlays/drawer/Drawer.css +9 -9
- package/esm/overlays/drawer/Drawer.sty.js +5 -5
- package/esm/overlays/drawer/Drawer.sty.js.map +1 -1
- package/esm/overlays/hooks/useOverlay.js.map +1 -1
- package/esm/overlays/hooks/useOverlayWithTrigger.js.map +1 -1
- package/esm/overlays/hooks/usePress.js +4 -4
- package/esm/overlays/hooks/usePress.js.map +1 -1
- package/esm/overlays/index.js.map +1 -1
- package/esm/overlays/modal/Modal.css +16 -16
- package/esm/overlays/modal/Modal.sty.js +7 -7
- package/esm/overlays/modal/Modal.sty.js.map +1 -1
- package/esm/overlays/overlay/Overlay.css +1 -1
- package/esm/overlays/overlay/Overlay.sty.js +1 -1
- package/esm/overlays/overlay/Overlay.sty.js.map +1 -1
- package/esm/overlays/sheet/Sheet.css +8 -7
- package/esm/overlays/sheet/Sheet.js +5 -4
- package/esm/overlays/sheet/Sheet.js.map +2 -2
- package/esm/overlays/sheet/Sheet.sty.js +5 -5
- package/esm/overlays/sheet/Sheet.sty.js.map +1 -1
- package/esm/overlays/tooltip/Tooltip.js +1 -1
- package/esm/overlays/tooltip/Tooltip.js.map +1 -1
- package/esm/overlays/tooltip/tooltip.css +18 -18
- package/esm/overlays/tooltip/tooltip.sty.js +3 -3
- package/esm/overlays/tooltip/tooltip.sty.js.map +1 -1
- package/esm/overlays/utils/popper-modifiers.js.map +1 -1
- package/esm/styles/colorUtils.css +60 -60
- package/esm/styles/colorUtils.sty.js +2 -2
- package/esm/styles/colorUtils.sty.js.map +1 -1
- package/esm/styles/container.css +47 -47
- package/esm/styles/container.sty.js +2 -2
- package/esm/styles/container.sty.js.map +1 -1
- package/esm/styles/ellipsis.css +1 -1
- package/esm/styles/ellipsis.sty.js +1 -1
- package/esm/styles/ellipsis.sty.js.map +1 -1
- package/esm/styles/field.css +256 -256
- package/esm/styles/field.sty.js +2 -2
- package/esm/styles/field.sty.js.map +1 -1
- package/esm/styles/safe-sprinkles.js.map +1 -1
- package/esm/styles/screen-reader-only.css +1 -1
- package/esm/styles/screen-reader-only.sty.js +1 -1
- package/esm/styles/screen-reader-only.sty.js.map +1 -1
- package/esm/styles/sprinkles.css +262 -262
- package/esm/styles/sprinkles.sty.js +1 -1
- package/esm/styles/sprinkles.sty.js.map +1 -1
- package/esm/styles/textStyle.css +8 -8
- package/esm/styles/textStyle.sty.js +1 -1
- package/esm/styles/textStyle.sty.js.map +1 -1
- package/esm/tables/DataTable/DataTable.css +2 -2
- package/esm/tables/DataTable/DataTable.js +25 -23
- package/esm/tables/DataTable/DataTable.js.map +2 -2
- package/esm/tables/DataTable/DataTable.sty.js +7 -7
- package/esm/tables/DataTable/DataTable.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Alignment.css +6 -6
- package/esm/tables/DataTable/components/Alignment.sty.js +2 -2
- package/esm/tables/DataTable/components/Alignment.sty.js.map +1 -1
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.css +6 -6
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.js.map +2 -2
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js +3 -3
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js.map +1 -1
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowHeaderCells.js +2 -2
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowHeaderCells.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableBody.css +2 -2
- package/esm/tables/DataTable/components/DataTableBody.js +1 -1
- package/esm/tables/DataTable/components/DataTableBody.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableBody.sty.js +2 -2
- package/esm/tables/DataTable/components/DataTableBody.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableCell.css +83 -83
- package/esm/tables/DataTable/components/DataTableCell.js +16 -6
- package/esm/tables/DataTable/components/DataTableCell.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableCell.sty.js +5 -5
- package/esm/tables/DataTable/components/DataTableCell.sty.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableContent.js +3 -10
- package/esm/tables/DataTable/components/DataTableContent.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableDefaultCell.css +23 -23
- package/esm/tables/DataTable/components/DataTableDefaultCell.sty.js +1 -1
- package/esm/tables/DataTable/components/DataTableDefaultCell.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableDragScrollLock.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableEmptyState.css +6 -6
- package/esm/tables/DataTable/components/DataTableEmptyState.sty.js +2 -2
- package/esm/tables/DataTable/components/DataTableEmptyState.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableHeader.css +2 -2
- package/esm/tables/DataTable/components/DataTableHeader.js +2 -2
- package/esm/tables/DataTable/components/DataTableHeader.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableHeader.sty.js +2 -2
- package/esm/tables/DataTable/components/DataTableHeader.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableHeaderCell.css +64 -64
- package/esm/tables/DataTable/components/DataTableHeaderCell.js +7 -6
- package/esm/tables/DataTable/components/DataTableHeaderCell.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableHeaderCell.sty.js +23 -23
- package/esm/tables/DataTable/components/DataTableHeaderCell.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableRow.css +13 -13
- package/esm/tables/DataTable/components/DataTableRow.js +3 -3
- package/esm/tables/DataTable/components/DataTableRow.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableRow.sty.js +1 -1
- package/esm/tables/DataTable/components/DataTableRow.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableScrollShadow.css +10 -10
- package/esm/tables/DataTable/components/DataTableScrollShadow.js +2 -2
- package/esm/tables/DataTable/components/DataTableScrollShadow.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableScrollShadow.sty.js +2 -2
- package/esm/tables/DataTable/components/DataTableScrollShadow.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableVirtualizationContainer.css +21 -21
- package/esm/tables/DataTable/components/DataTableVirtualizationContainer.js +2 -2
- package/esm/tables/DataTable/components/DataTableVirtualizationContainer.js.map +2 -2
- package/esm/tables/DataTable/components/DataTableVirtualizationContainer.sty.js +1 -1
- package/esm/tables/DataTable/components/DataTableVirtualizationContainer.sty.js.map +1 -1
- package/esm/tables/DataTable/components/SettingsModal/DataTableSettingsModal.css +3 -3
- package/esm/tables/DataTable/components/SettingsModal/DataTableSettingsModal.sty.js +2 -2
- package/esm/tables/DataTable/components/SettingsModal/DataTableSettingsModal.sty.js.map +1 -1
- package/esm/tables/DataTable/components/TableActions/DataTableSelectionChip.css +5 -5
- package/esm/tables/DataTable/components/TableActions/DataTableSelectionChip.sty.js +2 -2
- package/esm/tables/DataTable/components/TableActions/DataTableSelectionChip.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.css +7 -7
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.sty.js +3 -3
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/column-order-settings-dnd-utils.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnPinningMenu.js +9 -6
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnPinningMenu.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnVisibilityToggle.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.css +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.sty.js +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettings.js +11 -14
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettings.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettingsModal.js +5 -5
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettingsModal.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.css +19 -19
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js +14 -20
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.sty.js +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.css +11 -11
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.js +4 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.sty.js +8 -8
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.css +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.js +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.sty.js +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.css +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.sty.js +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.css +4 -4
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.js +2 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js +3 -3
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/column-settings-utils.js +1 -1
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/column-settings-utils.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.css +3 -3
- package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js +2 -2
- package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js.map +1 -1
- package/esm/tables/DataTable/contexts/DataTableContext.js +9 -6
- package/esm/tables/DataTable/contexts/DataTableContext.js.map +2 -2
- package/esm/tables/DataTable/features/CellFormatter/CellFormatter.js +26 -14
- package/esm/tables/DataTable/features/CellFormatter/CellFormatter.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnFontStyle/ColumnFontStyle.js +31 -18
- package/esm/tables/DataTable/features/ColumnFontStyle/ColumnFontStyle.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.css +8 -8
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.js +54 -45
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js +4 -4
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js.map +1 -1
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnOrder/column-order-dnd-utils.js +6 -6
- package/esm/tables/DataTable/features/ColumnOrder/column-order-dnd-utils.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnOrder/column-order-utils.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnOrder/useColumnOrder.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnPinning/ColumnPinning.js +190 -173
- package/esm/tables/DataTable/features/ColumnPinning/ColumnPinning.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnPinning/column-pinning-utils.js +24 -14
- package/esm/tables/DataTable/features/ColumnPinning/column-pinning-utils.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnPinning/useColumnPinning.js +23 -17
- package/esm/tables/DataTable/features/ColumnPinning/useColumnPinning.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.css +3 -3
- package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.js +40 -40
- package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js +1 -1
- package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js.map +1 -1
- package/esm/tables/DataTable/features/ColumnSizing/useColumnSizing.js +1 -3
- package/esm/tables/DataTable/features/ColumnSizing/useColumnSizing.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.css +1 -1
- package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js +1 -1
- package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js.map +1 -1
- package/esm/tables/DataTable/features/ColumnVisibility/ColumnVisibility.js +102 -94
- package/esm/tables/DataTable/features/ColumnVisibility/ColumnVisibility.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnVisibility/useColumnVisibility.js.map +2 -2
- package/esm/tables/DataTable/features/Config.js +18 -13
- package/esm/tables/DataTable/features/Config.js.map +2 -2
- package/esm/tables/DataTable/features/Download/Download.js +56 -52
- package/esm/tables/DataTable/features/Download/Download.js.map +2 -2
- package/esm/tables/DataTable/features/Download/useDownload.js.map +2 -2
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.css +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.sty.js +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.sty.js.map +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.css +3 -3
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.js.map +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.sty.js +2 -2
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.sty.js.map +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.css +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.sty.js +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.sty.js.map +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.css +4 -4
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.sty.js +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.sty.js.map +1 -1
- package/esm/tables/DataTable/features/GanttChart/GanttChart.js +10 -7
- package/esm/tables/DataTable/features/GanttChart/GanttChart.js.map +2 -2
- package/esm/tables/DataTable/features/GanttChart/useGanttChart.js.map +2 -2
- package/esm/tables/DataTable/features/Layout/Layout.js +117 -101
- package/esm/tables/DataTable/features/Layout/Layout.js.map +2 -2
- package/esm/tables/DataTable/features/Layout/layout-utils.js +5 -3
- package/esm/tables/DataTable/features/Layout/layout-utils.js.map +2 -2
- package/esm/tables/DataTable/features/Layout/useLayout.js.map +2 -2
- package/esm/tables/DataTable/features/LineWrap/LineWrap.js +33 -20
- package/esm/tables/DataTable/features/LineWrap/LineWrap.js.map +2 -2
- package/esm/tables/DataTable/features/LineWrap/useLineWrap.js.map +1 -1
- package/esm/tables/DataTable/features/LoadingState/LoadingState.css +3 -3
- package/esm/tables/DataTable/features/LoadingState/LoadingState.js.map +2 -2
- package/esm/tables/DataTable/features/LoadingState/LoadingState.sty.js +3 -3
- package/esm/tables/DataTable/features/LoadingState/LoadingState.sty.js.map +1 -1
- package/esm/tables/DataTable/features/LoadingState/useLoadingState.js.map +2 -2
- package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.css +5 -5
- package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.js +1 -1
- package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.js.map +2 -2
- package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js +2 -2
- package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js.map +1 -1
- package/esm/tables/DataTable/features/Pagination/Pagination.js +28 -25
- package/esm/tables/DataTable/features/Pagination/Pagination.js.map +2 -2
- package/esm/tables/DataTable/features/Pagination/pagination-row-model.js +1 -2
- package/esm/tables/DataTable/features/Pagination/pagination-row-model.js.map +2 -2
- package/esm/tables/DataTable/features/Pagination/usePagination.js +1 -3
- package/esm/tables/DataTable/features/Pagination/usePagination.js.map +2 -2
- package/esm/tables/DataTable/features/RowDetails/RowDetails.css +13 -13
- package/esm/tables/DataTable/features/RowDetails/RowDetails.js +38 -30
- package/esm/tables/DataTable/features/RowDetails/RowDetails.js.map +2 -2
- package/esm/tables/DataTable/features/RowDetails/RowDetails.sty.js +3 -3
- package/esm/tables/DataTable/features/RowDetails/RowDetails.sty.js.map +1 -1
- package/esm/tables/DataTable/features/RowDetails/RowDetailsColumnDef.js.map +2 -2
- package/esm/tables/DataTable/features/RowDetails/components/RowDetailsElement.js.map +2 -2
- package/esm/tables/DataTable/features/RowDetails/details-row-model.js +17 -14
- package/esm/tables/DataTable/features/RowDetails/details-row-model.js.map +2 -2
- package/esm/tables/DataTable/features/RowIdentification/RowIdentification.js.map +2 -2
- package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.css +17 -17
- package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.js +48 -40
- package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.js.map +2 -2
- package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js +1 -1
- package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js.map +1 -1
- package/esm/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js +1 -1
- package/esm/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js.map +2 -2
- package/esm/tables/DataTable/features/RowInteractivity/useRowInteractivity.js +2 -2
- package/esm/tables/DataTable/features/RowInteractivity/useRowInteractivity.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/RowOrder.css +8 -8
- package/esm/tables/DataTable/features/RowOrder/RowOrder.js +34 -26
- package/esm/tables/DataTable/features/RowOrder/RowOrder.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/RowOrder.sty.js +3 -3
- package/esm/tables/DataTable/features/RowOrder/RowOrder.sty.js.map +1 -1
- package/esm/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js +1 -1
- package/esm/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/row-order-column-utils.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/row-order-model.js +8 -6
- package/esm/tables/DataTable/features/RowOrder/row-order-model.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/row-order-utils.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/useRowOrder.js.map +2 -2
- package/esm/tables/DataTable/features/RowSelection/RowSelection.js +78 -70
- package/esm/tables/DataTable/features/RowSelection/RowSelection.js.map +2 -2
- package/esm/tables/DataTable/features/RowSelection/RowSelectionCells.js +1 -1
- package/esm/tables/DataTable/features/RowSelection/RowSelectionCells.js.map +2 -2
- package/esm/tables/DataTable/features/RowSelection/useRowSelection.js +12 -7
- package/esm/tables/DataTable/features/RowSelection/useRowSelection.js.map +2 -2
- package/esm/tables/DataTable/features/Sorting/Sorting.css +34 -34
- package/esm/tables/DataTable/features/Sorting/Sorting.js +48 -45
- package/esm/tables/DataTable/features/Sorting/Sorting.js.map +2 -2
- package/esm/tables/DataTable/features/Sorting/Sorting.sty.js +3 -3
- package/esm/tables/DataTable/features/Sorting/Sorting.sty.js.map +1 -1
- package/esm/tables/DataTable/features/Sorting/compare-functions.js.map +1 -1
- package/esm/tables/DataTable/features/Sorting/sorted-row-model.js +1 -2
- package/esm/tables/DataTable/features/Sorting/sorted-row-model.js.map +2 -2
- package/esm/tables/DataTable/features/Sorting/useSorting.js.map +2 -2
- package/esm/tables/DataTable/features/SubRows/SubRows.css +19 -19
- package/esm/tables/DataTable/features/SubRows/SubRows.js +95 -84
- package/esm/tables/DataTable/features/SubRows/SubRows.js.map +2 -2
- package/esm/tables/DataTable/features/SubRows/SubRows.sty.js +5 -5
- package/esm/tables/DataTable/features/SubRows/SubRows.sty.js.map +1 -1
- package/esm/tables/DataTable/features/SubRows/components/SubRowCellContext.js.map +2 -2
- package/esm/tables/DataTable/features/SubRows/components/SubRowExpanders.js.map +2 -2
- package/esm/tables/DataTable/features/SubRows/sub-rows-utils.js.map +2 -2
- package/esm/tables/DataTable/features/SubRows/subrows-row-model.js +1 -2
- package/esm/tables/DataTable/features/SubRows/subrows-row-model.js.map +2 -2
- package/esm/tables/DataTable/features/SubRows/useSubRows.js +1 -1
- package/esm/tables/DataTable/features/SubRows/useSubRows.js.map +2 -2
- package/esm/tables/DataTable/features/Thresholds/Thresholds.css +2 -2
- package/esm/tables/DataTable/features/Thresholds/Thresholds.js +34 -27
- package/esm/tables/DataTable/features/Thresholds/Thresholds.js.map +2 -2
- package/esm/tables/DataTable/features/Thresholds/Thresholds.sty.js +3 -3
- package/esm/tables/DataTable/features/Thresholds/Thresholds.sty.js.map +1 -1
- package/esm/tables/DataTable/features/Thresholds/normalize-rules.js.map +1 -1
- package/esm/tables/DataTable/features/Thresholds/useThresholds.js.map +2 -2
- package/esm/tables/DataTable/features/UserActions/FloatingMenu.js.map +1 -1
- package/esm/tables/DataTable/features/UserActions/RowActions.css +4 -4
- package/esm/tables/DataTable/features/UserActions/RowActions.sty.js +1 -1
- package/esm/tables/DataTable/features/UserActions/RowActions.sty.js.map +1 -1
- package/esm/tables/DataTable/features/UserActions/UserActions.css +20 -20
- package/esm/tables/DataTable/features/UserActions/UserActions.js +85 -69
- package/esm/tables/DataTable/features/UserActions/UserActions.js.map +2 -2
- package/esm/tables/DataTable/features/UserActions/UserActions.sty.js +2 -2
- package/esm/tables/DataTable/features/UserActions/UserActions.sty.js.map +1 -1
- package/esm/tables/DataTable/features/UserActions/UserActionsMenu.js +5 -5
- package/esm/tables/DataTable/features/UserActions/UserActionsMenu.js.map +2 -2
- package/esm/tables/DataTable/features/UserActions/useCloseMenuOnScroll.js +2 -2
- package/esm/tables/DataTable/features/UserActions/useCloseMenuOnScroll.js.map +2 -2
- package/esm/tables/DataTable/features/UserActions/useUserActions.js.map +1 -1
- package/esm/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js +82 -77
- package/esm/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js.map +2 -2
- package/esm/tables/DataTable/features/VisualVariants/VisualVariants.js +22 -17
- package/esm/tables/DataTable/features/VisualVariants/VisualVariants.js.map +2 -2
- package/esm/tables/DataTable/features/VisualVariants/useVisualVariants.js.map +2 -2
- package/esm/tables/DataTable/features/createCoreRowModel.js +1 -2
- package/esm/tables/DataTable/features/createCoreRowModel.js.map +2 -2
- package/esm/tables/DataTable/features/features.js +9 -1
- package/esm/tables/DataTable/features/features.js.map +2 -2
- package/esm/tables/DataTable/features/types/table.types.js +18 -0
- package/esm/tables/DataTable/features/types/table.types.js.map +7 -0
- package/esm/tables/DataTable/hooks/makeAccessorFunction.js.map +1 -1
- package/esm/tables/DataTable/hooks/useBuiltInColumns.js.map +2 -2
- package/esm/tables/DataTable/hooks/useColumnRemeasure.js +1 -1
- package/esm/tables/DataTable/hooks/useColumnRemeasure.js.map +2 -2
- package/esm/tables/DataTable/hooks/useHeaderCellInteractions.js +5 -3
- package/esm/tables/DataTable/hooks/useHeaderCellInteractions.js.map +2 -2
- package/esm/tables/DataTable/hooks/useHeaderDragAndDrop.js.map +2 -2
- package/esm/tables/DataTable/hooks/useTable/datatable-typeguards.js +4 -4
- package/esm/tables/DataTable/hooks/useTable/datatable-typeguards.js.map +2 -2
- package/esm/tables/DataTable/messages.js +2 -2
- package/esm/tables/DataTable/messages.js.map +2 -2
- package/esm/tables/SimpleTable/SimpleTable.css +27 -27
- package/esm/tables/SimpleTable/SimpleTable.js +9 -6
- package/esm/tables/SimpleTable/SimpleTable.js.map +2 -2
- package/esm/tables/SimpleTable/SimpleTable.sty.js +1 -1
- package/esm/tables/SimpleTable/SimpleTable.sty.js.map +1 -1
- package/esm/tables/hooks/useFilteredData.js +1 -4
- package/esm/tables/hooks/useFilteredData.js.map +2 -2
- package/esm/tables/hooks/useLockedRowOrder.js +1 -1
- package/esm/tables/hooks/useLockedRowOrder.js.map +1 -1
- package/esm/tables/index.js.map +1 -1
- package/esm/tables/utils/datatable-config-utils.js.map +1 -1
- package/esm/tables/utils/get-column-label.js.map +2 -2
- package/esm/tables/utils/is-target-interactive.js +4 -2
- package/esm/tables/utils/is-target-interactive.js.map +2 -2
- package/esm/typography/block-quote/Blockquote.css +2 -2
- package/esm/typography/block-quote/Blockquote.sty.js +1 -1
- package/esm/typography/block-quote/Blockquote.sty.js.map +1 -1
- package/esm/typography/code/Code.css +9 -2
- package/esm/typography/code/Code.sty.js +1 -1
- package/esm/typography/code/Code.sty.js.map +1 -1
- package/esm/typography/emphasis/Emphasis.css +1 -1
- package/esm/typography/emphasis/Emphasis.sty.js +1 -1
- package/esm/typography/emphasis/Emphasis.sty.js.map +1 -1
- package/esm/typography/external-link/ExternalLink.css +6 -6
- package/esm/typography/external-link/ExternalLink.sty.js +1 -1
- package/esm/typography/external-link/ExternalLink.sty.js.map +1 -1
- package/esm/typography/heading/Heading.css +7 -7
- package/esm/typography/heading/Heading.sty.js +1 -1
- package/esm/typography/heading/Heading.sty.js.map +1 -1
- package/esm/typography/highlight/Highlight.css +2 -2
- package/esm/typography/highlight/Highlight.sty.js +1 -1
- package/esm/typography/highlight/Highlight.sty.js.map +1 -1
- package/esm/typography/link/Link.css +4 -4
- package/esm/typography/link/Link.sty.js +1 -1
- package/esm/typography/link/Link.sty.js.map +1 -1
- package/esm/typography/list/List.css +4 -4
- package/esm/typography/list/List.sty.js +2 -2
- package/esm/typography/list/List.sty.js.map +1 -1
- package/esm/typography/paragraph/Paragraph.css +3 -3
- package/esm/typography/paragraph/Paragraph.sty.js +1 -1
- package/esm/typography/paragraph/Paragraph.sty.js.map +1 -1
- package/esm/typography/strikethrough/Strikethrough.css +1 -1
- package/esm/typography/strikethrough/Strikethrough.sty.js +1 -1
- package/esm/typography/strikethrough/Strikethrough.sty.js.map +1 -1
- package/esm/typography/strong/Strong.css +1 -1
- package/esm/typography/strong/Strong.sty.js +1 -1
- package/esm/typography/strong/Strong.sty.js.map +1 -1
- package/esm/typography/text/Text.css +3 -3
- package/esm/typography/text/Text.sty.js +1 -1
- package/esm/typography/text/Text.sty.js.map +1 -1
- package/esm/typography/text-ellipsis/TextEllipsis.css +6 -6
- package/esm/typography/text-ellipsis/TextEllipsis.sty.js +2 -2
- package/esm/typography/text-ellipsis/TextEllipsis.sty.js.map +1 -1
- package/filters/filter/FilterBar.js +3 -4
- package/filters/filter-field/FilterField.css +166 -143
- package/filters/filter-field/FilterField.css.d.ts +3 -3
- package/filters/filter-field/FilterField.d.ts +2 -1
- package/filters/filter-field/FilterField.js +37 -16
- package/filters/filter-field/FilterField.sty.js +29 -29
- package/filters/filter-field/FilterField.types.d.ts +9 -0
- package/filters/filter-field/components/FilterFieldSuffixButtons.css +3 -3
- package/filters/filter-field/components/FilterFieldSuffixButtons.sty.js +3 -3
- package/filters/filter-field/components/FilterStatement.css +25 -14
- package/filters/filter-field/components/FilterStatement.css.d.ts +1 -1
- package/filters/filter-field/components/FilterStatement.js +53 -24
- package/filters/filter-field/components/FilterStatement.sty.js +9 -9
- package/filters/filter-field/contexts/FilterFieldContext.js +2 -0
- package/filters/filter-field/contexts/FilterFieldContext.types.d.ts +8 -1
- package/filters/filter-field/decorations/decoration-marks.d.ts +2 -0
- package/filters/filter-field/decorations/decoration-marks.js +7 -1
- package/filters/filter-field/decorations/filter-statements.js +1 -0
- package/filters/filter-field/decorations/wildcards-in-value.d.ts +23 -0
- package/filters/filter-field/decorations/wildcards-in-value.js +116 -0
- package/filters/filter-field/extensions/syntax-highlighting-extension.d.ts +1 -1
- package/filters/filter-field/extensions/syntax-highlighting-extension.js +23 -19
- package/filters/filter-field/hooks/useShowMore.js +1 -1
- package/filters/filter-field/hooks/useSuggestions.d.ts +0 -1
- package/filters/filter-field/hooks/useSuggestions.js +3 -7
- package/filters/filter-field/messages.d.ts +12 -27
- package/filters/filter-field/messages.js +19 -34
- package/filters/filter-field/suggestions/AriaLiveInfo.d.ts +7 -7
- package/filters/filter-field/suggestions/AriaLiveInfo.js +62 -158
- package/filters/filter-field/suggestions/RecentPinnedSuggestionItem.css +9 -9
- package/filters/filter-field/suggestions/RecentPinnedSuggestionItem.sty.js +2 -2
- package/filters/filter-field/suggestions/Suggestion.css +24 -24
- package/filters/filter-field/suggestions/Suggestion.d.ts +10 -0
- package/filters/filter-field/suggestions/Suggestion.js +11 -4
- package/filters/filter-field/suggestions/Suggestion.sty.js +16 -16
- package/filters/filter-field/suggestions/SuggestionDetails.css +2 -2
- package/filters/filter-field/suggestions/SuggestionDetails.sty.js +2 -2
- package/filters/filter-field/suggestions/SuggestionGroup.css +6 -6
- package/filters/filter-field/suggestions/SuggestionGroup.sty.js +3 -3
- package/filters/filter-field/suggestions/SuggestionGroupLabel.css +1 -1
- package/filters/filter-field/suggestions/SuggestionGroupLabel.sty.js +1 -1
- package/filters/filter-field/suggestions/SuggestionTips.css +8 -8
- package/filters/filter-field/suggestions/SuggestionTips.js +1 -0
- package/filters/filter-field/suggestions/SuggestionTips.sty.js +6 -6
- package/filters/filter-field/suggestions/Suggestions.js +8 -15
- package/filters/filter-field/suggestions/SuggestionsOverlay.css +7 -7
- package/filters/filter-field/suggestions/SuggestionsOverlay.js +36 -32
- package/filters/filter-field/suggestions/SuggestionsOverlay.sty.js +5 -5
- package/filters/filter-field/types/conversion-tree-nodes.d.ts +1 -1
- package/filters/filter-field/types/tree-nodes.d.ts +1 -1
- package/filters/filter-field/types/validation.d.ts +1 -1
- package/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js +61 -9
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js +7 -3
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js +49 -6
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js +13 -1
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.d.ts +1 -0
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js +92 -7
- package/filters/filter-field/utils/conversion/tree-string-conversion.js +15 -4
- package/filters/filter-field/utils/escape-suggestion.js +6 -2
- package/filters/filter-field/utils/get-suggestion-transaction.js +44 -3
- package/filters/filter-field/utils/suggestions-utils/operator-suggestions.js +1 -1
- package/filters/filter-field/utils/suggestions-utils/shared-suggestions.js +4 -3
- package/filters/filter-field/utils/suggestions-utils/value-suggestions.js +42 -0
- package/filters/filter-field/utils/validation-utils/operator-specification.js +8 -2
- package/filters/filter-field/utils/validation-utils/validation-helper-functions.js +33 -4
- package/filters/filter-field/utils/value-operations/remove-filter.js +4 -1
- package/filters/segment-selector/SegmentSelector.css +4 -4
- package/filters/segment-selector/SegmentSelector.sty.js +4 -4
- package/filters/segment-selector/parts/EmptySegments.css +1 -1
- package/filters/segment-selector/parts/EmptySegments.sty.js +1 -1
- package/filters/segment-selector/parts/Overlay.css +8 -8
- package/filters/segment-selector/parts/Overlay.sty.js +8 -8
- package/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.css +4 -4
- package/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.sty.js +4 -4
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.css +34 -34
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js +10 -10
- package/filters/segment-selector/parts/selectionBar/SegmentSelect.css +22 -22
- package/filters/segment-selector/parts/selectionBar/SegmentSelect.sty.js +7 -7
- package/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.css +1 -1
- package/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.sty.js +1 -1
- package/filters/segment-selector/parts/selectionBar/ValueSelect.js +1 -1
- package/filters/timeframe-selector/TimeframeSelector.css +2 -2
- package/filters/timeframe-selector/TimeframeSelector.js +4 -4
- package/filters/timeframe-selector/TimeframeSelector.sty.js +2 -2
- package/filters/timeframe-selector/TimeframeSelectorRoot.js +1 -1
- package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.css +4 -4
- package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.sty.js +3 -3
- package/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.css +4 -4
- package/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.js +1 -1
- package/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js +4 -4
- package/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlayFooter.js +3 -0
- package/filters/timeframe-selector/components/presets/Presets.css +27 -27
- package/filters/timeframe-selector/components/presets/Presets.sty.js +11 -11
- package/filters/timeframe-selector/components/trigger/Trigger.css +11 -11
- package/filters/timeframe-selector/components/trigger/Trigger.sty.js +4 -4
- package/filters/timeframe-selector/constants/timeframeSelectorMessages.d.ts +5 -0
- package/filters/timeframe-selector/constants/timeframeSelectorMessages.js +5 -0
- package/forms/_base-input/BaseInput.css +87 -87
- package/forms/_base-input/BaseInput.js +4 -4
- package/forms/_base-input/BaseInput.sty.js +11 -11
- package/forms/_base-input/BaseInputContent.css +7 -7
- package/forms/_base-input/BaseInputContent.sty.js +1 -1
- package/forms/calendar/Calendar.css +48 -48
- package/forms/calendar/Calendar.js +3 -3
- package/forms/calendar/Calendar.sty.js +12 -12
- package/forms/calendar/CalendarRoot.js +36 -42
- package/forms/calendar/components/CalendarItem.css +7 -7
- package/forms/calendar/components/CalendarItem.sty.js +4 -4
- package/forms/calendar/components/CalendarOutlineIcon.css +8 -8
- package/forms/calendar/components/CalendarOutlineIcon.sty.js +5 -5
- package/forms/calendar/hooks/useCalendar.js +1 -2
- package/forms/calendar/variables.sty.js +2 -2
- package/forms/checkbox/Checkbox.css +20 -20
- package/forms/checkbox/Checkbox.js +1 -1
- package/forms/checkbox/Checkbox.sty.js +3 -3
- package/forms/date-time-picker/DateTimePicker.css +42 -42
- package/forms/date-time-picker/DateTimePicker.js +2 -2
- package/forms/date-time-picker/DateTimePicker.sty.js +6 -6
- package/forms/date-time-range-picker/DateRangeSelector.css +1 -1
- package/forms/date-time-range-picker/DateRangeSelector.sty.js +1 -1
- package/forms/date-time-range-picker/DateTimeInput.css +11 -11
- package/forms/date-time-range-picker/DateTimeInput.sty.js +3 -3
- package/forms/date-time-range-picker/DateTimeRangePicker.css +27 -27
- package/forms/date-time-range-picker/DateTimeRangePicker.js +2 -2
- package/forms/date-time-range-picker/DateTimeRangePicker.sty.js +4 -4
- package/forms/date-time-range-picker/hooks/useDateTimeInput.js +1 -1
- package/forms/form/hooks/useInternalFormRegistration.js +1 -1
- package/forms/form/runtime/createFormRuntime.js +20 -6
- package/forms/forms-core/components/field-set/FieldSet.css +2 -2
- package/forms/forms-core/components/field-set/FieldSet.sty.js +2 -2
- package/forms/forms-core/components/form-field/FormField.js +1 -1
- package/forms/forms-core/components/form-field/FormField.sty.js +1 -1
- package/forms/forms-core/components/form-field/FormFieldMessageContextProvider.js +1 -1
- package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.css +5 -5
- package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.d.ts +8 -0
- package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.js +4 -2
- package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.sty.js +2 -2
- package/forms/forms-core/components/form-field-messages/FormFieldMessages.css +3 -3
- package/forms/forms-core/components/form-field-messages/FormFieldMessages.d.ts +19 -2
- package/forms/forms-core/components/form-field-messages/FormFieldMessages.js +11 -10
- package/forms/forms-core/components/form-field-messages/FormFieldMessages.sty.js +1 -1
- package/forms/forms-core/components/label/Label.css +5 -5
- package/forms/forms-core/components/label/Label.js +1 -1
- package/forms/forms-core/components/label/Label.sty.js +2 -2
- package/forms/forms-core/hooks/useFormControl.js +2 -2
- package/forms/forms-core/state/formfield-state-reducer.js +5 -5
- package/forms/hooks/useAutofillEvent.css +8 -8
- package/forms/hooks/useAutofillEvent.sty.js +4 -4
- package/forms/hooks/useContainerFocus.css +1 -1
- package/forms/hooks/useContainerFocus.sty.js +1 -1
- package/forms/index.d.ts +1 -1
- package/forms/number-input/NumberInputBase.js +0 -2
- package/forms/number-input-v2/NumberInput.js +101 -166
- package/forms/password-input/PasswordInput.js +1 -1
- package/forms/radio/RadioGroup.js +1 -1
- package/forms/radio/styles.css +18 -18
- package/forms/radio/styles.sty.js +8 -8
- package/forms/search-input/SearchInput.css +2 -2
- package/forms/search-input/SearchInput.sty.js +1 -1
- package/forms/search-input/Stepper.css +5 -5
- package/forms/search-input/Stepper.sty.js +3 -3
- package/forms/select/Select.js +1 -1
- package/forms/select/components/HiddenSelect.js +0 -2
- package/forms/select/components/sort-selected-options-first.js +1 -1
- package/forms/select/styles/Select.css +46 -46
- package/forms/select/styles/Select.sty.js +24 -24
- package/forms/spin-buttons/SpinButton.css +8 -8
- package/forms/spin-buttons/SpinButton.sty.js +2 -2
- package/forms/switch/Switch.css +36 -36
- package/forms/switch/Switch.js +1 -1
- package/forms/switch/Switch.sty.js +5 -5
- package/forms/text-area/TextArea.css +59 -59
- package/forms/text-area/TextArea.js +1 -1
- package/forms/text-area/TextArea.sty.js +3 -3
- package/forms/toggle-button-group/styles.css +58 -58
- package/forms/toggle-button-group/styles.sty.js +15 -15
- package/forms/validation/useCustomMessageEmitter.js +3 -1
- package/lang/en.json +286 -48
- package/lang/ja.json +80 -12
- package/lang/uncompiled/en.json +67 -31
- package/lang/uncompiled/ja.json +30 -6
- package/layouts/app-header/AppHeader.css +1 -1
- package/layouts/app-header/AppHeader.sty.js +1 -1
- package/layouts/app-header/Navigation.css +9 -9
- package/layouts/app-header/Navigation.sty.js +5 -5
- package/layouts/app-header/action-group/ActionButton.css +17 -17
- package/layouts/app-header/action-group/ActionButton.sty.js +3 -3
- package/layouts/app-header/action-group/ActionGroup.css +1 -1
- package/layouts/app-header/action-group/ActionGroup.sty.js +1 -1
- package/layouts/app-header/action-group/NavItem.css +4 -4
- package/layouts/app-header/action-group/NavItem.sty.js +3 -3
- package/layouts/app-header/app-icon/AppIcon.css +4 -4
- package/layouts/app-header/app-icon/AppIcon.sty.js +1 -1
- package/layouts/container/Container.css +5 -5
- package/layouts/container/Container.sty.js +1 -1
- package/layouts/divider/Divider.css +6 -6
- package/layouts/divider/Divider.sty.js +1 -1
- package/layouts/help-menu/HelpMenu.css +20 -0
- package/layouts/help-menu/HelpMenu.css.d.ts +9 -0
- package/layouts/help-menu/HelpMenu.js +17 -18
- package/layouts/help-menu/HelpMenu.sty.js +27 -0
- package/layouts/input-group/InputGroup.css +62 -62
- package/layouts/input-group/InputGroup.sty.js +1 -1
- package/layouts/page/DetailView.css +3 -3
- package/layouts/page/DetailView.sty.js +2 -2
- package/layouts/page/Header.css +2 -2
- package/layouts/page/Header.sty.js +1 -1
- package/layouts/page/Main.css +6 -6
- package/layouts/page/Main.sty.js +4 -4
- package/layouts/page/Page.css +2 -2
- package/layouts/page/Page.sty.js +1 -1
- package/layouts/page/Sidebar.css +35 -35
- package/layouts/page/Sidebar.sty.js +8 -8
- package/layouts/page/panel.css +19 -19
- package/layouts/page/panel.sty.js +10 -10
- package/layouts/page-layout/PageLayout.css +10 -10
- package/layouts/page-layout/PageLayout.js +1 -1
- package/layouts/page-layout/PageLayout.sty.js +6 -6
- package/layouts/page-layout/details-layout/DetailsControlBar.css +3 -3
- package/layouts/page-layout/details-layout/DetailsControlBar.sty.js +3 -3
- package/layouts/page-layout/details-layout/DetailsLayout.css +6 -6
- package/layouts/page-layout/details-layout/DetailsLayout.sty.js +5 -5
- package/layouts/page-layout/details-layout/Overlay.css +18 -18
- package/layouts/page-layout/details-layout/Overlay.sty.js +4 -4
- package/layouts/page-layout/sidebar-layout/SidebarLayout.css +37 -37
- package/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js +14 -14
- package/layouts/split-layout/SplitLayout.css +19 -19
- package/layouts/split-layout/SplitLayout.sty.js +7 -7
- package/layouts/surface/Surface.css +39 -39
- package/layouts/surface/Surface.sty.js +2 -2
- package/layouts/surface/variables.sty.js +1 -1
- package/layouts/title-bar/TitleBar.css +5 -5
- package/layouts/title-bar/TitleBar.sty.js +4 -4
- package/navigation/breadcrumbs/Breadcrumbs.css +9 -9
- package/navigation/breadcrumbs/Breadcrumbs.sty.js +5 -5
- package/navigation/menu/Content.js +2 -0
- package/navigation/menu/Group.d.ts +6 -0
- package/navigation/menu/Group.js +34 -14
- package/navigation/menu/Item.d.ts +9 -4
- package/navigation/menu/Item.js +10 -5
- package/navigation/menu/Label.d.ts +3 -0
- package/navigation/menu/Label.js +27 -13
- package/navigation/menu/Menu.css +17 -17
- package/navigation/menu/Menu.js +12 -1
- package/navigation/menu/Menu.sty.js +8 -8
- package/navigation/menu/MobileContent.d.ts +1 -0
- package/navigation/menu/MobileContent.js +4 -1
- package/navigation/menu/MobileMenu.css +14 -14
- package/navigation/menu/MobileMenu.sty.js +8 -8
- package/navigation/menu/MobileSubTrigger.js +1 -0
- package/navigation/menu/contexts/MenuGroupContext.d.ts +12 -0
- package/{charts/core/context/ChartVariantContext.js → navigation/menu/contexts/MenuGroupContext.js} +5 -5
- package/navigation/tabs/RenderTab.css +14 -14
- package/navigation/tabs/RenderTab.sty.js +3 -3
- package/navigation/tabs/TabPanel.css +3 -3
- package/navigation/tabs/TabPanel.sty.js +2 -2
- package/navigation/tabs/Tabs.css +9 -9
- package/navigation/tabs/Tabs.sty.js +5 -5
- package/notifications/notification-settings/NotificationSettings.css +1 -1
- package/notifications/notification-settings/NotificationSettings.sty.js +1 -1
- package/notifications/toast/Toast.css +6 -6
- package/notifications/toast/Toast.sty.js +4 -4
- package/notifications/toast/ToastContainer.css +17 -17
- package/notifications/toast/ToastContainer.sty.js +1 -1
- package/overlays/drawer/Drawer.css +9 -9
- package/overlays/drawer/Drawer.sty.js +5 -5
- package/overlays/hooks/usePress.js +4 -4
- package/overlays/modal/Modal.css +16 -16
- package/overlays/modal/Modal.sty.js +7 -7
- package/overlays/overlay/Overlay.css +1 -1
- package/overlays/overlay/Overlay.sty.js +1 -1
- package/overlays/sheet/Sheet.css +8 -7
- package/overlays/sheet/Sheet.js +5 -4
- package/overlays/sheet/Sheet.sty.js +5 -5
- package/overlays/tooltip/Tooltip.js +1 -1
- package/overlays/tooltip/tooltip.css +18 -18
- package/overlays/tooltip/tooltip.sty.js +3 -3
- package/package.json +8 -6
- package/styles/colorUtils.css +60 -60
- package/styles/colorUtils.sty.js +2 -2
- package/styles/container.css +47 -47
- package/styles/container.sty.js +2 -2
- package/styles/ellipsis.css +1 -1
- package/styles/ellipsis.sty.js +1 -1
- package/styles/field.css +256 -256
- package/styles/field.sty.js +2 -2
- package/styles/screen-reader-only.css +1 -1
- package/styles/screen-reader-only.sty.js +1 -1
- package/styles/sprinkles.css +262 -262
- package/styles/sprinkles.sty.js +1 -1
- package/styles/textStyle.css +8 -8
- package/styles/textStyle.sty.js +1 -1
- package/tables/DataTable/DataTable.css +2 -2
- package/tables/DataTable/DataTable.d.ts +1 -1
- package/tables/DataTable/DataTable.js +25 -23
- package/tables/DataTable/DataTable.sty.js +7 -7
- package/tables/DataTable/components/Alignment.css +6 -6
- package/tables/DataTable/components/Alignment.sty.js +2 -2
- package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.css +6 -6
- package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.d.ts +6 -5
- package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js +3 -3
- package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowHeaderCells.js +2 -2
- package/tables/DataTable/components/DataTableBody.css +2 -2
- package/tables/DataTable/components/DataTableBody.js +1 -1
- package/tables/DataTable/components/DataTableBody.sty.js +2 -2
- package/tables/DataTable/components/DataTableCell.css +83 -83
- package/tables/DataTable/components/DataTableCell.js +15 -4
- package/tables/DataTable/components/DataTableCell.sty.js +5 -5
- package/tables/DataTable/components/DataTableContent.js +3 -10
- package/tables/DataTable/components/DataTableDefaultCell.css +23 -23
- package/tables/DataTable/components/DataTableDefaultCell.sty.js +1 -1
- package/tables/DataTable/components/DataTableDragScrollLock.d.ts +3 -3
- package/tables/DataTable/components/DataTableEmptyState.css +6 -6
- package/tables/DataTable/components/DataTableEmptyState.sty.js +2 -2
- package/tables/DataTable/components/DataTableHeader.css +2 -2
- package/tables/DataTable/components/DataTableHeader.js +2 -2
- package/tables/DataTable/components/DataTableHeader.sty.js +2 -2
- package/tables/DataTable/components/DataTableHeaderCell.css +64 -64
- package/tables/DataTable/components/DataTableHeaderCell.js +7 -6
- package/tables/DataTable/components/DataTableHeaderCell.sty.js +23 -23
- package/tables/DataTable/components/DataTableRow.css +13 -13
- package/tables/DataTable/components/DataTableRow.d.ts +3 -2
- package/tables/DataTable/components/DataTableRow.js +3 -3
- package/tables/DataTable/components/DataTableRow.sty.js +1 -1
- package/tables/DataTable/components/DataTableScrollShadow.css +10 -10
- package/tables/DataTable/components/DataTableScrollShadow.js +2 -2
- package/tables/DataTable/components/DataTableScrollShadow.sty.js +2 -2
- package/tables/DataTable/components/DataTableVirtualizationContainer.css +21 -21
- package/tables/DataTable/components/DataTableVirtualizationContainer.d.ts +3 -3
- package/tables/DataTable/components/DataTableVirtualizationContainer.js +2 -2
- package/tables/DataTable/components/DataTableVirtualizationContainer.sty.js +1 -1
- package/tables/DataTable/components/SettingsModal/DataTableSettingsModal.css +3 -3
- package/tables/DataTable/components/SettingsModal/DataTableSettingsModal.sty.js +2 -2
- package/tables/DataTable/components/TableActions/DataTableSelectionChip.css +5 -5
- package/tables/DataTable/components/TableActions/DataTableSelectionChip.sty.js +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.css +7 -7
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.d.ts +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.sty.js +3 -3
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/column-order-settings-dnd-utils.d.ts +7 -6
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnPinningMenu.d.ts +8 -7
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnPinningMenu.js +5 -5
- package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnVisibilityToggle.d.ts +6 -5
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.css +1 -1
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.sty.js +1 -1
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettings.js +11 -14
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettingsModal.js +5 -5
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.css +19 -19
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.d.ts +4 -4
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js +14 -20
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.sty.js +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.css +11 -11
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.d.ts +9 -8
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.js +4 -1
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.sty.js +8 -8
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.css +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.js +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.sty.js +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.css +1 -1
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.sty.js +1 -1
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.css +4 -4
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.d.ts +5 -0
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.js +2 -1
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js +3 -3
- package/tables/DataTable/components/Toolbar/ColumnSettings/column-settings-types.d.ts +2 -2
- package/tables/DataTable/components/Toolbar/ColumnSettings/column-settings-utils.d.ts +10 -9
- package/tables/DataTable/components/Toolbar/ColumnSettings/column-settings-utils.js +1 -1
- package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.css +3 -3
- package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js +2 -2
- package/tables/DataTable/contexts/DataTableContext.d.ts +6 -6
- package/tables/DataTable/contexts/DataTableContext.js +9 -6
- package/tables/DataTable/features/CellFormatter/CellFormatter.d.ts +4 -3
- package/tables/DataTable/features/CellFormatter/CellFormatter.js +26 -14
- package/tables/DataTable/features/ColumnFontStyle/ColumnFontStyle.d.ts +6 -6
- package/tables/DataTable/features/ColumnFontStyle/ColumnFontStyle.js +28 -18
- package/tables/DataTable/features/ColumnFontStyle/column-font-style-types.d.ts +0 -9
- package/tables/DataTable/features/ColumnOrder/ColumnOrder.css +8 -8
- package/tables/DataTable/features/ColumnOrder/ColumnOrder.d.ts +13 -13
- package/tables/DataTable/features/ColumnOrder/ColumnOrder.js +51 -45
- package/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js +4 -4
- package/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.d.ts +1 -2
- package/tables/DataTable/features/ColumnOrder/column-order-dnd-utils.d.ts +5 -5
- package/tables/DataTable/features/ColumnOrder/column-order-dnd-utils.js +6 -6
- package/tables/DataTable/features/ColumnOrder/column-order-types.d.ts +5 -16
- package/tables/DataTable/features/ColumnOrder/column-order-utils.d.ts +7 -6
- package/tables/DataTable/features/ColumnOrder/useColumnOrder.d.ts +2 -3
- package/tables/DataTable/features/ColumnPinning/ColumnPinning.d.ts +22 -19
- package/tables/DataTable/features/ColumnPinning/ColumnPinning.js +181 -167
- package/tables/DataTable/features/ColumnPinning/column-pinning-types.d.ts +4 -15
- package/tables/DataTable/features/ColumnPinning/column-pinning-utils.d.ts +12 -2
- package/tables/DataTable/features/ColumnPinning/column-pinning-utils.js +24 -14
- package/tables/DataTable/features/ColumnPinning/useColumnPinning.d.ts +3 -3
- package/tables/DataTable/features/ColumnPinning/useColumnPinning.js +23 -17
- package/tables/DataTable/features/ColumnSizing/ColumnSizing.css +3 -3
- package/tables/DataTable/features/ColumnSizing/ColumnSizing.d.ts +6 -7
- package/tables/DataTable/features/ColumnSizing/ColumnSizing.js +40 -40
- package/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js +1 -1
- package/tables/DataTable/features/ColumnSizing/useColumnSizing.d.ts +2 -3
- package/tables/DataTable/features/ColumnTypes/ColumnTypes.css +1 -1
- package/tables/DataTable/features/ColumnTypes/ColumnTypes.d.ts +5 -4
- package/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js +1 -1
- package/tables/DataTable/features/ColumnVisibility/ColumnVisibility.d.ts +16 -16
- package/tables/DataTable/features/ColumnVisibility/ColumnVisibility.js +97 -92
- package/tables/DataTable/features/ColumnVisibility/column-visibility-types.d.ts +10 -20
- package/tables/DataTable/features/ColumnVisibility/useColumnVisibility.d.ts +2 -3
- package/tables/DataTable/features/Config.d.ts +2 -3
- package/tables/DataTable/features/Config.js +18 -13
- package/tables/DataTable/features/Download/Download.d.ts +12 -11
- package/tables/DataTable/features/Download/Download.js +53 -52
- package/tables/DataTable/features/Download/download-types.d.ts +0 -10
- package/tables/DataTable/features/Download/useDownload.d.ts +4 -4
- package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.css +1 -1
- package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.sty.js +1 -1
- package/tables/DataTable/features/GanttChart/DataTableGanttChartCell.css +3 -3
- package/tables/DataTable/features/GanttChart/DataTableGanttChartCell.sty.js +2 -2
- package/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.css +1 -1
- package/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.sty.js +1 -1
- package/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.css +4 -4
- package/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.sty.js +1 -1
- package/tables/DataTable/features/GanttChart/GanttChart.d.ts +6 -6
- package/tables/DataTable/features/GanttChart/GanttChart.js +10 -7
- package/tables/DataTable/features/GanttChart/useGanttChart.d.ts +2 -3
- package/tables/DataTable/features/Layout/Layout.d.ts +17 -17
- package/tables/DataTable/features/Layout/Layout.js +114 -101
- package/tables/DataTable/features/Layout/layout-types.d.ts +0 -11
- package/tables/DataTable/features/Layout/layout-utils.d.ts +6 -5
- package/tables/DataTable/features/Layout/layout-utils.js +5 -3
- package/tables/DataTable/features/Layout/useLayout.d.ts +4 -4
- package/tables/DataTable/features/LineWrap/LineWrap.d.ts +9 -8
- package/tables/DataTable/features/LineWrap/LineWrap.js +30 -20
- package/tables/DataTable/features/LineWrap/useLineWrap.d.ts +3 -3
- package/tables/DataTable/features/LoadingState/LoadingState.css +3 -3
- package/tables/DataTable/features/LoadingState/LoadingState.d.ts +2 -3
- package/tables/DataTable/features/LoadingState/LoadingState.sty.js +3 -3
- package/tables/DataTable/features/LoadingState/useLoadingState.d.ts +2 -3
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.css +5 -5
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.d.ts +5 -5
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.js +1 -1
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js +2 -2
- package/tables/DataTable/features/Pagination/Pagination.d.ts +12 -11
- package/tables/DataTable/features/Pagination/Pagination.js +28 -25
- package/tables/DataTable/features/Pagination/pagination-row-model.d.ts +3 -2
- package/tables/DataTable/features/Pagination/pagination-row-model.js +1 -2
- package/tables/DataTable/features/Pagination/pagination-types.d.ts +2 -2
- package/tables/DataTable/features/Pagination/usePagination.d.ts +2 -3
- package/tables/DataTable/features/RowDetails/RowDetails.css +13 -13
- package/tables/DataTable/features/RowDetails/RowDetails.d.ts +15 -14
- package/tables/DataTable/features/RowDetails/RowDetails.js +35 -30
- package/tables/DataTable/features/RowDetails/RowDetails.sty.js +3 -3
- package/tables/DataTable/features/RowDetails/components/RowDetailsElement.d.ts +4 -3
- package/tables/DataTable/features/RowDetails/details-row-model.d.ts +3 -2
- package/tables/DataTable/features/RowDetails/details-row-model.js +17 -14
- package/tables/DataTable/features/RowDetails/row-details-types.d.ts +1 -11
- package/tables/DataTable/features/RowIdentification/RowIdentification.d.ts +2 -2
- package/tables/DataTable/features/RowInteractivity/RowInteractivity.css +17 -17
- package/tables/DataTable/features/RowInteractivity/RowInteractivity.d.ts +14 -13
- package/tables/DataTable/features/RowInteractivity/RowInteractivity.js +45 -40
- package/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js +1 -1
- package/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.d.ts +3 -2
- package/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js +1 -1
- package/tables/DataTable/features/RowInteractivity/row-interactivity-types.d.ts +0 -10
- package/tables/DataTable/features/RowInteractivity/useRowInteractivity.d.ts +2 -3
- package/tables/DataTable/features/RowInteractivity/useRowInteractivity.js +2 -2
- package/tables/DataTable/features/RowOrder/RowOrder.css +8 -8
- package/tables/DataTable/features/RowOrder/RowOrder.d.ts +10 -10
- package/tables/DataTable/features/RowOrder/RowOrder.js +31 -26
- package/tables/DataTable/features/RowOrder/RowOrder.sty.js +3 -3
- package/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.d.ts +4 -3
- package/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js +1 -1
- package/tables/DataTable/features/RowOrder/row-order-column-utils.d.ts +3 -2
- package/tables/DataTable/features/RowOrder/row-order-model.d.ts +3 -2
- package/tables/DataTable/features/RowOrder/row-order-model.js +8 -6
- package/tables/DataTable/features/RowOrder/row-order-utils.d.ts +5 -4
- package/tables/DataTable/features/RowOrder/useRowOrder.d.ts +2 -3
- package/tables/DataTable/features/RowSelection/RowSelection.d.ts +26 -26
- package/tables/DataTable/features/RowSelection/RowSelection.js +75 -70
- package/tables/DataTable/features/RowSelection/RowSelectionCells.d.ts +6 -5
- package/tables/DataTable/features/RowSelection/RowSelectionCells.js +1 -1
- package/tables/DataTable/features/RowSelection/row-selection-types.d.ts +0 -9
- package/tables/DataTable/features/RowSelection/useRowSelection.d.ts +2 -3
- package/tables/DataTable/features/RowSelection/useRowSelection.js +12 -7
- package/tables/DataTable/features/Sorting/Sorting.css +34 -34
- package/tables/DataTable/features/Sorting/Sorting.d.ts +15 -14
- package/tables/DataTable/features/Sorting/Sorting.js +48 -45
- package/tables/DataTable/features/Sorting/Sorting.sty.js +3 -3
- package/tables/DataTable/features/Sorting/sorted-row-model.d.ts +3 -2
- package/tables/DataTable/features/Sorting/sorted-row-model.js +1 -2
- package/tables/DataTable/features/Sorting/useSorting.d.ts +2 -3
- package/tables/DataTable/features/SubRows/SubRows.css +19 -19
- package/tables/DataTable/features/SubRows/SubRows.d.ts +18 -17
- package/tables/DataTable/features/SubRows/SubRows.js +92 -84
- package/tables/DataTable/features/SubRows/SubRows.sty.js +5 -5
- package/tables/DataTable/features/SubRows/components/SubRowCellContext.d.ts +3 -2
- package/tables/DataTable/features/SubRows/sub-rows-types.d.ts +0 -9
- package/tables/DataTable/features/SubRows/sub-rows-utils.d.ts +3 -2
- package/tables/DataTable/features/SubRows/subrows-row-model.d.ts +4 -3
- package/tables/DataTable/features/SubRows/subrows-row-model.js +1 -2
- package/tables/DataTable/features/SubRows/useSubRows.d.ts +2 -3
- package/tables/DataTable/features/SubRows/useSubRows.js +1 -1
- package/tables/DataTable/features/Thresholds/Thresholds.css +2 -2
- package/tables/DataTable/features/Thresholds/Thresholds.d.ts +9 -8
- package/tables/DataTable/features/Thresholds/Thresholds.js +34 -27
- package/tables/DataTable/features/Thresholds/Thresholds.sty.js +3 -3
- package/tables/DataTable/features/Thresholds/useThresholds.d.ts +2 -3
- package/tables/DataTable/features/UserActions/RowActions.css +4 -4
- package/tables/DataTable/features/UserActions/RowActions.sty.js +1 -1
- package/tables/DataTable/features/UserActions/UserActions.css +20 -20
- package/tables/DataTable/features/UserActions/UserActions.d.ts +16 -16
- package/tables/DataTable/features/UserActions/UserActions.js +82 -69
- package/tables/DataTable/features/UserActions/UserActions.sty.js +2 -2
- package/tables/DataTable/features/UserActions/UserActionsMenu.js +5 -5
- package/tables/DataTable/features/UserActions/useCloseMenuOnScroll.js +2 -2
- package/tables/DataTable/features/UserActions/useUserActions.d.ts +3 -3
- package/tables/DataTable/features/UserActions/user-actions-types.d.ts +0 -12
- package/tables/DataTable/features/VirtualScrolling/VirtualScrolling.d.ts +21 -21
- package/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js +82 -77
- package/tables/DataTable/features/VisualVariants/VisualVariants.d.ts +2 -3
- package/tables/DataTable/features/VisualVariants/VisualVariants.js +19 -16
- package/tables/DataTable/features/VisualVariants/useVisualVariants.d.ts +2 -3
- package/tables/DataTable/features/createCoreRowModel.d.ts +3 -2
- package/tables/DataTable/features/createCoreRowModel.js +1 -2
- package/tables/DataTable/features/features.d.ts +105 -23
- package/tables/DataTable/features/features.js +9 -1
- package/tables/DataTable/features/types/features.types.d.ts +28 -45
- package/tables/DataTable/features/types/table.types.d.ts +47 -0
- package/tables/DataTable/features/types/table.types.js +36 -0
- package/tables/DataTable/hooks/useBuiltInColumns.d.ts +4 -2
- package/tables/DataTable/hooks/useColumnRemeasure.d.ts +3 -2
- package/tables/DataTable/hooks/useColumnRemeasure.js +1 -1
- package/tables/DataTable/hooks/useHeaderCellInteractions.d.ts +1 -2
- package/tables/DataTable/hooks/useHeaderCellInteractions.js +5 -3
- package/tables/DataTable/hooks/useHeaderDragAndDrop.d.ts +5 -4
- package/tables/DataTable/hooks/useTable/datatable-typeguards.d.ts +4 -3
- package/tables/DataTable/hooks/useTable/datatable-typeguards.js +4 -4
- package/tables/DataTable/messages.js +2 -2
- package/tables/SimpleTable/SimpleTable.css +27 -27
- package/tables/SimpleTable/SimpleTable.d.ts +1 -1
- package/tables/SimpleTable/SimpleTable.js +9 -6
- package/tables/SimpleTable/SimpleTable.sty.js +1 -1
- package/tables/hooks/useFilteredData.js +1 -4
- package/tables/hooks/useLockedRowOrder.js +1 -1
- package/tables/utils/get-column-label.d.ts +3 -2
- package/tables/utils/is-target-interactive.d.ts +8 -4
- package/tables/utils/is-target-interactive.js +4 -2
- package/typography/block-quote/Blockquote.css +2 -2
- package/typography/block-quote/Blockquote.sty.js +1 -1
- package/typography/code/Code.css +9 -2
- package/typography/code/Code.sty.js +1 -1
- package/typography/emphasis/Emphasis.css +1 -1
- package/typography/emphasis/Emphasis.sty.js +1 -1
- package/typography/external-link/ExternalLink.css +6 -6
- package/typography/external-link/ExternalLink.sty.js +1 -1
- package/typography/heading/Heading.css +7 -7
- package/typography/heading/Heading.sty.js +1 -1
- package/typography/highlight/Highlight.css +2 -2
- package/typography/highlight/Highlight.sty.js +1 -1
- package/typography/link/Link.css +4 -4
- package/typography/link/Link.sty.js +1 -1
- package/typography/list/List.css +4 -4
- package/typography/list/List.sty.js +2 -2
- package/typography/paragraph/Paragraph.css +3 -3
- package/typography/paragraph/Paragraph.sty.js +1 -1
- package/typography/strikethrough/Strikethrough.css +1 -1
- package/typography/strikethrough/Strikethrough.sty.js +1 -1
- package/typography/strong/Strong.css +1 -1
- package/typography/strong/Strong.sty.js +1 -1
- package/typography/text/Text.css +3 -3
- package/typography/text/Text.sty.js +1 -1
- package/typography/text-ellipsis/TextEllipsis.css +6 -6
- package/typography/text-ellipsis/TextEllipsis.sty.js +2 -2
- package/charts/core/components/series-action/ChartActionsMenuAsync.d.ts +0 -15
- package/charts/core/components/series-action/ChartActionsMenuAsync.js +0 -94
- package/charts/core/context/ChartVariantContext.d.ts +0 -11
- package/charts/sankey-chart/context/SankeyHoverStore.context.d.ts +0 -4
- package/charts/sankey-chart/types/sankey-hover.d.ts +0 -28
- package/esm/charts/core/components/series-action/ChartActionsMenuAsync.js +0 -81
- package/esm/charts/core/components/series-action/ChartActionsMenuAsync.js.map +0 -7
- package/esm/charts/core/context/ChartVariantContext.js +0 -6
- package/esm/charts/core/context/ChartVariantContext.js.map +0 -7
- package/esm/charts/sankey-chart/context/SankeyHoverStore.context.js +0 -11
- package/esm/charts/sankey-chart/context/SankeyHoverStore.context.js.map +0 -7
- package/esm/charts/sankey-chart/providers/SankeyHoverStoreProvider.js +0 -15
- package/esm/charts/sankey-chart/providers/SankeyHoverStoreProvider.js.map +0 -7
- package/esm/charts/sankey-chart/types/sankey-hover.js +0 -1
- /package/esm/charts/sankey-chart/types/{sankey-hover.js.map → sankey-shape.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/forms/date-time-range-picker/DateTimeRangePicker.css.ts"],
|
|
4
|
-
"sourcesContent": ["import '../../core/components/app-root/AppRoot.css';\nimport '../../styles/field.css';\nimport '../../styles/textStyle.css';\nimport '../spin-buttons/SpinButton.css';\nimport '../date-time-picker/DateTimePicker.css';\nimport './DateTimeRangePicker.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var dateTimeInput = '_1vlwkc26-3-
|
|
4
|
+
"sourcesContent": ["import '../../core/components/app-root/AppRoot.css';\nimport '../../styles/field.css';\nimport '../../styles/textStyle.css';\nimport '../spin-buttons/SpinButton.css';\nimport '../date-time-picker/DateTimePicker.css';\nimport './DateTimeRangePicker.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var dateTimeInput = '_1vlwkc26-3-13-0';\nexport var dateTimeRange = _7a468({defaultClassName:'_1vlwkc20-3-13-0',variantClassNames:{showError:{true:'_1vlwkc21-3-13-0'},disabled:{true:'_1vlwkc22-3-13-0'},readOnly:{true:'_1vlwkc23-3-13-0'}},defaultVariants:{},compoundVariants:[[{showError:true,readOnly:true},'_1vlwkc24-3-13-0']]});\nexport var scrollContainer = '_1vlwkc25-3-13-0';\nexport var timeframeSeparator = '_1vlwkc27-3-13-0';"],
|
|
5
5
|
"mappings": "AAAA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,mBAAmB,cAAc;AACnC,IAAI,gBAAgB;AACpB,IAAI,gBAAgB,OAAO,EAAC,kBAAiB,oBAAmB,mBAAkB,EAAC,WAAU,EAAC,MAAK,mBAAkB,GAAE,UAAS,EAAC,MAAK,mBAAkB,GAAE,UAAS,EAAC,MAAK,mBAAkB,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,CAAC,EAAC,WAAU,MAAK,UAAS,KAAI,GAAE,kBAAkB,CAAC,EAAC,CAAC;AACxR,IAAI,kBAAkB;AACtB,IAAI,qBAAqB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -203,7 +203,7 @@ const useDateTimeInput = (props, expressionInputRef) => {
|
|
|
203
203
|
}
|
|
204
204
|
},
|
|
205
205
|
// no use in adding the expressionInputRef to the dep. array
|
|
206
|
-
//
|
|
206
|
+
// oxlint-disable-next-line react-hooks/exhaustive-deps
|
|
207
207
|
[]
|
|
208
208
|
);
|
|
209
209
|
const spinButtonHandlersRef = useRef(spinButtonHandlers);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/forms/date-time-range-picker/hooks/useDateTimeInput.ts"],
|
|
4
|
-
"sourcesContent": ["import { TZDateMini } from '@date-fns/tz';\nimport {\n ClipboardEventHandler,\n FocusEventHandler,\n FocusEvent as ReactFocusEvent,\n ReactEventHandler,\n KeyboardEventHandler as ReactKeyboardEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from 'react';\n\nimport {\n _parseTimeExpression,\n parseTimeAsTimeValue,\n} from '@dynatrace-sdk/units';\nimport { getTimezone } from '@dynatrace-sdk/user-preferences';\n\nimport { useDateTimeParser } from './useDateTimeParser.js';\nimport { spinExpressionValue } from './useExpressionSpin.js';\nimport { useAriaLabelingProps } from '../../../core/hooks/useAriaLabelingProps.js';\nimport { useControllableState } from '../../../core/hooks/useControllableState.js';\nimport { isEqualTimeValue } from '../../../core/time/helpers.js';\nimport { useDateTimePickerStore } from '../../../core/time/timeframeStore/useTimeframeStore.js';\nimport type { TimeValue } from '../../../core/types/time.js';\nimport { useDateTimePicker } from '../../date-time-picker/hooks/useDateTimePicker.js';\nimport {\n formatTimeValue,\n getTimeValue,\n} from '../../forms-core/time/timeParser.js';\nimport { useSelection } from '../../spin-buttons/hooks/useSelection.js';\nimport type { NumberSpinButtonRef } from '../../spin-buttons/number-spin-button/types.js';\nimport type { SpinButtonHandler } from '../../spin-buttons/spin-button-group/types.js';\nimport {\n captureUndoSnapshot,\n isContentModifyingKey,\n normalizeISOInput,\n parseDateOnlyToISO,\n parseTimeOnlyToISO,\n partialDateTimeToISO,\n tryParsePartialDate,\n tryParsePartialTime,\n} from '../helpers.js';\nimport {\n getExpressionCursorOffset,\n restoreExpressionCursorOffset,\n} from '../selection-helpers.js';\nimport type { DateTimeInputProps, UndoSnapshot } from '../types.js';\n\nfunction isNumberSpinButton(\n handler: SpinButtonHandler | undefined,\n): handler is NumberSpinButtonRef {\n return handler?.type === 'number';\n}\n\nconst DATE_PART_TYPES: Set<Intl.DateTimeFormatPart['type']> = new Set([\n 'day',\n 'month',\n 'year',\n]);\nconst TIME_PART_TYPES: Set<Intl.DateTimeFormatPart['type']> = new Set([\n 'hour',\n 'minute',\n 'second',\n 'fractionalSecond',\n 'dayPeriod',\n]);\n\n/**\n * Inserts plain text at the current cursor position, replacing any active selection.\n */\nconst insertTextAtCursor = (text: string) => {\n const selection = window.getSelection();\n if (selection?.rangeCount) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\n\n/**\n * Returns true when at least one non-literal spin button is empty.\n */\nconst hasAnyEmptySpinButton = (\n handlersRef: RefObject<\n Map<\n keyof Intl.DateTimeFormatPartTypesRegistry,\n SpinButtonHandler | null | undefined\n >\n >,\n): boolean =>\n Array.from(handlersRef.current?.entries() ?? []).some(\n ([type, handler]) =>\n handler &&\n type !== 'literal' &&\n handler.element.current?.textContent === '',\n );\n\n/**\n * Pastes text into the expression contenteditable span, either at the cursor\n * position (when the selection is inside the span) or by replacing its content.\n */\nconst pasteIntoExpressionInput = (\n element: RefObject<HTMLSpanElement | null>,\n text: string,\n): void => {\n if (element.current) {\n const selection = window.getSelection();\n const range = selection?.rangeCount ? selection.getRangeAt(0) : null;\n\n if (\n range &&\n element.current.contains(range.startContainer) &&\n element.current.contains(range.endContainer)\n ) {\n insertTextAtCursor(text);\n } else {\n element.current.textContent = text;\n moveCursorToEnd(element.current);\n }\n\n element.current.dispatchEvent(new InputEvent('input', { bubbles: true }));\n }\n};\n\n/**\n * Moves the cursor (selection) to the end of the given element's content.\n */\nconst moveCursorToEnd = (element: HTMLSpanElement | null | undefined) => {\n if (element) {\n const range = document.createRange();\n const selection = window.getSelection();\n range.selectNodeContents(element);\n range.collapse(false);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n};\n\n/*\n * A hook that provides the default functionality for the DateTimeInput picker\n */\nexport const useDateTimeInput = (\n props: DateTimeInputProps,\n expressionInputRef: RefObject<HTMLSpanElement | null>,\n) => {\n const {\n disabled,\n readOnly,\n type,\n onChange,\n onLeadingEdge,\n onTrailingEdge,\n dateOnlyPasteAnchor = 'startOfDay',\n onPasteComplete,\n partialTimeAnchorDate,\n }: DateTimeInputProps = props;\n const precision = useDateTimePickerStore((state) =>\n state.precision !== 'day' ? state.precision : 'milliseconds',\n );\n\n const ariaProps = useAriaLabelingProps(props);\n const { regexDateTimeStart, maxValue, types } = useDateTimeParser({\n type,\n });\n // ? INVESTIGATE: without the generic, building the visreg story viewer and unit-test typechecking fails,\n // ? but the components:build target still succeeds without any issues -> why?\n const [value, setValue] = useControllableState<TimeValue | null>(props);\n const isControlled = props.value !== undefined;\n const [valueType, setValueType] = useState(value?.type ?? 'expression');\n const firstRun = useRef(true);\n // Tracks the previous value content so that a parent re-render that passes a\n // new object reference with the same content does not trigger formatExpressionValue\n // and reset DOM edits that haven't propagated through React state yet.\n const prevValueRef = useRef<TimeValue | null | undefined>(undefined);\n const [expressionEmpty, setExpressionEmpty] = useState(\n !expressionInputRef.current?.textContent,\n );\n const [inputValue, setInputValue] = useState('');\n // Skips no-op setInputValue calls in the [value] effect. Passive-effect\n // writes that React can't bail out on schedule SyncLane commits that\n // accumulate on rapid keypresses.\n const lastInputValueRef = useRef(inputValue);\n lastInputValueRef.current = inputValue;\n const pasteUndoRef = useRef<{\n snapshot: UndoSnapshot;\n focusTarget: Element | null;\n expressionCursorOffset?: number;\n } | null>(null);\n\n useEffect(() => {\n return () => {\n pasteUndoRef.current = null;\n };\n }, []);\n\n // Tracks the last valid absoluteDate to pass a stable, parseable ISO string\n // to useDateTimePicker while props.value temporarily has absoluteDate:'' during\n // partial spinbutton editing. Keeps useDateTimePicker.value prop unchanged so\n // its internal useEffect doesn't re-run and clear the spinbuttons.\n const lastValidAbsoluteDateRef = useRef<string | null>(\n value?.type === 'iso8601' && value.absoluteDate ? value.absoluteDate : null,\n );\n // True only during the requestAnimationFrame window opened by switchToExpressionMode.\n // Used to suppress stale spinbutton onChange callbacks that fire while the mode\n // transition is in flight, without blocking legitimate restore/undo calls.\n const isSwitchingToExpressionRef = useRef(false);\n\n // Use valueType (local state) not value.type (controlled prop) as the gate \u2014\n // the controlled prop can temporarily become type:'expression' when the store\n // echoes back a partial invalid value for validation while we're still in\n // spinbutton mode.\n if (\n valueType === 'iso8601' &&\n value?.type === 'iso8601' &&\n value.absoluteDate\n ) {\n lastValidAbsoluteDateRef.current = value.absoluteDate;\n }\n const spinButtonValue =\n valueType === 'iso8601' ? lastValidAbsoluteDateRef.current : null;\n\n // Stores the date parts filled in by a partial paste so the focus can target\n // the first spin button that was not filled.\n const pendingFocusPartsRef = useRef<Set<\n keyof Intl.DateTimeFormatPartTypesRegistry\n > | null>(null);\n\n const {\n spinButtons,\n handlers: spinButtonHandlers,\n empty: spinButtonsEmpty,\n applyDateTime,\n firstSpinButtonHandler,\n } = useDateTimePicker({\n type,\n precision,\n disabled,\n readOnly,\n valueType,\n value: spinButtonValue,\n onChange: (newIsoDateTime) => {\n const newValue = getTimeValue(newIsoDateTime ?? undefined, precision);\n\n if (newValue === null || newValue === undefined) {\n return;\n }\n\n // Suppress stale spinbutton callbacks that fire while switchToExpressionMode\n // is transitioning. Any other caller (e.g. undo restore) is allowed through.\n if (isSwitchingToExpressionRef.current) {\n return;\n }\n\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = '';\n }\n\n // If undo (or another caller) pushes a value while we're in expression mode,\n // switch back to spinbutton mode now.\n if (valueType !== 'iso8601') {\n setValueType('iso8601');\n }\n\n // Forward invalid values (empty string or unparseable partial locale string)\n // to onChange so the store validates and shows errors, but skip setValue so\n // props.value stays stable and spinbuttons are not cleared.\n if (newIsoDateTime === '' || newValue?.absoluteDate === '') {\n onChange?.(newValue);\n return;\n }\n\n setInputValue(newValue.value);\n // only update the value if the newTimeValue differs from the prev. one\n setValue((prevValue) =>\n isEqualTimeValue(prevValue, newValue) ? prevValue : newValue,\n );\n },\n ...ariaProps,\n });\n\n const empty = useMemo(\n () => (valueType === 'expression' ? expressionEmpty : spinButtonsEmpty),\n [valueType, expressionEmpty, spinButtonsEmpty],\n );\n\n // Shared state reset when switching (back) to expression mode.\n const resetToExpressionMode = useCallback(\n (expressionEmpty = true) => {\n setValueType('expression');\n setValue(null);\n setInputValue('');\n setExpressionEmpty(expressionEmpty);\n lastValidAbsoluteDateRef.current = null;\n },\n [setValue],\n );\n\n // Tracks the last absoluteDate seen by the controlled-value effect.\n // Used to distinguish a genuine value re-application (absoluteDate changed,\n // e.g. from '' back to a valid ISO string) from an outdated reference change\n // (the store re-parsed a sibling field and created a new object with the\n // same absoluteDate).\n const prevAbsoluteDateRef = useRef<string | null>(null);\n\n // Called on onBlur to sanitize the current expression. Declared here (before\n // the [value] useEffect below) so that React Compiler's immutability analysis\n // can confirm the reference is available at the time the effect is registered.\n const formatExpressionValue = useCallback(\n (value: TimeValue | null) => {\n if (!expressionInputRef.current) {\n return;\n }\n const formattedValue = value ? formatTimeValue(value) : '';\n const currentValue = formatTimeValue(\n expressionInputRef.current?.textContent ?? '',\n );\n\n // only update if the current value differs from the new value\n // don't update the textnode while typing but allow e.g. pasting a new expression\n if (currentValue !== formattedValue) {\n expressionInputRef.current.textContent = formattedValue;\n }\n },\n // no use in adding the expressionInputRef to the dep. array\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // Keep a ref to the latest spinButtonHandlers so that focus helpers\n // inside requestAnimationFrame always use the current map.\n const spinButtonHandlersRef = useRef(spinButtonHandlers);\n spinButtonHandlersRef.current = spinButtonHandlers;\n\n // switch input mode based on controlled value change\n useEffect(() => {\n const prevValue = prevValueRef.current;\n prevValueRef.current = value;\n\n const applyInputValue = (next: string) => {\n if (lastInputValueRef.current === next) {\n return;\n }\n lastInputValueRef.current = next;\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setInputValue(next);\n };\n\n if (value?.type === 'iso8601' && !spinButtonsEmpty) {\n applyInputValue(value.value);\n }\n\n // ignore if in uncontrolled mode\n if (!isControlled || typeof value === 'string') {\n return;\n }\n\n const prevAbsoluteDate = prevAbsoluteDateRef.current;\n prevAbsoluteDateRef.current = value?.absoluteDate ?? null;\n\n // reset input if value is null\n if (!value) {\n setValueType('expression');\n formatExpressionValue(null);\n const input = expressionInputRef.current?.textContent;\n setExpressionEmpty(input === '');\n applyDateTime(null);\n lastValidAbsoluteDateRef.current = null;\n return;\n }\n\n // Skip values with empty absoluteDate: partial/invalid intermediate states\n // forwarded to the store for validation only. The spinbuttons manage their\n // own display; reacting here would switch to 'expression' mode and call\n // formatExpressionValue, clearing the display.\n if (value.absoluteDate === '') {\n return;\n }\n\n // apply value to expression\n // the spinbutton update is handled within the useSpinButton hook internally\n if (valueType !== value.type) {\n setValueType(value.type);\n }\n applyInputValue(value.value);\n if (value.type === 'expression') {\n // Only reformat the DOM when the expression content has actually changed.\n // A parent re-render that produces a new object reference with the same\n // value (e.g. due to a sibling input's state update) must not overwrite\n // DOM edits (e.g. partial cross-expression deletion) that haven't yet\n // propagated back through React state.\n if (!isEqualTimeValue(prevValue ?? null, value)) {\n formatExpressionValue(value);\n }\n setExpressionEmpty(value.value === '');\n } else if (\n value.type === 'iso8601' &&\n hasAnyEmptySpinButton(spinButtonHandlersRef) &&\n prevAbsoluteDate !== value.absoluteDate\n ) {\n applyDateTime(value.absoluteDate);\n }\n // only react to outside value changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n // Focuses the first spin button that is still empty, or the last spin button when\n // everything is filled in.\n const focusFirstUnfilledSpinButton = useCallback(\n (filledParts: Set<keyof Intl.DateTimeFormatPartTypesRegistry>) => {\n const handlers = spinButtonHandlersRef.current;\n for (const [type, handler] of handlers) {\n if (\n handler &&\n type !== 'literal' &&\n !filledParts.has(\n type as keyof Intl.DateTimeFormatPartTypesRegistry,\n ) &&\n handler.element.current?.textContent === ''\n ) {\n handler.element.current?.focus();\n return;\n }\n }\n // Fallback: focus the last spin button when everything is filled.\n let lastHandler: SpinButtonHandler | null = null;\n for (const [, handler] of handlers) {\n if (handler) {\n lastHandler = handler;\n }\n }\n lastHandler?.element?.current?.focus();\n },\n [],\n );\n\n // Focus the first unfilled spin button after a partial paste triggers a mode switch.\n useEffect(() => {\n const filledParts = pendingFocusPartsRef.current;\n if (!filledParts || valueType !== 'iso8601') {\n return;\n }\n pendingFocusPartsRef.current = null;\n\n requestAnimationFrame(() => {\n focusFirstUnfilledSpinButton(filledParts);\n });\n }, [valueType, focusFirstUnfilledSpinButton]);\n\n const { selectAll: expressionInputSelectAll } =\n useSelection(expressionInputRef);\n\n // handles input events on the expression contenteditable span\n const expressionInputHandler: ReactEventHandler<HTMLSpanElement> =\n useCallback(() => {\n if (!expressionInputRef.current) {\n return;\n }\n\n const input = expressionInputRef.current.textContent ?? '';\n\n // Remove <br> added by browser in contenteditable to ensure placeholder works\n if (expressionInputRef.current.innerHTML === '<br>') {\n expressionInputRef.current.innerHTML = '';\n }\n\n // fallback to expression if text content is removed\n if (input === '') {\n setValueType('expression');\n setValue(null);\n setExpressionEmpty(true);\n return;\n }\n\n setExpressionEmpty(false);\n\n // if the input starts like a valid datetime for the current locale, switch to the datetime picker\n const [, carryOver] = regexDateTimeStart.exec(input) ?? [];\n if (Number.parseInt(carryOver) <= maxValue) {\n setValueType('iso8601');\n\n // clear all spinbuttons\n applyDateTime(null);\n lastValidAbsoluteDateRef.current = null;\n\n // get a cleaned and sorted list of spinbutton handlers\n const sortedHandlers = types\n .filter((type) => type !== 'literal')\n .map((type) => spinButtonHandlers.get(type))\n .filter(Boolean) as SpinButtonHandler[];\n const [carryOverSB, focusSB] = sortedHandlers;\n\n // carry over entered value to the next number spinbutton\n isNumberSpinButton(carryOverSB) &&\n carryOverSB.applyText(carryOver, true);\n\n // clear expression input content\n expressionInputRef.current.textContent = '';\n\n // set focus after switch to expression mode happened\n requestAnimationFrame(() => {\n // set focus to second spinbutton\n focusSB?.element.current?.focus();\n });\n return;\n }\n\n // If the user types a number followed by \":\", switch to the datetime picker\n // with the anchor date pre-filled and the typed hour applied, then focus the\n // minute spin button so the user can continue typing the time.\n // The anchor date defaults to today but can be overridden via `partialTimeAnchorDate`\n if (type !== 'date') {\n const colonMatch = /^(\\d{1,2}):$/.exec(input);\n if (colonMatch) {\n const hour = Number.parseInt(colonMatch[1]);\n if (hour <= 23) {\n const base = partialTimeAnchorDate\n ? new TZDateMini(partialTimeAnchorDate, getTimezone())\n : TZDateMini.tz(getTimezone());\n const iso = TZDateMini.tz(\n getTimezone(),\n base.getFullYear(),\n base.getMonth(),\n base.getDate(),\n hour,\n 0,\n 0,\n 0,\n ).toISOString();\n\n const partsToUpdate = new Set<\n keyof Intl.DateTimeFormatPartTypesRegistry\n >(['day', 'month', 'year', 'hour']);\n\n setValueType('iso8601');\n expressionInputRef.current.textContent = '';\n applyDateTime(iso, partsToUpdate);\n\n requestAnimationFrame(() => {\n focusFirstUnfilledSpinButton(partsToUpdate);\n });\n return;\n }\n }\n }\n\n // If the copied text contains the formatted date in the user's locale (e.g.,\n // \"12/24/2024\" or \"25.12.2024\"), switch to iso8601 mode and apply the parsed date\n // fields to the spin buttons.\n const typedPartialDate = tryParsePartialDate(input);\n if (typedPartialDate) {\n const dateResult = partialDateTimeToISO(typedPartialDate, null);\n if (dateResult) {\n setValueType('iso8601');\n expressionInputRef.current.textContent = '';\n applyDateTime(dateResult.iso, dateResult.partsToUpdate);\n\n requestAnimationFrame(() =>\n focusFirstUnfilledSpinButton(dateResult.partsToUpdate ?? new Set()),\n );\n return;\n }\n }\n\n // if input is a valid expression, update the internal value state\n const newValue = getTimeValue(input, precision) ?? null;\n\n if (newValue?.absoluteDate === '') {\n onChange?.(newValue);\n }\n // only update the value if the newTimeValue differs from the prev. one\n setValue((prevValue) =>\n isEqualTimeValue(prevValue, newValue) ? prevValue : newValue,\n );\n\n setInputValue(input);\n }, [\n expressionInputRef,\n regexDateTimeStart,\n maxValue,\n partialTimeAnchorDate,\n precision,\n type,\n setValue,\n applyDateTime,\n focusFirstUnfilledSpinButton,\n types,\n spinButtonHandlers,\n onChange,\n ]);\n\n // select expression text content on focus\n const expressionOnFocusHandler: FocusEventHandler<HTMLSpanElement> =\n useCallback(\n (event: ReactFocusEvent<HTMLSpanElement>) => {\n // If the current selection spans multiple nodes (e.g. a drag-select or\n // Cmd+A across multiple spin buttons / expression inputs), don't collapse\n // it to just this expression input.\n const selection = window.getSelection();\n const selectionSpansMultipleNodes =\n selection !== null &&\n selection.anchorNode !== selection.focusNode &&\n selection.toString().length > 0;\n\n // Also skip if we are in the middle of a programmatic focus + setBaseAndExtent\n // (guarded by data-restoring-selection on the .strato-inputgroup root).\n const isRestoringSelection =\n (event.target as HTMLElement)\n .closest('.strato-inputgroup')\n ?.hasAttribute('data-restoring-selection') ?? false;\n\n // Skip if the user already has a non-collapsed selection inside this\n // expression input (e.g. drag-select or Shift+arrow within one field).\n // Calling selectAll() here would override that intended partial selection.\n const expressionInputEl = event.target as HTMLElement;\n const hasPartialSelectionWithin =\n selection !== null &&\n !selection.isCollapsed &&\n expressionInputEl.contains(selection.anchorNode) &&\n expressionInputEl.contains(selection.focusNode);\n\n if (\n selectionSpansMultipleNodes ||\n isRestoringSelection ||\n hasPartialSelectionWithin\n ) {\n return;\n }\n\n expressionInputSelectAll();\n },\n [expressionInputSelectAll],\n );\n\n // sanitize textnode if content is an expression\n const expressionOnBlurHandler: FocusEventHandler<HTMLSpanElement> =\n useCallback(() => {\n if (expressionInputRef.current && value?.type === 'expression') {\n const currentExpressionInput =\n expressionInputRef.current.textContent ?? '';\n const isValidExpression = _parseTimeExpression(\n currentExpressionInput.trim(),\n );\n\n if (isValidExpression) {\n expressionInputRef.current.textContent = formatTimeValue(value);\n }\n }\n\n // eslint annoyingly wants to add the ref to the dependency list\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n // Shared paste logic used by both the DOM paste event handler and the\n // imperative pasteText method on DateTimeInputRef. Returns true when the\n // paste was handled (caller should preventDefault), false to let native\n // paste proceed (step 4: digits in iso8601 mode).\n const pasteText = useCallback(\n (text: string, skipUndoCapture = false): boolean => {\n if (readOnly) {\n return false;\n }\n\n let trimmedData = normalizeISOInput(text.trim());\n if (!trimmedData) {\n return true;\n }\n\n // Pre-parse locale-specific partial date/time for normalization and step 5.\n const partialDate = tryParsePartialDate(trimmedData);\n const partialTime = tryParsePartialTime(trimmedData);\n const partialResult =\n partialDate || partialTime\n ? partialDateTimeToISO(partialDate, partialTime)\n : null;\n\n // When the result is complete (no partsToUpdate), normalize to ISO so\n // the existing ISO checks (steps 1\u20133) can handle it.\n if (partialResult && !partialResult.partsToUpdate) {\n trimmedData = partialResult.iso;\n }\n\n // Capture undo snapshot before any state mutations unless the caller\n // already owns the snapshot (e.g. range-level paste handler).\n if (!skipUndoCapture) {\n const snapshot = captureUndoSnapshot(\n spinButtonHandlers,\n expressionInputRef.current,\n value,\n valueType,\n );\n\n pasteUndoRef.current = {\n snapshot,\n focusTarget: document.activeElement,\n expressionCursorOffset: expressionInputRef.current\n ? getExpressionCursorOffset(expressionInputRef.current)\n : undefined,\n };\n }\n\n // 1. Date-only paste (e.g. \"2025-01-01\")\n // 2. Time-only paste (e.g. \"02:00Z\", \"14:30:00\")\n const dateOnly = parseDateOnlyToISO(trimmedData, dateOnlyPasteAnchor);\n const timeOnly = parseTimeOnlyToISO(trimmedData);\n const date = dateOnly ?? timeOnly;\n\n if (date) {\n setValueType('iso8601');\n // When spinbuttons are empty (expression mode), apply all parts so the\n // full date is filled in. When parts are already populated, only\n // overwrite the date or time group that matches the pasted value.\n let partsFilter: Set<Intl.DateTimeFormatPart['type']> | undefined;\n if (!spinButtonsEmpty) {\n partsFilter = dateOnly ? DATE_PART_TYPES : TIME_PART_TYPES;\n }\n applyDateTime(date, partsFilter);\n\n // When only a subset of parts was applied, focus the first empty spin\n // button instead of advancing. When all parts were applied skip the check.\n if (partsFilter && hasAnyEmptySpinButton(spinButtonHandlersRef)) {\n focusFirstUnfilledSpinButton(partsFilter);\n } else {\n onPasteComplete?.();\n }\n\n return true;\n }\n\n // 3. Full ISO datetime or expression (e.g. \"2025-01-01T02:00Z\", \"now()-1h\")\n const nextValue = parseTimeAsTimeValue(\n trimmedData,\n TZDateMini.tz(getTimezone()).getTime(),\n precision,\n );\n\n if (nextValue) {\n setValueType(nextValue.type);\n if (nextValue.type === 'expression') {\n formatExpressionValue(nextValue);\n moveCursorToEnd(expressionInputRef.current);\n setValue(nextValue);\n } else {\n applyDateTime(nextValue.absoluteDate);\n }\n onPasteComplete?.();\n return true;\n }\n\n // 4. Allow numbers to be pasted into the spin buttons\n if (valueType === 'iso8601' && /^\\d+$/.test(trimmedData)) {\n return false;\n }\n\n // 5. Partial date/time paste (e.g. \"25.12\", \"14:30\", \"25.12.2024 14:30\")\n // partialResult was pre-computed above the ISO checks.\n if (partialResult?.partsToUpdate) {\n const { iso, partsToUpdate } = partialResult;\n setValueType('iso8601');\n applyDateTime(iso, partsToUpdate);\n\n // Clear any spin button that was not explicitly present in the pasted\n // text (i.e. was a placeholder token or simply absent). This ensures\n // paste always overwrites: fields not carried by the pasted value are\n // emptied rather than left at their previous content.\n for (const [key, handler] of spinButtonHandlersRef.current) {\n if (handler && !partsToUpdate.has(key)) {\n handler.clearValue(true);\n }\n }\n\n if (hasAnyEmptySpinButton(spinButtonHandlersRef)) {\n requestAnimationFrame(() => {\n focusFirstUnfilledSpinButton(partsToUpdate);\n });\n } else {\n onPasteComplete?.();\n }\n\n return true;\n }\n\n // 6. Fallback: switch to expression mode and paste the raw string.\n if (valueType === 'expression') {\n if (expressionInputRef.current) {\n pasteIntoExpressionInput(expressionInputRef, trimmedData);\n }\n } else {\n setValueType('expression');\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = trimmedData;\n expressionInputRef.current.focus();\n moveCursorToEnd(expressionInputRef.current);\n expressionInputRef.current.dispatchEvent(\n new InputEvent('input', { bubbles: true }),\n );\n }\n }\n\n return true;\n },\n [\n readOnly,\n spinButtonHandlers,\n expressionInputRef,\n value,\n dateOnlyPasteAnchor,\n precision,\n valueType,\n setValue,\n onPasteComplete,\n formatExpressionValue,\n applyDateTime,\n spinButtonsEmpty,\n focusFirstUnfilledSpinButton,\n ],\n );\n\n // clipboard paste handler. apply clipboard content if formatted correctly\n const onPaste: ClipboardEventHandler<HTMLSpanElement> = useCallback(\n (event) => {\n const data = event.clipboardData?.getData('text/plain');\n if (!data) {\n event.preventDefault();\n return;\n }\n if (pasteText(data)) {\n event.preventDefault();\n }\n },\n [pasteText],\n );\n\n // Ctrl+Z / Cmd+Z handler to undo a paste operation.\n const onPasteUndoKeyDown: ReactKeyboardEventHandler<HTMLSpanElement> =\n useCallback(\n (event) => {\n const isCtrlZ = (event.ctrlKey || event.metaKey) && event.key === 'z';\n\n if (!isCtrlZ) {\n // Invalidates the paste snapshot for any other input.\n if (pasteUndoRef.current && isContentModifyingKey(event)) {\n pasteUndoRef.current = null;\n }\n return;\n }\n\n if (!pasteUndoRef.current) {\n // No paste to undo \u2014 block native browser contenteditable undo.\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const { snapshot, focusTarget, expressionCursorOffset } =\n pasteUndoRef.current;\n pasteUndoRef.current = null;\n\n event.preventDefault();\n event.stopPropagation();\n\n // Restore value type first so the correct UI mode is rendered.\n setValueType(snapshot.valueType);\n\n if (snapshot.valueType === 'iso8601') {\n // Restore spin button values from the snapshot.\n snapshot.spinButtonTexts.forEach((text, type) => {\n const handler = spinButtonHandlers.get(type) ?? null;\n if (!handler) {\n return;\n }\n if (text === '') {\n handler.clearValue(true);\n } else if (handler.type === 'number') {\n handler.applyText(text, true);\n } else {\n handler.searchValue(text[0] ?? '', true);\n }\n });\n } else {\n // Restore expression text content.\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = snapshot.expressionText;\n }\n setExpressionEmpty(snapshot.expressionText === '');\n }\n\n setValue(snapshot.value);\n setInputValue(snapshot.value?.value ?? '');\n\n requestAnimationFrame(() => {\n // Restore focus after the mode-switch re-render.\n if (\n focusTarget instanceof HTMLElement &&\n focusTarget !== document.activeElement\n ) {\n focusTarget.focus();\n }\n\n // Restore cursor position in the expression input\n if (\n snapshot.valueType === 'expression' &&\n expressionCursorOffset !== undefined &&\n expressionInputRef.current\n ) {\n restoreExpressionCursorOffset(\n expressionInputRef.current,\n expressionCursorOffset,\n );\n }\n });\n },\n [\n spinButtonHandlers,\n expressionInputRef,\n setValue,\n setValueType,\n setExpressionEmpty,\n setInputValue,\n ],\n );\n\n // Handle keyboard events on the expression input: prevent Enter and spin on ArrowUp/ArrowDown\n const expressionOnKeyDownHandler: ReactKeyboardEventHandler<HTMLSpanElement> =\n useCallback(\n (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n return;\n }\n\n if (\n onLeadingEdge &&\n event.key === 'Backspace' &&\n (expressionInputRef.current?.textContent ?? '') === ''\n ) {\n event.preventDefault();\n requestAnimationFrame(() => onLeadingEdge?.());\n return;\n }\n\n if (\n onTrailingEdge &&\n event.key === 'Delete' &&\n (expressionInputRef.current?.textContent ?? '') === ''\n ) {\n event.preventDefault();\n requestAnimationFrame(() => onTrailingEdge?.());\n return;\n }\n\n if (event.key === 'ArrowLeft' && onLeadingEdge) {\n const selection = window.getSelection();\n // If cursor is at the start (offset 0), navigate to the previous input\n if (selection?.anchorOffset === 0 && selection?.focusOffset === 0) {\n onLeadingEdge();\n event.preventDefault();\n return;\n }\n }\n\n if (event.key === 'ArrowRight') {\n const selection = window.getSelection();\n const textContent = expressionInputRef.current?.textContent ?? '';\n // If cursor is at the end, navigate to the next input\n if (selection?.anchorOffset === textContent.length) {\n onTrailingEdge?.();\n event.preventDefault();\n return;\n }\n }\n\n if (\n (event.key === 'ArrowUp' || event.key === 'ArrowDown') &&\n !disabled &&\n !readOnly\n ) {\n const element = expressionInputRef.current;\n if (!element) {\n return;\n }\n\n const currentText = element.textContent ?? '';\n if (!currentText.trim()) {\n return;\n }\n\n const direction: 1 | -1 = event.key === 'ArrowUp' ? 1 : -1;\n const newText = spinExpressionValue(currentText, direction);\n\n if (newText === null) {\n return;\n }\n\n event.preventDefault();\n\n // Preserve cursor position\n const selection = window.getSelection();\n const cursorOffset = selection?.focusOffset ?? 0;\n\n // Update the text content and fire the input handler\n element.textContent = newText;\n\n // Restore cursor position (clamped to new text length)\n requestAnimationFrame(() => {\n const textNode = element.firstChild;\n if (textNode && selection) {\n const newOffset = Math.min(cursorOffset, newText.length);\n const range = document.createRange();\n range.setStart(textNode, newOffset);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n });\n\n // Trigger the input handler to propagate the value change\n element.dispatchEvent(new Event('input', { bubbles: true }));\n }\n },\n [onLeadingEdge, expressionInputRef, disabled, readOnly, onTrailingEdge],\n );\n\n // focus the first spinbutton or the expression input based on the current input mode\n const focus = useCallback(() => {\n switch (valueType) {\n case 'expression':\n expressionInputRef.current?.focus();\n break;\n case 'iso8601':\n firstSpinButtonHandler?.element?.current?.focus();\n break;\n }\n // no need to pass the refs as dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueType, firstSpinButtonHandler]);\n\n /**\n * Clears all spin buttons, switches to expression mode, and seeds the\n * expression input with the provided text. Used when a bulk-delete leaves\n * exactly one spin button filled \u2014 that remaining value is carried over as\n * the expression seed rather than leaving a partial date.\n */\n const switchToExpressionMode = useCallback(\n (text: string) => {\n // setExpressionValue is an imperative expression-mode transition. Do not\n // parse the text through getTimeValue here: numeric fallback text such as\n // \"01\" can otherwise be treated as an ISO value and switch the input back\n // to spin-button mode while a bulk clear is still settling.\n const parsedValue = parseTimeAsTimeValue(\n text,\n TZDateMini.tz(getTimezone()).getTime(),\n precision,\n );\n const newValue: TimeValue | null =\n text !== ''\n ? {\n absoluteDate: parsedValue?.absoluteDate ?? '',\n value: text,\n type: 'expression',\n }\n : null;\n\n for (const handler of spinButtonHandlers.values()) {\n handler?.clearValue(false);\n if (handler?.element.current) {\n handler.element.current.textContent = '';\n }\n }\n\n setInputValue(text);\n\n if (valueType === 'expression') {\n // Already in expression mode \u2014 apply synchronously so the next\n // keypress is not dropped by a deferred rAF write.\n setValue(newValue);\n setExpressionEmpty(text === '');\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = text;\n }\n return;\n }\n\n // Suppress stale spinbutton callbacks during the transition;\n // cleared after the rAF so undo calls are not blocked.\n isSwitchingToExpressionRef.current = true;\n // Update the backing value synchronously. If this waits for rAF, React 19\n // can flush the previous ISO value first and rehydrate the cleared spin\n // buttons before the expression input receives its fallback text.\n setValue(newValue);\n setExpressionEmpty(text === '');\n setValueType('expression');\n requestAnimationFrame(() => {\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = text;\n }\n isSwitchingToExpressionRef.current = false;\n });\n },\n [expressionInputRef, precision, setValue, spinButtonHandlers, valueType],\n );\n\n // first initialization of the uncontrolled expression value on component mount\n useEffect(() => {\n if (isControlled || value?.type !== 'expression') {\n return;\n }\n formatExpressionValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // if the spinbuttons are empty ...\n useEffect(() => {\n // Don't run the empty spinbutton check on component mount.\n if (firstRun.current) {\n firstRun.current = false;\n return;\n }\n\n // ... switch to expression input\n if (valueType === 'iso8601' && spinButtonsEmpty) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n resetToExpressionMode();\n\n // wait until the expression input is visible to set the focus\n setTimeout(() => {\n expressionInputRef?.current?.focus();\n });\n }\n // only react on empty state changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [spinButtonsEmpty]);\n\n useEffect(() => {\n if (valueType !== 'expression') {\n return;\n }\n\n if (empty) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setInputValue('');\n return;\n }\n\n if (expressionInputRef.current?.textContent) {\n setInputValue(expressionInputRef.current?.textContent); // fixes validating initial expression value in the DateTimeRangePicker\n }\n // valueType can be excluded because empty already depends on it\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [empty]);\n\n return {\n empty,\n spinButtons,\n spinButtonHandlers,\n value,\n valueType,\n inputValue,\n expressionInputHandler,\n expressionOnFocusHandler,\n expressionOnBlurHandler,\n expressionOnKeyDownHandler,\n onPaste,\n pasteText,\n onPasteUndoKeyDown,\n clearPasteUndo: () => {\n pasteUndoRef.current = null;\n },\n focus,\n switchToExpressionMode,\n setInputValue,\n };\n};\n"],
|
|
4
|
+
"sourcesContent": ["import { TZDateMini } from '@date-fns/tz';\nimport {\n ClipboardEventHandler,\n FocusEventHandler,\n FocusEvent as ReactFocusEvent,\n ReactEventHandler,\n KeyboardEventHandler as ReactKeyboardEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type RefObject,\n} from 'react';\n\nimport {\n _parseTimeExpression,\n parseTimeAsTimeValue,\n} from '@dynatrace-sdk/units';\nimport { getTimezone } from '@dynatrace-sdk/user-preferences';\n\nimport { useDateTimeParser } from './useDateTimeParser.js';\nimport { spinExpressionValue } from './useExpressionSpin.js';\nimport { useAriaLabelingProps } from '../../../core/hooks/useAriaLabelingProps.js';\nimport { useControllableState } from '../../../core/hooks/useControllableState.js';\nimport { isEqualTimeValue } from '../../../core/time/helpers.js';\nimport { useDateTimePickerStore } from '../../../core/time/timeframeStore/useTimeframeStore.js';\nimport type { TimeValue } from '../../../core/types/time.js';\nimport { useDateTimePicker } from '../../date-time-picker/hooks/useDateTimePicker.js';\nimport {\n formatTimeValue,\n getTimeValue,\n} from '../../forms-core/time/timeParser.js';\nimport { useSelection } from '../../spin-buttons/hooks/useSelection.js';\nimport type { NumberSpinButtonRef } from '../../spin-buttons/number-spin-button/types.js';\nimport type { SpinButtonHandler } from '../../spin-buttons/spin-button-group/types.js';\nimport {\n captureUndoSnapshot,\n isContentModifyingKey,\n normalizeISOInput,\n parseDateOnlyToISO,\n parseTimeOnlyToISO,\n partialDateTimeToISO,\n tryParsePartialDate,\n tryParsePartialTime,\n} from '../helpers.js';\nimport {\n getExpressionCursorOffset,\n restoreExpressionCursorOffset,\n} from '../selection-helpers.js';\nimport type { DateTimeInputProps, UndoSnapshot } from '../types.js';\n\nfunction isNumberSpinButton(\n handler: SpinButtonHandler | undefined,\n): handler is NumberSpinButtonRef {\n return handler?.type === 'number';\n}\n\nconst DATE_PART_TYPES: Set<Intl.DateTimeFormatPart['type']> = new Set([\n 'day',\n 'month',\n 'year',\n]);\nconst TIME_PART_TYPES: Set<Intl.DateTimeFormatPart['type']> = new Set([\n 'hour',\n 'minute',\n 'second',\n 'fractionalSecond',\n 'dayPeriod',\n]);\n\n/**\n * Inserts plain text at the current cursor position, replacing any active selection.\n */\nconst insertTextAtCursor = (text: string) => {\n const selection = window.getSelection();\n if (selection?.rangeCount) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n const textNode = document.createTextNode(text);\n range.insertNode(textNode);\n range.setStartAfter(textNode);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n};\n\n/**\n * Returns true when at least one non-literal spin button is empty.\n */\nconst hasAnyEmptySpinButton = (\n handlersRef: RefObject<\n Map<\n keyof Intl.DateTimeFormatPartTypesRegistry,\n SpinButtonHandler | null | undefined\n >\n >,\n): boolean =>\n Array.from(handlersRef.current?.entries() ?? []).some(\n ([type, handler]) =>\n handler &&\n type !== 'literal' &&\n handler.element.current?.textContent === '',\n );\n\n/**\n * Pastes text into the expression contenteditable span, either at the cursor\n * position (when the selection is inside the span) or by replacing its content.\n */\nconst pasteIntoExpressionInput = (\n element: RefObject<HTMLSpanElement | null>,\n text: string,\n): void => {\n if (element.current) {\n const selection = window.getSelection();\n const range = selection?.rangeCount ? selection.getRangeAt(0) : null;\n\n if (\n range &&\n element.current.contains(range.startContainer) &&\n element.current.contains(range.endContainer)\n ) {\n insertTextAtCursor(text);\n } else {\n element.current.textContent = text;\n moveCursorToEnd(element.current);\n }\n\n element.current.dispatchEvent(new InputEvent('input', { bubbles: true }));\n }\n};\n\n/**\n * Moves the cursor (selection) to the end of the given element's content.\n */\nconst moveCursorToEnd = (element: HTMLSpanElement | null | undefined) => {\n if (element) {\n const range = document.createRange();\n const selection = window.getSelection();\n range.selectNodeContents(element);\n range.collapse(false);\n selection?.removeAllRanges();\n selection?.addRange(range);\n }\n};\n\n/*\n * A hook that provides the default functionality for the DateTimeInput picker\n */\nexport const useDateTimeInput = (\n props: DateTimeInputProps,\n expressionInputRef: RefObject<HTMLSpanElement | null>,\n) => {\n const {\n disabled,\n readOnly,\n type,\n onChange,\n onLeadingEdge,\n onTrailingEdge,\n dateOnlyPasteAnchor = 'startOfDay',\n onPasteComplete,\n partialTimeAnchorDate,\n }: DateTimeInputProps = props;\n const precision = useDateTimePickerStore((state) =>\n state.precision !== 'day' ? state.precision : 'milliseconds',\n );\n\n const ariaProps = useAriaLabelingProps(props);\n const { regexDateTimeStart, maxValue, types } = useDateTimeParser({\n type,\n });\n // ? INVESTIGATE: without the generic, building the visreg story viewer and unit-test typechecking fails,\n // ? but the components:build target still succeeds without any issues -> why?\n const [value, setValue] = useControllableState<TimeValue | null>(props);\n const isControlled = props.value !== undefined;\n const [valueType, setValueType] = useState(value?.type ?? 'expression');\n const firstRun = useRef(true);\n // Tracks the previous value content so that a parent re-render that passes a\n // new object reference with the same content does not trigger formatExpressionValue\n // and reset DOM edits that haven't propagated through React state yet.\n const prevValueRef = useRef<TimeValue | null | undefined>(undefined);\n const [expressionEmpty, setExpressionEmpty] = useState(\n !expressionInputRef.current?.textContent,\n );\n const [inputValue, setInputValue] = useState('');\n // Skips no-op setInputValue calls in the [value] effect. Passive-effect\n // writes that React can't bail out on schedule SyncLane commits that\n // accumulate on rapid keypresses.\n const lastInputValueRef = useRef(inputValue);\n lastInputValueRef.current = inputValue;\n const pasteUndoRef = useRef<{\n snapshot: UndoSnapshot;\n focusTarget: Element | null;\n expressionCursorOffset?: number;\n } | null>(null);\n\n useEffect(() => {\n return () => {\n pasteUndoRef.current = null;\n };\n }, []);\n\n // Tracks the last valid absoluteDate to pass a stable, parseable ISO string\n // to useDateTimePicker while props.value temporarily has absoluteDate:'' during\n // partial spinbutton editing. Keeps useDateTimePicker.value prop unchanged so\n // its internal useEffect doesn't re-run and clear the spinbuttons.\n const lastValidAbsoluteDateRef = useRef<string | null>(\n value?.type === 'iso8601' && value.absoluteDate ? value.absoluteDate : null,\n );\n // True only during the requestAnimationFrame window opened by switchToExpressionMode.\n // Used to suppress stale spinbutton onChange callbacks that fire while the mode\n // transition is in flight, without blocking legitimate restore/undo calls.\n const isSwitchingToExpressionRef = useRef(false);\n\n // Use valueType (local state) not value.type (controlled prop) as the gate \u2014\n // the controlled prop can temporarily become type:'expression' when the store\n // echoes back a partial invalid value for validation while we're still in\n // spinbutton mode.\n if (\n valueType === 'iso8601' &&\n value?.type === 'iso8601' &&\n value.absoluteDate\n ) {\n lastValidAbsoluteDateRef.current = value.absoluteDate;\n }\n const spinButtonValue =\n valueType === 'iso8601' ? lastValidAbsoluteDateRef.current : null;\n\n // Stores the date parts filled in by a partial paste so the focus can target\n // the first spin button that was not filled.\n const pendingFocusPartsRef = useRef<Set<\n keyof Intl.DateTimeFormatPartTypesRegistry\n > | null>(null);\n\n const {\n spinButtons,\n handlers: spinButtonHandlers,\n empty: spinButtonsEmpty,\n applyDateTime,\n firstSpinButtonHandler,\n } = useDateTimePicker({\n type,\n precision,\n disabled,\n readOnly,\n valueType,\n value: spinButtonValue,\n onChange: (newIsoDateTime) => {\n const newValue = getTimeValue(newIsoDateTime ?? undefined, precision);\n\n if (newValue === null || newValue === undefined) {\n return;\n }\n\n // Suppress stale spinbutton callbacks that fire while switchToExpressionMode\n // is transitioning. Any other caller (e.g. undo restore) is allowed through.\n if (isSwitchingToExpressionRef.current) {\n return;\n }\n\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = '';\n }\n\n // If undo (or another caller) pushes a value while we're in expression mode,\n // switch back to spinbutton mode now.\n if (valueType !== 'iso8601') {\n setValueType('iso8601');\n }\n\n // Forward invalid values (empty string or unparseable partial locale string)\n // to onChange so the store validates and shows errors, but skip setValue so\n // props.value stays stable and spinbuttons are not cleared.\n if (newIsoDateTime === '' || newValue?.absoluteDate === '') {\n onChange?.(newValue);\n return;\n }\n\n setInputValue(newValue.value);\n // only update the value if the newTimeValue differs from the prev. one\n setValue((prevValue) =>\n isEqualTimeValue(prevValue, newValue) ? prevValue : newValue,\n );\n },\n ...ariaProps,\n });\n\n const empty = useMemo(\n () => (valueType === 'expression' ? expressionEmpty : spinButtonsEmpty),\n [valueType, expressionEmpty, spinButtonsEmpty],\n );\n\n // Shared state reset when switching (back) to expression mode.\n const resetToExpressionMode = useCallback(\n (expressionEmpty = true) => {\n setValueType('expression');\n setValue(null);\n setInputValue('');\n setExpressionEmpty(expressionEmpty);\n lastValidAbsoluteDateRef.current = null;\n },\n [setValue],\n );\n\n // Tracks the last absoluteDate seen by the controlled-value effect.\n // Used to distinguish a genuine value re-application (absoluteDate changed,\n // e.g. from '' back to a valid ISO string) from an outdated reference change\n // (the store re-parsed a sibling field and created a new object with the\n // same absoluteDate).\n const prevAbsoluteDateRef = useRef<string | null>(null);\n\n // Called on onBlur to sanitize the current expression. Declared here (before\n // the [value] useEffect below) so that React Compiler's immutability analysis\n // can confirm the reference is available at the time the effect is registered.\n const formatExpressionValue = useCallback(\n (value: TimeValue | null) => {\n if (!expressionInputRef.current) {\n return;\n }\n const formattedValue = value ? formatTimeValue(value) : '';\n const currentValue = formatTimeValue(\n expressionInputRef.current?.textContent ?? '',\n );\n\n // only update if the current value differs from the new value\n // don't update the textnode while typing but allow e.g. pasting a new expression\n if (currentValue !== formattedValue) {\n expressionInputRef.current.textContent = formattedValue;\n }\n },\n // no use in adding the expressionInputRef to the dep. array\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n // Keep a ref to the latest spinButtonHandlers so that focus helpers\n // inside requestAnimationFrame always use the current map.\n const spinButtonHandlersRef = useRef(spinButtonHandlers);\n spinButtonHandlersRef.current = spinButtonHandlers;\n\n // switch input mode based on controlled value change\n useEffect(() => {\n const prevValue = prevValueRef.current;\n prevValueRef.current = value;\n\n const applyInputValue = (next: string) => {\n if (lastInputValueRef.current === next) {\n return;\n }\n lastInputValueRef.current = next;\n // oxlint-disable-next-line react-hooks/set-state-in-effect\n setInputValue(next);\n };\n\n if (value?.type === 'iso8601' && !spinButtonsEmpty) {\n applyInputValue(value.value);\n }\n\n // ignore if in uncontrolled mode\n if (!isControlled || typeof value === 'string') {\n return;\n }\n\n const prevAbsoluteDate = prevAbsoluteDateRef.current;\n prevAbsoluteDateRef.current = value?.absoluteDate ?? null;\n\n // reset input if value is null\n if (!value) {\n setValueType('expression');\n formatExpressionValue(null);\n const input = expressionInputRef.current?.textContent;\n setExpressionEmpty(input === '');\n applyDateTime(null);\n lastValidAbsoluteDateRef.current = null;\n return;\n }\n\n // Skip values with empty absoluteDate: partial/invalid intermediate states\n // forwarded to the store for validation only. The spinbuttons manage their\n // own display; reacting here would switch to 'expression' mode and call\n // formatExpressionValue, clearing the display.\n if (value.absoluteDate === '') {\n return;\n }\n\n // apply value to expression\n // the spinbutton update is handled within the useSpinButton hook internally\n if (valueType !== value.type) {\n setValueType(value.type);\n }\n applyInputValue(value.value);\n if (value.type === 'expression') {\n // Only reformat the DOM when the expression content has actually changed.\n // A parent re-render that produces a new object reference with the same\n // value (e.g. due to a sibling input's state update) must not overwrite\n // DOM edits (e.g. partial cross-expression deletion) that haven't yet\n // propagated back through React state.\n if (!isEqualTimeValue(prevValue ?? null, value)) {\n formatExpressionValue(value);\n }\n setExpressionEmpty(value.value === '');\n } else if (\n value.type === 'iso8601' &&\n hasAnyEmptySpinButton(spinButtonHandlersRef) &&\n prevAbsoluteDate !== value.absoluteDate\n ) {\n applyDateTime(value.absoluteDate);\n }\n // only react to outside value changes\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n // Focuses the first spin button that is still empty, or the last spin button when\n // everything is filled in.\n const focusFirstUnfilledSpinButton = useCallback(\n (filledParts: Set<keyof Intl.DateTimeFormatPartTypesRegistry>) => {\n const handlers = spinButtonHandlersRef.current;\n for (const [type, handler] of handlers) {\n if (\n handler &&\n type !== 'literal' &&\n !filledParts.has(\n type as keyof Intl.DateTimeFormatPartTypesRegistry,\n ) &&\n handler.element.current?.textContent === ''\n ) {\n handler.element.current?.focus();\n return;\n }\n }\n // Fallback: focus the last spin button when everything is filled.\n let lastHandler: SpinButtonHandler | null = null;\n for (const [, handler] of handlers) {\n if (handler) {\n lastHandler = handler;\n }\n }\n lastHandler?.element?.current?.focus();\n },\n [],\n );\n\n // Focus the first unfilled spin button after a partial paste triggers a mode switch.\n useEffect(() => {\n const filledParts = pendingFocusPartsRef.current;\n if (!filledParts || valueType !== 'iso8601') {\n return;\n }\n pendingFocusPartsRef.current = null;\n\n requestAnimationFrame(() => {\n focusFirstUnfilledSpinButton(filledParts);\n });\n }, [valueType, focusFirstUnfilledSpinButton]);\n\n const { selectAll: expressionInputSelectAll } =\n useSelection(expressionInputRef);\n\n // handles input events on the expression contenteditable span\n const expressionInputHandler: ReactEventHandler<HTMLSpanElement> =\n useCallback(() => {\n if (!expressionInputRef.current) {\n return;\n }\n\n const input = expressionInputRef.current.textContent ?? '';\n\n // Remove <br> added by browser in contenteditable to ensure placeholder works\n if (expressionInputRef.current.innerHTML === '<br>') {\n expressionInputRef.current.innerHTML = '';\n }\n\n // fallback to expression if text content is removed\n if (input === '') {\n setValueType('expression');\n setValue(null);\n setExpressionEmpty(true);\n return;\n }\n\n setExpressionEmpty(false);\n\n // if the input starts like a valid datetime for the current locale, switch to the datetime picker\n const [, carryOver] = regexDateTimeStart.exec(input) ?? [];\n if (Number.parseInt(carryOver) <= maxValue) {\n setValueType('iso8601');\n\n // clear all spinbuttons\n applyDateTime(null);\n lastValidAbsoluteDateRef.current = null;\n\n // get a cleaned and sorted list of spinbutton handlers\n const sortedHandlers = types\n .filter((type) => type !== 'literal')\n .map((type) => spinButtonHandlers.get(type))\n .filter(Boolean) as SpinButtonHandler[];\n const [carryOverSB, focusSB] = sortedHandlers;\n\n // carry over entered value to the next number spinbutton\n isNumberSpinButton(carryOverSB) &&\n carryOverSB.applyText(carryOver, true);\n\n // clear expression input content\n expressionInputRef.current.textContent = '';\n\n // set focus after switch to expression mode happened\n requestAnimationFrame(() => {\n // set focus to second spinbutton\n focusSB?.element.current?.focus();\n });\n return;\n }\n\n // If the user types a number followed by \":\", switch to the datetime picker\n // with the anchor date pre-filled and the typed hour applied, then focus the\n // minute spin button so the user can continue typing the time.\n // The anchor date defaults to today but can be overridden via `partialTimeAnchorDate`\n if (type !== 'date') {\n const colonMatch = /^(\\d{1,2}):$/.exec(input);\n if (colonMatch) {\n const hour = Number.parseInt(colonMatch[1]);\n if (hour <= 23) {\n const base = partialTimeAnchorDate\n ? new TZDateMini(partialTimeAnchorDate, getTimezone())\n : TZDateMini.tz(getTimezone());\n const iso = TZDateMini.tz(\n getTimezone(),\n base.getFullYear(),\n base.getMonth(),\n base.getDate(),\n hour,\n 0,\n 0,\n 0,\n ).toISOString();\n\n const partsToUpdate = new Set<\n keyof Intl.DateTimeFormatPartTypesRegistry\n >(['day', 'month', 'year', 'hour']);\n\n setValueType('iso8601');\n expressionInputRef.current.textContent = '';\n applyDateTime(iso, partsToUpdate);\n\n requestAnimationFrame(() => {\n focusFirstUnfilledSpinButton(partsToUpdate);\n });\n return;\n }\n }\n }\n\n // If the copied text contains the formatted date in the user's locale (e.g.,\n // \"12/24/2024\" or \"25.12.2024\"), switch to iso8601 mode and apply the parsed date\n // fields to the spin buttons.\n const typedPartialDate = tryParsePartialDate(input);\n if (typedPartialDate) {\n const dateResult = partialDateTimeToISO(typedPartialDate, null);\n if (dateResult) {\n setValueType('iso8601');\n expressionInputRef.current.textContent = '';\n applyDateTime(dateResult.iso, dateResult.partsToUpdate);\n\n requestAnimationFrame(() =>\n focusFirstUnfilledSpinButton(dateResult.partsToUpdate ?? new Set()),\n );\n return;\n }\n }\n\n // if input is a valid expression, update the internal value state\n const newValue = getTimeValue(input, precision) ?? null;\n\n if (newValue?.absoluteDate === '') {\n onChange?.(newValue);\n }\n // only update the value if the newTimeValue differs from the prev. one\n setValue((prevValue) =>\n isEqualTimeValue(prevValue, newValue) ? prevValue : newValue,\n );\n\n setInputValue(input);\n }, [\n expressionInputRef,\n regexDateTimeStart,\n maxValue,\n partialTimeAnchorDate,\n precision,\n type,\n setValue,\n applyDateTime,\n focusFirstUnfilledSpinButton,\n types,\n spinButtonHandlers,\n onChange,\n ]);\n\n // select expression text content on focus\n const expressionOnFocusHandler: FocusEventHandler<HTMLSpanElement> =\n useCallback(\n (event: ReactFocusEvent<HTMLSpanElement>) => {\n // If the current selection spans multiple nodes (e.g. a drag-select or\n // Cmd+A across multiple spin buttons / expression inputs), don't collapse\n // it to just this expression input.\n const selection = window.getSelection();\n const selectionSpansMultipleNodes =\n selection !== null &&\n selection.anchorNode !== selection.focusNode &&\n selection.toString().length > 0;\n\n // Also skip if we are in the middle of a programmatic focus + setBaseAndExtent\n // (guarded by data-restoring-selection on the .strato-inputgroup root).\n const isRestoringSelection =\n (event.target as HTMLElement)\n .closest('.strato-inputgroup')\n ?.hasAttribute('data-restoring-selection') ?? false;\n\n // Skip if the user already has a non-collapsed selection inside this\n // expression input (e.g. drag-select or Shift+arrow within one field).\n // Calling selectAll() here would override that intended partial selection.\n const expressionInputEl = event.target as HTMLElement;\n const hasPartialSelectionWithin =\n selection !== null &&\n !selection.isCollapsed &&\n expressionInputEl.contains(selection.anchorNode) &&\n expressionInputEl.contains(selection.focusNode);\n\n if (\n selectionSpansMultipleNodes ||\n isRestoringSelection ||\n hasPartialSelectionWithin\n ) {\n return;\n }\n\n expressionInputSelectAll();\n },\n [expressionInputSelectAll],\n );\n\n // sanitize textnode if content is an expression\n const expressionOnBlurHandler: FocusEventHandler<HTMLSpanElement> =\n useCallback(() => {\n if (expressionInputRef.current && value?.type === 'expression') {\n const currentExpressionInput =\n expressionInputRef.current.textContent ?? '';\n const isValidExpression = _parseTimeExpression(\n currentExpressionInput.trim(),\n );\n\n if (isValidExpression) {\n expressionInputRef.current.textContent = formatTimeValue(value);\n }\n }\n\n // eslint annoyingly wants to add the ref to the dependency list\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n\n // Shared paste logic used by both the DOM paste event handler and the\n // imperative pasteText method on DateTimeInputRef. Returns true when the\n // paste was handled (caller should preventDefault), false to let native\n // paste proceed (step 4: digits in iso8601 mode).\n const pasteText = useCallback(\n (text: string, skipUndoCapture = false): boolean => {\n if (readOnly) {\n return false;\n }\n\n let trimmedData = normalizeISOInput(text.trim());\n if (!trimmedData) {\n return true;\n }\n\n // Pre-parse locale-specific partial date/time for normalization and step 5.\n const partialDate = tryParsePartialDate(trimmedData);\n const partialTime = tryParsePartialTime(trimmedData);\n const partialResult =\n partialDate || partialTime\n ? partialDateTimeToISO(partialDate, partialTime)\n : null;\n\n // When the result is complete (no partsToUpdate), normalize to ISO so\n // the existing ISO checks (steps 1\u20133) can handle it.\n if (partialResult && !partialResult.partsToUpdate) {\n trimmedData = partialResult.iso;\n }\n\n // Capture undo snapshot before any state mutations unless the caller\n // already owns the snapshot (e.g. range-level paste handler).\n if (!skipUndoCapture) {\n const snapshot = captureUndoSnapshot(\n spinButtonHandlers,\n expressionInputRef.current,\n value,\n valueType,\n );\n\n pasteUndoRef.current = {\n snapshot,\n focusTarget: document.activeElement,\n expressionCursorOffset: expressionInputRef.current\n ? getExpressionCursorOffset(expressionInputRef.current)\n : undefined,\n };\n }\n\n // 1. Date-only paste (e.g. \"2025-01-01\")\n // 2. Time-only paste (e.g. \"02:00Z\", \"14:30:00\")\n const dateOnly = parseDateOnlyToISO(trimmedData, dateOnlyPasteAnchor);\n const timeOnly = parseTimeOnlyToISO(trimmedData);\n const date = dateOnly ?? timeOnly;\n\n if (date) {\n setValueType('iso8601');\n // When spinbuttons are empty (expression mode), apply all parts so the\n // full date is filled in. When parts are already populated, only\n // overwrite the date or time group that matches the pasted value.\n let partsFilter: Set<Intl.DateTimeFormatPart['type']> | undefined;\n if (!spinButtonsEmpty) {\n partsFilter = dateOnly ? DATE_PART_TYPES : TIME_PART_TYPES;\n }\n applyDateTime(date, partsFilter);\n\n // When only a subset of parts was applied, focus the first empty spin\n // button instead of advancing. When all parts were applied skip the check.\n if (partsFilter && hasAnyEmptySpinButton(spinButtonHandlersRef)) {\n focusFirstUnfilledSpinButton(partsFilter);\n } else {\n onPasteComplete?.();\n }\n\n return true;\n }\n\n // 3. Full ISO datetime or expression (e.g. \"2025-01-01T02:00Z\", \"now()-1h\")\n const nextValue = parseTimeAsTimeValue(\n trimmedData,\n TZDateMini.tz(getTimezone()).getTime(),\n precision,\n );\n\n if (nextValue) {\n setValueType(nextValue.type);\n if (nextValue.type === 'expression') {\n formatExpressionValue(nextValue);\n moveCursorToEnd(expressionInputRef.current);\n setValue(nextValue);\n } else {\n applyDateTime(nextValue.absoluteDate);\n }\n onPasteComplete?.();\n return true;\n }\n\n // 4. Allow numbers to be pasted into the spin buttons\n if (valueType === 'iso8601' && /^\\d+$/.test(trimmedData)) {\n return false;\n }\n\n // 5. Partial date/time paste (e.g. \"25.12\", \"14:30\", \"25.12.2024 14:30\")\n // partialResult was pre-computed above the ISO checks.\n if (partialResult?.partsToUpdate) {\n const { iso, partsToUpdate } = partialResult;\n setValueType('iso8601');\n applyDateTime(iso, partsToUpdate);\n\n // Clear any spin button that was not explicitly present in the pasted\n // text (i.e. was a placeholder token or simply absent). This ensures\n // paste always overwrites: fields not carried by the pasted value are\n // emptied rather than left at their previous content.\n for (const [key, handler] of spinButtonHandlersRef.current) {\n if (handler && !partsToUpdate.has(key)) {\n handler.clearValue(true);\n }\n }\n\n if (hasAnyEmptySpinButton(spinButtonHandlersRef)) {\n requestAnimationFrame(() => {\n focusFirstUnfilledSpinButton(partsToUpdate);\n });\n } else {\n onPasteComplete?.();\n }\n\n return true;\n }\n\n // 6. Fallback: switch to expression mode and paste the raw string.\n if (valueType === 'expression') {\n if (expressionInputRef.current) {\n pasteIntoExpressionInput(expressionInputRef, trimmedData);\n }\n } else {\n setValueType('expression');\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = trimmedData;\n expressionInputRef.current.focus();\n moveCursorToEnd(expressionInputRef.current);\n expressionInputRef.current.dispatchEvent(\n new InputEvent('input', { bubbles: true }),\n );\n }\n }\n\n return true;\n },\n [\n readOnly,\n spinButtonHandlers,\n expressionInputRef,\n value,\n dateOnlyPasteAnchor,\n precision,\n valueType,\n setValue,\n onPasteComplete,\n formatExpressionValue,\n applyDateTime,\n spinButtonsEmpty,\n focusFirstUnfilledSpinButton,\n ],\n );\n\n // clipboard paste handler. apply clipboard content if formatted correctly\n const onPaste: ClipboardEventHandler<HTMLSpanElement> = useCallback(\n (event) => {\n const data = event.clipboardData?.getData('text/plain');\n if (!data) {\n event.preventDefault();\n return;\n }\n if (pasteText(data)) {\n event.preventDefault();\n }\n },\n [pasteText],\n );\n\n // Ctrl+Z / Cmd+Z handler to undo a paste operation.\n const onPasteUndoKeyDown: ReactKeyboardEventHandler<HTMLSpanElement> =\n useCallback(\n (event) => {\n const isCtrlZ = (event.ctrlKey || event.metaKey) && event.key === 'z';\n\n if (!isCtrlZ) {\n // Invalidates the paste snapshot for any other input.\n if (pasteUndoRef.current && isContentModifyingKey(event)) {\n pasteUndoRef.current = null;\n }\n return;\n }\n\n if (!pasteUndoRef.current) {\n // No paste to undo \u2014 block native browser contenteditable undo.\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n const { snapshot, focusTarget, expressionCursorOffset } =\n pasteUndoRef.current;\n pasteUndoRef.current = null;\n\n event.preventDefault();\n event.stopPropagation();\n\n // Restore value type first so the correct UI mode is rendered.\n setValueType(snapshot.valueType);\n\n if (snapshot.valueType === 'iso8601') {\n // Restore spin button values from the snapshot.\n snapshot.spinButtonTexts.forEach((text, type) => {\n const handler = spinButtonHandlers.get(type) ?? null;\n if (!handler) {\n return;\n }\n if (text === '') {\n handler.clearValue(true);\n } else if (handler.type === 'number') {\n handler.applyText(text, true);\n } else {\n handler.searchValue(text[0] ?? '', true);\n }\n });\n } else {\n // Restore expression text content.\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = snapshot.expressionText;\n }\n setExpressionEmpty(snapshot.expressionText === '');\n }\n\n setValue(snapshot.value);\n setInputValue(snapshot.value?.value ?? '');\n\n requestAnimationFrame(() => {\n // Restore focus after the mode-switch re-render.\n if (\n focusTarget instanceof HTMLElement &&\n focusTarget !== document.activeElement\n ) {\n focusTarget.focus();\n }\n\n // Restore cursor position in the expression input\n if (\n snapshot.valueType === 'expression' &&\n expressionCursorOffset !== undefined &&\n expressionInputRef.current\n ) {\n restoreExpressionCursorOffset(\n expressionInputRef.current,\n expressionCursorOffset,\n );\n }\n });\n },\n [\n spinButtonHandlers,\n expressionInputRef,\n setValue,\n setValueType,\n setExpressionEmpty,\n setInputValue,\n ],\n );\n\n // Handle keyboard events on the expression input: prevent Enter and spin on ArrowUp/ArrowDown\n const expressionOnKeyDownHandler: ReactKeyboardEventHandler<HTMLSpanElement> =\n useCallback(\n (event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n return;\n }\n\n if (\n onLeadingEdge &&\n event.key === 'Backspace' &&\n (expressionInputRef.current?.textContent ?? '') === ''\n ) {\n event.preventDefault();\n requestAnimationFrame(() => onLeadingEdge?.());\n return;\n }\n\n if (\n onTrailingEdge &&\n event.key === 'Delete' &&\n (expressionInputRef.current?.textContent ?? '') === ''\n ) {\n event.preventDefault();\n requestAnimationFrame(() => onTrailingEdge?.());\n return;\n }\n\n if (event.key === 'ArrowLeft' && onLeadingEdge) {\n const selection = window.getSelection();\n // If cursor is at the start (offset 0), navigate to the previous input\n if (selection?.anchorOffset === 0 && selection?.focusOffset === 0) {\n onLeadingEdge();\n event.preventDefault();\n return;\n }\n }\n\n if (event.key === 'ArrowRight') {\n const selection = window.getSelection();\n const textContent = expressionInputRef.current?.textContent ?? '';\n // If cursor is at the end, navigate to the next input\n if (selection?.anchorOffset === textContent.length) {\n onTrailingEdge?.();\n event.preventDefault();\n return;\n }\n }\n\n if (\n (event.key === 'ArrowUp' || event.key === 'ArrowDown') &&\n !disabled &&\n !readOnly\n ) {\n const element = expressionInputRef.current;\n if (!element) {\n return;\n }\n\n const currentText = element.textContent ?? '';\n if (!currentText.trim()) {\n return;\n }\n\n const direction: 1 | -1 = event.key === 'ArrowUp' ? 1 : -1;\n const newText = spinExpressionValue(currentText, direction);\n\n if (newText === null) {\n return;\n }\n\n event.preventDefault();\n\n // Preserve cursor position\n const selection = window.getSelection();\n const cursorOffset = selection?.focusOffset ?? 0;\n\n // Update the text content and fire the input handler\n element.textContent = newText;\n\n // Restore cursor position (clamped to new text length)\n requestAnimationFrame(() => {\n const textNode = element.firstChild;\n if (textNode && selection) {\n const newOffset = Math.min(cursorOffset, newText.length);\n const range = document.createRange();\n range.setStart(textNode, newOffset);\n range.collapse(true);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n });\n\n // Trigger the input handler to propagate the value change\n element.dispatchEvent(new Event('input', { bubbles: true }));\n }\n },\n [onLeadingEdge, expressionInputRef, disabled, readOnly, onTrailingEdge],\n );\n\n // focus the first spinbutton or the expression input based on the current input mode\n const focus = useCallback(() => {\n switch (valueType) {\n case 'expression':\n expressionInputRef.current?.focus();\n break;\n case 'iso8601':\n firstSpinButtonHandler?.element?.current?.focus();\n break;\n }\n // no need to pass the refs as dependency\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [valueType, firstSpinButtonHandler]);\n\n /**\n * Clears all spin buttons, switches to expression mode, and seeds the\n * expression input with the provided text. Used when a bulk-delete leaves\n * exactly one spin button filled \u2014 that remaining value is carried over as\n * the expression seed rather than leaving a partial date.\n */\n const switchToExpressionMode = useCallback(\n (text: string) => {\n // setExpressionValue is an imperative expression-mode transition. Do not\n // parse the text through getTimeValue here: numeric fallback text such as\n // \"01\" can otherwise be treated as an ISO value and switch the input back\n // to spin-button mode while a bulk clear is still settling.\n const parsedValue = parseTimeAsTimeValue(\n text,\n TZDateMini.tz(getTimezone()).getTime(),\n precision,\n );\n const newValue: TimeValue | null =\n text !== ''\n ? {\n absoluteDate: parsedValue?.absoluteDate ?? '',\n value: text,\n type: 'expression',\n }\n : null;\n\n for (const handler of spinButtonHandlers.values()) {\n handler?.clearValue(false);\n if (handler?.element.current) {\n handler.element.current.textContent = '';\n }\n }\n\n setInputValue(text);\n\n if (valueType === 'expression') {\n // Already in expression mode \u2014 apply synchronously so the next\n // keypress is not dropped by a deferred rAF write.\n setValue(newValue);\n setExpressionEmpty(text === '');\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = text;\n }\n return;\n }\n\n // Suppress stale spinbutton callbacks during the transition;\n // cleared after the rAF so undo calls are not blocked.\n isSwitchingToExpressionRef.current = true;\n // Update the backing value synchronously. If this waits for rAF, React 19\n // can flush the previous ISO value first and rehydrate the cleared spin\n // buttons before the expression input receives its fallback text.\n setValue(newValue);\n setExpressionEmpty(text === '');\n setValueType('expression');\n requestAnimationFrame(() => {\n if (expressionInputRef.current) {\n expressionInputRef.current.textContent = text;\n }\n isSwitchingToExpressionRef.current = false;\n });\n },\n [expressionInputRef, precision, setValue, spinButtonHandlers, valueType],\n );\n\n // first initialization of the uncontrolled expression value on component mount\n useEffect(() => {\n if (isControlled || value?.type !== 'expression') {\n return;\n }\n formatExpressionValue(value);\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // if the spinbuttons are empty ...\n useEffect(() => {\n // Don't run the empty spinbutton check on component mount.\n if (firstRun.current) {\n firstRun.current = false;\n return;\n }\n\n // ... switch to expression input\n if (valueType === 'iso8601' && spinButtonsEmpty) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n resetToExpressionMode();\n\n // wait until the expression input is visible to set the focus\n setTimeout(() => {\n expressionInputRef?.current?.focus();\n });\n }\n // only react on empty state changes\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [spinButtonsEmpty]);\n\n useEffect(() => {\n if (valueType !== 'expression') {\n return;\n }\n\n if (empty) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setInputValue('');\n return;\n }\n\n if (expressionInputRef.current?.textContent) {\n setInputValue(expressionInputRef.current?.textContent); // fixes validating initial expression value in the DateTimeRangePicker\n }\n // valueType can be excluded because empty already depends on it\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [empty]);\n\n return {\n empty,\n spinButtons,\n spinButtonHandlers,\n value,\n valueType,\n inputValue,\n expressionInputHandler,\n expressionOnFocusHandler,\n expressionOnBlurHandler,\n expressionOnKeyDownHandler,\n onPaste,\n pasteText,\n onPasteUndoKeyDown,\n clearPasteUndo: () => {\n pasteUndoRef.current = null;\n },\n focus,\n switchToExpressionMode,\n setInputValue,\n };\n};\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["expressionEmpty", "value", "type"]
|
|
7
7
|
}
|
|
@@ -68,7 +68,7 @@ function useInternalFormRegistration(options) {
|
|
|
68
68
|
);
|
|
69
69
|
};
|
|
70
70
|
const resolvedId = id ?? formFieldContext.formFieldId ?? // DEPRECATION: APPDEV-18319 - Remove deprecated `controlId`.
|
|
71
|
-
//
|
|
71
|
+
// oxlint-disable-next-line typescript/no-deprecated
|
|
72
72
|
formFieldContext.controlId ?? generatedId;
|
|
73
73
|
const wrappedValidateField = useCallback(
|
|
74
74
|
async (validateOptions) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/forms/form/hooks/useInternalFormRegistration.ts"],
|
|
4
|
-
"sourcesContent": ["import { useCallback, useEffect, useRef, type RefObject } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { useFormRuntimeRegistration } from './useFormRuntimeRegistration.js';\nimport { useCallbackRef } from '../../../core/hooks/useCallbackRef.js';\nimport { useId } from '../../../core/hooks/useId.js';\nimport { useFormFieldContext } from '../../forms-core/hooks/useFormFieldContext.js';\nimport { useFormFieldMessagesContext } from '../../forms-core/hooks/useFormFieldMessagesContext.js';\nimport { getI18nValidationState } from '../../forms-core/hooks/useFormFieldValidation.js';\nimport { FormFieldMessagesAction } from '../../forms-core/state/formfield-messages-state-reducer.js';\nimport type { FormControlRef } from '../../shared-types.js';\nimport {\n type MessageTarget,\n normalizeMessageTarget,\n} from '../../validation/message-routing.js';\nimport type { ValidationState } from '../../validation/types.js';\nimport { useCustomMessageEmitter } from '../../validation/useCustomMessageEmitter.js';\nimport type { ValidateFieldOptions } from '../form.types.js';\n\nexport interface InternalFormRegistrationOptions<TValue = unknown> {\n id?: string;\n name?: string;\n form?: string;\n /**\n * Where this control's native/Strato messages render, from the control's\n * `_messageTarget` prop. Defaults to the field outlet.\n */\n messageTarget?: MessageTarget | MessageTarget[];\n value?: TValue;\n controlRef?: RefObject<FormControlRef<HTMLElement> | null>;\n onValidityChange?: (state: ValidationState) => void;\n getValue?: () => unknown;\n focus?: () => void;\n validateField?: (options: ValidateFieldOptions) => Promise<ValidationState>;\n resetValidation?: () => void;\n}\n\n/**\n * Internal registration hook for Strato-owned controls. Strato controls compute their\n * own `ValidationState` (native + Strato + custom messages) through the\n * `FormField` message pipeline; this hook hands that pipeline's\n * `validateField` and value/focus accessors to the enclosing `<Form>` so the\n * control participates in submit, aggregation, snapshot, and focus-first-invalid\n * with no per-control runtime of its own.\n *\n * It is the counterpart to the public `useFormRegistration`: same\n * registration primitive, but fed by the Strato validity pipeline instead of a\n * consumer-supplied validator. Returns a `reportValidity` the control tees its\n * live emissions into, or a no-op when there is no enclosing form.\n * @internal\n */\nexport function useInternalFormRegistration<TValue = unknown>(\n options: InternalFormRegistrationOptions<TValue>,\n): { id: string; onValidityChange: (state: ValidationState) => void } {\n const {\n id,\n name,\n form,\n messageTarget,\n value,\n controlRef,\n onValidityChange,\n getValue,\n focus,\n validateField,\n resetValidation,\n } = options;\n const intl = useIntl();\n const generatedId = useId();\n const formFieldContext = useFormFieldContext();\n const { dispatch } = useFormFieldMessagesContext();\n\n // Publish the control's routing choice into the field context so the two\n // read-points (the `FormFieldMessages` render filter and the\n // `useCustomMessageEmitter` emit path) resolve it without per-control logic.\n const normalizedTarget =\n messageTarget === undefined\n ? undefined\n : normalizeMessageTarget(messageTarget);\n const messageTargetKey = normalizedTarget?.join(',') ?? '';\n const normalizedTargetRef = useRef(normalizedTarget);\n normalizedTargetRef.current = normalizedTarget;\n useEffect(() => {\n dispatch?.({\n type: FormFieldMessagesAction.SETMESSAGETARGET,\n payload: { messageTarget: normalizedTargetRef.current },\n });\n }, [dispatch, messageTargetKey]);\n const suppressLiveValidityReportRef = useRef(false);\n const reportValidityRef = useRef<\n ((state: ValidationState) => void) | undefined\n >(undefined);\n\n // Consumers routinely pass a fresh `onValidityChange` on every render (e.g. an\n // inline arrow). Read it through a stable ref so `handleValidityChange` \u2014 and\n // the `useCustomMessageEmitter` re-emit effects that depend on it \u2014 keep a\n // stable identity; otherwise every emitted state re-triggers those effects,\n // and when the consumer's handler also sets state it becomes an infinite loop.\n const onValidityChangeStable = useCallbackRef(onValidityChange);\n const handleValidityChange = useCallback(\n (state: ValidationState) => {\n onValidityChangeStable(state);\n if (!suppressLiveValidityReportRef.current) {\n reportValidityRef.current?.(state);\n }\n },\n [onValidityChangeStable],\n );\n const emitWithCustomMessages = useCustomMessageEmitter(\n handleValidityChange,\n () => getI18nValidationState(intl, controlRef?.current?.inputRef, 'manual'),\n );\n\n const defaultValidateField = ({ reveal, trigger }: ValidateFieldOptions) => {\n controlRef?.current?.inputRef?.checkValidity();\n if (reveal) {\n dispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n }\n return emitWithCustomMessages(\n getI18nValidationState(intl, controlRef?.current?.inputRef, trigger),\n );\n };\n\n const resolvedId =\n id ??\n formFieldContext.formFieldId ??\n // DEPRECATION: APPDEV-18319 - Remove deprecated `controlId`.\n //
|
|
4
|
+
"sourcesContent": ["import { useCallback, useEffect, useRef, type RefObject } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { useFormRuntimeRegistration } from './useFormRuntimeRegistration.js';\nimport { useCallbackRef } from '../../../core/hooks/useCallbackRef.js';\nimport { useId } from '../../../core/hooks/useId.js';\nimport { useFormFieldContext } from '../../forms-core/hooks/useFormFieldContext.js';\nimport { useFormFieldMessagesContext } from '../../forms-core/hooks/useFormFieldMessagesContext.js';\nimport { getI18nValidationState } from '../../forms-core/hooks/useFormFieldValidation.js';\nimport { FormFieldMessagesAction } from '../../forms-core/state/formfield-messages-state-reducer.js';\nimport type { FormControlRef } from '../../shared-types.js';\nimport {\n type MessageTarget,\n normalizeMessageTarget,\n} from '../../validation/message-routing.js';\nimport type { ValidationState } from '../../validation/types.js';\nimport { useCustomMessageEmitter } from '../../validation/useCustomMessageEmitter.js';\nimport type { ValidateFieldOptions } from '../form.types.js';\n\nexport interface InternalFormRegistrationOptions<TValue = unknown> {\n id?: string;\n name?: string;\n form?: string;\n /**\n * Where this control's native/Strato messages render, from the control's\n * `_messageTarget` prop. Defaults to the field outlet.\n */\n messageTarget?: MessageTarget | MessageTarget[];\n value?: TValue;\n controlRef?: RefObject<FormControlRef<HTMLElement> | null>;\n onValidityChange?: (state: ValidationState) => void;\n getValue?: () => unknown;\n focus?: () => void;\n validateField?: (options: ValidateFieldOptions) => Promise<ValidationState>;\n resetValidation?: () => void;\n}\n\n/**\n * Internal registration hook for Strato-owned controls. Strato controls compute their\n * own `ValidationState` (native + Strato + custom messages) through the\n * `FormField` message pipeline; this hook hands that pipeline's\n * `validateField` and value/focus accessors to the enclosing `<Form>` so the\n * control participates in submit, aggregation, snapshot, and focus-first-invalid\n * with no per-control runtime of its own.\n *\n * It is the counterpart to the public `useFormRegistration`: same\n * registration primitive, but fed by the Strato validity pipeline instead of a\n * consumer-supplied validator. Returns a `reportValidity` the control tees its\n * live emissions into, or a no-op when there is no enclosing form.\n * @internal\n */\nexport function useInternalFormRegistration<TValue = unknown>(\n options: InternalFormRegistrationOptions<TValue>,\n): { id: string; onValidityChange: (state: ValidationState) => void } {\n const {\n id,\n name,\n form,\n messageTarget,\n value,\n controlRef,\n onValidityChange,\n getValue,\n focus,\n validateField,\n resetValidation,\n } = options;\n const intl = useIntl();\n const generatedId = useId();\n const formFieldContext = useFormFieldContext();\n const { dispatch } = useFormFieldMessagesContext();\n\n // Publish the control's routing choice into the field context so the two\n // read-points (the `FormFieldMessages` render filter and the\n // `useCustomMessageEmitter` emit path) resolve it without per-control logic.\n const normalizedTarget =\n messageTarget === undefined\n ? undefined\n : normalizeMessageTarget(messageTarget);\n const messageTargetKey = normalizedTarget?.join(',') ?? '';\n const normalizedTargetRef = useRef(normalizedTarget);\n normalizedTargetRef.current = normalizedTarget;\n useEffect(() => {\n dispatch?.({\n type: FormFieldMessagesAction.SETMESSAGETARGET,\n payload: { messageTarget: normalizedTargetRef.current },\n });\n }, [dispatch, messageTargetKey]);\n const suppressLiveValidityReportRef = useRef(false);\n const reportValidityRef = useRef<\n ((state: ValidationState) => void) | undefined\n >(undefined);\n\n // Consumers routinely pass a fresh `onValidityChange` on every render (e.g. an\n // inline arrow). Read it through a stable ref so `handleValidityChange` \u2014 and\n // the `useCustomMessageEmitter` re-emit effects that depend on it \u2014 keep a\n // stable identity; otherwise every emitted state re-triggers those effects,\n // and when the consumer's handler also sets state it becomes an infinite loop.\n const onValidityChangeStable = useCallbackRef(onValidityChange);\n const handleValidityChange = useCallback(\n (state: ValidationState) => {\n onValidityChangeStable(state);\n if (!suppressLiveValidityReportRef.current) {\n reportValidityRef.current?.(state);\n }\n },\n [onValidityChangeStable],\n );\n const emitWithCustomMessages = useCustomMessageEmitter(\n handleValidityChange,\n () => getI18nValidationState(intl, controlRef?.current?.inputRef, 'manual'),\n );\n\n const defaultValidateField = ({ reveal, trigger }: ValidateFieldOptions) => {\n controlRef?.current?.inputRef?.checkValidity();\n if (reveal) {\n dispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n }\n return emitWithCustomMessages(\n getI18nValidationState(intl, controlRef?.current?.inputRef, trigger),\n );\n };\n\n const resolvedId =\n id ??\n formFieldContext.formFieldId ??\n // DEPRECATION: APPDEV-18319 - Remove deprecated `controlId`.\n // oxlint-disable-next-line typescript/no-deprecated\n formFieldContext.controlId ??\n generatedId;\n\n const wrappedValidateField = useCallback(\n async (validateOptions: ValidateFieldOptions) => {\n suppressLiveValidityReportRef.current = true;\n try {\n return await (validateField ?? defaultValidateField)(validateOptions);\n } finally {\n suppressLiveValidityReportRef.current = false;\n }\n },\n [defaultValidateField, validateField],\n );\n\n const reportValidity = useFormRuntimeRegistration({\n id: resolvedId,\n name,\n form,\n getValue: getValue ?? (() => value),\n focus: focus ?? (() => controlRef?.current?.focus?.()),\n validateField: wrappedValidateField,\n resetValidation:\n resetValidation ??\n (() => {\n controlRef?.current?.inputRef?.setCustomValidity('');\n dispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: false, resetShowError: true },\n });\n }),\n });\n\n reportValidityRef.current = reportValidity;\n\n return { id: resolvedId, onValidityChange: handleValidityChange };\n}\n"],
|
|
5
5
|
"mappings": "AAAA,SAAS,aAAa,WAAW,cAA8B;AAC/D,SAAS,eAAe;AAExB,SAAS,kCAAkC;AAC3C,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,2BAA2B;AACpC,SAAS,mCAAmC;AAC5C,SAAS,8BAA8B;AACvC,SAAS,+BAA+B;AAExC;AAAA,EAEE;AAAA,OACK;AAEP,SAAS,+BAA+B;AAmCjC,SAAS,4BACd,SACoE;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,OAAO,QAAQ;AACrB,QAAM,cAAc,MAAM;AAC1B,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,EAAE,SAAS,IAAI,4BAA4B;AAKjD,QAAM,mBACJ,kBAAkB,SACd,SACA,uBAAuB,aAAa;AAC1C,QAAM,mBAAmB,kBAAkB,KAAK,GAAG,KAAK;AACxD,QAAM,sBAAsB,OAAO,gBAAgB;AACnD,sBAAoB,UAAU;AAC9B,YAAU,MAAM;AACd,eAAW;AAAA,MACT,MAAM,wBAAwB;AAAA,MAC9B,SAAS,EAAE,eAAe,oBAAoB,QAAQ;AAAA,IACxD,CAAC;AAAA,EACH,GAAG,CAAC,UAAU,gBAAgB,CAAC;AAC/B,QAAM,gCAAgC,OAAO,KAAK;AAClD,QAAM,oBAAoB,OAExB,MAAS;AAOX,QAAM,yBAAyB,eAAe,gBAAgB;AAC9D,QAAM,uBAAuB;AAAA,IAC3B,CAAC,UAA2B;AAC1B,6BAAuB,KAAK;AAC5B,UAAI,CAAC,8BAA8B,SAAS;AAC1C,0BAAkB,UAAU,KAAK;AAAA,MACnC;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB;AAAA,EACzB;AACA,QAAM,yBAAyB;AAAA,IAC7B;AAAA,IACA,MAAM,uBAAuB,MAAM,YAAY,SAAS,UAAU,QAAQ;AAAA,EAC5E;AAEA,QAAM,uBAAuB,CAAC,EAAE,QAAQ,QAAQ,MAA4B;AAC1E,gBAAY,SAAS,UAAU,cAAc;AAC7C,QAAI,QAAQ;AACV,iBAAW;AAAA,QACT,MAAM,wBAAwB;AAAA,QAC9B,SAAS,EAAE,WAAW,KAAK;AAAA,MAC7B,CAAC;AAAA,IACH;AACA,WAAO;AAAA,MACL,uBAAuB,MAAM,YAAY,SAAS,UAAU,OAAO;AAAA,IACrE;AAAA,EACF;AAEA,QAAM,aACJ,MACA,iBAAiB;AAAA;AAAA,EAGjB,iBAAiB,aACjB;AAEF,QAAM,uBAAuB;AAAA,IAC3B,OAAO,oBAA0C;AAC/C,oCAA8B,UAAU;AACxC,UAAI;AACF,eAAO,OAAO,iBAAiB,sBAAsB,eAAe;AAAA,MACtE,UAAE;AACA,sCAA8B,UAAU;AAAA,MAC1C;AAAA,IACF;AAAA,IACA,CAAC,sBAAsB,aAAa;AAAA,EACtC;AAEA,QAAM,iBAAiB,2BAA2B;AAAA,IAChD,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,UAAU,aAAa,MAAM;AAAA,IAC7B,OAAO,UAAU,MAAM,YAAY,SAAS,QAAQ;AAAA,IACpD,eAAe;AAAA,IACf,iBACE,oBACC,MAAM;AACL,kBAAY,SAAS,UAAU,kBAAkB,EAAE;AACnD,iBAAW;AAAA,QACT,MAAM,wBAAwB;AAAA,QAC9B,SAAS,EAAE,WAAW,OAAO,gBAAgB,KAAK;AAAA,MACpD,CAAC;AAAA,IACH;AAAA,EACJ,CAAC;AAED,oBAAkB,UAAU;AAE5B,SAAO,EAAE,IAAI,YAAY,kBAAkB,qBAAqB;AAClE;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -26,6 +26,7 @@ const SOURCE_PRIORITY = {
|
|
|
26
26
|
strato: 1,
|
|
27
27
|
native: 2
|
|
28
28
|
};
|
|
29
|
+
const NO_ERRORS = [];
|
|
29
30
|
function createFormRuntime(getConfig) {
|
|
30
31
|
const config = { validators: [] };
|
|
31
32
|
const controls = /* @__PURE__ */ new Map();
|
|
@@ -33,8 +34,8 @@ function createFormRuntime(getConfig) {
|
|
|
33
34
|
let manualErrors = [];
|
|
34
35
|
let formValidatorErrors = [];
|
|
35
36
|
let isSubmitted = false;
|
|
36
|
-
let activeValidationRuns = 0;
|
|
37
37
|
let validationRunId = 0;
|
|
38
|
+
const unsettledRunIds = /* @__PURE__ */ new Set();
|
|
38
39
|
let readConfig = getConfig ?? (() => config);
|
|
39
40
|
const listeners = /* @__PURE__ */ new Set();
|
|
40
41
|
const warnedDuplicateNames = /* @__PURE__ */ new Set();
|
|
@@ -51,7 +52,7 @@ function createFormRuntime(getConfig) {
|
|
|
51
52
|
return [...fieldStates.values()].some(stateIsPending);
|
|
52
53
|
}
|
|
53
54
|
function isPending() {
|
|
54
|
-
return
|
|
55
|
+
return unsettledRunIds.has(validationRunId) || hasPendingFields();
|
|
55
56
|
}
|
|
56
57
|
function aggregateErrors() {
|
|
57
58
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -127,7 +128,7 @@ function createFormRuntime(getConfig) {
|
|
|
127
128
|
async function runValidation(trigger, reveal) {
|
|
128
129
|
const runId = ++validationRunId;
|
|
129
130
|
const runControls = [...controls.values()];
|
|
130
|
-
|
|
131
|
+
unsettledRunIds.add(runId);
|
|
131
132
|
emitValidityChange(trigger);
|
|
132
133
|
notify();
|
|
133
134
|
try {
|
|
@@ -156,7 +157,7 @@ function createFormRuntime(getConfig) {
|
|
|
156
157
|
);
|
|
157
158
|
}
|
|
158
159
|
} finally {
|
|
159
|
-
|
|
160
|
+
unsettledRunIds.delete(runId);
|
|
160
161
|
emitValidityChange(trigger);
|
|
161
162
|
notify();
|
|
162
163
|
}
|
|
@@ -168,7 +169,11 @@ function createFormRuntime(getConfig) {
|
|
|
168
169
|
validate: () => runValidation("manual", true),
|
|
169
170
|
submit: async () => {
|
|
170
171
|
isSubmitted = true;
|
|
172
|
+
const submitRunId = validationRunId + 1;
|
|
171
173
|
const status = await runValidation("submit", true);
|
|
174
|
+
if (validationRunId !== submitRunId) {
|
|
175
|
+
return buildStatus();
|
|
176
|
+
}
|
|
172
177
|
if (!status.isValid) {
|
|
173
178
|
focusFirstInvalid(controls, status.errors);
|
|
174
179
|
readConfig().onInvalid?.({
|
|
@@ -184,7 +189,7 @@ function createFormRuntime(getConfig) {
|
|
|
184
189
|
},
|
|
185
190
|
resetValidation: () => {
|
|
186
191
|
validationRunId += 1;
|
|
187
|
-
|
|
192
|
+
unsettledRunIds.clear();
|
|
188
193
|
manualErrors = [];
|
|
189
194
|
formValidatorErrors = [];
|
|
190
195
|
isSubmitted = false;
|
|
@@ -247,6 +252,9 @@ function createFormRuntime(getConfig) {
|
|
|
247
252
|
// signature actually changed — a fresh array on every read forces a re-render and
|
|
248
253
|
// can loop.
|
|
249
254
|
getFormMessages: () => {
|
|
255
|
+
if (isPending()) {
|
|
256
|
+
return NO_ERRORS;
|
|
257
|
+
}
|
|
250
258
|
const current = aggregateErrors().filter(
|
|
251
259
|
(error) => error instanceof FormValidationError || routesTo(error, "form")
|
|
252
260
|
);
|
|
@@ -258,6 +266,9 @@ function createFormRuntime(getConfig) {
|
|
|
258
266
|
return formMessagesCache;
|
|
259
267
|
},
|
|
260
268
|
getFieldMessages: (controlId) => {
|
|
269
|
+
if (isPending()) {
|
|
270
|
+
return NO_ERRORS;
|
|
271
|
+
}
|
|
261
272
|
const current = errorsForField(controlId);
|
|
262
273
|
const signature = errorSetSignature(current);
|
|
263
274
|
const cached = fieldMessagesCache.get(controlId);
|
|
@@ -307,7 +318,7 @@ function cloneWithCustomSource(error) {
|
|
|
307
318
|
});
|
|
308
319
|
}
|
|
309
320
|
function matchesTarget(error, target, validityStateKey) {
|
|
310
|
-
const routedTo = error instanceof FormValidationError
|
|
321
|
+
const routedTo = error instanceof FormValidationError && error.formId === target || (Array.isArray(error.formControlId) ? error.formControlId.includes(target) : error.formControlId === target);
|
|
311
322
|
if (!routedTo) {
|
|
312
323
|
return false;
|
|
313
324
|
}
|
|
@@ -319,6 +330,9 @@ function focusFirstInvalid(controls, errors) {
|
|
|
319
330
|
(error) => error.formControlId === void 0 ? [] : Array.isArray(error.formControlId) ? error.formControlId : [error.formControlId]
|
|
320
331
|
)
|
|
321
332
|
);
|
|
333
|
+
if (invalidIds.size === 0) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
322
336
|
for (const { control } of controls.values()) {
|
|
323
337
|
if (invalidIds.has(control.id)) {
|
|
324
338
|
control.focus();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/forms/form/runtime/createFormRuntime.ts"],
|
|
4
|
-
"sourcesContent": ["import { getStratoLogger } from '../../../core/sdk/sdk-logger.js';\nimport { routesTo } from '../../validation/message-routing.js';\nimport {\n ValidationError,\n type ValidationErrorSource,\n type ValidationState,\n type ValidationTrigger,\n type ValidityStateKey,\n} from '../../validation/types.js';\nimport { FormValidationError } from '../form-error-classes.js';\nimport type {\n ControlRegistrationHandle,\n FormApi,\n FormSnapshot,\n FormStatus,\n FormValidator,\n RegisteredControl,\n} from '../form.types.js';\n\n/**\n * Mutable config the `<Form>` component feeds into the runtime on every render.\n * @internal\n */\nexport interface FormRuntimeConfig<TValues = Record<string, unknown>> {\n formId?: string;\n validators: FormValidator<TValues>[];\n onSubmit?: (context: {\n snapshot: FormSnapshot<TValues>;\n form: FormApi<TValues>;\n }) => void;\n onInvalid?: (context: {\n snapshot: FormSnapshot<TValues>;\n status: FormStatus;\n form: FormApi<TValues>;\n }) => void;\n onValidityChange?: (state: ValidationState) => void;\n}\n\n/**\n * The full runtime surface: the public {@link FormApi} plus the internal hooks\n * the `<Form>` component and registered controls use.\n * @internal\n */\nexport interface FormRuntime<TValues = Record<string, unknown>>\n extends FormApi<TValues> {\n /** Registers a control and returns its imperative handle. */\n register: (control: RegisteredControl) => ControlRegistrationHandle;\n /** Subscribes to any runtime change (for `useSyncExternalStore`). */\n subscribe: (listener: () => void) => () => void;\n /** The form-wide errors currently rendered by `<FormMessages>`. */\n getFormMessages: () => ValidationError[];\n /** Runtime-owned field errors rendered by `FormFieldMessages`. */\n getFieldMessages: (controlId: string) => ValidationError[];\n /**\n * Replaces the config getter that the runtime calls on each submit/validate.\n * Called by `<Form>` when an external runtime is supplied via the `form` prop.\n * Pass `undefined` to revert to the no-op default (e.g. on unmount).\n * @internal\n */\n _bindConfig?: (fn: (() => FormRuntimeConfig<TValues>) | undefined) => void;\n}\n\ntype RegisteredEntry = {\n control: RegisteredControl;\n token: symbol;\n};\n\n// Ordinal comparator for building canonical, environment-independent dedup and\n// signature keys. `localeCompare` is locale/ICU-dependent, so it could order\n// non-ASCII ids differently across machines \u2014 these keys must be deterministic.\nfunction compareOrdinal(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nfunction errorIdentity(error: ValidationError): string {\n const target = Array.isArray(error.formControlId)\n ? [...error.formControlId].sort(compareOrdinal).join(',')\n : error.formControlId ?? '';\n const formId = error instanceof FormValidationError ? error.formId : '';\n return `${error.validityStateKey.toString()}|${target}|${formId}`;\n}\n\nfunction errorSignature(error: ValidationError): string {\n return `${errorIdentity(error)}|${error.message}`;\n}\n\nfunction errorSetSignature(errors: ValidationError[]): string {\n return errors.map(errorSignature).sort(compareOrdinal).join('\\u0000');\n}\n\nfunction stateIsPending(state: ValidationState): boolean {\n return state.status === 'pending';\n}\n\nconst SOURCE_PRIORITY: Record<ValidationErrorSource, number> = {\n custom: 0,\n strato: 1,\n native: 2,\n};\n\nexport function createFormRuntime<TValues = Record<string, unknown>>(\n getConfig?: () => FormRuntimeConfig<TValues>,\n): FormRuntime<TValues> {\n const config: FormRuntimeConfig<TValues> = { validators: [] };\n const controls = new Map<string, RegisteredEntry>();\n const fieldStates = new Map<string, ValidationState>();\n let manualErrors: ValidationError[] = [];\n let formValidatorErrors: ValidationError[] = [];\n let isSubmitted = false;\n let activeValidationRuns = 0;\n let validationRunId = 0;\n\n let readConfig = getConfig ?? (() => config);\n const listeners = new Set<() => void>();\n const warnedDuplicateNames = new Set<string>();\n\n let formMessagesCache: ValidationError[] = [];\n let formMessagesSignature = '';\n const fieldMessagesCache = new Map<\n string,\n { signature: string; messages: ValidationError[] }\n >();\n let lastValiditySignature: string | undefined;\n\n function notify() {\n for (const listener of listeners) {\n listener();\n }\n }\n\n function hasPendingFields(): boolean {\n return [...fieldStates.values()].some(stateIsPending);\n }\n\n function isPending(): boolean {\n return activeValidationRuns > 0 || hasPendingFields();\n }\n\n function aggregateErrors(): ValidationError[] {\n const seen = new Set<string>();\n const result: ValidationError[] = [];\n const push = (error: ValidationError) => {\n const signature = errorSignature(error);\n if (!seen.has(signature)) {\n seen.add(signature);\n result.push(error);\n }\n };\n for (const state of fieldStates.values()) {\n state.errors.forEach(push);\n }\n formValidatorErrors.forEach(push);\n manualErrors.forEach(push);\n return result;\n }\n\n function errorsForField(controlId: string): ValidationError[] {\n const matched = aggregateErrors().filter(\n (error) => matchesTarget(error, controlId) && routesTo(error, 'field'),\n );\n // So a consumer that renders only errors[0] gets a deterministic result.\n // Sort is stable, so two errors of the same source keep their relative order.\n return [...matched].sort(\n (a, b) => SOURCE_PRIORITY[a.source] - SOURCE_PRIORITY[b.source],\n );\n }\n\n function buildStatus(): FormStatus {\n const errors = aggregateErrors();\n return {\n isValid: errors.length === 0,\n isPending: isPending(),\n isSubmitted,\n errors,\n };\n }\n\n function buildSnapshot(): FormSnapshot<TValues> {\n const values: Record<string, unknown> = {};\n const fields: FormSnapshot['fields'] = {};\n for (const { control } of controls.values()) {\n const key = control.name ?? control.id;\n if (Object.hasOwn(values, key) && !warnedDuplicateNames.has(key)) {\n warnedDuplicateNames.add(key);\n getStratoLogger('Form').warn(\n `Multiple form controls share the name \"${key}\"; only the last value is kept in the form snapshot.`,\n );\n }\n values[key] = control.getValue();\n const fieldErrors = errorsForField(control.id);\n fields[control.id] = {\n isValid: fieldErrors.length === 0,\n isTouched: fieldStates.has(control.id),\n errors: fieldErrors,\n };\n }\n return {\n values: values as TValues,\n fields,\n };\n }\n\n function emitValidityChange(trigger: ValidationTrigger) {\n const errors = aggregateErrors();\n const signature = `${errors.length === 0 ? 'valid' : 'invalid'}|${\n isPending() ? 'pending' : 'done'\n }|${errorSetSignature(errors)}`;\n // The runtime notifies liberally \u2014 it emits on the way into and out of every\n // validation run and on every mutation. Collapse to a signature so\n // `onValidityChange` fires only on real transitions, not identical recomputations.\n if (signature === lastValiditySignature) {\n return;\n }\n lastValiditySignature = signature;\n readConfig().onValidityChange?.({\n status: isPending() ? 'pending' : 'done',\n trigger,\n errors,\n });\n }\n\n async function runValidation(\n trigger: ValidationTrigger,\n reveal: boolean,\n ): Promise<FormStatus> {\n const runId = ++validationRunId;\n const runControls = [...controls.values()];\n activeValidationRuns += 1;\n emitValidityChange(trigger);\n notify();\n\n try {\n const results = await Promise.all(\n runControls.map(async ({ control, token }) => {\n const state = await control.validateField({ reveal, trigger });\n return { id: control.id, token, state };\n }),\n );\n\n if (runId === validationRunId) {\n for (const { id, token, state } of results) {\n if (controls.get(id)?.token === token) {\n fieldStates.set(id, state);\n }\n }\n }\n\n const snapshot = buildSnapshot();\n const validatorResults = await Promise.all(\n readConfig().validators.map((validator) =>\n runFormValidator(validator, snapshot.values, readConfig().formId),\n ),\n );\n\n if (runId === validationRunId) {\n formValidatorErrors = validatorResults\n .flat()\n .map((error) =>\n error.source === 'custom' ? error : cloneWithCustomSource(error),\n );\n }\n } finally {\n activeValidationRuns -= 1;\n emitValidityChange(trigger);\n notify();\n }\n\n return buildStatus();\n }\n\n const api: FormRuntime<TValues> = {\n getStatus: buildStatus,\n getSnapshot: buildSnapshot,\n\n validate: () => runValidation('manual', true),\n\n submit: async () => {\n isSubmitted = true;\n // Consumer-set errors (`setError`) persist across submits; only the\n // consumer clears them via `clearError` / `resetValidation`. This keeps a\n // server-side error visible on retry until the consumer removes it.\n const status = await runValidation('submit', true);\n\n if (!status.isValid) {\n focusFirstInvalid(controls, status.errors);\n readConfig().onInvalid?.({\n snapshot: buildSnapshot(),\n status,\n form: api,\n });\n } else {\n readConfig().onSubmit?.({ snapshot: buildSnapshot(), form: api });\n }\n notify();\n return buildStatus();\n },\n\n resetValidation: () => {\n validationRunId += 1;\n activeValidationRuns = 0;\n manualErrors = [];\n formValidatorErrors = [];\n isSubmitted = false;\n fieldStates.clear();\n for (const { control } of controls.values()) {\n control.resetValidation?.();\n }\n lastValiditySignature = undefined;\n emitValidityChange('manual');\n notify();\n },\n\n setError: (error) => {\n const identity = errorIdentity(error);\n manualErrors = [\n ...manualErrors.filter(\n (existing) => errorIdentity(existing) !== identity,\n ),\n error,\n ];\n emitValidityChange('manual');\n notify();\n },\n\n clearError: (target, validityStateKey) => {\n manualErrors = manualErrors.filter(\n (error) => !matchesTarget(error, target, validityStateKey),\n );\n emitValidityChange('manual');\n notify();\n },\n\n register: (control) => {\n // Per-registration token. A control id can be re-registered (remount, or a\n // duplicate id). Every handle captures its token and no-ops if the live entry's\n // token differs, so a stale handle's async report/unregister can't clobber the\n // current registration.\n const token = Symbol(control.id);\n controls.set(control.id, { control, token });\n notify();\n return {\n reportValidity: (state) => {\n if (controls.get(control.id)?.token !== token) {\n return;\n }\n fieldStates.set(control.id, state);\n emitValidityChange(state.trigger);\n notify();\n },\n unregister: () => {\n if (controls.get(control.id)?.token !== token) {\n return;\n }\n controls.delete(control.id);\n fieldStates.delete(control.id);\n emitValidityChange('manual');\n notify();\n },\n };\n },\n\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n\n // `FormMessages`/`FormFieldMessages` read these via `useSyncExternalStore`, which\n // compares snapshots by reference. Return the cached array unless the error set's\n // signature actually changed \u2014 a fresh array on every read forces a re-render and\n // can loop.\n getFormMessages: () => {\n // Form-wide errors: the routing subclass, plus any control's native/Strato\n // error explicitly routed to the form outlet via `_messageTarget`.\n const current = aggregateErrors().filter(\n (error) =>\n error instanceof FormValidationError || routesTo(error, 'form'),\n );\n const signature = errorSetSignature(current);\n if (signature !== formMessagesSignature) {\n formMessagesSignature = signature;\n formMessagesCache = current;\n }\n return formMessagesCache;\n },\n\n getFieldMessages: (controlId) => {\n const current = errorsForField(controlId);\n const signature = errorSetSignature(current);\n const cached = fieldMessagesCache.get(controlId);\n if (cached?.signature === signature) {\n return cached.messages;\n }\n fieldMessagesCache.set(controlId, { signature, messages: current });\n return current;\n },\n\n _bindConfig: (fn) => {\n readConfig = fn ?? (() => config);\n },\n };\n\n return api;\n}\n\nasync function runFormValidator<TValues>(\n validator: FormValidator<TValues>,\n values: TValues,\n formId: string | undefined,\n): Promise<ValidationError[]> {\n try {\n return await validator({ values });\n } catch (cause) {\n if (formId !== undefined) {\n return [\n new FormValidationError('Validation failed.', {\n formId,\n cause,\n }),\n ];\n }\n return [\n new ValidationError('Validation failed.', { source: 'custom', cause }),\n ];\n }\n}\n\nfunction cloneWithCustomSource(error: ValidationError): ValidationError {\n if (error instanceof FormValidationError) {\n return new FormValidationError(error.message, {\n formId: error.formId,\n validityStateKey: error.validityStateKey,\n formControlId: error.formControlId,\n cause: error.cause,\n });\n }\n return new ValidationError(error.message, {\n source: 'custom',\n validityStateKey: error.validityStateKey,\n formControlId: error.formControlId,\n cause: error.cause,\n });\n}\n\nfunction matchesTarget(\n error: ValidationError,\n target: string,\n validityStateKey?: ValidityStateKey,\n): boolean {\n const routedTo =\n error instanceof FormValidationError\n ? error.formId === target\n : Array.isArray(error.formControlId)\n ? error.formControlId.includes(target)\n : error.formControlId === target;\n if (!routedTo) {\n return false;\n }\n return (\n validityStateKey === undefined ||\n error.validityStateKey.equals(validityStateKey)\n );\n}\n\nfunction focusFirstInvalid(\n controls: Map<string, RegisteredEntry>,\n errors: ValidationError[],\n) {\n const invalidIds = new Set(\n errors.flatMap((error) =>\n error.formControlId === undefined\n ? []\n : Array.isArray(error.formControlId)\n ? error.formControlId\n : [error.formControlId],\n ),\n );\n for (const { control } of controls.values()) {\n if (invalidIds.has(control.id)) {\n control.focus();\n return;\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,OAKK;AACP,SAAS,2BAA2B;
|
|
4
|
+
"sourcesContent": ["import { getStratoLogger } from '../../../core/sdk/sdk-logger.js';\nimport { routesTo } from '../../validation/message-routing.js';\nimport {\n ValidationError,\n type ValidationErrorSource,\n type ValidationState,\n type ValidationTrigger,\n type ValidityStateKey,\n} from '../../validation/types.js';\nimport { FormValidationError } from '../form-error-classes.js';\nimport type {\n ControlRegistrationHandle,\n FormApi,\n FormSnapshot,\n FormStatus,\n FormValidator,\n RegisteredControl,\n} from '../form.types.js';\n\n/**\n * Mutable config the `<Form>` component feeds into the runtime on every render.\n * @internal\n */\nexport interface FormRuntimeConfig<TValues = Record<string, unknown>> {\n formId?: string;\n validators: FormValidator<TValues>[];\n onSubmit?: (context: {\n snapshot: FormSnapshot<TValues>;\n form: FormApi<TValues>;\n }) => void;\n onInvalid?: (context: {\n snapshot: FormSnapshot<TValues>;\n status: FormStatus;\n form: FormApi<TValues>;\n }) => void;\n onValidityChange?: (state: ValidationState) => void;\n}\n\n/**\n * The full runtime surface: the public {@link FormApi} plus the internal hooks\n * the `<Form>` component and registered controls use.\n * @internal\n */\nexport interface FormRuntime<\n TValues = Record<string, unknown>,\n> extends FormApi<TValues> {\n /** Registers a control and returns its imperative handle. */\n register: (control: RegisteredControl) => ControlRegistrationHandle;\n /** Subscribes to any runtime change (for `useSyncExternalStore`). */\n subscribe: (listener: () => void) => () => void;\n /** The form-wide errors currently rendered by `<FormMessages>`. */\n getFormMessages: () => ValidationError[];\n /** Runtime-owned field errors rendered by `FormFieldMessages`. */\n getFieldMessages: (controlId: string) => ValidationError[];\n /**\n * Replaces the config getter that the runtime calls on each submit/validate.\n * Called by `<Form>` when an external runtime is supplied via the `form` prop.\n * Pass `undefined` to revert to the no-op default (e.g. on unmount).\n * @internal\n */\n _bindConfig?: (fn: (() => FormRuntimeConfig<TValues>) | undefined) => void;\n}\n\ntype RegisteredEntry = {\n control: RegisteredControl;\n token: symbol;\n};\n\n// Ordinal comparator for building canonical, environment-independent dedup and\n// signature keys. `localeCompare` is locale/ICU-dependent, so it could order\n// non-ASCII ids differently across machines \u2014 these keys must be deterministic.\nfunction compareOrdinal(a: string, b: string): number {\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\nfunction errorIdentity(error: ValidationError): string {\n const target = Array.isArray(error.formControlId)\n ? [...error.formControlId].sort(compareOrdinal).join(',')\n : (error.formControlId ?? '');\n const formId = error instanceof FormValidationError ? error.formId : '';\n return `${error.validityStateKey.toString()}|${target}|${formId}`;\n}\n\nfunction errorSignature(error: ValidationError): string {\n return `${errorIdentity(error)}|${error.message}`;\n}\n\nfunction errorSetSignature(errors: ValidationError[]): string {\n return errors.map(errorSignature).sort(compareOrdinal).join('\\u0000');\n}\n\nfunction stateIsPending(state: ValidationState): boolean {\n return state.status === 'pending';\n}\n\nconst SOURCE_PRIORITY: Record<ValidationErrorSource, number> = {\n custom: 0,\n strato: 1,\n native: 2,\n};\n\nconst NO_ERRORS: ValidationError[] = [];\n\nexport function createFormRuntime<TValues = Record<string, unknown>>(\n getConfig?: () => FormRuntimeConfig<TValues>,\n): FormRuntime<TValues> {\n const config: FormRuntimeConfig<TValues> = { validators: [] };\n const controls = new Map<string, RegisteredEntry>();\n const fieldStates = new Map<string, ValidationState>();\n let manualErrors: ValidationError[] = [];\n let formValidatorErrors: ValidationError[] = [];\n let isSubmitted = false;\n let validationRunId = 0;\n // Run ids currently awaiting their controls/validators. A stale run stays\n // in here until it settles, but `isPending` only consults the latest run \u2014 see\n // there for why.\n const unsettledRunIds = new Set<number>();\n\n let readConfig = getConfig ?? (() => config);\n const listeners = new Set<() => void>();\n const warnedDuplicateNames = new Set<string>();\n\n let formMessagesCache: ValidationError[] = [];\n let formMessagesSignature = '';\n const fieldMessagesCache = new Map<\n string,\n { signature: string; messages: ValidationError[] }\n >();\n let lastValiditySignature: string | undefined;\n\n function notify() {\n for (const listener of listeners) {\n listener();\n }\n }\n\n function hasPendingFields(): boolean {\n return [...fieldStates.values()].some(stateIsPending);\n }\n\n function isPending(): boolean {\n // Ignore stale runs still settling in the background \u2014 only the latest\n // run's pending state should hold the form pending.\n return unsettledRunIds.has(validationRunId) || hasPendingFields();\n }\n\n function aggregateErrors(): ValidationError[] {\n const seen = new Set<string>();\n const result: ValidationError[] = [];\n const push = (error: ValidationError) => {\n const signature = errorSignature(error);\n if (!seen.has(signature)) {\n seen.add(signature);\n result.push(error);\n }\n };\n for (const state of fieldStates.values()) {\n state.errors.forEach(push);\n }\n formValidatorErrors.forEach(push);\n manualErrors.forEach(push);\n return result;\n }\n\n function errorsForField(controlId: string): ValidationError[] {\n const matched = aggregateErrors().filter(\n (error) => matchesTarget(error, controlId) && routesTo(error, 'field'),\n );\n // So a consumer that renders only errors[0] gets a deterministic result.\n // Sort is stable, so two errors of the same source keep their relative order.\n return [...matched].sort(\n (a, b) => SOURCE_PRIORITY[a.source] - SOURCE_PRIORITY[b.source],\n );\n }\n\n function buildStatus(): FormStatus {\n const errors = aggregateErrors();\n return {\n isValid: errors.length === 0,\n isPending: isPending(),\n isSubmitted,\n errors,\n };\n }\n\n function buildSnapshot(): FormSnapshot<TValues> {\n const values: Record<string, unknown> = {};\n const fields: FormSnapshot['fields'] = {};\n for (const { control } of controls.values()) {\n const key = control.name ?? control.id;\n if (Object.hasOwn(values, key) && !warnedDuplicateNames.has(key)) {\n warnedDuplicateNames.add(key);\n getStratoLogger('Form').warn(\n `Multiple form controls share the name \"${key}\"; only the last value is kept in the form snapshot.`,\n );\n }\n values[key] = control.getValue();\n const fieldErrors = errorsForField(control.id);\n fields[control.id] = {\n isValid: fieldErrors.length === 0,\n isTouched: fieldStates.has(control.id),\n errors: fieldErrors,\n };\n }\n return {\n values: values as TValues,\n fields,\n };\n }\n\n function emitValidityChange(trigger: ValidationTrigger) {\n const errors = aggregateErrors();\n const signature = `${errors.length === 0 ? 'valid' : 'invalid'}|${\n isPending() ? 'pending' : 'done'\n }|${errorSetSignature(errors)}`;\n // The runtime notifies liberally \u2014 it emits on the way into and out of every\n // validation run and on every mutation. Collapse to a signature so\n // `onValidityChange` fires only on real transitions, not identical recomputations.\n if (signature === lastValiditySignature) {\n return;\n }\n lastValiditySignature = signature;\n readConfig().onValidityChange?.({\n status: isPending() ? 'pending' : 'done',\n trigger,\n errors,\n });\n }\n\n async function runValidation(\n trigger: ValidationTrigger,\n reveal: boolean,\n ): Promise<FormStatus> {\n const runId = ++validationRunId;\n const runControls = [...controls.values()];\n unsettledRunIds.add(runId);\n emitValidityChange(trigger);\n notify();\n\n try {\n const results = await Promise.all(\n runControls.map(async ({ control, token }) => {\n const state = await control.validateField({ reveal, trigger });\n return { id: control.id, token, state };\n }),\n );\n\n if (runId === validationRunId) {\n for (const { id, token, state } of results) {\n if (controls.get(id)?.token === token) {\n fieldStates.set(id, state);\n }\n }\n }\n\n const snapshot = buildSnapshot();\n const validatorResults = await Promise.all(\n readConfig().validators.map((validator) =>\n runFormValidator(validator, snapshot.values, readConfig().formId),\n ),\n );\n\n if (runId === validationRunId) {\n formValidatorErrors = validatorResults\n .flat()\n .map((error) =>\n error.source === 'custom' ? error : cloneWithCustomSource(error),\n );\n }\n } finally {\n unsettledRunIds.delete(runId);\n emitValidityChange(trigger);\n notify();\n }\n\n return buildStatus();\n }\n\n const api: FormRuntime<TValues> = {\n getStatus: buildStatus,\n getSnapshot: buildSnapshot,\n\n validate: () => runValidation('manual', true),\n\n submit: async () => {\n isSubmitted = true;\n // Consumer-set errors (`setError`) persist across submits; only the\n // consumer clears them via `clearError` / `resetValidation`. This keeps a\n // server-side error visible on retry until the consumer removes it.\n const submitRunId = validationRunId + 1;\n const status = await runValidation('submit', true);\n\n if (validationRunId !== submitRunId) {\n return buildStatus();\n }\n\n if (!status.isValid) {\n focusFirstInvalid(controls, status.errors);\n readConfig().onInvalid?.({\n snapshot: buildSnapshot(),\n status,\n form: api,\n });\n } else {\n readConfig().onSubmit?.({ snapshot: buildSnapshot(), form: api });\n }\n notify();\n return buildStatus();\n },\n\n resetValidation: () => {\n validationRunId += 1;\n unsettledRunIds.clear();\n manualErrors = [];\n formValidatorErrors = [];\n isSubmitted = false;\n fieldStates.clear();\n for (const { control } of controls.values()) {\n control.resetValidation?.();\n }\n lastValiditySignature = undefined;\n emitValidityChange('manual');\n notify();\n },\n\n setError: (error) => {\n const identity = errorIdentity(error);\n manualErrors = [\n ...manualErrors.filter(\n (existing) => errorIdentity(existing) !== identity,\n ),\n error,\n ];\n emitValidityChange('manual');\n notify();\n },\n\n clearError: (target, validityStateKey) => {\n manualErrors = manualErrors.filter(\n (error) => !matchesTarget(error, target, validityStateKey),\n );\n emitValidityChange('manual');\n notify();\n },\n\n register: (control) => {\n // Per-registration token. A control id can be re-registered (remount, or a\n // duplicate id). Every handle captures its token and no-ops if the live entry's\n // token differs, so a stale handle's async report/unregister can't clobber the\n // current registration.\n const token = Symbol(control.id);\n controls.set(control.id, { control, token });\n notify();\n return {\n reportValidity: (state) => {\n if (controls.get(control.id)?.token !== token) {\n return;\n }\n fieldStates.set(control.id, state);\n emitValidityChange(state.trigger);\n notify();\n },\n unregister: () => {\n if (controls.get(control.id)?.token !== token) {\n return;\n }\n controls.delete(control.id);\n fieldStates.delete(control.id);\n emitValidityChange('manual');\n notify();\n },\n };\n },\n\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n },\n\n // `FormMessages`/`FormFieldMessages` read these via `useSyncExternalStore`, which\n // compares snapshots by reference. Return the cached array unless the error set's\n // signature actually changed \u2014 a fresh array on every read forces a re-render and\n // can loop.\n getFormMessages: () => {\n if (isPending()) {\n return NO_ERRORS;\n }\n // Form-wide errors: the routing subclass, plus any control's native/Strato\n // error explicitly routed to the form outlet via `_messageTarget`.\n const current = aggregateErrors().filter(\n (error) =>\n error instanceof FormValidationError || routesTo(error, 'form'),\n );\n const signature = errorSetSignature(current);\n if (signature !== formMessagesSignature) {\n formMessagesSignature = signature;\n formMessagesCache = current;\n }\n return formMessagesCache;\n },\n\n getFieldMessages: (controlId) => {\n if (isPending()) {\n return NO_ERRORS;\n }\n const current = errorsForField(controlId);\n const signature = errorSetSignature(current);\n const cached = fieldMessagesCache.get(controlId);\n if (cached?.signature === signature) {\n return cached.messages;\n }\n fieldMessagesCache.set(controlId, { signature, messages: current });\n return current;\n },\n\n _bindConfig: (fn) => {\n readConfig = fn ?? (() => config);\n },\n };\n\n return api;\n}\n\nasync function runFormValidator<TValues>(\n validator: FormValidator<TValues>,\n values: TValues,\n formId: string | undefined,\n): Promise<ValidationError[]> {\n try {\n return await validator({ values });\n } catch (cause) {\n if (formId !== undefined) {\n return [\n new FormValidationError('Validation failed.', {\n formId,\n cause,\n }),\n ];\n }\n return [\n new ValidationError('Validation failed.', { source: 'custom', cause }),\n ];\n }\n}\n\nfunction cloneWithCustomSource(error: ValidationError): ValidationError {\n if (error instanceof FormValidationError) {\n return new FormValidationError(error.message, {\n formId: error.formId,\n validityStateKey: error.validityStateKey,\n formControlId: error.formControlId,\n cause: error.cause,\n });\n }\n return new ValidationError(error.message, {\n source: 'custom',\n validityStateKey: error.validityStateKey,\n formControlId: error.formControlId,\n cause: error.cause,\n });\n}\n\nfunction matchesTarget(\n error: ValidationError,\n target: string,\n validityStateKey?: ValidityStateKey,\n): boolean {\n const routedTo =\n (error instanceof FormValidationError && error.formId === target) ||\n (Array.isArray(error.formControlId)\n ? error.formControlId.includes(target)\n : error.formControlId === target);\n if (!routedTo) {\n return false;\n }\n return (\n validityStateKey === undefined ||\n error.validityStateKey.equals(validityStateKey)\n );\n}\n\nfunction focusFirstInvalid(\n controls: Map<string, RegisteredEntry>,\n errors: ValidationError[],\n) {\n const invalidIds = new Set(\n errors.flatMap((error) =>\n error.formControlId === undefined\n ? []\n : Array.isArray(error.formControlId)\n ? error.formControlId\n : [error.formControlId],\n ),\n );\n if (invalidIds.size === 0) {\n // All errors are form-level only (formId, no formControlId). There is no\n // specific control to target \u2014 the error is shown in FormMessages and no\n // focus is moved.\n return;\n }\n for (const { control } of controls.values()) {\n if (invalidIds.has(control.id)) {\n control.focus();\n return;\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
._1dphm0f0-3-
|
|
1
|
+
._1dphm0f0-3-13-0 {
|
|
2
2
|
appearance: none;
|
|
3
3
|
margin: 0;
|
|
4
4
|
border: none;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
min-width: 0;
|
|
7
7
|
min-height: 0;
|
|
8
8
|
}
|
|
9
|
-
._1dphm0f1-3-
|
|
9
|
+
._1dphm0f1-3-13-0 {
|
|
10
10
|
padding: 0;
|
|
11
11
|
appearance: none;
|
|
12
12
|
margin-bottom: var(--dt-spacings-size-12, 12px);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/forms/forms-core/components/field-set/FieldSet.css.ts"],
|
|
4
|
-
"sourcesContent": ["import './FieldSet.css';\nexport var fieldset = '_1dphm0f0-3-
|
|
4
|
+
"sourcesContent": ["import './FieldSet.css';\nexport var fieldset = '_1dphm0f0-3-13-0';\nexport var legend = '_1dphm0f1-3-13-0';"],
|
|
5
5
|
"mappings": "AAAA,OAAO;AACA,IAAI,WAAW;AACf,IAAI,SAAS;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -18,7 +18,7 @@ const FormField = /* @__PURE__ */ forwardRef((formFieldProps, forwardedRef) => {
|
|
|
18
18
|
disabled,
|
|
19
19
|
required,
|
|
20
20
|
readOnly,
|
|
21
|
-
//
|
|
21
|
+
// oxlint-disable-next-line typescript/no-deprecated
|
|
22
22
|
controlId: _controlId,
|
|
23
23
|
className: consumerClassName,
|
|
24
24
|
style: consumerStyle,
|