cursedbelt 5.40.0 → 5.45.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react/Toast.d.ts +12 -2
- package/dist/react/Toast.d.ts.map +1 -1
- package/dist/react/Toast.js +32 -3
- package/dist/react/Toast.js.map +1 -1
- package/dist/react/analytics/MetricDrilldown.js +1 -1
- package/dist/react/canvas-hud/CanvasMinimap.d.ts +32 -0
- package/dist/react/canvas-hud/CanvasMinimap.d.ts.map +1 -0
- package/dist/react/canvas-hud/CanvasMinimap.js +32 -0
- package/dist/react/canvas-hud/CanvasMinimap.js.map +1 -0
- package/dist/react/canvas-hud/CanvasNodeMenu.d.ts +34 -0
- package/dist/react/canvas-hud/CanvasNodeMenu.d.ts.map +1 -0
- package/dist/react/canvas-hud/CanvasNodeMenu.js +21 -0
- package/dist/react/canvas-hud/CanvasNodeMenu.js.map +1 -0
- package/dist/react/canvas-hud/CanvasSearchField.d.ts +27 -0
- package/dist/react/canvas-hud/CanvasSearchField.d.ts.map +1 -0
- package/dist/react/canvas-hud/CanvasSearchField.js +35 -0
- package/dist/react/canvas-hud/CanvasSearchField.js.map +1 -0
- package/dist/react/canvas-hud/HudControls.d.ts +43 -0
- package/dist/react/canvas-hud/HudControls.d.ts.map +1 -0
- package/dist/react/canvas-hud/HudControls.js +22 -0
- package/dist/react/canvas-hud/HudControls.js.map +1 -0
- package/dist/react/canvas-hud/index.d.ts +13 -0
- package/dist/react/canvas-hud/index.d.ts.map +1 -0
- package/dist/react/canvas-hud/index.js +7 -0
- package/dist/react/canvas-hud/index.js.map +1 -0
- package/dist/react/canvas-hud/useCanvasWheel.d.ts +41 -0
- package/dist/react/canvas-hud/useCanvasWheel.d.ts.map +1 -0
- package/dist/react/canvas-hud/useCanvasWheel.js +65 -0
- package/dist/react/canvas-hud/useCanvasWheel.js.map +1 -0
- package/dist/react/canvas-hud/viewport.d.ts +68 -0
- package/dist/react/canvas-hud/viewport.d.ts.map +1 -0
- package/dist/react/canvas-hud/viewport.js +77 -0
- package/dist/react/canvas-hud/viewport.js.map +1 -0
- package/dist/react/charts/AreaChart.d.ts.map +1 -1
- package/dist/react/charts/AreaChart.js +5 -5
- package/dist/react/charts/AreaChart.js.map +1 -1
- package/dist/react/charts/BarChart.d.ts.map +1 -1
- package/dist/react/charts/BarChart.js +3 -3
- package/dist/react/charts/BarChart.js.map +1 -1
- package/dist/react/charts/ChartCard.d.ts +53 -0
- package/dist/react/charts/ChartCard.d.ts.map +1 -0
- package/dist/react/charts/ChartCard.js +46 -0
- package/dist/react/charts/ChartCard.js.map +1 -0
- package/dist/react/charts/ChartFrame.d.ts +12 -5
- package/dist/react/charts/ChartFrame.d.ts.map +1 -1
- package/dist/react/charts/ChartFrame.js +12 -5
- package/dist/react/charts/ChartFrame.js.map +1 -1
- package/dist/react/charts/ChartLegend.js +1 -1
- package/dist/react/charts/ChartLegend.js.map +1 -1
- package/dist/react/charts/HeatmapChart.js +3 -3
- package/dist/react/charts/HeatmapChart.js.map +1 -1
- package/dist/react/charts/IntervalTimeline.js +1 -1
- package/dist/react/charts/IntervalTimeline.js.map +1 -1
- package/dist/react/charts/LineChart.d.ts.map +1 -1
- package/dist/react/charts/LineChart.js +3 -3
- package/dist/react/charts/LineChart.js.map +1 -1
- package/dist/react/charts/TimeSeriesChart.d.ts.map +1 -1
- package/dist/react/charts/TimeSeriesChart.js +6 -6
- package/dist/react/charts/TimeSeriesChart.js.map +1 -1
- package/dist/react/charts/chartBox.d.ts +46 -0
- package/dist/react/charts/chartBox.d.ts.map +1 -0
- package/dist/react/charts/chartBox.js +45 -0
- package/dist/react/charts/chartBox.js.map +1 -0
- package/dist/react/charts/index.d.ts +2 -0
- package/dist/react/charts/index.d.ts.map +1 -1
- package/dist/react/charts/index.js +2 -0
- package/dist/react/charts/index.js.map +1 -1
- package/dist/react/charts/shared.d.ts +13 -2
- package/dist/react/charts/shared.d.ts.map +1 -1
- package/dist/react/charts/shared.js +14 -3
- package/dist/react/charts/shared.js.map +1 -1
- package/dist/react/chat/Bubble.js +4 -4
- package/dist/react/chat/Bubble.js.map +1 -1
- package/dist/react/chat/MessageScroller.js +1 -1
- package/dist/react/chat/MessageScroller.js.map +1 -1
- package/dist/react/components/ActionBar.d.ts.map +1 -1
- package/dist/react/components/ActionBar.js +63 -1
- package/dist/react/components/ActionBar.js.map +1 -1
- package/dist/react/components/AddItemsMenu.js +1 -1
- package/dist/react/components/AddItemsMenu.js.map +1 -1
- package/dist/react/components/Alert.d.ts +16 -2
- package/dist/react/components/Alert.d.ts.map +1 -1
- package/dist/react/components/Alert.js +35 -2
- package/dist/react/components/Alert.js.map +1 -1
- package/dist/react/components/AppShell.d.ts +55 -33
- package/dist/react/components/AppShell.d.ts.map +1 -1
- package/dist/react/components/AppShell.js +141 -31
- package/dist/react/components/AppShell.js.map +1 -1
- package/dist/react/components/AsyncPanel.d.ts +21 -3
- package/dist/react/components/AsyncPanel.d.ts.map +1 -1
- package/dist/react/components/AsyncPanel.js +50 -6
- package/dist/react/components/AsyncPanel.js.map +1 -1
- package/dist/react/components/BannerLane.d.ts +32 -0
- package/dist/react/components/BannerLane.d.ts.map +1 -0
- package/dist/react/components/BannerLane.js +41 -0
- package/dist/react/components/BannerLane.js.map +1 -0
- package/dist/react/components/Button.d.ts.map +1 -1
- package/dist/react/components/Button.js +2 -1
- package/dist/react/components/Button.js.map +1 -1
- package/dist/react/components/Checkbox.d.ts.map +1 -1
- package/dist/react/components/Checkbox.js +7 -2
- package/dist/react/components/Checkbox.js.map +1 -1
- package/dist/react/components/ChipFilterStrip.js +1 -1
- package/dist/react/components/ChipFilterStrip.js.map +1 -1
- package/dist/react/components/ComboboxField.d.ts.map +1 -1
- package/dist/react/components/ComboboxField.js +14 -4
- package/dist/react/components/ComboboxField.js.map +1 -1
- package/dist/react/components/CommentThread.js +2 -2
- package/dist/react/components/CommentThread.js.map +1 -1
- package/dist/react/components/ConfirmDialog.js +1 -1
- package/dist/react/components/ConfirmDialog.js.map +1 -1
- package/dist/react/components/DataTable/DataTable.d.ts +18 -2
- package/dist/react/components/DataTable/DataTable.d.ts.map +1 -1
- package/dist/react/components/DataTable/DataTable.js +51 -12
- package/dist/react/components/DataTable/DataTable.js.map +1 -1
- package/dist/react/components/DataTable/Pagination.js +1 -1
- package/dist/react/components/DataTable/Pagination.js.map +1 -1
- package/dist/react/components/DataTable/RowActions.d.ts +7 -1
- package/dist/react/components/DataTable/RowActions.d.ts.map +1 -1
- package/dist/react/components/DataTable/RowActions.js +10 -3
- package/dist/react/components/DataTable/RowActions.js.map +1 -1
- package/dist/react/components/DataTable/TableFilterBuilder.js +1 -1
- package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -1
- package/dist/react/components/DataTable/cells/CodeCell.js +1 -1
- package/dist/react/components/DataTable/cells/CodeCell.js.map +1 -1
- package/dist/react/components/DataTable/cells/LinkCell.js +1 -1
- package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -1
- package/dist/react/components/DataTable/index.d.ts +1 -1
- package/dist/react/components/DataTable/index.d.ts.map +1 -1
- package/dist/react/components/DataTable/index.js.map +1 -1
- package/dist/react/components/DataTable/types.d.ts +20 -0
- package/dist/react/components/DataTable/types.d.ts.map +1 -1
- package/dist/react/components/DataTable/types.js +22 -0
- package/dist/react/components/DataTable/types.js.map +1 -1
- package/dist/react/components/DateTimeField.d.ts.map +1 -1
- package/dist/react/components/DateTimeField.js +4 -1
- package/dist/react/components/DateTimeField.js.map +1 -1
- package/dist/react/components/DeleteButton.js +2 -0
- package/dist/react/components/DeleteButton.js.map +1 -1
- package/dist/react/components/Drawer.js +3 -3
- package/dist/react/components/Drawer.js.map +1 -1
- package/dist/react/components/DropdownMenu.d.ts +16 -0
- package/dist/react/components/DropdownMenu.d.ts.map +1 -1
- package/dist/react/components/DropdownMenu.js +22 -6
- package/dist/react/components/DropdownMenu.js.map +1 -1
- package/dist/react/components/EmptyState.d.ts +10 -2
- package/dist/react/components/EmptyState.d.ts.map +1 -1
- package/dist/react/components/EmptyState.js +10 -5
- package/dist/react/components/EmptyState.js.map +1 -1
- package/dist/react/components/EventTimeline.js +1 -1
- package/dist/react/components/EventTimeline.js.map +1 -1
- package/dist/react/components/Field.d.ts.map +1 -1
- package/dist/react/components/Field.js +4 -1
- package/dist/react/components/Field.js.map +1 -1
- package/dist/react/components/FileDropZone.js +1 -1
- package/dist/react/components/FileDropZone.js.map +1 -1
- package/dist/react/components/Grid.d.ts +9 -1
- package/dist/react/components/Grid.d.ts.map +1 -1
- package/dist/react/components/Grid.js +20 -2
- package/dist/react/components/Grid.js.map +1 -1
- package/dist/react/components/Guide.d.ts +31 -0
- package/dist/react/components/Guide.d.ts.map +1 -0
- package/dist/react/components/Guide.js +18 -0
- package/dist/react/components/Guide.js.map +1 -0
- package/dist/react/components/InfoHintImpl.d.ts +0 -13
- package/dist/react/components/InfoHintImpl.d.ts.map +1 -1
- package/dist/react/components/InfoHintImpl.js +17 -1
- package/dist/react/components/InfoHintImpl.js.map +1 -1
- package/dist/react/components/InlineEditableText.js +1 -1
- package/dist/react/components/InlineEditableText.js.map +1 -1
- package/dist/react/components/IsolatedFrame.js +1 -1
- package/dist/react/components/IsolatedFrame.js.map +1 -1
- package/dist/react/components/ListToolbar.d.ts.map +1 -1
- package/dist/react/components/ListToolbar.js +2 -2
- package/dist/react/components/ListToolbar.js.map +1 -1
- package/dist/react/components/LogViewer.d.ts +26 -2
- package/dist/react/components/LogViewer.d.ts.map +1 -1
- package/dist/react/components/LogViewer.js +41 -26
- package/dist/react/components/LogViewer.js.map +1 -1
- package/dist/react/components/Modal.d.ts +5 -1
- package/dist/react/components/Modal.d.ts.map +1 -1
- package/dist/react/components/Modal.js +18 -8
- package/dist/react/components/Modal.js.map +1 -1
- package/dist/react/components/Page.d.ts +51 -7
- package/dist/react/components/Page.d.ts.map +1 -1
- package/dist/react/components/Page.js +53 -8
- package/dist/react/components/Page.js.map +1 -1
- package/dist/react/components/PageGuideButton.d.ts +11 -0
- package/dist/react/components/PageGuideButton.d.ts.map +1 -0
- package/dist/react/components/PageGuideButton.js +52 -0
- package/dist/react/components/PageGuideButton.js.map +1 -0
- package/dist/react/components/PageGuidePopover.d.ts +14 -0
- package/dist/react/components/PageGuidePopover.d.ts.map +1 -0
- package/dist/react/components/PageGuidePopover.js +25 -0
- package/dist/react/components/PageGuidePopover.js.map +1 -0
- package/dist/react/components/PanelSeparator.js +1 -1
- package/dist/react/components/PanelSeparator.js.map +1 -1
- package/dist/react/components/Popover.d.ts.map +1 -1
- package/dist/react/components/Popover.js +2 -1
- package/dist/react/components/Popover.js.map +1 -1
- package/dist/react/components/PromptDialog.js +1 -1
- package/dist/react/components/PromptDialog.js.map +1 -1
- package/dist/react/components/ScrollArea.d.ts +9 -1
- package/dist/react/components/ScrollArea.d.ts.map +1 -1
- package/dist/react/components/ScrollArea.js +9 -3
- package/dist/react/components/ScrollArea.js.map +1 -1
- package/dist/react/components/Section.d.ts +5 -2
- package/dist/react/components/Section.d.ts.map +1 -1
- package/dist/react/components/Section.js +5 -2
- package/dist/react/components/Section.js.map +1 -1
- package/dist/react/components/Skeleton.d.ts +19 -1
- package/dist/react/components/Skeleton.d.ts.map +1 -1
- package/dist/react/components/Skeleton.js +24 -2
- package/dist/react/components/Skeleton.js.map +1 -1
- package/dist/react/components/StatStrip.js +1 -1
- package/dist/react/components/StatStrip.js.map +1 -1
- package/dist/react/components/StatTile.d.ts +30 -3
- package/dist/react/components/StatTile.d.ts.map +1 -1
- package/dist/react/components/StatTile.js +35 -9
- package/dist/react/components/StatTile.js.map +1 -1
- package/dist/react/components/StatTileGrid.d.ts +10 -1
- package/dist/react/components/StatTileGrid.d.ts.map +1 -1
- package/dist/react/components/StatTileGrid.js +50 -33
- package/dist/react/components/StatTileGrid.js.map +1 -1
- package/dist/react/components/StatusPill.d.ts.map +1 -1
- package/dist/react/components/StatusPill.js +26 -1
- package/dist/react/components/StatusPill.js.map +1 -1
- package/dist/react/components/Surface.d.ts +1 -1
- package/dist/react/components/Surface.d.ts.map +1 -1
- package/dist/react/components/Surface.js +20 -11
- package/dist/react/components/Surface.js.map +1 -1
- package/dist/react/components/SwatchPicker.d.ts.map +1 -1
- package/dist/react/components/SwatchPicker.js +5 -1
- package/dist/react/components/SwatchPicker.js.map +1 -1
- package/dist/react/components/Switch.js +1 -1
- package/dist/react/components/Switch.js.map +1 -1
- package/dist/react/components/TagsInput.d.ts.map +1 -1
- package/dist/react/components/TagsInput.js +3 -1
- package/dist/react/components/TagsInput.js.map +1 -1
- package/dist/react/components/WidgetHeader.js +1 -1
- package/dist/react/components/WidgetHeader.js.map +1 -1
- package/dist/react/components/calendar/CalendarLegend.js +1 -1
- package/dist/react/components/calendar/CalendarLegend.js.map +1 -1
- package/dist/react/components/calendar/DayAgenda.js +1 -1
- package/dist/react/components/calendar/DayAgenda.js.map +1 -1
- package/dist/react/components/calendar/EventChip.js +1 -1
- package/dist/react/components/calendar/EventChip.js.map +1 -1
- package/dist/react/components/calendar/MonthGrid.js +1 -1
- package/dist/react/components/calendar/MonthGrid.js.map +1 -1
- package/dist/react/components/calendar/WeekView.js +2 -2
- package/dist/react/components/calendar/WeekView.js.map +1 -1
- package/dist/react/components/cardFrame.d.ts +16 -0
- package/dist/react/components/cardFrame.d.ts.map +1 -0
- package/dist/react/components/cardFrame.js +24 -0
- package/dist/react/components/cardFrame.js.map +1 -0
- package/dist/react/components/dialog.d.ts.map +1 -1
- package/dist/react/components/dialog.js +2 -1
- package/dist/react/components/dialog.js.map +1 -1
- package/dist/react/dashboard-grid/WidgetFrame.js +2 -2
- package/dist/react/dashboard-grid/WidgetFrame.js.map +1 -1
- package/dist/react/emoji/EmojiPicker.js +1 -1
- package/dist/react/emoji/EmojiPicker.js.map +1 -1
- package/dist/react/file-tree/FileTree.d.ts +8 -1
- package/dist/react/file-tree/FileTree.d.ts.map +1 -1
- package/dist/react/file-tree/FileTree.js +29 -4
- package/dist/react/file-tree/FileTree.js.map +1 -1
- package/dist/react/filter-rail/FilterRail.js +1 -1
- package/dist/react/filter-rail/FilterRail.js.map +1 -1
- package/dist/react/folder-tree/FolderPicker.d.ts.map +1 -1
- package/dist/react/folder-tree/FolderPicker.js +5 -1
- package/dist/react/folder-tree/FolderPicker.js.map +1 -1
- package/dist/react/icons.d.ts +28 -0
- package/dist/react/icons.d.ts.map +1 -1
- package/dist/react/icons.js +29 -1
- package/dist/react/icons.js.map +1 -1
- package/dist/react/index.d.ts +9 -6
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +6 -3
- package/dist/react/index.js.map +1 -1
- package/dist/react/lib/menuSections.d.ts +8 -0
- package/dist/react/lib/menuSections.d.ts.map +1 -0
- package/dist/react/lib/menuSections.js +37 -0
- package/dist/react/lib/menuSections.js.map +1 -0
- package/dist/react/lib/whenIdle.d.ts +7 -0
- package/dist/react/lib/whenIdle.d.ts.map +1 -0
- package/dist/react/lib/whenIdle.js +14 -0
- package/dist/react/lib/whenIdle.js.map +1 -0
- package/dist/react/markdown/Markdown.js +2 -2
- package/dist/react/markdown/Markdown.js.map +1 -1
- package/dist/react/media/DenseGalleryShell.d.ts +7 -1
- package/dist/react/media/DenseGalleryShell.d.ts.map +1 -1
- package/dist/react/media/DenseGalleryShell.js +3 -3
- package/dist/react/media/DenseGalleryShell.js.map +1 -1
- package/dist/react/media/HoverScrubVideoThumb.js +1 -1
- package/dist/react/media/HoverScrubVideoThumb.js.map +1 -1
- package/dist/react/media/MaskPainter.js +1 -1
- package/dist/react/media/MediaUploadControl.js +1 -1
- package/dist/react/media/MediaUploadControl.js.map +1 -1
- package/dist/react/media/VideoTrimmer.js +1 -1
- package/dist/react/media/VideoTrimmer.js.map +1 -1
- package/dist/react/media/denseGallery.css +96 -1
- package/dist/react/media-gallery/MediaGallery.d.ts +5 -2
- package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
- package/dist/react/media-gallery/MediaGallery.js +1 -1
- package/dist/react/media-gallery/MediaGallery.js.map +1 -1
- package/dist/react/namespace/NamespaceTargetCapsule.js +1 -1
- package/dist/react/namespace/NamespaceTargetCapsule.js.map +1 -1
- package/dist/react/nav/BreadcrumbTrail.js +1 -1
- package/dist/react/nav/BreadcrumbTrail.js.map +1 -1
- package/dist/react/nav/CommandBar.d.ts +7 -1
- package/dist/react/nav/CommandBar.d.ts.map +1 -1
- package/dist/react/nav/CommandBar.js +5 -3
- package/dist/react/nav/CommandBar.js.map +1 -1
- package/dist/react/nav/PlaceBar.d.ts.map +1 -1
- package/dist/react/nav/PlaceBar.js +7 -9
- package/dist/react/nav/PlaceBar.js.map +1 -1
- package/dist/react/nav/SideNav.d.ts +12 -2
- package/dist/react/nav/SideNav.d.ts.map +1 -1
- package/dist/react/nav/SideNav.js +42 -22
- package/dist/react/nav/SideNav.js.map +1 -1
- package/dist/react/nav/TopBar.d.ts +65 -31
- package/dist/react/nav/TopBar.d.ts.map +1 -1
- package/dist/react/nav/TopBar.js +59 -24
- package/dist/react/nav/TopBar.js.map +1 -1
- package/dist/react/nav/index.d.ts +1 -1
- package/dist/react/nav/index.d.ts.map +1 -1
- package/dist/react/nav/index.js +1 -1
- package/dist/react/nav/index.js.map +1 -1
- package/dist/react/nav/navShared.d.ts +10 -1
- package/dist/react/nav/navShared.d.ts.map +1 -1
- package/dist/react/nav/navShared.js +23 -0
- package/dist/react/nav/navShared.js.map +1 -1
- package/dist/react/notifications/NotificationFeed.js +2 -2
- package/dist/react/notifications/NotificationFeed.js.map +1 -1
- package/dist/react/palette/Command.d.ts.map +1 -1
- package/dist/react/palette/Command.js +1 -1
- package/dist/react/palette/Command.js.map +1 -1
- package/dist/react/palette/CommandPalette.d.ts +13 -1
- package/dist/react/palette/CommandPalette.d.ts.map +1 -1
- package/dist/react/palette/CommandPalette.js +44 -8
- package/dist/react/palette/CommandPalette.js.map +1 -1
- package/dist/react/palette/commandSources.d.ts +57 -0
- package/dist/react/palette/commandSources.d.ts.map +1 -0
- package/dist/react/palette/commandSources.js +129 -0
- package/dist/react/palette/commandSources.js.map +1 -0
- package/dist/react/palette/index.d.ts +1 -0
- package/dist/react/palette/index.d.ts.map +1 -1
- package/dist/react/palette/index.js +1 -0
- package/dist/react/palette/index.js.map +1 -1
- package/dist/react/rich-text/RichTextEditor.js +1 -1
- package/dist/react/rich-text/RichTextEditor.js.map +1 -1
- package/dist/react/rich-text/RichTextToolbar.js +1 -1
- package/dist/react/rich-text/RichTextToolbar.js.map +1 -1
- package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
- package/dist/styles-areas/analytics.css +16 -16
- package/dist/styles-areas/auth.css +2 -2
- package/dist/styles-areas/calendar.css +5 -6
- package/dist/styles-areas/canvas-hud.css +30 -0
- package/dist/styles-areas/chart-table.css +1 -1
- package/dist/styles-areas/charts.css +3 -3
- package/dist/styles-areas/chat.css +7 -6
- package/dist/styles-areas/companion-link.css +2 -2
- package/dist/styles-areas/core.css +99 -90
- package/dist/styles-areas/dashboard-grid.css +4 -4
- package/dist/styles-areas/data-table.css +16 -16
- package/dist/styles-areas/disk-usage.css +5 -5
- package/dist/styles-areas/emoji.css +2 -2
- package/dist/styles-areas/fields.css +13 -14
- package/dist/styles-areas/filter-rail.css +4 -4
- package/dist/styles-areas/folder-tree.css +6 -6
- package/dist/styles-areas/layout-engine.css +4 -4
- package/dist/styles-areas/markdown.css +2 -1
- package/dist/styles-areas/master-detail.css +3 -3
- package/dist/styles-areas/media-gallery.css +7 -6
- package/dist/styles-areas/media.css +12 -13
- package/dist/styles-areas/nav.css +28 -14
- package/dist/styles-areas/notifications.css +4 -4
- package/dist/styles-areas/overlays.css +4 -4
- package/dist/styles-areas/palette.css +5 -4
- package/dist/styles-areas/rich-text.css +3 -3
- package/dist/styles-areas/sharing.css +4 -3
- package/dist/styles-areas/stats.css +9 -8
- package/dist/styles-areas/test-report.css +4 -4
- package/dist/styles-areas/wizard.css +6 -5
- package/dist/styles-areas/workbench.css +10 -9
- package/dist/styles-areas/workbook-viewer.css +2 -2
- package/dist/styles-utilities.css +296 -190
- package/dist/testing/designAudit.d.ts.map +1 -1
- package/dist/testing/designAudit.js +4 -0
- package/dist/testing/designAudit.js.map +1 -1
- package/dist/testing/designBaseline.d.ts.map +1 -1
- package/dist/testing/designBaseline.js +4 -0
- package/dist/testing/designBaseline.js.map +1 -1
- package/dist/theme.css +103 -2
- package/package.json +10 -2
- package/scripts/generateAreaStyles.ts +3 -1
- package/scripts/guardrails-baseline.json +2 -1
- package/scripts/guardrailsEnforce.spec.ts +64 -0
- package/scripts/guardrailsEnforce.ts +65 -8
- package/scripts/styleAreas.ts +89 -6
- package/src/bundlerOnlyEntries.spec.ts +25 -8
- package/src/nodeTypesDeclared.spec.ts +47 -0
- package/src/react/Toast.spec.tsx +43 -0
- package/src/react/Toast.tsx +45 -2
- package/src/react/analytics/MetricDrilldown.tsx +1 -1
- package/src/react/canvas-hud/CanvasMinimap.tsx +88 -0
- package/src/react/canvas-hud/CanvasNodeMenu.tsx +91 -0
- package/src/react/canvas-hud/CanvasSearchField.tsx +91 -0
- package/src/react/canvas-hud/HudControls.spec.tsx +160 -0
- package/src/react/canvas-hud/HudControls.tsx +128 -0
- package/src/react/canvas-hud/index.ts +33 -0
- package/src/react/canvas-hud/useCanvasWheel.ts +99 -0
- package/src/react/canvas-hud/viewport.spec.ts +105 -0
- package/src/react/canvas-hud/viewport.ts +124 -0
- package/src/react/charts/AreaChart.tsx +9 -8
- package/src/react/charts/BarChart.tsx +11 -10
- package/src/react/charts/ChartCard.tsx +146 -0
- package/src/react/charts/ChartFrame.tsx +28 -10
- package/src/react/charts/ChartLegend.tsx +1 -1
- package/src/react/charts/HeatmapChart.tsx +5 -5
- package/src/react/charts/IntervalTimeline.tsx +2 -2
- package/src/react/charts/LineChart.tsx +9 -8
- package/src/react/charts/TimeSeriesChart.tsx +11 -10
- package/src/react/charts/chartBox.spec.ts +40 -0
- package/src/react/charts/chartBox.ts +75 -0
- package/src/react/charts/index.ts +2 -0
- package/src/react/charts/shared.ts +16 -3
- package/src/react/chat/Bubble.tsx +5 -5
- package/src/react/chat/MessageScroller.tsx +1 -1
- package/src/react/components/ActionBar.spec.tsx +90 -0
- package/src/react/components/ActionBar.tsx +82 -2
- package/src/react/components/AddItemsMenu.tsx +1 -1
- package/src/react/components/Alert.spec.tsx +32 -2
- package/src/react/components/Alert.tsx +47 -3
- package/src/react/components/AppShell.spec.tsx +199 -13
- package/src/react/components/AppShell.tsx +254 -92
- package/src/react/components/AsyncPanel.spec.tsx +17 -1
- package/src/react/components/AsyncPanel.tsx +88 -6
- package/src/react/components/BannerLane.tsx +128 -0
- package/src/react/components/Button.tsx +2 -0
- package/src/react/components/Checkbox.spec.tsx +18 -0
- package/src/react/components/Checkbox.tsx +8 -5
- package/src/react/components/ChipFilterStrip.tsx +1 -1
- package/src/react/components/ComboboxField.tsx +20 -3
- package/src/react/components/CommentThread.tsx +2 -2
- package/src/react/components/ConfirmDialog.tsx +1 -1
- package/src/react/components/DataTable/DataTable.tsx +80 -8
- package/src/react/components/DataTable/Pagination.tsx +1 -1
- package/src/react/components/DataTable/RowActions.tsx +55 -2
- package/src/react/components/DataTable/TableFilterBuilder.tsx +1 -1
- package/src/react/components/DataTable/cells/CodeCell.tsx +1 -1
- package/src/react/components/DataTable/cells/LinkCell.tsx +1 -1
- package/src/react/components/DataTable/index.ts +1 -0
- package/src/react/components/DataTable/numericColumn.spec.ts +19 -0
- package/src/react/components/DataTable/types.ts +36 -0
- package/src/react/components/DateTimeField.tsx +3 -1
- package/src/react/components/DeleteButton.tsx +3 -0
- package/src/react/components/Drawer.tsx +3 -3
- package/src/react/components/DropdownMenu.spec.tsx +55 -0
- package/src/react/components/DropdownMenu.tsx +73 -20
- package/src/react/components/EmptyState.tsx +26 -7
- package/src/react/components/EventTimeline.tsx +1 -1
- package/src/react/components/Field.spec.tsx +3 -2
- package/src/react/components/Field.tsx +7 -4
- package/src/react/components/Field.width.spec.tsx +14 -3
- package/src/react/components/FileDropZone.tsx +1 -1
- package/src/react/components/Grid.spec.tsx +44 -0
- package/src/react/components/Grid.tsx +41 -11
- package/src/react/components/Guide.tsx +77 -0
- package/src/react/components/InfoHint.spec.tsx +21 -0
- package/src/react/components/InfoHintImpl.tsx +22 -1
- package/src/react/components/InlineEditableText.tsx +1 -1
- package/src/react/components/IsolatedFrame.tsx +1 -1
- package/src/react/components/ListToolbar.spec.tsx +12 -0
- package/src/react/components/ListToolbar.tsx +8 -5
- package/src/react/components/LogViewer.tsx +118 -18
- package/src/react/components/Modal.spec.tsx +17 -2
- package/src/react/components/Modal.tsx +25 -10
- package/src/react/components/MultiSelectField.spec.tsx +6 -0
- package/src/react/components/Page.spec.tsx +89 -5
- package/src/react/components/Page.tsx +100 -16
- package/src/react/components/PageGuideButton.spec.tsx +39 -0
- package/src/react/components/PageGuideButton.tsx +110 -0
- package/src/react/components/PageGuidePopover.tsx +52 -0
- package/src/react/components/PanelSeparator.tsx +1 -1
- package/src/react/components/Popover.tsx +3 -1
- package/src/react/components/PromptDialog.tsx +1 -1
- package/src/react/components/ScrollArea.spec.tsx +20 -0
- package/src/react/components/ScrollArea.tsx +19 -0
- package/src/react/components/Section.spec.tsx +82 -1
- package/src/react/components/Section.tsx +10 -4
- package/src/react/components/Skeleton.tsx +50 -2
- package/src/react/components/StatStrip.tsx +1 -1
- package/src/react/components/StatTile.tsx +84 -11
- package/src/react/components/StatTileGrid.spec.tsx +6 -1
- package/src/react/components/StatTileGrid.tsx +25 -0
- package/src/react/components/StatusPill.tsx +26 -1
- package/src/react/components/Surface.tsx +22 -14
- package/src/react/components/SwatchPicker.tsx +4 -0
- package/src/react/components/Switch.tsx +1 -1
- package/src/react/components/TagsInput.spec.tsx +8 -0
- package/src/react/components/TagsInput.tsx +3 -1
- package/src/react/components/WidgetHeader.tsx +1 -1
- package/src/react/components/calendar/CalendarLegend.tsx +1 -1
- package/src/react/components/calendar/DayAgenda.tsx +1 -1
- package/src/react/components/calendar/EventChip.tsx +1 -1
- package/src/react/components/calendar/MonthGrid.tsx +1 -1
- package/src/react/components/calendar/WeekView.tsx +2 -2
- package/src/react/components/cardFrame.ts +28 -0
- package/src/react/components/dataDisplay.spec.tsx +176 -0
- package/src/react/components/dialog.tsx +4 -1
- package/src/react/components/entryChunks.graph.spec.ts +89 -0
- package/src/react/dashboard-grid/WidgetFrame.tsx +2 -2
- package/src/react/emoji/EmojiPicker.tsx +1 -1
- package/src/react/file-tree/FileTree.spec.tsx +49 -0
- package/src/react/file-tree/FileTree.tsx +37 -4
- package/src/react/filter-rail/FilterRail.tsx +1 -1
- package/src/react/folder-tree/FolderPicker.spec.tsx +8 -0
- package/src/react/folder-tree/FolderPicker.tsx +4 -1
- package/src/react/icons.spec.ts +21 -1
- package/src/react/icons.tsx +136 -2
- package/src/react/index.ts +38 -3
- package/src/react/lib/menuSections.ts +33 -0
- package/src/react/lib/whenIdle.ts +13 -0
- package/src/react/markdown/Markdown.tsx +2 -2
- package/src/react/media/DenseGalleryShell.tsx +20 -4
- package/src/react/media/HoverScrubVideoThumb.tsx +2 -2
- package/src/react/media/MaskPainter.tsx +1 -1
- package/src/react/media/MediaUploadControl.tsx +1 -1
- package/src/react/media/VideoTrimmer.tsx +1 -1
- package/src/react/media/denseGallery.css +96 -1
- package/src/react/media-gallery/MediaGallery.spec.tsx +26 -0
- package/src/react/media-gallery/MediaGallery.tsx +10 -3
- package/src/react/namespace/NamespaceTargetCapsule.tsx +1 -1
- package/src/react/nav/BreadcrumbTrail.tsx +2 -2
- package/src/react/nav/CommandBar.tsx +14 -3
- package/src/react/nav/PlaceBar.tsx +18 -8
- package/src/react/nav/SideNav.tsx +99 -17
- package/src/react/nav/TopBar.spec.tsx +78 -21
- package/src/react/nav/TopBar.tsx +270 -98
- package/src/react/nav/index.ts +8 -1
- package/src/react/nav/nav.spec.tsx +46 -2
- package/src/react/nav/navShared.tsx +23 -2
- package/src/react/notifications/NotificationFeed.tsx +2 -2
- package/src/react/palette/Command.tsx +1 -1
- package/src/react/palette/CommandPalette.spec.tsx +31 -0
- package/src/react/palette/CommandPalette.tsx +108 -11
- package/src/react/palette/commandSources.tsx +186 -0
- package/src/react/palette/index.ts +7 -0
- package/src/react/rich-text/RichTextEditor.tsx +1 -1
- package/src/react/rich-text/RichTextToolbar.tsx +1 -1
- package/src/styles-areas/analytics.css +16 -16
- package/src/styles-areas/auth.css +2 -2
- package/src/styles-areas/calendar.css +5 -6
- package/src/styles-areas/canvas-hud.css +30 -0
- package/src/styles-areas/chart-table.css +1 -1
- package/src/styles-areas/charts.css +3 -3
- package/src/styles-areas/chat.css +7 -6
- package/src/styles-areas/companion-link.css +2 -2
- package/src/styles-areas/core.css +99 -90
- package/src/styles-areas/dashboard-grid.css +4 -4
- package/src/styles-areas/data-table.css +16 -16
- package/src/styles-areas/disk-usage.css +5 -5
- package/src/styles-areas/emoji.css +2 -2
- package/src/styles-areas/fields.css +13 -14
- package/src/styles-areas/filter-rail.css +4 -4
- package/src/styles-areas/folder-tree.css +6 -6
- package/src/styles-areas/layout-engine.css +4 -4
- package/src/styles-areas/markdown.css +2 -1
- package/src/styles-areas/master-detail.css +3 -3
- package/src/styles-areas/media-gallery.css +7 -6
- package/src/styles-areas/media.css +12 -13
- package/src/styles-areas/nav.css +28 -14
- package/src/styles-areas/notifications.css +4 -4
- package/src/styles-areas/overlays.css +4 -4
- package/src/styles-areas/palette.css +5 -4
- package/src/styles-areas/rich-text.css +3 -3
- package/src/styles-areas/sharing.css +4 -3
- package/src/styles-areas/stats.css +9 -8
- package/src/styles-areas/test-report.css +4 -4
- package/src/styles-areas/wizard.css +6 -5
- package/src/styles-areas/workbench.css +10 -9
- package/src/styles-areas/workbook-viewer.css +2 -2
- package/src/styles-utilities.css +296 -190
- package/src/stylesAreas.spec.ts +17 -0
- package/src/testing/designAudit.ts +3 -0
- package/src/testing/designBaseline.ts +4 -0
- package/src/theme.css +103 -2
- package/src/themeDarkScopeAliases.spec.ts +65 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The camera arithmetic every pan-and-zoom canvas needs (CNV-2, CNV-3, CNV-5).
|
|
3
|
+
*
|
|
4
|
+
* Pure — no React, no DOM — so each rule is pinned by a spec rather than by opening an app.
|
|
5
|
+
* A view maps a WORLD point to the screen as `screen = world × scale + (x, y)`: `x`/`y` are the
|
|
6
|
+
* screen position of the world origin, which is what a CSS `translate(x, y) scale(scale)` on the
|
|
7
|
+
* stage means. Every canvas in the fleet already used that convention (family's `Camera`,
|
|
8
|
+
* patterns' `viewportGestures.ts`, desk's xyflow viewport), which is why it is the one here.
|
|
9
|
+
*/
|
|
10
|
+
export interface CanvasView {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
scale: number;
|
|
14
|
+
}
|
|
15
|
+
export interface CanvasPoint {
|
|
16
|
+
x: number;
|
|
17
|
+
y: number;
|
|
18
|
+
}
|
|
19
|
+
export interface CanvasSize {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
}
|
|
23
|
+
/** A rectangle in WORLD units — the content's extent, or the visible window. */
|
|
24
|
+
export interface CanvasBounds extends CanvasPoint, CanvasSize {
|
|
25
|
+
}
|
|
26
|
+
export declare function clampScale(scale: number, min: number, max: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* CNV-2 — zoom to `scale` keeping the screen point `anchor` still: the pointer for a wheel or a
|
|
29
|
+
* pinch, the middle of the viewport for the ± buttons. The caller clamps `scale` first, because
|
|
30
|
+
* the floor is the canvas's own business (family floors it at the whole tree).
|
|
31
|
+
*/
|
|
32
|
+
export declare function zoomAt(view: CanvasView, scale: number, anchor: CanvasPoint): CanvasView;
|
|
33
|
+
/** The zoom factor for one wheel event — exponential, so a trackpad pinch (which arrives as a
|
|
34
|
+
* ctrl+wheel stream of small deltas) and a mouse notch feel equally linear. */
|
|
35
|
+
export declare function wheelZoomFactor(deltaY: number): number;
|
|
36
|
+
export interface FitOptions {
|
|
37
|
+
/** Screen pixels of breathing room on every side. Default 48. */
|
|
38
|
+
padding?: number;
|
|
39
|
+
/**
|
|
40
|
+
* The largest scale a fit may land on. Default 1: fit SHRINKS to fit and never magnifies a
|
|
41
|
+
* small graph past its natural size — a two-node graph "fitted" to 400% reads as a zoom
|
|
42
|
+
* nobody asked for (Figma's and Miro's zoom-to-fit behave the same way).
|
|
43
|
+
*/
|
|
44
|
+
maxScale?: number;
|
|
45
|
+
/** The smallest. Default 0.02 — a degenerate extent must still be a drawable number. */
|
|
46
|
+
minScale?: number;
|
|
47
|
+
}
|
|
48
|
+
/** The scale at which `bounds` fits the viewport, or `null` while there is nothing to fit
|
|
49
|
+
* (an empty extent, or a viewport not measured yet). */
|
|
50
|
+
export declare function fitScale(bounds: CanvasSize, viewport: CanvasSize, options?: FitOptions): number | null;
|
|
51
|
+
/** CNV-3 "Fit" — the view that centres `bounds` in the viewport at {@link fitScale}. */
|
|
52
|
+
export declare function fitView(bounds: CanvasBounds, viewport: CanvasSize, options?: FitOptions): CanvasView | null;
|
|
53
|
+
/** CNV-3 "Center" — the view that puts the world point `point` in the middle of the viewport. */
|
|
54
|
+
export declare function centerView(point: CanvasPoint, viewport: CanvasSize, scale: number): CanvasView;
|
|
55
|
+
/** The part of the world the viewport shows — what a minimap draws as its window. */
|
|
56
|
+
export declare function visibleBounds(view: CanvasView, viewport: CanvasSize): CanvasBounds;
|
|
57
|
+
/** CNV-5's three densities. */
|
|
58
|
+
export type LevelOfDetail = 'far' | 'mid' | 'close';
|
|
59
|
+
export interface LevelOfDetailThresholds {
|
|
60
|
+
/** At and above this scale, primary labels may appear. Default 0.3. */
|
|
61
|
+
mid: number;
|
|
62
|
+
/** At and above this scale, full labels and metadata. Default 0.5. */
|
|
63
|
+
close: number;
|
|
64
|
+
}
|
|
65
|
+
export declare const LEVEL_OF_DETAIL: LevelOfDetailThresholds;
|
|
66
|
+
/** CNV-5 — which density a canvas draws at this scale. */
|
|
67
|
+
export declare function levelOfDetail(scale: number, thresholds?: LevelOfDetailThresholds): LevelOfDetail;
|
|
68
|
+
//# sourceMappingURL=viewport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/react/canvas-hud/viewport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,UAAU;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,UAAU;CAAG;AAEhE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,UAAU,CAQvF;AAED;gFACgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,UAAU;IACzB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;yDACyD;AACzD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,GAAG,IAAI,CAS1G;AAED,wFAAwF;AACxF,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAE,UAAe,GAAG,UAAU,GAAG,IAAI,CAI/G;AAED,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAM9F;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,YAAY,CAOlF;AAED,+BAA+B;AAC/B,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,uEAAuE;IACvE,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,EAAE,uBAAkD,CAAC;AAEjF,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,uBAAyC,GAAG,aAAa,CAIjH"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The camera arithmetic every pan-and-zoom canvas needs (CNV-2, CNV-3, CNV-5).
|
|
3
|
+
*
|
|
4
|
+
* Pure — no React, no DOM — so each rule is pinned by a spec rather than by opening an app.
|
|
5
|
+
* A view maps a WORLD point to the screen as `screen = world × scale + (x, y)`: `x`/`y` are the
|
|
6
|
+
* screen position of the world origin, which is what a CSS `translate(x, y) scale(scale)` on the
|
|
7
|
+
* stage means. Every canvas in the fleet already used that convention (family's `Camera`,
|
|
8
|
+
* patterns' `viewportGestures.ts`, desk's xyflow viewport), which is why it is the one here.
|
|
9
|
+
*/
|
|
10
|
+
export function clampScale(scale, min, max) {
|
|
11
|
+
return Math.min(max, Math.max(min, scale));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* CNV-2 — zoom to `scale` keeping the screen point `anchor` still: the pointer for a wheel or a
|
|
15
|
+
* pinch, the middle of the viewport for the ± buttons. The caller clamps `scale` first, because
|
|
16
|
+
* the floor is the canvas's own business (family floors it at the whole tree).
|
|
17
|
+
*/
|
|
18
|
+
export function zoomAt(view, scale, anchor) {
|
|
19
|
+
if (!Number.isFinite(scale) || scale <= 0 || view.scale <= 0)
|
|
20
|
+
return view;
|
|
21
|
+
const applied = scale / view.scale;
|
|
22
|
+
return {
|
|
23
|
+
scale,
|
|
24
|
+
x: anchor.x - (anchor.x - view.x) * applied,
|
|
25
|
+
y: anchor.y - (anchor.y - view.y) * applied,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/** The zoom factor for one wheel event — exponential, so a trackpad pinch (which arrives as a
|
|
29
|
+
* ctrl+wheel stream of small deltas) and a mouse notch feel equally linear. */
|
|
30
|
+
export function wheelZoomFactor(deltaY) {
|
|
31
|
+
return Math.exp(-deltaY * 0.0015);
|
|
32
|
+
}
|
|
33
|
+
/** The scale at which `bounds` fits the viewport, or `null` while there is nothing to fit
|
|
34
|
+
* (an empty extent, or a viewport not measured yet). */
|
|
35
|
+
export function fitScale(bounds, viewport, options = {}) {
|
|
36
|
+
const { padding = 48, maxScale = 1, minScale = 0.02 } = options;
|
|
37
|
+
if (bounds.width <= 0 || bounds.height <= 0 || viewport.width <= 0 || viewport.height <= 0)
|
|
38
|
+
return null;
|
|
39
|
+
const scale = Math.min((viewport.width - padding * 2) / bounds.width, (viewport.height - padding * 2) / bounds.height);
|
|
40
|
+
if (!Number.isFinite(scale))
|
|
41
|
+
return null;
|
|
42
|
+
return clampScale(scale, minScale, maxScale);
|
|
43
|
+
}
|
|
44
|
+
/** CNV-3 "Fit" — the view that centres `bounds` in the viewport at {@link fitScale}. */
|
|
45
|
+
export function fitView(bounds, viewport, options = {}) {
|
|
46
|
+
const scale = fitScale(bounds, viewport, options);
|
|
47
|
+
if (scale === null)
|
|
48
|
+
return null;
|
|
49
|
+
return centerView({ x: bounds.x + bounds.width / 2, y: bounds.y + bounds.height / 2 }, viewport, scale);
|
|
50
|
+
}
|
|
51
|
+
/** CNV-3 "Center" — the view that puts the world point `point` in the middle of the viewport. */
|
|
52
|
+
export function centerView(point, viewport, scale) {
|
|
53
|
+
return {
|
|
54
|
+
scale,
|
|
55
|
+
x: viewport.width / 2 - point.x * scale,
|
|
56
|
+
y: viewport.height / 2 - point.y * scale,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** The part of the world the viewport shows — what a minimap draws as its window. */
|
|
60
|
+
export function visibleBounds(view, viewport) {
|
|
61
|
+
return {
|
|
62
|
+
x: -view.x / view.scale,
|
|
63
|
+
y: -view.y / view.scale,
|
|
64
|
+
width: viewport.width / view.scale,
|
|
65
|
+
height: viewport.height / view.scale,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
export const LEVEL_OF_DETAIL = { mid: 0.3, close: 0.5 };
|
|
69
|
+
/** CNV-5 — which density a canvas draws at this scale. */
|
|
70
|
+
export function levelOfDetail(scale, thresholds = LEVEL_OF_DETAIL) {
|
|
71
|
+
if (scale >= thresholds.close)
|
|
72
|
+
return 'close';
|
|
73
|
+
if (scale >= thresholds.mid)
|
|
74
|
+
return 'mid';
|
|
75
|
+
return 'far';
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=viewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/react/canvas-hud/viewport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"AAaA,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,WAAW,EAA8B,MAAM,aAAa,CAAC;AAEvH,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACpD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,MAAa,EACb,MAAM,EACN,IAAW,EACX,OAAe,EACf,MAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,GACf,EAAE,cAAc,+BAmEhB"}
|
|
@@ -3,17 +3,17 @@ import { Area, CartesianGrid, Legend, AreaChart as RAreaChart, Tooltip, XAxis, Y
|
|
|
3
3
|
import { ChartFrame } from './ChartFrame.js';
|
|
4
4
|
import { legendContent } from './ChartLegend.js';
|
|
5
5
|
import { tooltipContent } from './ChartTooltip.js';
|
|
6
|
-
import { axisProps, seriesColor, useGradientId } from './shared.js';
|
|
6
|
+
import { axisProps, valueAxisProps, seriesColor, useGradientId } from './shared.js';
|
|
7
7
|
/** Multi-series area chart with token-colored gradient fills (per-instance ids). */
|
|
8
8
|
export function AreaChart({ data, xKey, series, ariaLabel, height, smooth = true, legend, grid = true, stacked = false, yWidth = 44, xTickFormatter, valueFormatter, labelFormatter, }) {
|
|
9
9
|
const gradId = useGradientId();
|
|
10
|
-
const showLegend = legend ?? series.length > 1;
|
|
11
|
-
return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t) => (_jsxs(RAreaChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [_jsx("defs", { children: series.map((s, i) => {
|
|
10
|
+
const showLegend = (box) => legend ?? (!box.legendInHeader && series.length > 1);
|
|
11
|
+
return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t, box) => (_jsxs(RAreaChart, { data: data, margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [_jsx("defs", { children: series.map((s, i) => {
|
|
12
12
|
const c = seriesColor(t, s, i);
|
|
13
13
|
return (_jsxs("linearGradient", { id: `${gradId}-${s.dataKey}`, x1: '0', y1: '0', x2: '0', y2: '1', children: [_jsx("stop", { offset: '0%', stopColor: c, stopOpacity: 0.2 }), _jsx("stop", { offset: '100%', stopColor: c, stopOpacity: 0.02 })] }, s.dataKey));
|
|
14
|
-
}) }), grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false })), _jsx(XAxis, { dataKey: xKey, ...axisProps(t), tickFormatter: xTickFormatter, interval: 'preserveStartEnd', minTickGap: 24 }), _jsx(YAxis, { ...axisProps(t),
|
|
14
|
+
}) }), grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, vertical: false })), _jsx(XAxis, { dataKey: xKey, ...axisProps(t, box), tickFormatter: xTickFormatter, interval: 'preserveStartEnd', minTickGap: box.gap(24) }), _jsx(YAxis, { ...axisProps(t, box), ...valueAxisProps(box, valueFormatter), width: yWidth, axisLine: false }), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { stroke: t.foregroundMuted, strokeWidth: 1, strokeOpacity: 0.5 }, isAnimationActive: false }), showLegend(box) && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => {
|
|
15
15
|
const c = seriesColor(t, s, i);
|
|
16
|
-
return (_jsx(Area, { type: smooth ? 'monotone' : 'linear', dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, stroke: c, strokeWidth:
|
|
16
|
+
return (_jsx(Area, { type: smooth ? 'monotone' : 'linear', dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, stroke: c, strokeWidth: box.stroke, fill: `url(#${gradId}-${s.dataKey})`, isAnimationActive: false }, s.dataKey));
|
|
17
17
|
})] })) }));
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=AreaChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EACJ,aAAa,EACb,MAAM,EACN,SAAS,IAAI,UAAU,EACvB,OAAO,EACP,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"AreaChart.js","sourceRoot":"","sources":["../../../src/react/charts/AreaChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":"AAKA,OAAO,EAA6B,KAAK,UAAU,EAAE,KAAK,WAAW,EAAe,MAAM,aAAa,CAAC;AAIxG,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iCAAiC;IACjC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;CACrD,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,SAAS,EACT,MAAM,EACN,WAAwB,EACxB,OAAe,EACf,MAAM,EACN,IAAW,EACX,MAAW,EACX,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,EAAE,aAAa,+BA8Ef"}
|
|
@@ -3,11 +3,11 @@ import { Bar, CartesianGrid, Legend, BarChart as RBarChart, Tooltip, XAxis, YAxi
|
|
|
3
3
|
import { ChartFrame } from './ChartFrame.js';
|
|
4
4
|
import { legendContent } from './ChartLegend.js';
|
|
5
5
|
import { tooltipContent } from './ChartTooltip.js';
|
|
6
|
-
import { axisProps, seriesColor } from './shared.js';
|
|
6
|
+
import { axisProps, valueAxisProps, seriesColor } from './shared.js';
|
|
7
7
|
/** Vertical/horizontal, grouped/stacked bar chart with rounded corners. */
|
|
8
8
|
export function BarChart({ data, xKey, series, ariaLabel, height, orientation = 'vertical', stacked = false, legend, grid = true, yWidth = 44, categoryTickFormatter, valueFormatter, labelFormatter, }) {
|
|
9
9
|
const horizontal = orientation === 'horizontal';
|
|
10
|
-
const showLegend = legend ?? series.length > 1;
|
|
10
|
+
const showLegend = (box) => legend ?? (!box.legendInHeader && series.length > 1);
|
|
11
11
|
// Round only the outer end of each bar; for a stack, only the last (outer) series.
|
|
12
12
|
const cornersFor = (i) => {
|
|
13
13
|
const outer = !stacked || i === series.length - 1;
|
|
@@ -15,6 +15,6 @@ export function BarChart({ data, xKey, series, ariaLabel, height, orientation =
|
|
|
15
15
|
return [0, 0, 0, 0];
|
|
16
16
|
return horizontal ? [0, 4, 4, 0] : [4, 4, 0, 0];
|
|
17
17
|
};
|
|
18
|
-
return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t) => (_jsxs(RBarChart, { data: data, layout: horizontal ? 'vertical' : 'horizontal', margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, horizontal: !horizontal, vertical: horizontal })), horizontal ? (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'number', ...axisProps(t),
|
|
18
|
+
return (_jsx(ChartFrame, { ariaLabel: ariaLabel, height: height, children: (t, box) => (_jsxs(RBarChart, { data: data, layout: horizontal ? 'vertical' : 'horizontal', margin: { top: 8, right: 12, bottom: 0, left: 0 }, children: [grid && (_jsx(CartesianGrid, { strokeDasharray: '3 3', stroke: t.foregroundMuted, strokeOpacity: 0.3, horizontal: !horizontal, vertical: horizontal })), horizontal ? (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'number', ...axisProps(t, box), ...valueAxisProps(box, valueFormatter) }), _jsx(YAxis, { type: 'category', dataKey: xKey, ...axisProps(t, box), tickFormatter: categoryTickFormatter, width: yWidth, axisLine: false })] })) : (_jsxs(_Fragment, { children: [_jsx(XAxis, { type: 'category', dataKey: xKey, ...axisProps(t, box), tickFormatter: categoryTickFormatter, interval: 'preserveStartEnd', minTickGap: box.gap(8) }), _jsx(YAxis, { type: 'number', ...axisProps(t, box), ...valueAxisProps(box, valueFormatter), width: yWidth, axisLine: false })] })), _jsx(Tooltip, { content: tooltipContent(t, labelFormatter, valueFormatter), cursor: { fill: t.foregroundMuted, fillOpacity: 0.08 }, isAnimationActive: false }), showLegend(box) && _jsx(Legend, { content: legendContent(t) }), series.map((s, i) => (_jsx(Bar, { dataKey: s.dataKey, name: s.name ?? s.dataKey, stackId: stacked ? (s.stackId ?? 'stack') : s.stackId, fill: seriesColor(t, s, i), radius: cornersFor(i), isAnimationActive: false }, s.dataKey)))] })) }));
|
|
19
19
|
}
|
|
20
20
|
//# sourceMappingURL=BarChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,IAAI,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/react/charts/BarChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { ChartTone } from './tokens.js';
|
|
3
|
+
/** One entry of the header legend — a dot and its label (CHT-2). */
|
|
4
|
+
export interface ChartCardLegendItem {
|
|
5
|
+
label: string;
|
|
6
|
+
/** A semantic color instead of the positional one — the same `tone` its series carries. */
|
|
7
|
+
tone?: ChartTone;
|
|
8
|
+
}
|
|
9
|
+
export interface ChartCardProps {
|
|
10
|
+
/** What is measured — "Daily volume". */
|
|
11
|
+
title: ReactNode;
|
|
12
|
+
/** The range, in one line — "Sep 13 → Oct 1" (CHT-2). */
|
|
13
|
+
subtitle?: ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* The legend, drawn inline in the header instead of under the plot, in SERIES ORDER: item
|
|
16
|
+
* `i` takes `--chart-{i+1}`, the color the chart gives its series `i` (CHT-7), unless a
|
|
17
|
+
* `tone` says otherwise. When set, a chart inside the card leaves its own legend off.
|
|
18
|
+
* Long legends wrap; on a phone-width card they fold into a "Legend" button.
|
|
19
|
+
*/
|
|
20
|
+
legend?: ChartCardLegendItem[];
|
|
21
|
+
/** Header controls on the right — a range picker, a chart/table toggle. */
|
|
22
|
+
actions?: ReactNode;
|
|
23
|
+
/** First load: a skeleton of the frame at the frame's own size (CHT-9, STA-1). */
|
|
24
|
+
loading?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* No data: an empty state INSIDE the frame at the same size (CHT-9). `true` uses a generic
|
|
27
|
+
* title; pass `{ title, description, action }` to say what is missing and what fills it.
|
|
28
|
+
*/
|
|
29
|
+
empty?: boolean | {
|
|
30
|
+
title: ReactNode;
|
|
31
|
+
description?: ReactNode;
|
|
32
|
+
action?: ReactNode;
|
|
33
|
+
};
|
|
34
|
+
/** Fix the plot height. Leave unset — the card takes the aspect for its width (CHT-1). */
|
|
35
|
+
height?: number;
|
|
36
|
+
/** The chart — any `cursedbelt/react/charts` chart, with its `height` left unset. */
|
|
37
|
+
children: ReactNode;
|
|
38
|
+
className?: string;
|
|
39
|
+
}
|
|
40
|
+
/** CHT-7: one color order across every chart — the same `--chart-*` the chart's series take. */
|
|
41
|
+
export declare function legendColor(item: ChartCardLegendItem, index: number): string;
|
|
42
|
+
/**
|
|
43
|
+
* The chart's frame (CHT-1, CHT-2, CHT-9): a card whose header holds the title, the range and
|
|
44
|
+
* an inline legend, and whose body owns the plot's SHAPE — the chart inside measures the same
|
|
45
|
+
* width and takes the same aspect, so the loading skeleton, the empty state and the chart are
|
|
46
|
+
* one size and nothing moves when the data lands. Collapse a sidebar beside it and the chart
|
|
47
|
+
* re-measures; it never clips.
|
|
48
|
+
*
|
|
49
|
+
* Build an operations-console Trends section from this and a `DataTable` with no app-local
|
|
50
|
+
* styling (`docs/design/blueprints/operations-console.md`).
|
|
51
|
+
*/
|
|
52
|
+
export declare function ChartCard({ title, subtitle, legend, actions, loading, empty, height, children, className, }: ChartCardProps): import("react").JSX.Element;
|
|
53
|
+
//# sourceMappingURL=ChartCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartCard.d.ts","sourceRoot":"","sources":["../../../src/react/charts/ChartCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAU,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,2FAA2F;IAC3F,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,KAAK,EAAE,SAAS,CAAC;IACjB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,kFAAkF;IAClF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,WAAW,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IACpF,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAe,EACf,KAAa,EACb,MAAM,EACN,QAAQ,EACR,SAAS,GACV,EAAE,cAAc,+BAkDhB"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import { Button } from '../components/Button.js';
|
|
4
|
+
import { EmptyState } from '../components/EmptyState.js';
|
|
5
|
+
import { Popover } from '../components/Popover.js';
|
|
6
|
+
import { Skeleton } from '../components/Skeleton.js';
|
|
7
|
+
import { Surface } from '../components/Surface.js';
|
|
8
|
+
import { useElementSize } from '../hooks/useResizeObserver.js';
|
|
9
|
+
import { cn } from '../lib/cn.js';
|
|
10
|
+
import { CHART_PHONE_MAX, ChartCardContext, chartHeight } from './chartBox.js';
|
|
11
|
+
const TONE_VAR = {
|
|
12
|
+
accent: 'var(--accent)',
|
|
13
|
+
success: 'var(--success)',
|
|
14
|
+
warning: 'var(--warning)',
|
|
15
|
+
danger: 'var(--destructive)',
|
|
16
|
+
neutral: 'var(--muted-foreground)',
|
|
17
|
+
};
|
|
18
|
+
/** CHT-7: one color order across every chart — the same `--chart-*` the chart's series take. */
|
|
19
|
+
export function legendColor(item, index) {
|
|
20
|
+
return item.tone ? TONE_VAR[item.tone] : `var(--chart-${(index % 8) + 1})`;
|
|
21
|
+
}
|
|
22
|
+
function LegendList({ items, className }) {
|
|
23
|
+
return (_jsx("ul", { "data-cb-chart-legend": '', className: cn('m-0 flex list-none flex-wrap items-center gap-x-3 gap-y-1 p-0 text-xs', className), children: items.map((item, i) => (_jsxs("li", { className: 'flex min-w-0 items-center gap-1.5 text-muted-foreground', children: [_jsx("svg", { "aria-hidden": true, className: 'size-2 shrink-0', viewBox: '0 0 8 8', children: _jsx("circle", { cx: '4', cy: '4', r: '4', fill: legendColor(item, i) }) }), _jsx("span", { className: 'truncate', children: item.label })] }, item.label))) }));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The chart's frame (CHT-1, CHT-2, CHT-9): a card whose header holds the title, the range and
|
|
27
|
+
* an inline legend, and whose body owns the plot's SHAPE — the chart inside measures the same
|
|
28
|
+
* width and takes the same aspect, so the loading skeleton, the empty state and the chart are
|
|
29
|
+
* one size and nothing moves when the data lands. Collapse a sidebar beside it and the chart
|
|
30
|
+
* re-measures; it never clips.
|
|
31
|
+
*
|
|
32
|
+
* Build an operations-console Trends section from this and a `DataTable` with no app-local
|
|
33
|
+
* styling (`docs/design/blueprints/operations-console.md`).
|
|
34
|
+
*/
|
|
35
|
+
export function ChartCard({ title, subtitle, legend, actions, loading = false, empty = false, height, children, className, }) {
|
|
36
|
+
const bodyRef = useRef(null);
|
|
37
|
+
const { width } = useElementSize(bodyRef, { layout: true });
|
|
38
|
+
const plotHeight = height ?? chartHeight(width);
|
|
39
|
+
const phone = width > 0 && width < CHART_PHONE_MAX;
|
|
40
|
+
// A phone header has room for two or three dots; past that the legend folds (CHT-2) rather
|
|
41
|
+
// than push the plot down the screen.
|
|
42
|
+
const foldLegend = phone && legend != null && legend.length > 3;
|
|
43
|
+
const emptyContent = empty === true ? { title: 'No data for this range' } : empty || null;
|
|
44
|
+
return (_jsxs(Surface, { level: 'flat', pad: 'md', radius: 'lg', className: cn('flex min-w-0 flex-col gap-3', className), "data-cb-chart-card": '', children: [_jsxs("div", { className: 'flex min-w-0 flex-wrap items-start justify-between gap-x-4 gap-y-2', children: [_jsxs("div", { className: 'flex min-w-0 flex-col gap-0.5', children: [_jsx("h3", { className: 'truncate text-sm font-semibold text-foreground', children: title }), subtitle != null && _jsx("p", { className: 'truncate text-xs tabular-nums text-muted-foreground', children: subtitle })] }), _jsxs("div", { className: 'flex min-w-0 flex-wrap items-center justify-end gap-x-3 gap-y-2', children: [legend && legend.length > 0 && !foldLegend && _jsx(LegendList, { items: legend, className: 'justify-end' }), foldLegend && legend && (_jsx(Popover, { trigger: _jsx(Button, { variant: 'ghost', size: 'sm', tooltip: 'Show what each color is', tooltipMobile: 'off', children: `Legend · ${legend.length}` }), align: 'end', label: 'Chart legend', children: _jsx(LegendList, { items: legend, className: 'flex-col items-start' }) })), actions] })] }), _jsx("div", { ref: bodyRef, className: 'min-w-0', "data-cb-chart-body": '', children: loading ? (_jsx(Skeleton, { className: 'w-full rounded-md', style: { height: plotHeight }, "data-cb-chart-skeleton": '' })) : emptyContent ? (_jsx("div", { className: 'flex w-full items-center justify-center rounded-md border border-dashed border-border', style: { height: plotHeight }, children: _jsx(EmptyState, { compact: true, title: emptyContent.title, description: emptyContent.description, action: emptyContent.action }) })) : (_jsx(ChartCardContext.Provider, { value: { legendInHeader: legend != null && legend.length > 0, height }, children: children })) })] }));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ChartCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartCard.js","sourceRoot":"","sources":["../../../src/react/charts/ChartCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { type ReactElement } from 'react';
|
|
2
|
+
import { type ChartBox } from './chartBox.js';
|
|
2
3
|
import { type ChartTokens } from './tokens.js';
|
|
3
4
|
export type ChartFrameProps = {
|
|
4
5
|
/** Human label for the chart's `role="img"` wrapper (SVG a11y). */
|
|
5
6
|
ariaLabel: string;
|
|
6
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Pixel height of the plot. Leave it unset: the frame takes its shape from its own width
|
|
9
|
+
* (CHT-1 — 4:3 on a phone, 2:1 on a desktop, 3:1 on a very wide screen, clamped to
|
|
10
|
+
* 160–480px) and re-measures when its container resizes. Width is always 100%.
|
|
11
|
+
*/
|
|
7
12
|
height?: number;
|
|
8
13
|
className?: string;
|
|
9
|
-
/** Render the recharts chart from the live tokens. */
|
|
10
|
-
children: (tokens: ChartTokens) => ReactElement;
|
|
14
|
+
/** Render the recharts chart from the live tokens and the measured box. */
|
|
15
|
+
children: (tokens: ChartTokens, box: ChartBox) => ReactElement;
|
|
11
16
|
};
|
|
12
17
|
/**
|
|
13
18
|
* The shared chart wrapper. Its `role="img"` element is the cascade anchor
|
|
14
19
|
* useChartTokens reads from (so a `.dark`/accent ancestor themes the chart), and it
|
|
15
|
-
* hosts a recharts <ResponsiveContainer> that owns
|
|
16
|
-
* and never overflows its column.
|
|
20
|
+
* hosts a recharts <ResponsiveContainer> that owns the width — every chart is 100% wide
|
|
21
|
+
* and never overflows its column. The HEIGHT is the frame's: it measures its own width
|
|
22
|
+
* (a sidebar folding re-measures it) and derives the plot's shape and its marks' weight
|
|
23
|
+
* from it — see `chartBox`. All wrappers below build on it.
|
|
17
24
|
*/
|
|
18
25
|
export declare function ChartFrame({ ariaLabel, height, className, children }: ChartFrameProps): import("react").JSX.Element;
|
|
19
26
|
//# sourceMappingURL=ChartFrame.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartFrame.d.ts","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"ChartFrame.d.ts","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,OAAO,CAAC;AAI9D,OAAO,EAAE,KAAK,QAAQ,EAA8B,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,KAAK,YAAY,CAAC;CAChE,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAoBrF"}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useRef } from 'react';
|
|
2
|
+
import { useContext, useRef } from 'react';
|
|
3
3
|
import { ResponsiveContainer } from 'recharts';
|
|
4
|
+
import { useElementSize } from '../hooks/useResizeObserver.js';
|
|
4
5
|
import { cn } from '../lib/cn.js';
|
|
6
|
+
import { ChartCardContext, chartBox } from './chartBox.js';
|
|
5
7
|
import { useChartTokens } from './tokens.js';
|
|
6
8
|
/**
|
|
7
9
|
* The shared chart wrapper. Its `role="img"` element is the cascade anchor
|
|
8
10
|
* useChartTokens reads from (so a `.dark`/accent ancestor themes the chart), and it
|
|
9
|
-
* hosts a recharts <ResponsiveContainer> that owns
|
|
10
|
-
* and never overflows its column.
|
|
11
|
+
* hosts a recharts <ResponsiveContainer> that owns the width — every chart is 100% wide
|
|
12
|
+
* and never overflows its column. The HEIGHT is the frame's: it measures its own width
|
|
13
|
+
* (a sidebar folding re-measures it) and derives the plot's shape and its marks' weight
|
|
14
|
+
* from it — see `chartBox`. All wrappers below build on it.
|
|
11
15
|
*/
|
|
12
|
-
export function ChartFrame({ ariaLabel, height
|
|
16
|
+
export function ChartFrame({ ariaLabel, height, className, children }) {
|
|
13
17
|
const ref = useRef(null);
|
|
14
18
|
const tokens = useChartTokens(ref);
|
|
15
|
-
|
|
19
|
+
const { width } = useElementSize(ref, { layout: true });
|
|
20
|
+
const card = useContext(ChartCardContext);
|
|
21
|
+
const box = chartBox(width, { height: height ?? card?.height, legendInHeader: card?.legendInHeader ?? false });
|
|
22
|
+
return (_jsx("div", { ref: ref, role: 'img', "aria-label": ariaLabel, "data-cb-chart": '', "data-cb-chart-tier": box.tier, className: cn('w-full min-w-0', className), children: _jsx(ResponsiveContainer, { width: '100%', height: box.height, children: children(tokens, box) }) }));
|
|
16
23
|
}
|
|
17
24
|
//# sourceMappingURL=ChartFrame.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartFrame.js","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartFrame.js","sourceRoot":"","sources":["../../../src/react/charts/ChartFrame.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAiB,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAoB,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB/D;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAmB;IACpF,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,KAAK,EAAE,CAAC,CAAC;IAC/G,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,KAAK,gBACE,SAAS,mBACP,EAAE,wBACI,GAAG,CAAC,IAAI,EAC5B,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,YAE1C,KAAC,mBAAmB,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAE,GAAG,CAAC,MAAM,YACjD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,GACF,GAClB,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { FALLBACK_TOKENS } from './tokens.js';
|
|
|
4
4
|
export function ChartLegend({ payload, tokens = FALLBACK_TOKENS }) {
|
|
5
5
|
if (!payload?.length)
|
|
6
6
|
return null;
|
|
7
|
-
return (_jsx("ul", { className: 'm-0 flex list-none flex-wrap items-center justify-center gap-x-4 gap-y-1 p-0 pt-2 text-xs', style: { color: tokens.foreground }, children: payload.map((entry, i) => (_jsxs("li", { className: 'flex items-center gap-1.5', children: [_jsx("span", { className: 'inline-block h-2.5 w-2.5 shrink-0 rounded-
|
|
7
|
+
return (_jsx("ul", { className: 'm-0 flex list-none flex-wrap items-center justify-center gap-x-4 gap-y-1 p-0 pt-2 text-xs', style: { color: tokens.foreground }, children: payload.map((entry, i) => (_jsxs("li", { className: 'flex items-center gap-1.5', children: [_jsx("span", { className: 'inline-block h-2.5 w-2.5 shrink-0 rounded-xs', style: { backgroundColor: entry.color } }), _jsx("span", { children: entry.value })] }, typeof entry.value === 'string' || typeof entry.value === 'number'
|
|
8
8
|
? String(entry.value)
|
|
9
9
|
: String(entry.dataKey ?? i)))) }));
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartLegend.js","sourceRoot":"","sources":["../../../src/react/charts/ChartLegend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAShE,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAoB;IACjF,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,CACL,aACE,SAAS,EAAC,2FAA2F,EACrG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,YAElC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAIzB,cAME,SAAS,EAAC,2BAA2B,aAErC,eACE,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"ChartLegend.js","sourceRoot":"","sources":["../../../src/react/charts/ChartLegend.tsx"],"names":[],"mappings":";AACA,OAAO,EAAoB,eAAe,EAAE,MAAM,aAAa,CAAC;AAShE,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAoB;IACjF,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,CACL,aACE,SAAS,EAAC,2FAA2F,EACrG,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,YAElC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAIzB,cAME,SAAS,EAAC,2BAA2B,aAErC,eACE,SAAS,EAAC,8CAA8C,EACxD,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,EAAE,GACvC,EACF,yBAAO,KAAK,CAAC,KAAK,GAAQ,KAVxB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;YAChE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACrB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAS7B,CACN,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,CAAwB,EAAE,EAAE,CAAC,CAClF,KAAC,WAAW,IAAC,OAAO,EAAE,CAAC,CAAC,OAAsC,EAAE,MAAM,EAAE,MAAM,GAAI,CACnF,CAAC"}
|
|
@@ -50,20 +50,20 @@ export function HeatmapChart({ cells, rows, columns, ariaLabel, tone = 'accent',
|
|
|
50
50
|
const bottom = observed.length > 0 ? Math.min(...observed) : 0;
|
|
51
51
|
const title = (cell) => cellTitle?.(cell) ??
|
|
52
52
|
`${rowLabel(cell.row)} · ${cell.column}: ${cell.value === null ? 'no data' : valueFormatter(cell.value)}`;
|
|
53
|
-
return (_jsxs("div", { ref: ref, "data-cb-chart": '', className: cn('flex w-full min-w-0 flex-col gap-2', className), children: [_jsxs("div", { role: 'img', "aria-label": ariaLabel, className: 'grid min-w-0 gap-
|
|
53
|
+
return (_jsxs("div", { ref: ref, "data-cb-chart": '', className: cn('flex w-full min-w-0 flex-col gap-2', className), children: [_jsxs("div", { role: 'img', "aria-label": ariaLabel, className: 'grid min-w-0 gap-0.5',
|
|
54
54
|
// The row-label column is sized to its content; every data column shares
|
|
55
55
|
// the remainder equally, so the grid fits its container at any width.
|
|
56
56
|
style: { gridTemplateColumns: `auto repeat(${columns.length}, minmax(0, 1fr))` }, children: [_jsx("div", { "aria-hidden": true }), columns.map((column, i) => (_jsx("div", { "aria-hidden": true, className: 'cb-meta-label truncate text-center text-caption leading-none', children: columnLabel(column, i) }, column))), rows.map((row) => (_jsx(Row, { label: rowLabel(row), children: columns.map((column) => {
|
|
57
57
|
const cell = byKey.get(cellKey(row, column)) ?? { row, column, value: null };
|
|
58
58
|
const empty = cell.value === null;
|
|
59
59
|
const text = title(cell);
|
|
60
|
-
return (_jsx(CellChrome, { label: text, className: cn('rounded-
|
|
60
|
+
return (_jsx(CellChrome, { label: text, className: cn('rounded-xs transition-opacity', empty && 'border border-border border-dashed', onCellClick && 'cursor-pointer hover:opacity-80 focus-visible:cb-ring'), style: {
|
|
61
61
|
height: cellHeight,
|
|
62
62
|
...(empty
|
|
63
63
|
? {}
|
|
64
64
|
: { background: sequentialStep(hue, heatFraction(cell.value ?? 0, top)) }),
|
|
65
65
|
}, onActivate: onCellClick ? () => onCellClick(cell) : undefined }, column));
|
|
66
|
-
}) }, row)))] }), legend && (_jsxs("div", { className: 'flex items-center gap-2 text-caption text-muted-foreground', children: [_jsx("span", { children: valueFormatter(bottom) }), _jsx("div", { className: 'flex h-2 flex-1 gap-
|
|
66
|
+
}) }, row)))] }), legend && (_jsxs("div", { className: 'flex items-center gap-2 text-caption text-muted-foreground', children: [_jsx("span", { children: valueFormatter(bottom) }), _jsx("div", { className: 'flex h-2 flex-1 gap-0.5', children: [0, 0.25, 0.5, 0.75, 1].map((f) => (_jsx("div", { className: 'flex-1 rounded-xs', style: { background: sequentialStep(hue, f) } }, f))) }), _jsx("span", { children: valueFormatter(top) }), _jsxs("span", { className: 'ml-2 inline-flex items-center gap-1', children: [_jsx("span", { className: 'inline-block h-2 w-3 rounded-xs border border-border border-dashed' }), "no data"] })] })), footnote && _jsx("div", { className: 'text-caption text-muted-foreground', children: footnote })] }));
|
|
67
67
|
}
|
|
68
68
|
/** A label cell plus its row of data cells — a fragment, so the grid stays flat. */
|
|
69
69
|
function Row({ label, children }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatmapChart.js","sourceRoot":"","sources":["../../../src/react/charts/HeatmapChart.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HeatmapChart.js","sourceRoot":"","sources":["../../../src/react/charts/HeatmapChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ export function IntervalTimeline({ intervals, window: windowProp, bands = [], ma
|
|
|
77
77
|
// subtly wrong. A bar carries no text, so nothing is lost.
|
|
78
78
|
return (_jsx(Tooltip, { content: hint, multiline: true, maxWidth: 340, children: onSelect ? (_jsx("button", {
|
|
79
79
|
// guardrails-ignore no-raw-action-button: a chart MARK, not an action — cursedbelt's Button carries height, padding and a label slot, none of which a positioned interval bar can have. The native element is used precisely so Enter/Space, focus and disabled semantics are the browser's rather than a hand-rolled keydown handler's.
|
|
80
|
-
type: 'button', "aria-label": label, onClick: () => onSelect(interval), className: 'absolute cursor-pointer rounded-
|
|
80
|
+
type: 'button', "aria-label": label, onClick: () => onSelect(interval), className: 'absolute cursor-pointer rounded-xs p-0 outline-none focus-visible:ring-2 focus-visible:ring-ring', style: style })) : (_jsx("span", { role: 'img', "aria-label": label, className: 'absolute rounded-xs', style: style })) }, interval.id));
|
|
81
81
|
}), markers.map((m) => (_jsx("span", { "aria-hidden": true, className: 'absolute inset-y-0 w-px', style: { left: `${clampedPct(m.at)}%`, background: toneColor(tokens, m.tone ?? 'danger') } }, `${ref}-mark-${m.at}`)))] }), showConcurrency && peak > 0 && (_jsxs("div", {
|
|
82
82
|
// guardrails-ignore no-hand-rolled-surface: the concurrency strip's plot well — an instrument surface, not a card
|
|
83
83
|
className: 'relative h-8 w-full overflow-hidden rounded-md border border-border bg-surface-sunken', role: 'img', "aria-label": `How many ran at once, peaking at ${peak}`, children: [profile.map((p, i) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntervalTimeline.js","sourceRoot":"","sources":["../../../src/react/charts/IntervalTimeline.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"IntervalTimeline.js","sourceRoot":"","sources":["../../../src/react/charts/IntervalTimeline.tsx"],"names":[],"mappings":"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"}
|