@datum-cloud/activity-ui 0.1.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/README.md +334 -0
- package/dist/api/client.d.ts +264 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/components/ActionMultiSelect.d.ts +25 -0
- package/dist/components/ActionMultiSelect.d.ts.map +1 -0
- package/dist/components/ActionToggle.d.ts +16 -0
- package/dist/components/ActionToggle.d.ts.map +1 -0
- package/dist/components/ActivityExpandedDetails.d.ts +21 -0
- package/dist/components/ActivityExpandedDetails.d.ts.map +1 -0
- package/dist/components/ActivityFeed.d.ts +60 -0
- package/dist/components/ActivityFeed.d.ts.map +1 -0
- package/dist/components/ActivityFeedFilters.d.ts +26 -0
- package/dist/components/ActivityFeedFilters.d.ts.map +1 -0
- package/dist/components/ActivityFeedItem.d.ts +39 -0
- package/dist/components/ActivityFeedItem.d.ts.map +1 -0
- package/dist/components/ActivityFeedItemSkeleton.d.ts +11 -0
- package/dist/components/ActivityFeedItemSkeleton.d.ts.map +1 -0
- package/dist/components/ActivityFeedSummary.d.ts +23 -0
- package/dist/components/ActivityFeedSummary.d.ts.map +1 -0
- package/dist/components/ApiErrorAlert.d.ts +10 -0
- package/dist/components/ApiErrorAlert.d.ts.map +1 -0
- package/dist/components/AuditEventViewer.d.ts +14 -0
- package/dist/components/AuditEventViewer.d.ts.map +1 -0
- package/dist/components/AuditLogExpandedDetails.d.ts +20 -0
- package/dist/components/AuditLogExpandedDetails.d.ts.map +1 -0
- package/dist/components/AuditLogFeedItem.d.ts +22 -0
- package/dist/components/AuditLogFeedItem.d.ts.map +1 -0
- package/dist/components/AuditLogFilters.d.ts +50 -0
- package/dist/components/AuditLogFilters.d.ts.map +1 -0
- package/dist/components/AuditLogQueryComponent.d.ts +18 -0
- package/dist/components/AuditLogQueryComponent.d.ts.map +1 -0
- package/dist/components/CelEditor.d.ts +31 -0
- package/dist/components/CelEditor.d.ts.map +1 -0
- package/dist/components/ChangeSourceToggle.d.ts +17 -0
- package/dist/components/ChangeSourceToggle.d.ts.map +1 -0
- package/dist/components/DateTimeRangePicker.d.ts +15 -0
- package/dist/components/DateTimeRangePicker.d.ts.map +1 -0
- package/dist/components/EventExpandedDetails.d.ts +17 -0
- package/dist/components/EventExpandedDetails.d.ts.map +1 -0
- package/dist/components/EventFeedItem.d.ts +29 -0
- package/dist/components/EventFeedItem.d.ts.map +1 -0
- package/dist/components/EventFeedItemSkeleton.d.ts +11 -0
- package/dist/components/EventFeedItemSkeleton.d.ts.map +1 -0
- package/dist/components/EventTypeToggle.d.ts +17 -0
- package/dist/components/EventTypeToggle.d.ts.map +1 -0
- package/dist/components/EventsFeed.d.ts +51 -0
- package/dist/components/EventsFeed.d.ts.map +1 -0
- package/dist/components/EventsFeedFilters.d.ts +28 -0
- package/dist/components/EventsFeedFilters.d.ts.map +1 -0
- package/dist/components/FilterBuilder.d.ts +12 -0
- package/dist/components/FilterBuilder.d.ts.map +1 -0
- package/dist/components/FilterBuilderWithAutocomplete.d.ts +12 -0
- package/dist/components/FilterBuilderWithAutocomplete.d.ts.map +1 -0
- package/dist/components/PolicyActivityView.d.ts +25 -0
- package/dist/components/PolicyActivityView.d.ts.map +1 -0
- package/dist/components/PolicyActivityViewSkeleton.d.ts +9 -0
- package/dist/components/PolicyActivityViewSkeleton.d.ts.map +1 -0
- package/dist/components/PolicyDetailView.d.ts +22 -0
- package/dist/components/PolicyDetailView.d.ts.map +1 -0
- package/dist/components/PolicyEditView.d.ts +22 -0
- package/dist/components/PolicyEditView.d.ts.map +1 -0
- package/dist/components/PolicyEditor.d.ts +24 -0
- package/dist/components/PolicyEditor.d.ts.map +1 -0
- package/dist/components/PolicyList.d.ts +23 -0
- package/dist/components/PolicyList.d.ts.map +1 -0
- package/dist/components/PolicyPreviewPanel.d.ts +23 -0
- package/dist/components/PolicyPreviewPanel.d.ts.map +1 -0
- package/dist/components/PolicyPreviewResult.d.ts +17 -0
- package/dist/components/PolicyPreviewResult.d.ts.map +1 -0
- package/dist/components/PolicyResourceForm.d.ts +19 -0
- package/dist/components/PolicyResourceForm.d.ts.map +1 -0
- package/dist/components/PolicyRuleEditor.d.ts +22 -0
- package/dist/components/PolicyRuleEditor.d.ts.map +1 -0
- package/dist/components/PolicyRuleEditorDialog.d.ts +30 -0
- package/dist/components/PolicyRuleEditorDialog.d.ts.map +1 -0
- package/dist/components/PolicyRuleList.d.ts +26 -0
- package/dist/components/PolicyRuleList.d.ts.map +1 -0
- package/dist/components/PolicyRuleListItem.d.ts +29 -0
- package/dist/components/PolicyRuleListItem.d.ts.map +1 -0
- package/dist/components/ReindexJobCreate.d.ts +21 -0
- package/dist/components/ReindexJobCreate.d.ts.map +1 -0
- package/dist/components/ReindexJobDetailView.d.ts +21 -0
- package/dist/components/ReindexJobDetailView.d.ts.map +1 -0
- package/dist/components/ReindexJobDialog.d.ts +21 -0
- package/dist/components/ReindexJobDialog.d.ts.map +1 -0
- package/dist/components/ReindexJobList.d.ts +21 -0
- package/dist/components/ReindexJobList.d.ts.map +1 -0
- package/dist/components/ResourceHistoryView.d.ts +54 -0
- package/dist/components/ResourceHistoryView.d.ts.map +1 -0
- package/dist/components/RulePreviewPanel.d.ts +23 -0
- package/dist/components/RulePreviewPanel.d.ts.map +1 -0
- package/dist/components/SampleInputTemplates.d.ts +26 -0
- package/dist/components/SampleInputTemplates.d.ts.map +1 -0
- package/dist/components/SimpleQueryBuilder.d.ts +12 -0
- package/dist/components/SimpleQueryBuilder.d.ts.map +1 -0
- package/dist/components/TenantBadge.d.ts +17 -0
- package/dist/components/TenantBadge.d.ts.map +1 -0
- package/dist/components/UserSelect.d.ts +24 -0
- package/dist/components/UserSelect.d.ts.map +1 -0
- package/dist/components/VerbToggle.d.ts +16 -0
- package/dist/components/VerbToggle.d.ts.map +1 -0
- package/dist/components/ui/add-filter-dropdown.d.ts +26 -0
- package/dist/components/ui/add-filter-dropdown.d.ts.map +1 -0
- package/dist/components/ui/alert.d.ts +9 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/combobox.d.ts +27 -0
- package/dist/components/ui/combobox.d.ts.map +1 -0
- package/dist/components/ui/dialog.d.ts +20 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/filter-chip.d.ts +37 -0
- package/dist/components/ui/filter-chip.d.ts.map +1 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/label.d.ts +8 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/multi-combobox.d.ts +24 -0
- package/dist/components/ui/multi-combobox.d.ts.map +1 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/sheet.d.ts +23 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/textarea.d.ts +6 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/time-range-dropdown.d.ts +29 -0
- package/dist/components/ui/time-range-dropdown.d.ts.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/hooks/useActivityFeed.d.ts +101 -0
- package/dist/hooks/useActivityFeed.d.ts.map +1 -0
- package/dist/hooks/useAuditLogFacets.d.ts +33 -0
- package/dist/hooks/useAuditLogFacets.d.ts.map +1 -0
- package/dist/hooks/useAuditLogQuery.d.ts +21 -0
- package/dist/hooks/useAuditLogQuery.d.ts.map +1 -0
- package/dist/hooks/useEventFacets.d.ts +30 -0
- package/dist/hooks/useEventFacets.d.ts.map +1 -0
- package/dist/hooks/useEventsFeed.d.ts +93 -0
- package/dist/hooks/useEventsFeed.d.ts.map +1 -0
- package/dist/hooks/useFacets.d.ts +29 -0
- package/dist/hooks/useFacets.d.ts.map +1 -0
- package/dist/hooks/usePolicyEditor.d.ts +71 -0
- package/dist/hooks/usePolicyEditor.d.ts.map +1 -0
- package/dist/hooks/usePolicyList.d.ts +35 -0
- package/dist/hooks/usePolicyList.d.ts.map +1 -0
- package/dist/hooks/usePolicyPreview.d.ts +72 -0
- package/dist/hooks/usePolicyPreview.d.ts.map +1 -0
- package/dist/hooks/useReindexJobs.d.ts +37 -0
- package/dist/hooks/useReindexJobs.d.ts.map +1 -0
- package/dist/index.d.ts +150 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +16224 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +16377 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/errors.d.ts +50 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/extractFieldPaths.d.ts +33 -0
- package/dist/lib/extractFieldPaths.d.ts.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/types/activity.d.ts +366 -0
- package/dist/types/activity.d.ts.map +1 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/k8s-event.d.ts +224 -0
- package/dist/types/k8s-event.d.ts.map +1 -0
- package/dist/types/policy.d.ts +333 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/reindex.d.ts +102 -0
- package/dist/types/reindex.d.ts.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Activity, ResourceRef, ResourceLinkResolver, TenantLinkResolver, TenantRenderer, EffectiveTimeRangeCallback, ErrorFormatter } from '../types/activity';
|
|
2
|
+
import type { ActivityFeedFilters as FilterState, TimeRange } from '../hooks/useActivityFeed';
|
|
3
|
+
import { ActivityApiClient } from '../api/client';
|
|
4
|
+
export interface ActivityFeedProps {
|
|
5
|
+
/** API client instance */
|
|
6
|
+
client: ActivityApiClient;
|
|
7
|
+
/** Initial filter settings */
|
|
8
|
+
initialFilters?: FilterState;
|
|
9
|
+
/** Initial time range */
|
|
10
|
+
initialTimeRange?: TimeRange;
|
|
11
|
+
/** Number of items per page */
|
|
12
|
+
pageSize?: number;
|
|
13
|
+
/** Handler called when a resource link is clicked (deprecated: use resourceLinkResolver) */
|
|
14
|
+
onResourceClick?: (resource: ResourceRef) => void;
|
|
15
|
+
/** Function that resolves resource references to URLs */
|
|
16
|
+
resourceLinkResolver?: ResourceLinkResolver;
|
|
17
|
+
/** Function that resolves tenant references to URLs */
|
|
18
|
+
tenantLinkResolver?: TenantLinkResolver;
|
|
19
|
+
/** Custom renderer for tenant badges (overrides default TenantBadge) */
|
|
20
|
+
tenantRenderer?: TenantRenderer;
|
|
21
|
+
/** Handler called when an activity is clicked */
|
|
22
|
+
onActivityClick?: (activity: Activity) => void;
|
|
23
|
+
/** Whether to show in compact mode (for resource detail tabs) */
|
|
24
|
+
compact?: boolean;
|
|
25
|
+
/** Filter to a specific resource UID */
|
|
26
|
+
resourceUid?: string;
|
|
27
|
+
/** Whether to show filters */
|
|
28
|
+
showFilters?: boolean;
|
|
29
|
+
/** Filters that should be locked and hidden from the UI (programmatically set by parent) */
|
|
30
|
+
hiddenFilters?: Array<'resourceKinds' | 'actorNames' | 'apiGroups' | 'resourceNamespaces' | 'resourceName' | 'changeSource'>;
|
|
31
|
+
/** Additional CSS class */
|
|
32
|
+
className?: string;
|
|
33
|
+
/** Enable infinite scroll (default: true) */
|
|
34
|
+
infiniteScroll?: boolean;
|
|
35
|
+
/** Threshold in pixels for triggering load more (default: 200) */
|
|
36
|
+
loadMoreThreshold?: number;
|
|
37
|
+
/** Handler called when user wants to create a policy (for empty state) */
|
|
38
|
+
onCreatePolicy?: () => void;
|
|
39
|
+
/** Enable real-time streaming (default: false) */
|
|
40
|
+
enableStreaming?: boolean;
|
|
41
|
+
/** Callback invoked when the effective time range is resolved */
|
|
42
|
+
onEffectiveTimeRangeChange?: EffectiveTimeRangeCallback;
|
|
43
|
+
/** Custom error formatter for customizing error messages */
|
|
44
|
+
errorFormatter?: ErrorFormatter;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum height for the scroll container (CSS value like '500px' or 'calc(100vh - 300px)').
|
|
47
|
+
* By default, the component uses flex layout (flex-1 min-h-0) which adapts to parent container constraints.
|
|
48
|
+
* Only set this if your parent container doesn't have proper height constraints.
|
|
49
|
+
* Set to 'none' to explicitly disable any max-height constraint.
|
|
50
|
+
*/
|
|
51
|
+
maxHeight?: string;
|
|
52
|
+
/** Callback invoked when filters or time range change (useful for URL state management) */
|
|
53
|
+
onFiltersChange?: (filters: FilterState, timeRange: TimeRange) => void;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* ActivityFeed displays a chronological list of activities with filtering and pagination.
|
|
57
|
+
* Supports optional real-time streaming of new activities.
|
|
58
|
+
*/
|
|
59
|
+
export declare function ActivityFeed({ client, initialFilters, initialTimeRange, pageSize, onResourceClick, resourceLinkResolver, tenantLinkResolver, tenantRenderer, onActivityClick, compact, resourceUid, showFilters, hiddenFilters, className, infiniteScroll, loadMoreThreshold, onCreatePolicy, enableStreaming, onEffectiveTimeRangeChange, errorFormatter, maxHeight, onFiltersChange: onFiltersChangeProp, }: ActivityFeedProps): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
//# sourceMappingURL=ActivityFeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityFeed.d.ts","sourceRoot":"","sources":["../../src/components/ActivityFeed.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrK,OAAO,KAAK,EACV,mBAAmB,IAAI,WAAW,EAClC,SAAS,EACV,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOlD,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAClD,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wEAAwE;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iDAAiD;IACjD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC/C,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,oBAAoB,GAAG,cAAc,GAAG,cAAc,CAAC,CAAC;IAC7H,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,kDAAkD;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,4DAA4D;IAC5D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,cAA0C,EAC1C,gBAAsC,EACtC,QAAa,EACb,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,OAAe,EACf,WAAW,EACX,WAAkB,EAClB,aAAkB,EAClB,SAAc,EACd,cAAqB,EACrB,iBAAuB,EACvB,cAAc,EACd,eAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACd,SAAS,EACT,eAAe,EAAE,mBAAmB,GACrC,EAAE,iBAAiB,2CAwUnB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ActivityFeedFilters as FilterState } from '../hooks/useActivityFeed';
|
|
2
|
+
import type { TimeRange } from '../hooks/useActivityFeed';
|
|
3
|
+
import type { ActivityApiClient } from '../api/client';
|
|
4
|
+
export interface ActivityFeedFiltersProps {
|
|
5
|
+
/** API client instance for fetching facets */
|
|
6
|
+
client: ActivityApiClient;
|
|
7
|
+
/** Current filter state */
|
|
8
|
+
filters: FilterState;
|
|
9
|
+
/** Current time range */
|
|
10
|
+
timeRange: TimeRange;
|
|
11
|
+
/** Handler called when filters change */
|
|
12
|
+
onFiltersChange: (filters: FilterState) => void;
|
|
13
|
+
/** Handler called when time range changes */
|
|
14
|
+
onTimeRangeChange: (timeRange: TimeRange) => void;
|
|
15
|
+
/** Whether the filters are disabled (e.g., during loading) */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** Filters that should be locked and hidden from the UI (programmatically set by parent) */
|
|
18
|
+
hiddenFilters?: Array<'resourceKinds' | 'actorNames' | 'apiGroups' | 'resourceNamespaces' | 'resourceName' | 'actions' | 'changeSource'>;
|
|
19
|
+
/** Additional CSS class */
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* ActivityFeedFilters provides filter controls for the activity feed
|
|
24
|
+
*/
|
|
25
|
+
export declare function ActivityFeedFilters({ client, filters, timeRange, onFiltersChange, onTimeRangeChange, disabled, hiddenFilters, className, }: ActivityFeedFiltersProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=ActivityFeedFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityFeedFilters.d.ts","sourceRoot":"","sources":["../../src/components/ActivityFeedFilters.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQvD,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,yCAAyC;IACzC,eAAe,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAChD,6CAA6C;IAC7C,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAClD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,oBAAoB,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,CAAC,CAAC;IACzI,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqFD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,OAAO,EACP,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,QAAgB,EAChB,aAAkB,EAClB,SAAc,GACf,EAAE,wBAAwB,2CAgS1B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Activity, ResourceLinkResolver, TenantLinkResolver, TenantRenderer } from '../types/activity';
|
|
2
|
+
import { ResourceLinkClickHandler } from './ActivityFeedSummary';
|
|
3
|
+
export interface ActivityFeedItemProps {
|
|
4
|
+
/** The activity to render */
|
|
5
|
+
activity: Activity;
|
|
6
|
+
/** Handler called when a resource link is clicked (deprecated: use resourceLinkResolver) */
|
|
7
|
+
onResourceClick?: ResourceLinkClickHandler;
|
|
8
|
+
/** Function that resolves resource references to URLs */
|
|
9
|
+
resourceLinkResolver?: ResourceLinkResolver;
|
|
10
|
+
/** Function that resolves tenant references to URLs */
|
|
11
|
+
tenantLinkResolver?: TenantLinkResolver;
|
|
12
|
+
/** Custom renderer for tenant badges (overrides default TenantBadge) */
|
|
13
|
+
tenantRenderer?: TenantRenderer;
|
|
14
|
+
/** Handler called when the actor name or avatar is clicked */
|
|
15
|
+
onActorClick?: (actorName: string) => void;
|
|
16
|
+
/** Handler called when the item is clicked */
|
|
17
|
+
onActivityClick?: (activity: Activity) => void;
|
|
18
|
+
/** Whether the item is selected */
|
|
19
|
+
isSelected?: boolean;
|
|
20
|
+
/** Additional CSS class */
|
|
21
|
+
className?: string;
|
|
22
|
+
/** Whether to show as compact (for resource detail tabs) */
|
|
23
|
+
compact?: boolean;
|
|
24
|
+
/** Whether this is a newly streamed activity */
|
|
25
|
+
isNew?: boolean;
|
|
26
|
+
/** Layout variant: 'feed' (default) or 'timeline' */
|
|
27
|
+
variant?: 'feed' | 'timeline';
|
|
28
|
+
/** Whether this is the first item in the list (hides timeline head, only used in timeline variant) */
|
|
29
|
+
isFirst?: boolean;
|
|
30
|
+
/** Whether this is the last item in the list (hides timeline tail, only used in timeline variant) */
|
|
31
|
+
isLast?: boolean;
|
|
32
|
+
/** Whether the item starts expanded */
|
|
33
|
+
defaultExpanded?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* ActivityFeedItem renders a single activity in the feed or timeline
|
|
37
|
+
*/
|
|
38
|
+
export declare function ActivityFeedItem({ activity, onResourceClick, resourceLinkResolver, tenantLinkResolver, tenantRenderer, onActorClick, onActivityClick, isSelected, className, compact, isNew, variant, isFirst, isLast, defaultExpanded, }: ActivityFeedItemProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
//# sourceMappingURL=ActivityFeedItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityFeedItem.d.ts","sourceRoot":"","sources":["../../src/components/ActivityFeedItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EAAuB,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAOtF,MAAM,WAAW,qBAAqB;IACpC,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,yDAAyD;IACzD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wEAAwE;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8DAA8D;IAC9D,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,8CAA8C;IAC9C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC/C,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,sGAAsG;IACtG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qGAAqG;IACrG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAgGD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAkB,EAClB,SAAc,EACd,OAAe,EACf,KAAa,EACb,OAAgB,EAChB,OAAe,EACf,MAAc,EACd,eAAuB,GACxB,EAAE,qBAAqB,2CA4MvB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ActivityFeedItemSkeletonProps {
|
|
2
|
+
/** Whether to show as compact (for resource detail tabs) */
|
|
3
|
+
compact?: boolean;
|
|
4
|
+
/** Additional CSS class */
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* ActivityFeedItemSkeleton renders a loading placeholder that matches ActivityFeedItem layout
|
|
9
|
+
*/
|
|
10
|
+
export declare function ActivityFeedItemSkeleton({ compact, className, }: ActivityFeedItemSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=ActivityFeedItemSkeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityFeedItemSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/ActivityFeedItemSkeleton.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,6BAA6B;IAC5C,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,OAAe,EACf,SAAc,GACf,EAAE,6BAA6B,2CA8B/B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ActivityLink, ResourceRef, ResourceLinkResolver, ResourceLinkContext } from '../types/activity';
|
|
2
|
+
export interface ResourceLinkClickHandler {
|
|
3
|
+
(resource: ResourceRef): void;
|
|
4
|
+
}
|
|
5
|
+
export interface ActivityFeedSummaryProps {
|
|
6
|
+
/** The summary text to render */
|
|
7
|
+
summary: string;
|
|
8
|
+
/** Links within the summary to make clickable */
|
|
9
|
+
links?: ActivityLink[];
|
|
10
|
+
/** Handler called when a resource link is clicked (deprecated: use resourceLinkResolver) */
|
|
11
|
+
onResourceClick?: ResourceLinkClickHandler;
|
|
12
|
+
/** Function that resolves resource references to URLs (renders as <a> tags) */
|
|
13
|
+
resourceLinkResolver?: ResourceLinkResolver;
|
|
14
|
+
/** Context for resolving resource links (includes tenant information) */
|
|
15
|
+
resourceLinkContext?: ResourceLinkContext;
|
|
16
|
+
/** Additional CSS class */
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* ActivityFeedSummary renders an activity summary with clickable resource links
|
|
21
|
+
*/
|
|
22
|
+
export declare function ActivityFeedSummary({ summary, links, onResourceClick, resourceLinkResolver, resourceLinkContext, className, }: ActivityFeedSummaryProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
//# sourceMappingURL=ActivityFeedSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActivityFeedSummary.d.ts","sourceRoot":"","sources":["../../src/components/ActivityFeedSummary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE9G,MAAM,WAAW,wBAAwB;IACvC,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,+EAA+E;IAC/E,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsHD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,KAAK,EACL,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,SAAc,GACf,EAAE,wBAAwB,2CAQ1B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ErrorFormatter } from '../types/activity';
|
|
2
|
+
export interface ApiErrorAlertProps {
|
|
3
|
+
error: Error | null;
|
|
4
|
+
onRetry?: () => void;
|
|
5
|
+
className?: string;
|
|
6
|
+
/** Custom error formatter for customizing error messages */
|
|
7
|
+
errorFormatter?: ErrorFormatter;
|
|
8
|
+
}
|
|
9
|
+
export declare function ApiErrorAlert({ error, onRetry, className, errorFormatter }: ApiErrorAlertProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=ApiErrorAlert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiErrorAlert.d.ts","sourceRoot":"","sources":["../../src/components/ApiErrorAlert.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAaD,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,kBAAkB,kDAoC9F"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Event } from '../types';
|
|
2
|
+
import type { TenantLinkResolver } from '../types/activity';
|
|
3
|
+
export interface AuditEventViewerProps {
|
|
4
|
+
events: Event[];
|
|
5
|
+
className?: string;
|
|
6
|
+
onEventSelect?: (event: Event) => void;
|
|
7
|
+
/** Optional resolver function to make tenant badges clickable */
|
|
8
|
+
tenantLinkResolver?: TenantLinkResolver;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* AuditEventViewer displays a list of audit events with details
|
|
12
|
+
*/
|
|
13
|
+
export declare function AuditEventViewer({ events, className, onEventSelect, tenantLinkResolver, }: AuditEventViewerProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
//# sourceMappingURL=AuditEventViewer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditEventViewer.d.ts","sourceRoot":"","sources":["../../src/components/AuditEventViewer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAU,kBAAkB,EAAc,MAAM,mBAAmB,CAAC;AAMhF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AA0BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,SAAc,EACd,aAAa,EACb,kBAAkB,GACnB,EAAE,qBAAqB,2CA+NvB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Event } from '../types';
|
|
2
|
+
export interface AuditLogExpandedDetailsProps {
|
|
3
|
+
/** The audit event to display details for */
|
|
4
|
+
event: Event;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* AuditLogExpandedDetails renders the expanded details section for an audit log event.
|
|
8
|
+
*
|
|
9
|
+
* Section order (most to least relevant for investigation):
|
|
10
|
+
* 1. Request Summary (verb, URI)
|
|
11
|
+
* 2. Response Summary (status code with icon, message)
|
|
12
|
+
* 3. Timestamp (full)
|
|
13
|
+
* 4. User (username, UID, groups)
|
|
14
|
+
* 5. Resource (kind, name, namespace, API group)
|
|
15
|
+
* 6. Request Details (user agent, source IPs)
|
|
16
|
+
* 7. Advanced (collapsed) - audit ID, stage, level, annotations
|
|
17
|
+
* 8. Raw Objects (collapsed) - request/response JSON
|
|
18
|
+
*/
|
|
19
|
+
export declare function AuditLogExpandedDetails({ event }: AuditLogExpandedDetailsProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
//# sourceMappingURL=AuditLogExpandedDetails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditLogExpandedDetails.d.ts","sourceRoot":"","sources":["../../src/components/AuditLogExpandedDetails.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,4BAA4B;IAC3C,6CAA6C;IAC7C,KAAK,EAAE,KAAK,CAAC;CACd;AAcD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,KAAK,EAAE,EAAE,4BAA4B,2CAgQ9E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Event } from '../types';
|
|
2
|
+
export interface AuditLogFeedItemProps {
|
|
3
|
+
/** The audit event to render */
|
|
4
|
+
event: Event;
|
|
5
|
+
/** Handler called when the item is clicked */
|
|
6
|
+
onEventClick?: (event: Event) => void;
|
|
7
|
+
/** Whether the item is selected */
|
|
8
|
+
isSelected?: boolean;
|
|
9
|
+
/** Additional CSS class */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Whether to show as compact (for resource detail tabs) */
|
|
12
|
+
compact?: boolean;
|
|
13
|
+
/** Whether this is a newly streamed event */
|
|
14
|
+
isNew?: boolean;
|
|
15
|
+
/** Whether the item starts expanded */
|
|
16
|
+
defaultExpanded?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* AuditLogFeedItem renders a single audit log event in the feed
|
|
20
|
+
*/
|
|
21
|
+
export declare function AuditLogFeedItem({ event, onEventClick, isSelected, className, compact, isNew, defaultExpanded, }: AuditLogFeedItemProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=AuditLogFeedItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditLogFeedItem.d.ts","sourceRoot":"","sources":["../../src/components/AuditLogFeedItem.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOtC,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmFD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,YAAY,EACZ,UAAkB,EAClB,SAAc,EACd,OAAe,EACf,KAAa,EACb,eAAuB,GACxB,EAAE,qBAAqB,2CA6EvB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ActivityApiClient } from '../api/client';
|
|
2
|
+
/**
|
|
3
|
+
* Filter state for audit logs
|
|
4
|
+
*/
|
|
5
|
+
export interface AuditLogFilterState {
|
|
6
|
+
/** Filter by verb/action (multi-select) */
|
|
7
|
+
verbs?: string[];
|
|
8
|
+
/** Filter by resource type (multi-select) */
|
|
9
|
+
resourceTypes?: string[];
|
|
10
|
+
/** Filter by namespace (multi-select) */
|
|
11
|
+
namespaces?: string[];
|
|
12
|
+
/** Filter by username (multi-select) */
|
|
13
|
+
usernames?: string[];
|
|
14
|
+
/** Filter by resource name (partial match) */
|
|
15
|
+
resourceName?: string;
|
|
16
|
+
/** Custom CEL filter */
|
|
17
|
+
customFilter?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Time range for audit log queries
|
|
21
|
+
*/
|
|
22
|
+
export interface TimeRange {
|
|
23
|
+
start: string;
|
|
24
|
+
end?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface AuditLogFiltersProps {
|
|
27
|
+
/** API client instance for fetching facets */
|
|
28
|
+
client: ActivityApiClient;
|
|
29
|
+
/** Current filter state */
|
|
30
|
+
filters: AuditLogFilterState;
|
|
31
|
+
/** Current time range */
|
|
32
|
+
timeRange: TimeRange;
|
|
33
|
+
/** Handler called when filters change */
|
|
34
|
+
onFiltersChange: (filters: AuditLogFilterState) => void;
|
|
35
|
+
/** Handler called when time range changes */
|
|
36
|
+
onTimeRangeChange: (timeRange: TimeRange) => void;
|
|
37
|
+
/** Whether the filters are disabled (e.g., during loading) */
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
/** Additional CSS class */
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Build CEL filter expression from filter state
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildAuditLogCEL(filters: AuditLogFilterState): string;
|
|
46
|
+
/**
|
|
47
|
+
* AuditLogFilters provides compact filter controls for audit log queries
|
|
48
|
+
*/
|
|
49
|
+
export declare function AuditLogFilters({ client, filters, timeRange, onFiltersChange, onTimeRangeChange, disabled, className, }: AuditLogFiltersProps): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
//# sourceMappingURL=AuditLogFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditLogFilters.d.ts","sourceRoot":"","sources":["../../src/components/AuditLogFilters.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQvD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,yBAAyB;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,yCAAyC;IACzC,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,6CAA6C;IAC7C,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAClD,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8GD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAsDrE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,OAAO,EACP,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,QAAgB,EAChB,SAAc,GACf,EAAE,oBAAoB,2CA4TtB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type AuditLogFilterState, type TimeRange } from './AuditLogFilters';
|
|
2
|
+
import type { Event } from '../types';
|
|
3
|
+
import type { ActivityApiClient } from '../api/client';
|
|
4
|
+
import type { ErrorFormatter } from '../types/activity';
|
|
5
|
+
export interface AuditLogQueryComponentProps {
|
|
6
|
+
client: ActivityApiClient;
|
|
7
|
+
className?: string;
|
|
8
|
+
onEventSelect?: (event: Event) => void;
|
|
9
|
+
initialFilters?: AuditLogFilterState;
|
|
10
|
+
initialTimeRange?: TimeRange;
|
|
11
|
+
/** Custom error formatter for customizing error messages */
|
|
12
|
+
errorFormatter?: ErrorFormatter;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Complete audit log query component with filter builder and results viewer
|
|
16
|
+
*/
|
|
17
|
+
export declare function AuditLogQueryComponent({ client, className, onEventSelect, initialFilters, initialTimeRange, errorFormatter, }: AuditLogQueryComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=AuditLogQueryComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditLogQueryComponent.d.ts","sourceRoot":"","sources":["../../src/components/AuditLogQueryComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAqC,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGhH,OAAO,KAAK,EAAqB,KAAK,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUxD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,MAAM,EACN,SAAc,EACd,aAAa,EACb,cAAmB,EACnB,gBAGC,EACD,cAAc,GACf,EAAE,2BAA2B,2CA4M7B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props for CelEditor component
|
|
3
|
+
*/
|
|
4
|
+
export interface CelEditorProps {
|
|
5
|
+
/** Current value of the editor */
|
|
6
|
+
value: string;
|
|
7
|
+
/** Callback when value changes */
|
|
8
|
+
onChange: (value: string) => void;
|
|
9
|
+
/** Language mode: 'cel' for expressions, 'cel-template' for {{ }} templates */
|
|
10
|
+
language?: 'cel' | 'cel-template';
|
|
11
|
+
/** Field paths available for autocomplete */
|
|
12
|
+
availableFields?: string[];
|
|
13
|
+
/** Placeholder text when empty */
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
/** Height of the editor */
|
|
16
|
+
height?: string | number;
|
|
17
|
+
/** Additional CSS classes */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Show error border */
|
|
20
|
+
error?: boolean;
|
|
21
|
+
/** Whether editor is read-only */
|
|
22
|
+
readOnly?: boolean;
|
|
23
|
+
/** Test ID for E2E testing */
|
|
24
|
+
'data-testid'?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Lazy-loaded Monaco editor for CEL expressions and templates
|
|
28
|
+
* Provides autocomplete based on available field paths
|
|
29
|
+
*/
|
|
30
|
+
export declare function CelEditor({ value, onChange, language, availableFields, placeholder, height, className, error, readOnly, 'data-testid': testId, }: CelEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=CelEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CelEditor.d.ts","sourceRoot":"","sources":["../../src/components/CelEditor.tsx"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC;IAClC,6CAA6C;IAC7C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAOD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,QAAgB,EAChB,eAAoB,EACpB,WAAgB,EAChB,MAAgB,EAChB,SAAS,EACT,KAAa,EACb,QAAgB,EAChB,aAAa,EAAE,MAAM,GACtB,EAAE,cAAc,2CAqNhB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ChangeSource } from '../types/activity';
|
|
2
|
+
export type ChangeSourceOption = ChangeSource | 'all';
|
|
3
|
+
export interface ChangeSourceToggleProps {
|
|
4
|
+
/** Current selected value */
|
|
5
|
+
value: ChangeSourceOption;
|
|
6
|
+
/** Handler called when selection changes */
|
|
7
|
+
onChange: (value: ChangeSourceOption) => void;
|
|
8
|
+
/** Additional CSS class */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Whether the toggle is disabled */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ChangeSourceToggle provides a segmented control for filtering by change source
|
|
15
|
+
*/
|
|
16
|
+
export declare function ChangeSourceToggle({ value, onChange, className, disabled, }: ChangeSourceToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=ChangeSourceToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeSourceToggle.d.ts","sourceRoot":"","sources":["../../src/components/ChangeSourceToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,KAAK,CAAC;AAEtD,MAAM,WAAW,uBAAuB;IACtC,6BAA6B;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,SAAc,EACd,QAAgB,GACjB,EAAE,uBAAuB,2CA6BzB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface DateTimeRange {
|
|
2
|
+
start: string;
|
|
3
|
+
end: string;
|
|
4
|
+
}
|
|
5
|
+
export interface DateTimeRangePickerProps {
|
|
6
|
+
onChange: (range: DateTimeRange) => void;
|
|
7
|
+
initialRange?: DateTimeRange;
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* DateTimeRangePicker component for selecting time ranges for audit log queries.
|
|
12
|
+
* Supports both preset ranges (last 7 days, last 24 hours, etc.) and custom date/time selection.
|
|
13
|
+
*/
|
|
14
|
+
export declare function DateTimeRangePicker({ onChange, initialRange, className, }: DateTimeRangePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=DateTimeRangePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTimeRangePicker.d.ts","sourceRoot":"","sources":["../../src/components/DateTimeRangePicker.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAuFD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,YAAY,EACZ,SAAc,GACf,EAAE,wBAAwB,2CAiH1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { K8sEvent } from '../types/k8s-event';
|
|
2
|
+
export interface EventExpandedDetailsProps {
|
|
3
|
+
/** The event to display details for */
|
|
4
|
+
event: K8sEvent;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* EventExpandedDetails renders the expanded details section for an event.
|
|
8
|
+
*
|
|
9
|
+
* Section order (most to least relevant for investigation):
|
|
10
|
+
* 1. Regarding Object - what resource is affected (was involvedObject in core/v1)
|
|
11
|
+
* 2. Timestamps - when it happened
|
|
12
|
+
* 3. Reporting Controller - what component generated the event (was source in core/v1)
|
|
13
|
+
* 4. Action - what action was taken/failed
|
|
14
|
+
* 5. Metadata - event UIDs and versions
|
|
15
|
+
*/
|
|
16
|
+
export declare function EventExpandedDetails({ event }: EventExpandedDetailsProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=EventExpandedDetails.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventExpandedDetails.d.ts","sourceRoot":"","sources":["../../src/components/EventExpandedDetails.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,KAAK,EAAE,QAAQ,CAAC;CACjB;AAmCD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE,yBAAyB,2CAgLxE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { K8sEvent } from '../types/k8s-event';
|
|
2
|
+
export interface EventFeedItemProps {
|
|
3
|
+
/** The event to render */
|
|
4
|
+
event: K8sEvent;
|
|
5
|
+
/** Handler called when the item is clicked */
|
|
6
|
+
onEventClick?: (event: K8sEvent) => void;
|
|
7
|
+
/** Handler called when the resource name is clicked. If provided, the resource name becomes clickable. */
|
|
8
|
+
onResourceClick?: (resource: {
|
|
9
|
+
kind: string;
|
|
10
|
+
name: string;
|
|
11
|
+
namespace?: string;
|
|
12
|
+
uid?: string;
|
|
13
|
+
}) => void;
|
|
14
|
+
/** Whether the item is selected */
|
|
15
|
+
isSelected?: boolean;
|
|
16
|
+
/** Additional CSS class */
|
|
17
|
+
className?: string;
|
|
18
|
+
/** Whether to show as compact (for resource detail tabs) */
|
|
19
|
+
compact?: boolean;
|
|
20
|
+
/** Whether this is a newly streamed event */
|
|
21
|
+
isNew?: boolean;
|
|
22
|
+
/** Whether the item starts expanded */
|
|
23
|
+
defaultExpanded?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* EventFeedItem renders a single Kubernetes event in the feed
|
|
27
|
+
*/
|
|
28
|
+
export declare function EventFeedItem({ event, onEventClick, onResourceClick, isSelected, className, compact, isNew, defaultExpanded, }: EventFeedItemProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=EventFeedItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventFeedItem.d.ts","sourceRoot":"","sources":["../../src/components/EventFeedItem.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAYnD,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,QAAQ,CAAC;IAChB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,0GAA0G;IAC1G,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA8ED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,YAAY,EACZ,eAAe,EACf,UAAkB,EAClB,SAAc,EACd,OAAe,EACf,KAAa,EACb,eAAuB,GACxB,EAAE,kBAAkB,2CAuLpB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface EventFeedItemSkeletonProps {
|
|
2
|
+
/** Whether to show as compact (for resource detail tabs) */
|
|
3
|
+
compact?: boolean;
|
|
4
|
+
/** Additional CSS class */
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* EventFeedItemSkeleton renders a loading placeholder that matches EventFeedItem layout
|
|
9
|
+
*/
|
|
10
|
+
export declare function EventFeedItemSkeleton({ compact, className, }: EventFeedItemSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=EventFeedItemSkeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventFeedItemSkeleton.d.ts","sourceRoot":"","sources":["../../src/components/EventFeedItemSkeleton.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,0BAA0B;IACzC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,OAAe,EACf,SAAc,GACf,EAAE,0BAA0B,2CA6B5B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { K8sEventType } from '../types/k8s-event';
|
|
2
|
+
export type EventTypeOption = K8sEventType | 'all';
|
|
3
|
+
export interface EventTypeToggleProps {
|
|
4
|
+
/** Current selected value */
|
|
5
|
+
value: EventTypeOption;
|
|
6
|
+
/** Handler called when selection changes */
|
|
7
|
+
onChange: (value: EventTypeOption) => void;
|
|
8
|
+
/** Additional CSS class */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Whether the toggle is disabled */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* EventTypeToggle provides a segmented control for filtering by event type
|
|
15
|
+
*/
|
|
16
|
+
export declare function EventTypeToggle({ value, onChange, className, disabled, }: EventTypeToggleProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
//# sourceMappingURL=EventTypeToggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventTypeToggle.d.ts","sourceRoot":"","sources":["../../src/components/EventTypeToggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,KAAK,CAAC;AAEnD,MAAM,WAAW,oBAAoB;IACnC,6BAA6B;IAC7B,KAAK,EAAE,eAAe,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,SAAc,EACd,QAAgB,GACjB,EAAE,oBAAoB,2CA6BtB"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { K8sEvent } from '../types/k8s-event';
|
|
2
|
+
import type { EffectiveTimeRangeCallback, ErrorFormatter } from '../types/activity';
|
|
3
|
+
import type { EventsFeedFilters as FilterState, TimeRange } from '../hooks/useEventsFeed';
|
|
4
|
+
import { ActivityApiClient } from '../api/client';
|
|
5
|
+
export interface EventsFeedProps {
|
|
6
|
+
/** API client instance */
|
|
7
|
+
client: ActivityApiClient;
|
|
8
|
+
/** Initial filter settings */
|
|
9
|
+
initialFilters?: FilterState;
|
|
10
|
+
/** Initial time range */
|
|
11
|
+
initialTimeRange?: TimeRange;
|
|
12
|
+
/** Number of items per page */
|
|
13
|
+
pageSize?: number;
|
|
14
|
+
/** Handler called when an event is clicked */
|
|
15
|
+
onEventClick?: (event: K8sEvent) => void;
|
|
16
|
+
/** Handler called when a resource name is clicked. If provided, resource names become clickable. */
|
|
17
|
+
onResourceClick?: (resource: {
|
|
18
|
+
kind: string;
|
|
19
|
+
name: string;
|
|
20
|
+
namespace?: string;
|
|
21
|
+
uid?: string;
|
|
22
|
+
}) => void;
|
|
23
|
+
/** Whether to show in compact mode (for resource detail tabs) */
|
|
24
|
+
compact?: boolean;
|
|
25
|
+
/** Filter to a specific namespace */
|
|
26
|
+
namespace?: string;
|
|
27
|
+
/** Whether to show filters */
|
|
28
|
+
showFilters?: boolean;
|
|
29
|
+
/** Filters that should be locked and hidden from the UI (programmatically set by parent) */
|
|
30
|
+
hiddenFilters?: Array<'involvedKinds' | 'reasons' | 'namespaces' | 'sourceComponents' | 'involvedName' | 'eventType'>;
|
|
31
|
+
/** Additional CSS class */
|
|
32
|
+
className?: string;
|
|
33
|
+
/** Enable infinite scroll (default: true) */
|
|
34
|
+
infiniteScroll?: boolean;
|
|
35
|
+
/** Threshold in pixels for triggering load more (default: 200) */
|
|
36
|
+
loadMoreThreshold?: number;
|
|
37
|
+
/** Enable real-time streaming (default: false) */
|
|
38
|
+
enableStreaming?: boolean;
|
|
39
|
+
/** Callback invoked when the effective time range is resolved */
|
|
40
|
+
onEffectiveTimeRangeChange?: EffectiveTimeRangeCallback;
|
|
41
|
+
/** Custom error formatter for customizing error messages */
|
|
42
|
+
errorFormatter?: ErrorFormatter;
|
|
43
|
+
/** Callback invoked when filters or time range change (useful for URL state management) */
|
|
44
|
+
onFiltersChange?: (filters: FilterState, timeRange: TimeRange) => void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* EventsFeed displays a chronological list of Kubernetes events with filtering and pagination.
|
|
48
|
+
* Supports optional real-time streaming of new events.
|
|
49
|
+
*/
|
|
50
|
+
export declare function EventsFeed({ client, initialFilters, initialTimeRange, pageSize, onEventClick, onResourceClick, compact, namespace, showFilters, hiddenFilters, className, infiniteScroll, loadMoreThreshold, enableStreaming, onEffectiveTimeRangeChange, errorFormatter, onFiltersChange: onFiltersChangeProp, }: EventsFeedProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
//# sourceMappingURL=EventsFeed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventsFeed.d.ts","sourceRoot":"","sources":["../../src/components/EventsFeed.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,KAAK,EACV,iBAAiB,IAAI,WAAW,EAChC,SAAS,EACV,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMlD,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,oGAAoG;IACpG,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,aAAa,CAAC,EAAE,KAAK,CAAC,eAAe,GAAG,SAAS,GAAG,YAAY,GAAG,kBAAkB,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC;IACtH,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,4DAA4D;IAC5D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,2FAA2F;IAC3F,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;CACxE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,cAAmB,EACnB,gBAAuC,EACvC,QAAa,EACb,YAAY,EACZ,eAAe,EACf,OAAe,EACf,SAAS,EACT,WAAkB,EAClB,aAAkB,EAClB,SAAc,EACd,cAAqB,EACrB,iBAAuB,EACvB,eAAuB,EACvB,0BAA0B,EAC1B,cAAc,EACd,eAAe,EAAE,mBAAmB,GACrC,EAAE,eAAe,2CAyOjB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EventsFeedFilters as FilterState } from '../hooks/useEventsFeed';
|
|
2
|
+
import type { TimeRange } from '../hooks/useEventsFeed';
|
|
3
|
+
import type { ActivityApiClient } from '../api/client';
|
|
4
|
+
export interface EventsFeedFiltersProps {
|
|
5
|
+
/** API client instance for fetching facets */
|
|
6
|
+
client: ActivityApiClient;
|
|
7
|
+
/** Current filter state */
|
|
8
|
+
filters: FilterState;
|
|
9
|
+
/** Current time range */
|
|
10
|
+
timeRange: TimeRange;
|
|
11
|
+
/** Handler called when filters change */
|
|
12
|
+
onFiltersChange: (filters: FilterState) => void;
|
|
13
|
+
/** Handler called when time range changes */
|
|
14
|
+
onTimeRangeChange: (timeRange: TimeRange) => void;
|
|
15
|
+
/** Whether the filters are disabled (e.g., during loading) */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** Filters that should be locked and hidden from the UI (programmatically set by parent) */
|
|
18
|
+
hiddenFilters?: Array<'involvedKinds' | 'reasons' | 'namespaces' | 'sourceComponents' | 'involvedName' | 'eventType'>;
|
|
19
|
+
/** Additional CSS class */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Namespace filter (when scoped to a specific namespace) */
|
|
22
|
+
namespace?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* EventsFeedFilters provides filter controls for the events feed
|
|
26
|
+
*/
|
|
27
|
+
export declare function EventsFeedFilters({ client, filters, timeRange, onFiltersChange, onTimeRangeChange, disabled, hiddenFilters, className, namespace, }: EventsFeedFiltersProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=EventsFeedFilters.d.ts.map
|