@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.
Files changed (2537) hide show
  1. package/CHANGELOG.md +181 -0
  2. package/buttons/button/Button.css +15 -15
  3. package/buttons/button/Button.sty.js +4 -4
  4. package/buttons/intent-button/IntentButton.css +1 -1
  5. package/buttons/intent-button/IntentButton.sty.js +1 -1
  6. package/buttons/notify-button/NotifyButton.css +2 -2
  7. package/buttons/notify-button/NotifyButton.sty.js +2 -2
  8. package/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.css +2 -2
  9. package/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js +2 -2
  10. package/charts/core/components/annotations/AnnotationsAtom.css +1 -1
  11. package/charts/core/components/annotations/AnnotationsAtom.sty.js +1 -1
  12. package/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.css +1 -1
  13. package/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.sty.js +1 -1
  14. package/charts/core/components/annotations/components/overlays/AnnotationsOverlays.css +1 -1
  15. package/charts/core/components/annotations/components/overlays/AnnotationsOverlays.sty.js +1 -1
  16. package/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.css +1 -1
  17. package/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.sty.js +1 -1
  18. package/charts/core/components/annotations/components/tooltip/AnnotationsDefaultTooltipContent.js +0 -1
  19. package/charts/core/components/axes/Axis.css +1 -1
  20. package/charts/core/components/axes/Axis.sty.js +1 -1
  21. package/charts/core/components/axes/components/PanningControls/PanningControls.css +16 -16
  22. package/charts/core/components/axes/components/PanningControls/PanningControls.sty.js +2 -2
  23. package/charts/core/components/canvas/utils/canvas-color.js +4 -1
  24. package/charts/core/components/chart-grid/ChartGrid.css +3 -3
  25. package/charts/core/components/chart-grid/ChartGrid.sty.js +3 -3
  26. package/charts/core/components/chart-layout/ChartLayout.js +6 -0
  27. package/charts/core/components/chart-layout/components/styles.css +15 -15
  28. package/charts/core/components/chart-layout/components/styles.sty.js +4 -4
  29. package/charts/core/components/chart-layout/hooks/useAutomaticRatio.js +8 -3
  30. package/charts/core/components/chart-layout/types/chart-layout.d.ts +2 -2
  31. package/charts/core/components/chart-states/ChartState.css +4 -4
  32. package/charts/core/components/chart-states/ChartState.sty.js +4 -4
  33. package/charts/core/components/crosshair/components/Magnifier.css +7 -7
  34. package/charts/core/components/crosshair/components/Magnifier.sty.js +7 -7
  35. package/charts/core/components/interactions-overlay/InteractionsOverlay.css +5 -5
  36. package/charts/core/components/interactions-overlay/InteractionsOverlay.js +6 -2
  37. package/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js +2 -2
  38. package/charts/core/components/legend/categorical/ChartLegend.css +1 -1
  39. package/charts/core/components/legend/categorical/ChartLegend.sty.js +1 -1
  40. package/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.css +3 -3
  41. package/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js +3 -3
  42. package/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.css +17 -17
  43. package/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js +6 -6
  44. package/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.css +3 -3
  45. package/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.sty.js +1 -1
  46. package/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.css +8 -8
  47. package/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.sty.js +4 -4
  48. package/charts/core/components/legend/range/RangeLegend.css +3 -3
  49. package/charts/core/components/legend/range/RangeLegend.sty.js +1 -1
  50. package/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.css +2 -2
  51. package/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.sty.js +1 -1
  52. package/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.css +1 -1
  53. package/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.sty.js +1 -1
  54. package/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.css +3 -3
  55. package/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.sty.js +1 -1
  56. package/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.css +3 -3
  57. package/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.sty.js +1 -1
  58. package/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.css +5 -5
  59. package/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.sty.js +1 -1
  60. package/charts/core/components/loader-overlay/LoaderOverlay.css +2 -2
  61. package/charts/core/components/loader-overlay/LoaderOverlay.sty.js +2 -2
  62. package/charts/core/components/overlay-tooltip/components/global-actions/actions.css +4 -4
  63. package/charts/core/components/overlay-tooltip/components/global-actions/actions.sty.js +2 -2
  64. package/charts/core/components/overlay-tooltip/components/header/Header.css +6 -6
  65. package/charts/core/components/overlay-tooltip/components/header/Header.sty.js +6 -6
  66. package/charts/core/components/overlay-tooltip/components/series/SeriesItemContent.js +1 -3
  67. package/charts/core/components/overlay-tooltip/components/series/seriesSymbol.css +2 -2
  68. package/charts/core/components/overlay-tooltip/components/series/seriesSymbol.sty.js +2 -2
  69. package/charts/core/components/overlay-tooltip/tooltip.css +54 -54
  70. package/charts/core/components/overlay-tooltip/tooltip.sty.js +39 -39
  71. package/charts/core/components/overlay-tooltip/types.d.ts +0 -1
  72. package/charts/core/components/overlays/ChartOverlaysBorder.css +6 -6
  73. package/charts/core/components/overlays/ChartOverlaysBorder.sty.js +6 -6
  74. package/charts/core/components/selection-area/SelectionArea.css +9 -9
  75. package/charts/core/components/selection-area/SelectionArea.sty.js +4 -4
  76. package/charts/core/components/shape/BubbleShape/BubbleShape.css +5 -5
  77. package/charts/core/components/shape/BubbleShape/BubbleShape.sty.js +3 -3
  78. package/charts/core/components/shape/EmojiShape/EmojiShape.css +3 -3
  79. package/charts/core/components/shape/EmojiShape/EmojiShape.sty.js +1 -1
  80. package/charts/core/components/shape/IconShape/IconShape.css +3 -3
  81. package/charts/core/components/shape/IconShape/IconShape.sty.js +1 -1
  82. package/charts/core/components/shape/styles/DataPointShape.css +8 -8
  83. package/charts/core/components/shape/styles/DataPointShape.sty.js +4 -4
  84. package/charts/core/components/shared-chart-interactions/SharedChartInteractions.css +1 -1
  85. package/charts/core/components/shared-chart-interactions/SharedChartInteractions.sty.js +1 -1
  86. package/charts/core/components/single-value-renderer/SingleValueRenderer.css +5 -5
  87. package/charts/core/components/single-value-renderer/SingleValueRenderer.sty.js +5 -5
  88. package/charts/core/components/single-value-renderer/components/ContentGrid.css +1 -1
  89. package/charts/core/components/single-value-renderer/components/ContentGrid.sty.js +1 -1
  90. package/charts/core/components/single-value-renderer/components/Icon.css +3 -3
  91. package/charts/core/components/single-value-renderer/components/Icon.sty.js +2 -2
  92. package/charts/core/components/single-value-renderer/components/Label.css +1 -1
  93. package/charts/core/components/single-value-renderer/components/Label.sty.js +1 -1
  94. package/charts/core/components/single-value-renderer/components/SingleValueToolbar.css +1 -1
  95. package/charts/core/components/single-value-renderer/components/SingleValueToolbar.sty.js +1 -1
  96. package/charts/core/components/single-value-renderer/components/Value.css +5 -5
  97. package/charts/core/components/single-value-renderer/components/Value.sty.js +3 -3
  98. package/charts/core/components/single-value-renderer/components/trend/Trend.css +3 -3
  99. package/charts/core/components/single-value-renderer/components/trend/Trend.sty.js +3 -3
  100. package/charts/core/components/single-value-renderer/components/trend/components/Icon.css +2 -2
  101. package/charts/core/components/single-value-renderer/components/trend/components/Icon.sty.js +1 -1
  102. package/charts/core/components/sparkline-display/Sparkline.css +6 -6
  103. package/charts/core/components/sparkline-display/Sparkline.sty.js +2 -2
  104. package/charts/core/components/text-ellipsis/ChartTextEllipsis.css +7 -7
  105. package/charts/core/components/text-ellipsis/ChartTextEllipsis.sty.js +3 -3
  106. package/charts/core/components/threshold-bar/styles.css +9 -9
  107. package/charts/core/components/threshold-bar/styles.sty.js +2 -2
  108. package/charts/core/components/toolbar/ChartToolbarRenderer.css +16 -16
  109. package/charts/core/components/toolbar/ChartToolbarRenderer.js +4 -2
  110. package/charts/core/components/toolbar/ChartToolbarRenderer.sty.js +8 -8
  111. package/charts/core/components/toolbar/components/ChartDataMenu.css +2 -2
  112. package/charts/core/components/toolbar/components/ChartDataMenu.sty.js +1 -1
  113. package/charts/core/components/toolbar/components/Control.css +20 -19
  114. package/charts/core/components/toolbar/components/Control.css.d.ts +1 -1
  115. package/charts/core/components/toolbar/components/Control.d.ts +13 -5
  116. package/charts/core/components/toolbar/components/Control.js +10 -4
  117. package/charts/core/components/toolbar/components/Control.sty.js +6 -6
  118. package/charts/core/components/toolbar/components/ToolbarMenu.css +4 -4
  119. package/charts/core/components/toolbar/components/ToolbarMenu.sty.js +2 -2
  120. package/charts/core/components/toolbar/styles.css +3 -0
  121. package/charts/core/components/toolbar/styles.css.d.ts +2 -0
  122. package/charts/{meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.sty.js → core/components/toolbar/styles.sty.js} +6 -6
  123. package/charts/core/components/toolbar/types.d.ts +2 -0
  124. package/charts/core/components/tooltip/ChartTooltip/ChartTooltip.css +6 -6
  125. package/charts/core/components/tooltip/ChartTooltip/ChartTooltip.sty.js +2 -2
  126. package/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.css +8 -8
  127. package/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.sty.js +3 -3
  128. package/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.css +2 -2
  129. package/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.sty.js +1 -1
  130. package/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.css +1 -1
  131. package/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.sty.js +1 -1
  132. package/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.css +6 -6
  133. package/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.sty.js +2 -2
  134. package/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.css +7 -7
  135. package/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.sty.js +6 -6
  136. package/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.css +1 -1
  137. package/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.sty.js +1 -1
  138. package/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.css +1 -1
  139. package/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.sty.js +1 -1
  140. package/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.css +2 -2
  141. package/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.sty.js +1 -1
  142. package/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.css +1 -1
  143. package/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.sty.js +1 -1
  144. package/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.css +3 -3
  145. package/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.sty.js +2 -2
  146. package/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.css +1 -1
  147. package/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.sty.js +1 -1
  148. package/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.css +2 -2
  149. package/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.sty.js +2 -2
  150. package/charts/core/components/tooltip/shared/styles/SeriesBasedContent.css +12 -12
  151. package/charts/core/components/tooltip/shared/styles/SeriesBasedContent.sty.js +7 -7
  152. package/charts/core/components/tooltip/shared/styles/TooltipBody.css +1 -1
  153. package/charts/core/components/tooltip/shared/styles/TooltipBody.sty.js +1 -1
  154. package/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.css +1 -1
  155. package/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.sty.js +1 -1
  156. package/charts/core/components/tooltip-atoms/components/styles.css +4 -4
  157. package/charts/core/components/tooltip-atoms/components/styles.sty.js +4 -4
  158. package/charts/core/components/zoom/ZoomCursors.css +2 -2
  159. package/charts/core/components/zoom/ZoomCursors.sty.js +3 -3
  160. package/charts/core/context/ChartVariantContext.d.ts +11 -0
  161. package/charts/core/context/ChartVariantContext.js +24 -0
  162. package/charts/core/types/chart-data.d.ts +7 -0
  163. package/charts/core/typographyStyles.css +1 -1
  164. package/charts/core/typographyStyles.sty.js +1 -1
  165. package/charts/core/utils/binary-search.d.ts +2 -2
  166. package/charts/core/utils/find-matching-threshold.js +1 -1
  167. package/charts/core/utils/get-primary-modifier-key.d.ts +8 -0
  168. package/charts/core/utils/{get-key-shortcut-by-agent.js → get-primary-modifier-key.js} +6 -14
  169. package/charts/flame/flame-chart/FlameChart.d.ts +5 -0
  170. package/charts/flame/flame-chart/FlameChart.js +164 -0
  171. package/charts/flame/flame-graph/FlameGraph.d.ts +5 -0
  172. package/charts/flame/flame-graph/FlameGraph.js +165 -0
  173. package/charts/flame/shared/constants.d.ts +24 -0
  174. package/charts/flame/shared/constants.js +40 -0
  175. package/charts/flame/shared/types/flame-chart.d.ts +81 -0
  176. package/charts/flame/shared/types/flame-chart.js +15 -0
  177. package/charts/flame/shared/utils/aggregate-spans-to-flame-graph.d.ts +21 -0
  178. package/charts/flame/shared/utils/aggregate-spans-to-flame-graph.js +114 -0
  179. package/charts/flame/shared/utils/format-flame-value.d.ts +9 -0
  180. package/charts/flame/shared/utils/format-flame-value.js +28 -0
  181. package/charts/flame/shared/utils/order-spans-hierarchically.d.ts +20 -0
  182. package/charts/flame/shared/utils/order-spans-hierarchically.js +81 -0
  183. package/charts/gantt-chart/GanttChartLine.css +1 -1
  184. package/charts/gantt-chart/GanttChartLine.sty.js +1 -1
  185. package/charts/gantt-chart/components/GanttChartLineRenderer.css +1 -1
  186. package/charts/gantt-chart/components/GanttChartLineRenderer.sty.js +1 -1
  187. package/charts/gantt-chart/components/tooltip/GanttChartTooltip.css +1 -1
  188. package/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.js +1 -1
  189. package/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.css +1 -1
  190. package/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.sty.js +1 -1
  191. package/charts/gauge/components/GaugeLabel/GaugeLabel.css +6 -6
  192. package/charts/gauge/components/GaugeLabel/GaugeLabel.sty.js +3 -3
  193. package/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.css +3 -3
  194. package/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.sty.js +1 -1
  195. package/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.css +4 -4
  196. package/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.sty.js +3 -3
  197. package/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.css +2 -2
  198. package/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js +2 -2
  199. package/charts/gauge/components/GaugeThresholdIntervalArcs.js +5 -2
  200. package/charts/gauge/constants.d.ts +2 -0
  201. package/charts/gauge/constants.js +3 -0
  202. package/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.d.ts +2 -0
  203. package/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.js +27 -0
  204. package/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.d.ts +2 -0
  205. package/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.js +25 -0
  206. package/charts/gauge/providers/GaugeChartProviders.js +21 -13
  207. package/charts/gauge/slots/ThresholdIndicator.d.ts +2 -1
  208. package/charts/gauge/types/gauge-chart-config-internal.d.ts +1 -0
  209. package/charts/gauge/types/gauge-chart-config.d.ts +6 -0
  210. package/charts/gauge/types/gauge-chart.d.ts +6 -0
  211. package/charts/gauge/utils/build-gauge-chart-config.js +2 -0
  212. package/charts/gauge/utils/build-threshold-interval-arcs.d.ts +2 -1
  213. package/charts/gauge/utils/build-threshold-interval-arcs.js +18 -13
  214. package/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.css +1 -1
  215. package/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.sty.js +1 -1
  216. package/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.css +1 -1
  217. package/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.sty.js +1 -1
  218. package/charts/histogram/components/overlays/HistogramOverlays.css +2 -2
  219. package/charts/histogram/components/overlays/HistogramOverlays.sty.js +2 -2
  220. package/charts/histogram/components/toolbar/PanButton.js +23 -2
  221. package/charts/histogram/components/toolbar/ZoomInOutButtons.js +7 -3
  222. package/charts/histogram/components/toolbar/ZoomModeButton.js +8 -3
  223. package/charts/honeycomb/HoneycombChart.css +1 -1
  224. package/charts/honeycomb/HoneycombChart.d.ts +10 -2
  225. package/charts/honeycomb/HoneycombChart.sty.js +1 -1
  226. package/charts/honeycomb/components/HiveOverlay.css +1 -1
  227. package/charts/honeycomb/components/HiveOverlay.sty.js +1 -1
  228. package/charts/honeycomb/components/canvas/HiveCanvasLayout.css +1 -1
  229. package/charts/honeycomb/components/canvas/HiveCanvasLayout.sty.js +1 -1
  230. package/charts/index.d.ts +12 -4
  231. package/charts/index.js +6 -0
  232. package/charts/meter-bar/multi-meter-bar/MultiMeterBarChart.js +8 -1
  233. package/charts/meter-bar/multi-meter-bar/types/multi-meter-bar-chart.d.ts +2 -1
  234. package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css +18 -15
  235. package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css.d.ts +1 -0
  236. package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.d.ts +6 -2
  237. package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.js +13 -4
  238. package/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js +12 -10
  239. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.css +2 -2
  240. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.sty.js +1 -1
  241. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.css +1 -1
  242. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.sty.js +1 -1
  243. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.css +1 -1
  244. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.sty.js +1 -1
  245. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.css +1 -1
  246. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.sty.js +1 -1
  247. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.d.ts +6 -0
  248. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js +28 -0
  249. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.css +1 -1
  250. package/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.sty.js +1 -1
  251. package/charts/meter-bar/shared/components/meter-bar-layout/utils/extract-slots.d.ts +1 -0
  252. package/charts/meter-bar/shared/components/meter-bar-layout/utils/extract-slots.js +3 -0
  253. package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.css +1 -1
  254. package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js +3 -4
  255. package/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.sty.js +1 -1
  256. package/charts/meter-bar/shared/styles/element-size.css +4 -4
  257. package/charts/meter-bar/shared/styles/element-size.sty.js +1 -1
  258. package/charts/meter-bar/shared/styles.css +1 -1
  259. package/charts/meter-bar/shared/styles.sty.js +1 -1
  260. package/charts/meter-bar/shared/utils/collapse-threshold-show-indicators.d.ts +17 -0
  261. package/charts/meter-bar/shared/utils/collapse-threshold-show-indicators.js +38 -0
  262. package/charts/meter-bar/single-meter-bar/MeterBarChart.js +10 -1
  263. package/charts/meter-bar/single-meter-bar/components/MeterBarChartOverlay/MeterBarChartOverlayWithTooltip.js +4 -1
  264. package/charts/meter-bar/single-meter-bar/components/MeterBarChartPlotArea.js +2 -16
  265. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css +6 -0
  266. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css.d.ts +2 -0
  267. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.d.ts +9 -0
  268. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.js +81 -0
  269. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js +24 -0
  270. package/charts/meter-bar/single-meter-bar/constants.d.ts +15 -1
  271. package/charts/meter-bar/single-meter-bar/constants.js +18 -2
  272. package/charts/meter-bar/single-meter-bar/context/MeterBarChartInternalConfigContext.d.ts +1 -0
  273. package/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.d.ts +2 -2
  274. package/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.js +2 -4
  275. package/charts/meter-bar/single-meter-bar/providers/MeterBarChartInternalDataProviders.js +7 -3
  276. package/charts/meter-bar/single-meter-bar/providers/MeterBarChartProviders.js +2 -1
  277. package/charts/meter-bar/single-meter-bar/types/default.d.ts +2 -1
  278. package/charts/meter-bar/single-meter-bar/types/default.js +3 -2
  279. package/charts/meter-bar/single-meter-bar/types/meter-bar-chart-internal.d.ts +14 -2
  280. package/charts/meter-bar/single-meter-bar/types/meter-bar-chart.d.ts +14 -3
  281. package/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js +6 -5
  282. package/charts/meter-bar/single-meter-bar/utils/build-meter-bar-chart-config.js +3 -0
  283. package/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.d.ts +12 -0
  284. package/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.js +47 -0
  285. package/charts/meter-bar/single-meter-bar/utils/build-thresholds.d.ts +2 -2
  286. package/charts/meter-bar/single-meter-bar/utils/build-thresholds.js +5 -5
  287. package/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.d.ts +15 -0
  288. package/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.js +55 -0
  289. package/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.d.ts +15 -0
  290. package/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js +30 -0
  291. package/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.css +1 -1
  292. package/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.sty.js +1 -1
  293. package/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.css +1 -1
  294. package/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.sty.js +1 -1
  295. package/charts/pie/components/PieChartInternal.d.ts +2 -2
  296. package/charts/pie/components/PieChartInternal.js +6 -0
  297. package/charts/pie/components/PieChartOverlays/PieChartOverlays.css +1 -1
  298. package/charts/pie/components/PieChartOverlays/PieChartOverlays.sty.js +1 -1
  299. package/charts/pie/components/PieChartPlot/PieChartPlot.css +1 -1
  300. package/charts/pie/components/PieChartPlot/PieChartPlot.sty.js +1 -1
  301. package/charts/sankey-chart/SankeyChart.css +5 -0
  302. package/charts/sankey-chart/SankeyChart.css.d.ts +2 -0
  303. package/charts/sankey-chart/SankeyChart.d.ts +10 -0
  304. package/charts/sankey-chart/SankeyChart.js +51 -0
  305. package/charts/sankey-chart/SankeyChart.sty.js +24 -0
  306. package/charts/sankey-chart/SankeyChartRoot.d.ts +18 -0
  307. package/charts/sankey-chart/SankeyChartRoot.js +86 -0
  308. package/charts/sankey-chart/components/SankeyCanvas.css +5 -0
  309. package/charts/sankey-chart/components/SankeyCanvas.css.d.ts +2 -0
  310. package/charts/sankey-chart/components/SankeyCanvas.d.ts +5 -0
  311. package/charts/sankey-chart/components/SankeyCanvas.js +46 -0
  312. package/charts/sankey-chart/components/SankeyCanvas.sty.js +24 -0
  313. package/charts/sankey-chart/components/SankeyGraphArea.d.ts +5 -0
  314. package/charts/sankey-chart/components/SankeyGraphArea.js +29 -0
  315. package/charts/sankey-chart/constants.d.ts +15 -0
  316. package/charts/sankey-chart/constants.js +36 -0
  317. package/charts/sankey-chart/context/SankeyData.context.d.ts +3 -0
  318. package/charts/sankey-chart/context/SankeyData.context.js +28 -0
  319. package/charts/sankey-chart/context/SankeyNodes.context.d.ts +3 -0
  320. package/charts/sankey-chart/context/SankeyNodes.context.js +25 -0
  321. package/charts/sankey-chart/context/SankeyTruncationMode.context.d.ts +3 -0
  322. package/charts/sankey-chart/context/SankeyTruncationMode.context.js +28 -0
  323. package/charts/sankey-chart/hooks/use-draw-sankey.d.ts +3 -0
  324. package/charts/sankey-chart/hooks/use-draw-sankey.js +52 -0
  325. package/charts/sankey-chart/hooks/use-sankey-layout.d.ts +3 -0
  326. package/charts/sankey-chart/hooks/use-sankey-layout.js +42 -0
  327. package/charts/sankey-chart/providers/SankeyConfigProvider.d.ts +13 -0
  328. package/charts/sankey-chart/providers/SankeyConfigProvider.js +31 -0
  329. package/charts/sankey-chart/providers/SankeyDataProvider.d.ts +18 -0
  330. package/charts/sankey-chart/providers/SankeyDataProvider.js +62 -0
  331. package/charts/sankey-chart/slots/Nodes.d.ts +12 -0
  332. package/charts/sankey-chart/slots/Nodes.js +24 -0
  333. package/charts/sankey-chart/types/sankey-internal.d.ts +40 -0
  334. package/charts/sankey-chart/types/sankey-internal.js +15 -0
  335. package/charts/sankey-chart/types/sankey-props.d.ts +79 -0
  336. package/charts/sankey-chart/types/sankey-props.js +15 -0
  337. package/charts/sankey-chart/types/sankey.d.ts +6 -0
  338. package/charts/{core/types/aria-label.js → sankey-chart/types/sankey.js} +2 -2
  339. package/charts/sankey-chart/utils/build-sankey-graph.d.ts +21 -0
  340. package/charts/sankey-chart/utils/build-sankey-graph.js +70 -0
  341. package/charts/sankey-chart/utils/generate-sankey-layout.d.ts +4 -0
  342. package/charts/sankey-chart/utils/generate-sankey-layout.js +42 -0
  343. package/charts/sankey-chart/utils/get-sankey-is-empty.d.ts +3 -0
  344. package/charts/sankey-chart/utils/get-sankey-is-empty.js +25 -0
  345. package/charts/sankey-chart/utils/iterate-slots.d.ts +14 -0
  346. package/charts/{meter-bar/single-meter-bar/utils/get-threshold-indicators.js → sankey-chart/utils/iterate-slots.js} +15 -13
  347. package/charts/sankey-chart/vendor/d3-sankey/align.d.ts +11 -0
  348. package/charts/sankey-chart/vendor/d3-sankey/align.js +33 -0
  349. package/charts/sankey-chart/vendor/d3-sankey/constant.d.ts +2 -0
  350. package/charts/sankey-chart/vendor/d3-sankey/constant.js +27 -0
  351. package/charts/sankey-chart/vendor/d3-sankey/index.d.ts +5 -0
  352. package/charts/{meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.js → sankey-chart/vendor/d3-sankey/index.js} +11 -22
  353. package/charts/sankey-chart/vendor/d3-sankey/link-horizontal.d.ts +3 -0
  354. package/charts/sankey-chart/vendor/d3-sankey/link-horizontal.js +33 -0
  355. package/charts/sankey-chart/vendor/d3-sankey/sankey.d.ts +3 -0
  356. package/charts/sankey-chart/vendor/d3-sankey/sankey.js +460 -0
  357. package/charts/sankey-chart/vendor/d3-sankey/types.d.ts +60 -0
  358. package/charts/sankey-chart/vendor/d3-sankey/types.js +15 -0
  359. package/charts/single-value/SingleValue.css +1 -1
  360. package/charts/single-value/SingleValue.sty.js +1 -1
  361. package/charts/single-value-grid/SingleValueGrid.css +2 -2
  362. package/charts/single-value-grid/SingleValueGrid.sty.js +1 -1
  363. package/charts/single-value-grid/components/GlobalFontSizeVariables.css +1 -1
  364. package/charts/single-value-grid/components/GlobalFontSizeVariables.sty.js +1 -1
  365. package/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.css +2 -2
  366. package/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js +1 -1
  367. package/charts/timeseries/components/overlays/TimeseriesChartOverlays.js +0 -1
  368. package/charts/timeseries/components/overlays/TimeseriesOverlays.css +4 -4
  369. package/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js +4 -4
  370. package/charts/timeseries/components/thresholds/ThresholdIndicators.css +2 -2
  371. package/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js +2 -2
  372. package/charts/timeseries/components/toolbar/PanButton.js +22 -1
  373. package/charts/timeseries/components/toolbar/ZoomInOutButtons.js +7 -3
  374. package/charts/timeseries/components/toolbar/ZoomModeButton.js +8 -3
  375. package/charts/timeseries/constants.d.ts +0 -1
  376. package/charts/timeseries/constants.js +0 -2
  377. package/charts/top-list/TopList.css +1 -1
  378. package/charts/top-list/TopList.d.ts +5 -3
  379. package/charts/top-list/TopList.js +78 -20
  380. package/charts/top-list/TopList.sty.js +1 -1
  381. package/charts/top-list/types/top-list.d.ts +60 -4
  382. package/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.css +1 -1
  383. package/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.sty.js +1 -1
  384. package/charts/tree-map/utils/to-hierarchical-props.js +2 -1
  385. package/charts/xy-chart/XYChart.js +2 -0
  386. package/charts/xy-chart/components/axes/AxisArea.css +1 -1
  387. package/charts/xy-chart/components/axes/AxisArea.sty.js +1 -1
  388. package/charts/xy-chart/components/axes/AxisTickWithTruncation.css +3 -3
  389. package/charts/xy-chart/components/axes/AxisTickWithTruncation.sty.js +3 -3
  390. package/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.css +3 -3
  391. package/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js +3 -3
  392. package/charts/xy-chart/components/displays/RectLabelLayout.d.ts +11 -0
  393. package/charts/xy-chart/components/displays/RectLabelLayout.js +66 -0
  394. package/charts/xy-chart/components/displays/RectLabelOverlay.css +19 -0
  395. package/charts/xy-chart/components/displays/RectLabelOverlay.css.d.ts +4 -0
  396. package/charts/xy-chart/components/displays/RectLabelOverlay.d.ts +32 -0
  397. package/charts/xy-chart/components/displays/RectLabelOverlay.js +121 -0
  398. package/charts/xy-chart/components/displays/RectLabelOverlay.sty.js +28 -0
  399. package/charts/xy-chart/components/displays/rect-label-utils.d.ts +27 -0
  400. package/charts/xy-chart/components/displays/rect-label-utils.js +57 -0
  401. package/charts/xy-chart/components/legend/XYLegend/xy-legend.css +1 -1
  402. package/charts/xy-chart/components/legend/XYLegend/xy-legend.sty.js +1 -1
  403. package/charts/xy-chart/components/overlay/explore/HighlightedRectangleCanvas.js +31 -8
  404. package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.css +1 -1
  405. package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js +4 -2
  406. package/charts/xy-chart/components/overlay/explore/XYChartCrosshair.sty.js +1 -1
  407. package/charts/xy-chart/components/overlay/explore/XYChartExplore.css +2 -2
  408. package/charts/xy-chart/components/overlay/explore/XYChartExplore.sty.js +2 -2
  409. package/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.css +1 -1
  410. package/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.sty.js +1 -1
  411. package/charts/xy-chart/components/toolbar/DownloadDataButton.d.ts +3 -1
  412. package/charts/xy-chart/components/toolbar/DownloadDataButton.js +2 -2
  413. package/charts/xy-chart/components/toolbar/PanButton.js +21 -5
  414. package/charts/xy-chart/components/toolbar/XYChartToolbar.js +11 -3
  415. package/charts/xy-chart/components/toolbar/ZoomInOutButtons.js +7 -3
  416. package/charts/xy-chart/components/toolbar/ZoomModeButton.js +14 -5
  417. package/charts/xy-chart/components/tooltip/utils/tooltip-styles.css +5 -5
  418. package/charts/xy-chart/components/tooltip/utils/tooltip-styles.sty.js +4 -4
  419. package/charts/xy-chart/constants/defaults.d.ts +2 -0
  420. package/charts/xy-chart/constants/defaults.js +4 -0
  421. package/charts/xy-chart/hooks/useColorRule.js +2 -1
  422. package/charts/xy-chart/layout/XYChartLayout.css +2 -2
  423. package/charts/xy-chart/layout/XYChartLayout.sty.js +2 -2
  424. package/charts/xy-chart/processing-strategies/strategies/rect-series.d.ts +1 -0
  425. package/charts/xy-chart/processing-strategies/strategies/rect-series.js +5 -1
  426. package/charts/xy-chart/processing-strategies/utils/access-datapoint/get-datapoints.js +11 -1
  427. package/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js +7 -2
  428. package/charts/xy-chart/types/xy-chart-internals.d.ts +3 -0
  429. package/charts/xy-chart/types/xy-chart-props.d.ts +11 -0
  430. package/charts/xy-chart/utils/build-sorted-entries.d.ts +20 -14
  431. package/charts/xy-chart/utils/build-sorted-entries.js +43 -21
  432. package/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.d.ts +1 -1
  433. package/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.js +6 -2
  434. package/charts/xy-chart/utils/coloring/get-color-from-rule.d.ts +1 -1
  435. package/charts/xy-chart/utils/coloring/get-color-from-rule.js +2 -2
  436. package/charts/xy-chart/utils/get-bar-hit-box.d.ts +20 -0
  437. package/charts/xy-chart/utils/get-bar-hit-box.js +94 -0
  438. package/charts/xy-chart/utils/is-in-pixel-range.d.ts +5 -0
  439. package/charts/xy-chart/utils/is-in-pixel-range.js +25 -0
  440. package/charts/xy-chart/utils/query-hovered-grid.js +24 -18
  441. package/charts/xy-chart/utils/query-hovered.d.ts +13 -7
  442. package/charts/xy-chart/utils/query-hovered.js +35 -7
  443. package/charts/xy-chart/utils/query-shared.d.ts +1 -1
  444. package/charts/xy-chart/utils/query-shared.js +63 -39
  445. package/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js +122 -28
  446. package/charts/xy-chart-adoption/categorical-bar/iterate-slots.d.ts +11 -0
  447. package/charts/xy-chart-adoption/categorical-bar/iterate-slots.js +49 -1
  448. package/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.d.ts +6 -5
  449. package/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.js +3 -2
  450. package/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.d.ts +8 -1
  451. package/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.js +26 -6
  452. package/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.d.ts +5 -0
  453. package/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.js +44 -0
  454. package/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.d.ts +17 -0
  455. package/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.js +41 -0
  456. package/charts/xy-chart-adoption/timeseries/TimeseriesToXY.d.ts +1 -0
  457. package/charts/xy-chart-adoption/timeseries/TimeseriesToXY.js +16 -5
  458. package/charts/xy-chart-adoption/timeseries/types/timeseries.d.ts +3 -1
  459. package/charts/xy-chart-adoption/timeseries/utils/render-series.d.ts +4 -0
  460. package/charts/xy-chart-adoption/timeseries/utils/render-series.js +3 -0
  461. package/codeshift.config.js +1 -0
  462. package/content/accordion/Accordion.css +14 -14
  463. package/content/accordion/Accordion.sty.js +8 -8
  464. package/content/accordion/AccordionSectionContent.js +1 -0
  465. package/content/ai-loading-indicator/AiLoadingIndicator.css +12 -12
  466. package/content/ai-loading-indicator/AiLoadingIndicator.sty.js +4 -4
  467. package/content/ai-response/AiResponse.css +5 -5
  468. package/content/ai-response/AiResponse.sty.js +2 -2
  469. package/content/avatar/Avatar.css +13 -13
  470. package/content/avatar/Avatar.sty.js +4 -4
  471. package/content/avatar-group/AvatarGroup.css +3 -3
  472. package/content/avatar-group/AvatarGroup.sty.js +2 -2
  473. package/content/chip/BaseChip.css +40 -40
  474. package/content/chip/BaseChip.sty.js +5 -5
  475. package/content/chip/ChipContent.css +11 -11
  476. package/content/chip/ChipContent.sty.js +2 -2
  477. package/content/chip/ChipDeleteButton.css +19 -19
  478. package/content/chip/ChipDeleteButton.sty.js +4 -4
  479. package/content/chip/ChipKey.css +6 -6
  480. package/content/chip/ChipKey.sty.js +1 -1
  481. package/content/chip/GroupedChip.css +3 -3
  482. package/content/chip/GroupedChip.sty.js +3 -3
  483. package/content/chip-group/ChipGroup.css +4 -4
  484. package/content/chip-group/ChipGroup.sty.js +1 -1
  485. package/content/chip-group/Control.css +4 -4
  486. package/content/chip-group/Control.sty.js +1 -1
  487. package/content/code-snippet/CodeHighlight.css +25 -25
  488. package/content/code-snippet/CodeHighlight.sty.js +6 -6
  489. package/content/code-snippet/CodeSnippet.css +18 -18
  490. package/content/code-snippet/CodeSnippet.sty.js +4 -4
  491. package/content/empty-state/EmptyState.css +28 -28
  492. package/content/empty-state/EmptyState.sty.js +7 -7
  493. package/content/empty-state/slot-components/Footer.css +1 -1
  494. package/content/empty-state/slot-components/Footer.sty.js +1 -1
  495. package/content/empty-state/slot-components/Visual.css +3 -3
  496. package/content/empty-state/slot-components/Visual.sty.js +1 -1
  497. package/content/expandable-text/ExpandableText.css +7 -7
  498. package/content/expandable-text/ExpandableText.sty.js +2 -2
  499. package/content/feature-highlight/FeatureHighlight.css +12 -12
  500. package/content/feature-highlight/FeatureHighlight.sty.js +3 -3
  501. package/content/health-indicator/styles.css +23 -23
  502. package/content/health-indicator/styles.sty.js +1 -1
  503. package/content/information-overlay/InformationOverlay.css +25 -25
  504. package/content/information-overlay/InformationOverlay.sty.js +5 -5
  505. package/content/keyboard-shortcut/KeyboardShortcut.css +14 -14
  506. package/content/keyboard-shortcut/KeyboardShortcut.js +4 -2
  507. package/content/keyboard-shortcut/KeyboardShortcut.sty.js +2 -2
  508. package/content/markdown/Markdown.css +3 -3
  509. package/content/markdown/Markdown.sty.js +1 -1
  510. package/content/markdown/transformers/typography-mapping.css +9 -9
  511. package/content/markdown/transformers/typography-mapping.sty.js +6 -6
  512. package/content/microguide/Microguide.css +11 -11
  513. package/content/microguide/Microguide.sty.js +7 -7
  514. package/content/progress/ProgressBar.css +71 -71
  515. package/content/progress/ProgressBar.sty.js +5 -5
  516. package/content/progress/ProgressBarIcon.css +2 -2
  517. package/content/progress/ProgressBarIcon.sty.js +1 -1
  518. package/content/progress/ProgressBarLabel.css +3 -3
  519. package/content/progress/ProgressBarLabel.sty.js +1 -1
  520. package/content/progress/ProgressBarValue.css +5 -5
  521. package/content/progress/ProgressBarValue.sty.js +1 -1
  522. package/content/progress/ProgressCircle.css +40 -40
  523. package/content/progress/ProgressCircle.sty.js +5 -5
  524. package/content/shared-components/Visual.css +3 -3
  525. package/content/shared-components/Visual.sty.js +1 -1
  526. package/content/skeleton/Skeleton.css +7 -7
  527. package/content/skeleton/Skeleton.sty.js +5 -5
  528. package/content/terminology-overlay/TerminologyOverlay.css +4 -4
  529. package/content/terminology-overlay/TerminologyOverlay.sty.js +1 -1
  530. package/core/components/app-root/AppRoot.css +73 -76
  531. package/core/components/app-root/AppRoot.sty.js +1 -1
  532. package/core/components/app-root/visual-refresh-overrides.d.ts +41 -11
  533. package/core/components/app-root/visual-refresh-overrides.js +76 -67
  534. package/core/components/visually-hidden/VisuallyHidden.css +1 -1
  535. package/core/components/visually-hidden/VisuallyHidden.sty.js +1 -1
  536. package/core/sdk/sdk-logger.js +2 -2
  537. package/core/styles/defaultChartValues.css +1 -1
  538. package/core/styles/defaultChartValues.sty.js +1 -1
  539. package/core/styles/diagnostic-tooltip.css +27 -0
  540. package/core/styles/diagnostic-tooltip.css.d.ts +18 -0
  541. package/core/styles/diagnostic-tooltip.sty.js +28 -0
  542. package/core/styles/focusRing.css +66 -66
  543. package/core/styles/focusRing.sty.js +2 -2
  544. package/core/styles/focusRingStatic.css +34 -34
  545. package/core/styles/focusRingStatic.sty.js +1 -1
  546. package/core/styles/virtualFocus.css +2 -2
  547. package/core/styles/virtualFocus.sty.js +1 -1
  548. package/core/time/helpers.d.ts +1 -1
  549. package/core/time/helpers.js +17 -9
  550. package/core/time/shared.types.d.ts +1 -1
  551. package/core/time/timeErrorMessages.d.ts +10 -0
  552. package/core/time/timeErrorMessages.js +100 -0
  553. package/core/time/validation.d.ts +1 -1
  554. package/core/time/validation.js +37 -78
  555. package/core/utils/colorUtils.css +60 -60
  556. package/core/utils/colorUtils.sty.js +2 -2
  557. package/core/utils/diagnostic-tooltip/render-diagnostic-message.d.ts +21 -0
  558. package/core/utils/diagnostic-tooltip/render-diagnostic-message.js +45 -0
  559. package/editors/base-code-editor/BaseCodeEditor.css +222 -210
  560. package/editors/base-code-editor/BaseCodeEditor.css.d.ts +5 -3
  561. package/editors/base-code-editor/BaseCodeEditor.d.ts +8 -0
  562. package/editors/base-code-editor/BaseCodeEditor.js +21 -4
  563. package/editors/base-code-editor/BaseCodeEditor.sty.js +3 -2
  564. package/editors/base-code-editor/configuration/configure-diagnostics.js +9 -1
  565. package/editors/base-code-editor/configuration/configure-lint-gutter.d.ts +41 -0
  566. package/editors/base-code-editor/configuration/configure-lint-gutter.js +110 -0
  567. package/editors/base-code-editor/configuration/getDefaultConfigurations.js +16 -9
  568. package/editors/base-code-editor/utils/string-utils.d.ts +6 -0
  569. package/editors/base-code-editor/utils/string-utils.js +27 -0
  570. package/editors/code-editor/CodeEditor.d.ts +10 -1
  571. package/editors/code-editor/CodeEditor.js +4 -0
  572. package/editors/code-editor/languages/languages.js +12 -1
  573. package/editors/dql-editor/DQLEditor.d.ts +2 -2
  574. package/editors/dql-editor/actions-menu/ActionsMenu.css +10 -10
  575. package/editors/dql-editor/actions-menu/ActionsMenu.sty.js +5 -5
  576. package/editors/dql-editor/dql/SuggestionPart.css +1 -1
  577. package/editors/dql-editor/dql/SuggestionPart.sty.js +1 -1
  578. package/editors/dql-editor/dql/SuggestionsInfoSection.css +7 -7
  579. package/editors/dql-editor/dql/SuggestionsInfoSection.sty.js +3 -3
  580. package/editors/dql-editor/dql/dql-language.js +1 -1
  581. package/editors/dql-editor/dql/dql-linter.d.ts +10 -0
  582. package/editors/dql-editor/dql/dql-linter.js +16 -0
  583. package/editors/dql-editor/dql/fuzzy-match.d.ts +36 -3
  584. package/editors/dql-editor/dql/fuzzy-match.js +26 -17
  585. package/editors/dql-editor/dql/suggestion-autocompletions.js +44 -10
  586. package/editors/dql-editor/dql/token-type-label.d.ts +15 -0
  587. package/editors/dql-editor/dql/token-type-label.js +131 -0
  588. package/esm/buttons/button/Button.css +15 -15
  589. package/esm/buttons/button/Button.sty.js +4 -4
  590. package/esm/buttons/button/Button.sty.js.map +1 -1
  591. package/esm/buttons/intent-button/IntentButton.css +1 -1
  592. package/esm/buttons/intent-button/IntentButton.sty.js +1 -1
  593. package/esm/buttons/intent-button/IntentButton.sty.js.map +1 -1
  594. package/esm/buttons/notify-button/NotifyButton.css +2 -2
  595. package/esm/buttons/notify-button/NotifyButton.sty.js +2 -2
  596. package/esm/buttons/notify-button/NotifyButton.sty.js.map +1 -1
  597. package/esm/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.css +2 -2
  598. package/esm/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js +2 -2
  599. package/esm/charts/categorical-bar/components/interactions/overlays/CategoricalBarChartInspectOverlay.sty.js.map +1 -1
  600. package/esm/charts/core/components/annotations/AnnotationsAtom.css +1 -1
  601. package/esm/charts/core/components/annotations/AnnotationsAtom.sty.js +1 -1
  602. package/esm/charts/core/components/annotations/AnnotationsAtom.sty.js.map +1 -1
  603. package/esm/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.css +1 -1
  604. package/esm/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.sty.js +1 -1
  605. package/esm/charts/core/components/annotations/components/canvas/AnnotationsCanvasLayout.sty.js.map +1 -1
  606. package/esm/charts/core/components/annotations/components/overlays/AnnotationsOverlays.css +1 -1
  607. package/esm/charts/core/components/annotations/components/overlays/AnnotationsOverlays.sty.js +1 -1
  608. package/esm/charts/core/components/annotations/components/overlays/AnnotationsOverlays.sty.js.map +1 -1
  609. package/esm/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.css +1 -1
  610. package/esm/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.sty.js +1 -1
  611. package/esm/charts/core/components/annotations/components/overlays/AnnotationsScrollWrapper.sty.js.map +1 -1
  612. package/esm/charts/core/components/annotations/components/tooltip/AnnotationsDefaultTooltipContent.js +0 -1
  613. package/esm/charts/core/components/annotations/components/tooltip/AnnotationsDefaultTooltipContent.js.map +2 -2
  614. package/esm/charts/core/components/axes/Axis.css +1 -1
  615. package/esm/charts/core/components/axes/Axis.sty.js +1 -1
  616. package/esm/charts/core/components/axes/Axis.sty.js.map +1 -1
  617. package/esm/charts/core/components/axes/components/PanningControls/PanningControls.css +16 -16
  618. package/esm/charts/core/components/axes/components/PanningControls/PanningControls.sty.js +2 -2
  619. package/esm/charts/core/components/axes/components/PanningControls/PanningControls.sty.js.map +1 -1
  620. package/esm/charts/core/components/canvas/utils/canvas-color.js +4 -1
  621. package/esm/charts/core/components/canvas/utils/canvas-color.js.map +2 -2
  622. package/esm/charts/core/components/chart-grid/ChartGrid.css +3 -3
  623. package/esm/charts/core/components/chart-grid/ChartGrid.sty.js +3 -3
  624. package/esm/charts/core/components/chart-grid/ChartGrid.sty.js.map +1 -1
  625. package/esm/charts/core/components/chart-layout/ChartLayout.js +6 -0
  626. package/esm/charts/core/components/chart-layout/ChartLayout.js.map +2 -2
  627. package/esm/charts/core/components/chart-layout/components/styles.css +15 -15
  628. package/esm/charts/core/components/chart-layout/components/styles.sty.js +4 -4
  629. package/esm/charts/core/components/chart-layout/components/styles.sty.js.map +1 -1
  630. package/esm/charts/core/components/chart-layout/hooks/useAutomaticRatio.js +8 -3
  631. package/esm/charts/core/components/chart-layout/hooks/useAutomaticRatio.js.map +2 -2
  632. package/esm/charts/core/components/chart-states/ChartState.css +4 -4
  633. package/esm/charts/core/components/chart-states/ChartState.sty.js +4 -4
  634. package/esm/charts/core/components/chart-states/ChartState.sty.js.map +1 -1
  635. package/esm/charts/core/components/crosshair/components/Magnifier.css +7 -7
  636. package/esm/charts/core/components/crosshair/components/Magnifier.sty.js +7 -7
  637. package/esm/charts/core/components/crosshair/components/Magnifier.sty.js.map +1 -1
  638. package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.css +5 -5
  639. package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.js +7 -2
  640. package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.js.map +2 -2
  641. package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js +2 -2
  642. package/esm/charts/core/components/interactions-overlay/InteractionsOverlay.sty.js.map +1 -1
  643. package/esm/charts/core/components/legend/categorical/ChartLegend.css +1 -1
  644. package/esm/charts/core/components/legend/categorical/ChartLegend.sty.js +1 -1
  645. package/esm/charts/core/components/legend/categorical/ChartLegend.sty.js.map +1 -1
  646. package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.css +3 -3
  647. package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js +3 -3
  648. package/esm/charts/core/components/legend/categorical/components/ChartLegendIcon/ChartLegendIcon.sty.js.map +1 -1
  649. package/esm/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.css +17 -17
  650. package/esm/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js +6 -6
  651. package/esm/charts/core/components/legend/categorical/components/ChartLegendItem/ChartLegendItem.sty.js.map +1 -1
  652. package/esm/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.css +3 -3
  653. package/esm/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.sty.js +1 -1
  654. package/esm/charts/core/components/legend/categorical/components/ChartLegendSeriesActions/ChartLegendSeriesActions.sty.js.map +1 -1
  655. package/esm/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.css +8 -8
  656. package/esm/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.sty.js +4 -4
  657. package/esm/charts/core/components/legend/categorical/components/ChartVirtualizedLegendGrid.sty.js.map +1 -1
  658. package/esm/charts/core/components/legend/range/RangeLegend.css +3 -3
  659. package/esm/charts/core/components/legend/range/RangeLegend.sty.js +1 -1
  660. package/esm/charts/core/components/legend/range/RangeLegend.sty.js.map +1 -1
  661. package/esm/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.css +2 -2
  662. package/esm/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.sty.js +1 -1
  663. package/esm/charts/core/components/legend/range/components/RangeLegendBoundaryLabel/RangeLegendBoundaryLabel.sty.js.map +1 -1
  664. package/esm/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.css +1 -1
  665. package/esm/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.sty.js +1 -1
  666. package/esm/charts/core/components/legend/range/components/RangeLegendItemLabel/RangeLegendItemLabel.sty.js.map +1 -1
  667. package/esm/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.css +3 -3
  668. package/esm/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.sty.js +1 -1
  669. package/esm/charts/core/components/legend/range/components/RangeLegendItemMarker/RangeLegendItemMarker.sty.js.map +1 -1
  670. package/esm/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.css +3 -3
  671. package/esm/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.sty.js +1 -1
  672. package/esm/charts/core/components/legend/range/components/RangeLegendMarkers/RangeLegendMarkers.sty.js.map +1 -1
  673. package/esm/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.css +5 -5
  674. package/esm/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.sty.js +1 -1
  675. package/esm/charts/core/components/legend/range/components/RangeLegendSegments/RangeLegendSegments.sty.js.map +1 -1
  676. package/esm/charts/core/components/loader-overlay/LoaderOverlay.css +2 -2
  677. package/esm/charts/core/components/loader-overlay/LoaderOverlay.sty.js +2 -2
  678. package/esm/charts/core/components/loader-overlay/LoaderOverlay.sty.js.map +1 -1
  679. package/esm/charts/core/components/overlay-tooltip/components/global-actions/actions.css +4 -4
  680. package/esm/charts/core/components/overlay-tooltip/components/global-actions/actions.sty.js +2 -2
  681. package/esm/charts/core/components/overlay-tooltip/components/global-actions/actions.sty.js.map +1 -1
  682. package/esm/charts/core/components/overlay-tooltip/components/header/Header.css +6 -6
  683. package/esm/charts/core/components/overlay-tooltip/components/header/Header.sty.js +6 -6
  684. package/esm/charts/core/components/overlay-tooltip/components/header/Header.sty.js.map +1 -1
  685. package/esm/charts/core/components/overlay-tooltip/components/series/SeriesItemContent.js +1 -3
  686. package/esm/charts/core/components/overlay-tooltip/components/series/SeriesItemContent.js.map +2 -2
  687. package/esm/charts/core/components/overlay-tooltip/components/series/seriesSymbol.css +2 -2
  688. package/esm/charts/core/components/overlay-tooltip/components/series/seriesSymbol.sty.js +2 -2
  689. package/esm/charts/core/components/overlay-tooltip/components/series/seriesSymbol.sty.js.map +1 -1
  690. package/esm/charts/core/components/overlay-tooltip/tooltip.css +54 -54
  691. package/esm/charts/core/components/overlay-tooltip/tooltip.sty.js +39 -39
  692. package/esm/charts/core/components/overlay-tooltip/tooltip.sty.js.map +1 -1
  693. package/esm/charts/core/components/overlay-tooltip/types.js.map +1 -1
  694. package/esm/charts/core/components/overlays/ChartOverlaysBorder.css +6 -6
  695. package/esm/charts/core/components/overlays/ChartOverlaysBorder.sty.js +6 -6
  696. package/esm/charts/core/components/overlays/ChartOverlaysBorder.sty.js.map +1 -1
  697. package/esm/charts/core/components/selection-area/SelectionArea.css +9 -9
  698. package/esm/charts/core/components/selection-area/SelectionArea.sty.js +4 -4
  699. package/esm/charts/core/components/selection-area/SelectionArea.sty.js.map +1 -1
  700. package/esm/charts/core/components/shape/BubbleShape/BubbleShape.css +5 -5
  701. package/esm/charts/core/components/shape/BubbleShape/BubbleShape.sty.js +3 -3
  702. package/esm/charts/core/components/shape/BubbleShape/BubbleShape.sty.js.map +1 -1
  703. package/esm/charts/core/components/shape/EmojiShape/EmojiShape.css +3 -3
  704. package/esm/charts/core/components/shape/EmojiShape/EmojiShape.sty.js +1 -1
  705. package/esm/charts/core/components/shape/EmojiShape/EmojiShape.sty.js.map +1 -1
  706. package/esm/charts/core/components/shape/IconShape/IconShape.css +3 -3
  707. package/esm/charts/core/components/shape/IconShape/IconShape.sty.js +1 -1
  708. package/esm/charts/core/components/shape/IconShape/IconShape.sty.js.map +1 -1
  709. package/esm/charts/core/components/shape/styles/DataPointShape.css +8 -8
  710. package/esm/charts/core/components/shape/styles/DataPointShape.sty.js +4 -4
  711. package/esm/charts/core/components/shape/styles/DataPointShape.sty.js.map +1 -1
  712. package/esm/charts/core/components/shared-chart-interactions/SharedChartInteractions.css +1 -1
  713. package/esm/charts/core/components/shared-chart-interactions/SharedChartInteractions.sty.js +1 -1
  714. package/esm/charts/core/components/shared-chart-interactions/SharedChartInteractions.sty.js.map +1 -1
  715. package/esm/charts/core/components/single-value-renderer/SingleValueRenderer.css +5 -5
  716. package/esm/charts/core/components/single-value-renderer/SingleValueRenderer.sty.js +5 -5
  717. package/esm/charts/core/components/single-value-renderer/SingleValueRenderer.sty.js.map +1 -1
  718. package/esm/charts/core/components/single-value-renderer/components/ContentGrid.css +1 -1
  719. package/esm/charts/core/components/single-value-renderer/components/ContentGrid.sty.js +1 -1
  720. package/esm/charts/core/components/single-value-renderer/components/ContentGrid.sty.js.map +1 -1
  721. package/esm/charts/core/components/single-value-renderer/components/Icon.css +3 -3
  722. package/esm/charts/core/components/single-value-renderer/components/Icon.sty.js +2 -2
  723. package/esm/charts/core/components/single-value-renderer/components/Icon.sty.js.map +1 -1
  724. package/esm/charts/core/components/single-value-renderer/components/Label.css +1 -1
  725. package/esm/charts/core/components/single-value-renderer/components/Label.sty.js +1 -1
  726. package/esm/charts/core/components/single-value-renderer/components/Label.sty.js.map +1 -1
  727. package/esm/charts/core/components/single-value-renderer/components/SingleValueToolbar.css +1 -1
  728. package/esm/charts/core/components/single-value-renderer/components/SingleValueToolbar.sty.js +1 -1
  729. package/esm/charts/core/components/single-value-renderer/components/SingleValueToolbar.sty.js.map +1 -1
  730. package/esm/charts/core/components/single-value-renderer/components/Value.css +5 -5
  731. package/esm/charts/core/components/single-value-renderer/components/Value.sty.js +3 -3
  732. package/esm/charts/core/components/single-value-renderer/components/Value.sty.js.map +1 -1
  733. package/esm/charts/core/components/single-value-renderer/components/trend/Trend.css +3 -3
  734. package/esm/charts/core/components/single-value-renderer/components/trend/Trend.sty.js +3 -3
  735. package/esm/charts/core/components/single-value-renderer/components/trend/Trend.sty.js.map +1 -1
  736. package/esm/charts/core/components/single-value-renderer/components/trend/components/Icon.css +2 -2
  737. package/esm/charts/core/components/single-value-renderer/components/trend/components/Icon.sty.js +1 -1
  738. package/esm/charts/core/components/single-value-renderer/components/trend/components/Icon.sty.js.map +1 -1
  739. package/esm/charts/core/components/sparkline-display/Sparkline.css +6 -6
  740. package/esm/charts/core/components/sparkline-display/Sparkline.sty.js +2 -2
  741. package/esm/charts/core/components/sparkline-display/Sparkline.sty.js.map +1 -1
  742. package/esm/charts/core/components/text-ellipsis/ChartTextEllipsis.css +7 -7
  743. package/esm/charts/core/components/text-ellipsis/ChartTextEllipsis.sty.js +3 -3
  744. package/esm/charts/core/components/text-ellipsis/ChartTextEllipsis.sty.js.map +1 -1
  745. package/esm/charts/core/components/threshold-bar/styles.css +9 -9
  746. package/esm/charts/core/components/threshold-bar/styles.sty.js +2 -2
  747. package/esm/charts/core/components/threshold-bar/styles.sty.js.map +1 -1
  748. package/esm/charts/core/components/toolbar/ChartToolbarRenderer.css +16 -16
  749. package/esm/charts/core/components/toolbar/ChartToolbarRenderer.js +4 -2
  750. package/esm/charts/core/components/toolbar/ChartToolbarRenderer.js.map +2 -2
  751. package/esm/charts/core/components/toolbar/ChartToolbarRenderer.sty.js +8 -8
  752. package/esm/charts/core/components/toolbar/ChartToolbarRenderer.sty.js.map +1 -1
  753. package/esm/charts/core/components/toolbar/components/ChartDataMenu.css +2 -2
  754. package/esm/charts/core/components/toolbar/components/ChartDataMenu.sty.js +1 -1
  755. package/esm/charts/core/components/toolbar/components/ChartDataMenu.sty.js.map +1 -1
  756. package/esm/charts/core/components/toolbar/components/Control.css +20 -19
  757. package/esm/charts/core/components/toolbar/components/Control.js +11 -5
  758. package/esm/charts/core/components/toolbar/components/Control.js.map +2 -2
  759. package/esm/charts/core/components/toolbar/components/Control.sty.js +6 -6
  760. package/esm/charts/core/components/toolbar/components/Control.sty.js.map +2 -2
  761. package/esm/charts/core/components/toolbar/components/ToolbarMenu.css +4 -4
  762. package/esm/charts/core/components/toolbar/components/ToolbarMenu.sty.js +2 -2
  763. package/esm/charts/core/components/toolbar/components/ToolbarMenu.sty.js.map +1 -1
  764. package/esm/charts/core/components/toolbar/styles.css +3 -0
  765. package/esm/charts/core/components/toolbar/styles.sty.js +6 -0
  766. package/esm/charts/core/components/toolbar/styles.sty.js.map +7 -0
  767. package/esm/charts/core/components/toolbar/types.js.map +1 -1
  768. package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.css +6 -6
  769. package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.sty.js +2 -2
  770. package/esm/charts/core/components/tooltip/ChartTooltip/ChartTooltip.sty.js.map +1 -1
  771. package/esm/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.css +8 -8
  772. package/esm/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.sty.js +3 -3
  773. package/esm/charts/core/components/tooltip/ChartTooltip/components/ActionItem/ActionItem.sty.js.map +1 -1
  774. package/esm/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.css +2 -2
  775. package/esm/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.sty.js +1 -1
  776. package/esm/charts/core/components/tooltip/ChartTooltip/components/SeriesItem/SeriesItem.sty.js.map +1 -1
  777. package/esm/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.css +1 -1
  778. package/esm/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.sty.js +1 -1
  779. package/esm/charts/core/components/tooltip/ChartTooltip/components/TimeFrameHeader/TimeFrameHeader.sty.js.map +1 -1
  780. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.css +6 -6
  781. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.sty.js +2 -2
  782. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/BasicChartTooltip/BasicChartTooltip.sty.js.map +1 -1
  783. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.css +7 -7
  784. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.sty.js +6 -6
  785. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/components/InteractiveChartTooltip.sty.js.map +1 -1
  786. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.css +1 -1
  787. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.sty.js +1 -1
  788. package/esm/charts/core/components/tooltip/InteractiveChartTooltip/headers/HeaderTooltip.sty.js.map +1 -1
  789. package/esm/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.css +1 -1
  790. package/esm/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.sty.js +1 -1
  791. package/esm/charts/core/components/tooltip/section-components/TooltipFooter/TooltipFooter.sty.js.map +1 -1
  792. package/esm/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.css +2 -2
  793. package/esm/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.sty.js +1 -1
  794. package/esm/charts/core/components/tooltip/section-components/TooltipHeader/TooltipHeader.sty.js.map +1 -1
  795. package/esm/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.css +1 -1
  796. package/esm/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.sty.js +1 -1
  797. package/esm/charts/core/components/tooltip/section-components/TooltipInfoContent/TooltipInfoContent.sty.js.map +1 -1
  798. package/esm/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.css +3 -3
  799. package/esm/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.sty.js +2 -2
  800. package/esm/charts/core/components/tooltip/section-components/TooltipItem/TooltipItem.sty.js.map +1 -1
  801. package/esm/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.css +1 -1
  802. package/esm/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.sty.js +1 -1
  803. package/esm/charts/core/components/tooltip/section-components/TooltipSymbolContent/TooltipSymbolContent.sty.js.map +1 -1
  804. package/esm/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.css +2 -2
  805. package/esm/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.sty.js +2 -2
  806. package/esm/charts/core/components/tooltip/section-components/VirtualizedTooltipBody/VirtualizedTooltipBody.sty.js.map +1 -1
  807. package/esm/charts/core/components/tooltip/shared/styles/SeriesBasedContent.css +12 -12
  808. package/esm/charts/core/components/tooltip/shared/styles/SeriesBasedContent.sty.js +7 -7
  809. package/esm/charts/core/components/tooltip/shared/styles/SeriesBasedContent.sty.js.map +1 -1
  810. package/esm/charts/core/components/tooltip/shared/styles/TooltipBody.css +1 -1
  811. package/esm/charts/core/components/tooltip/shared/styles/TooltipBody.sty.js +1 -1
  812. package/esm/charts/core/components/tooltip/shared/styles/TooltipBody.sty.js.map +1 -1
  813. package/esm/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.css +1 -1
  814. package/esm/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.sty.js +1 -1
  815. package/esm/charts/core/components/tooltip-atoms/components/HeaderChipAtom/HeaderChipAtom.sty.js.map +1 -1
  816. package/esm/charts/core/components/tooltip-atoms/components/styles.css +4 -4
  817. package/esm/charts/core/components/tooltip-atoms/components/styles.sty.js +4 -4
  818. package/esm/charts/core/components/tooltip-atoms/components/styles.sty.js.map +1 -1
  819. package/esm/charts/core/components/zoom/ZoomCursors.css +2 -2
  820. package/esm/charts/core/components/zoom/ZoomCursors.sty.js +3 -3
  821. package/esm/charts/core/components/zoom/ZoomCursors.sty.js.map +1 -1
  822. package/esm/charts/core/context/ChartVariantContext.js +6 -0
  823. package/esm/charts/core/context/ChartVariantContext.js.map +7 -0
  824. package/esm/charts/core/typographyStyles.css +1 -1
  825. package/esm/charts/core/typographyStyles.sty.js +1 -1
  826. package/esm/charts/core/typographyStyles.sty.js.map +1 -1
  827. package/esm/charts/core/utils/binary-search.js.map +1 -1
  828. package/esm/charts/core/utils/find-matching-threshold.js +1 -1
  829. package/esm/charts/core/utils/find-matching-threshold.js.map +2 -2
  830. package/esm/charts/core/utils/get-primary-modifier-key.js +8 -0
  831. package/esm/charts/core/utils/get-primary-modifier-key.js.map +7 -0
  832. package/esm/charts/flame/flame-chart/FlameChart.js +153 -0
  833. package/esm/charts/flame/flame-chart/FlameChart.js.map +7 -0
  834. package/esm/charts/flame/flame-graph/FlameGraph.js +152 -0
  835. package/esm/charts/flame/flame-graph/FlameGraph.js.map +7 -0
  836. package/esm/charts/flame/shared/constants.js +22 -0
  837. package/esm/charts/flame/shared/constants.js.map +7 -0
  838. package/esm/charts/flame/shared/types/flame-chart.js +1 -0
  839. package/esm/charts/flame/shared/utils/aggregate-spans-to-flame-graph.js +100 -0
  840. package/esm/charts/flame/shared/utils/aggregate-spans-to-flame-graph.js.map +7 -0
  841. package/esm/charts/flame/shared/utils/format-flame-value.js +10 -0
  842. package/esm/charts/flame/shared/utils/format-flame-value.js.map +7 -0
  843. package/esm/charts/flame/shared/utils/order-spans-hierarchically.js +63 -0
  844. package/esm/charts/flame/shared/utils/order-spans-hierarchically.js.map +7 -0
  845. package/esm/charts/gantt-chart/GanttChartLine.css +1 -1
  846. package/esm/charts/gantt-chart/GanttChartLine.sty.js +1 -1
  847. package/esm/charts/gantt-chart/GanttChartLine.sty.js.map +1 -1
  848. package/esm/charts/gantt-chart/components/GanttChartLineRenderer.css +1 -1
  849. package/esm/charts/gantt-chart/components/GanttChartLineRenderer.sty.js +1 -1
  850. package/esm/charts/gantt-chart/components/GanttChartLineRenderer.sty.js.map +1 -1
  851. package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.css +1 -1
  852. package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.js +1 -1
  853. package/esm/charts/gantt-chart/components/tooltip/GanttChartTooltip.sty.js.map +1 -1
  854. package/esm/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.css +1 -1
  855. package/esm/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.sty.js +1 -1
  856. package/esm/charts/gauge/components/GaugeChartLayout/GaugeChartLayout.sty.js.map +1 -1
  857. package/esm/charts/gauge/components/GaugeLabel/GaugeLabel.css +6 -6
  858. package/esm/charts/gauge/components/GaugeLabel/GaugeLabel.sty.js +3 -3
  859. package/esm/charts/gauge/components/GaugeLabel/GaugeLabel.sty.js.map +1 -1
  860. package/esm/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.css +3 -3
  861. package/esm/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.sty.js +1 -1
  862. package/esm/charts/gauge/components/GaugeLabelsWrapper/GaugeLabelsWrapper.sty.js.map +1 -1
  863. package/esm/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.css +4 -4
  864. package/esm/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.sty.js +3 -3
  865. package/esm/charts/gauge/components/GaugeLayoutOverlay/GaugeLayoutOverlay.sty.js.map +1 -1
  866. package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.css +2 -2
  867. package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js +2 -2
  868. package/esm/charts/gauge/components/GaugeResponsiveLabel/GaugeResponsiveLabel.sty.js.map +1 -1
  869. package/esm/charts/gauge/components/GaugeThresholdIntervalArcs.js +5 -2
  870. package/esm/charts/gauge/components/GaugeThresholdIntervalArcs.js.map +2 -2
  871. package/esm/charts/gauge/constants.js +3 -0
  872. package/esm/charts/gauge/constants.js.map +2 -2
  873. package/esm/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.js +9 -0
  874. package/esm/charts/gauge/contexts/GaugeChartShowThresholdIndicatorsContext.js.map +7 -0
  875. package/esm/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.js +7 -0
  876. package/esm/charts/gauge/hooks/useGaugeChartShowThresholdIndicatorsContext.js.map +7 -0
  877. package/esm/charts/gauge/providers/GaugeChartProviders.js +21 -13
  878. package/esm/charts/gauge/providers/GaugeChartProviders.js.map +2 -2
  879. package/esm/charts/gauge/slots/ThresholdIndicator.js.map +2 -2
  880. package/esm/charts/gauge/utils/build-gauge-chart-config.js +2 -0
  881. package/esm/charts/gauge/utils/build-gauge-chart-config.js.map +2 -2
  882. package/esm/charts/gauge/utils/build-threshold-interval-arcs.js +18 -13
  883. package/esm/charts/gauge/utils/build-threshold-interval-arcs.js.map +2 -2
  884. package/esm/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.css +1 -1
  885. package/esm/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.sty.js +1 -1
  886. package/esm/charts/histogram/components/axes/HistogramValueBottomAxisArea/HistogramValueBottomAxisArea.sty.js.map +1 -1
  887. package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.css +1 -1
  888. package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.sty.js +1 -1
  889. package/esm/charts/histogram/components/overlays/HistogramExplore/HistogramTooltip.sty.js.map +1 -1
  890. package/esm/charts/histogram/components/overlays/HistogramOverlays.css +2 -2
  891. package/esm/charts/histogram/components/overlays/HistogramOverlays.sty.js +2 -2
  892. package/esm/charts/histogram/components/overlays/HistogramOverlays.sty.js.map +1 -1
  893. package/esm/charts/histogram/components/toolbar/PanButton.js +24 -3
  894. package/esm/charts/histogram/components/toolbar/PanButton.js.map +2 -2
  895. package/esm/charts/histogram/components/toolbar/ZoomInOutButtons.js +7 -3
  896. package/esm/charts/histogram/components/toolbar/ZoomInOutButtons.js.map +2 -2
  897. package/esm/charts/histogram/components/toolbar/ZoomModeButton.js +9 -4
  898. package/esm/charts/histogram/components/toolbar/ZoomModeButton.js.map +2 -2
  899. package/esm/charts/honeycomb/HoneycombChart.css +1 -1
  900. package/esm/charts/honeycomb/HoneycombChart.js.map +2 -2
  901. package/esm/charts/honeycomb/HoneycombChart.sty.js +1 -1
  902. package/esm/charts/honeycomb/HoneycombChart.sty.js.map +1 -1
  903. package/esm/charts/honeycomb/components/HiveOverlay.css +1 -1
  904. package/esm/charts/honeycomb/components/HiveOverlay.sty.js +1 -1
  905. package/esm/charts/honeycomb/components/HiveOverlay.sty.js.map +1 -1
  906. package/esm/charts/honeycomb/components/canvas/HiveCanvasLayout.css +1 -1
  907. package/esm/charts/honeycomb/components/canvas/HiveCanvasLayout.sty.js +1 -1
  908. package/esm/charts/honeycomb/components/canvas/HiveCanvasLayout.sty.js.map +1 -1
  909. package/esm/charts/index.js +6 -0
  910. package/esm/charts/index.js.map +2 -2
  911. package/esm/charts/meter-bar/multi-meter-bar/MultiMeterBarChart.js +8 -1
  912. package/esm/charts/meter-bar/multi-meter-bar/MultiMeterBarChart.js.map +2 -2
  913. package/esm/charts/meter-bar/multi-meter-bar/types/multi-meter-bar-chart.js.map +2 -2
  914. package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.css +18 -15
  915. package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.js +15 -5
  916. package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.js.map +2 -2
  917. package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js +12 -10
  918. package/esm/charts/meter-bar/shared/components/meter-bar-layout/MeterBarLayout.sty.js.map +2 -2
  919. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.css +2 -2
  920. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.sty.js +1 -1
  921. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Icon/Icon.sty.js.map +1 -1
  922. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.css +1 -1
  923. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.sty.js +1 -1
  924. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Label/Label.sty.js.map +1 -1
  925. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.css +1 -1
  926. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.sty.js +1 -1
  927. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Max/Max.sty.js.map +1 -1
  928. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.css +1 -1
  929. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.sty.js +1 -1
  930. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Min/Min.sty.js.map +1 -1
  931. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js +10 -0
  932. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Thresholds.js.map +7 -0
  933. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.css +1 -1
  934. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.sty.js +1 -1
  935. package/esm/charts/meter-bar/shared/components/meter-bar-layout/slots/Value/Value.sty.js.map +1 -1
  936. package/esm/charts/meter-bar/shared/components/meter-bar-layout/utils/extract-slots.js +3 -0
  937. package/esm/charts/meter-bar/shared/components/meter-bar-layout/utils/extract-slots.js.map +2 -2
  938. package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.css +1 -1
  939. package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js +1 -2
  940. package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.js.map +2 -2
  941. package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.sty.js +1 -1
  942. package/esm/charts/meter-bar/shared/components/meter-bar-plot/MeterBarPlot.sty.js.map +1 -1
  943. package/esm/charts/meter-bar/shared/styles/element-size.css +4 -4
  944. package/esm/charts/meter-bar/shared/styles/element-size.sty.js +1 -1
  945. package/esm/charts/meter-bar/shared/styles/element-size.sty.js.map +1 -1
  946. package/esm/charts/meter-bar/shared/styles.css +1 -1
  947. package/esm/charts/meter-bar/shared/styles.sty.js +1 -1
  948. package/esm/charts/meter-bar/shared/styles.sty.js.map +1 -1
  949. package/esm/charts/meter-bar/shared/utils/collapse-threshold-show-indicators.js +20 -0
  950. package/esm/charts/meter-bar/shared/utils/collapse-threshold-show-indicators.js.map +7 -0
  951. package/esm/charts/meter-bar/single-meter-bar/MeterBarChart.js +10 -1
  952. package/esm/charts/meter-bar/single-meter-bar/MeterBarChart.js.map +2 -2
  953. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartOverlay/MeterBarChartOverlayWithTooltip.js +4 -1
  954. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartOverlay/MeterBarChartOverlayWithTooltip.js.map +2 -2
  955. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartPlotArea.js +3 -17
  956. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartPlotArea.js.map +2 -2
  957. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.css +6 -0
  958. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.js +71 -0
  959. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.js.map +7 -0
  960. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js +6 -0
  961. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIntervals/MeterBarChartThresholdIntervals.sty.js.map +7 -0
  962. package/esm/charts/meter-bar/single-meter-bar/constants.js +18 -2
  963. package/esm/charts/meter-bar/single-meter-bar/constants.js.map +2 -2
  964. package/esm/charts/meter-bar/single-meter-bar/context/MeterBarChartInternalConfigContext.js.map +2 -2
  965. package/esm/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.js +2 -4
  966. package/esm/charts/meter-bar/single-meter-bar/hooks/useMeterBarChartThresholds.js.map +2 -2
  967. package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartInternalDataProviders.js +7 -3
  968. package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartInternalDataProviders.js.map +2 -2
  969. package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartProviders.js +2 -1
  970. package/esm/charts/meter-bar/single-meter-bar/providers/MeterBarChartProviders.js.map +2 -2
  971. package/esm/charts/meter-bar/single-meter-bar/types/default.js +3 -2
  972. package/esm/charts/meter-bar/single-meter-bar/types/default.js.map +2 -2
  973. package/esm/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js +6 -5
  974. package/esm/charts/meter-bar/single-meter-bar/utils/apply-threshold-defaults.js.map +2 -2
  975. package/esm/charts/meter-bar/single-meter-bar/utils/build-meter-bar-chart-config.js +3 -0
  976. package/esm/charts/meter-bar/single-meter-bar/utils/build-meter-bar-chart-config.js.map +2 -2
  977. package/esm/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.js +29 -0
  978. package/esm/charts/meter-bar/single-meter-bar/utils/build-threshold-intervals.js.map +7 -0
  979. package/esm/charts/meter-bar/single-meter-bar/utils/build-thresholds.js +5 -5
  980. package/esm/charts/meter-bar/single-meter-bar/utils/build-thresholds.js.map +2 -2
  981. package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.js +49 -0
  982. package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-interval-sizing.js.map +7 -0
  983. package/esm/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js +12 -0
  984. package/esm/charts/meter-bar/single-meter-bar/utils/resolve-show-threshold-indicators.js.map +7 -0
  985. package/esm/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.css +1 -1
  986. package/esm/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.sty.js +1 -1
  987. package/esm/charts/pie/components/InnerWrapper/components/InnerContainer/InnerContainer.sty.js.map +1 -1
  988. package/esm/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.css +1 -1
  989. package/esm/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.sty.js +1 -1
  990. package/esm/charts/pie/components/InnerWrapper/components/InnerDonut/InnerDonut.sty.js.map +1 -1
  991. package/esm/charts/pie/components/PieChartInternal.js +6 -0
  992. package/esm/charts/pie/components/PieChartInternal.js.map +2 -2
  993. package/esm/charts/pie/components/PieChartOverlays/PieChartOverlays.css +1 -1
  994. package/esm/charts/pie/components/PieChartOverlays/PieChartOverlays.sty.js +1 -1
  995. package/esm/charts/pie/components/PieChartOverlays/PieChartOverlays.sty.js.map +1 -1
  996. package/esm/charts/pie/components/PieChartPlot/PieChartPlot.css +1 -1
  997. package/esm/charts/pie/components/PieChartPlot/PieChartPlot.sty.js +1 -1
  998. package/esm/charts/pie/components/PieChartPlot/PieChartPlot.sty.js.map +1 -1
  999. package/esm/charts/sankey-chart/SankeyChart.css +5 -0
  1000. package/esm/charts/sankey-chart/SankeyChart.js +33 -0
  1001. package/esm/charts/sankey-chart/SankeyChart.js.map +7 -0
  1002. package/esm/charts/sankey-chart/SankeyChart.sty.js +6 -0
  1003. package/esm/charts/sankey-chart/SankeyChart.sty.js.map +7 -0
  1004. package/esm/charts/sankey-chart/SankeyChartRoot.js +68 -0
  1005. package/esm/charts/sankey-chart/SankeyChartRoot.js.map +7 -0
  1006. package/esm/charts/sankey-chart/components/SankeyCanvas.css +5 -0
  1007. package/esm/charts/sankey-chart/components/SankeyCanvas.js +28 -0
  1008. package/esm/charts/sankey-chart/components/SankeyCanvas.js.map +7 -0
  1009. package/esm/charts/sankey-chart/components/SankeyCanvas.sty.js +6 -0
  1010. package/esm/charts/sankey-chart/components/SankeyCanvas.sty.js.map +7 -0
  1011. package/esm/charts/sankey-chart/components/SankeyGraphArea.js +11 -0
  1012. package/esm/charts/sankey-chart/components/SankeyGraphArea.js.map +7 -0
  1013. package/esm/charts/sankey-chart/constants.js +18 -0
  1014. package/esm/charts/sankey-chart/constants.js.map +7 -0
  1015. package/esm/charts/sankey-chart/context/SankeyData.context.js +10 -0
  1016. package/esm/charts/sankey-chart/context/SankeyData.context.js.map +7 -0
  1017. package/esm/charts/sankey-chart/context/SankeyNodes.context.js +7 -0
  1018. package/esm/charts/sankey-chart/context/SankeyNodes.context.js.map +7 -0
  1019. package/esm/charts/sankey-chart/context/SankeyTruncationMode.context.js +10 -0
  1020. package/esm/charts/sankey-chart/context/SankeyTruncationMode.context.js.map +7 -0
  1021. package/esm/charts/sankey-chart/hooks/use-draw-sankey.js +34 -0
  1022. package/esm/charts/sankey-chart/hooks/use-draw-sankey.js.map +7 -0
  1023. package/esm/charts/sankey-chart/hooks/use-sankey-layout.js +24 -0
  1024. package/esm/charts/sankey-chart/hooks/use-sankey-layout.js.map +7 -0
  1025. package/esm/charts/sankey-chart/providers/SankeyConfigProvider.js +13 -0
  1026. package/esm/charts/sankey-chart/providers/SankeyConfigProvider.js.map +7 -0
  1027. package/esm/charts/sankey-chart/providers/SankeyDataProvider.js +44 -0
  1028. package/esm/charts/sankey-chart/providers/SankeyDataProvider.js.map +7 -0
  1029. package/esm/charts/sankey-chart/slots/Nodes.js +6 -0
  1030. package/esm/charts/sankey-chart/slots/Nodes.js.map +7 -0
  1031. package/esm/charts/sankey-chart/types/sankey-internal.js +1 -0
  1032. package/esm/charts/sankey-chart/types/sankey-internal.js.map +7 -0
  1033. package/esm/charts/sankey-chart/types/sankey-props.js +1 -0
  1034. package/esm/charts/sankey-chart/types/sankey-props.js.map +7 -0
  1035. package/esm/charts/sankey-chart/types/sankey.js +1 -0
  1036. package/esm/charts/sankey-chart/types/sankey.js.map +7 -0
  1037. package/esm/charts/sankey-chart/utils/build-sankey-graph.js +52 -0
  1038. package/esm/charts/sankey-chart/utils/build-sankey-graph.js.map +7 -0
  1039. package/esm/charts/sankey-chart/utils/generate-sankey-layout.js +33 -0
  1040. package/esm/charts/sankey-chart/utils/generate-sankey-layout.js.map +7 -0
  1041. package/esm/charts/sankey-chart/utils/get-sankey-is-empty.js +7 -0
  1042. package/esm/charts/sankey-chart/utils/get-sankey-is-empty.js.map +7 -0
  1043. package/esm/charts/sankey-chart/utils/iterate-slots.js +16 -0
  1044. package/esm/charts/sankey-chart/utils/iterate-slots.js.map +7 -0
  1045. package/esm/charts/sankey-chart/vendor/d3-sankey/align.js +15 -0
  1046. package/esm/charts/sankey-chart/vendor/d3-sankey/align.js.map +7 -0
  1047. package/esm/charts/sankey-chart/vendor/d3-sankey/constant.js +9 -0
  1048. package/esm/charts/sankey-chart/vendor/d3-sankey/constant.js.map +7 -0
  1049. package/esm/charts/sankey-chart/vendor/d3-sankey/index.js +15 -0
  1050. package/esm/charts/sankey-chart/vendor/d3-sankey/index.js.map +7 -0
  1051. package/esm/charts/sankey-chart/vendor/d3-sankey/link-horizontal.js +15 -0
  1052. package/esm/charts/sankey-chart/vendor/d3-sankey/link-horizontal.js.map +7 -0
  1053. package/esm/charts/sankey-chart/vendor/d3-sankey/sankey.js +432 -0
  1054. package/esm/charts/sankey-chart/vendor/d3-sankey/sankey.js.map +7 -0
  1055. package/esm/charts/sankey-chart/vendor/d3-sankey/types.js +1 -0
  1056. package/esm/charts/sankey-chart/vendor/d3-sankey/types.js.map +7 -0
  1057. package/esm/charts/single-value/SingleValue.css +1 -1
  1058. package/esm/charts/single-value/SingleValue.sty.js +1 -1
  1059. package/esm/charts/single-value/SingleValue.sty.js.map +1 -1
  1060. package/esm/charts/single-value-grid/SingleValueGrid.css +2 -2
  1061. package/esm/charts/single-value-grid/SingleValueGrid.sty.js +1 -1
  1062. package/esm/charts/single-value-grid/SingleValueGrid.sty.js.map +1 -1
  1063. package/esm/charts/single-value-grid/components/GlobalFontSizeVariables.css +1 -1
  1064. package/esm/charts/single-value-grid/components/GlobalFontSizeVariables.sty.js +1 -1
  1065. package/esm/charts/single-value-grid/components/GlobalFontSizeVariables.sty.js.map +1 -1
  1066. package/esm/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.css +2 -2
  1067. package/esm/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js +1 -1
  1068. package/esm/charts/timeseries/components/axes/TimeseriesTimeBottomAxisArea/TimeseriesTimeBottomAxisArea.sty.js.map +1 -1
  1069. package/esm/charts/timeseries/components/overlays/TimeseriesChartOverlays.js +1 -5
  1070. package/esm/charts/timeseries/components/overlays/TimeseriesChartOverlays.js.map +2 -2
  1071. package/esm/charts/timeseries/components/overlays/TimeseriesOverlays.css +4 -4
  1072. package/esm/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js +4 -4
  1073. package/esm/charts/timeseries/components/overlays/TimeseriesOverlays.sty.js.map +1 -1
  1074. package/esm/charts/timeseries/components/thresholds/ThresholdIndicators.css +2 -2
  1075. package/esm/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js +2 -2
  1076. package/esm/charts/timeseries/components/thresholds/ThresholdIndicators.sty.js.map +1 -1
  1077. package/esm/charts/timeseries/components/toolbar/PanButton.js +23 -2
  1078. package/esm/charts/timeseries/components/toolbar/PanButton.js.map +2 -2
  1079. package/esm/charts/timeseries/components/toolbar/ZoomInOutButtons.js +7 -3
  1080. package/esm/charts/timeseries/components/toolbar/ZoomInOutButtons.js.map +2 -2
  1081. package/esm/charts/timeseries/components/toolbar/ZoomModeButton.js +9 -4
  1082. package/esm/charts/timeseries/components/toolbar/ZoomModeButton.js.map +2 -2
  1083. package/esm/charts/timeseries/constants.js +0 -2
  1084. package/esm/charts/timeseries/constants.js.map +2 -2
  1085. package/esm/charts/top-list/TopList.css +1 -1
  1086. package/esm/charts/top-list/TopList.js +72 -21
  1087. package/esm/charts/top-list/TopList.js.map +3 -3
  1088. package/esm/charts/top-list/TopList.sty.js +1 -1
  1089. package/esm/charts/top-list/TopList.sty.js.map +1 -1
  1090. package/esm/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.css +1 -1
  1091. package/esm/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.sty.js +1 -1
  1092. package/esm/charts/tree-map/components/TreeMapOverlay/TreeMapOverlay.sty.js.map +1 -1
  1093. package/esm/charts/tree-map/utils/to-hierarchical-props.js +2 -1
  1094. package/esm/charts/tree-map/utils/to-hierarchical-props.js.map +2 -2
  1095. package/esm/charts/xy-chart/XYChart.js +2 -0
  1096. package/esm/charts/xy-chart/XYChart.js.map +2 -2
  1097. package/esm/charts/xy-chart/components/axes/AxisArea.css +1 -1
  1098. package/esm/charts/xy-chart/components/axes/AxisArea.sty.js +1 -1
  1099. package/esm/charts/xy-chart/components/axes/AxisArea.sty.js.map +1 -1
  1100. package/esm/charts/xy-chart/components/axes/AxisTickWithTruncation.css +3 -3
  1101. package/esm/charts/xy-chart/components/axes/AxisTickWithTruncation.sty.js +3 -3
  1102. package/esm/charts/xy-chart/components/axes/AxisTickWithTruncation.sty.js.map +1 -1
  1103. package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.css +3 -3
  1104. package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js +3 -3
  1105. package/esm/charts/xy-chart/components/displays/BarDisplay/BarLabelOverlay.sty.js.map +1 -1
  1106. package/esm/charts/xy-chart/components/displays/RectLabelLayout.js +48 -0
  1107. package/esm/charts/xy-chart/components/displays/RectLabelLayout.js.map +7 -0
  1108. package/esm/charts/xy-chart/components/displays/RectLabelOverlay.css +19 -0
  1109. package/esm/charts/xy-chart/components/displays/RectLabelOverlay.js +116 -0
  1110. package/esm/charts/xy-chart/components/displays/RectLabelOverlay.js.map +7 -0
  1111. package/esm/charts/xy-chart/components/displays/RectLabelOverlay.sty.js +10 -0
  1112. package/esm/charts/xy-chart/components/displays/RectLabelOverlay.sty.js.map +7 -0
  1113. package/esm/charts/xy-chart/components/displays/rect-label-utils.js +39 -0
  1114. package/esm/charts/xy-chart/components/displays/rect-label-utils.js.map +7 -0
  1115. package/esm/charts/xy-chart/components/legend/XYLegend/xy-legend.css +1 -1
  1116. package/esm/charts/xy-chart/components/legend/XYLegend/xy-legend.sty.js +1 -1
  1117. package/esm/charts/xy-chart/components/legend/XYLegend/xy-legend.sty.js.map +1 -1
  1118. package/esm/charts/xy-chart/components/overlay/explore/HighlightedRectangleCanvas.js +31 -8
  1119. package/esm/charts/xy-chart/components/overlay/explore/HighlightedRectangleCanvas.js.map +2 -2
  1120. package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.css +1 -1
  1121. package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js +5 -3
  1122. package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.js.map +2 -2
  1123. package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.sty.js +1 -1
  1124. package/esm/charts/xy-chart/components/overlay/explore/XYChartCrosshair.sty.js.map +1 -1
  1125. package/esm/charts/xy-chart/components/overlay/explore/XYChartExplore.css +2 -2
  1126. package/esm/charts/xy-chart/components/overlay/explore/XYChartExplore.sty.js +2 -2
  1127. package/esm/charts/xy-chart/components/overlay/explore/XYChartExplore.sty.js.map +1 -1
  1128. package/esm/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.css +1 -1
  1129. package/esm/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.sty.js +1 -1
  1130. package/esm/charts/xy-chart/components/thresholds/XYChartThresholdIndicators.sty.js.map +1 -1
  1131. package/esm/charts/xy-chart/components/toolbar/DownloadDataButton.js +2 -2
  1132. package/esm/charts/xy-chart/components/toolbar/DownloadDataButton.js.map +2 -2
  1133. package/esm/charts/xy-chart/components/toolbar/PanButton.js +22 -6
  1134. package/esm/charts/xy-chart/components/toolbar/PanButton.js.map +2 -2
  1135. package/esm/charts/xy-chart/components/toolbar/XYChartToolbar.js +11 -3
  1136. package/esm/charts/xy-chart/components/toolbar/XYChartToolbar.js.map +2 -2
  1137. package/esm/charts/xy-chart/components/toolbar/ZoomInOutButtons.js +7 -3
  1138. package/esm/charts/xy-chart/components/toolbar/ZoomInOutButtons.js.map +2 -2
  1139. package/esm/charts/xy-chart/components/toolbar/ZoomModeButton.js +15 -6
  1140. package/esm/charts/xy-chart/components/toolbar/ZoomModeButton.js.map +2 -2
  1141. package/esm/charts/xy-chart/components/tooltip/utils/tooltip-styles.css +5 -5
  1142. package/esm/charts/xy-chart/components/tooltip/utils/tooltip-styles.sty.js +4 -4
  1143. package/esm/charts/xy-chart/components/tooltip/utils/tooltip-styles.sty.js.map +1 -1
  1144. package/esm/charts/xy-chart/constants/defaults.js +4 -0
  1145. package/esm/charts/xy-chart/constants/defaults.js.map +2 -2
  1146. package/esm/charts/xy-chart/hooks/useColorRule.js +2 -1
  1147. package/esm/charts/xy-chart/hooks/useColorRule.js.map +2 -2
  1148. package/esm/charts/xy-chart/layout/XYChartLayout.css +2 -2
  1149. package/esm/charts/xy-chart/layout/XYChartLayout.sty.js +2 -2
  1150. package/esm/charts/xy-chart/layout/XYChartLayout.sty.js.map +1 -1
  1151. package/esm/charts/xy-chart/processing-strategies/strategies/rect-series.js +5 -1
  1152. package/esm/charts/xy-chart/processing-strategies/strategies/rect-series.js.map +2 -2
  1153. package/esm/charts/xy-chart/processing-strategies/utils/access-datapoint/get-datapoints.js +11 -1
  1154. package/esm/charts/xy-chart/processing-strategies/utils/access-datapoint/get-datapoints.js.map +2 -2
  1155. package/esm/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js +7 -2
  1156. package/esm/charts/xy-chart/providers/XYChartOverlayPerformanceProvider.js.map +2 -2
  1157. package/esm/charts/xy-chart/types/xy-chart-internals.js.map +2 -2
  1158. package/esm/charts/xy-chart/utils/build-sorted-entries.js +43 -21
  1159. package/esm/charts/xy-chart/utils/build-sorted-entries.js.map +2 -2
  1160. package/esm/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.js +6 -2
  1161. package/esm/charts/xy-chart/utils/coloring/apply-color-rule-to-bar-series.js.map +2 -2
  1162. package/esm/charts/xy-chart/utils/coloring/get-color-from-rule.js +2 -2
  1163. package/esm/charts/xy-chart/utils/coloring/get-color-from-rule.js.map +2 -2
  1164. package/esm/charts/xy-chart/utils/get-bar-hit-box.js +76 -0
  1165. package/esm/charts/xy-chart/utils/get-bar-hit-box.js.map +7 -0
  1166. package/esm/charts/xy-chart/utils/is-in-pixel-range.js +7 -0
  1167. package/esm/charts/xy-chart/utils/is-in-pixel-range.js.map +7 -0
  1168. package/esm/charts/xy-chart/utils/query-hovered-grid.js +25 -22
  1169. package/esm/charts/xy-chart/utils/query-hovered-grid.js.map +2 -2
  1170. package/esm/charts/xy-chart/utils/query-hovered.js +36 -8
  1171. package/esm/charts/xy-chart/utils/query-hovered.js.map +2 -2
  1172. package/esm/charts/xy-chart/utils/query-shared.js +63 -39
  1173. package/esm/charts/xy-chart/utils/query-shared.js.map +2 -2
  1174. package/esm/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js +126 -28
  1175. package/esm/charts/xy-chart-adoption/categorical-bar/CategoricalBarToXY.js.map +2 -2
  1176. package/esm/charts/xy-chart-adoption/categorical-bar/iterate-slots.js +49 -1
  1177. package/esm/charts/xy-chart-adoption/categorical-bar/iterate-slots.js.map +3 -3
  1178. package/esm/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.js +3 -2
  1179. package/esm/charts/xy-chart-adoption/categorical-bar/resolve-categorical-color-support.js.map +2 -2
  1180. package/esm/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.js +26 -6
  1181. package/esm/charts/xy-chart-adoption/categorical-bar/transformer-data-to-xy.js.map +2 -2
  1182. package/esm/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.js +26 -0
  1183. package/esm/charts/xy-chart-adoption/categorical-bar/transformer-series-actions-to-xy.js.map +7 -0
  1184. package/esm/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.js +23 -0
  1185. package/esm/charts/xy-chart-adoption/categorical-bar/utils/map-axes-to-xy.js.map +7 -0
  1186. package/esm/charts/xy-chart-adoption/timeseries/TimeseriesToXY.js +16 -5
  1187. package/esm/charts/xy-chart-adoption/timeseries/TimeseriesToXY.js.map +2 -2
  1188. package/esm/charts/xy-chart-adoption/timeseries/types/timeseries.js.map +2 -2
  1189. package/esm/charts/xy-chart-adoption/timeseries/utils/render-series.js +3 -0
  1190. package/esm/charts/xy-chart-adoption/timeseries/utils/render-series.js.map +2 -2
  1191. package/esm/content/accordion/Accordion.css +14 -14
  1192. package/esm/content/accordion/Accordion.sty.js +8 -8
  1193. package/esm/content/accordion/Accordion.sty.js.map +1 -1
  1194. package/esm/content/accordion/AccordionSectionContent.js +1 -0
  1195. package/esm/content/accordion/AccordionSectionContent.js.map +2 -2
  1196. package/esm/content/ai-loading-indicator/AiLoadingIndicator.css +12 -12
  1197. package/esm/content/ai-loading-indicator/AiLoadingIndicator.sty.js +4 -4
  1198. package/esm/content/ai-loading-indicator/AiLoadingIndicator.sty.js.map +1 -1
  1199. package/esm/content/ai-response/AiResponse.css +5 -5
  1200. package/esm/content/ai-response/AiResponse.sty.js +2 -2
  1201. package/esm/content/ai-response/AiResponse.sty.js.map +1 -1
  1202. package/esm/content/avatar/Avatar.css +13 -13
  1203. package/esm/content/avatar/Avatar.sty.js +4 -4
  1204. package/esm/content/avatar/Avatar.sty.js.map +1 -1
  1205. package/esm/content/avatar-group/AvatarGroup.css +3 -3
  1206. package/esm/content/avatar-group/AvatarGroup.sty.js +2 -2
  1207. package/esm/content/avatar-group/AvatarGroup.sty.js.map +1 -1
  1208. package/esm/content/chip/BaseChip.css +40 -40
  1209. package/esm/content/chip/BaseChip.sty.js +5 -5
  1210. package/esm/content/chip/BaseChip.sty.js.map +1 -1
  1211. package/esm/content/chip/ChipContent.css +11 -11
  1212. package/esm/content/chip/ChipContent.sty.js +2 -2
  1213. package/esm/content/chip/ChipContent.sty.js.map +1 -1
  1214. package/esm/content/chip/ChipDeleteButton.css +19 -19
  1215. package/esm/content/chip/ChipDeleteButton.sty.js +4 -4
  1216. package/esm/content/chip/ChipDeleteButton.sty.js.map +1 -1
  1217. package/esm/content/chip/ChipKey.css +6 -6
  1218. package/esm/content/chip/ChipKey.sty.js +1 -1
  1219. package/esm/content/chip/ChipKey.sty.js.map +1 -1
  1220. package/esm/content/chip/GroupedChip.css +3 -3
  1221. package/esm/content/chip/GroupedChip.sty.js +3 -3
  1222. package/esm/content/chip/GroupedChip.sty.js.map +1 -1
  1223. package/esm/content/chip-group/ChipGroup.css +4 -4
  1224. package/esm/content/chip-group/ChipGroup.sty.js +1 -1
  1225. package/esm/content/chip-group/ChipGroup.sty.js.map +1 -1
  1226. package/esm/content/chip-group/Control.css +4 -4
  1227. package/esm/content/chip-group/Control.sty.js +1 -1
  1228. package/esm/content/chip-group/Control.sty.js.map +1 -1
  1229. package/esm/content/code-snippet/CodeHighlight.css +25 -25
  1230. package/esm/content/code-snippet/CodeHighlight.sty.js +6 -6
  1231. package/esm/content/code-snippet/CodeHighlight.sty.js.map +1 -1
  1232. package/esm/content/code-snippet/CodeSnippet.css +18 -18
  1233. package/esm/content/code-snippet/CodeSnippet.sty.js +4 -4
  1234. package/esm/content/code-snippet/CodeSnippet.sty.js.map +1 -1
  1235. package/esm/content/empty-state/EmptyState.css +28 -28
  1236. package/esm/content/empty-state/EmptyState.sty.js +7 -7
  1237. package/esm/content/empty-state/EmptyState.sty.js.map +1 -1
  1238. package/esm/content/empty-state/slot-components/Footer.css +1 -1
  1239. package/esm/content/empty-state/slot-components/Footer.sty.js +1 -1
  1240. package/esm/content/empty-state/slot-components/Footer.sty.js.map +1 -1
  1241. package/esm/content/empty-state/slot-components/Visual.css +3 -3
  1242. package/esm/content/empty-state/slot-components/Visual.sty.js +1 -1
  1243. package/esm/content/empty-state/slot-components/Visual.sty.js.map +1 -1
  1244. package/esm/content/expandable-text/ExpandableText.css +7 -7
  1245. package/esm/content/expandable-text/ExpandableText.sty.js +2 -2
  1246. package/esm/content/expandable-text/ExpandableText.sty.js.map +1 -1
  1247. package/esm/content/feature-highlight/FeatureHighlight.css +12 -12
  1248. package/esm/content/feature-highlight/FeatureHighlight.sty.js +3 -3
  1249. package/esm/content/feature-highlight/FeatureHighlight.sty.js.map +1 -1
  1250. package/esm/content/health-indicator/styles.css +23 -23
  1251. package/esm/content/health-indicator/styles.sty.js +1 -1
  1252. package/esm/content/health-indicator/styles.sty.js.map +1 -1
  1253. package/esm/content/information-overlay/InformationOverlay.css +25 -25
  1254. package/esm/content/information-overlay/InformationOverlay.sty.js +5 -5
  1255. package/esm/content/information-overlay/InformationOverlay.sty.js.map +1 -1
  1256. package/esm/content/keyboard-shortcut/KeyboardShortcut.css +14 -14
  1257. package/esm/content/keyboard-shortcut/KeyboardShortcut.js +4 -2
  1258. package/esm/content/keyboard-shortcut/KeyboardShortcut.js.map +2 -2
  1259. package/esm/content/keyboard-shortcut/KeyboardShortcut.sty.js +2 -2
  1260. package/esm/content/keyboard-shortcut/KeyboardShortcut.sty.js.map +1 -1
  1261. package/esm/content/markdown/Markdown.css +3 -3
  1262. package/esm/content/markdown/Markdown.sty.js +1 -1
  1263. package/esm/content/markdown/Markdown.sty.js.map +1 -1
  1264. package/esm/content/markdown/transformers/typography-mapping.css +9 -9
  1265. package/esm/content/markdown/transformers/typography-mapping.sty.js +6 -6
  1266. package/esm/content/markdown/transformers/typography-mapping.sty.js.map +1 -1
  1267. package/esm/content/microguide/Microguide.css +11 -11
  1268. package/esm/content/microguide/Microguide.sty.js +7 -7
  1269. package/esm/content/microguide/Microguide.sty.js.map +1 -1
  1270. package/esm/content/progress/ProgressBar.css +71 -71
  1271. package/esm/content/progress/ProgressBar.sty.js +5 -5
  1272. package/esm/content/progress/ProgressBar.sty.js.map +1 -1
  1273. package/esm/content/progress/ProgressBarIcon.css +2 -2
  1274. package/esm/content/progress/ProgressBarIcon.sty.js +1 -1
  1275. package/esm/content/progress/ProgressBarIcon.sty.js.map +1 -1
  1276. package/esm/content/progress/ProgressBarLabel.css +3 -3
  1277. package/esm/content/progress/ProgressBarLabel.sty.js +1 -1
  1278. package/esm/content/progress/ProgressBarLabel.sty.js.map +1 -1
  1279. package/esm/content/progress/ProgressBarValue.css +5 -5
  1280. package/esm/content/progress/ProgressBarValue.sty.js +1 -1
  1281. package/esm/content/progress/ProgressBarValue.sty.js.map +1 -1
  1282. package/esm/content/progress/ProgressCircle.css +40 -40
  1283. package/esm/content/progress/ProgressCircle.sty.js +5 -5
  1284. package/esm/content/progress/ProgressCircle.sty.js.map +1 -1
  1285. package/esm/content/shared-components/Visual.css +3 -3
  1286. package/esm/content/shared-components/Visual.sty.js +1 -1
  1287. package/esm/content/shared-components/Visual.sty.js.map +1 -1
  1288. package/esm/content/skeleton/Skeleton.css +7 -7
  1289. package/esm/content/skeleton/Skeleton.sty.js +5 -5
  1290. package/esm/content/skeleton/Skeleton.sty.js.map +1 -1
  1291. package/esm/content/terminology-overlay/TerminologyOverlay.css +4 -4
  1292. package/esm/content/terminology-overlay/TerminologyOverlay.sty.js +1 -1
  1293. package/esm/content/terminology-overlay/TerminologyOverlay.sty.js.map +1 -1
  1294. package/esm/core/components/app-root/AppRoot.css +73 -76
  1295. package/esm/core/components/app-root/AppRoot.sty.js +1 -1
  1296. package/esm/core/components/app-root/AppRoot.sty.js.map +1 -1
  1297. package/esm/core/components/app-root/visual-refresh-overrides.js +76 -67
  1298. package/esm/core/components/app-root/visual-refresh-overrides.js.map +2 -2
  1299. package/esm/core/components/visually-hidden/VisuallyHidden.css +1 -1
  1300. package/esm/core/components/visually-hidden/VisuallyHidden.sty.js +1 -1
  1301. package/esm/core/components/visually-hidden/VisuallyHidden.sty.js.map +1 -1
  1302. package/esm/core/sdk/sdk-logger.js +2 -2
  1303. package/esm/core/styles/defaultChartValues.css +1 -1
  1304. package/esm/core/styles/defaultChartValues.sty.js +1 -1
  1305. package/esm/core/styles/defaultChartValues.sty.js.map +1 -1
  1306. package/esm/core/styles/diagnostic-tooltip.css +27 -0
  1307. package/esm/core/styles/diagnostic-tooltip.sty.js +10 -0
  1308. package/esm/core/styles/diagnostic-tooltip.sty.js.map +7 -0
  1309. package/esm/core/styles/focusRing.css +66 -66
  1310. package/esm/core/styles/focusRing.sty.js +2 -2
  1311. package/esm/core/styles/focusRing.sty.js.map +1 -1
  1312. package/esm/core/styles/focusRingStatic.css +34 -34
  1313. package/esm/core/styles/focusRingStatic.sty.js +1 -1
  1314. package/esm/core/styles/focusRingStatic.sty.js.map +1 -1
  1315. package/esm/core/styles/virtualFocus.css +2 -2
  1316. package/esm/core/styles/virtualFocus.sty.js +1 -1
  1317. package/esm/core/styles/virtualFocus.sty.js.map +1 -1
  1318. package/esm/core/time/helpers.js +17 -9
  1319. package/esm/core/time/helpers.js.map +2 -2
  1320. package/esm/core/time/timeErrorMessages.js +82 -0
  1321. package/esm/core/time/timeErrorMessages.js.map +7 -0
  1322. package/esm/core/time/validation.js +39 -79
  1323. package/esm/core/time/validation.js.map +2 -2
  1324. package/esm/core/utils/colorUtils.css +60 -60
  1325. package/esm/core/utils/colorUtils.sty.js +2 -2
  1326. package/esm/core/utils/colorUtils.sty.js.map +1 -1
  1327. package/esm/core/utils/diagnostic-tooltip/render-diagnostic-message.js +27 -0
  1328. package/esm/core/utils/diagnostic-tooltip/render-diagnostic-message.js.map +7 -0
  1329. package/esm/editors/base-code-editor/BaseCodeEditor.css +222 -210
  1330. package/esm/editors/base-code-editor/BaseCodeEditor.js +24 -4
  1331. package/esm/editors/base-code-editor/BaseCodeEditor.js.map +2 -2
  1332. package/esm/editors/base-code-editor/BaseCodeEditor.sty.js +3 -2
  1333. package/esm/editors/base-code-editor/BaseCodeEditor.sty.js.map +2 -2
  1334. package/esm/editors/base-code-editor/configuration/configure-diagnostics.js +9 -1
  1335. package/esm/editors/base-code-editor/configuration/configure-diagnostics.js.map +2 -2
  1336. package/esm/editors/base-code-editor/configuration/configure-lint-gutter.js +92 -0
  1337. package/esm/editors/base-code-editor/configuration/configure-lint-gutter.js.map +7 -0
  1338. package/esm/editors/base-code-editor/configuration/getDefaultConfigurations.js +16 -9
  1339. package/esm/editors/base-code-editor/configuration/getDefaultConfigurations.js.map +2 -2
  1340. package/esm/editors/base-code-editor/utils/string-utils.js +9 -0
  1341. package/esm/editors/base-code-editor/utils/string-utils.js.map +7 -0
  1342. package/esm/editors/code-editor/CodeEditor.js +4 -0
  1343. package/esm/editors/code-editor/CodeEditor.js.map +2 -2
  1344. package/esm/editors/code-editor/languages/languages.js +12 -1
  1345. package/esm/editors/code-editor/languages/languages.js.map +2 -2
  1346. package/esm/editors/dql-editor/DQLEditor.js.map +1 -1
  1347. package/esm/editors/dql-editor/actions-menu/ActionsMenu.css +10 -10
  1348. package/esm/editors/dql-editor/actions-menu/ActionsMenu.sty.js +5 -5
  1349. package/esm/editors/dql-editor/actions-menu/ActionsMenu.sty.js.map +1 -1
  1350. package/esm/editors/dql-editor/dql/SuggestionPart.css +1 -1
  1351. package/esm/editors/dql-editor/dql/SuggestionPart.sty.js +1 -1
  1352. package/esm/editors/dql-editor/dql/SuggestionPart.sty.js.map +1 -1
  1353. package/esm/editors/dql-editor/dql/SuggestionsInfoSection.css +7 -7
  1354. package/esm/editors/dql-editor/dql/SuggestionsInfoSection.sty.js +3 -3
  1355. package/esm/editors/dql-editor/dql/SuggestionsInfoSection.sty.js.map +1 -1
  1356. package/esm/editors/dql-editor/dql/dql-language.js +2 -2
  1357. package/esm/editors/dql-editor/dql/dql-language.js.map +2 -2
  1358. package/esm/editors/dql-editor/dql/dql-linter.js +16 -0
  1359. package/esm/editors/dql-editor/dql/dql-linter.js.map +2 -2
  1360. package/esm/editors/dql-editor/dql/fuzzy-match.js +26 -17
  1361. package/esm/editors/dql-editor/dql/fuzzy-match.js.map +2 -2
  1362. package/esm/editors/dql-editor/dql/suggestion-autocompletions.js +44 -10
  1363. package/esm/editors/dql-editor/dql/suggestion-autocompletions.js.map +2 -2
  1364. package/esm/editors/dql-editor/dql/token-type-label.js +113 -0
  1365. package/esm/editors/dql-editor/dql/token-type-label.js.map +7 -0
  1366. package/esm/filters/filter/ResetButton.js +10 -6
  1367. package/esm/filters/filter/ResetButton.js.map +2 -2
  1368. package/esm/filters/filter-field/FilterField.css +130 -147
  1369. package/esm/filters/filter-field/FilterField.js +121 -27
  1370. package/esm/filters/filter-field/FilterField.js.map +2 -2
  1371. package/esm/filters/filter-field/FilterField.sty.js +29 -28
  1372. package/esm/filters/filter-field/FilterField.sty.js.map +2 -2
  1373. package/esm/filters/filter-field/components/FilterFieldSuffixButtons.css +3 -3
  1374. package/esm/filters/filter-field/components/FilterFieldSuffixButtons.sty.js +3 -3
  1375. package/esm/filters/filter-field/components/FilterFieldSuffixButtons.sty.js.map +1 -1
  1376. package/esm/filters/filter-field/components/FilterStatement.css +14 -14
  1377. package/esm/filters/filter-field/components/FilterStatement.js +6 -8
  1378. package/esm/filters/filter-field/components/FilterStatement.js.map +2 -2
  1379. package/esm/filters/filter-field/components/FilterStatement.sty.js +8 -7
  1380. package/esm/filters/filter-field/components/FilterStatement.sty.js.map +2 -2
  1381. package/esm/filters/filter-field/error-fallback/filter-value-obfuscation-util.js +2 -2
  1382. package/esm/filters/filter-field/error-fallback/filter-value-obfuscation-util.js.map +2 -2
  1383. package/esm/filters/filter-field/hooks/useFilterFieldLinting.js +3 -0
  1384. package/esm/filters/filter-field/hooks/useFilterFieldLinting.js.map +2 -2
  1385. package/esm/filters/filter-field/messages.js +5 -0
  1386. package/esm/filters/filter-field/messages.js.map +2 -2
  1387. package/esm/filters/filter-field/parser/character-codes.js +3 -0
  1388. package/esm/filters/filter-field/parser/character-codes.js.map +2 -2
  1389. package/esm/filters/filter-field/parser/external-tokenizers/json-path-identifier-tokenizer.js +7 -4
  1390. package/esm/filters/filter-field/parser/external-tokenizers/json-path-identifier-tokenizer.js.map +2 -2
  1391. package/esm/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.js +17 -0
  1392. package/esm/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.js.map +7 -0
  1393. package/esm/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.js +22 -0
  1394. package/esm/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.js.map +7 -0
  1395. package/esm/filters/filter-field/parser/external-tokenizers/text-tokenizer.js +1 -1
  1396. package/esm/filters/filter-field/parser/external-tokenizers/text-tokenizer.js.map +1 -1
  1397. package/esm/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.js +22 -0
  1398. package/esm/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.js.map +7 -0
  1399. package/esm/filters/filter-field/parser/external-tokenizers/value-tokenizer.js +13 -14
  1400. package/esm/filters/filter-field/parser/external-tokenizers/value-tokenizer.js.map +2 -2
  1401. package/esm/filters/filter-field/parser/parser-context.js +1 -0
  1402. package/esm/filters/filter-field/parser/parser-context.js.map +2 -2
  1403. package/esm/filters/filter-field/parser/parser.js +66 -59
  1404. package/esm/filters/filter-field/parser/parser.js.map +2 -2
  1405. package/esm/filters/filter-field/parser/parser.terms.js +7 -2
  1406. package/esm/filters/filter-field/parser/parser.terms.js.map +2 -2
  1407. package/esm/filters/filter-field/parser/utils/accept-free-text.js +9 -11
  1408. package/esm/filters/filter-field/parser/utils/accept-free-text.js.map +2 -2
  1409. package/esm/filters/filter-field/parser/utils/scan-identifier.js +83 -0
  1410. package/esm/filters/filter-field/parser/utils/scan-identifier.js.map +7 -0
  1411. package/esm/filters/filter-field/state/recent-pinned-store.js +3 -0
  1412. package/esm/filters/filter-field/state/recent-pinned-store.js.map +2 -2
  1413. package/esm/filters/filter-field/suggestions/RecentPinnedSuggestionItem.css +9 -9
  1414. package/esm/filters/filter-field/suggestions/RecentPinnedSuggestionItem.sty.js +2 -2
  1415. package/esm/filters/filter-field/suggestions/RecentPinnedSuggestionItem.sty.js.map +1 -1
  1416. package/esm/filters/filter-field/suggestions/Suggestion.css +24 -24
  1417. package/esm/filters/filter-field/suggestions/Suggestion.sty.js +16 -16
  1418. package/esm/filters/filter-field/suggestions/Suggestion.sty.js.map +1 -1
  1419. package/esm/filters/filter-field/suggestions/SuggestionDetails.css +2 -2
  1420. package/esm/filters/filter-field/suggestions/SuggestionDetails.sty.js +2 -2
  1421. package/esm/filters/filter-field/suggestions/SuggestionDetails.sty.js.map +1 -1
  1422. package/esm/filters/filter-field/suggestions/SuggestionGroup.css +6 -6
  1423. package/esm/filters/filter-field/suggestions/SuggestionGroup.sty.js +3 -3
  1424. package/esm/filters/filter-field/suggestions/SuggestionGroup.sty.js.map +1 -1
  1425. package/esm/filters/filter-field/suggestions/SuggestionGroupLabel.css +1 -1
  1426. package/esm/filters/filter-field/suggestions/SuggestionGroupLabel.sty.js +1 -1
  1427. package/esm/filters/filter-field/suggestions/SuggestionGroupLabel.sty.js.map +1 -1
  1428. package/esm/filters/filter-field/suggestions/SuggestionTips.css +7 -7
  1429. package/esm/filters/filter-field/suggestions/SuggestionTips.sty.js +5 -5
  1430. package/esm/filters/filter-field/suggestions/SuggestionTips.sty.js.map +1 -1
  1431. package/esm/filters/filter-field/suggestions/Suggestions.js +5 -1
  1432. package/esm/filters/filter-field/suggestions/Suggestions.js.map +2 -2
  1433. package/esm/filters/filter-field/suggestions/SuggestionsOverlay.css +7 -7
  1434. package/esm/filters/filter-field/suggestions/SuggestionsOverlay.sty.js +5 -5
  1435. package/esm/filters/filter-field/suggestions/SuggestionsOverlay.sty.js.map +1 -1
  1436. package/esm/filters/filter-field/types/dql-conversion-nodes.js +1 -0
  1437. package/esm/filters/filter-field/types/dql-conversion-nodes.js.map +7 -0
  1438. package/esm/filters/filter-field/utils/compute-minimal-doc-change.js +20 -0
  1439. package/esm/filters/filter-field/utils/compute-minimal-doc-change.js.map +7 -0
  1440. package/esm/filters/filter-field/utils/conversion/dql-conversion/escape-dql.js +20 -0
  1441. package/esm/filters/filter-field/utils/conversion/dql-conversion/escape-dql.js.map +7 -0
  1442. package/esm/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js +243 -0
  1443. package/esm/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js.map +7 -0
  1444. package/esm/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.js +103 -0
  1445. package/esm/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.js.map +7 -0
  1446. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js +26 -0
  1447. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js.map +2 -2
  1448. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js +11 -1
  1449. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js.map +2 -2
  1450. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js +13 -2
  1451. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js.map +2 -2
  1452. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js +20 -18
  1453. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js.map +2 -2
  1454. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.js +20 -0
  1455. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.js.map +7 -0
  1456. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js +4 -1
  1457. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js.map +2 -2
  1458. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.js +4 -2
  1459. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.js.map +2 -2
  1460. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js +53 -9
  1461. package/esm/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js.map +2 -2
  1462. package/esm/filters/filter-field/utils/escape-suggestion.js +1 -2
  1463. package/esm/filters/filter-field/utils/escape-suggestion.js.map +2 -2
  1464. package/esm/filters/filter-field/utils/generate-errors-or-diagnostics.js +10 -16
  1465. package/esm/filters/filter-field/utils/generate-errors-or-diagnostics.js.map +2 -2
  1466. package/esm/filters/filter-field/utils/get-suggestion-transaction.js +4 -1
  1467. package/esm/filters/filter-field/utils/get-suggestion-transaction.js.map +2 -2
  1468. package/esm/filters/helper/queryHelper.js.map +1 -1
  1469. package/esm/filters/index.js +12 -0
  1470. package/esm/filters/index.js.map +2 -2
  1471. package/esm/filters/segment-selector/SegmentSelector.css +4 -4
  1472. package/esm/filters/segment-selector/SegmentSelector.js +90 -63
  1473. package/esm/filters/segment-selector/SegmentSelector.js.map +2 -2
  1474. package/esm/filters/segment-selector/SegmentSelector.sty.js +4 -4
  1475. package/esm/filters/segment-selector/SegmentSelector.sty.js.map +1 -1
  1476. package/esm/filters/segment-selector/contexts/SegmentsCache/SegmentsCache.js +2 -1
  1477. package/esm/filters/segment-selector/contexts/SegmentsCache/SegmentsCache.js.map +2 -2
  1478. package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.js +5 -1
  1479. package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.js.map +2 -2
  1480. package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.js +24 -1
  1481. package/esm/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.js.map +2 -2
  1482. package/esm/filters/segment-selector/hooks/useSegmentsValidation.js +42 -0
  1483. package/esm/filters/segment-selector/hooks/useSegmentsValidation.js.map +7 -0
  1484. package/esm/filters/segment-selector/hooks/useTriggerProps.js +8 -3
  1485. package/esm/filters/segment-selector/hooks/useTriggerProps.js.map +2 -2
  1486. package/esm/filters/segment-selector/parts/EmptySegments.css +1 -1
  1487. package/esm/filters/segment-selector/parts/EmptySegments.sty.js +1 -1
  1488. package/esm/filters/segment-selector/parts/EmptySegments.sty.js.map +1 -1
  1489. package/esm/filters/segment-selector/parts/Overlay.css +8 -8
  1490. package/esm/filters/segment-selector/parts/Overlay.sty.js +8 -8
  1491. package/esm/filters/segment-selector/parts/Overlay.sty.js.map +1 -1
  1492. package/esm/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.css +4 -4
  1493. package/esm/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.sty.js +4 -4
  1494. package/esm/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.sty.js.map +1 -1
  1495. package/esm/filters/segment-selector/parts/TooltipMessages.js +1 -2
  1496. package/esm/filters/segment-selector/parts/TooltipMessages.js.map +2 -2
  1497. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.js +139 -49
  1498. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.js.map +3 -3
  1499. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.css +36 -32
  1500. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js +10 -10
  1501. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js.map +1 -1
  1502. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresetsList.js +3 -1
  1503. package/esm/filters/segment-selector/parts/segmentsPresets/SegmentsPresetsList.js.map +2 -2
  1504. package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.css +22 -22
  1505. package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.sty.js +7 -7
  1506. package/esm/filters/segment-selector/parts/selectionBar/SegmentSelect.sty.js.map +1 -1
  1507. package/esm/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.css +1 -1
  1508. package/esm/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.sty.js +1 -1
  1509. package/esm/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.sty.js.map +1 -1
  1510. package/esm/filters/segment-selector/parts/selectionBar/SelectionBar.js +6 -7
  1511. package/esm/filters/segment-selector/parts/selectionBar/SelectionBar.js.map +2 -2
  1512. package/esm/filters/segment-selector/parts/selectionBar/ValueSelect.js +175 -105
  1513. package/esm/filters/segment-selector/parts/selectionBar/ValueSelect.js.map +3 -3
  1514. package/esm/filters/segment-selector/segmentMessages.js +15 -0
  1515. package/esm/filters/segment-selector/segmentMessages.js.map +2 -2
  1516. package/esm/filters/timeframe-selector/TimeframeSelector.css +2 -2
  1517. package/esm/filters/timeframe-selector/TimeframeSelector.sty.js +2 -2
  1518. package/esm/filters/timeframe-selector/TimeframeSelector.sty.js.map +1 -1
  1519. package/esm/filters/timeframe-selector/TimeframeSelectorRoot.js +83 -2
  1520. package/esm/filters/timeframe-selector/TimeframeSelectorRoot.js.map +3 -3
  1521. package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.css +4 -4
  1522. package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.js +13 -13
  1523. package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.js.map +2 -2
  1524. package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.sty.js +3 -3
  1525. package/esm/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.sty.js.map +1 -1
  1526. package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.css +4 -4
  1527. package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js +4 -4
  1528. package/esm/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js.map +1 -1
  1529. package/esm/filters/timeframe-selector/components/presets/PresetItem.js +1 -1
  1530. package/esm/filters/timeframe-selector/components/presets/PresetItem.js.map +2 -2
  1531. package/esm/filters/timeframe-selector/components/presets/Presets.css +27 -27
  1532. package/esm/filters/timeframe-selector/components/presets/Presets.sty.js +11 -11
  1533. package/esm/filters/timeframe-selector/components/presets/Presets.sty.js.map +1 -1
  1534. package/esm/filters/timeframe-selector/components/trigger/Trigger.css +11 -11
  1535. package/esm/filters/timeframe-selector/components/trigger/Trigger.sty.js +4 -4
  1536. package/esm/filters/timeframe-selector/components/trigger/Trigger.sty.js.map +1 -1
  1537. package/esm/filters/timeframe-selector/constants/timeframeSelectorMessages.js +3 -57
  1538. package/esm/filters/timeframe-selector/constants/timeframeSelectorMessages.js.map +2 -2
  1539. package/esm/forms/_base-input/BaseInput.css +85 -106
  1540. package/esm/forms/_base-input/BaseInput.sty.js +11 -11
  1541. package/esm/forms/_base-input/BaseInput.sty.js.map +1 -1
  1542. package/esm/forms/_base-input/BaseInputButton.js +16 -7
  1543. package/esm/forms/_base-input/BaseInputButton.js.map +2 -2
  1544. package/esm/forms/_base-input/BaseInputContent.css +7 -7
  1545. package/esm/forms/_base-input/BaseInputContent.sty.js +1 -1
  1546. package/esm/forms/_base-input/BaseInputContent.sty.js.map +1 -1
  1547. package/esm/forms/_base-input/ClearButton.js +7 -0
  1548. package/esm/forms/_base-input/ClearButton.js.map +2 -2
  1549. package/esm/forms/calendar/Calendar.css +48 -48
  1550. package/esm/forms/calendar/Calendar.js +3 -1
  1551. package/esm/forms/calendar/Calendar.js.map +2 -2
  1552. package/esm/forms/calendar/Calendar.sty.js +12 -12
  1553. package/esm/forms/calendar/Calendar.sty.js.map +1 -1
  1554. package/esm/forms/calendar/components/CalendarItem.css +7 -7
  1555. package/esm/forms/calendar/components/CalendarItem.sty.js +4 -4
  1556. package/esm/forms/calendar/components/CalendarItem.sty.js.map +1 -1
  1557. package/esm/forms/calendar/components/CalendarOutlineIcon.css +8 -8
  1558. package/esm/forms/calendar/components/CalendarOutlineIcon.sty.js +5 -5
  1559. package/esm/forms/calendar/components/CalendarOutlineIcon.sty.js.map +1 -1
  1560. package/esm/forms/calendar/variables.sty.js +2 -2
  1561. package/esm/forms/calendar/variables.sty.js.map +1 -1
  1562. package/esm/forms/checkbox/Checkbox.css +20 -20
  1563. package/esm/forms/checkbox/Checkbox.sty.js +3 -3
  1564. package/esm/forms/checkbox/Checkbox.sty.js.map +1 -1
  1565. package/esm/forms/date-time-picker/DateSelector.js +7 -3
  1566. package/esm/forms/date-time-picker/DateSelector.js.map +2 -2
  1567. package/esm/forms/date-time-picker/DateTimePicker.css +43 -79
  1568. package/esm/forms/date-time-picker/DateTimePicker.sty.js +6 -6
  1569. package/esm/forms/date-time-picker/DateTimePicker.sty.js.map +2 -2
  1570. package/esm/forms/date-time-picker/DateTimePickerRoot.js +24 -35
  1571. package/esm/forms/date-time-picker/DateTimePickerRoot.js.map +2 -2
  1572. package/esm/forms/date-time-picker/hooks/useDateTimePicker.js +79 -29
  1573. package/esm/forms/date-time-picker/hooks/useDateTimePicker.js.map +2 -2
  1574. package/esm/forms/date-time-picker/hooks/useSpinButtons.js +58 -39
  1575. package/esm/forms/date-time-picker/hooks/useSpinButtons.js.map +3 -3
  1576. package/esm/forms/date-time-range-picker/DateRangeSelector.css +1 -1
  1577. package/esm/forms/date-time-range-picker/DateRangeSelector.js +4 -0
  1578. package/esm/forms/date-time-range-picker/DateRangeSelector.js.map +2 -2
  1579. package/esm/forms/date-time-range-picker/DateRangeSelector.sty.js +1 -1
  1580. package/esm/forms/date-time-range-picker/DateRangeSelector.sty.js.map +1 -1
  1581. package/esm/forms/date-time-range-picker/DateTimeInput.css +11 -11
  1582. package/esm/forms/date-time-range-picker/DateTimeInput.sty.js +3 -3
  1583. package/esm/forms/date-time-range-picker/DateTimeInput.sty.js.map +1 -1
  1584. package/esm/forms/date-time-range-picker/DateTimeRangePicker.css +27 -27
  1585. package/esm/forms/date-time-range-picker/DateTimeRangePicker.js +2 -0
  1586. package/esm/forms/date-time-range-picker/DateTimeRangePicker.js.map +2 -2
  1587. package/esm/forms/date-time-range-picker/DateTimeRangePicker.sty.js +4 -4
  1588. package/esm/forms/date-time-range-picker/DateTimeRangePicker.sty.js.map +1 -1
  1589. package/esm/forms/date-time-range-picker/DateTimeRangePickerRoot.js +44 -77
  1590. package/esm/forms/date-time-range-picker/DateTimeRangePickerRoot.js.map +2 -2
  1591. package/esm/forms/date-time-range-picker/hooks/useDateTimeInput.js +17 -5
  1592. package/esm/forms/date-time-range-picker/hooks/useDateTimeInput.js.map +2 -2
  1593. package/esm/forms/date-time-range-picker/useSelectionInteractionHandlers.js +4 -0
  1594. package/esm/forms/date-time-range-picker/useSelectionInteractionHandlers.js.map +2 -2
  1595. package/esm/forms/form/Form.js.map +2 -2
  1596. package/esm/forms/form/hooks/useInternalFormRegistration.js +3 -1
  1597. package/esm/forms/form/hooks/useInternalFormRegistration.js.map +2 -2
  1598. package/esm/forms/forms-core/components/field-set/FieldSet.css +2 -2
  1599. package/esm/forms/forms-core/components/field-set/FieldSet.sty.js +2 -2
  1600. package/esm/forms/forms-core/components/field-set/FieldSet.sty.js.map +1 -1
  1601. package/esm/forms/forms-core/components/form-field/FormField.sty.js +1 -1
  1602. package/esm/forms/forms-core/components/form-field/FormField.sty.js.map +1 -1
  1603. package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.css +5 -5
  1604. package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.sty.js +2 -2
  1605. package/esm/forms/forms-core/components/form-field-messages/FormFieldMessageItem.sty.js.map +1 -1
  1606. package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.css +3 -3
  1607. package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.sty.js +1 -1
  1608. package/esm/forms/forms-core/components/form-field-messages/FormFieldMessages.sty.js.map +1 -1
  1609. package/esm/forms/forms-core/components/label/Label.css +5 -5
  1610. package/esm/forms/forms-core/components/label/Label.sty.js +2 -2
  1611. package/esm/forms/forms-core/components/label/Label.sty.js.map +1 -1
  1612. package/esm/forms/forms-core/hooks/useMinMaxLogger.js +11 -1
  1613. package/esm/forms/forms-core/hooks/useMinMaxLogger.js.map +2 -2
  1614. package/esm/forms/forms-core/state/formfield-messages-state-reducer.js +5 -1
  1615. package/esm/forms/forms-core/state/formfield-messages-state-reducer.js.map +2 -2
  1616. package/esm/forms/forms-core/time/timeParser.js +3 -52
  1617. package/esm/forms/forms-core/time/timeParser.js.map +2 -2
  1618. package/esm/forms/hooks/useAutofillEvent.css +8 -8
  1619. package/esm/forms/hooks/useAutofillEvent.sty.js +4 -4
  1620. package/esm/forms/hooks/useAutofillEvent.sty.js.map +1 -1
  1621. package/esm/forms/hooks/useContainerFocus.css +1 -1
  1622. package/esm/forms/hooks/useContainerFocus.js +32 -24
  1623. package/esm/forms/hooks/useContainerFocus.js.map +2 -2
  1624. package/esm/forms/hooks/useContainerFocus.sty.js +1 -1
  1625. package/esm/forms/hooks/useContainerFocus.sty.js.map +1 -1
  1626. package/esm/forms/number-input-v2/NumberInput.js +18 -12
  1627. package/esm/forms/number-input-v2/NumberInput.js.map +2 -2
  1628. package/esm/forms/radio/styles.css +18 -18
  1629. package/esm/forms/radio/styles.sty.js +8 -8
  1630. package/esm/forms/radio/styles.sty.js.map +1 -1
  1631. package/esm/forms/search-input/SearchInput.css +2 -2
  1632. package/esm/forms/search-input/SearchInput.js +2 -2
  1633. package/esm/forms/search-input/SearchInput.js.map +2 -2
  1634. package/esm/forms/search-input/SearchInput.sty.js +1 -1
  1635. package/esm/forms/search-input/SearchInput.sty.js.map +1 -1
  1636. package/esm/forms/search-input/Stepper.css +5 -5
  1637. package/esm/forms/search-input/Stepper.sty.js +3 -3
  1638. package/esm/forms/search-input/Stepper.sty.js.map +1 -1
  1639. package/esm/forms/select/Select.js +10 -5
  1640. package/esm/forms/select/Select.js.map +2 -2
  1641. package/esm/forms/select/components/MenuList.js +5 -1
  1642. package/esm/forms/select/components/MenuList.js.map +2 -2
  1643. package/esm/forms/select/styles/Select.css +46 -46
  1644. package/esm/forms/select/styles/Select.sty.js +24 -24
  1645. package/esm/forms/select/styles/Select.sty.js.map +1 -1
  1646. package/esm/forms/spin-buttons/SpinButton.css +8 -8
  1647. package/esm/forms/spin-buttons/SpinButton.sty.js +2 -2
  1648. package/esm/forms/spin-buttons/SpinButton.sty.js.map +1 -1
  1649. package/esm/forms/spin-buttons/spin-button-group/hooks/useValueOverflow.js +2 -9
  1650. package/esm/forms/spin-buttons/spin-button-group/hooks/useValueOverflow.js.map +2 -2
  1651. package/esm/forms/switch/Switch.css +36 -36
  1652. package/esm/forms/switch/Switch.sty.js +5 -5
  1653. package/esm/forms/switch/Switch.sty.js.map +1 -1
  1654. package/esm/forms/text-area/TextArea.css +59 -59
  1655. package/esm/forms/text-area/TextArea.sty.js +3 -3
  1656. package/esm/forms/text-area/TextArea.sty.js.map +1 -1
  1657. package/esm/forms/toggle-button-group/styles.css +58 -58
  1658. package/esm/forms/toggle-button-group/styles.sty.js +15 -15
  1659. package/esm/forms/toggle-button-group/styles.sty.js.map +1 -1
  1660. package/esm/forms/validation/message-routing.js.map +2 -2
  1661. package/esm/layouts/app-header/AppHeader.css +1 -1
  1662. package/esm/layouts/app-header/AppHeader.sty.js +1 -1
  1663. package/esm/layouts/app-header/AppHeader.sty.js.map +1 -1
  1664. package/esm/layouts/app-header/Navigation.css +9 -9
  1665. package/esm/layouts/app-header/Navigation.sty.js +5 -5
  1666. package/esm/layouts/app-header/Navigation.sty.js.map +1 -1
  1667. package/esm/layouts/app-header/action-group/ActionButton.css +17 -17
  1668. package/esm/layouts/app-header/action-group/ActionButton.sty.js +3 -3
  1669. package/esm/layouts/app-header/action-group/ActionButton.sty.js.map +1 -1
  1670. package/esm/layouts/app-header/action-group/ActionGroup.css +1 -1
  1671. package/esm/layouts/app-header/action-group/ActionGroup.sty.js +1 -1
  1672. package/esm/layouts/app-header/action-group/ActionGroup.sty.js.map +1 -1
  1673. package/esm/layouts/app-header/action-group/NavItem.css +4 -4
  1674. package/esm/layouts/app-header/action-group/NavItem.sty.js +3 -3
  1675. package/esm/layouts/app-header/action-group/NavItem.sty.js.map +1 -1
  1676. package/esm/layouts/app-header/app-icon/AppIcon.css +4 -4
  1677. package/esm/layouts/app-header/app-icon/AppIcon.sty.js +1 -1
  1678. package/esm/layouts/app-header/app-icon/AppIcon.sty.js.map +1 -1
  1679. package/esm/layouts/container/Container.css +5 -5
  1680. package/esm/layouts/container/Container.sty.js +1 -1
  1681. package/esm/layouts/container/Container.sty.js.map +1 -1
  1682. package/esm/layouts/divider/Divider.css +6 -6
  1683. package/esm/layouts/divider/Divider.sty.js +1 -1
  1684. package/esm/layouts/divider/Divider.sty.js.map +1 -1
  1685. package/esm/layouts/input-group/InputGroup.css +63 -24
  1686. package/esm/layouts/input-group/InputGroup.sty.js +5 -2
  1687. package/esm/layouts/input-group/InputGroup.sty.js.map +2 -2
  1688. package/esm/layouts/page/DetailView.css +3 -3
  1689. package/esm/layouts/page/DetailView.sty.js +2 -2
  1690. package/esm/layouts/page/DetailView.sty.js.map +1 -1
  1691. package/esm/layouts/page/Header.css +2 -2
  1692. package/esm/layouts/page/Header.sty.js +1 -1
  1693. package/esm/layouts/page/Header.sty.js.map +1 -1
  1694. package/esm/layouts/page/Main.css +6 -6
  1695. package/esm/layouts/page/Main.sty.js +4 -4
  1696. package/esm/layouts/page/Main.sty.js.map +1 -1
  1697. package/esm/layouts/page/Page.css +2 -2
  1698. package/esm/layouts/page/Page.sty.js +1 -1
  1699. package/esm/layouts/page/Page.sty.js.map +1 -1
  1700. package/esm/layouts/page/Sidebar.css +35 -35
  1701. package/esm/layouts/page/Sidebar.sty.js +8 -8
  1702. package/esm/layouts/page/Sidebar.sty.js.map +1 -1
  1703. package/esm/layouts/page/panel.css +19 -19
  1704. package/esm/layouts/page/panel.sty.js +10 -10
  1705. package/esm/layouts/page/panel.sty.js.map +1 -1
  1706. package/esm/layouts/page-layout/PageLayout.css +10 -10
  1707. package/esm/layouts/page-layout/PageLayout.js +3 -1
  1708. package/esm/layouts/page-layout/PageLayout.js.map +2 -2
  1709. package/esm/layouts/page-layout/PageLayout.sty.js +6 -6
  1710. package/esm/layouts/page-layout/PageLayout.sty.js.map +1 -1
  1711. package/esm/layouts/page-layout/details-layout/DetailsControlBar.css +3 -3
  1712. package/esm/layouts/page-layout/details-layout/DetailsControlBar.sty.js +3 -3
  1713. package/esm/layouts/page-layout/details-layout/DetailsControlBar.sty.js.map +1 -1
  1714. package/esm/layouts/page-layout/details-layout/DetailsLayout.css +6 -6
  1715. package/esm/layouts/page-layout/details-layout/DetailsLayout.js +17 -12
  1716. package/esm/layouts/page-layout/details-layout/DetailsLayout.js.map +2 -2
  1717. package/esm/layouts/page-layout/details-layout/DetailsLayout.sty.js +5 -5
  1718. package/esm/layouts/page-layout/details-layout/DetailsLayout.sty.js.map +1 -1
  1719. package/esm/layouts/page-layout/details-layout/Overlay.css +18 -18
  1720. package/esm/layouts/page-layout/details-layout/Overlay.sty.js +4 -4
  1721. package/esm/layouts/page-layout/details-layout/Overlay.sty.js.map +1 -1
  1722. package/esm/layouts/page-layout/shared/portal-slots.js +1 -1
  1723. package/esm/layouts/page-layout/shared/portal-slots.js.map +2 -2
  1724. package/esm/layouts/page-layout/shared/slot-defaults.js +1 -2
  1725. package/esm/layouts/page-layout/shared/slot-defaults.js.map +2 -2
  1726. package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.css +37 -37
  1727. package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.js.map +2 -2
  1728. package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js +14 -14
  1729. package/esm/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js.map +1 -1
  1730. package/esm/layouts/split-layout/SplitLayout.css +19 -19
  1731. package/esm/layouts/split-layout/SplitLayout.sty.js +7 -7
  1732. package/esm/layouts/split-layout/SplitLayout.sty.js.map +1 -1
  1733. package/esm/layouts/surface/Surface.css +39 -39
  1734. package/esm/layouts/surface/Surface.sty.js +2 -2
  1735. package/esm/layouts/surface/Surface.sty.js.map +1 -1
  1736. package/esm/layouts/surface/variables.sty.js +1 -1
  1737. package/esm/layouts/surface/variables.sty.js.map +1 -1
  1738. package/esm/layouts/title-bar/TitleBar.css +5 -5
  1739. package/esm/layouts/title-bar/TitleBar.sty.js +4 -4
  1740. package/esm/layouts/title-bar/TitleBar.sty.js.map +1 -1
  1741. package/esm/navigation/breadcrumbs/Breadcrumbs.css +9 -9
  1742. package/esm/navigation/breadcrumbs/Breadcrumbs.sty.js +5 -5
  1743. package/esm/navigation/breadcrumbs/Breadcrumbs.sty.js.map +1 -1
  1744. package/esm/navigation/menu/Item.js +2 -0
  1745. package/esm/navigation/menu/Item.js.map +2 -2
  1746. package/esm/navigation/menu/Link.js +2 -0
  1747. package/esm/navigation/menu/Link.js.map +2 -2
  1748. package/esm/navigation/menu/Menu.css +17 -17
  1749. package/esm/navigation/menu/Menu.sty.js +8 -8
  1750. package/esm/navigation/menu/Menu.sty.js.map +1 -1
  1751. package/esm/navigation/menu/MobileMenu.css +14 -14
  1752. package/esm/navigation/menu/MobileMenu.sty.js +8 -8
  1753. package/esm/navigation/menu/MobileMenu.sty.js.map +1 -1
  1754. package/esm/navigation/tabs/RenderTab.css +14 -14
  1755. package/esm/navigation/tabs/RenderTab.sty.js +3 -3
  1756. package/esm/navigation/tabs/RenderTab.sty.js.map +1 -1
  1757. package/esm/navigation/tabs/TabPanel.css +3 -3
  1758. package/esm/navigation/tabs/TabPanel.sty.js +2 -2
  1759. package/esm/navigation/tabs/TabPanel.sty.js.map +1 -1
  1760. package/esm/navigation/tabs/Tabs.css +9 -9
  1761. package/esm/navigation/tabs/Tabs.sty.js +5 -5
  1762. package/esm/navigation/tabs/Tabs.sty.js.map +1 -1
  1763. package/esm/notifications/notification-settings/NotificationSettings.css +1 -1
  1764. package/esm/notifications/notification-settings/NotificationSettings.sty.js +1 -1
  1765. package/esm/notifications/notification-settings/NotificationSettings.sty.js.map +1 -1
  1766. package/esm/notifications/toast/Toast.css +6 -6
  1767. package/esm/notifications/toast/Toast.sty.js +4 -4
  1768. package/esm/notifications/toast/Toast.sty.js.map +1 -1
  1769. package/esm/notifications/toast/ToastContainer.css +17 -17
  1770. package/esm/notifications/toast/ToastContainer.sty.js +1 -1
  1771. package/esm/notifications/toast/ToastContainer.sty.js.map +1 -1
  1772. package/esm/overlays/drawer/Drawer.css +13 -9
  1773. package/esm/overlays/drawer/Drawer.js +95 -95
  1774. package/esm/overlays/drawer/Drawer.js.map +2 -2
  1775. package/esm/overlays/drawer/Drawer.sty.js +5 -5
  1776. package/esm/overlays/drawer/Drawer.sty.js.map +1 -1
  1777. package/esm/overlays/modal/Modal.css +16 -16
  1778. package/esm/overlays/modal/Modal.sty.js +7 -7
  1779. package/esm/overlays/modal/Modal.sty.js.map +1 -1
  1780. package/esm/overlays/overlay/Overlay.css +1 -1
  1781. package/esm/overlays/overlay/Overlay.sty.js +1 -1
  1782. package/esm/overlays/overlay/Overlay.sty.js.map +1 -1
  1783. package/esm/overlays/sheet/Sheet.css +7 -7
  1784. package/esm/overlays/sheet/Sheet.js +10 -2
  1785. package/esm/overlays/sheet/Sheet.js.map +2 -2
  1786. package/esm/overlays/sheet/Sheet.sty.js +5 -5
  1787. package/esm/overlays/sheet/Sheet.sty.js.map +1 -1
  1788. package/esm/overlays/tooltip/TooltipElement.js +1 -0
  1789. package/esm/overlays/tooltip/TooltipElement.js.map +2 -2
  1790. package/esm/overlays/tooltip/tooltip.css +18 -18
  1791. package/esm/overlays/tooltip/tooltip.sty.js +3 -3
  1792. package/esm/overlays/tooltip/tooltip.sty.js.map +1 -1
  1793. package/esm/overlays/utils/use-popper-compat.js +16 -9
  1794. package/esm/overlays/utils/use-popper-compat.js.map +2 -2
  1795. package/esm/styles/colorUtils.css +60 -60
  1796. package/esm/styles/colorUtils.sty.js +2 -2
  1797. package/esm/styles/colorUtils.sty.js.map +1 -1
  1798. package/esm/styles/container.css +47 -47
  1799. package/esm/styles/container.sty.js +2 -2
  1800. package/esm/styles/container.sty.js.map +1 -1
  1801. package/esm/styles/ellipsis.css +1 -1
  1802. package/esm/styles/ellipsis.sty.js +1 -1
  1803. package/esm/styles/ellipsis.sty.js.map +1 -1
  1804. package/esm/styles/field.css +256 -304
  1805. package/esm/styles/field.sty.js +2 -2
  1806. package/esm/styles/field.sty.js.map +2 -2
  1807. package/esm/styles/screen-reader-only.css +1 -1
  1808. package/esm/styles/screen-reader-only.sty.js +1 -1
  1809. package/esm/styles/screen-reader-only.sty.js.map +1 -1
  1810. package/esm/styles/sprinkles.css +262 -262
  1811. package/esm/styles/sprinkles.sty.js +1 -1
  1812. package/esm/styles/sprinkles.sty.js.map +1 -1
  1813. package/esm/styles/textStyle.css +8 -8
  1814. package/esm/styles/textStyle.sty.js +1 -1
  1815. package/esm/styles/textStyle.sty.js.map +1 -1
  1816. package/esm/tables/DataTable/DataTable.css +2 -2
  1817. package/esm/tables/DataTable/DataTable.js +17 -22
  1818. package/esm/tables/DataTable/DataTable.js.map +2 -2
  1819. package/esm/tables/DataTable/DataTable.sty.js +7 -7
  1820. package/esm/tables/DataTable/DataTable.sty.js.map +1 -1
  1821. package/esm/tables/DataTable/components/Alignment.css +6 -6
  1822. package/esm/tables/DataTable/components/Alignment.sty.js +2 -2
  1823. package/esm/tables/DataTable/components/Alignment.sty.js.map +1 -1
  1824. package/esm/tables/DataTable/components/BuiltinColumnHeaderName.js +13 -0
  1825. package/esm/tables/DataTable/components/BuiltinColumnHeaderName.js.map +7 -0
  1826. package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.css +6 -6
  1827. package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js +3 -3
  1828. package/esm/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js.map +1 -1
  1829. package/esm/tables/DataTable/components/DataTableBody.css +2 -2
  1830. package/esm/tables/DataTable/components/DataTableBody.js +50 -31
  1831. package/esm/tables/DataTable/components/DataTableBody.js.map +2 -2
  1832. package/esm/tables/DataTable/components/DataTableBody.sty.js +2 -2
  1833. package/esm/tables/DataTable/components/DataTableBody.sty.js.map +1 -1
  1834. package/esm/tables/DataTable/components/DataTableCell.css +83 -83
  1835. package/esm/tables/DataTable/components/DataTableCell.sty.js +5 -5
  1836. package/esm/tables/DataTable/components/DataTableCell.sty.js.map +1 -1
  1837. package/esm/tables/DataTable/components/DataTableContent.js +1 -2
  1838. package/esm/tables/DataTable/components/DataTableContent.js.map +2 -2
  1839. package/esm/tables/DataTable/components/DataTableDefaultCell.css +23 -23
  1840. package/esm/tables/DataTable/components/DataTableDefaultCell.sty.js +1 -1
  1841. package/esm/tables/DataTable/components/DataTableDefaultCell.sty.js.map +1 -1
  1842. package/esm/tables/DataTable/components/DataTableDragScrollLock.js +48 -0
  1843. package/esm/tables/DataTable/components/DataTableDragScrollLock.js.map +7 -0
  1844. package/esm/tables/DataTable/components/DataTableEmptyState.css +6 -6
  1845. package/esm/tables/DataTable/components/DataTableEmptyState.sty.js +2 -2
  1846. package/esm/tables/DataTable/components/DataTableEmptyState.sty.js.map +1 -1
  1847. package/esm/tables/DataTable/components/DataTableHeader.css +2 -2
  1848. package/esm/tables/DataTable/components/DataTableHeader.sty.js +2 -2
  1849. package/esm/tables/DataTable/components/DataTableHeader.sty.js.map +1 -1
  1850. package/esm/tables/DataTable/components/DataTableHeaderCell.css +64 -64
  1851. package/esm/tables/DataTable/components/DataTableHeaderCell.js +21 -9
  1852. package/esm/tables/DataTable/components/DataTableHeaderCell.js.map +2 -2
  1853. package/esm/tables/DataTable/components/DataTableHeaderCell.sty.js +23 -23
  1854. package/esm/tables/DataTable/components/DataTableHeaderCell.sty.js.map +1 -1
  1855. package/esm/tables/DataTable/components/DataTableRow.css +13 -13
  1856. package/esm/tables/DataTable/components/DataTableRow.js +19 -16
  1857. package/esm/tables/DataTable/components/DataTableRow.js.map +2 -2
  1858. package/esm/tables/DataTable/components/DataTableRow.sty.js +1 -1
  1859. package/esm/tables/DataTable/components/DataTableRow.sty.js.map +1 -1
  1860. package/esm/tables/DataTable/components/DataTableScrollShadow.css +14 -14
  1861. package/esm/tables/DataTable/components/DataTableScrollShadow.sty.js +2 -2
  1862. package/esm/tables/DataTable/components/DataTableScrollShadow.sty.js.map +1 -1
  1863. package/esm/tables/DataTable/components/DataTableVirtualizationContainer.css +21 -21
  1864. package/esm/tables/DataTable/components/DataTableVirtualizationContainer.js +5 -46
  1865. package/esm/tables/DataTable/components/DataTableVirtualizationContainer.js.map +2 -2
  1866. package/esm/tables/DataTable/components/DataTableVirtualizationContainer.sty.js +1 -1
  1867. package/esm/tables/DataTable/components/DataTableVirtualizationContainer.sty.js.map +1 -1
  1868. package/esm/tables/DataTable/components/SettingsModal/DataTableSettingsModal.css +3 -3
  1869. package/esm/tables/DataTable/components/SettingsModal/DataTableSettingsModal.sty.js +2 -2
  1870. package/esm/tables/DataTable/components/SettingsModal/DataTableSettingsModal.sty.js.map +1 -1
  1871. package/esm/tables/DataTable/components/TableActions/DataTableSelectionChip.css +5 -5
  1872. package/esm/tables/DataTable/components/TableActions/DataTableSelectionChip.sty.js +2 -2
  1873. package/esm/tables/DataTable/components/TableActions/DataTableSelectionChip.sty.js.map +1 -1
  1874. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.css +7 -7
  1875. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.sty.js +3 -3
  1876. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.sty.js.map +1 -1
  1877. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.css +1 -1
  1878. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.sty.js +1 -1
  1879. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.sty.js.map +1 -1
  1880. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettingsModal.js +9 -0
  1881. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettingsModal.js.map +2 -2
  1882. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.css +19 -19
  1883. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js +50 -13
  1884. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js.map +2 -2
  1885. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.sty.js +2 -2
  1886. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.sty.js.map +1 -1
  1887. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.css +11 -11
  1888. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.js +1 -4
  1889. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.js.map +2 -2
  1890. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.sty.js +8 -8
  1891. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.sty.js.map +1 -1
  1892. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.css +2 -2
  1893. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.sty.js +2 -2
  1894. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.sty.js.map +1 -1
  1895. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.css +1 -1
  1896. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.sty.js +1 -1
  1897. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.sty.js.map +1 -1
  1898. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.css +4 -4
  1899. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js +3 -3
  1900. package/esm/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js.map +1 -1
  1901. package/esm/tables/DataTable/components/Toolbar/DataTableToolbarMenu.js +2 -0
  1902. package/esm/tables/DataTable/components/Toolbar/DataTableToolbarMenu.js.map +2 -2
  1903. package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.css +3 -3
  1904. package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.js +12 -1
  1905. package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.js.map +2 -2
  1906. package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js +2 -2
  1907. package/esm/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js.map +1 -1
  1908. package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.css +8 -8
  1909. package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js +4 -4
  1910. package/esm/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js.map +1 -1
  1911. package/esm/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.js +1 -1
  1912. package/esm/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.js.map +2 -2
  1913. package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.css +3 -3
  1914. package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js +1 -1
  1915. package/esm/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js.map +1 -1
  1916. package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.css +1 -1
  1917. package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js +1 -1
  1918. package/esm/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js.map +1 -1
  1919. package/esm/tables/DataTable/features/ColumnTypes/column-types-types.js.map +2 -2
  1920. package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.css +1 -1
  1921. package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.js +6 -1
  1922. package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.js.map +2 -2
  1923. package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.sty.js +1 -1
  1924. package/esm/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.sty.js.map +1 -1
  1925. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.css +3 -3
  1926. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.sty.js +2 -2
  1927. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartCell.sty.js.map +1 -1
  1928. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.css +1 -1
  1929. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.sty.js +1 -1
  1930. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.sty.js.map +1 -1
  1931. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.css +4 -4
  1932. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.sty.js +1 -1
  1933. package/esm/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.sty.js.map +1 -1
  1934. package/esm/tables/DataTable/features/LoadingState/LoadingState.css +3 -3
  1935. package/esm/tables/DataTable/features/LoadingState/LoadingState.sty.js +3 -3
  1936. package/esm/tables/DataTable/features/LoadingState/LoadingState.sty.js.map +1 -1
  1937. package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.css +5 -5
  1938. package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.js +19 -3
  1939. package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.js.map +2 -2
  1940. package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js +2 -2
  1941. package/esm/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js.map +1 -1
  1942. package/esm/tables/DataTable/features/RowDetails/RowDetails.css +13 -13
  1943. package/esm/tables/DataTable/features/RowDetails/RowDetails.sty.js +3 -3
  1944. package/esm/tables/DataTable/features/RowDetails/RowDetails.sty.js.map +1 -1
  1945. package/esm/tables/DataTable/features/RowDetails/RowDetailsColumnDef.js +2 -3
  1946. package/esm/tables/DataTable/features/RowDetails/RowDetailsColumnDef.js.map +2 -2
  1947. package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.css +17 -17
  1948. package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js +1 -1
  1949. package/esm/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js.map +1 -1
  1950. package/esm/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js +1 -1
  1951. package/esm/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js.map +2 -2
  1952. package/esm/tables/DataTable/features/RowOrder/RowOrder.css +8 -8
  1953. package/esm/tables/DataTable/features/RowOrder/RowOrder.sty.js +3 -3
  1954. package/esm/tables/DataTable/features/RowOrder/RowOrder.sty.js.map +1 -1
  1955. package/esm/tables/DataTable/features/RowOrder/RowOrderColumnDef.js +2 -3
  1956. package/esm/tables/DataTable/features/RowOrder/RowOrderColumnDef.js.map +2 -2
  1957. package/esm/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js +9 -9
  1958. package/esm/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js.map +2 -2
  1959. package/esm/tables/DataTable/features/RowSelection/RowSelectionColumnDef.js +12 -2
  1960. package/esm/tables/DataTable/features/RowSelection/RowSelectionColumnDef.js.map +2 -2
  1961. package/esm/tables/DataTable/features/Sorting/Sorting.css +34 -34
  1962. package/esm/tables/DataTable/features/Sorting/Sorting.sty.js +3 -3
  1963. package/esm/tables/DataTable/features/Sorting/Sorting.sty.js.map +1 -1
  1964. package/esm/tables/DataTable/features/SubRows/SubRows.css +19 -19
  1965. package/esm/tables/DataTable/features/SubRows/SubRows.sty.js +5 -5
  1966. package/esm/tables/DataTable/features/SubRows/SubRows.sty.js.map +1 -1
  1967. package/esm/tables/DataTable/features/Thresholds/Thresholds.css +2 -2
  1968. package/esm/tables/DataTable/features/Thresholds/Thresholds.sty.js +3 -3
  1969. package/esm/tables/DataTable/features/Thresholds/Thresholds.sty.js.map +1 -1
  1970. package/esm/tables/DataTable/features/UserActions/FloatingMenu.js +13 -6
  1971. package/esm/tables/DataTable/features/UserActions/FloatingMenu.js.map +2 -2
  1972. package/esm/tables/DataTable/features/UserActions/InlineUserActionsMenu.js +5 -2
  1973. package/esm/tables/DataTable/features/UserActions/InlineUserActionsMenu.js.map +2 -2
  1974. package/esm/tables/DataTable/features/UserActions/RowActions.css +4 -4
  1975. package/esm/tables/DataTable/features/UserActions/RowActions.sty.js +1 -1
  1976. package/esm/tables/DataTable/features/UserActions/RowActions.sty.js.map +1 -1
  1977. package/esm/tables/DataTable/features/UserActions/RowActionsColumnDef.js +2 -1
  1978. package/esm/tables/DataTable/features/UserActions/RowActionsColumnDef.js.map +2 -2
  1979. package/esm/tables/DataTable/features/UserActions/UserActions.css +18 -18
  1980. package/esm/tables/DataTable/features/UserActions/UserActions.sty.js +2 -2
  1981. package/esm/tables/DataTable/features/UserActions/UserActions.sty.js.map +1 -1
  1982. package/esm/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js +1 -1
  1983. package/esm/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js.map +2 -2
  1984. package/esm/tables/DataTable/messages.js +29 -2
  1985. package/esm/tables/DataTable/messages.js.map +2 -2
  1986. package/esm/tables/SimpleTable/SimpleTable.css +27 -27
  1987. package/esm/tables/SimpleTable/SimpleTable.sty.js +1 -1
  1988. package/esm/tables/SimpleTable/SimpleTable.sty.js.map +1 -1
  1989. package/esm/typography/block-quote/Blockquote.css +2 -2
  1990. package/esm/typography/block-quote/Blockquote.js.map +2 -2
  1991. package/esm/typography/block-quote/Blockquote.sty.js +1 -1
  1992. package/esm/typography/block-quote/Blockquote.sty.js.map +1 -1
  1993. package/esm/typography/code/Code.css +1 -1
  1994. package/esm/typography/code/Code.js.map +2 -2
  1995. package/esm/typography/code/Code.sty.js +1 -1
  1996. package/esm/typography/code/Code.sty.js.map +1 -1
  1997. package/esm/typography/emphasis/Emphasis.css +1 -1
  1998. package/esm/typography/emphasis/Emphasis.js.map +2 -2
  1999. package/esm/typography/emphasis/Emphasis.sty.js +1 -1
  2000. package/esm/typography/emphasis/Emphasis.sty.js.map +1 -1
  2001. package/esm/typography/external-link/ExternalLink.css +6 -6
  2002. package/esm/typography/external-link/ExternalLink.js.map +2 -2
  2003. package/esm/typography/external-link/ExternalLink.sty.js +1 -1
  2004. package/esm/typography/external-link/ExternalLink.sty.js.map +1 -1
  2005. package/esm/typography/heading/Heading.css +7 -7
  2006. package/esm/typography/heading/Heading.sty.js +1 -1
  2007. package/esm/typography/heading/Heading.sty.js.map +1 -1
  2008. package/esm/typography/highlight/Highlight.css +2 -2
  2009. package/esm/typography/highlight/Highlight.js.map +2 -2
  2010. package/esm/typography/highlight/Highlight.sty.js +1 -1
  2011. package/esm/typography/highlight/Highlight.sty.js.map +1 -1
  2012. package/esm/typography/link/Link.css +4 -4
  2013. package/esm/typography/link/Link.sty.js +1 -1
  2014. package/esm/typography/link/Link.sty.js.map +1 -1
  2015. package/esm/typography/list/List.css +4 -4
  2016. package/esm/typography/list/List.js.map +2 -2
  2017. package/esm/typography/list/List.sty.js +2 -2
  2018. package/esm/typography/list/List.sty.js.map +1 -1
  2019. package/esm/typography/paragraph/Paragraph.css +3 -3
  2020. package/esm/typography/paragraph/Paragraph.sty.js +1 -1
  2021. package/esm/typography/paragraph/Paragraph.sty.js.map +1 -1
  2022. package/esm/typography/strikethrough/Strikethrough.css +1 -1
  2023. package/esm/typography/strikethrough/Strikethrough.js.map +2 -2
  2024. package/esm/typography/strikethrough/Strikethrough.sty.js +1 -1
  2025. package/esm/typography/strikethrough/Strikethrough.sty.js.map +1 -1
  2026. package/esm/typography/strong/Strong.css +1 -1
  2027. package/esm/typography/strong/Strong.js.map +2 -2
  2028. package/esm/typography/strong/Strong.sty.js +1 -1
  2029. package/esm/typography/strong/Strong.sty.js.map +1 -1
  2030. package/esm/typography/text/Text.css +3 -3
  2031. package/esm/typography/text/Text.sty.js +1 -1
  2032. package/esm/typography/text/Text.sty.js.map +1 -1
  2033. package/esm/typography/text-ellipsis/TextEllipsis.css +6 -6
  2034. package/esm/typography/text-ellipsis/TextEllipsis.sty.js +2 -2
  2035. package/esm/typography/text-ellipsis/TextEllipsis.sty.js.map +1 -1
  2036. package/filters/filter/ResetButton.js +9 -5
  2037. package/filters/filter-field/FilterField.css +130 -147
  2038. package/filters/filter-field/FilterField.js +121 -27
  2039. package/filters/filter-field/FilterField.sty.js +29 -28
  2040. package/filters/filter-field/FilterField.types.d.ts +14 -1
  2041. package/filters/filter-field/components/FilterFieldSuffixButtons.css +3 -3
  2042. package/filters/filter-field/components/FilterFieldSuffixButtons.sty.js +3 -3
  2043. package/filters/filter-field/components/FilterStatement.css +14 -14
  2044. package/filters/filter-field/components/FilterStatement.js +6 -8
  2045. package/filters/filter-field/components/FilterStatement.sty.js +8 -7
  2046. package/filters/filter-field/error-fallback/filter-value-obfuscation-util.js +2 -2
  2047. package/filters/filter-field/hooks/useFilterFieldLinting.js +3 -0
  2048. package/filters/filter-field/messages.d.ts +5 -0
  2049. package/filters/filter-field/messages.js +5 -0
  2050. package/filters/filter-field/parser/character-codes.d.ts +3 -0
  2051. package/filters/filter-field/parser/character-codes.js +3 -0
  2052. package/filters/filter-field/parser/external-tokenizers/json-path-identifier-tokenizer.js +7 -4
  2053. package/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.d.ts +11 -0
  2054. package/filters/filter-field/parser/external-tokenizers/key-identifier-tokenizer.js +35 -0
  2055. package/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.d.ts +9 -0
  2056. package/filters/filter-field/parser/external-tokenizers/list-identifier-tokenizer.js +40 -0
  2057. package/filters/filter-field/parser/external-tokenizers/text-tokenizer.js +1 -1
  2058. package/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.d.ts +10 -0
  2059. package/filters/filter-field/parser/external-tokenizers/value-identifier-tokenizer.js +40 -0
  2060. package/filters/filter-field/parser/external-tokenizers/value-tokenizer.js +8 -13
  2061. package/filters/filter-field/parser/parser-context.js +1 -0
  2062. package/filters/filter-field/parser/parser.js +66 -59
  2063. package/filters/filter-field/parser/parser.terms.d.ts +1 -1
  2064. package/filters/filter-field/parser/parser.terms.js +7 -2
  2065. package/filters/filter-field/parser/utils/accept-free-text.d.ts +1 -0
  2066. package/filters/filter-field/parser/utils/accept-free-text.js +9 -11
  2067. package/filters/filter-field/parser/utils/scan-identifier.d.ts +14 -0
  2068. package/filters/filter-field/parser/utils/scan-identifier.js +101 -0
  2069. package/filters/filter-field/state/recent-pinned-store.js +3 -0
  2070. package/filters/filter-field/suggestions/RecentPinnedSuggestionItem.css +9 -9
  2071. package/filters/filter-field/suggestions/RecentPinnedSuggestionItem.sty.js +2 -2
  2072. package/filters/filter-field/suggestions/Suggestion.css +24 -24
  2073. package/filters/filter-field/suggestions/Suggestion.sty.js +16 -16
  2074. package/filters/filter-field/suggestions/SuggestionDetails.css +2 -2
  2075. package/filters/filter-field/suggestions/SuggestionDetails.sty.js +2 -2
  2076. package/filters/filter-field/suggestions/SuggestionGroup.css +6 -6
  2077. package/filters/filter-field/suggestions/SuggestionGroup.sty.js +3 -3
  2078. package/filters/filter-field/suggestions/SuggestionGroupLabel.css +1 -1
  2079. package/filters/filter-field/suggestions/SuggestionGroupLabel.sty.js +1 -1
  2080. package/filters/filter-field/suggestions/SuggestionTips.css +7 -7
  2081. package/filters/filter-field/suggestions/SuggestionTips.sty.js +5 -5
  2082. package/filters/filter-field/suggestions/Suggestions.js +5 -1
  2083. package/filters/filter-field/suggestions/SuggestionsOverlay.css +7 -7
  2084. package/filters/filter-field/suggestions/SuggestionsOverlay.sty.js +5 -5
  2085. package/filters/filter-field/types/dql-conversion-nodes.d.ts +71 -0
  2086. package/filters/filter-field/types/dql-conversion-nodes.js +15 -0
  2087. package/filters/filter-field/utils/compute-minimal-doc-change.d.ts +16 -0
  2088. package/filters/filter-field/utils/compute-minimal-doc-change.js +38 -0
  2089. package/filters/filter-field/utils/conversion/dql-conversion/escape-dql.d.ts +30 -0
  2090. package/filters/filter-field/utils/conversion/dql-conversion/escape-dql.js +38 -0
  2091. package/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.d.ts +22 -0
  2092. package/filters/filter-field/utils/conversion/dql-conversion/statement-to-dql-fragments.js +257 -0
  2093. package/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.d.ts +24 -0
  2094. package/filters/filter-field/utils/conversion/dql-conversion/tree-dql-conversion.js +115 -0
  2095. package/filters/filter-field/utils/conversion/lezer-tree-conversion/key/json-path.js +26 -0
  2096. package/filters/filter-field/utils/conversion/lezer-tree-conversion/key/key.js +11 -1
  2097. package/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/inclusion.js +13 -2
  2098. package/filters/filter-field/utils/conversion/lezer-tree-conversion/parent-node/statement.js +20 -18
  2099. package/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.d.ts +7 -0
  2100. package/filters/filter-field/utils/conversion/lezer-tree-conversion/utils/range-helpers.js +38 -0
  2101. package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.d.ts +1 -0
  2102. package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/identifier.js +4 -1
  2103. package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.d.ts +4 -2
  2104. package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/number.js +4 -2
  2105. package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.d.ts +1 -1
  2106. package/filters/filter-field/utils/conversion/lezer-tree-conversion/value/simple-value.js +53 -9
  2107. package/filters/filter-field/utils/escape-suggestion.d.ts +2 -3
  2108. package/filters/filter-field/utils/escape-suggestion.js +1 -2
  2109. package/filters/filter-field/utils/generate-errors-or-diagnostics.js +10 -16
  2110. package/filters/filter-field/utils/get-suggestion-transaction.js +4 -1
  2111. package/filters/helper/queryHelper.d.ts +1 -1
  2112. package/filters/index.d.ts +3 -0
  2113. package/filters/index.js +6 -0
  2114. package/filters/segment-selector/SegmentSelector.css +4 -4
  2115. package/filters/segment-selector/SegmentSelector.d.ts +2 -0
  2116. package/filters/segment-selector/SegmentSelector.js +90 -63
  2117. package/filters/segment-selector/SegmentSelector.sty.js +4 -4
  2118. package/filters/segment-selector/SegmentSelector.types.d.ts +13 -0
  2119. package/filters/segment-selector/contexts/SegmentsCache/SegmentsCache.js +2 -1
  2120. package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.d.ts +1 -0
  2121. package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIContext.js +5 -1
  2122. package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.d.ts +6 -0
  2123. package/filters/segment-selector/contexts/SegmentsUI/SegmentsUIReducer.js +24 -1
  2124. package/filters/segment-selector/contexts/SegmentsUI/UISegments.types.d.ts +1 -0
  2125. package/filters/segment-selector/hooks/useSegmentsValidation.d.ts +9 -0
  2126. package/filters/segment-selector/hooks/useSegmentsValidation.js +58 -0
  2127. package/filters/segment-selector/hooks/useTriggerProps.js +7 -2
  2128. package/filters/segment-selector/parts/EmptySegments.css +1 -1
  2129. package/filters/segment-selector/parts/EmptySegments.sty.js +1 -1
  2130. package/filters/segment-selector/parts/Overlay.css +8 -8
  2131. package/filters/segment-selector/parts/Overlay.sty.js +8 -8
  2132. package/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.css +4 -4
  2133. package/filters/segment-selector/parts/ShowMorePanel/ShowMorePanel.sty.js +4 -4
  2134. package/filters/segment-selector/parts/TooltipMessages.js +1 -2
  2135. package/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.d.ts +2 -0
  2136. package/filters/segment-selector/parts/segmentsPresets/SegmentsPreset.js +134 -45
  2137. package/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.css +36 -32
  2138. package/filters/segment-selector/parts/segmentsPresets/SegmentsPresets.sty.js +10 -10
  2139. package/filters/segment-selector/parts/segmentsPresets/SegmentsPresetsList.js +3 -1
  2140. package/filters/segment-selector/parts/selectionBar/SegmentSelect.css +22 -22
  2141. package/filters/segment-selector/parts/selectionBar/SegmentSelect.sty.js +7 -7
  2142. package/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.css +1 -1
  2143. package/filters/segment-selector/parts/selectionBar/SegmentSelectorTrigger.sty.js +1 -1
  2144. package/filters/segment-selector/parts/selectionBar/SelectionBar.js +6 -7
  2145. package/filters/segment-selector/parts/selectionBar/ValueSelect.d.ts +3 -1
  2146. package/filters/segment-selector/parts/selectionBar/ValueSelect.js +175 -105
  2147. package/filters/segment-selector/segmentMessages.d.ts +15 -0
  2148. package/filters/segment-selector/segmentMessages.js +15 -0
  2149. package/filters/timeframe-selector/TimeframeSelector.css +2 -2
  2150. package/filters/timeframe-selector/TimeframeSelector.sty.js +2 -2
  2151. package/filters/timeframe-selector/TimeframeSelector.types.d.ts +13 -0
  2152. package/filters/timeframe-selector/TimeframeSelectorRoot.js +80 -1
  2153. package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.css +4 -4
  2154. package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.js +13 -13
  2155. package/filters/timeframe-selector/components/custom-timeframe-selector/CustomTimeframeSelector.sty.js +3 -3
  2156. package/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.css +4 -4
  2157. package/filters/timeframe-selector/components/overlay/TimeframeSelectorOverlay.sty.js +4 -4
  2158. package/filters/timeframe-selector/components/presets/PresetItem.js +1 -1
  2159. package/filters/timeframe-selector/components/presets/Presets.css +27 -27
  2160. package/filters/timeframe-selector/components/presets/Presets.sty.js +11 -11
  2161. package/filters/timeframe-selector/components/trigger/Trigger.css +11 -11
  2162. package/filters/timeframe-selector/components/trigger/Trigger.sty.js +4 -4
  2163. package/filters/timeframe-selector/constants/timeframeSelectorMessages.d.ts +5 -58
  2164. package/filters/timeframe-selector/constants/timeframeSelectorMessages.js +3 -57
  2165. package/forms/_base-input/BaseInput.css +85 -106
  2166. package/forms/_base-input/BaseInput.sty.js +11 -11
  2167. package/forms/_base-input/BaseInputButton.d.ts +1 -0
  2168. package/forms/_base-input/BaseInputButton.js +14 -6
  2169. package/forms/_base-input/BaseInputContent.css +7 -7
  2170. package/forms/_base-input/BaseInputContent.sty.js +1 -1
  2171. package/forms/_base-input/ClearButton.d.ts +4 -0
  2172. package/forms/_base-input/ClearButton.js +7 -0
  2173. package/forms/calendar/Calendar.css +48 -48
  2174. package/forms/calendar/Calendar.js +3 -1
  2175. package/forms/calendar/Calendar.sty.js +12 -12
  2176. package/forms/calendar/components/CalendarItem.css +7 -7
  2177. package/forms/calendar/components/CalendarItem.sty.js +4 -4
  2178. package/forms/calendar/components/CalendarOutlineIcon.css +8 -8
  2179. package/forms/calendar/components/CalendarOutlineIcon.sty.js +5 -5
  2180. package/forms/calendar/variables.sty.js +2 -2
  2181. package/forms/checkbox/Checkbox.css +20 -20
  2182. package/forms/checkbox/Checkbox.sty.js +3 -3
  2183. package/forms/date-time-picker/DateSelector.js +7 -3
  2184. package/forms/date-time-picker/DateTimePicker.css +43 -79
  2185. package/forms/date-time-picker/DateTimePicker.css.d.ts +0 -30
  2186. package/forms/date-time-picker/DateTimePicker.sty.js +6 -6
  2187. package/forms/date-time-picker/DateTimePickerRoot.js +24 -35
  2188. package/forms/date-time-picker/hooks/useDateTimePicker.js +79 -29
  2189. package/forms/date-time-picker/hooks/useSpinButtons.d.ts +1 -1
  2190. package/forms/date-time-picker/hooks/useSpinButtons.js +58 -39
  2191. package/forms/date-time-picker/types.d.ts +3 -1
  2192. package/forms/date-time-range-picker/DateRangeSelector.css +1 -1
  2193. package/forms/date-time-range-picker/DateRangeSelector.js +4 -0
  2194. package/forms/date-time-range-picker/DateRangeSelector.sty.js +1 -1
  2195. package/forms/date-time-range-picker/DateTimeInput.css +11 -11
  2196. package/forms/date-time-range-picker/DateTimeInput.sty.js +3 -3
  2197. package/forms/date-time-range-picker/DateTimeRangePicker.css +27 -27
  2198. package/forms/date-time-range-picker/DateTimeRangePicker.js +2 -0
  2199. package/forms/date-time-range-picker/DateTimeRangePicker.sty.js +4 -4
  2200. package/forms/date-time-range-picker/DateTimeRangePickerRoot.d.ts +1 -0
  2201. package/forms/date-time-range-picker/DateTimeRangePickerRoot.js +44 -77
  2202. package/forms/date-time-range-picker/hooks/useDateTimeInput.js +17 -5
  2203. package/forms/date-time-range-picker/types.d.ts +2 -0
  2204. package/forms/date-time-range-picker/useSelectionInteractionHandlers.js +4 -0
  2205. package/forms/form/hooks/useInternalFormRegistration.js +3 -1
  2206. package/forms/forms-core/components/field-set/FieldSet.css +2 -2
  2207. package/forms/forms-core/components/field-set/FieldSet.sty.js +2 -2
  2208. package/forms/forms-core/components/form-field/FormField.sty.js +1 -1
  2209. package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.css +5 -5
  2210. package/forms/forms-core/components/form-field-messages/FormFieldMessageItem.sty.js +2 -2
  2211. package/forms/forms-core/components/form-field-messages/FormFieldMessages.css +3 -3
  2212. package/forms/forms-core/components/form-field-messages/FormFieldMessages.sty.js +1 -1
  2213. package/forms/forms-core/components/label/Label.css +5 -5
  2214. package/forms/forms-core/components/label/Label.sty.js +2 -2
  2215. package/forms/forms-core/hooks/useMinMaxLogger.d.ts +2 -1
  2216. package/forms/forms-core/hooks/useMinMaxLogger.js +11 -1
  2217. package/forms/forms-core/state/formfield-messages-state-reducer.js +5 -1
  2218. package/forms/forms-core/time/timeParser.d.ts +1 -7
  2219. package/forms/forms-core/time/timeParser.js +2 -48
  2220. package/forms/hooks/useAutofillEvent.css +8 -8
  2221. package/forms/hooks/useAutofillEvent.sty.js +4 -4
  2222. package/forms/hooks/useContainerFocus.css +1 -1
  2223. package/forms/hooks/useContainerFocus.d.ts +27 -8
  2224. package/forms/hooks/useContainerFocus.js +32 -24
  2225. package/forms/hooks/useContainerFocus.sty.js +1 -1
  2226. package/forms/number-input-v2/NumberInput.js +18 -12
  2227. package/forms/radio/styles.css +18 -18
  2228. package/forms/radio/styles.sty.js +8 -8
  2229. package/forms/search-input/SearchInput.css +2 -2
  2230. package/forms/search-input/SearchInput.js +2 -2
  2231. package/forms/search-input/SearchInput.sty.js +1 -1
  2232. package/forms/search-input/Stepper.css +5 -5
  2233. package/forms/search-input/Stepper.sty.js +3 -3
  2234. package/forms/select/Select.d.ts +1 -1
  2235. package/forms/select/Select.js +10 -5
  2236. package/forms/select/components/MenuList.js +5 -1
  2237. package/forms/select/styles/Select.css +46 -46
  2238. package/forms/select/styles/Select.sty.js +24 -24
  2239. package/forms/spin-buttons/SpinButton.css +8 -8
  2240. package/forms/spin-buttons/SpinButton.sty.js +2 -2
  2241. package/forms/spin-buttons/spin-button-group/hooks/useValueOverflow.js +2 -9
  2242. package/forms/spin-buttons/spin-button-group/types.d.ts +0 -5
  2243. package/forms/switch/Switch.css +36 -36
  2244. package/forms/switch/Switch.sty.js +5 -5
  2245. package/forms/text-area/TextArea.css +59 -59
  2246. package/forms/text-area/TextArea.sty.js +3 -3
  2247. package/forms/toggle-button-group/styles.css +58 -58
  2248. package/forms/toggle-button-group/styles.sty.js +15 -15
  2249. package/forms/validation/message-routing.d.ts +4 -6
  2250. package/lang/en.json +48 -6
  2251. package/lang/ja.json +96 -14
  2252. package/lang/uncompiled/en.json +24 -4
  2253. package/lang/uncompiled/ja.json +35 -8
  2254. package/layouts/app-header/AppHeader.css +1 -1
  2255. package/layouts/app-header/AppHeader.sty.js +1 -1
  2256. package/layouts/app-header/Navigation.css +9 -9
  2257. package/layouts/app-header/Navigation.sty.js +5 -5
  2258. package/layouts/app-header/action-group/ActionButton.css +17 -17
  2259. package/layouts/app-header/action-group/ActionButton.sty.js +3 -3
  2260. package/layouts/app-header/action-group/ActionGroup.css +1 -1
  2261. package/layouts/app-header/action-group/ActionGroup.sty.js +1 -1
  2262. package/layouts/app-header/action-group/NavItem.css +4 -4
  2263. package/layouts/app-header/action-group/NavItem.sty.js +3 -3
  2264. package/layouts/app-header/app-icon/AppIcon.css +4 -4
  2265. package/layouts/app-header/app-icon/AppIcon.sty.js +1 -1
  2266. package/layouts/container/Container.css +5 -5
  2267. package/layouts/container/Container.sty.js +1 -1
  2268. package/layouts/divider/Divider.css +6 -6
  2269. package/layouts/divider/Divider.sty.js +1 -1
  2270. package/layouts/input-group/InputGroup.css +63 -24
  2271. package/layouts/input-group/InputGroup.sty.js +5 -2
  2272. package/layouts/page/DetailView.css +3 -3
  2273. package/layouts/page/DetailView.sty.js +2 -2
  2274. package/layouts/page/Header.css +2 -2
  2275. package/layouts/page/Header.sty.js +1 -1
  2276. package/layouts/page/Main.css +6 -6
  2277. package/layouts/page/Main.sty.js +4 -4
  2278. package/layouts/page/Page.css +2 -2
  2279. package/layouts/page/Page.sty.js +1 -1
  2280. package/layouts/page/Sidebar.css +35 -35
  2281. package/layouts/page/Sidebar.sty.js +8 -8
  2282. package/layouts/page/panel.css +19 -19
  2283. package/layouts/page/panel.sty.js +10 -10
  2284. package/layouts/page-layout/PageLayout.css +10 -10
  2285. package/layouts/page-layout/PageLayout.d.ts +2 -2
  2286. package/layouts/page-layout/PageLayout.js +3 -1
  2287. package/layouts/page-layout/PageLayout.sty.js +6 -6
  2288. package/layouts/page-layout/details-layout/DetailsControlBar.css +3 -3
  2289. package/layouts/page-layout/details-layout/DetailsControlBar.sty.js +3 -3
  2290. package/layouts/page-layout/details-layout/DetailsLayout.css +6 -6
  2291. package/layouts/page-layout/details-layout/DetailsLayout.js +16 -11
  2292. package/layouts/page-layout/details-layout/DetailsLayout.sty.js +5 -5
  2293. package/layouts/page-layout/details-layout/Overlay.css +18 -18
  2294. package/layouts/page-layout/details-layout/Overlay.sty.js +4 -4
  2295. package/layouts/page-layout/details-layout/slots.d.ts +16 -9
  2296. package/layouts/page-layout/shared/portal-slots.d.ts +3 -3
  2297. package/layouts/page-layout/shared/portal-slots.js +1 -1
  2298. package/layouts/page-layout/shared/slot-config.d.ts +2 -2
  2299. package/layouts/page-layout/shared/slot-defaults.d.ts +0 -1
  2300. package/layouts/page-layout/shared/slot-defaults.js +1 -2
  2301. package/layouts/page-layout/sidebar-layout/SidebarLayout.css +37 -37
  2302. package/layouts/page-layout/sidebar-layout/SidebarLayout.sty.js +14 -14
  2303. package/layouts/page-layout/sidebar-layout/slots.d.ts +1 -1
  2304. package/layouts/split-layout/SplitLayout.css +19 -19
  2305. package/layouts/split-layout/SplitLayout.sty.js +7 -7
  2306. package/layouts/surface/Surface.css +39 -39
  2307. package/layouts/surface/Surface.sty.js +2 -2
  2308. package/layouts/surface/variables.sty.js +1 -1
  2309. package/layouts/title-bar/TitleBar.css +5 -5
  2310. package/layouts/title-bar/TitleBar.sty.js +4 -4
  2311. package/migrations/3.11.0/codemods/migrate-meterbar-slot-show-indicator.js +1 -0
  2312. package/migrations/3.11.0/codemods/migrate-meterbar-threshold-show-indicator.js +1 -0
  2313. package/migrations/3.11.0/codeshift-migration.js +74 -0
  2314. package/migrations/3.11.0/dt-app-migration.js +123 -0
  2315. package/migrations.json +5 -0
  2316. package/navigation/breadcrumbs/Breadcrumbs.css +9 -9
  2317. package/navigation/breadcrumbs/Breadcrumbs.sty.js +5 -5
  2318. package/navigation/menu/Item.js +2 -0
  2319. package/navigation/menu/Link.js +2 -0
  2320. package/navigation/menu/Menu.css +17 -17
  2321. package/navigation/menu/Menu.sty.js +8 -8
  2322. package/navigation/menu/MobileMenu.css +14 -14
  2323. package/navigation/menu/MobileMenu.sty.js +8 -8
  2324. package/navigation/tabs/RenderTab.css +14 -14
  2325. package/navigation/tabs/RenderTab.sty.js +3 -3
  2326. package/navigation/tabs/TabPanel.css +3 -3
  2327. package/navigation/tabs/TabPanel.sty.js +2 -2
  2328. package/navigation/tabs/Tabs.css +9 -9
  2329. package/navigation/tabs/Tabs.sty.js +5 -5
  2330. package/notifications/notification-settings/NotificationSettings.css +1 -1
  2331. package/notifications/notification-settings/NotificationSettings.sty.js +1 -1
  2332. package/notifications/toast/Toast.css +6 -6
  2333. package/notifications/toast/Toast.sty.js +4 -4
  2334. package/notifications/toast/ToastContainer.css +17 -17
  2335. package/notifications/toast/ToastContainer.sty.js +1 -1
  2336. package/overlays/drawer/Drawer.css +13 -9
  2337. package/overlays/drawer/Drawer.d.ts +1 -1
  2338. package/overlays/drawer/Drawer.js +95 -95
  2339. package/overlays/drawer/Drawer.sty.js +5 -5
  2340. package/overlays/modal/Modal.css +16 -16
  2341. package/overlays/modal/Modal.sty.js +7 -7
  2342. package/overlays/overlay/Overlay.css +1 -1
  2343. package/overlays/overlay/Overlay.sty.js +1 -1
  2344. package/overlays/sheet/Sheet.css +7 -7
  2345. package/overlays/sheet/Sheet.d.ts +2 -2
  2346. package/overlays/sheet/Sheet.js +10 -2
  2347. package/overlays/sheet/Sheet.sty.js +5 -5
  2348. package/overlays/tooltip/TooltipElement.js +1 -0
  2349. package/overlays/tooltip/tooltip.css +18 -18
  2350. package/overlays/tooltip/tooltip.sty.js +3 -3
  2351. package/overlays/utils/use-popper-compat.d.ts +3 -2
  2352. package/overlays/utils/use-popper-compat.js +16 -9
  2353. package/package.json +12 -5
  2354. package/styles/colorUtils.css +60 -60
  2355. package/styles/colorUtils.sty.js +2 -2
  2356. package/styles/container.css +47 -47
  2357. package/styles/container.sty.js +2 -2
  2358. package/styles/ellipsis.css +1 -1
  2359. package/styles/ellipsis.sty.js +1 -1
  2360. package/styles/field.css +256 -304
  2361. package/styles/field.css.d.ts +2 -33
  2362. package/styles/field.sty.js +2 -2
  2363. package/styles/screen-reader-only.css +1 -1
  2364. package/styles/screen-reader-only.sty.js +1 -1
  2365. package/styles/sprinkles.css +262 -262
  2366. package/styles/sprinkles.sty.js +1 -1
  2367. package/styles/textStyle.css +8 -8
  2368. package/styles/textStyle.sty.js +1 -1
  2369. package/tables/DataTable/DataTable.css +2 -2
  2370. package/tables/DataTable/DataTable.js +17 -22
  2371. package/tables/DataTable/DataTable.sty.js +7 -7
  2372. package/tables/DataTable/components/Alignment.css +6 -6
  2373. package/tables/DataTable/components/Alignment.sty.js +2 -2
  2374. package/tables/DataTable/components/BuiltinColumnHeaderName.d.ts +10 -0
  2375. package/tables/DataTable/components/BuiltinColumnHeaderName.js +31 -0
  2376. package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.css +6 -6
  2377. package/tables/DataTable/components/ColumnPinning/DataTablePinningShadowCells.sty.js +3 -3
  2378. package/tables/DataTable/components/DataTableBody.css +2 -2
  2379. package/tables/DataTable/components/DataTableBody.js +50 -31
  2380. package/tables/DataTable/components/DataTableBody.sty.js +2 -2
  2381. package/tables/DataTable/components/DataTableCell.css +83 -83
  2382. package/tables/DataTable/components/DataTableCell.sty.js +5 -5
  2383. package/tables/DataTable/components/DataTableContent.js +1 -2
  2384. package/tables/DataTable/components/DataTableDefaultCell.css +23 -23
  2385. package/tables/DataTable/components/DataTableDefaultCell.sty.js +1 -1
  2386. package/tables/DataTable/components/DataTableDragScrollLock.d.ts +13 -0
  2387. package/tables/DataTable/components/DataTableDragScrollLock.js +66 -0
  2388. package/tables/DataTable/components/DataTableEmptyState.css +6 -6
  2389. package/tables/DataTable/components/DataTableEmptyState.sty.js +2 -2
  2390. package/tables/DataTable/components/DataTableHeader.css +2 -2
  2391. package/tables/DataTable/components/DataTableHeader.sty.js +2 -2
  2392. package/tables/DataTable/components/DataTableHeaderCell.css +64 -64
  2393. package/tables/DataTable/components/DataTableHeaderCell.d.ts +2 -1
  2394. package/tables/DataTable/components/DataTableHeaderCell.js +21 -9
  2395. package/tables/DataTable/components/DataTableHeaderCell.sty.js +23 -23
  2396. package/tables/DataTable/components/DataTableRow.css +13 -13
  2397. package/tables/DataTable/components/DataTableRow.js +19 -16
  2398. package/tables/DataTable/components/DataTableRow.sty.js +1 -1
  2399. package/tables/DataTable/components/DataTableScrollShadow.css +14 -14
  2400. package/tables/DataTable/components/DataTableScrollShadow.sty.js +2 -2
  2401. package/tables/DataTable/components/DataTableVirtualizationContainer.css +21 -21
  2402. package/tables/DataTable/components/DataTableVirtualizationContainer.js +4 -44
  2403. package/tables/DataTable/components/DataTableVirtualizationContainer.sty.js +1 -1
  2404. package/tables/DataTable/components/SettingsModal/DataTableSettingsModal.css +3 -3
  2405. package/tables/DataTable/components/SettingsModal/DataTableSettingsModal.sty.js +2 -2
  2406. package/tables/DataTable/components/TableActions/DataTableSelectionChip.css +5 -5
  2407. package/tables/DataTable/components/TableActions/DataTableSelectionChip.sty.js +2 -2
  2408. package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.css +7 -7
  2409. package/tables/DataTable/components/Toolbar/ColumnSettings/ColumnOrderSettings/ColumnOrderSettingsDragAndDrop.sty.js +3 -3
  2410. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.css +1 -1
  2411. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableAllColumnsHiddenEmptyState.sty.js +1 -1
  2412. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnSettingsModal.js +9 -0
  2413. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.css +19 -19
  2414. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.js +49 -12
  2415. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsList.sty.js +2 -2
  2416. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.css +11 -11
  2417. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.js +1 -4
  2418. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsListItem.sty.js +8 -8
  2419. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.css +2 -2
  2420. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableColumnsSectionHeader.sty.js +2 -2
  2421. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.css +1 -1
  2422. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableNoFilterResultsEmptyState.sty.js +1 -1
  2423. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.css +4 -4
  2424. package/tables/DataTable/components/Toolbar/ColumnSettings/DataTableVisibilityFilterControls.sty.js +3 -3
  2425. package/tables/DataTable/components/Toolbar/DataTableToolbarMenu.js +2 -0
  2426. package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.css +3 -3
  2427. package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.js +12 -1
  2428. package/tables/DataTable/components/Toolbar/Download/DataTableDownloadData.sty.js +2 -2
  2429. package/tables/DataTable/features/ColumnOrder/ColumnOrder.css +8 -8
  2430. package/tables/DataTable/features/ColumnOrder/ColumnOrder.sty.js +4 -4
  2431. package/tables/DataTable/features/ColumnOrder/ColumnOrderDragAndDropContext.js +1 -1
  2432. package/tables/DataTable/features/ColumnSizing/ColumnSizing.css +3 -3
  2433. package/tables/DataTable/features/ColumnSizing/ColumnSizing.sty.js +1 -1
  2434. package/tables/DataTable/features/ColumnTypes/ColumnTypes.css +1 -1
  2435. package/tables/DataTable/features/ColumnTypes/ColumnTypes.sty.js +1 -1
  2436. package/tables/DataTable/features/ColumnTypes/column-types-types.d.ts +10 -1
  2437. package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.css +1 -1
  2438. package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.js +6 -1
  2439. package/tables/DataTable/features/GanttChart/DataTableGanttAnnotationsIndicators.sty.js +1 -1
  2440. package/tables/DataTable/features/GanttChart/DataTableGanttChartCell.css +3 -3
  2441. package/tables/DataTable/features/GanttChart/DataTableGanttChartCell.sty.js +2 -2
  2442. package/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.css +1 -1
  2443. package/tables/DataTable/features/GanttChart/DataTableGanttChartGrid.sty.js +1 -1
  2444. package/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.css +4 -4
  2445. package/tables/DataTable/features/GanttChart/DataTableGanttChartHeader.sty.js +1 -1
  2446. package/tables/DataTable/features/Layout/layout-types.d.ts +1 -0
  2447. package/tables/DataTable/features/LoadingState/LoadingState.css +3 -3
  2448. package/tables/DataTable/features/LoadingState/LoadingState.sty.js +3 -3
  2449. package/tables/DataTable/features/MeterBarChart/MeterBarChart.css +5 -5
  2450. package/tables/DataTable/features/MeterBarChart/MeterBarChart.d.ts +11 -0
  2451. package/tables/DataTable/features/MeterBarChart/MeterBarChart.js +19 -3
  2452. package/tables/DataTable/features/MeterBarChart/MeterBarChart.sty.js +2 -2
  2453. package/tables/DataTable/features/RowDetails/RowDetails.css +13 -13
  2454. package/tables/DataTable/features/RowDetails/RowDetails.sty.js +3 -3
  2455. package/tables/DataTable/features/RowDetails/RowDetailsColumnDef.js +2 -3
  2456. package/tables/DataTable/features/RowInteractivity/RowInteractivity.css +17 -17
  2457. package/tables/DataTable/features/RowInteractivity/RowInteractivity.sty.js +1 -1
  2458. package/tables/DataTable/features/RowInteractivity/hooks/useRowInteractivityProps.js +1 -1
  2459. package/tables/DataTable/features/RowOrder/RowOrder.css +8 -8
  2460. package/tables/DataTable/features/RowOrder/RowOrder.sty.js +3 -3
  2461. package/tables/DataTable/features/RowOrder/RowOrderColumnDef.js +2 -3
  2462. package/tables/DataTable/features/RowOrder/components/RowOrderingDragAndDropContext.js +8 -9
  2463. package/tables/DataTable/features/RowSelection/RowSelectionColumnDef.d.ts +0 -4
  2464. package/tables/DataTable/features/RowSelection/RowSelectionColumnDef.js +11 -1
  2465. package/tables/DataTable/features/Sorting/Sorting.css +34 -34
  2466. package/tables/DataTable/features/Sorting/Sorting.sty.js +3 -3
  2467. package/tables/DataTable/features/SubRows/SubRows.css +19 -19
  2468. package/tables/DataTable/features/SubRows/SubRows.sty.js +5 -5
  2469. package/tables/DataTable/features/Thresholds/Thresholds.css +2 -2
  2470. package/tables/DataTable/features/Thresholds/Thresholds.sty.js +3 -3
  2471. package/tables/DataTable/features/UserActions/FloatingMenu.js +13 -6
  2472. package/tables/DataTable/features/UserActions/InlineUserActionsMenu.js +5 -2
  2473. package/tables/DataTable/features/UserActions/RowActions.css +4 -4
  2474. package/tables/DataTable/features/UserActions/RowActions.sty.js +1 -1
  2475. package/tables/DataTable/features/UserActions/RowActionsColumnDef.js +2 -1
  2476. package/tables/DataTable/features/UserActions/UserActions.css +18 -18
  2477. package/tables/DataTable/features/UserActions/UserActions.sty.js +2 -2
  2478. package/tables/DataTable/features/VirtualScrolling/VirtualScrolling.js +1 -1
  2479. package/tables/DataTable/messages.d.ts +25 -0
  2480. package/tables/DataTable/messages.js +29 -2
  2481. package/tables/SimpleTable/SimpleTable.css +27 -27
  2482. package/tables/SimpleTable/SimpleTable.sty.js +1 -1
  2483. package/typography/block-quote/Blockquote.css +2 -2
  2484. package/typography/block-quote/Blockquote.d.ts +2 -1
  2485. package/typography/block-quote/Blockquote.sty.js +1 -1
  2486. package/typography/code/Code.css +1 -1
  2487. package/typography/code/Code.d.ts +2 -1
  2488. package/typography/code/Code.sty.js +1 -1
  2489. package/typography/emphasis/Emphasis.css +1 -1
  2490. package/typography/emphasis/Emphasis.d.ts +2 -1
  2491. package/typography/emphasis/Emphasis.sty.js +1 -1
  2492. package/typography/external-link/ExternalLink.css +6 -6
  2493. package/typography/external-link/ExternalLink.d.ts +2 -1
  2494. package/typography/external-link/ExternalLink.sty.js +1 -1
  2495. package/typography/heading/Heading.css +7 -7
  2496. package/typography/heading/Heading.sty.js +1 -1
  2497. package/typography/highlight/Highlight.css +2 -2
  2498. package/typography/highlight/Highlight.d.ts +2 -1
  2499. package/typography/highlight/Highlight.sty.js +1 -1
  2500. package/typography/link/Link.css +4 -4
  2501. package/typography/link/Link.sty.js +1 -1
  2502. package/typography/list/List.css +4 -4
  2503. package/typography/list/List.d.ts +2 -1
  2504. package/typography/list/List.sty.js +2 -2
  2505. package/typography/paragraph/Paragraph.css +3 -3
  2506. package/typography/paragraph/Paragraph.sty.js +1 -1
  2507. package/typography/strikethrough/Strikethrough.css +1 -1
  2508. package/typography/strikethrough/Strikethrough.d.ts +2 -1
  2509. package/typography/strikethrough/Strikethrough.sty.js +1 -1
  2510. package/typography/strong/Strong.css +1 -1
  2511. package/typography/strong/Strong.d.ts +2 -1
  2512. package/typography/strong/Strong.sty.js +1 -1
  2513. package/typography/text/Text.css +3 -3
  2514. package/typography/text/Text.sty.js +1 -1
  2515. package/typography/text-ellipsis/TextEllipsis.css +6 -6
  2516. package/typography/text-ellipsis/TextEllipsis.sty.js +2 -2
  2517. package/charts/core/types/aria-label.d.ts +0 -7
  2518. package/charts/core/utils/get-key-shortcut-by-agent.d.ts +0 -2
  2519. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.d.ts +0 -6
  2520. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.css +0 -7
  2521. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.css.d.ts +0 -2
  2522. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.d.ts +0 -7
  2523. package/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.js +0 -46
  2524. package/charts/meter-bar/single-meter-bar/utils/get-threshold-indicators.d.ts +0 -3
  2525. package/esm/charts/core/types/aria-label.js +0 -1
  2526. package/esm/charts/core/utils/get-key-shortcut-by-agent.js +0 -16
  2527. package/esm/charts/core/utils/get-key-shortcut-by-agent.js.map +0 -7
  2528. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.js +0 -22
  2529. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholdIndicator.js.map +0 -7
  2530. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.css +0 -7
  2531. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.js +0 -28
  2532. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.js.map +0 -7
  2533. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.sty.js +0 -6
  2534. package/esm/charts/meter-bar/single-meter-bar/components/MeterBarChartThresholds/MeterBarChartThresholds.sty.js.map +0 -7
  2535. package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-indicators.js +0 -14
  2536. package/esm/charts/meter-bar/single-meter-bar/utils/get-threshold-indicators.js.map +0 -7
  2537. /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
- setInputValue(value.value);
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
- spinButtonHandlers.forEach((sb) => sb?.clearValue(true));
234
+ applyDateTime(null);
225
235
  lastValidAbsoluteDateRef.current = null;
226
236
  return;
227
237
  }
228
238
  if (value.absoluteDate === "") {
229
239
  return;
230
240
  }
231
- setValueType(value.type);
232
- setInputValue(value.value);
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;