@panoboard/core 1.3.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotations/executor.d.ts +32 -0
- package/dist/annotations/executor.d.ts.map +1 -0
- package/dist/annotations/executor.js +74 -0
- package/dist/annotations/executor.js.map +1 -0
- package/dist/annotations/index.d.ts +2 -0
- package/dist/annotations/index.d.ts.map +1 -0
- package/dist/annotations/index.js +15 -0
- package/dist/annotations/index.js.map +1 -0
- package/dist/cache/keys.d.ts.map +1 -1
- package/dist/cache/keys.js +4 -4
- package/dist/cache/keys.js.map +1 -1
- package/dist/components/ConfigErrorBanner.d.ts.map +1 -1
- package/dist/components/ConfigErrorBanner.js +38 -10
- package/dist/components/ConfigErrorBanner.js.map +1 -1
- package/dist/components/CrosshairContext.d.ts +13 -0
- package/dist/components/CrosshairContext.d.ts.map +1 -0
- package/dist/components/CrosshairContext.js +37 -0
- package/dist/components/CrosshairContext.js.map +1 -0
- package/dist/components/DashboardCard.d.ts +3 -1
- package/dist/components/DashboardCard.d.ts.map +1 -1
- package/dist/components/DashboardCard.js +65 -12
- package/dist/components/DashboardCard.js.map +1 -1
- package/dist/components/DashboardDescription.d.ts +19 -0
- package/dist/components/DashboardDescription.d.ts.map +1 -0
- package/dist/components/DashboardDescription.js +61 -0
- package/dist/components/DashboardDescription.js.map +1 -0
- package/dist/components/DashboardLinks.d.ts +8 -0
- package/dist/components/DashboardLinks.d.ts.map +1 -0
- package/dist/components/DashboardLinks.js +53 -0
- package/dist/components/DashboardLinks.js.map +1 -0
- package/dist/components/DashboardShell.d.ts +5 -1
- package/dist/components/DashboardShell.d.ts.map +1 -1
- package/dist/components/DashboardShell.js +42 -25
- package/dist/components/DashboardShell.js.map +1 -1
- package/dist/components/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState.js +7 -1
- package/dist/components/EmptyState.js.map +1 -1
- package/dist/components/ErrorPage.d.ts.map +1 -1
- package/dist/components/ErrorPage.js +22 -33
- package/dist/components/ErrorPage.js.map +1 -1
- package/dist/components/FilterBar.d.ts.map +1 -1
- package/dist/components/FilterBar.js +21 -5
- package/dist/components/FilterBar.js.map +1 -1
- package/dist/components/NotificationCenter.d.ts +6 -0
- package/dist/components/NotificationCenter.d.ts.map +1 -0
- package/dist/components/NotificationCenter.js +83 -0
- package/dist/components/NotificationCenter.js.map +1 -0
- package/dist/components/NotificationIndicator.d.ts +6 -0
- package/dist/components/NotificationIndicator.d.ts.map +1 -0
- package/dist/components/NotificationIndicator.js +24 -0
- package/dist/components/NotificationIndicator.js.map +1 -0
- package/dist/components/PanelGrid.js +2 -2
- package/dist/components/PanelGrid.js.map +1 -1
- package/dist/components/PanelWrapper.d.ts +2 -1
- package/dist/components/PanelWrapper.d.ts.map +1 -1
- package/dist/components/PanelWrapper.js +101 -16
- package/dist/components/PanelWrapper.js.map +1 -1
- package/dist/components/RefreshContext.d.ts +3 -0
- package/dist/components/RefreshContext.d.ts.map +1 -0
- package/dist/components/RefreshContext.js +7 -0
- package/dist/components/RefreshContext.js.map +1 -0
- package/dist/components/RefreshControl.d.ts +17 -0
- package/dist/components/RefreshControl.d.ts.map +1 -0
- package/dist/components/RefreshControl.js +72 -0
- package/dist/components/RefreshControl.js.map +1 -0
- package/dist/components/SectionGrid.d.ts +9 -0
- package/dist/components/SectionGrid.d.ts.map +1 -0
- package/dist/components/SectionGrid.js +76 -0
- package/dist/components/SectionGrid.js.map +1 -0
- package/dist/components/SectionHeader.d.ts +8 -0
- package/dist/components/SectionHeader.d.ts.map +1 -0
- package/dist/components/SectionHeader.js +21 -0
- package/dist/components/SectionHeader.js.map +1 -0
- package/dist/components/TagPills.d.ts +7 -0
- package/dist/components/TagPills.d.ts.map +1 -0
- package/dist/components/TagPills.js +41 -0
- package/dist/components/TagPills.js.map +1 -0
- package/dist/components/filters/BooleanFilter.d.ts.map +1 -1
- package/dist/components/filters/BooleanFilter.js +1 -3
- package/dist/components/filters/BooleanFilter.js.map +1 -1
- package/dist/components/filters/CalendarGrid.d.ts.map +1 -1
- package/dist/components/filters/CalendarGrid.js +1 -1
- package/dist/components/filters/CalendarGrid.js.map +1 -1
- package/dist/components/filters/DateRangeFilter.d.ts.map +1 -1
- package/dist/components/filters/DateRangeFilter.js +4 -6
- package/dist/components/filters/DateRangeFilter.js.map +1 -1
- package/dist/components/filters/FilterChips.d.ts.map +1 -1
- package/dist/components/filters/FilterChips.js +71 -10
- package/dist/components/filters/FilterChips.js.map +1 -1
- package/dist/components/filters/IntervalFilter.d.ts +9 -0
- package/dist/components/filters/IntervalFilter.d.ts.map +1 -0
- package/dist/components/filters/IntervalFilter.js +32 -0
- package/dist/components/filters/IntervalFilter.js.map +1 -0
- package/dist/components/filters/MultiSelectFilter.d.ts.map +1 -1
- package/dist/components/filters/MultiSelectFilter.js +1 -3
- package/dist/components/filters/MultiSelectFilter.js.map +1 -1
- package/dist/components/filters/NumberFilter.d.ts.map +1 -1
- package/dist/components/filters/NumberFilter.js +5 -1
- package/dist/components/filters/NumberFilter.js.map +1 -1
- package/dist/components/filters/SelectFilter.d.ts +2 -1
- package/dist/components/filters/SelectFilter.d.ts.map +1 -1
- package/dist/components/filters/SelectFilter.js +9 -10
- package/dist/components/filters/SelectFilter.js.map +1 -1
- package/dist/components/filters/TextFilter.d.ts.map +1 -1
- package/dist/components/filters/TextFilter.js +5 -1
- package/dist/components/filters/TextFilter.js.map +1 -1
- package/dist/components/index.d.ts +11 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +14 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/panels/AnnotationLayer.d.ts +28 -0
- package/dist/components/panels/AnnotationLayer.d.ts.map +1 -0
- package/dist/components/panels/AnnotationLayer.js +102 -0
- package/dist/components/panels/AnnotationLayer.js.map +1 -0
- package/dist/components/panels/AreaChart.d.ts +3 -1
- package/dist/components/panels/AreaChart.d.ts.map +1 -1
- package/dist/components/panels/AreaChart.js +87 -5
- package/dist/components/panels/AreaChart.js.map +1 -1
- package/dist/components/panels/BarChart.d.ts.map +1 -1
- package/dist/components/panels/BarChart.js +61 -7
- package/dist/components/panels/BarChart.js.map +1 -1
- package/dist/components/panels/BulletChart.js +1 -1
- package/dist/components/panels/BulletChart.js.map +1 -1
- package/dist/components/panels/CalendarHeatmap.d.ts.map +1 -1
- package/dist/components/panels/CalendarHeatmap.js +7 -4
- package/dist/components/panels/CalendarHeatmap.js.map +1 -1
- package/dist/components/panels/ChartTooltip.d.ts.map +1 -1
- package/dist/components/panels/ChartTooltip.js +9 -48
- package/dist/components/panels/ChartTooltip.js.map +1 -1
- package/dist/components/panels/DataLinks.d.ts +35 -0
- package/dist/components/panels/DataLinks.d.ts.map +1 -0
- package/dist/components/panels/DataLinks.js +67 -0
- package/dist/components/panels/DataLinks.js.map +1 -0
- package/dist/components/panels/GaugePanel.d.ts +7 -0
- package/dist/components/panels/GaugePanel.d.ts.map +1 -0
- package/dist/components/panels/GaugePanel.js +116 -0
- package/dist/components/panels/GaugePanel.js.map +1 -0
- package/dist/components/panels/HistogramPanel.d.ts +18 -0
- package/dist/components/panels/HistogramPanel.d.ts.map +1 -0
- package/dist/components/panels/HistogramPanel.js +92 -0
- package/dist/components/panels/HistogramPanel.js.map +1 -0
- package/dist/components/panels/LineChart.d.ts +3 -1
- package/dist/components/panels/LineChart.d.ts.map +1 -1
- package/dist/components/panels/LineChart.js +90 -5
- package/dist/components/panels/LineChart.js.map +1 -1
- package/dist/components/panels/ListPanel.d.ts.map +1 -1
- package/dist/components/panels/ListPanel.js +1 -1
- package/dist/components/panels/ListPanel.js.map +1 -1
- package/dist/components/panels/MarkdownPanel.d.ts +15 -1
- package/dist/components/panels/MarkdownPanel.d.ts.map +1 -1
- package/dist/components/panels/MarkdownPanel.js +70 -7
- package/dist/components/panels/MarkdownPanel.js.map +1 -1
- package/dist/components/panels/MetricPanel.d.ts.map +1 -1
- package/dist/components/panels/MetricPanel.js +1 -1
- package/dist/components/panels/MetricPanel.js.map +1 -1
- package/dist/components/panels/PanelEmpty.d.ts.map +1 -1
- package/dist/components/panels/PanelEmpty.js +1 -1
- package/dist/components/panels/PanelEmpty.js.map +1 -1
- package/dist/components/panels/PanelError.d.ts.map +1 -1
- package/dist/components/panels/PanelError.js +4 -1
- package/dist/components/panels/PanelError.js.map +1 -1
- package/dist/components/panels/PanelSkeleton.js +2 -2
- package/dist/components/panels/PanelSkeleton.js.map +1 -1
- package/dist/components/panels/RadialBarChart.js +1 -1
- package/dist/components/panels/RadialBarChart.js.map +1 -1
- package/dist/components/panels/ScatterChart.d.ts +15 -1
- package/dist/components/panels/ScatterChart.d.ts.map +1 -1
- package/dist/components/panels/ScatterChart.js +96 -26
- package/dist/components/panels/ScatterChart.js.map +1 -1
- package/dist/components/panels/Sparkline.d.ts +21 -0
- package/dist/components/panels/Sparkline.d.ts.map +1 -0
- package/dist/components/panels/Sparkline.js +53 -0
- package/dist/components/panels/Sparkline.js.map +1 -0
- package/dist/components/panels/StatPanel.d.ts +3 -1
- package/dist/components/panels/StatPanel.d.ts.map +1 -1
- package/dist/components/panels/StatPanel.js +33 -4
- package/dist/components/panels/StatPanel.js.map +1 -1
- package/dist/components/panels/TablePanel.d.ts +2 -1
- package/dist/components/panels/TablePanel.d.ts.map +1 -1
- package/dist/components/panels/TablePanel.js +96 -6
- package/dist/components/panels/TablePanel.js.map +1 -1
- package/dist/components/panels/VideoPanel.d.ts.map +1 -1
- package/dist/components/panels/VideoPanel.js +1 -1
- package/dist/components/panels/VideoPanel.js.map +1 -1
- package/dist/components/panels/nivo-theme.d.ts +1 -44
- package/dist/components/panels/nivo-theme.d.ts.map +1 -1
- package/dist/components/panels/nivo-theme.js +9 -104
- package/dist/components/panels/nivo-theme.js.map +1 -1
- package/dist/components/panels/semantic-colors.d.ts.map +1 -1
- package/dist/components/panels/semantic-colors.js +2 -39
- package/dist/components/panels/semantic-colors.js.map +1 -1
- package/dist/components/ui/Button.d.ts +1 -1
- package/dist/components/ui/Button.d.ts.map +1 -1
- package/dist/components/ui/Button.js +6 -9
- package/dist/components/ui/Button.js.map +1 -1
- package/dist/components/ui/Tabs.d.ts.map +1 -1
- package/dist/components/ui/Tabs.js +1 -1
- package/dist/components/ui/Tabs.js.map +1 -1
- package/dist/connectors/bigquery.d.ts.map +1 -1
- package/dist/connectors/bigquery.js +6 -1
- package/dist/connectors/bigquery.js.map +1 -1
- package/dist/connectors/postgres.d.ts.map +1 -1
- package/dist/connectors/postgres.js +3 -0
- package/dist/connectors/postgres.js.map +1 -1
- package/dist/connectors/redshift.d.ts.map +1 -1
- package/dist/connectors/redshift.js +3 -0
- package/dist/connectors/redshift.js.map +1 -1
- package/dist/contexts/NotificationContext.d.ts +10 -0
- package/dist/contexts/NotificationContext.d.ts.map +1 -0
- package/dist/contexts/NotificationContext.js +24 -0
- package/dist/contexts/NotificationContext.js.map +1 -0
- package/dist/filters/daterange.d.ts +1 -1
- package/dist/filters/daterange.d.ts.map +1 -1
- package/dist/filters/daterange.js +54 -9
- package/dist/filters/daterange.js.map +1 -1
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.d.ts.map +1 -1
- package/dist/filters/index.js +2 -0
- package/dist/filters/index.js.map +1 -1
- package/dist/filters/interval.d.ts +13 -0
- package/dist/filters/interval.d.ts.map +1 -0
- package/dist/filters/interval.js +40 -0
- package/dist/filters/interval.js.map +1 -0
- package/dist/filters/resolver.d.ts +1 -1
- package/dist/filters/resolver.d.ts.map +1 -1
- package/dist/filters/resolver.js +28 -2
- package/dist/filters/resolver.js.map +1 -1
- package/dist/flattenTabs.d.ts +8 -0
- package/dist/flattenTabs.d.ts.map +1 -0
- package/dist/flattenTabs.js +24 -0
- package/dist/flattenTabs.js.map +1 -0
- package/dist/formats.d.ts +1 -1
- package/dist/formats.d.ts.map +1 -1
- package/dist/formats.js +19 -9
- package/dist/formats.js.map +1 -1
- package/dist/hooks/useNotifications.d.ts +5 -0
- package/dist/hooks/useNotifications.d.ts.map +1 -0
- package/dist/hooks/useNotifications.js +48 -0
- package/dist/hooks/useNotifications.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/interpolation.d.ts +10 -0
- package/dist/interpolation.d.ts.map +1 -0
- package/dist/interpolation.js +64 -0
- package/dist/interpolation.js.map +1 -0
- package/dist/panels/conditional.d.ts +12 -0
- package/dist/panels/conditional.d.ts.map +1 -0
- package/dist/panels/conditional.js +90 -0
- package/dist/panels/conditional.js.map +1 -0
- package/dist/panels/index.d.ts +11 -0
- package/dist/panels/index.d.ts.map +1 -0
- package/dist/panels/index.js +19 -0
- package/dist/panels/index.js.map +1 -0
- package/dist/panels/mappings.d.ts +40 -0
- package/dist/panels/mappings.d.ts.map +1 -0
- package/dist/panels/mappings.js +83 -0
- package/dist/panels/mappings.js.map +1 -0
- package/dist/panels/overrides.d.ts +37 -0
- package/dist/panels/overrides.d.ts.map +1 -0
- package/dist/panels/overrides.js +57 -0
- package/dist/panels/overrides.js.map +1 -0
- package/dist/panels/threshold-layers.d.ts +18 -0
- package/dist/panels/threshold-layers.d.ts.map +1 -0
- package/dist/panels/threshold-layers.js +35 -0
- package/dist/panels/threshold-layers.js.map +1 -0
- package/dist/panels/thresholds.d.ts +36 -0
- package/dist/panels/thresholds.d.ts.map +1 -0
- package/dist/panels/thresholds.js +81 -0
- package/dist/panels/thresholds.js.map +1 -0
- package/dist/schemas/annotations.d.ts +34 -0
- package/dist/schemas/annotations.d.ts.map +1 -0
- package/dist/schemas/annotations.js +19 -0
- package/dist/schemas/annotations.js.map +1 -0
- package/dist/schemas/config.d.ts +1 -0
- package/dist/schemas/config.d.ts.map +1 -1
- package/dist/schemas/config.js +1 -0
- package/dist/schemas/config.js.map +1 -1
- package/dist/schemas/dashboard.d.ts +5861 -235
- package/dist/schemas/dashboard.d.ts.map +1 -1
- package/dist/schemas/dashboard.js +173 -10
- package/dist/schemas/dashboard.js.map +1 -1
- package/dist/schemas/index.d.ts +6 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +6 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/mappings.d.ts +46 -0
- package/dist/schemas/mappings.d.ts.map +1 -0
- package/dist/schemas/mappings.js +46 -0
- package/dist/schemas/mappings.js.map +1 -0
- package/dist/schemas/overrides.d.ts +77 -0
- package/dist/schemas/overrides.d.ts.map +1 -0
- package/dist/schemas/overrides.js +38 -0
- package/dist/schemas/overrides.js.map +1 -0
- package/dist/schemas/theme.d.ts +89 -7
- package/dist/schemas/theme.d.ts.map +1 -1
- package/dist/schemas/theme.js +40 -24
- package/dist/schemas/theme.js.map +1 -1
- package/dist/schemas/thresholds.d.ts +19 -0
- package/dist/schemas/thresholds.d.ts.map +1 -0
- package/dist/schemas/thresholds.js +31 -0
- package/dist/schemas/thresholds.js.map +1 -0
- package/dist/schemas/transforms.d.ts +54 -0
- package/dist/schemas/transforms.d.ts.map +1 -0
- package/dist/schemas/transforms.js +51 -0
- package/dist/schemas/transforms.js.map +1 -0
- package/dist/startup/sql-lint.d.ts.map +1 -1
- package/dist/startup/sql-lint.js +3 -2
- package/dist/startup/sql-lint.js.map +1 -1
- package/dist/theme/builtin.d.ts.map +1 -1
- package/dist/theme/builtin.js +56 -62
- package/dist/theme/builtin.js.map +1 -1
- package/dist/theme/colors.d.ts +11 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +71 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/context.d.ts.map +1 -1
- package/dist/theme/context.js +16 -3
- package/dist/theme/context.js.map +1 -1
- package/dist/theme/loader-export.d.ts +1 -1
- package/dist/theme/loader-export.d.ts.map +1 -1
- package/dist/theme/loader-export.js +1 -1
- package/dist/theme/loader-export.js.map +1 -1
- package/dist/theme/loader.d.ts +8 -3
- package/dist/theme/loader.d.ts.map +1 -1
- package/dist/theme/loader.js +24 -13
- package/dist/theme/loader.js.map +1 -1
- package/dist/transforms/computed.d.ts +11 -0
- package/dist/transforms/computed.d.ts.map +1 -0
- package/dist/transforms/computed.js +24 -0
- package/dist/transforms/computed.js.map +1 -0
- package/dist/transforms/engine.d.ts +17 -0
- package/dist/transforms/engine.d.ts.map +1 -0
- package/dist/transforms/engine.js +65 -0
- package/dist/transforms/engine.js.map +1 -0
- package/dist/transforms/expression.d.ts +9 -0
- package/dist/transforms/expression.d.ts.map +1 -0
- package/dist/transforms/expression.js +306 -0
- package/dist/transforms/expression.js.map +1 -0
- package/dist/transforms/filter.d.ts +11 -0
- package/dist/transforms/filter.d.ts.map +1 -0
- package/dist/transforms/filter.js +10 -0
- package/dist/transforms/filter.js.map +1 -0
- package/dist/transforms/index.d.ts +10 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +9 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/limit.d.ts +11 -0
- package/dist/transforms/limit.d.ts.map +1 -0
- package/dist/transforms/limit.js +4 -0
- package/dist/transforms/limit.js.map +1 -0
- package/dist/transforms/percentage.d.ts +11 -0
- package/dist/transforms/percentage.d.ts.map +1 -0
- package/dist/transforms/percentage.js +25 -0
- package/dist/transforms/percentage.js.map +1 -0
- package/dist/transforms/rename.d.ts +11 -0
- package/dist/transforms/rename.d.ts.map +1 -0
- package/dist/transforms/rename.js +17 -0
- package/dist/transforms/rename.js.map +1 -0
- package/dist/transforms/sort.d.ts +11 -0
- package/dist/transforms/sort.d.ts.map +1 -0
- package/dist/transforms/sort.js +21 -0
- package/dist/transforms/sort.js.map +1 -0
- package/dist/types/config-error.d.ts +1 -1
- package/dist/types/config-error.d.ts.map +1 -1
- package/dist/types/notification.d.ts +19 -0
- package/dist/types/notification.d.ts.map +1 -0
- package/dist/types/notification.js +15 -0
- package/dist/types/notification.js.map +1 -0
- package/package.json +12 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntervalFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/IntervalFilter.tsx"],"names":[],"mappings":"AAmBA,UAAU,mBAAmB;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,OAAO,EACP,YAAqB,GACtB,EAAE,mBAAmB,2CAyCrB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Copyright 2026 Mataki Labs LLC
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Business Source License 1.1 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
import { useSearchParams } from "react-router";
|
|
16
|
+
import { Timer } from "lucide-react";
|
|
17
|
+
import { useFilterUpdate } from "./useFilterUpdate";
|
|
18
|
+
import { useTheme } from "../../theme/context";
|
|
19
|
+
export function IntervalFilter({ id, label, presets, defaultValue = "auto", }) {
|
|
20
|
+
const updateFilter = useFilterUpdate();
|
|
21
|
+
const [searchParams] = useSearchParams();
|
|
22
|
+
const theme = useTheme();
|
|
23
|
+
const allOptions = ["auto", ...presets.filter((p) => p !== "auto")];
|
|
24
|
+
const currentValue = searchParams.get(id) ?? defaultValue;
|
|
25
|
+
return (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(Timer, { className: "w-4 h-4", style: { color: "var(--primary)" } }), _jsx("span", { className: "text-sm", style: { color: theme.typography.label }, children: label })] }), _jsx("div", { className: "flex border rounded-lg overflow-hidden", style: { backgroundColor: theme.filters.background, borderColor: theme.filters.border }, children: allOptions.map((preset) => (_jsx("button", { type: "button", onClick: () => updateFilter(id, preset === defaultValue ? null : preset), className: "px-2.5 py-1.5 text-xs font-medium transition hover:opacity-80", style: currentValue === preset
|
|
26
|
+
? {
|
|
27
|
+
backgroundColor: "color-mix(in srgb, var(--primary) 20%, transparent)",
|
|
28
|
+
color: "var(--primary)",
|
|
29
|
+
}
|
|
30
|
+
: { color: theme.filters.text }, children: preset }, preset))) })] }));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=IntervalFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntervalFilter.js","sourceRoot":"","sources":["../../../src/components/filters/IntervalFilter.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAS/C,MAAM,UAAU,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,OAAO,EACP,YAAY,GAAG,MAAM,GACD;IACpB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,YAAY,CAAC;IAE1D,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,2BAA2B,aACxC,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAI,EACjE,eAAM,SAAS,EAAC,SAAS,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,YAAG,KAAK,GAAQ,IAC9E,EACN,cACE,SAAS,EAAC,wCAAwC,EAClD,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,YAEtF,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC1B,iBAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CACZ,YAAY,CAAC,EAAE,EAAE,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAE3D,SAAS,EAAC,+DAA+D,EACzE,KAAK,EACH,YAAY,KAAK,MAAM;wBACrB,CAAC,CAAC;4BACE,eAAe,EAAE,qDAAqD;4BACtE,KAAK,EAAE,gBAAgB;yBACxB;wBACH,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,YAGlC,MAAM,IAfF,MAAM,CAgBJ,CACV,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/MultiSelectFilter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiSelectFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/MultiSelectFilter.tsx"],"names":[],"mappings":"AAoBA,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC7C,aAAa,CAAC,EAAE;YACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;YAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,CAAC;IACF,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,MAAM,EACN,KAAK,GACN,EAAE,sBAAsB,2CAyJxB"}
|
|
@@ -16,14 +16,12 @@ import { useState, useEffect } from "react";
|
|
|
16
16
|
import { useSearchParams, useNavigate, useParams } from "react-router";
|
|
17
17
|
import { ChevronDown, Search } from "lucide-react";
|
|
18
18
|
import { useDropdown } from "./useDropdown";
|
|
19
|
-
import { useTheme } from "../../theme/context";
|
|
20
19
|
import { getFilterDependencies } from "../../filters/dependencies";
|
|
21
20
|
export function MultiSelectFilter({ slug, filter, value, }) {
|
|
22
21
|
const { open, toggle, close, ref } = useDropdown();
|
|
23
22
|
const navigate = useNavigate();
|
|
24
23
|
const [searchParams] = useSearchParams();
|
|
25
24
|
const params = useParams();
|
|
26
|
-
const theme = useTheme();
|
|
27
25
|
const effectiveSlug = slug || params.slug || "";
|
|
28
26
|
const [selected, setSelected] = useState(value);
|
|
29
27
|
const [options, setOptions] = useState(filter.options ?? []);
|
|
@@ -73,6 +71,6 @@ export function MultiSelectFilter({ slug, filter, value, }) {
|
|
|
73
71
|
navigate(`?${nextParams.toString()}`, { replace: true });
|
|
74
72
|
close();
|
|
75
73
|
};
|
|
76
|
-
return (_jsxs("div", { ref: ref, className: "relative", children: [_jsxs("button", { type: "button", onClick: toggle, className:
|
|
74
|
+
return (_jsxs("div", { ref: ref, className: "relative", children: [_jsxs("button", { type: "button", onClick: toggle, className: "flex items-center gap-2 border rounded-lg px-3 py-2 text-sm hover:opacity-90 transition cursor-default", style: { backgroundColor: "var(--filter-bg)", borderColor: "var(--filter-border)", color: "var(--filter-text)" }, children: [_jsx("span", { style: { color: "var(--status-warning)" }, children: "\u2630" }), _jsxs("span", { children: [filter.label ?? filter.id, ":", " ", selected.length > 0 ? `${selected.length} selected` : "None"] }), _jsx(ChevronDown, { className: "w-4 h-4", style: { color: "var(--text-muted)" } })] }), open && (_jsxs("div", { className: "absolute top-full mt-1 left-0 w-72 border rounded-xl shadow-xl z-50 p-3", style: { backgroundColor: "var(--panel-surface)", borderColor: "var(--filter-border)" }, children: [_jsxs("div", { className: "relative mb-2", children: [_jsx(Search, { className: "absolute left-2 top-2 w-4 h-4", style: { color: "var(--text-muted)" } }), _jsx("input", { type: "text", placeholder: "Search...", value: search, onChange: (e) => setSearch(e.target.value), className: "w-full rounded-lg pl-8 pr-3 py-1.5 text-sm border", style: { backgroundColor: "var(--filter-bg)", color: "var(--filter-text)", borderColor: "var(--filter-border)" } })] }), _jsxs("div", { className: "max-h-48 overflow-y-auto space-y-1", children: [filtered.map((opt) => (_jsxs("label", { className: "flex items-center gap-2 py-1 px-1 rounded hover:opacity-80 cursor-pointer text-sm", style: { color: "var(--filter-text)" }, children: [_jsx("input", { type: "checkbox", checked: selected.includes(opt.value), onChange: () => toggleOption(opt.value), className: "rounded", style: { accentColor: "var(--primary)" } }), opt.label || opt.value] }, opt.value))), filtered.length === 0 && (_jsx("div", { className: "px-1 py-2 text-sm", style: { color: "var(--text-muted)" }, children: "No results" }))] }), _jsxs("div", { className: "flex justify-between items-center mt-3 pt-2 border-t", style: { borderColor: "var(--panel-border)" }, children: [_jsx("button", { type: "button", onClick: () => setSelected([]), className: "text-xs uppercase tracking-wide", style: { color: "var(--text-muted)" }, children: "Clear All" }), _jsx("button", { type: "button", onClick: apply, className: "btn-primary rounded-[10px] px-4 py-1.5 text-sm", children: "Update" })] })] }))] }));
|
|
77
75
|
}
|
|
78
76
|
//# sourceMappingURL=MultiSelectFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectFilter.js","sourceRoot":"","sources":["../../../src/components/filters/MultiSelectFilter.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MultiSelectFilter.js","sourceRoot":"","sources":["../../../src/components/filters/MultiSelectFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/NumberFilter.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,GAAG,EACH,GAAG,EACH,YAAY,GACb,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"NumberFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/NumberFilter.tsx"],"names":[],"mappings":"AAoBA,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,GAAG,EACH,GAAG,EACH,YAAY,GACb,EAAE,iBAAiB,2CAwDnB"}
|
|
@@ -42,6 +42,10 @@ export function NumberFilter({ id, label, min, max, defaultValue, }) {
|
|
|
42
42
|
commit();
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
return (_jsxs("div", { className: "relative", children: [_jsx(Hash, { className:
|
|
45
|
+
return (_jsxs("div", { className: "relative", children: [_jsx(Hash, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4", style: { color: theme.typography.muted } }), _jsx("input", { type: "number", value: value, onChange: (e) => setValue(e.target.value), onBlur: commit, onKeyDown: handleKeyDown, min: min, max: max, placeholder: label, className: "border rounded-lg pl-9 pr-3 py-2 text-sm w-36", style: {
|
|
46
|
+
backgroundColor: theme.filters.background,
|
|
47
|
+
borderColor: theme.filters.border,
|
|
48
|
+
color: theme.filters.text,
|
|
49
|
+
}, "aria-label": label })] }));
|
|
46
50
|
}
|
|
47
51
|
//# sourceMappingURL=NumberFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberFilter.js","sourceRoot":"","sources":["../../../src/components/filters/NumberFilter.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,MAAM,UAAU,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,GAAG,EACH,GAAG,EACH,YAAY,GACM;IAClB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAChB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEjD,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CACN,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAErC,SAAS,MAAM;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,SAAS,aAAa,CAAC,CAAsB;QAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,KAAC,IAAI,IACH,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"NumberFilter.js","sourceRoot":"","sources":["../../../src/components/filters/NumberFilter.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,MAAM,UAAU,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,GAAG,EACH,GAAG,EACH,YAAY,GACM;IAClB,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAChB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAEjD,wBAAwB;IACxB,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CACN,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;IAErC,SAAS,MAAM;QACb,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,SAAS,aAAa,CAAC,CAAsB;QAC3C,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,KAAC,IAAI,IACH,SAAS,EAAC,kDAAkD,EAC5D,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GACxC,EACF,gBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,KAAK,EAClB,SAAS,EAAC,+CAA+C,EACzD,KAAK,EAAE;oBACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU;oBACzC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;oBACjC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;iBAC1B,gBACW,KAAK,GACjB,IACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -14,7 +14,8 @@ interface SelectFilterProps {
|
|
|
14
14
|
ctx?: string;
|
|
15
15
|
}>;
|
|
16
16
|
iconColor?: string;
|
|
17
|
+
refreshOn?: string[];
|
|
17
18
|
}
|
|
18
|
-
export declare function SelectFilter({ id, label, defaultValue, includeAll, options: staticOptions, optionsQuery, optionsQueryParams, iconColor, }: SelectFilterProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare function SelectFilter({ id, label, defaultValue, includeAll, options: staticOptions, optionsQuery, optionsQueryParams, iconColor, refreshOn, }: SelectFilterProps): import("react/jsx-runtime").JSX.Element;
|
|
19
20
|
export {};
|
|
20
21
|
//# sourceMappingURL=SelectFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/SelectFilter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/SelectFilter.tsx"],"names":[],"mappings":"AAqBA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,KAAK,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EAAE,aAAa,EACtB,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,SAAS,GACV,EAAE,iBAAiB,2CA0InB"}
|
|
@@ -17,29 +17,28 @@ import { useSearchParams, useParams } from "react-router";
|
|
|
17
17
|
import { Globe, ChevronDown, Check, Search } from "lucide-react";
|
|
18
18
|
import { useFilterUpdate } from "./useFilterUpdate";
|
|
19
19
|
import { useDropdown } from "./useDropdown";
|
|
20
|
-
import { useTheme } from "../../theme/context";
|
|
21
20
|
import { getFilterDependencies } from "../../filters/dependencies";
|
|
22
|
-
export function SelectFilter({ id, label, defaultValue, includeAll, options: staticOptions, optionsQuery, optionsQueryParams, iconColor
|
|
21
|
+
export function SelectFilter({ id, label, defaultValue, includeAll, options: staticOptions, optionsQuery, optionsQueryParams, iconColor, refreshOn, }) {
|
|
23
22
|
const { open, toggle, close, ref } = useDropdown();
|
|
24
23
|
const updateFilter = useFilterUpdate();
|
|
25
24
|
const [searchParams] = useSearchParams();
|
|
26
25
|
const params = useParams();
|
|
27
26
|
const slug = params.slug ?? "";
|
|
28
|
-
const theme = useTheme();
|
|
29
27
|
const [dynamicOptions, setDynamicOptions] = useState(null);
|
|
30
28
|
const [search, setSearch] = useState("");
|
|
31
29
|
const currentValue = searchParams.get(id) ?? defaultValue ?? (includeAll ? "__all__" : "");
|
|
32
|
-
// Derive parent filter dependencies from params
|
|
33
|
-
const
|
|
30
|
+
// Derive parent filter dependencies from params + refresh_on
|
|
31
|
+
const paramDeps = getFilterDependencies({
|
|
34
32
|
options_query: optionsQuery ? { params: optionsQueryParams } : undefined,
|
|
35
33
|
});
|
|
36
|
-
const
|
|
34
|
+
const allDeps = [...new Set([...paramDeps, ...(refreshOn ?? [])])];
|
|
35
|
+
const dependencyValues = allDeps.map((dep) => searchParams.get(dep));
|
|
37
36
|
// Fetch dynamic options (re-fetch when parent filter value changes)
|
|
38
37
|
useEffect(() => {
|
|
39
38
|
if (!optionsQuery || !slug)
|
|
40
39
|
return;
|
|
41
40
|
const url = new URL(`/api/filters/${slug}/${id}`, window.location.origin);
|
|
42
|
-
for (const dep of
|
|
41
|
+
for (const dep of allDeps) {
|
|
43
42
|
const val = searchParams.get(dep);
|
|
44
43
|
if (val)
|
|
45
44
|
url.searchParams.set(dep, val);
|
|
@@ -77,8 +76,8 @@ export function SelectFilter({ id, label, defaultValue, includeAll, options: sta
|
|
|
77
76
|
close();
|
|
78
77
|
setSearch("");
|
|
79
78
|
}
|
|
80
|
-
return (_jsxs("div", { ref: ref, className: "relative", children: [_jsxs("button", { type: "button", onClick: toggle, className:
|
|
81
|
-
?
|
|
82
|
-
:
|
|
79
|
+
return (_jsxs("div", { ref: ref, className: "relative", children: [_jsxs("button", { type: "button", onClick: toggle, className: "border rounded-lg px-3 py-2 flex items-center gap-2 text-sm hover:opacity-90 transition cursor-default", style: { backgroundColor: "var(--filter-bg)", borderColor: "var(--filter-border)" }, children: [_jsx(Globe, { className: "w-4 h-4", style: { color: iconColor ?? "var(--status-positive)" } }), _jsx("span", { style: { color: "var(--text-label)" }, children: label }), _jsx("span", { style: { color: "var(--filter-text)" }, children: displayLabel }), _jsx(ChevronDown, { className: "w-3.5 h-3.5", style: { color: "var(--text-muted)" } })] }), open && (_jsxs("div", { className: "absolute top-full left-0 mt-2 w-64 border rounded-xl shadow-xl z-50 p-2 max-h-72 overflow-y-auto", style: { backgroundColor: "var(--panel-surface)", borderColor: "var(--filter-border)" }, children: [showSearch && (_jsxs("div", { className: "relative mb-2", children: [_jsx(Search, { className: "absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5", style: { color: "var(--text-muted)" } }), _jsx("input", { type: "text", value: search, onChange: (e) => setSearch(e.target.value), placeholder: "Search...", className: "w-full border rounded-lg pl-8 pr-3 py-1.5 text-sm", style: { backgroundColor: "var(--filter-bg)", borderColor: "var(--filter-border)", color: "var(--filter-text)" } })] })), filtered.map((option) => (_jsxs("button", { type: "button", onClick: () => selectOption(option.value), className: `w-full flex items-center gap-2 px-3 py-2 rounded-lg text-sm text-left transition ${currentValue === option.value
|
|
80
|
+
? "bg-current/10"
|
|
81
|
+
: "hover:opacity-80"}`, style: { color: currentValue === option.value ? "var(--text-link)" : "var(--filter-text)" }, children: [_jsx("span", { className: "flex-1", children: option.label }), currentValue === option.value && (_jsx(Check, { className: "w-3.5 h-3.5" }))] }, option.value))), filtered.length === 0 && (_jsx("div", { className: "px-3 py-2 text-sm", style: { color: "var(--text-muted)" }, children: "No results" }))] }))] }));
|
|
83
82
|
}
|
|
84
83
|
//# sourceMappingURL=SelectFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectFilter.js","sourceRoot":"","sources":["../../../src/components/filters/SelectFilter.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SelectFilter.js","sourceRoot":"","sources":["../../../src/components/filters/SelectFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/TextFilter.tsx"],"names":[],"mappings":"AAoBA,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"TextFilter.d.ts","sourceRoot":"","sources":["../../../src/components/filters/TextFilter.tsx"],"names":[],"mappings":"AAoBA,UAAU,eAAe;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,eAAe,2CAwErE"}
|
|
@@ -52,6 +52,10 @@ export function TextFilter({ id, label, placeholder }) {
|
|
|
52
52
|
clearTimeout(timerRef.current);
|
|
53
53
|
updateFilter(id, null);
|
|
54
54
|
}
|
|
55
|
-
return (_jsxs("div", { className: "relative", children: [_jsx(Search, { className:
|
|
55
|
+
return (_jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4", style: { color: theme.typography.muted } }), _jsx("input", { type: "text", value: text, onChange: (e) => handleChange(e.target.value), placeholder: placeholder ?? `${label}...`, className: "border rounded-lg pl-9 pr-8 py-2 text-sm w-48", style: {
|
|
56
|
+
backgroundColor: theme.filters.background,
|
|
57
|
+
borderColor: theme.filters.border,
|
|
58
|
+
color: theme.filters.text,
|
|
59
|
+
}, "aria-label": label }), text && (_jsx("button", { type: "button", onClick: handleClear, className: "absolute right-2 top-1/2 -translate-y-1/2 hover:opacity-80 transition", style: { color: theme.typography.muted }, children: _jsx(X, { className: "w-3.5 h-3.5" }) }))] }));
|
|
56
60
|
}
|
|
57
61
|
//# sourceMappingURL=TextFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextFilter.js","sourceRoot":"","sources":["../../../src/components/filters/TextFilter.tsx"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAQ/C,MAAM,UAAU,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAAmB;IACpE,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,CAAC,YAAY,CAAC,GAAG,eAAe,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAEpE,wDAAwD;IACxD,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;IAEvB,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAa,EAAE,EAAE;QAChB,IAAI,QAAQ,CAAC,OAAO;YAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,YAAY,CAAC,EAAE,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC;QAClC,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,EACD,CAAC,YAAY,EAAE,EAAE,CAAC,CACnB,CAAC;IAEF,2BAA2B;IAC3B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,QAAQ,CAAC,OAAO;gBAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,YAAY,CAAC,KAAa;QACjC,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,eAAe,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,SAAS,WAAW;QAClB,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,QAAQ,CAAC,OAAO;YAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,KAAC,MAAM,IACL,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"TextFilter.js","sourceRoot":"","sources":["../../../src/components/filters/TextFilter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,12 @@ export { PanelGrid as DashboardGrid } from "./PanelGrid";
|
|
|
14
14
|
export { PanelWrapper } from "./PanelWrapper";
|
|
15
15
|
export { DashboardShell } from "./DashboardShell";
|
|
16
16
|
export { DashboardCard } from "./DashboardCard";
|
|
17
|
+
export { TagPills } from "./TagPills";
|
|
18
|
+
export { DashboardLinks } from "./DashboardLinks";
|
|
19
|
+
export { SectionHeader } from "./SectionHeader";
|
|
20
|
+
export { SectionGrid } from "./SectionGrid";
|
|
21
|
+
export { CrosshairProvider, useCrosshair } from "./CrosshairContext";
|
|
22
|
+
export { RefreshProvider, useRefreshKey } from "./RefreshContext";
|
|
17
23
|
export { ErrorPage } from "./ErrorPage";
|
|
18
24
|
export type { ErrorPageProps } from "./ErrorPage";
|
|
19
25
|
export { EmptyState } from "./EmptyState";
|
|
@@ -51,10 +57,14 @@ export { PanelError } from "./panels/PanelError";
|
|
|
51
57
|
export { PanelEmpty } from "./panels/PanelEmpty";
|
|
52
58
|
export { ChartTooltip, MultiSeriesChartTooltip, useBarTooltip, useLineTooltip, } from "./panels/ChartTooltip";
|
|
53
59
|
export type { ChartTooltipProps, MultiSeriesPoint, MultiSeriesChartTooltipProps, } from "./panels/ChartTooltip";
|
|
54
|
-
export { buildNivoTheme, getChartPalette,
|
|
60
|
+
export { buildNivoTheme, getChartPalette, } from "./panels/nivo-theme";
|
|
55
61
|
export { extractSemanticColor } from "./panels/semantic-colors";
|
|
56
62
|
export { Button } from "./ui/Button";
|
|
57
63
|
export type { ButtonProps, ButtonVariant, ButtonSize } from "./ui/Button";
|
|
58
64
|
export { Tabs } from "./ui/Tabs";
|
|
59
65
|
export type { TabItem, TabsProps } from "./ui/Tabs";
|
|
66
|
+
export { NotificationProvider } from "../hooks/useNotifications";
|
|
67
|
+
export { useNotificationContext } from "../contexts/NotificationContext";
|
|
68
|
+
export { NotificationIndicator } from "./NotificationIndicator";
|
|
69
|
+
export { NotificationCenter } from "./NotificationCenter";
|
|
60
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -29,6 +29,14 @@ export { PanelGrid as DashboardGrid } from "./PanelGrid";
|
|
|
29
29
|
export { PanelWrapper } from "./PanelWrapper";
|
|
30
30
|
export { DashboardShell } from "./DashboardShell";
|
|
31
31
|
export { DashboardCard } from "./DashboardCard";
|
|
32
|
+
export { TagPills } from "./TagPills";
|
|
33
|
+
export { DashboardLinks } from "./DashboardLinks";
|
|
34
|
+
export { SectionHeader } from "./SectionHeader";
|
|
35
|
+
export { SectionGrid } from "./SectionGrid";
|
|
36
|
+
// Crosshair context for shared hover
|
|
37
|
+
export { CrosshairProvider, useCrosshair } from "./CrosshairContext";
|
|
38
|
+
// Refresh context for manual panel re-fetch
|
|
39
|
+
export { RefreshProvider, useRefreshKey } from "./RefreshContext";
|
|
32
40
|
// Error / empty states
|
|
33
41
|
export { ErrorPage } from "./ErrorPage";
|
|
34
42
|
export { EmptyState } from "./EmptyState";
|
|
@@ -68,9 +76,14 @@ export { PanelError } from "./panels/PanelError";
|
|
|
68
76
|
export { PanelEmpty } from "./panels/PanelEmpty";
|
|
69
77
|
export { ChartTooltip, MultiSeriesChartTooltip, useBarTooltip, useLineTooltip, } from "./panels/ChartTooltip";
|
|
70
78
|
// Nivo theme utilities
|
|
71
|
-
export { buildNivoTheme, getChartPalette,
|
|
79
|
+
export { buildNivoTheme, getChartPalette, } from "./panels/nivo-theme";
|
|
72
80
|
export { extractSemanticColor } from "./panels/semantic-colors";
|
|
73
81
|
// Shared UI
|
|
74
82
|
export { Button } from "./ui/Button";
|
|
75
83
|
export { Tabs } from "./ui/Tabs";
|
|
84
|
+
// Notifications
|
|
85
|
+
export { NotificationProvider } from "../hooks/useNotifications";
|
|
86
|
+
export { useNotificationContext } from "../contexts/NotificationContext";
|
|
87
|
+
export { NotificationIndicator } from "./NotificationIndicator";
|
|
88
|
+
export { NotificationCenter } from "./NotificationCenter";
|
|
76
89
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,uBAAuB;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface AnnotationPoint {
|
|
2
|
+
time: string;
|
|
3
|
+
title: string;
|
|
4
|
+
description?: string | null;
|
|
5
|
+
color: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Filter/pass-through annotations based on the chart's x-axis values.
|
|
9
|
+
* Exported for testing. In practice, positioning is handled by the layer.
|
|
10
|
+
*/
|
|
11
|
+
export declare function filterAnnotationsToRange(points: AnnotationPoint[], _xValues: string[]): AnnotationPoint[];
|
|
12
|
+
/** Color name to hex mapping for annotation colors (semantic palette). */
|
|
13
|
+
export declare const ANNOTATION_COLORS: Record<string, string>;
|
|
14
|
+
/**
|
|
15
|
+
* Creates a Nivo custom layer function that renders annotation lines.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createAnnotationLayer(annotations: AnnotationPoint[]): (({ xScale, innerHeight, innerWidth, margin, }: {
|
|
18
|
+
xScale: (value: string | number) => number;
|
|
19
|
+
innerHeight: number;
|
|
20
|
+
innerWidth: number;
|
|
21
|
+
margin: {
|
|
22
|
+
top: number;
|
|
23
|
+
right: number;
|
|
24
|
+
bottom: number;
|
|
25
|
+
left: number;
|
|
26
|
+
};
|
|
27
|
+
}) => import("react/jsx-runtime").JSX.Element) | null;
|
|
28
|
+
//# sourceMappingURL=AnnotationLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnotationLayer.d.ts","sourceRoot":"","sources":["../../../src/components/panels/AnnotationLayer.tsx"],"names":[],"mappings":"AAgBA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,eAAe,EAAE,EACzB,QAAQ,EAAE,MAAM,EAAE,GACjB,eAAe,EAAE,CAEnB;AAED,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUpD,CAAC;AAwCF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,eAAe,EAAE,mDAQ/D;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACtE,qDA0FF"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Copyright 2026 Mataki Labs LLC
|
|
3
|
+
//
|
|
4
|
+
// Licensed under the Business Source License 1.1 (the "License");
|
|
5
|
+
// you may not use this file except in compliance with the License.
|
|
6
|
+
// You may obtain a copy of the License at
|
|
7
|
+
//
|
|
8
|
+
// https://github.com/panoboard/panoboard/blob/main/LICENSE
|
|
9
|
+
//
|
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
// See the License for the specific language governing permissions and
|
|
14
|
+
// limitations under the License.
|
|
15
|
+
import { useState, useCallback } from "react";
|
|
16
|
+
/**
|
|
17
|
+
* Filter/pass-through annotations based on the chart's x-axis values.
|
|
18
|
+
* Exported for testing. In practice, positioning is handled by the layer.
|
|
19
|
+
*/
|
|
20
|
+
export function filterAnnotationsToRange(points, _xValues) {
|
|
21
|
+
return points;
|
|
22
|
+
}
|
|
23
|
+
/** Color name to hex mapping for annotation colors (semantic palette). */
|
|
24
|
+
export const ANNOTATION_COLORS = {
|
|
25
|
+
blue: "#3b82f6",
|
|
26
|
+
red: "#ef4444",
|
|
27
|
+
green: "#22c55e",
|
|
28
|
+
yellow: "#eab308",
|
|
29
|
+
orange: "#f97316",
|
|
30
|
+
purple: "#a855f7",
|
|
31
|
+
pink: "#ec4899",
|
|
32
|
+
cyan: "#06b6d4",
|
|
33
|
+
gray: "#6b7280",
|
|
34
|
+
};
|
|
35
|
+
function resolveAnnotationColor(color) {
|
|
36
|
+
return ANNOTATION_COLORS[color] ?? color;
|
|
37
|
+
}
|
|
38
|
+
function AnnotationTooltip({ x, y, title, description, color }) {
|
|
39
|
+
return (_jsxs("div", { style: {
|
|
40
|
+
position: "absolute",
|
|
41
|
+
left: x,
|
|
42
|
+
top: y + 6,
|
|
43
|
+
transform: "translateX(-50%)",
|
|
44
|
+
background: "rgba(var(--surface-overlay-rgb), 0.92)",
|
|
45
|
+
borderLeft: `2px solid ${color}`,
|
|
46
|
+
borderRadius: 4,
|
|
47
|
+
padding: "3px 8px",
|
|
48
|
+
boxShadow: "0 2px 8px rgba(0,0,0,0.3)",
|
|
49
|
+
pointerEvents: "none",
|
|
50
|
+
zIndex: 10,
|
|
51
|
+
whiteSpace: "nowrap",
|
|
52
|
+
}, children: [_jsx("div", { style: { fontSize: 11, fontWeight: 500, color: "var(--text-title)" }, children: title }), description && (_jsx("div", { style: { fontSize: 10, color: "var(--text-muted)", marginTop: 1 }, children: description }))] }));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Creates a Nivo custom layer function that renders annotation lines.
|
|
56
|
+
*/
|
|
57
|
+
export function createAnnotationLayer(annotations) {
|
|
58
|
+
if (!annotations.length)
|
|
59
|
+
return null;
|
|
60
|
+
return function AnnotationLayerComponent({ xScale, innerHeight, innerWidth, margin, }) {
|
|
61
|
+
const [hoveredIndex, setHoveredIndex] = useState(null);
|
|
62
|
+
const handleMouseEnter = useCallback((index) => {
|
|
63
|
+
setHoveredIndex(index);
|
|
64
|
+
}, []);
|
|
65
|
+
const handleMouseLeave = useCallback(() => {
|
|
66
|
+
setHoveredIndex(null);
|
|
67
|
+
}, []);
|
|
68
|
+
return (_jsx("g", { children: annotations.map((annotation, i) => {
|
|
69
|
+
const color = resolveAnnotationColor(annotation.color);
|
|
70
|
+
// Annotation times are precise timestamps but chart x-values may be
|
|
71
|
+
// daily epoch-ms buckets. Try exact match first, then snap to the
|
|
72
|
+
// nearest data point by finding the closest epoch-ms value.
|
|
73
|
+
let x;
|
|
74
|
+
try {
|
|
75
|
+
x = xScale(annotation.time);
|
|
76
|
+
}
|
|
77
|
+
catch { /* point scale throws for unknown keys */ }
|
|
78
|
+
if (typeof x !== "number" || isNaN(x)) {
|
|
79
|
+
const annotationEpoch = new Date(annotation.time).getTime();
|
|
80
|
+
if (isNaN(annotationEpoch))
|
|
81
|
+
return null;
|
|
82
|
+
// Try epoch ms directly
|
|
83
|
+
try {
|
|
84
|
+
x = xScale(annotationEpoch);
|
|
85
|
+
}
|
|
86
|
+
catch { /* */ }
|
|
87
|
+
if (typeof x !== "number" || isNaN(x)) {
|
|
88
|
+
// Snap to nearest day bucket: truncate to midnight UTC
|
|
89
|
+
const dayEpoch = annotationEpoch - (annotationEpoch % 86400000);
|
|
90
|
+
try {
|
|
91
|
+
x = xScale(dayEpoch);
|
|
92
|
+
}
|
|
93
|
+
catch { /* */ }
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (typeof x !== "number" || isNaN(x) || x < 0 || x > innerWidth)
|
|
97
|
+
return null;
|
|
98
|
+
return (_jsxs("g", { children: [_jsx("line", { x1: x, x2: x, y1: 0, y2: innerHeight, stroke: color, strokeWidth: 1, strokeDasharray: "4 4", opacity: hoveredIndex === i ? 0.8 : 0.35 }), _jsx("circle", { cx: x, cy: 0, r: 3, fill: color, opacity: 0.9 }), _jsx("rect", { x: x - 10, y: -4, width: 20, height: innerHeight + 4, fill: "transparent", onMouseEnter: () => handleMouseEnter(i), onMouseLeave: handleMouseLeave, style: { cursor: "pointer" } }), hoveredIndex === i && (_jsx("foreignObject", { x: 0, y: 0, width: innerWidth + margin.left + margin.right, height: innerHeight + margin.top + margin.bottom, style: { overflow: "visible", pointerEvents: "none" }, children: _jsx(AnnotationTooltip, { x: x, y: 24, title: annotation.title, description: annotation.description, color: color }) }))] }, `annotation-${annotation.time}-${i}`));
|
|
99
|
+
}) }));
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=AnnotationLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnnotationLayer.js","sourceRoot":"","sources":["../../../src/components/panels/AnnotationLayer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { type AnnotationPoint } from "./AnnotationLayer";
|
|
1
2
|
interface ChartPanelProps {
|
|
2
3
|
data: Record<string, unknown>[];
|
|
3
4
|
config: Record<string, unknown>;
|
|
5
|
+
annotations?: AnnotationPoint[];
|
|
4
6
|
}
|
|
5
|
-
export declare function AreaChart({ data, config }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function AreaChart({ data, config, annotations }: ChartPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export {};
|
|
7
9
|
//# sourceMappingURL=AreaChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/AreaChart.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AreaChart.d.ts","sourceRoot":"","sources":["../../../src/components/panels/AreaChart.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAahF,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC;AAmGD,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,WAAgB,EAAE,EAAE,eAAe,2CAyH5E"}
|