@dynatrace/strato-components 3.10.4 → 3.11.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 +181 -0
- package/buttons/button/Button.css +15 -15
- package/buttons/button/Button.sty.js +4 -4
- 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/components/interactions/overlays/CategoricalBarChartInspectOverlay.css +2 -2
- package/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js +2 -2
- 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/annotations/components/tooltip/AnnotationsDefaultTooltipContent.js +0 -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/canvas/utils/canvas-color.js +4 -1
- 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/ChartLayout.js +6 -0
- 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/hooks/useAutomaticRatio.js +8 -3
- package/charts/core/components/chart-layout/types/chart-layout.d.ts +2 -2
- 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/components/Magnifier.css +7 -7
- package/charts/core/components/crosshair/components/Magnifier.sty.js +7 -7
- package/charts/core/components/interactions-overlay/InteractionsOverlay.css +5 -5
- package/charts/core/components/interactions-overlay/InteractionsOverlay.js +6 -2
- package/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js +2 -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 +3 -3
- package/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js +3 -3
- package/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.css +17 -17
- package/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js +6 -6
- 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/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/loader-overlay/LoaderOverlay.css +2 -2
- package/charts/core/components/loader-overlay/LoaderOverlay.sty.js +2 -2
- 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 +6 -6
- package/charts/core/components/overlay-tooltip/components/header/Header.sty.js +6 -6
- package/charts/core/components/overlay-tooltip/components/series/SeriesItemContent.js +1 -3
- 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/tooltip.css +54 -54
- package/charts/core/components/overlay-tooltip/tooltip.sty.js +39 -39
- package/charts/core/components/overlay-tooltip/types.d.ts +0 -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/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/sparkline-display/Sparkline.css +6 -6
- package/charts/core/components/sparkline-display/Sparkline.sty.js +2 -2
- 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/threshold-bar/styles.css +9 -9
- 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 +4 -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 +20 -19
- package/charts/core/components/toolbar/components/Control.css.d.ts +1 -1
- package/charts/core/components/toolbar/components/Control.d.ts +13 -5
- package/charts/core/components/toolbar/components/Control.js +10 -4
- package/charts/core/components/toolbar/components/Control.sty.js +6 -6
- 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 +3 -0
- package/charts/core/components/toolbar/styles.css.d.ts +2 -0
- package/charts/{meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.sty.js → core/components/toolbar/styles.sty.js} +6 -6
- package/charts/core/components/toolbar/types.d.ts +2 -0
- 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/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/context/ChartVariantContext.d.ts +11 -0
- package/charts/core/context/ChartVariantContext.js +24 -0
- package/charts/core/types/chart-data.d.ts +7 -0
- package/charts/core/typographyStyles.css +1 -1
- package/charts/core/typographyStyles.sty.js +1 -1
- package/charts/core/utils/binary-search.d.ts +2 -2
- package/charts/core/utils/find-matching-threshold.js +1 -1
- package/charts/core/utils/get-primary-modifier-key.d.ts +8 -0
- package/charts/core/utils/{get-key-shortcut-by-agent.js → get-primary-modifier-key.js} +6 -14
- package/charts/flame/flame-chart/FlameChart.d.ts +5 -0
- package/charts/flame/flame-chart/FlameChart.js +164 -0
- package/charts/flame/flame-graph/FlameGraph.d.ts +5 -0
- package/charts/flame/flame-graph/FlameGraph.js +165 -0
- package/charts/flame/shared/constants.d.ts +24 -0
- package/charts/flame/shared/constants.js +40 -0
- package/charts/flame/shared/types/flame-chart.d.ts +81 -0
- package/charts/flame/shared/types/flame-chart.js +15 -0
- package/charts/flame/shared/utils/aggregate-spans-to-flame-graph.d.ts +21 -0
- package/charts/flame/shared/utils/aggregate-spans-to-flame-graph.js +114 -0
- package/charts/flame/shared/utils/format-flame-value.d.ts +9 -0
- package/charts/flame/shared/utils/format-flame-value.js +28 -0
- package/charts/flame/shared/utils/order-spans-hierarchically.d.ts +20 -0
- package/charts/flame/shared/utils/order-spans-hierarchically.js +81 -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.sty.js +2 -2
- package/charts/gauge/components/GaugeThresholdIntervalArcs.js +5 -2
- package/charts/gauge/constants.d.ts +2 -0
- package/charts/gauge/constants.js +3 -0
- package/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.d.ts +2 -0
- package/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.js +27 -0
- package/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.d.ts +2 -0
- package/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.js +25 -0
- package/charts/gauge/providers/GaugeChartProviders.js +21 -13
- package/charts/gauge/slots/ThresholdIndicator.d.ts +2 -1
- package/charts/gauge/types/gauge-chart-config-internal.d.ts +1 -0
- package/charts/gauge/types/gauge-chart-config.d.ts +6 -0
- package/charts/gauge/types/gauge-chart.d.ts +6 -0
- package/charts/gauge/utils/build-gauge-chart-config.js +2 -0
- package/charts/gauge/utils/build-threshold-interval-arcs.d.ts +2 -1
- package/charts/gauge/utils/build-threshold-interval-arcs.js +18 -13
- 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/HistogramTooltip.css +1 -1
- 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/components/toolbar/PanButton.js +23 -2
- package/charts/histogram/components/toolbar/ZoomInOutButtons.js +7 -3
- package/charts/histogram/components/toolbar/ZoomModeButton.js +8 -3
- package/charts/honeycomb/HoneycombChart.css +1 -1
- package/charts/honeycomb/HoneycombChart.d.ts +10 -2
- 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/index.d.ts +12 -4
- package/charts/index.js +6 -0
- package/charts/meter-bar/multi-meter-bar/MultiMeterBarChart.js +8 -1
- package/charts/meter-bar/multi-meter-bar/types/multi-meter-bar-chart.d.ts +2 -1
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css +18 -15
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css.d.ts +1 -0
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.d.ts +6 -2
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.js +13 -4
- package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js +12 -10
- 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/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.d.ts +6 -0
- package/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js +28 -0
- 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-layout/utils/extract-slots.d.ts +1 -0
- package/charts/meter-bar/shared/components/meter-bar-layout/utils/extract-slots.js +3 -0
- package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.css +1 -1
- package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js +3 -4
- 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/shared/utils/collapse-threshold-show-indicators.d.ts +17 -0
- package/charts/meter-bar/shared/utils/collapse-threshold-show-indicators.js +38 -0
- package/charts/meter-bar/single-meter-bar/MeterBarChart.js +10 -1
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartOverlay/MeterBarChartOverlayWithTooltip.js +4 -1
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartPlotArea.js +2 -16
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css +6 -0
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css.d.ts +2 -0
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.d.ts +9 -0
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.js +81 -0
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js +24 -0
- package/charts/meter-bar/single-meter-bar/constants.d.ts +15 -1
- package/charts/meter-bar/single-meter-bar/constants.js +18 -2
- package/charts/meter-bar/single-meter-bar/context/MeterBarChartInternalConfigContext.d.ts +1 -0
- package/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.d.ts +2 -2
- package/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.js +2 -4
- package/charts/meter-bar/single-meter-bar/providers/MeterBarChartInternalDataProviders.js +7 -3
- package/charts/meter-bar/single-meter-bar/providers/MeterBarChartProviders.js +2 -1
- package/charts/meter-bar/single-meter-bar/types/default.d.ts +2 -1
- package/charts/meter-bar/single-meter-bar/types/default.js +3 -2
- package/charts/meter-bar/single-meter-bar/types/meter-bar-chart-internal.d.ts +14 -2
- package/charts/meter-bar/single-meter-bar/types/meter-bar-chart.d.ts +14 -3
- package/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js +6 -5
- package/charts/meter-bar/single-meter-bar/utils/build-meter-bar-chart-config.js +3 -0
- package/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.d.ts +12 -0
- package/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.js +47 -0
- package/charts/meter-bar/single-meter-bar/utils/build-thresholds.d.ts +2 -2
- package/charts/meter-bar/single-meter-bar/utils/build-thresholds.js +5 -5
- package/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.d.ts +15 -0
- package/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.js +55 -0
- package/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.d.ts +15 -0
- package/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js +30 -0
- 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.d.ts +2 -2
- package/charts/pie/components/PieChartInternal.js +6 -0
- 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.sty.js +1 -1
- package/charts/sankey-chart/SankeyChart.css +5 -0
- package/charts/sankey-chart/SankeyChart.css.d.ts +2 -0
- package/charts/sankey-chart/SankeyChart.d.ts +10 -0
- package/charts/sankey-chart/SankeyChart.js +51 -0
- package/charts/sankey-chart/SankeyChart.sty.js +24 -0
- package/charts/sankey-chart/SankeyChartRoot.d.ts +18 -0
- package/charts/sankey-chart/SankeyChartRoot.js +86 -0
- package/charts/sankey-chart/components/SankeyCanvas.css +5 -0
- package/charts/sankey-chart/components/SankeyCanvas.css.d.ts +2 -0
- package/charts/sankey-chart/components/SankeyCanvas.d.ts +5 -0
- package/charts/sankey-chart/components/SankeyCanvas.js +46 -0
- package/charts/sankey-chart/components/SankeyCanvas.sty.js +24 -0
- package/charts/sankey-chart/components/SankeyGraphArea.d.ts +5 -0
- package/charts/sankey-chart/components/SankeyGraphArea.js +29 -0
- package/charts/sankey-chart/constants.d.ts +15 -0
- package/charts/sankey-chart/constants.js +36 -0
- package/charts/sankey-chart/context/SankeyData.context.d.ts +3 -0
- package/charts/sankey-chart/context/SankeyData.context.js +28 -0
- package/charts/sankey-chart/context/SankeyNodes.context.d.ts +3 -0
- package/charts/sankey-chart/context/SankeyNodes.context.js +25 -0
- package/charts/sankey-chart/context/SankeyTruncationMode.context.d.ts +3 -0
- package/charts/sankey-chart/context/SankeyTruncationMode.context.js +28 -0
- package/charts/sankey-chart/hooks/use-draw-sankey.d.ts +3 -0
- package/charts/sankey-chart/hooks/use-draw-sankey.js +52 -0
- package/charts/sankey-chart/hooks/use-sankey-layout.d.ts +3 -0
- package/charts/sankey-chart/hooks/use-sankey-layout.js +42 -0
- package/charts/sankey-chart/providers/SankeyConfigProvider.d.ts +13 -0
- package/charts/sankey-chart/providers/SankeyConfigProvider.js +31 -0
- package/charts/sankey-chart/providers/SankeyDataProvider.d.ts +18 -0
- package/charts/sankey-chart/providers/SankeyDataProvider.js +62 -0
- package/charts/sankey-chart/slots/Nodes.d.ts +12 -0
- package/charts/sankey-chart/slots/Nodes.js +24 -0
- package/charts/sankey-chart/types/sankey-internal.d.ts +40 -0
- package/charts/sankey-chart/types/sankey-internal.js +15 -0
- package/charts/sankey-chart/types/sankey-props.d.ts +79 -0
- package/charts/sankey-chart/types/sankey-props.js +15 -0
- package/charts/sankey-chart/types/sankey.d.ts +6 -0
- package/charts/{core/types/aria-label.js → sankey-chart/types/sankey.js} +2 -2
- package/charts/sankey-chart/utils/build-sankey-graph.d.ts +21 -0
- package/charts/sankey-chart/utils/build-sankey-graph.js +70 -0
- package/charts/sankey-chart/utils/generate-sankey-layout.d.ts +4 -0
- package/charts/sankey-chart/utils/generate-sankey-layout.js +42 -0
- package/charts/sankey-chart/utils/get-sankey-is-empty.d.ts +3 -0
- package/charts/sankey-chart/utils/get-sankey-is-empty.js +25 -0
- package/charts/sankey-chart/utils/iterate-slots.d.ts +14 -0
- package/charts/{meter-bar/single-meter-bar/utils/get-threshold-indicators.js → sankey-chart/utils/iterate-slots.js} +15 -13
- package/charts/sankey-chart/vendor/d3-sankey/align.d.ts +11 -0
- package/charts/sankey-chart/vendor/d3-sankey/align.js +33 -0
- package/charts/sankey-chart/vendor/d3-sankey/constant.d.ts +2 -0
- package/charts/sankey-chart/vendor/d3-sankey/constant.js +27 -0
- package/charts/sankey-chart/vendor/d3-sankey/index.d.ts +5 -0
- package/charts/{meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.js → sankey-chart/vendor/d3-sankey/index.js} +11 -22
- package/charts/sankey-chart/vendor/d3-sankey/link-horizontal.d.ts +3 -0
- package/charts/sankey-chart/vendor/d3-sankey/link-horizontal.js +33 -0
- package/charts/sankey-chart/vendor/d3-sankey/sankey.d.ts +3 -0
- package/charts/sankey-chart/vendor/d3-sankey/sankey.js +460 -0
- package/charts/sankey-chart/vendor/d3-sankey/types.d.ts +60 -0
- package/charts/sankey-chart/vendor/d3-sankey/types.js +15 -0
- 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/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.css +2 -2
- package/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js +1 -1
- package/charts/timeseries/components/overlays/TimeseriesChartOverlays.js +0 -1
- package/charts/timeseries/components/overlays/TimeseriesOverlays.css +4 -4
- package/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js +4 -4
- package/charts/timeseries/components/thresholds/ThresholdIndicators.css +2 -2
- package/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js +2 -2
- package/charts/timeseries/components/toolbar/PanButton.js +22 -1
- package/charts/timeseries/components/toolbar/ZoomInOutButtons.js +7 -3
- package/charts/timeseries/components/toolbar/ZoomModeButton.js +8 -3
- package/charts/timeseries/constants.d.ts +0 -1
- package/charts/timeseries/constants.js +0 -2
- package/charts/top-list/TopList.css +1 -1
- package/charts/top-list/TopList.d.ts +5 -3
- package/charts/top-list/TopList.js +78 -20
- package/charts/top-list/TopList.sty.js +1 -1
- package/charts/top-list/types/top-list.d.ts +60 -4
- 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/utils/to-hierarchical-props.js +2 -1
- package/charts/xy-chart/XYChart.js +2 -0
- 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 +3 -3
- package/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js +3 -3
- package/charts/xy-chart/components/displays/RectLabelLayout.d.ts +11 -0
- package/charts/xy-chart/components/displays/RectLabelLayout.js +66 -0
- package/charts/xy-chart/components/displays/RectLabelOverlay.css +19 -0
- package/charts/xy-chart/components/displays/RectLabelOverlay.css.d.ts +4 -0
- package/charts/xy-chart/components/displays/RectLabelOverlay.d.ts +32 -0
- package/charts/xy-chart/components/displays/RectLabelOverlay.js +121 -0
- package/charts/xy-chart/components/displays/RectLabelOverlay.sty.js +28 -0
- package/charts/xy-chart/components/displays/rect-label-utils.d.ts +27 -0
- package/charts/xy-chart/components/displays/rect-label-utils.js +57 -0
- 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/explore/HighlightedRectangleCanvas.js +31 -8
- package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.css +1 -1
- package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js +4 -2
- 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/toolbar/DownloadDataButton.d.ts +3 -1
- package/charts/xy-chart/components/toolbar/DownloadDataButton.js +2 -2
- package/charts/xy-chart/components/toolbar/PanButton.js +21 -5
- package/charts/xy-chart/components/toolbar/XYChartToolbar.js +11 -3
- package/charts/xy-chart/components/toolbar/ZoomInOutButtons.js +7 -3
- package/charts/xy-chart/components/toolbar/ZoomModeButton.js +14 -5
- 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/constants/defaults.d.ts +2 -0
- package/charts/xy-chart/constants/defaults.js +4 -0
- package/charts/xy-chart/hooks/useColorRule.js +2 -1
- 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/rect-series.d.ts +1 -0
- package/charts/xy-chart/processing-strategies/strategies/rect-series.js +5 -1
- package/charts/xy-chart/processing-strategies/utils/access-datapoint/get-datapoints.js +11 -1
- package/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js +7 -2
- package/charts/xy-chart/types/xy-chart-internals.d.ts +3 -0
- package/charts/xy-chart/types/xy-chart-props.d.ts +11 -0
- package/charts/xy-chart/utils/build-sorted-entries.d.ts +20 -14
- package/charts/xy-chart/utils/build-sorted-entries.js +43 -21
- package/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.d.ts +1 -1
- package/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.js +6 -2
- package/charts/xy-chart/utils/coloring/get-color-from-rule.d.ts +1 -1
- package/charts/xy-chart/utils/coloring/get-color-from-rule.js +2 -2
- package/charts/xy-chart/utils/get-bar-hit-box.d.ts +20 -0
- package/charts/xy-chart/utils/get-bar-hit-box.js +94 -0
- package/charts/xy-chart/utils/is-in-pixel-range.d.ts +5 -0
- package/charts/xy-chart/utils/is-in-pixel-range.js +25 -0
- package/charts/xy-chart/utils/query-hovered-grid.js +24 -18
- package/charts/xy-chart/utils/query-hovered.d.ts +13 -7
- package/charts/xy-chart/utils/query-hovered.js +35 -7
- package/charts/xy-chart/utils/query-shared.d.ts +1 -1
- package/charts/xy-chart/utils/query-shared.js +63 -39
- package/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js +122 -28
- package/charts/xy-chart-adoption/categorical-bar/iterate-slots.d.ts +11 -0
- package/charts/xy-chart-adoption/categorical-bar/iterate-slots.js +49 -1
- package/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.d.ts +6 -5
- package/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.js +3 -2
- package/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.d.ts +8 -1
- package/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.js +26 -6
- package/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.d.ts +5 -0
- package/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.js +44 -0
- package/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.d.ts +17 -0
- package/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.js +41 -0
- package/charts/xy-chart-adoption/timeseries/TimeseriesToXY.d.ts +1 -0
- package/charts/xy-chart-adoption/timeseries/TimeseriesToXY.js +16 -5
- package/charts/xy-chart-adoption/timeseries/types/timeseries.d.ts +3 -1
- package/charts/xy-chart-adoption/timeseries/utils/render-series.d.ts +4 -0
- package/charts/xy-chart-adoption/timeseries/utils/render-series.js +3 -0
- package/codeshift.config.js +1 -0
- package/content/accordion/Accordion.css +14 -14
- package/content/accordion/Accordion.sty.js +8 -8
- package/content/accordion/AccordionSectionContent.js +1 -0
- 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 +40 -40
- package/content/chip/BaseChip.sty.js +5 -5
- package/content/chip/ChipContent.css +11 -11
- package/content/chip/ChipContent.sty.js +2 -2
- package/content/chip/ChipDeleteButton.css +19 -19
- package/content/chip/ChipDeleteButton.sty.js +4 -4
- package/content/chip/ChipKey.css +6 -6
- package/content/chip/ChipKey.sty.js +1 -1
- package/content/chip/GroupedChip.css +3 -3
- package/content/chip/GroupedChip.sty.js +3 -3
- package/content/chip-group/ChipGroup.css +4 -4
- package/content/chip-group/ChipGroup.sty.js +1 -1
- package/content/chip-group/Control.css +4 -4
- package/content/chip-group/Control.sty.js +1 -1
- 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.sty.js +4 -4
- 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.js +4 -2
- package/content/keyboard-shortcut/KeyboardShortcut.sty.js +2 -2
- package/content/markdown/Markdown.css +3 -3
- package/content/markdown/Markdown.sty.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 +40 -40
- package/content/progress/ProgressCircle.sty.js +5 -5
- 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 +73 -76
- package/core/components/app-root/AppRoot.sty.js +1 -1
- package/core/components/app-root/visual-refresh-overrides.d.ts +41 -11
- package/core/components/app-root/visual-refresh-overrides.js +76 -67
- package/core/components/visually-hidden/VisuallyHidden.css +1 -1
- package/core/components/visually-hidden/VisuallyHidden.sty.js +1 -1
- 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/diagnostic-tooltip.css +27 -0
- package/core/styles/diagnostic-tooltip.css.d.ts +18 -0
- package/core/styles/diagnostic-tooltip.sty.js +28 -0
- 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.sty.js +1 -1
- package/core/styles/virtualFocus.css +2 -2
- package/core/styles/virtualFocus.sty.js +1 -1
- package/core/time/helpers.d.ts +1 -1
- package/core/time/helpers.js +17 -9
- package/core/time/shared.types.d.ts +1 -1
- package/core/time/timeErrorMessages.d.ts +10 -0
- package/core/time/timeErrorMessages.js +100 -0
- package/core/time/validation.d.ts +1 -1
- package/core/time/validation.js +37 -78
- package/core/utils/colorUtils.css +60 -60
- package/core/utils/colorUtils.sty.js +2 -2
- package/core/utils/diagnostic-tooltip/render-diagnostic-message.d.ts +21 -0
- package/core/utils/diagnostic-tooltip/render-diagnostic-message.js +45 -0
- package/editors/base-code-editor/BaseCodeEditor.css +222 -210
- package/editors/base-code-editor/BaseCodeEditor.css.d.ts +5 -3
- package/editors/base-code-editor/BaseCodeEditor.d.ts +8 -0
- package/editors/base-code-editor/BaseCodeEditor.js +21 -4
- package/editors/base-code-editor/BaseCodeEditor.sty.js +3 -2
- package/editors/base-code-editor/configuration/configure-diagnostics.js +9 -1
- package/editors/base-code-editor/configuration/configure-lint-gutter.d.ts +41 -0
- package/editors/base-code-editor/configuration/configure-lint-gutter.js +110 -0
- package/editors/base-code-editor/configuration/getDefaultConfigurations.js +16 -9
- package/editors/base-code-editor/utils/string-utils.d.ts +6 -0
- package/editors/base-code-editor/utils/string-utils.js +27 -0
- package/editors/code-editor/CodeEditor.d.ts +10 -1
- package/editors/code-editor/CodeEditor.js +4 -0
- package/editors/code-editor/languages/languages.js +12 -1
- package/editors/dql-editor/DQLEditor.d.ts +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/dql/SuggestionPart.css +1 -1
- package/editors/dql-editor/dql/SuggestionPart.sty.js +1 -1
- package/editors/dql-editor/dql/SuggestionsInfoSection.css +7 -7
- package/editors/dql-editor/dql/SuggestionsInfoSection.sty.js +3 -3
- package/editors/dql-editor/dql/dql-language.js +1 -1
- package/editors/dql-editor/dql/dql-linter.d.ts +10 -0
- package/editors/dql-editor/dql/dql-linter.js +16 -0
- package/editors/dql-editor/dql/fuzzy-match.d.ts +36 -3
- package/editors/dql-editor/dql/fuzzy-match.js +26 -17
- package/editors/dql-editor/dql/suggestion-autocompletions.js +44 -10
- package/editors/dql-editor/dql/token-type-label.d.ts +15 -0
- package/editors/dql-editor/dql/token-type-label.js +131 -0
- 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/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/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/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/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/AnnotationsDefaultTooltipContent.js +0 -1
- package/esm/charts/core/components/annotations/components/tooltip/AnnotationsDefaultTooltipContent.js.map +2 -2
- package/esm/charts/core/components/axes/Axis.css +1 -1
- 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/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/canvas/utils/canvas-color.js +4 -1
- package/esm/charts/core/components/canvas/utils/canvas-color.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/ChartLayout.js +6 -0
- package/esm/charts/core/components/chart-layout/ChartLayout.js.map +2 -2
- 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/hooks/useAutomaticRatio.js +8 -3
- package/esm/charts/core/components/chart-layout/hooks/useAutomaticRatio.js.map +2 -2
- 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/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/interactions-overlay/InteractionsOverlay.css +5 -5
- package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.js +7 -2
- 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/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 +3 -3
- 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 +17 -17
- 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/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/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/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/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 +6 -6
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.sty.js +6 -6
- package/esm/charts/core/components/overlay-tooltip/components/header/Header.sty.js.map +1 -1
- package/esm/charts/core/components/overlay-tooltip/components/series/SeriesItemContent.js +1 -3
- package/esm/charts/core/components/overlay-tooltip/components/series/SeriesItemContent.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/tooltip.css +54 -54
- 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/types.js.map +1 -1
- 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/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/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/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/threshold-bar/styles.css +9 -9
- 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 +4 -2
- package/esm/charts/core/components/toolbar/ChartToolbarRenderer.js.map +2 -2
- 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/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 +20 -19
- package/esm/charts/core/components/toolbar/components/Control.js +11 -5
- package/esm/charts/core/components/toolbar/components/Control.js.map +2 -2
- package/esm/charts/core/components/toolbar/components/Control.sty.js +6 -6
- package/esm/charts/core/components/toolbar/components/Control.sty.js.map +2 -2
- 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 +3 -0
- package/esm/charts/core/components/toolbar/styles.sty.js +6 -0
- package/esm/charts/core/components/toolbar/styles.sty.js.map +7 -0
- 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.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.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/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/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/context/ChartVariantContext.js +6 -0
- package/esm/charts/core/context/ChartVariantContext.js.map +7 -0
- 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/binary-search.js.map +1 -1
- package/esm/charts/core/utils/find-matching-threshold.js +1 -1
- package/esm/charts/core/utils/find-matching-threshold.js.map +2 -2
- package/esm/charts/core/utils/get-primary-modifier-key.js +8 -0
- package/esm/charts/core/utils/get-primary-modifier-key.js.map +7 -0
- package/esm/charts/flame/flame-chart/FlameChart.js +153 -0
- package/esm/charts/flame/flame-chart/FlameChart.js.map +7 -0
- package/esm/charts/flame/flame-graph/FlameGraph.js +152 -0
- package/esm/charts/flame/flame-graph/FlameGraph.js.map +7 -0
- package/esm/charts/flame/shared/constants.js +22 -0
- package/esm/charts/flame/shared/constants.js.map +7 -0
- package/esm/charts/flame/shared/types/flame-chart.js +1 -0
- package/esm/charts/flame/shared/utils/aggregate-spans-to-flame-graph.js +100 -0
- package/esm/charts/flame/shared/utils/aggregate-spans-to-flame-graph.js.map +7 -0
- package/esm/charts/flame/shared/utils/format-flame-value.js +10 -0
- package/esm/charts/flame/shared/utils/format-flame-value.js.map +7 -0
- package/esm/charts/flame/shared/utils/order-spans-hierarchically.js +63 -0
- package/esm/charts/flame/shared/utils/order-spans-hierarchically.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.sty.js +1 -1
- package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.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.sty.js +2 -2
- package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js.map +1 -1
- package/esm/charts/gauge/components/GaugeThresholdIntervalArcs.js +5 -2
- package/esm/charts/gauge/components/GaugeThresholdIntervalArcs.js.map +2 -2
- package/esm/charts/gauge/constants.js +3 -0
- package/esm/charts/gauge/constants.js.map +2 -2
- package/esm/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.js +9 -0
- package/esm/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.js.map +7 -0
- package/esm/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.js +7 -0
- package/esm/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.js.map +7 -0
- package/esm/charts/gauge/providers/GaugeChartProviders.js +21 -13
- package/esm/charts/gauge/providers/GaugeChartProviders.js.map +2 -2
- package/esm/charts/gauge/slots/ThresholdIndicator.js.map +2 -2
- package/esm/charts/gauge/utils/build-gauge-chart-config.js +2 -0
- package/esm/charts/gauge/utils/build-gauge-chart-config.js.map +2 -2
- package/esm/charts/gauge/utils/build-threshold-interval-arcs.js +18 -13
- package/esm/charts/gauge/utils/build-threshold-interval-arcs.js.map +2 -2
- 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/HistogramTooltip.css +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/HistogramOverlays.css +2 -2
- 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/toolbar/PanButton.js +24 -3
- package/esm/charts/histogram/components/toolbar/PanButton.js.map +2 -2
- package/esm/charts/histogram/components/toolbar/ZoomInOutButtons.js +7 -3
- package/esm/charts/histogram/components/toolbar/ZoomInOutButtons.js.map +2 -2
- package/esm/charts/histogram/components/toolbar/ZoomModeButton.js +9 -4
- package/esm/charts/histogram/components/toolbar/ZoomModeButton.js.map +2 -2
- package/esm/charts/honeycomb/HoneycombChart.css +1 -1
- package/esm/charts/honeycomb/HoneycombChart.js.map +2 -2
- 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/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/index.js +6 -0
- package/esm/charts/index.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/MultiMeterBarChart.js +8 -1
- package/esm/charts/meter-bar/multi-meter-bar/MultiMeterBarChart.js.map +2 -2
- package/esm/charts/meter-bar/multi-meter-bar/types/multi-meter-bar-chart.js.map +2 -2
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css +18 -15
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.js +15 -5
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.js.map +2 -2
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js +12 -10
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.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/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 +10 -0
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js.map +7 -0
- 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-layout/utils/extract-slots.js +3 -0
- package/esm/charts/meter-bar/shared/components/meter-bar-layout/utils/extract-slots.js.map +2 -2
- 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 -2
- 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/shared/utils/collapse-threshold-show-indicators.js +20 -0
- package/esm/charts/meter-bar/shared/utils/collapse-threshold-show-indicators.js.map +7 -0
- package/esm/charts/meter-bar/single-meter-bar/MeterBarChart.js +10 -1
- package/esm/charts/meter-bar/single-meter-bar/MeterBarChart.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartOverlay/MeterBarChartOverlayWithTooltip.js +4 -1
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartOverlay/MeterBarChartOverlayWithTooltip.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartPlotArea.js +3 -17
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartPlotArea.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css +6 -0
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.js +71 -0
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.js.map +7 -0
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js +6 -0
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js.map +7 -0
- package/esm/charts/meter-bar/single-meter-bar/constants.js +18 -2
- package/esm/charts/meter-bar/single-meter-bar/constants.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/context/MeterBarChartInternalConfigContext.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.js +2 -4
- package/esm/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartInternalDataProviders.js +7 -3
- package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartInternalDataProviders.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartProviders.js +2 -1
- package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartProviders.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/types/default.js +3 -2
- package/esm/charts/meter-bar/single-meter-bar/types/default.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js +6 -5
- package/esm/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/utils/build-meter-bar-chart-config.js +3 -0
- package/esm/charts/meter-bar/single-meter-bar/utils/build-meter-bar-chart-config.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.js +29 -0
- package/esm/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.js.map +7 -0
- package/esm/charts/meter-bar/single-meter-bar/utils/build-thresholds.js +5 -5
- package/esm/charts/meter-bar/single-meter-bar/utils/build-thresholds.js.map +2 -2
- package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.js +49 -0
- package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.js.map +7 -0
- package/esm/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js +12 -0
- package/esm/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js.map +7 -0
- 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 +6 -0
- 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.sty.js +1 -1
- package/esm/charts/pie/components/PieChartPlot/PieChartPlot.sty.js.map +1 -1
- package/esm/charts/sankey-chart/SankeyChart.css +5 -0
- package/esm/charts/sankey-chart/SankeyChart.js +33 -0
- package/esm/charts/sankey-chart/SankeyChart.js.map +7 -0
- package/esm/charts/sankey-chart/SankeyChart.sty.js +6 -0
- package/esm/charts/sankey-chart/SankeyChart.sty.js.map +7 -0
- package/esm/charts/sankey-chart/SankeyChartRoot.js +68 -0
- package/esm/charts/sankey-chart/SankeyChartRoot.js.map +7 -0
- package/esm/charts/sankey-chart/components/SankeyCanvas.css +5 -0
- package/esm/charts/sankey-chart/components/SankeyCanvas.js +28 -0
- package/esm/charts/sankey-chart/components/SankeyCanvas.js.map +7 -0
- package/esm/charts/sankey-chart/components/SankeyCanvas.sty.js +6 -0
- package/esm/charts/sankey-chart/components/SankeyCanvas.sty.js.map +7 -0
- package/esm/charts/sankey-chart/components/SankeyGraphArea.js +11 -0
- package/esm/charts/sankey-chart/components/SankeyGraphArea.js.map +7 -0
- package/esm/charts/sankey-chart/constants.js +18 -0
- package/esm/charts/sankey-chart/constants.js.map +7 -0
- package/esm/charts/sankey-chart/context/SankeyData.context.js +10 -0
- package/esm/charts/sankey-chart/context/SankeyData.context.js.map +7 -0
- package/esm/charts/sankey-chart/context/SankeyNodes.context.js +7 -0
- package/esm/charts/sankey-chart/context/SankeyNodes.context.js.map +7 -0
- package/esm/charts/sankey-chart/context/SankeyTruncationMode.context.js +10 -0
- package/esm/charts/sankey-chart/context/SankeyTruncationMode.context.js.map +7 -0
- package/esm/charts/sankey-chart/hooks/use-draw-sankey.js +34 -0
- package/esm/charts/sankey-chart/hooks/use-draw-sankey.js.map +7 -0
- package/esm/charts/sankey-chart/hooks/use-sankey-layout.js +24 -0
- package/esm/charts/sankey-chart/hooks/use-sankey-layout.js.map +7 -0
- package/esm/charts/sankey-chart/providers/SankeyConfigProvider.js +13 -0
- package/esm/charts/sankey-chart/providers/SankeyConfigProvider.js.map +7 -0
- package/esm/charts/sankey-chart/providers/SankeyDataProvider.js +44 -0
- package/esm/charts/sankey-chart/providers/SankeyDataProvider.js.map +7 -0
- package/esm/charts/sankey-chart/slots/Nodes.js +6 -0
- package/esm/charts/sankey-chart/slots/Nodes.js.map +7 -0
- package/esm/charts/sankey-chart/types/sankey-internal.js +1 -0
- package/esm/charts/sankey-chart/types/sankey-internal.js.map +7 -0
- package/esm/charts/sankey-chart/types/sankey-props.js +1 -0
- package/esm/charts/sankey-chart/types/sankey-props.js.map +7 -0
- package/esm/charts/sankey-chart/types/sankey.js +1 -0
- package/esm/charts/sankey-chart/types/sankey.js.map +7 -0
- package/esm/charts/sankey-chart/utils/build-sankey-graph.js +52 -0
- package/esm/charts/sankey-chart/utils/build-sankey-graph.js.map +7 -0
- package/esm/charts/sankey-chart/utils/generate-sankey-layout.js +33 -0
- package/esm/charts/sankey-chart/utils/generate-sankey-layout.js.map +7 -0
- package/esm/charts/sankey-chart/utils/get-sankey-is-empty.js +7 -0
- package/esm/charts/sankey-chart/utils/get-sankey-is-empty.js.map +7 -0
- package/esm/charts/sankey-chart/utils/iterate-slots.js +16 -0
- package/esm/charts/sankey-chart/utils/iterate-slots.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/align.js +15 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/align.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/constant.js +9 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/constant.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/index.js +15 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/index.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/link-horizontal.js +15 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/link-horizontal.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/sankey.js +432 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/sankey.js.map +7 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/types.js +1 -0
- package/esm/charts/sankey-chart/vendor/d3-sankey/types.js.map +7 -0
- 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/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 +1 -5
- package/esm/charts/timeseries/components/overlays/TimeseriesChartOverlays.js.map +2 -2
- 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/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/PanButton.js +23 -2
- package/esm/charts/timeseries/components/toolbar/PanButton.js.map +2 -2
- package/esm/charts/timeseries/components/toolbar/ZoomInOutButtons.js +7 -3
- package/esm/charts/timeseries/components/toolbar/ZoomInOutButtons.js.map +2 -2
- package/esm/charts/timeseries/components/toolbar/ZoomModeButton.js +9 -4
- package/esm/charts/timeseries/components/toolbar/ZoomModeButton.js.map +2 -2
- package/esm/charts/timeseries/constants.js +0 -2
- package/esm/charts/timeseries/constants.js.map +2 -2
- package/esm/charts/top-list/TopList.css +1 -1
- package/esm/charts/top-list/TopList.js +72 -21
- package/esm/charts/top-list/TopList.js.map +3 -3
- 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/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/utils/to-hierarchical-props.js +2 -1
- package/esm/charts/tree-map/utils/to-hierarchical-props.js.map +2 -2
- package/esm/charts/xy-chart/XYChart.js +2 -0
- package/esm/charts/xy-chart/XYChart.js.map +2 -2
- 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 +3 -3
- package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js +3 -3
- package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js.map +1 -1
- package/esm/charts/xy-chart/components/displays/RectLabelLayout.js +48 -0
- package/esm/charts/xy-chart/components/displays/RectLabelLayout.js.map +7 -0
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.css +19 -0
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.js +116 -0
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.js.map +7 -0
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.sty.js +10 -0
- package/esm/charts/xy-chart/components/displays/RectLabelOverlay.sty.js.map +7 -0
- package/esm/charts/xy-chart/components/displays/rect-label-utils.js +39 -0
- package/esm/charts/xy-chart/components/displays/rect-label-utils.js.map +7 -0
- 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/explore/HighlightedRectangleCanvas.js +31 -8
- package/esm/charts/xy-chart/components/overlay/explore/HighlightedRectangleCanvas.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 +5 -3
- 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/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/toolbar/DownloadDataButton.js +2 -2
- package/esm/charts/xy-chart/components/toolbar/DownloadDataButton.js.map +2 -2
- package/esm/charts/xy-chart/components/toolbar/PanButton.js +22 -6
- package/esm/charts/xy-chart/components/toolbar/PanButton.js.map +2 -2
- package/esm/charts/xy-chart/components/toolbar/XYChartToolbar.js +11 -3
- package/esm/charts/xy-chart/components/toolbar/XYChartToolbar.js.map +2 -2
- package/esm/charts/xy-chart/components/toolbar/ZoomInOutButtons.js +7 -3
- package/esm/charts/xy-chart/components/toolbar/ZoomInOutButtons.js.map +2 -2
- package/esm/charts/xy-chart/components/toolbar/ZoomModeButton.js +15 -6
- package/esm/charts/xy-chart/components/toolbar/ZoomModeButton.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/constants/defaults.js +4 -0
- package/esm/charts/xy-chart/constants/defaults.js.map +2 -2
- package/esm/charts/xy-chart/hooks/useColorRule.js +2 -1
- package/esm/charts/xy-chart/hooks/useColorRule.js.map +2 -2
- 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/rect-series.js +5 -1
- package/esm/charts/xy-chart/processing-strategies/strategies/rect-series.js.map +2 -2
- package/esm/charts/xy-chart/processing-strategies/utils/access-datapoint/get-datapoints.js +11 -1
- package/esm/charts/xy-chart/processing-strategies/utils/access-datapoint/get-datapoints.js.map +2 -2
- package/esm/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js +7 -2
- package/esm/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js.map +2 -2
- package/esm/charts/xy-chart/types/xy-chart-internals.js.map +2 -2
- package/esm/charts/xy-chart/utils/build-sorted-entries.js +43 -21
- package/esm/charts/xy-chart/utils/build-sorted-entries.js.map +2 -2
- package/esm/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.js +6 -2
- package/esm/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.js.map +2 -2
- package/esm/charts/xy-chart/utils/coloring/get-color-from-rule.js +2 -2
- package/esm/charts/xy-chart/utils/coloring/get-color-from-rule.js.map +2 -2
- package/esm/charts/xy-chart/utils/get-bar-hit-box.js +76 -0
- package/esm/charts/xy-chart/utils/get-bar-hit-box.js.map +7 -0
- package/esm/charts/xy-chart/utils/is-in-pixel-range.js +7 -0
- package/esm/charts/xy-chart/utils/is-in-pixel-range.js.map +7 -0
- package/esm/charts/xy-chart/utils/query-hovered-grid.js +25 -22
- package/esm/charts/xy-chart/utils/query-hovered-grid.js.map +2 -2
- package/esm/charts/xy-chart/utils/query-hovered.js +36 -8
- package/esm/charts/xy-chart/utils/query-hovered.js.map +2 -2
- package/esm/charts/xy-chart/utils/query-shared.js +63 -39
- package/esm/charts/xy-chart/utils/query-shared.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js +126 -28
- package/esm/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/iterate-slots.js +49 -1
- package/esm/charts/xy-chart-adoption/categorical-bar/iterate-slots.js.map +3 -3
- package/esm/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.js +3 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.js +26 -6
- package/esm/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.js.map +2 -2
- package/esm/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.js +26 -0
- package/esm/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.js.map +7 -0
- package/esm/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.js +23 -0
- package/esm/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.js.map +7 -0
- package/esm/charts/xy-chart-adoption/timeseries/TimeseriesToXY.js +16 -5
- package/esm/charts/xy-chart-adoption/timeseries/TimeseriesToXY.js.map +2 -2
- package/esm/charts/xy-chart-adoption/timeseries/types/timeseries.js.map +2 -2
- package/esm/charts/xy-chart-adoption/timeseries/utils/render-series.js +3 -0
- package/esm/charts/xy-chart-adoption/timeseries/utils/render-series.js.map +2 -2
- 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/accordion/AccordionSectionContent.js +1 -0
- package/esm/content/accordion/AccordionSectionContent.js.map +2 -2
- 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 +40 -40
- package/esm/content/chip/BaseChip.sty.js +5 -5
- package/esm/content/chip/BaseChip.sty.js.map +1 -1
- 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 +19 -19
- package/esm/content/chip/ChipDeleteButton.sty.js +4 -4
- package/esm/content/chip/ChipDeleteButton.sty.js.map +1 -1
- 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 +3 -3
- package/esm/content/chip/GroupedChip.sty.js +3 -3
- package/esm/content/chip/GroupedChip.sty.js.map +1 -1
- package/esm/content/chip-group/ChipGroup.css +4 -4
- 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.sty.js +1 -1
- package/esm/content/chip-group/Control.sty.js.map +1 -1
- 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.sty.js +4 -4
- package/esm/content/code-snippet/CodeSnippet.sty.js.map +1 -1
- 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.js +4 -2
- package/esm/content/keyboard-shortcut/KeyboardShortcut.js.map +2 -2
- 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 +3 -3
- package/esm/content/markdown/Markdown.sty.js +1 -1
- package/esm/content/markdown/Markdown.sty.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 +40 -40
- package/esm/content/progress/ProgressCircle.sty.js +5 -5
- package/esm/content/progress/ProgressCircle.sty.js.map +1 -1
- 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 +73 -76
- 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 +76 -67
- package/esm/core/components/app-root/visual-refresh-overrides.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/sdk/sdk-logger.js +2 -2
- 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/diagnostic-tooltip.css +27 -0
- package/esm/core/styles/diagnostic-tooltip.sty.js +10 -0
- package/esm/core/styles/diagnostic-tooltip.sty.js.map +7 -0
- 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 +1 -1
- package/esm/core/styles/focusRingStatic.sty.js.map +1 -1
- 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/helpers.js +17 -9
- package/esm/core/time/helpers.js.map +2 -2
- package/esm/core/time/timeErrorMessages.js +82 -0
- package/esm/core/time/timeErrorMessages.js.map +7 -0
- package/esm/core/time/validation.js +39 -79
- package/esm/core/time/validation.js.map +2 -2
- 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/diagnostic-tooltip/render-diagnostic-message.js +27 -0
- package/esm/core/utils/diagnostic-tooltip/render-diagnostic-message.js.map +7 -0
- package/esm/editors/base-code-editor/BaseCodeEditor.css +222 -210
- package/esm/editors/base-code-editor/BaseCodeEditor.js +24 -4
- package/esm/editors/base-code-editor/BaseCodeEditor.js.map +2 -2
- package/esm/editors/base-code-editor/BaseCodeEditor.sty.js +3 -2
- package/esm/editors/base-code-editor/BaseCodeEditor.sty.js.map +2 -2
- package/esm/editors/base-code-editor/configuration/configure-diagnostics.js +9 -1
- package/esm/editors/base-code-editor/configuration/configure-diagnostics.js.map +2 -2
- package/esm/editors/base-code-editor/configuration/configure-lint-gutter.js +92 -0
- package/esm/editors/base-code-editor/configuration/configure-lint-gutter.js.map +7 -0
- package/esm/editors/base-code-editor/configuration/getDefaultConfigurations.js +16 -9
- package/esm/editors/base-code-editor/configuration/getDefaultConfigurations.js.map +2 -2
- package/esm/editors/base-code-editor/utils/string-utils.js +9 -0
- package/esm/editors/base-code-editor/utils/string-utils.js.map +7 -0
- package/esm/editors/code-editor/CodeEditor.js +4 -0
- package/esm/editors/code-editor/CodeEditor.js.map +2 -2
- package/esm/editors/code-editor/languages/languages.js +12 -1
- package/esm/editors/code-editor/languages/languages.js.map +2 -2
- package/esm/editors/dql-editor/DQLEditor.js.map +1 -1
- 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/dql/SuggestionPart.css +1 -1
- package/esm/editors/dql-editor/dql/SuggestionPart.sty.js +1 -1
- package/esm/editors/dql-editor/dql/SuggestionPart.sty.js.map +1 -1
- package/esm/editors/dql-editor/dql/SuggestionsInfoSection.css +7 -7
- package/esm/editors/dql-editor/dql/SuggestionsInfoSection.sty.js +3 -3
- package/esm/editors/dql-editor/dql/SuggestionsInfoSection.sty.js.map +1 -1
- package/esm/editors/dql-editor/dql/dql-language.js +2 -2
- package/esm/editors/dql-editor/dql/dql-language.js.map +2 -2
- package/esm/editors/dql-editor/dql/dql-linter.js +16 -0
- package/esm/editors/dql-editor/dql/dql-linter.js.map +2 -2
- package/esm/editors/dql-editor/dql/fuzzy-match.js +26 -17
- package/esm/editors/dql-editor/dql/fuzzy-match.js.map +2 -2
- package/esm/editors/dql-editor/dql/suggestion-autocompletions.js +44 -10
- package/esm/editors/dql-editor/dql/suggestion-autocompletions.js.map +2 -2
- package/esm/editors/dql-editor/dql/token-type-label.js +113 -0
- package/esm/editors/dql-editor/dql/token-type-label.js.map +7 -0
- package/esm/filters/filter/ResetButton.js +10 -6
- package/esm/filters/filter/ResetButton.js.map +2 -2
- package/esm/filters/filter-field/FilterField.css +130 -147
- package/esm/filters/filter-field/FilterField.js +121 -27
- package/esm/filters/filter-field/FilterField.js.map +2 -2
- package/esm/filters/filter-field/FilterField.sty.js +29 -28
- 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 +14 -14
- package/esm/filters/filter-field/components/FilterStatement.js +6 -8
- package/esm/filters/filter-field/components/FilterStatement.js.map +2 -2
- package/esm/filters/filter-field/components/FilterStatement.sty.js +8 -7
- package/esm/filters/filter-field/components/FilterStatement.sty.js.map +2 -2
- package/esm/filters/filter-field/error-fallback/filter-value-obfuscation-util.js +2 -2
- package/esm/filters/filter-field/error-fallback/filter-value-obfuscation-util.js.map +2 -2
- package/esm/filters/filter-field/hooks/useFilterFieldLinting.js +3 -0
- package/esm/filters/filter-field/hooks/useFilterFieldLinting.js.map +2 -2
- package/esm/filters/filter-field/messages.js +5 -0
- package/esm/filters/filter-field/messages.js.map +2 -2
- package/esm/filters/filter-field/parser/character-codes.js +3 -0
- package/esm/filters/filter-field/parser/character-codes.js.map +2 -2
- package/esm/filters/filter-field/parser/external-tokenizers/json-path-identifier-tokenizer.js +7 -4
- package/esm/filters/filter-field/parser/external-tokenizers/json-path-identifier-tokenizer.js.map +2 -2
- package/esm/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.js +17 -0
- package/esm/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.js.map +7 -0
- package/esm/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.js +22 -0
- package/esm/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.js.map +7 -0
- package/esm/filters/filter-field/parser/external-tokenizers/text-tokenizer.js +1 -1
- package/esm/filters/filter-field/parser/external-tokenizers/text-tokenizer.js.map +1 -1
- package/esm/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.js +22 -0
- package/esm/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.js.map +7 -0
- package/esm/filters/filter-field/parser/external-tokenizers/value-tokenizer.js +13 -14
- package/esm/filters/filter-field/parser/external-tokenizers/value-tokenizer.js.map +2 -2
- package/esm/filters/filter-field/parser/parser-context.js +1 -0
- package/esm/filters/filter-field/parser/parser-context.js.map +2 -2
- package/esm/filters/filter-field/parser/parser.js +66 -59
- package/esm/filters/filter-field/parser/parser.js.map +2 -2
- package/esm/filters/filter-field/parser/parser.terms.js +7 -2
- package/esm/filters/filter-field/parser/parser.terms.js.map +2 -2
- package/esm/filters/filter-field/parser/utils/accept-free-text.js +9 -11
- package/esm/filters/filter-field/parser/utils/accept-free-text.js.map +2 -2
- package/esm/filters/filter-field/parser/utils/scan-identifier.js +83 -0
- package/esm/filters/filter-field/parser/utils/scan-identifier.js.map +7 -0
- package/esm/filters/filter-field/state/recent-pinned-store.js +3 -0
- package/esm/filters/filter-field/state/recent-pinned-store.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.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 +7 -7
- package/esm/filters/filter-field/suggestions/SuggestionTips.sty.js +5 -5
- package/esm/filters/filter-field/suggestions/SuggestionTips.sty.js.map +1 -1
- package/esm/filters/filter-field/suggestions/Suggestions.js +5 -1
- 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.sty.js +5 -5
- package/esm/filters/filter-field/suggestions/SuggestionsOverlay.sty.js.map +1 -1
- package/esm/filters/filter-field/types/dql-conversion-nodes.js +1 -0
- package/esm/filters/filter-field/types/dql-conversion-nodes.js.map +7 -0
- package/esm/filters/filter-field/utils/compute-minimal-doc-change.js +20 -0
- package/esm/filters/filter-field/utils/compute-minimal-doc-change.js.map +7 -0
- package/esm/filters/filter-field/utils/conversion/dql-conversion/escape-dql.js +20 -0
- package/esm/filters/filter-field/utils/conversion/dql-conversion/escape-dql.js.map +7 -0
- package/esm/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js +243 -0
- package/esm/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js.map +7 -0
- package/esm/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.js +103 -0
- package/esm/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.js.map +7 -0
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js +26 -0
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js +11 -1
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js +13 -2
- 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 +20 -18
- 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/utils/range-helpers.js +20 -0
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.js.map +7 -0
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js +4 -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/number.js +4 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.js.map +2 -2
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js +53 -9
- package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js.map +2 -2
- package/esm/filters/filter-field/utils/escape-suggestion.js +1 -2
- package/esm/filters/filter-field/utils/escape-suggestion.js.map +2 -2
- package/esm/filters/filter-field/utils/generate-errors-or-diagnostics.js +10 -16
- package/esm/filters/filter-field/utils/generate-errors-or-diagnostics.js.map +2 -2
- package/esm/filters/filter-field/utils/get-suggestion-transaction.js +4 -1
- package/esm/filters/filter-field/utils/get-suggestion-transaction.js.map +2 -2
- package/esm/filters/helper/queryHelper.js.map +1 -1
- package/esm/filters/index.js +12 -0
- package/esm/filters/index.js.map +2 -2
- package/esm/filters/segment-selector/SegmentSelector.css +4 -4
- package/esm/filters/segment-selector/SegmentSelector.js +90 -63
- 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/contexts/SegmentsCache/SegmentsCache.js +2 -1
- package/esm/filters/segment-selector/contexts/SegmentsCache/SegmentsCache.js.map +2 -2
- package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.js +5 -1
- package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.js.map +2 -2
- package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.js +24 -1
- package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.js.map +2 -2
- package/esm/filters/segment-selector/hooks/useSegmentsValidation.js +42 -0
- package/esm/filters/segment-selector/hooks/useSegmentsValidation.js.map +7 -0
- package/esm/filters/segment-selector/hooks/useTriggerProps.js +8 -3
- package/esm/filters/segment-selector/hooks/useTriggerProps.js.map +2 -2
- 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/TooltipMessages.js +1 -2
- package/esm/filters/segment-selector/parts/TooltipMessages.js.map +2 -2
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.js +139 -49
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.js.map +3 -3
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.css +36 -32
- 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/segmentsPresets/SegmentsPresetsList.js +3 -1
- package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresetsList.js.map +2 -2
- package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.css +22 -22
- 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/SelectionBar.js +6 -7
- package/esm/filters/segment-selector/parts/selectionBar/SelectionBar.js.map +2 -2
- package/esm/filters/segment-selector/parts/selectionBar/ValueSelect.js +175 -105
- package/esm/filters/segment-selector/parts/selectionBar/ValueSelect.js.map +3 -3
- package/esm/filters/segment-selector/segmentMessages.js +15 -0
- package/esm/filters/segment-selector/segmentMessages.js.map +2 -2
- package/esm/filters/timeframe-selector/TimeframeSelector.css +2 -2
- 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 +83 -2
- package/esm/filters/timeframe-selector/TimeframeSelectorRoot.js.map +3 -3
- package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.css +4 -4
- package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.js +13 -13
- package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.js.map +2 -2
- 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.sty.js +4 -4
- package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js.map +1 -1
- package/esm/filters/timeframe-selector/components/presets/PresetItem.js +1 -1
- 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 +3 -57
- package/esm/filters/timeframe-selector/constants/timeframeSelectorMessages.js.map +2 -2
- package/esm/forms/_base-input/BaseInput.css +85 -106
- 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/BaseInputButton.js +16 -7
- package/esm/forms/_base-input/BaseInputButton.js.map +2 -2
- 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/_base-input/ClearButton.js +7 -0
- package/esm/forms/_base-input/ClearButton.js.map +2 -2
- package/esm/forms/calendar/Calendar.css +48 -48
- package/esm/forms/calendar/Calendar.js +3 -1
- package/esm/forms/calendar/Calendar.js.map +2 -2
- package/esm/forms/calendar/Calendar.sty.js +12 -12
- package/esm/forms/calendar/Calendar.sty.js.map +1 -1
- 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/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.sty.js +3 -3
- package/esm/forms/checkbox/Checkbox.sty.js.map +1 -1
- package/esm/forms/date-time-picker/DateSelector.js +7 -3
- package/esm/forms/date-time-picker/DateSelector.js.map +2 -2
- package/esm/forms/date-time-picker/DateTimePicker.css +43 -79
- package/esm/forms/date-time-picker/DateTimePicker.sty.js +6 -6
- package/esm/forms/date-time-picker/DateTimePicker.sty.js.map +2 -2
- package/esm/forms/date-time-picker/DateTimePickerRoot.js +24 -35
- package/esm/forms/date-time-picker/DateTimePickerRoot.js.map +2 -2
- package/esm/forms/date-time-picker/hooks/useDateTimePicker.js +79 -29
- package/esm/forms/date-time-picker/hooks/useDateTimePicker.js.map +2 -2
- package/esm/forms/date-time-picker/hooks/useSpinButtons.js +58 -39
- package/esm/forms/date-time-picker/hooks/useSpinButtons.js.map +3 -3
- package/esm/forms/date-time-range-picker/DateRangeSelector.css +1 -1
- package/esm/forms/date-time-range-picker/DateRangeSelector.js +4 -0
- package/esm/forms/date-time-range-picker/DateRangeSelector.js.map +2 -2
- 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.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 -0
- package/esm/forms/date-time-range-picker/DateTimeRangePicker.js.map +2 -2
- 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/DateTimeRangePickerRoot.js +44 -77
- package/esm/forms/date-time-range-picker/DateTimeRangePickerRoot.js.map +2 -2
- package/esm/forms/date-time-range-picker/hooks/useDateTimeInput.js +17 -5
- package/esm/forms/date-time-range-picker/hooks/useDateTimeInput.js.map +2 -2
- package/esm/forms/date-time-range-picker/useSelectionInteractionHandlers.js +4 -0
- package/esm/forms/date-time-range-picker/useSelectionInteractionHandlers.js.map +2 -2
- package/esm/forms/form/Form.js.map +2 -2
- package/esm/forms/form/hooks/useInternalFormRegistration.js +3 -1
- package/esm/forms/form/hooks/useInternalFormRegistration.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.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-messages/FormFieldMessageItem.css +5 -5
- 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.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/label/Label.css +5 -5
- 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/hooks/useMinMaxLogger.js +11 -1
- package/esm/forms/forms-core/hooks/useMinMaxLogger.js.map +2 -2
- package/esm/forms/forms-core/state/formfield-messages-state-reducer.js +5 -1
- package/esm/forms/forms-core/state/formfield-messages-state-reducer.js.map +2 -2
- package/esm/forms/forms-core/time/timeParser.js +3 -52
- package/esm/forms/forms-core/time/timeParser.js.map +2 -2
- 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.js +32 -24
- package/esm/forms/hooks/useContainerFocus.js.map +2 -2
- package/esm/forms/hooks/useContainerFocus.sty.js +1 -1
- package/esm/forms/hooks/useContainerFocus.sty.js.map +1 -1
- package/esm/forms/number-input-v2/NumberInput.js +18 -12
- package/esm/forms/number-input-v2/NumberInput.js.map +2 -2
- 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 +2 -2
- package/esm/forms/search-input/SearchInput.js.map +2 -2
- 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 +10 -5
- package/esm/forms/select/Select.js.map +2 -2
- package/esm/forms/select/components/MenuList.js +5 -1
- package/esm/forms/select/components/MenuList.js.map +2 -2
- 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/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/spin-button-group/hooks/useValueOverflow.js +2 -9
- package/esm/forms/spin-buttons/spin-button-group/hooks/useValueOverflow.js.map +2 -2
- package/esm/forms/switch/Switch.css +36 -36
- 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.sty.js +3 -3
- package/esm/forms/text-area/TextArea.sty.js.map +1 -1
- 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/message-routing.js.map +2 -2
- package/esm/layouts/app-header/AppHeader.css +1 -1
- 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.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.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/input-group/InputGroup.css +63 -24
- package/esm/layouts/input-group/InputGroup.sty.js +5 -2
- package/esm/layouts/input-group/InputGroup.sty.js.map +2 -2
- package/esm/layouts/page/DetailView.css +3 -3
- 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.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.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.sty.js +1 -1
- package/esm/layouts/page/Page.sty.js.map +1 -1
- package/esm/layouts/page/Sidebar.css +35 -35
- package/esm/layouts/page/Sidebar.sty.js +8 -8
- package/esm/layouts/page/Sidebar.sty.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 +3 -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.js +17 -12
- package/esm/layouts/page-layout/details-layout/DetailsLayout.js.map +2 -2
- 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/portal-slots.js +1 -1
- package/esm/layouts/page-layout/shared/portal-slots.js.map +2 -2
- package/esm/layouts/page-layout/shared/slot-defaults.js +1 -2
- package/esm/layouts/page-layout/shared/slot-defaults.js.map +2 -2
- package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.css +37 -37
- package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.js.map +2 -2
- 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/Item.js +2 -0
- package/esm/navigation/menu/Item.js.map +2 -2
- package/esm/navigation/menu/Link.js +2 -0
- package/esm/navigation/menu/Link.js.map +2 -2
- package/esm/navigation/menu/Menu.css +17 -17
- package/esm/navigation/menu/Menu.sty.js +8 -8
- package/esm/navigation/menu/Menu.sty.js.map +1 -1
- 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/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.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.sty.js +1 -1
- package/esm/notifications/toast/ToastContainer.sty.js.map +1 -1
- package/esm/overlays/drawer/Drawer.css +13 -9
- package/esm/overlays/drawer/Drawer.js +95 -95
- package/esm/overlays/drawer/Drawer.js.map +2 -2
- package/esm/overlays/drawer/Drawer.sty.js +5 -5
- package/esm/overlays/drawer/Drawer.sty.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 +7 -7
- package/esm/overlays/sheet/Sheet.js +10 -2
- 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/TooltipElement.js +1 -0
- package/esm/overlays/tooltip/TooltipElement.js.map +2 -2
- 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/use-popper-compat.js +16 -9
- package/esm/overlays/utils/use-popper-compat.js.map +2 -2
- 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 -304
- package/esm/styles/field.sty.js +2 -2
- package/esm/styles/field.sty.js.map +2 -2
- 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 +17 -22
- 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/BuiltinColumnHeaderName.js +13 -0
- package/esm/tables/DataTable/components/BuiltinColumnHeaderName.js.map +7 -0
- package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.css +6 -6
- 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/DataTableBody.css +2 -2
- package/esm/tables/DataTable/components/DataTableBody.js +50 -31
- package/esm/tables/DataTable/components/DataTableBody.js.map +2 -2
- 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.sty.js +5 -5
- package/esm/tables/DataTable/components/DataTableCell.sty.js.map +1 -1
- package/esm/tables/DataTable/components/DataTableContent.js +1 -2
- 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 +48 -0
- package/esm/tables/DataTable/components/DataTableDragScrollLock.js.map +7 -0
- 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.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 +21 -9
- 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 +19 -16
- 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 +14 -14
- 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 +5 -46
- 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.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/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/DataTableColumnSettingsModal.js +9 -0
- 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 +50 -13
- 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 +1 -4
- 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.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.sty.js +3 -3
- package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js.map +1 -1
- package/esm/tables/DataTable/components/Toolbar/DataTableToolbarMenu.js +2 -0
- package/esm/tables/DataTable/components/Toolbar/DataTableToolbarMenu.js.map +2 -2
- package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.css +3 -3
- package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.js +12 -1
- package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.js.map +2 -2
- 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/features/ColumnOrder/ColumnOrder.css +8 -8
- 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 +1 -1
- package/esm/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.js.map +2 -2
- package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.css +3 -3
- 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/ColumnTypes/ColumnTypes.css +1 -1
- 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/ColumnTypes/column-types-types.js.map +2 -2
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.css +1 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.js +6 -1
- package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.js.map +2 -2
- 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.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/LoadingState/LoadingState.css +3 -3
- 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/MeterBarChart/MeterBarChart.css +5 -5
- package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.js +19 -3
- 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/RowDetails/RowDetails.css +13 -13
- 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 +2 -3
- package/esm/tables/DataTable/features/RowDetails/RowDetailsColumnDef.js.map +2 -2
- package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.css +17 -17
- 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/RowOrder/RowOrder.css +8 -8
- 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/RowOrderColumnDef.js +2 -3
- package/esm/tables/DataTable/features/RowOrder/RowOrderColumnDef.js.map +2 -2
- package/esm/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js +9 -9
- package/esm/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js.map +2 -2
- package/esm/tables/DataTable/features/RowSelection/RowSelectionColumnDef.js +12 -2
- package/esm/tables/DataTable/features/RowSelection/RowSelectionColumnDef.js.map +2 -2
- package/esm/tables/DataTable/features/Sorting/Sorting.css +34 -34
- 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/SubRows/SubRows.css +19 -19
- 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/Thresholds/Thresholds.css +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/UserActions/FloatingMenu.js +13 -6
- package/esm/tables/DataTable/features/UserActions/FloatingMenu.js.map +2 -2
- package/esm/tables/DataTable/features/UserActions/InlineUserActionsMenu.js +5 -2
- package/esm/tables/DataTable/features/UserActions/InlineUserActionsMenu.js.map +2 -2
- 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/RowActionsColumnDef.js +2 -1
- package/esm/tables/DataTable/features/UserActions/RowActionsColumnDef.js.map +2 -2
- package/esm/tables/DataTable/features/UserActions/UserActions.css +18 -18
- 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/VirtualScrolling/VirtualScrolling.js +1 -1
- package/esm/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js.map +2 -2
- package/esm/tables/DataTable/messages.js +29 -2
- package/esm/tables/DataTable/messages.js.map +2 -2
- package/esm/tables/SimpleTable/SimpleTable.css +27 -27
- package/esm/tables/SimpleTable/SimpleTable.sty.js +1 -1
- package/esm/tables/SimpleTable/SimpleTable.sty.js.map +1 -1
- package/esm/typography/block-quote/Blockquote.css +2 -2
- package/esm/typography/block-quote/Blockquote.js.map +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 +1 -1
- package/esm/typography/code/Code.js.map +2 -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.js.map +2 -2
- 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.js.map +2 -2
- 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.js.map +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.js.map +2 -2
- 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.js.map +2 -2
- 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.js.map +2 -2
- 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/ResetButton.js +9 -5
- package/filters/filter-field/FilterField.css +130 -147
- package/filters/filter-field/FilterField.js +121 -27
- package/filters/filter-field/FilterField.sty.js +29 -28
- package/filters/filter-field/FilterField.types.d.ts +14 -1
- 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 +14 -14
- package/filters/filter-field/components/FilterStatement.js +6 -8
- package/filters/filter-field/components/FilterStatement.sty.js +8 -7
- package/filters/filter-field/error-fallback/filter-value-obfuscation-util.js +2 -2
- package/filters/filter-field/hooks/useFilterFieldLinting.js +3 -0
- package/filters/filter-field/messages.d.ts +5 -0
- package/filters/filter-field/messages.js +5 -0
- package/filters/filter-field/parser/character-codes.d.ts +3 -0
- package/filters/filter-field/parser/character-codes.js +3 -0
- package/filters/filter-field/parser/external-tokenizers/json-path-identifier-tokenizer.js +7 -4
- package/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.d.ts +11 -0
- package/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.js +35 -0
- package/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.d.ts +9 -0
- package/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.js +40 -0
- package/filters/filter-field/parser/external-tokenizers/text-tokenizer.js +1 -1
- package/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.d.ts +10 -0
- package/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.js +40 -0
- package/filters/filter-field/parser/external-tokenizers/value-tokenizer.js +8 -13
- package/filters/filter-field/parser/parser-context.js +1 -0
- package/filters/filter-field/parser/parser.js +66 -59
- package/filters/filter-field/parser/parser.terms.d.ts +1 -1
- package/filters/filter-field/parser/parser.terms.js +7 -2
- package/filters/filter-field/parser/utils/accept-free-text.d.ts +1 -0
- package/filters/filter-field/parser/utils/accept-free-text.js +9 -11
- package/filters/filter-field/parser/utils/scan-identifier.d.ts +14 -0
- package/filters/filter-field/parser/utils/scan-identifier.js +101 -0
- package/filters/filter-field/state/recent-pinned-store.js +3 -0
- 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.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 +7 -7
- package/filters/filter-field/suggestions/SuggestionTips.sty.js +5 -5
- package/filters/filter-field/suggestions/Suggestions.js +5 -1
- package/filters/filter-field/suggestions/SuggestionsOverlay.css +7 -7
- package/filters/filter-field/suggestions/SuggestionsOverlay.sty.js +5 -5
- package/filters/filter-field/types/dql-conversion-nodes.d.ts +71 -0
- package/filters/filter-field/types/dql-conversion-nodes.js +15 -0
- package/filters/filter-field/utils/compute-minimal-doc-change.d.ts +16 -0
- package/filters/filter-field/utils/compute-minimal-doc-change.js +38 -0
- package/filters/filter-field/utils/conversion/dql-conversion/escape-dql.d.ts +30 -0
- package/filters/filter-field/utils/conversion/dql-conversion/escape-dql.js +38 -0
- package/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.d.ts +22 -0
- package/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js +257 -0
- package/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.d.ts +24 -0
- package/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.js +115 -0
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js +26 -0
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js +11 -1
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js +13 -2
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js +20 -18
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.d.ts +7 -0
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.js +38 -0
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.d.ts +1 -0
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js +4 -1
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.d.ts +4 -2
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.js +4 -2
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.d.ts +1 -1
- package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js +53 -9
- package/filters/filter-field/utils/escape-suggestion.d.ts +2 -3
- package/filters/filter-field/utils/escape-suggestion.js +1 -2
- package/filters/filter-field/utils/generate-errors-or-diagnostics.js +10 -16
- package/filters/filter-field/utils/get-suggestion-transaction.js +4 -1
- package/filters/helper/queryHelper.d.ts +1 -1
- package/filters/index.d.ts +3 -0
- package/filters/index.js +6 -0
- package/filters/segment-selector/SegmentSelector.css +4 -4
- package/filters/segment-selector/SegmentSelector.d.ts +2 -0
- package/filters/segment-selector/SegmentSelector.js +90 -63
- package/filters/segment-selector/SegmentSelector.sty.js +4 -4
- package/filters/segment-selector/SegmentSelector.types.d.ts +13 -0
- package/filters/segment-selector/contexts/SegmentsCache/SegmentsCache.js +2 -1
- package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.d.ts +1 -0
- package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.js +5 -1
- package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.d.ts +6 -0
- package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.js +24 -1
- package/filters/segment-selector/contexts/SegmentsUI/UISegments.types.d.ts +1 -0
- package/filters/segment-selector/hooks/useSegmentsValidation.d.ts +9 -0
- package/filters/segment-selector/hooks/useSegmentsValidation.js +58 -0
- package/filters/segment-selector/hooks/useTriggerProps.js +7 -2
- 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/TooltipMessages.js +1 -2
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.d.ts +2 -0
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.js +134 -45
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.css +36 -32
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js +10 -10
- package/filters/segment-selector/parts/segmentsPresets/SegmentsPresetsList.js +3 -1
- 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/SelectionBar.js +6 -7
- package/filters/segment-selector/parts/selectionBar/ValueSelect.d.ts +3 -1
- package/filters/segment-selector/parts/selectionBar/ValueSelect.js +175 -105
- package/filters/segment-selector/segmentMessages.d.ts +15 -0
- package/filters/segment-selector/segmentMessages.js +15 -0
- package/filters/timeframe-selector/TimeframeSelector.css +2 -2
- package/filters/timeframe-selector/TimeframeSelector.sty.js +2 -2
- package/filters/timeframe-selector/TimeframeSelector.types.d.ts +13 -0
- package/filters/timeframe-selector/TimeframeSelectorRoot.js +80 -1
- package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.css +4 -4
- package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.js +13 -13
- 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.sty.js +4 -4
- package/filters/timeframe-selector/components/presets/PresetItem.js +1 -1
- 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 -58
- package/filters/timeframe-selector/constants/timeframeSelectorMessages.js +3 -57
- package/forms/_base-input/BaseInput.css +85 -106
- package/forms/_base-input/BaseInput.sty.js +11 -11
- package/forms/_base-input/BaseInputButton.d.ts +1 -0
- package/forms/_base-input/BaseInputButton.js +14 -6
- package/forms/_base-input/BaseInputContent.css +7 -7
- package/forms/_base-input/BaseInputContent.sty.js +1 -1
- package/forms/_base-input/ClearButton.d.ts +4 -0
- package/forms/_base-input/ClearButton.js +7 -0
- package/forms/calendar/Calendar.css +48 -48
- package/forms/calendar/Calendar.js +3 -1
- package/forms/calendar/Calendar.sty.js +12 -12
- 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/variables.sty.js +2 -2
- package/forms/checkbox/Checkbox.css +20 -20
- package/forms/checkbox/Checkbox.sty.js +3 -3
- package/forms/date-time-picker/DateSelector.js +7 -3
- package/forms/date-time-picker/DateTimePicker.css +43 -79
- package/forms/date-time-picker/DateTimePicker.css.d.ts +0 -30
- package/forms/date-time-picker/DateTimePicker.sty.js +6 -6
- package/forms/date-time-picker/DateTimePickerRoot.js +24 -35
- package/forms/date-time-picker/hooks/useDateTimePicker.js +79 -29
- package/forms/date-time-picker/hooks/useSpinButtons.d.ts +1 -1
- package/forms/date-time-picker/hooks/useSpinButtons.js +58 -39
- package/forms/date-time-picker/types.d.ts +3 -1
- package/forms/date-time-range-picker/DateRangeSelector.css +1 -1
- package/forms/date-time-range-picker/DateRangeSelector.js +4 -0
- 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 -0
- package/forms/date-time-range-picker/DateTimeRangePicker.sty.js +4 -4
- package/forms/date-time-range-picker/DateTimeRangePickerRoot.d.ts +1 -0
- package/forms/date-time-range-picker/DateTimeRangePickerRoot.js +44 -77
- package/forms/date-time-range-picker/hooks/useDateTimeInput.js +17 -5
- package/forms/date-time-range-picker/types.d.ts +2 -0
- package/forms/date-time-range-picker/useSelectionInteractionHandlers.js +4 -0
- package/forms/form/hooks/useInternalFormRegistration.js +3 -1
- 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.sty.js +1 -1
- package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.css +5 -5
- 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.sty.js +1 -1
- package/forms/forms-core/components/label/Label.css +5 -5
- package/forms/forms-core/components/label/Label.sty.js +2 -2
- package/forms/forms-core/hooks/useMinMaxLogger.d.ts +2 -1
- package/forms/forms-core/hooks/useMinMaxLogger.js +11 -1
- package/forms/forms-core/state/formfield-messages-state-reducer.js +5 -1
- package/forms/forms-core/time/timeParser.d.ts +1 -7
- package/forms/forms-core/time/timeParser.js +2 -48
- 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.d.ts +27 -8
- package/forms/hooks/useContainerFocus.js +32 -24
- package/forms/hooks/useContainerFocus.sty.js +1 -1
- package/forms/number-input-v2/NumberInput.js +18 -12
- 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.js +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.d.ts +1 -1
- package/forms/select/Select.js +10 -5
- package/forms/select/components/MenuList.js +5 -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/spin-buttons/spin-button-group/hooks/useValueOverflow.js +2 -9
- package/forms/spin-buttons/spin-button-group/types.d.ts +0 -5
- package/forms/switch/Switch.css +36 -36
- package/forms/switch/Switch.sty.js +5 -5
- package/forms/text-area/TextArea.css +59 -59
- 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/message-routing.d.ts +4 -6
- package/lang/en.json +48 -6
- package/lang/ja.json +96 -14
- package/lang/uncompiled/en.json +24 -4
- package/lang/uncompiled/ja.json +35 -8
- 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/input-group/InputGroup.css +63 -24
- package/layouts/input-group/InputGroup.sty.js +5 -2
- 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.d.ts +2 -2
- package/layouts/page-layout/PageLayout.js +3 -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.js +16 -11
- 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/details-layout/slots.d.ts +16 -9
- package/layouts/page-layout/shared/portal-slots.d.ts +3 -3
- package/layouts/page-layout/shared/portal-slots.js +1 -1
- package/layouts/page-layout/shared/slot-config.d.ts +2 -2
- package/layouts/page-layout/shared/slot-defaults.d.ts +0 -1
- package/layouts/page-layout/shared/slot-defaults.js +1 -2
- package/layouts/page-layout/sidebar-layout/SidebarLayout.css +37 -37
- package/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js +14 -14
- package/layouts/page-layout/sidebar-layout/slots.d.ts +1 -1
- 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/migrations/3.11.0/codemods/migrate-meterbar-slot-show-indicator.js +1 -0
- package/migrations/3.11.0/codemods/migrate-meterbar-threshold-show-indicator.js +1 -0
- package/migrations/3.11.0/codeshift-migration.js +74 -0
- package/migrations/3.11.0/dt-app-migration.js +123 -0
- package/migrations.json +5 -0
- package/navigation/breadcrumbs/Breadcrumbs.css +9 -9
- package/navigation/breadcrumbs/Breadcrumbs.sty.js +5 -5
- package/navigation/menu/Item.js +2 -0
- package/navigation/menu/Link.js +2 -0
- package/navigation/menu/Menu.css +17 -17
- package/navigation/menu/Menu.sty.js +8 -8
- package/navigation/menu/MobileMenu.css +14 -14
- package/navigation/menu/MobileMenu.sty.js +8 -8
- 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 +13 -9
- package/overlays/drawer/Drawer.d.ts +1 -1
- package/overlays/drawer/Drawer.js +95 -95
- package/overlays/drawer/Drawer.sty.js +5 -5
- 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 +7 -7
- package/overlays/sheet/Sheet.d.ts +2 -2
- package/overlays/sheet/Sheet.js +10 -2
- package/overlays/sheet/Sheet.sty.js +5 -5
- package/overlays/tooltip/TooltipElement.js +1 -0
- package/overlays/tooltip/tooltip.css +18 -18
- package/overlays/tooltip/tooltip.sty.js +3 -3
- package/overlays/utils/use-popper-compat.d.ts +3 -2
- package/overlays/utils/use-popper-compat.js +16 -9
- package/package.json +12 -5
- 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 -304
- package/styles/field.css.d.ts +2 -33
- 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.js +17 -22
- 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/BuiltinColumnHeaderName.d.ts +10 -0
- package/tables/DataTable/components/BuiltinColumnHeaderName.js +31 -0
- package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.css +6 -6
- package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js +3 -3
- package/tables/DataTable/components/DataTableBody.css +2 -2
- package/tables/DataTable/components/DataTableBody.js +50 -31
- package/tables/DataTable/components/DataTableBody.sty.js +2 -2
- package/tables/DataTable/components/DataTableCell.css +83 -83
- package/tables/DataTable/components/DataTableCell.sty.js +5 -5
- package/tables/DataTable/components/DataTableContent.js +1 -2
- package/tables/DataTable/components/DataTableDefaultCell.css +23 -23
- package/tables/DataTable/components/DataTableDefaultCell.sty.js +1 -1
- package/tables/DataTable/components/DataTableDragScrollLock.d.ts +13 -0
- package/tables/DataTable/components/DataTableDragScrollLock.js +66 -0
- 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.sty.js +2 -2
- package/tables/DataTable/components/DataTableHeaderCell.css +64 -64
- package/tables/DataTable/components/DataTableHeaderCell.d.ts +2 -1
- package/tables/DataTable/components/DataTableHeaderCell.js +21 -9
- package/tables/DataTable/components/DataTableHeaderCell.sty.js +23 -23
- package/tables/DataTable/components/DataTableRow.css +13 -13
- package/tables/DataTable/components/DataTableRow.js +19 -16
- package/tables/DataTable/components/DataTableRow.sty.js +1 -1
- package/tables/DataTable/components/DataTableScrollShadow.css +14 -14
- package/tables/DataTable/components/DataTableScrollShadow.sty.js +2 -2
- package/tables/DataTable/components/DataTableVirtualizationContainer.css +21 -21
- package/tables/DataTable/components/DataTableVirtualizationContainer.js +4 -44
- 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.sty.js +3 -3
- 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/DataTableColumnSettingsModal.js +9 -0
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.css +19 -19
- package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js +49 -12
- 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.js +1 -4
- 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.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.sty.js +3 -3
- package/tables/DataTable/components/Toolbar/DataTableToolbarMenu.js +2 -0
- package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.css +3 -3
- package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.js +12 -1
- package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js +2 -2
- package/tables/DataTable/features/ColumnOrder/ColumnOrder.css +8 -8
- package/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js +4 -4
- package/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.js +1 -1
- package/tables/DataTable/features/ColumnSizing/ColumnSizing.css +3 -3
- package/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js +1 -1
- package/tables/DataTable/features/ColumnTypes/ColumnTypes.css +1 -1
- package/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js +1 -1
- package/tables/DataTable/features/ColumnTypes/column-types-types.d.ts +10 -1
- package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.css +1 -1
- package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.js +6 -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/Layout/layout-types.d.ts +1 -0
- package/tables/DataTable/features/LoadingState/LoadingState.css +3 -3
- package/tables/DataTable/features/LoadingState/LoadingState.sty.js +3 -3
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.css +5 -5
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.d.ts +11 -0
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.js +19 -3
- package/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js +2 -2
- package/tables/DataTable/features/RowDetails/RowDetails.css +13 -13
- package/tables/DataTable/features/RowDetails/RowDetails.sty.js +3 -3
- package/tables/DataTable/features/RowDetails/RowDetailsColumnDef.js +2 -3
- package/tables/DataTable/features/RowInteractivity/RowInteractivity.css +17 -17
- package/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js +1 -1
- package/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js +1 -1
- package/tables/DataTable/features/RowOrder/RowOrder.css +8 -8
- package/tables/DataTable/features/RowOrder/RowOrder.sty.js +3 -3
- package/tables/DataTable/features/RowOrder/RowOrderColumnDef.js +2 -3
- package/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js +8 -9
- package/tables/DataTable/features/RowSelection/RowSelectionColumnDef.d.ts +0 -4
- package/tables/DataTable/features/RowSelection/RowSelectionColumnDef.js +11 -1
- package/tables/DataTable/features/Sorting/Sorting.css +34 -34
- package/tables/DataTable/features/Sorting/Sorting.sty.js +3 -3
- package/tables/DataTable/features/SubRows/SubRows.css +19 -19
- package/tables/DataTable/features/SubRows/SubRows.sty.js +5 -5
- package/tables/DataTable/features/Thresholds/Thresholds.css +2 -2
- package/tables/DataTable/features/Thresholds/Thresholds.sty.js +3 -3
- package/tables/DataTable/features/UserActions/FloatingMenu.js +13 -6
- package/tables/DataTable/features/UserActions/InlineUserActionsMenu.js +5 -2
- package/tables/DataTable/features/UserActions/RowActions.css +4 -4
- package/tables/DataTable/features/UserActions/RowActions.sty.js +1 -1
- package/tables/DataTable/features/UserActions/RowActionsColumnDef.js +2 -1
- package/tables/DataTable/features/UserActions/UserActions.css +18 -18
- package/tables/DataTable/features/UserActions/UserActions.sty.js +2 -2
- package/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js +1 -1
- package/tables/DataTable/messages.d.ts +25 -0
- package/tables/DataTable/messages.js +29 -2
- package/tables/SimpleTable/SimpleTable.css +27 -27
- package/tables/SimpleTable/SimpleTable.sty.js +1 -1
- package/typography/block-quote/Blockquote.css +2 -2
- package/typography/block-quote/Blockquote.d.ts +2 -1
- package/typography/block-quote/Blockquote.sty.js +1 -1
- package/typography/code/Code.css +1 -1
- package/typography/code/Code.d.ts +2 -1
- package/typography/code/Code.sty.js +1 -1
- package/typography/emphasis/Emphasis.css +1 -1
- package/typography/emphasis/Emphasis.d.ts +2 -1
- package/typography/emphasis/Emphasis.sty.js +1 -1
- package/typography/external-link/ExternalLink.css +6 -6
- package/typography/external-link/ExternalLink.d.ts +2 -1
- 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.d.ts +2 -1
- 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.d.ts +2 -1
- 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.d.ts +2 -1
- package/typography/strikethrough/Strikethrough.sty.js +1 -1
- package/typography/strong/Strong.css +1 -1
- package/typography/strong/Strong.d.ts +2 -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/types/aria-label.d.ts +0 -7
- package/charts/core/utils/get-key-shortcut-by-agent.d.ts +0 -2
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.d.ts +0 -6
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.css +0 -7
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.css.d.ts +0 -2
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.d.ts +0 -7
- package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.js +0 -46
- package/charts/meter-bar/single-meter-bar/utils/get-threshold-indicators.d.ts +0 -3
- package/esm/charts/core/types/aria-label.js +0 -1
- package/esm/charts/core/utils/get-key-shortcut-by-agent.js +0 -16
- package/esm/charts/core/utils/get-key-shortcut-by-agent.js.map +0 -7
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.js +0 -22
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.js.map +0 -7
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.css +0 -7
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.js +0 -28
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.js.map +0 -7
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.sty.js +0 -6
- package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.sty.js.map +0 -7
- package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-indicators.js +0 -14
- package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-indicators.js.map +0 -7
- /package/esm/charts/{core/types/aria-label.js.map → flame/shared/types/flame-chart.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/forms/date-time-range-picker/DateTimeRangePickerRoot.tsx"],
|
|
4
|
-
"sourcesContent": ["import clsx from 'clsx';\nimport {\n type FocusEvent,\n forwardRef,\n type KeyboardEvent as ReactKeyboardEvent,\n type RefObject,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { XmarkIcon } from '@dynatrace/strato-icons';\n\nimport { DateRangeSelector } from './DateRangeSelector.js';\nimport { DateTimeInput } from './DateTimeInput.js';\nimport * as styles from './DateTimeRangePicker.sty.js';\nimport { isExpressionTriggerKey } from './expression-trigger-helpers.js';\nimport { useDateTimeRangePicker } from './hooks/useDateTimeRangePicker.js';\nimport { onTimeframeCopyCapture } from './selection-copy-helpers.js';\nimport {\n peekPreRestoreEndpoints,\n type SelectionEndpoints,\n} from './selection-helpers.js';\nimport type {\n DateTimeRangePickerProps,\n DateTimeRangePickerRef,\n} from './types.js';\nimport { DateRangeSelectorRef, DateTimeInputRef } from './types.js';\nimport { useSelectionInteractionHandlers } from './useSelectionInteractionHandlers.js';\nimport { Button } from '../../buttons/button/Button.js';\nimport { useAriaLabelingProps } from '../../core/hooks/useAriaLabelingProps.js';\nimport { useBehavioralTrackingProps } from '../../core/hooks/useBehavioralTrackingProps.js';\nimport { useFocusRing } from '../../core/hooks/useFocusRing.js';\nimport { TimeErrorKey } from '../../core/time/shared.types.js';\nimport { useDateTimeRangePickerStore } from '../../core/time/timeframeStore/useTimeframeStore.js';\nimport {\n formatTimeValidationMessage,\n getValidityStateKeyForTimeError,\n validate,\n} from '../../core/time/validation.js';\nimport { Flex } from '../../layouts/flex/Flex.js';\nimport { inputGroupClassName } from '../../layouts/input-group/InputGroup.sty.js';\nimport { InputGroup } from '../../layouts/input-group/InputGroup.js';\nimport { fieldTokens } from '../../styles/field.sty.js';\nimport { textStyle } from '../../styles/textStyle.sty.js';\nimport {\n clearIconButton,\n dateTimePicker,\n} from '../date-time-picker/DateTimePicker.sty.js';\nimport { focusDateTimeInput } from '../date-time-picker/utils/focusDateTimeInput.js';\nimport { FormFieldMessageContext } from '../forms-core/contexts/FormFieldMessageContext.js';\nimport type { UseFormControlReturnType } from '../forms-core/hooks/useFormControl.js';\nimport { FormFieldMessagesAction } from '../forms-core/state/formfield-messages-state-reducer.js';\nimport { SpinButtonHandler } from '../spin-buttons/spin-button-group/types.js';\nimport { useCustomMessageEmitter } from '../validation/useCustomMessageEmitter.js';\nimport { useValidationStateEmitter } from '../validation/useValidationStateEmitter.js';\nimport { getValidationState } from '../validation/validation-builders.js';\n\n/**\n * Returns true if a given DateTimeInput element contains the active (focused)\n * element *or* the window selection intersects it.\n *\n * The focus-based check covers the common case where a single spin button is\n * focused \u2013 including empty (placeholder) spin buttons whose `selectAll()` is\n * a no-op and therefore leave the window selection collapsed.\n *\n * The selection-based check covers cross-input scenarios such as Ctrl+A or\n * drag-select spanning both \"from\" and \"to\" inputs.\n */\nfunction isInputInSelectionOrFocused(\n ref: RefObject<DateTimeInputRef | null>,\n preRestoreEndpoints?: SelectionEndpoints,\n): boolean {\n const element = ref.current?.element;\n if (!element) {\n return false;\n }\n\n if (element.contains(document.activeElement)) {\n return true;\n }\n\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0 && !selection.isCollapsed) {\n if (selection.getRangeAt(0).intersectsNode(element)) {\n return true;\n }\n }\n\n // Safari clips the live selection to the active CE host after contenteditable\n // is re-attached in the keydown capture phase. Fall back to the pre-restore\n // endpoints stashed by deferContentEditableRestore, which still span both inputs.\n return (\n !!preRestoreEndpoints &&\n (element.contains(preRestoreEndpoints.anchorNode) ||\n element.contains(preRestoreEndpoints.focusNode))\n );\n}\n\nfunction focusExpressionInputAtEnd(\n ref: RefObject<DateTimeInputRef | null>,\n): void {\n const expressionElement = ref.current?.expressionInputRef;\n if (!expressionElement) {\n return;\n }\n\n expressionElement.focus();\n\n const selection = window.getSelection();\n if (!selection) {\n return;\n }\n\n const range = document.createRange();\n range.selectNodeContents(expressionElement);\n range.collapse(false);\n selection.removeAllRanges();\n selection.addRange(range);\n}\n\nfunction getOffsetWithinElement(\n element: HTMLElement,\n container: Node,\n offset: number,\n): number {\n const range = document.createRange();\n range.selectNodeContents(element);\n range.setEnd(container, offset);\n return range.toString().length;\n}\n\n/**@internal */\nexport const DateTimeRangePickerRoot = forwardRef<\n DateTimeRangePickerRef | null,\n Omit<\n DateTimeRangePickerProps,\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'disabled'\n | 'required'\n | 'id'\n | 'aria-disabled'\n | 'readOnly'\n | 'controlState'\n > & {\n formControl: UseFormControlReturnType;\n }\n>((props, forwardedRef) => {\n const {\n name,\n style: consumerStyle,\n className: consumerClassName,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n placeholder: placeholderProp,\n onBlur,\n formControl,\n onValidityChange,\n ...remainingProps\n } = props;\n const {\n id,\n disabled,\n required,\n readOnly = false,\n ariaDisabled,\n inputProps,\n showError,\n messageState,\n messageDispatch: formMessageDispatch,\n } = formControl;\n const [behavioralTrackingProps] = useBehavioralTrackingProps(remainingProps);\n const ariaProps = useAriaLabelingProps(remainingProps);\n const COMPONENT_NAME = 'DateTimeRangePicker';\n\n const rootRef = useRef<HTMLDivElement>(null);\n const touchedContainerRef = useRef<HTMLDivElement>(null);\n const dateTimeToRef = useRef<DateTimeInputRef>(null);\n const dateRangeSelectorRef = useRef<DateRangeSelectorRef>(null);\n\n const [hasInputContent, setHasInputContent] = useState(false);\n\n const setValue = useDateTimeRangePickerStore(\n (state) => state.setDateTimeRangePickerTimeframe,\n );\n const value = useDateTimeRangePickerStore(\n (state) => state.dateTimeRangePickerTimeframe,\n );\n const dateTimeFromRef = useDateTimeRangePickerStore(\n (state) => state.dateTimeFromRef,\n );\n const precision = useDateTimeRangePickerStore((state) => state.precision);\n const min = useDateTimeRangePickerStore((state) => state.min);\n const max = useDateTimeRangePickerStore((state) => state.max);\n const formatString = useDateTimeRangePickerStore(\n (state) => state.formatString,\n );\n\n const disabledOrAriaDisabled = disabled || ariaDisabled || false;\n\n const { placeholder, onPasteCapture, onUndoPasteKeyDown } =\n useDateTimeRangePicker({\n placeholder: placeholderProp,\n readOnly,\n dateTimeFromRef,\n dateTimeToRef,\n });\n\n const intl = useIntl();\n\n const { isTouched } = messageState;\n\n // Track the last error key returned by the imperative validate() so we can\n // pass it as `formerError` on the next call and clean up stale messages.\n const lastValidationErrorRef = useRef<TimeErrorKey | undefined>(undefined);\n const _emitValidationState = useValidationStateEmitter(onValidityChange);\n const emitValidationState = useCustomMessageEmitter(\n _emitValidationState,\n () => {\n const key = getErrorKey();\n return getValidationState(\n key !== undefined ? getValidityStateKeyForTimeError(key) : undefined,\n 'manual',\n getValidationMessage(key),\n id ? [id] : [],\n );\n },\n );\n\n const getValidationMessage = useCallback(\n (errorKey: TimeErrorKey | undefined): string | undefined => {\n if (!errorKey) {\n return undefined;\n }\n return formatTimeValidationMessage(errorKey, intl, {\n value,\n min,\n max,\n precision,\n expectedFormat: formatString,\n });\n },\n [intl, value, min, max, precision, formatString],\n );\n\n // Provide root and input element reference and functions to interact with the calendar overlay\n useImperativeHandle(\n forwardedRef,\n (): DateTimeRangePickerRef => ({\n element: rootRef.current,\n inputRef: {\n from: dateTimeFromRef.current?.inputRef,\n to: dateTimeToRef.current?.inputRef,\n },\n open: () => dateRangeSelectorRef.current?.open(),\n close: () => dateRangeSelectorRef.current?.close(),\n focus: () => dateTimeFromRef.current?.focus?.(),\n getCurrentValue: () => ({\n from: value?.from ?? null,\n to: value?.to ?? null,\n }),\n validate() {\n lastValidationErrorRef.current = validate(value, min, max, {\n formMessageDispatch,\n formerError: lastValidationErrorRef.current,\n precision,\n showError: true,\n checkOrder: true,\n ref: rootRef,\n expectedFormat: formatString,\n valueMode: 'dateTimePicker',\n required,\n });\n formMessageDispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n emitValidationState(\n getValidationState(\n lastValidationErrorRef.current !== undefined\n ? getValidityStateKeyForTimeError(lastValidationErrorRef.current)\n : undefined,\n 'manual',\n getValidationMessage(lastValidationErrorRef.current),\n id ? [id] : [],\n ),\n );\n },\n // DEPRECATION: [APPDEV-18178] BREAKING-CHANGE: Remove validateAsync() and change validate() to return Promise<ValidationState>.\n validateAsync: async () => {\n lastValidationErrorRef.current = validate(value, min, max, {\n formMessageDispatch,\n formerError: lastValidationErrorRef.current,\n precision,\n showError: true,\n checkOrder: true,\n ref: rootRef,\n expectedFormat: formatString,\n valueMode: 'dateTimePicker',\n required,\n });\n formMessageDispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n const state = getValidationState(\n lastValidationErrorRef.current !== undefined\n ? getValidityStateKeyForTimeError(lastValidationErrorRef.current)\n : undefined,\n 'manual',\n getValidationMessage(lastValidationErrorRef.current),\n id ? [id] : [],\n );\n return emitValidationState(state);\n },\n }),\n [\n value,\n min,\n max,\n formMessageDispatch,\n precision,\n formatString,\n required,\n dateTimeFromRef,\n emitValidationState,\n getValidationMessage,\n ],\n );\n\n // Computes the current range error key without dispatching messages, used to\n // keep `onValidityChange` in sync on automatic (change / blur) updates.\n const getErrorKey = useCallback(\n () =>\n validate(value, min, max, {\n precision,\n checkOrder: true,\n ref: rootRef,\n expectedFormat: formatString,\n valueMode: 'dateTimePicker',\n required,\n }),\n [value, min, max, precision, formatString, required],\n );\n\n // Surface validation state on every value change (`change` trigger).\n useEffect(() => {\n const key = getErrorKey();\n emitValidationState(\n getValidationState(\n key !== undefined ? getValidityStateKeyForTimeError(key) : undefined,\n 'change',\n getValidationMessage(key),\n id ? [id] : [],\n ),\n );\n }, [value, id, getErrorKey, emitValidationState, getValidationMessage]);\n\n const { focusClassName } = useFocusRing({\n focusWithin: true,\n ignoreModality: true,\n isMinimal: false,\n disabled,\n color: showError ? 'critical' : 'neutral',\n });\n\n const dateTimeFromLabel = intl.formatMessage({\n defaultMessage: 'DateTime from',\n id: 'fMy6q/KKOqbvCA3H',\n description:\n 'Textbox to enter a relative or absolute timeframe from value.',\n });\n\n const dateTimeToLabel = intl.formatMessage({\n defaultMessage: 'DateTime to',\n id: 'uuhhc3nEZptwtV2E',\n description: 'Textbox to enter a relative or absolute timeframe to value.',\n });\n const clearButtonLabel = intl.formatMessage({\n defaultMessage: 'Clear date and time range',\n id: 'zX4r/Y8gJL1C8+5e',\n description: 'Aria label for the DateTimeRangePicker clear button.',\n });\n const formFieldMessageContextValue = useMemo(\n () => ({\n state: {\n customMessages: [],\n formControlMessages: [],\n showError,\n },\n }),\n [showError],\n );\n\n const {\n onMouseDown,\n onKeyDown: handleSelectionKeyDown,\n onContextMenu,\n onCutCapture,\n } = useSelectionInteractionHandlers(\n touchedContainerRef,\n useCallback(() => {\n focusDateTimeInput(null, dateTimeFromRef, dateTimeToRef);\n }, [dateTimeFromRef]),\n dateTimeFromRef,\n dateTimeToRef,\n );\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (disabled || readOnly) {\n handleSelectionKeyDown(event);\n return;\n }\n\n // Safari: Reads the stash set by deferContentEditableRestore\n const preRestoreEndpoints = peekPreRestoreEndpoints(\n event.currentTarget as HTMLElement,\n );\n\n const fromInputIsIso =\n dateTimeFromRef.current?.element?.getAttribute('data-valuetype') ===\n 'iso8601';\n const toInputIsIso =\n dateTimeToRef.current?.element?.getAttribute('data-valuetype') ===\n 'iso8601';\n\n const bothInSelection =\n isInputInSelectionOrFocused(dateTimeFromRef, preRestoreEndpoints) &&\n isInputInSelectionOrFocused(dateTimeToRef, preRestoreEndpoints);\n\n // When both inputs are selected, allow expression trigger keys to switch the entire range to expression mode.\n if (bothInSelection && isExpressionTriggerKey(event)) {\n setValue(null);\n if (dateTimeToRef.current?.expressionInputRef) {\n dateTimeToRef.current.expressionInputRef.textContent = '';\n }\n }\n\n const switchFromToExpression =\n isInputInSelectionOrFocused(dateTimeFromRef, preRestoreEndpoints) &&\n fromInputIsIso;\n const switchToToExpression =\n isInputInSelectionOrFocused(dateTimeToRef, preRestoreEndpoints) &&\n toInputIsIso;\n if (\n isExpressionTriggerKey(event) &&\n (switchFromToExpression || switchToToExpression)\n ) {\n const char = event.key;\n\n // The primary input receives the character and focus.\n // When both are selected, 'from' receives the character and focus.\n const primaryRef = switchFromToExpression\n ? dateTimeFromRef\n : dateTimeToRef;\n\n primaryRef.current?.setExpressionValue(char);\n\n requestAnimationFrame(() => {\n focusExpressionInputAtEnd(primaryRef);\n });\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Handle regular character input when both inputs are selected\n if (\n isInputInSelectionOrFocused(dateTimeFromRef, preRestoreEndpoints) &&\n isInputInSelectionOrFocused(dateTimeToRef, preRestoreEndpoints) &&\n !fromInputIsIso &&\n !toInputIsIso &&\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n ) {\n const char = event.key;\n const fromExpressionElement =\n dateTimeFromRef.current?.expressionInputRef;\n const toExpressionElement = dateTimeToRef.current?.expressionInputRef;\n const selection = window.getSelection();\n\n if (\n fromExpressionElement &&\n toExpressionElement &&\n selection &&\n selection.rangeCount > 0 &&\n !selection.isCollapsed\n ) {\n const range = selection.getRangeAt(0);\n const fromValue = fromExpressionElement.textContent ?? '';\n const toValue = toExpressionElement.textContent ?? '';\n\n const fromStart = fromExpressionElement.contains(range.startContainer)\n ? getOffsetWithinElement(\n fromExpressionElement,\n range.startContainer,\n range.startOffset,\n )\n : 0;\n const toEnd = toExpressionElement.contains(range.endContainer)\n ? getOffsetWithinElement(\n toExpressionElement,\n range.endContainer,\n range.endOffset,\n )\n : toValue.length;\n\n dateTimeFromRef.current?.setExpressionValue(\n `${fromValue.slice(0, fromStart)}${char}`,\n );\n dateTimeToRef.current?.setExpressionValue(toValue.slice(toEnd));\n\n requestAnimationFrame(() => {\n focusExpressionInputAtEnd(dateTimeFromRef);\n });\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n // Replace the selected expression in \"from\" and keep \"to\" unchanged.\n dateTimeFromRef.current?.setExpressionValue(char);\n\n requestAnimationFrame(() => {\n focusExpressionInputAtEnd(dateTimeFromRef);\n });\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n handleSelectionKeyDown(event);\n },\n [\n disabled,\n readOnly,\n handleSelectionKeyDown,\n dateTimeFromRef,\n dateTimeToRef,\n setValue,\n ],\n );\n\n // Move from the last \"from\" segment to the first \"to\" segment.\n const handleFromTrailingEdge = useCallback(() => {\n dateTimeToRef.current?.focus?.();\n }, []);\n\n // Move from the first \"to\" segment to the last \"from\" segment.\n const handleToLeadingEdge = useCallback(() => {\n dateTimeFromRef.current?.focusLast();\n }, [dateTimeFromRef]);\n\n // Carry trailing overflow from \"from\" into the first \"to\" segment.\n const handleFromTrailingOverflow = useCallback(\n (overflowChar: string) => {\n const handlers = Array.from(\n dateTimeToRef.current?.spinButtonHandlers?.values() ?? [],\n ).filter((h): h is SpinButtonHandler => h !== null && h !== undefined);\n\n const firstHandler = handlers[0];\n if (!firstHandler) {\n return;\n }\n\n if (value?.to?.type === 'expression' || value?.to === null) {\n dateTimeToRef.current?.setExpressionValue(overflowChar);\n requestAnimationFrame(() => {\n const exprEl = dateTimeToRef.current?.expressionInputRef;\n if (exprEl) {\n // Focus first so that expressionOnFocusHandler fires and selects all,\n // then immediately collapse the selection to the end so the cursor\n // lands after the overflow character instead of selecting everything.\n exprEl.focus();\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n range.selectNodeContents(exprEl);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n });\n return;\n }\n\n if (firstHandler.type === 'number') {\n firstHandler.applyText(overflowChar, true);\n firstHandler.element.current?.focus();\n firstHandler.setSelection({ start: 0, end: 0, rtl: true });\n }\n },\n [value?.to],\n );\n\n return (\n <Flex\n ref={rootRef}\n flexDirection=\"column\"\n data-testid={dataTestId}\n style={consumerStyle}\n className={consumerClassName}\n {...ariaProps}\n {...behavioralTrackingProps}\n data-dt-component={COMPONENT_NAME}\n >\n <FormFieldMessageContext.Provider value={formFieldMessageContextValue}>\n <InputGroup style={{ gridTemplateColumns: '1fr auto' }}>\n <Flex\n ref={touchedContainerRef}\n className={clsx(\n inputGroupClassName,\n dateTimePicker({\n readOnly,\n showError,\n disabled,\n type: 'datetime',\n }),\n textStyle({ textStyle: 'base' }),\n fieldTokens({\n color: showError ? 'critical' : 'neutral',\n disabled: disabledOrAriaDisabled,\n variant: 'emphasized',\n }),\n focusClassName,\n styles.dateTimeRange({\n showError,\n disabled: disabledOrAriaDisabled,\n readOnly: readOnly,\n }),\n )}\n onCopyCapture={onTimeframeCopyCapture}\n onCutCapture={onCutCapture}\n onPasteCapture={onPasteCapture}\n onBlur={(event) => {\n // onFocus synchronously redirects focus from the container to a spin button,\n // causing a spurious onBlur; rAF defers the call until focus has settled.\n requestAnimationFrame(() => {\n onBlur?.(event);\n });\n if (touchedContainerRef.current?.contains(event.relatedTarget)) {\n return;\n }\n // Surface the validation state only on the first touch; later\n // updates are reported via the `change` trigger.\n if (!isTouched) {\n const blurKey = getErrorKey();\n emitValidationState(\n getValidationState(\n blurKey !== undefined\n ? getValidityStateKeyForTimeError(blurKey)\n : undefined,\n 'blur',\n getValidationMessage(blurKey),\n id ? [id] : [],\n ),\n );\n }\n }}\n onInput={() => {\n setHasInputContent(\n !!dateTimeFromRef.current?.expressionInputRef?.textContent ||\n !!dateTimeToRef.current?.expressionInputRef?.textContent,\n );\n }}\n tabIndex={disabled ? undefined : 0}\n onMouseDown={onMouseDown}\n onContextMenu={onContextMenu}\n onKeyDownCapture={(e) => {\n // Handles undo for from and to inputs with Ctrl+Z.\n // Uses capture phase so it fires before the input-level undo handler.\n onUndoPasteKeyDown(e);\n }}\n onKeyDown={onKeyDown}\n onFocus={(e: FocusEvent) => {\n // Forward the focus only if it is coming from outside this component.\n // Focus the first spin button with textContent; otherwise, focus the input.\n\n if (!rootRef.current?.contains(e.relatedTarget)) {\n focusDateTimeInput(e, dateTimeFromRef, dateTimeToRef);\n }\n }}\n >\n <span className={styles.scrollContainer}>\n <DateTimeInput\n ref={dateTimeFromRef}\n className={styles.dateTimeInput}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder.from}\n name={name === undefined ? undefined : `${name}-from`}\n // Maintains its own state to separate single and range value manipulations\n value={value === null ? null : value.from}\n onChange={(newValue) => {\n if (typeof newValue !== 'string') {\n setValue({ from: newValue ?? null });\n }\n }}\n aria-label={dateTimeFromLabel}\n aria-disabled={ariaDisabled}\n required={required}\n controlId={id}\n inputProps={inputProps}\n onTrailingEdge={handleFromTrailingEdge}\n onTrailingOverflow={handleFromTrailingOverflow}\n partialTimeAnchorDate={value?.to?.absoluteDate || undefined}\n onPasteComplete={() => {\n dateTimeToRef.current?.focus?.();\n }}\n />\n\n <span className={styles.timeframeSeparator}>\u2192</span>\n <DateTimeInput\n ref={dateTimeToRef}\n className={styles.dateTimeInput}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder.to}\n name={name === undefined ? undefined : `${name}-to`}\n // Maintains its own state to separate single and range value manipulations\n value={value === null ? null : value.to}\n onChange={(newValue) => {\n if (typeof newValue !== 'string') {\n setValue({ to: newValue ?? null });\n }\n }}\n aria-label={dateTimeToLabel}\n aria-disabled={ariaDisabled}\n required={required}\n onLeadingEdge={handleToLeadingEdge}\n dateOnlyPasteAnchor=\"endOfDay\"\n partialTimeAnchorDate={value?.from?.absoluteDate || undefined}\n onPasteComplete={() => {\n requestAnimationFrame(() => {\n dateTimeToRef.current?.focusLast();\n });\n }}\n />\n </span>\n {!readOnly &&\n !disabledOrAriaDisabled &&\n ((value &&\n (value.from?.value !== '' || value.to?.value !== '')) ||\n hasInputContent) && (\n <Button\n onFocus={() => {\n formMessageDispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n }}\n onClick={() => {\n setValue(null);\n if (dateTimeFromRef.current?.expressionInputRef) {\n dateTimeFromRef.current.expressionInputRef.textContent =\n '';\n }\n if (dateTimeToRef.current?.expressionInputRef) {\n dateTimeToRef.current.expressionInputRef.textContent = '';\n }\n setHasInputContent(false);\n requestAnimationFrame(() => {\n dateTimeFromRef.current?.expressionInputRef?.focus();\n });\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n }\n }}\n className={clearIconButton}\n color={showError ? 'critical' : 'neutral'}\n size=\"condensed\"\n aria-label={clearButtonLabel}\n >\n <XmarkIcon />\n </Button>\n )}\n </Flex>\n <DateRangeSelector\n ref={dateRangeSelectorRef}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n readOnly={readOnly}\n error={showError}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n />\n </InputGroup>\n </FormFieldMessageContext.Provider>\n </Flex>\n );\n});\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import clsx from 'clsx';\nimport {\n type FocusEvent,\n forwardRef,\n type KeyboardEvent as ReactKeyboardEvent,\n type RefObject,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { XmarkIcon } from '@dynatrace/strato-icons';\n\nimport { DateRangeSelector } from './DateRangeSelector.js';\nimport { DateTimeInput } from './DateTimeInput.js';\nimport * as styles from './DateTimeRangePicker.sty.js';\nimport { isExpressionTriggerKey } from './expression-trigger-helpers.js';\nimport { useDateTimeRangePicker } from './hooks/useDateTimeRangePicker.js';\nimport { onTimeframeCopyCapture } from './selection-copy-helpers.js';\nimport {\n peekPreRestoreEndpoints,\n type SelectionEndpoints,\n} from './selection-helpers.js';\nimport type {\n DateTimeRangePickerProps,\n DateTimeRangePickerRef,\n} from './types.js';\nimport { DateRangeSelectorRef, DateTimeInputRef } from './types.js';\nimport { useSelectionInteractionHandlers } from './useSelectionInteractionHandlers.js';\nimport { Button } from '../../buttons/button/Button.js';\nimport { useAriaLabelingProps } from '../../core/hooks/useAriaLabelingProps.js';\nimport { useBehavioralTrackingProps } from '../../core/hooks/useBehavioralTrackingProps.js';\nimport { useFocusRing } from '../../core/hooks/useFocusRing.js';\nimport { useId } from '../../core/hooks/useId.js';\nimport { TimeErrorKey } from '../../core/time/shared.types.js';\nimport { useDateTimeRangePickerStore } from '../../core/time/timeframeStore/useTimeframeStore.js';\nimport {\n formatTimeValidationMessage,\n getValidityStateKeyForTimeError,\n validate,\n} from '../../core/time/validation.js';\nimport { Flex } from '../../layouts/flex/Flex.js';\nimport { inputGroupClassName } from '../../layouts/input-group/InputGroup.sty.js';\nimport { InputGroup } from '../../layouts/input-group/InputGroup.js';\nimport { fieldTokens } from '../../styles/field.sty.js';\nimport { textStyle } from '../../styles/textStyle.sty.js';\nimport {\n clearIconButton,\n dateTimePicker,\n} from '../date-time-picker/DateTimePicker.sty.js';\nimport { focusDateTimeInput } from '../date-time-picker/utils/focusDateTimeInput.js';\nimport { FormFieldMessageContext } from '../forms-core/contexts/FormFieldMessageContext.js';\nimport type { UseFormControlReturnType } from '../forms-core/hooks/useFormControl.js';\nimport { FormFieldMessagesAction } from '../forms-core/state/formfield-messages-state-reducer.js';\nimport { useContainerFocus } from '../hooks/useContainerFocus.js';\nimport { SpinButtonHandler } from '../spin-buttons/spin-button-group/types.js';\nimport {\n type ValidationState,\n type ValidationTrigger,\n} from '../validation/types.js';\nimport { useCustomMessageEmitter } from '../validation/useCustomMessageEmitter.js';\nimport { useValidationStateEmitter } from '../validation/useValidationStateEmitter.js';\nimport { getValidationState } from '../validation/validation-builders.js';\n\n/**\n * Returns true if a given DateTimeInput element contains the active (focused)\n * element *or* the window selection intersects it.\n *\n * The focus-based check covers the common case where a single spin button is\n * focused \u2013 including empty (placeholder) spin buttons whose `selectAll()` is\n * a no-op and therefore leave the window selection collapsed.\n *\n * The selection-based check covers cross-input scenarios such as Ctrl+A or\n * drag-select spanning both \"from\" and \"to\" inputs.\n */\nfunction isInputInSelectionOrFocused(\n ref: RefObject<DateTimeInputRef | null>,\n preRestoreEndpoints?: SelectionEndpoints,\n): boolean {\n const element = ref.current?.element;\n if (!element) {\n return false;\n }\n\n if (element.contains(document.activeElement)) {\n return true;\n }\n\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0 && !selection.isCollapsed) {\n if (selection.getRangeAt(0).intersectsNode(element)) {\n return true;\n }\n }\n\n // Safari clips the live selection to the active CE host after contenteditable\n // is re-attached in the keydown capture phase. Fall back to the pre-restore\n // endpoints stashed by deferContentEditableRestore, which still span both inputs.\n return (\n !!preRestoreEndpoints &&\n (element.contains(preRestoreEndpoints.anchorNode) ||\n element.contains(preRestoreEndpoints.focusNode))\n );\n}\n\nfunction focusExpressionInputAtEnd(\n ref: RefObject<DateTimeInputRef | null>,\n): void {\n const expressionElement = ref.current?.expressionInputRef;\n if (!expressionElement) {\n return;\n }\n\n expressionElement.focus();\n\n const selection = window.getSelection();\n if (!selection) {\n return;\n }\n\n const range = document.createRange();\n range.selectNodeContents(expressionElement);\n range.collapse(false);\n selection.removeAllRanges();\n selection.addRange(range);\n}\n\nfunction getOffsetWithinElement(\n element: HTMLElement,\n container: Node,\n offset: number,\n): number {\n const range = document.createRange();\n range.selectNodeContents(element);\n range.setEnd(container, offset);\n return range.toString().length;\n}\n\n/**@internal */\nexport const DateTimeRangePickerRoot = forwardRef<\n DateTimeRangePickerRef | null,\n Omit<\n DateTimeRangePickerProps,\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'disabled'\n | 'required'\n | 'id'\n | 'aria-disabled'\n | 'readOnly'\n | 'controlState'\n > & {\n formControl: UseFormControlReturnType;\n shouldSuppressBlur?: (relatedTarget: Element | null) => boolean;\n }\n>((props, forwardedRef) => {\n const {\n name,\n style: consumerStyle,\n className: consumerClassName,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n placeholder: placeholderProp,\n onBlur,\n onFocus,\n formControl,\n onValidityChange,\n shouldSuppressBlur,\n ...remainingProps\n } = props;\n const {\n id,\n disabled,\n required,\n readOnly = false,\n ariaDisabled,\n inputProps,\n showError,\n messageDispatch: formMessageDispatch,\n } = formControl;\n const [behavioralTrackingProps] = useBehavioralTrackingProps(remainingProps);\n const ariaProps = useAriaLabelingProps(remainingProps);\n const COMPONENT_NAME = 'DateTimeRangePicker';\n\n const rootRef = useRef<HTMLDivElement>(null);\n const touchedContainerRef = useRef<HTMLDivElement>(null);\n const dateTimeToRef = useRef<DateTimeInputRef>(null);\n const dateRangeSelectorRef = useRef<DateRangeSelectorRef>(null);\n\n const ownerId = useId();\n\n const [hasInputContent, setHasInputContent] = useState(false);\n\n const setValue = useDateTimeRangePickerStore(\n (state) => state.setDateTimeRangePickerTimeframe,\n );\n const value = useDateTimeRangePickerStore(\n (state) => state.dateTimeRangePickerTimeframe,\n );\n const dateTimeFromRef = useDateTimeRangePickerStore(\n (state) => state.dateTimeFromRef,\n );\n const precision = useDateTimeRangePickerStore((state) => state.precision);\n const min = useDateTimeRangePickerStore((state) => state.min);\n const max = useDateTimeRangePickerStore((state) => state.max);\n const formatString = useDateTimeRangePickerStore(\n (state) => state.formatString,\n );\n\n const disabledOrAriaDisabled = disabled || ariaDisabled || false;\n\n const { placeholder, onPasteCapture, onUndoPasteKeyDown } =\n useDateTimeRangePicker({\n placeholder: placeholderProp,\n readOnly,\n dateTimeFromRef,\n dateTimeToRef,\n });\n\n const intl = useIntl();\n\n // Track the last error key returned by the imperative validate() so we can\n // pass it as `formerError` on the next call and clean up stale messages.\n const lastValidationErrorRef = useRef<TimeErrorKey | undefined>(undefined);\n const _emitValidationState = useValidationStateEmitter(onValidityChange);\n\n const buildValidationState = useCallback(\n (\n trigger: ValidationTrigger,\n key: TimeErrorKey | undefined,\n ): ValidationState => {\n if (key === undefined) {\n return { status: 'done', trigger, errors: [] };\n }\n return getValidationState(\n getValidityStateKeyForTimeError(key),\n trigger,\n formatTimeValidationMessage(key, intl, {\n value,\n min,\n max,\n precision,\n expectedFormat: formatString,\n }),\n id ? [id] : [],\n );\n },\n [intl, value, min, max, precision, formatString, id],\n );\n\n const emitValidationState = useCustomMessageEmitter(\n _emitValidationState,\n () => buildValidationState('manual', getErrorKey()),\n );\n\n // Provide root and input element reference and functions to interact with the calendar overlay\n useImperativeHandle(\n forwardedRef,\n (): DateTimeRangePickerRef => ({\n element: rootRef.current,\n inputRef: {\n from: dateTimeFromRef.current?.inputRef,\n to: dateTimeToRef.current?.inputRef,\n },\n open: () => dateRangeSelectorRef.current?.open(),\n close: () => dateRangeSelectorRef.current?.close(),\n focus: () => dateTimeFromRef.current?.focus?.(),\n getCurrentValue: () => ({\n from: value?.from ?? null,\n to: value?.to ?? null,\n }),\n validate() {\n lastValidationErrorRef.current = validate(value, min, max, {\n formMessageDispatch,\n formerError: lastValidationErrorRef.current,\n precision,\n showError: true,\n checkOrder: true,\n ref: rootRef,\n expectedFormat: formatString,\n valueMode: 'dateTimePicker',\n required,\n });\n formMessageDispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n emitValidationState(\n buildValidationState('manual', lastValidationErrorRef.current),\n );\n },\n // DEPRECATION: [APPDEV-18178] BREAKING-CHANGE: Remove validateAsync() and change validate() to return Promise<ValidationState>.\n validateAsync: async () => {\n lastValidationErrorRef.current = validate(value, min, max, {\n formMessageDispatch,\n formerError: lastValidationErrorRef.current,\n precision,\n showError: true,\n checkOrder: true,\n ref: rootRef,\n expectedFormat: formatString,\n valueMode: 'dateTimePicker',\n required,\n });\n formMessageDispatch?.({\n type: FormFieldMessagesAction.SETISTOUCHED,\n payload: { isTouched: true },\n });\n return emitValidationState(\n buildValidationState('manual', lastValidationErrorRef.current),\n );\n },\n }),\n [\n value,\n min,\n max,\n formMessageDispatch,\n precision,\n formatString,\n required,\n dateTimeFromRef,\n emitValidationState,\n buildValidationState,\n ],\n );\n\n // Computes the current range error key without dispatching messages, used to\n // keep `onValidityChange` in sync on automatic (change / blur) updates.\n const getErrorKey = useCallback(\n () =>\n validate(value, min, max, {\n precision,\n checkOrder: true,\n ref: rootRef,\n expectedFormat: formatString,\n valueMode: 'dateTimePicker',\n required,\n }),\n [value, min, max, precision, formatString, required],\n );\n\n const { containerClassName, ...containerFocusProps } = useContainerFocus({\n onFocus,\n onBlur,\n disabled,\n overlayOwnerId: ownerId,\n emitValidationState,\n getBlurValidationState: () => buildValidationState('blur', getErrorKey()),\n shouldSuppressBlur,\n });\n\n // Surface validation state on every value change (`change` trigger).\n useEffect(() => {\n emitValidationState(buildValidationState('change', getErrorKey()));\n }, [value, emitValidationState, buildValidationState, getErrorKey]);\n\n const { focusClassName } = useFocusRing({\n focusWithin: true,\n ignoreModality: true,\n isMinimal: false,\n disabled,\n color: showError ? 'critical' : 'neutral',\n });\n\n const dateTimeFromLabel = intl.formatMessage({\n defaultMessage: 'DateTime from',\n id: 'fMy6q/KKOqbvCA3H',\n description:\n 'Textbox to enter a relative or absolute timeframe from value.',\n });\n\n const dateTimeToLabel = intl.formatMessage({\n defaultMessage: 'DateTime to',\n id: 'uuhhc3nEZptwtV2E',\n description: 'Textbox to enter a relative or absolute timeframe to value.',\n });\n const clearButtonLabel = intl.formatMessage({\n defaultMessage: 'Clear date and time range',\n id: 'zX4r/Y8gJL1C8+5e',\n description: 'Aria label for the DateTimeRangePicker clear button.',\n });\n const formFieldMessageContextValue = useMemo(\n () => ({\n state: {\n customMessages: [],\n formControlMessages: [],\n showError,\n },\n }),\n [showError],\n );\n\n const {\n onMouseDown,\n onKeyDown: handleSelectionKeyDown,\n onContextMenu,\n onCutCapture,\n } = useSelectionInteractionHandlers(\n touchedContainerRef,\n useCallback(() => {\n focusDateTimeInput(null, dateTimeFromRef, dateTimeToRef);\n }, [dateTimeFromRef]),\n dateTimeFromRef,\n dateTimeToRef,\n );\n\n const onKeyDown = useCallback(\n (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (disabled || readOnly) {\n handleSelectionKeyDown(event);\n return;\n }\n\n // Safari: Reads the stash set by deferContentEditableRestore\n const preRestoreEndpoints = peekPreRestoreEndpoints(\n event.currentTarget as HTMLElement,\n );\n\n const fromInputIsIso =\n dateTimeFromRef.current?.element?.getAttribute('data-valuetype') ===\n 'iso8601';\n const toInputIsIso =\n dateTimeToRef.current?.element?.getAttribute('data-valuetype') ===\n 'iso8601';\n\n const bothInSelection =\n isInputInSelectionOrFocused(dateTimeFromRef, preRestoreEndpoints) &&\n isInputInSelectionOrFocused(dateTimeToRef, preRestoreEndpoints);\n\n // When both inputs are selected, allow expression trigger keys to switch the entire range to expression mode.\n if (bothInSelection && isExpressionTriggerKey(event)) {\n setValue(null);\n if (dateTimeToRef.current?.expressionInputRef) {\n dateTimeToRef.current.expressionInputRef.textContent = '';\n }\n }\n\n const switchFromToExpression =\n isInputInSelectionOrFocused(dateTimeFromRef, preRestoreEndpoints) &&\n fromInputIsIso;\n const switchToToExpression =\n isInputInSelectionOrFocused(dateTimeToRef, preRestoreEndpoints) &&\n toInputIsIso;\n if (\n isExpressionTriggerKey(event) &&\n (switchFromToExpression || switchToToExpression)\n ) {\n const char = event.key;\n\n // The primary input receives the character and focus.\n // When both are selected, 'from' receives the character and focus.\n const primaryRef = switchFromToExpression\n ? dateTimeFromRef\n : dateTimeToRef;\n\n primaryRef.current?.setExpressionValue(char);\n\n requestAnimationFrame(() => {\n focusExpressionInputAtEnd(primaryRef);\n });\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n // Handle regular character input when both inputs are selected\n if (\n isInputInSelectionOrFocused(dateTimeFromRef, preRestoreEndpoints) &&\n isInputInSelectionOrFocused(dateTimeToRef, preRestoreEndpoints) &&\n !fromInputIsIso &&\n !toInputIsIso &&\n event.key.length === 1 &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.altKey\n ) {\n const char = event.key;\n const fromExpressionElement =\n dateTimeFromRef.current?.expressionInputRef;\n const toExpressionElement = dateTimeToRef.current?.expressionInputRef;\n const selection = window.getSelection();\n\n if (\n fromExpressionElement &&\n toExpressionElement &&\n selection &&\n selection.rangeCount > 0 &&\n !selection.isCollapsed\n ) {\n const range = selection.getRangeAt(0);\n const fromValue = fromExpressionElement.textContent ?? '';\n const toValue = toExpressionElement.textContent ?? '';\n\n const fromStart = fromExpressionElement.contains(range.startContainer)\n ? getOffsetWithinElement(\n fromExpressionElement,\n range.startContainer,\n range.startOffset,\n )\n : 0;\n const toEnd = toExpressionElement.contains(range.endContainer)\n ? getOffsetWithinElement(\n toExpressionElement,\n range.endContainer,\n range.endOffset,\n )\n : toValue.length;\n\n dateTimeFromRef.current?.setExpressionValue(\n `${fromValue.slice(0, fromStart)}${char}`,\n );\n dateTimeToRef.current?.setExpressionValue(toValue.slice(toEnd));\n\n requestAnimationFrame(() => {\n focusExpressionInputAtEnd(dateTimeFromRef);\n });\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n // Replace the selected expression in \"from\" and keep \"to\" unchanged.\n dateTimeFromRef.current?.setExpressionValue(char);\n\n requestAnimationFrame(() => {\n focusExpressionInputAtEnd(dateTimeFromRef);\n });\n\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n handleSelectionKeyDown(event);\n },\n [\n disabled,\n readOnly,\n handleSelectionKeyDown,\n dateTimeFromRef,\n dateTimeToRef,\n setValue,\n ],\n );\n\n // Move from the last \"from\" segment to the first \"to\" segment.\n const handleFromTrailingEdge = useCallback(() => {\n dateTimeToRef.current?.focus?.();\n }, []);\n\n // Move from the first \"to\" segment to the last \"from\" segment.\n const handleToLeadingEdge = useCallback(() => {\n dateTimeFromRef.current?.focusLast();\n }, [dateTimeFromRef]);\n\n // Carry trailing overflow from \"from\" into the first \"to\" segment.\n const handleFromTrailingOverflow = useCallback(\n (overflowChar: string) => {\n const handlers = Array.from(\n dateTimeToRef.current?.spinButtonHandlers?.values() ?? [],\n ).filter((h): h is SpinButtonHandler => h !== null && h !== undefined);\n\n const firstHandler = handlers[0];\n if (!firstHandler) {\n return;\n }\n\n if (value?.to?.type === 'expression' || value?.to === null) {\n dateTimeToRef.current?.setExpressionValue(overflowChar);\n requestAnimationFrame(() => {\n const exprEl = dateTimeToRef.current?.expressionInputRef;\n if (exprEl) {\n // Focus first so that expressionOnFocusHandler fires and selects all,\n // then immediately collapse the selection to the end so the cursor\n // lands after the overflow character instead of selecting everything.\n exprEl.focus();\n const sel = window.getSelection();\n if (sel) {\n const range = document.createRange();\n range.selectNodeContents(exprEl);\n range.collapse(false);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n }\n });\n return;\n }\n\n if (firstHandler.type === 'number') {\n firstHandler.applyText(overflowChar, true);\n firstHandler.element.current?.focus();\n firstHandler.setSelection({ start: 0, end: 0, rtl: true });\n }\n },\n [value?.to],\n );\n\n return (\n <Flex\n ref={rootRef}\n flexDirection=\"column\"\n data-testid={dataTestId}\n style={consumerStyle}\n className={clsx(containerClassName, consumerClassName)}\n {...ariaProps}\n {...behavioralTrackingProps}\n data-dt-component={COMPONENT_NAME}\n {...containerFocusProps}\n >\n <FormFieldMessageContext.Provider value={formFieldMessageContextValue}>\n <InputGroup style={{ gridTemplateColumns: '1fr auto' }}>\n <Flex\n ref={touchedContainerRef}\n className={clsx(\n inputGroupClassName,\n dateTimePicker({\n readOnly,\n showError,\n disabled,\n type: 'datetime',\n }),\n textStyle({ textStyle: 'base' }),\n fieldTokens({\n color: showError ? 'critical' : 'neutral',\n disabled: disabledOrAriaDisabled,\n variant: 'emphasized',\n }),\n focusClassName,\n styles.dateTimeRange({\n showError,\n disabled: disabledOrAriaDisabled,\n readOnly: readOnly,\n }),\n )}\n onCopyCapture={onTimeframeCopyCapture}\n onCutCapture={onCutCapture}\n onPasteCapture={onPasteCapture}\n onInput={() => {\n setHasInputContent(\n !!dateTimeFromRef.current?.expressionInputRef?.textContent ||\n !!dateTimeToRef.current?.expressionInputRef?.textContent,\n );\n }}\n tabIndex={disabled ? undefined : 0}\n onMouseDown={onMouseDown}\n onContextMenu={onContextMenu}\n onKeyDownCapture={(e) => {\n // Handles undo for from and to inputs with Ctrl+Z.\n // Uses capture phase so it fires before the input-level undo handler.\n onUndoPasteKeyDown(e);\n }}\n onKeyDown={onKeyDown}\n onFocus={(e: FocusEvent) => {\n // Forward the focus only if it is coming from outside this component.\n // Focus the first spin button with textContent; otherwise, focus the input.\n\n if (!rootRef.current?.contains(e.relatedTarget)) {\n focusDateTimeInput(e, dateTimeFromRef, dateTimeToRef);\n }\n }}\n >\n <span className={styles.scrollContainer}>\n <DateTimeInput\n ref={dateTimeFromRef}\n className={styles.dateTimeInput}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder.from}\n name={name === undefined ? undefined : `${name}-from`}\n // Maintains its own state to separate single and range value manipulations\n value={value === null ? null : value.from}\n onChange={(newValue) => {\n if (typeof newValue !== 'string') {\n setValue({ from: newValue ?? null });\n }\n }}\n aria-label={dateTimeFromLabel}\n aria-disabled={ariaDisabled}\n required={required}\n controlId={id}\n inputProps={inputProps}\n onTrailingEdge={handleFromTrailingEdge}\n onTrailingOverflow={handleFromTrailingOverflow}\n partialTimeAnchorDate={value?.to?.absoluteDate || undefined}\n onPasteComplete={() => {\n dateTimeToRef.current?.focus?.();\n }}\n />\n\n <span className={styles.timeframeSeparator}>\u2192</span>\n <DateTimeInput\n ref={dateTimeToRef}\n className={styles.dateTimeInput}\n disabled={disabled}\n readOnly={readOnly}\n placeholder={placeholder.to}\n name={name === undefined ? undefined : `${name}-to`}\n // Maintains its own state to separate single and range value manipulations\n value={value === null ? null : value.to}\n onChange={(newValue) => {\n if (typeof newValue !== 'string') {\n setValue({ to: newValue ?? null });\n }\n }}\n aria-label={dateTimeToLabel}\n aria-disabled={ariaDisabled}\n required={required}\n onLeadingEdge={handleToLeadingEdge}\n dateOnlyPasteAnchor=\"endOfDay\"\n partialTimeAnchorDate={value?.from?.absoluteDate || undefined}\n onPasteComplete={() => {\n requestAnimationFrame(() => {\n dateTimeToRef.current?.focusLast();\n });\n }}\n />\n </span>\n {!readOnly &&\n !disabledOrAriaDisabled &&\n ((value &&\n (value.from?.value !== '' || value.to?.value !== '')) ||\n hasInputContent) && (\n <Button\n onClick={() => {\n // Focus before state updates so the button blurs with relatedTarget =\n // expressionInputRef (inside boundary) rather than null (which would\n // fire a spurious onBlur when the button unmounts after the clear).\n dateTimeFromRef.current?.expressionInputRef?.focus();\n setValue(null);\n if (dateTimeFromRef.current?.expressionInputRef) {\n dateTimeFromRef.current.expressionInputRef.textContent =\n '';\n }\n if (dateTimeToRef.current?.expressionInputRef) {\n dateTimeToRef.current.expressionInputRef.textContent = '';\n }\n setHasInputContent(false);\n }}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n }\n }}\n className={clearIconButton}\n color={showError ? 'critical' : 'neutral'}\n size=\"condensed\"\n aria-label={clearButtonLabel}\n >\n <XmarkIcon />\n </Button>\n )}\n </Flex>\n <DateRangeSelector\n ref={dateRangeSelectorRef}\n disabled={disabled}\n aria-disabled={ariaDisabled}\n readOnly={readOnly}\n error={showError}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n overlayOwnerId={ownerId}\n />\n </InputGroup>\n </FormFieldMessageContext.Provider>\n </Flex>\n );\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -119,6 +119,8 @@ const useDateTimeInput = (props, expressionInputRef) => {
|
|
|
119
119
|
!expressionInputRef.current?.textContent
|
|
120
120
|
);
|
|
121
121
|
const [inputValue, setInputValue] = useState("");
|
|
122
|
+
const lastInputValueRef = useRef(inputValue);
|
|
123
|
+
lastInputValueRef.current = inputValue;
|
|
122
124
|
const pasteUndoRef = useRef(null);
|
|
123
125
|
useEffect(() => {
|
|
124
126
|
return () => {
|
|
@@ -149,7 +151,7 @@ const useDateTimeInput = (props, expressionInputRef) => {
|
|
|
149
151
|
value: spinButtonValue,
|
|
150
152
|
onChange: (newIsoDateTime) => {
|
|
151
153
|
const newValue = getTimeValue(newIsoDateTime ?? void 0, precision);
|
|
152
|
-
if (newValue === void 0) {
|
|
154
|
+
if (newValue === null || newValue === void 0) {
|
|
153
155
|
return;
|
|
154
156
|
}
|
|
155
157
|
if (isSwitchingToExpressionRef.current) {
|
|
@@ -165,6 +167,7 @@ const useDateTimeInput = (props, expressionInputRef) => {
|
|
|
165
167
|
onChange?.(newValue);
|
|
166
168
|
return;
|
|
167
169
|
}
|
|
170
|
+
setInputValue(newValue.value);
|
|
168
171
|
setValue(
|
|
169
172
|
(prevValue) => isEqualTimeValue(prevValue, newValue) ? prevValue : newValue
|
|
170
173
|
);
|
|
@@ -208,8 +211,15 @@ const useDateTimeInput = (props, expressionInputRef) => {
|
|
|
208
211
|
useEffect(() => {
|
|
209
212
|
const prevValue = prevValueRef.current;
|
|
210
213
|
prevValueRef.current = value;
|
|
214
|
+
const applyInputValue = (next) => {
|
|
215
|
+
if (lastInputValueRef.current === next) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
lastInputValueRef.current = next;
|
|
219
|
+
setInputValue(next);
|
|
220
|
+
};
|
|
211
221
|
if (value?.type === "iso8601" && !spinButtonsEmpty) {
|
|
212
|
-
|
|
222
|
+
applyInputValue(value.value);
|
|
213
223
|
}
|
|
214
224
|
if (!isControlled || typeof value === "string") {
|
|
215
225
|
return;
|
|
@@ -221,15 +231,17 @@ const useDateTimeInput = (props, expressionInputRef) => {
|
|
|
221
231
|
formatExpressionValue(null);
|
|
222
232
|
const input = expressionInputRef.current?.textContent;
|
|
223
233
|
setExpressionEmpty(input === "");
|
|
224
|
-
|
|
234
|
+
applyDateTime(null);
|
|
225
235
|
lastValidAbsoluteDateRef.current = null;
|
|
226
236
|
return;
|
|
227
237
|
}
|
|
228
238
|
if (value.absoluteDate === "") {
|
|
229
239
|
return;
|
|
230
240
|
}
|
|
231
|
-
|
|
232
|
-
|
|
241
|
+
if (valueType !== value.type) {
|
|
242
|
+
setValueType(value.type);
|
|
243
|
+
}
|
|
244
|
+
applyInputValue(value.value);
|
|
233
245
|
if (value.type === "expression") {
|
|
234
246
|
if (!isEqualTimeValue(prevValue ?? null, value)) {
|
|
235
247
|
formatExpressionValue(value);
|
|
@@ -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 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 === 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 // 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 if (value?.type === 'iso8601' && !spinButtonsEmpty) {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setInputValue(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 spinButtonHandlers.forEach((sb) => sb?.clearValue(true));\n lastValidAbsoluteDateRef.current = null;\n return;\n }\n\n // Skip values with empty absoluteDate \u2014 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 setValueType(value.type);\n setInputValue(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"],
|
|
5
|
-
"mappings": "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",
|
|
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"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["expressionEmpty", "value", "type"]
|
|
7
7
|
}
|
|
@@ -30,6 +30,10 @@ function useSelectionInteractionHandlers(touchedContainerRef, onFocusInput, date
|
|
|
30
30
|
if (event.button !== 0) {
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
|
+
const active = document.activeElement;
|
|
34
|
+
if (active instanceof HTMLElement && active !== event.currentTarget && active.hasAttribute("contenteditable") && event.currentTarget.contains(active)) {
|
|
35
|
+
event.currentTarget.focus();
|
|
36
|
+
}
|
|
33
37
|
contextMenuSelectionRef.current = null;
|
|
34
38
|
consumePreRestoreEndpoints(event.currentTarget);
|
|
35
39
|
const root = event.currentTarget;
|