uilint-react 0.2.120 → 0.2.122
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/core/store/core-slice.d.ts +15 -22
- package/dist/core/store/core-slice.d.ts.map +1 -1
- package/dist/core/store/drag-slice.d.ts +1 -1
- package/dist/core/store/drag-slice.d.ts.map +1 -1
- package/dist/core/store/file-groups-selector.d.ts +23 -15
- package/dist/core/store/file-groups-selector.d.ts.map +1 -1
- package/dist/core/store/heatmap-selectors.d.ts +18 -23
- package/dist/core/store/heatmap-selectors.d.ts.map +1 -1
- package/dist/core/store/index.d.ts +6 -3
- package/dist/core/store/index.d.ts.map +1 -1
- package/dist/core/store/tile-selectors.d.ts +0 -4
- package/dist/core/store/tile-selectors.d.ts.map +1 -1
- package/dist/devtools.js +99 -99
- package/dist/devtools.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9132 -9088
- package/dist/index.js.map +1 -1
- package/dist/ui/UILint.d.ts.map +1 -1
- package/dist/ui/components/CommandPalette/CommandPalette.d.ts.map +1 -1
- package/dist/ui/components/CommandPalette/SearchInput.d.ts +1 -8
- package/dist/ui/components/CommandPalette/SearchInput.d.ts.map +1 -1
- package/dist/ui/components/HeatmapOverlay.d.ts.map +1 -1
- package/dist/ui/components/HierarchicalTiles/ExpandableContainer.d.ts +32 -0
- package/dist/ui/components/HierarchicalTiles/ExpandableContainer.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/ExpandableTileGrid.d.ts +35 -0
- package/dist/ui/components/HierarchicalTiles/ExpandableTileGrid.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/HierarchyProvider.d.ts +104 -0
- package/dist/ui/components/HierarchicalTiles/HierarchyProvider.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/SiblingStrip.d.ts +21 -0
- package/dist/ui/components/HierarchicalTiles/SiblingStrip.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/Tile.d.ts +27 -0
- package/dist/ui/components/HierarchicalTiles/Tile.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/TileGrid.d.ts +36 -0
- package/dist/ui/components/HierarchicalTiles/TileGrid.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/TileHeader.d.ts +19 -0
- package/dist/ui/components/HierarchicalTiles/TileHeader.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/animations/expansion-animations.d.ts +108 -0
- package/dist/ui/components/HierarchicalTiles/animations/expansion-animations.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/animations/index.d.ts +5 -0
- package/dist/ui/components/HierarchicalTiles/animations/index.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/index.d.ts +23 -0
- package/dist/ui/components/HierarchicalTiles/index.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/layout/expanded-layout.d.ts +45 -0
- package/dist/ui/components/HierarchicalTiles/layout/expanded-layout.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/layout/index.d.ts +11 -0
- package/dist/ui/components/HierarchicalTiles/layout/index.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/layout/mosaic-layout.d.ts +89 -0
- package/dist/ui/components/HierarchicalTiles/layout/mosaic-layout.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/layout/types.d.ts +67 -0
- package/dist/ui/components/HierarchicalTiles/layout/types.d.ts.map +1 -0
- package/dist/ui/components/HierarchicalTiles/types.d.ts +385 -0
- package/dist/ui/components/HierarchicalTiles/types.d.ts.map +1 -0
- package/dist/ui/components/Inspector/FileNodeAdapter.d.ts +75 -0
- package/dist/ui/components/Inspector/FileNodeAdapter.d.ts.map +1 -0
- package/dist/ui/components/Inspector/InspectorSidebar.d.ts.map +1 -1
- package/dist/ui/components/Inspector/IssuesList.d.ts +3 -1
- package/dist/ui/components/Inspector/IssuesList.d.ts.map +1 -1
- package/dist/ui/components/Inspector/RuleHeader.d.ts +3 -1
- package/dist/ui/components/Inspector/RuleHeader.d.ts.map +1 -1
- package/dist/ui/components/Inspector/RuleNodeAdapter.d.ts +62 -0
- package/dist/ui/components/Inspector/RuleNodeAdapter.d.ts.map +1 -0
- package/dist/ui/components/InspectorToggle.d.ts.map +1 -1
- package/dist/ui/components/glass-panel.d.ts +1 -1
- package/dist/ui/hooks/useTileItems.d.ts +11 -20
- package/dist/ui/hooks/useTileItems.d.ts.map +1 -1
- package/dist/ui/index.d.ts +0 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/ui/components/CommandPalette/FilterChip.d.ts +0 -21
- package/dist/ui/components/CommandPalette/FilterChip.d.ts.map +0 -1
- package/dist/ui/components/FloatingIcon.d.ts +0 -3
- package/dist/ui/components/FloatingIcon.d.ts.map +0 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { TileBucket } from '../../../../core/plugin-system/types';
|
|
2
|
+
import { MosaicLayoutResult, MosaicLayoutConfig, LayoutItem } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Calculate bucket size based on normalized percentiles.
|
|
5
|
+
*/
|
|
6
|
+
export declare function calculateBucket(count: number, sortedCounts: number[]): TileBucket;
|
|
7
|
+
/**
|
|
8
|
+
* Calculate buckets for all items based on their counts
|
|
9
|
+
*/
|
|
10
|
+
export declare function calculateBuckets(items: LayoutItem[]): Map<string, TileBucket>;
|
|
11
|
+
/**
|
|
12
|
+
* Main bin-packing mosaic layout algorithm
|
|
13
|
+
*/
|
|
14
|
+
export declare function calculateMosaicLayout(items: LayoutItem[], config?: MosaicLayoutConfig): MosaicLayoutResult;
|
|
15
|
+
/**
|
|
16
|
+
* Group tiles by row for rendering (kept for backwards compatibility)
|
|
17
|
+
*/
|
|
18
|
+
export declare function groupTilesByRow<T extends {
|
|
19
|
+
id: string;
|
|
20
|
+
}>(items: T[], layout: MosaicLayoutResult): T[][];
|
|
21
|
+
/**
|
|
22
|
+
* Get bucket height in pixels
|
|
23
|
+
*/
|
|
24
|
+
export declare function getBucketHeight(bucket: TileBucket): number;
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for collapsed tile strip layout
|
|
27
|
+
*/
|
|
28
|
+
export interface CollapsedStripConfig {
|
|
29
|
+
/** Width of each collapsed tile */
|
|
30
|
+
tileWidth?: number;
|
|
31
|
+
/** Height of collapsed tiles */
|
|
32
|
+
tileHeight?: number;
|
|
33
|
+
/** Gap between tiles */
|
|
34
|
+
gap?: number;
|
|
35
|
+
/** Padding around the strip */
|
|
36
|
+
padding?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Layout info for a collapsed tile in the strip
|
|
40
|
+
*/
|
|
41
|
+
export interface CollapsedTileLayout {
|
|
42
|
+
id: string;
|
|
43
|
+
x: number;
|
|
44
|
+
width: number;
|
|
45
|
+
height: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Calculate layout for collapsed tiles in horizontal strip
|
|
49
|
+
*/
|
|
50
|
+
export declare function calculateCollapsedStripLayout(items: LayoutItem[], config?: CollapsedStripConfig): {
|
|
51
|
+
tiles: CollapsedTileLayout[];
|
|
52
|
+
totalWidth: number;
|
|
53
|
+
height: number;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Calculate layout for children within an expanded tile
|
|
57
|
+
* Uses a simpler grid layout (not masonry) for consistency
|
|
58
|
+
*/
|
|
59
|
+
export interface ChildGridConfig {
|
|
60
|
+
/** Available width for the grid */
|
|
61
|
+
availableWidth?: number;
|
|
62
|
+
/** Number of columns */
|
|
63
|
+
columns?: number;
|
|
64
|
+
/** Gap between tiles */
|
|
65
|
+
gap?: number;
|
|
66
|
+
/** Tile height */
|
|
67
|
+
tileHeight?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Layout info for a child tile in the grid
|
|
71
|
+
*/
|
|
72
|
+
export interface ChildTileLayout {
|
|
73
|
+
id: string;
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
width: number;
|
|
77
|
+
height: number;
|
|
78
|
+
row: number;
|
|
79
|
+
column: number;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Calculate layout for child tiles in a simple grid
|
|
83
|
+
*/
|
|
84
|
+
export declare function calculateChildGridLayout(items: LayoutItem[], config?: ChildGridConfig): {
|
|
85
|
+
tiles: ChildTileLayout[];
|
|
86
|
+
totalHeight: number;
|
|
87
|
+
columns: number;
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=mosaic-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosaic-layout.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/HierarchicalTiles/layout/mosaic-layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACX,MAAM,SAAS,CAAC;AAuBjB;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAYjF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAS7E;AAqGD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,GAAE,kBAAuB,GAC9B,kBAAkB,CA+FpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,EACtD,KAAK,EAAE,CAAC,EAAE,EACV,MAAM,EAAE,kBAAkB,GACzB,CAAC,EAAE,EAAE,CAeP;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAE1D;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AASD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,GAAE,oBAAyB,GAChC;IACD,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAmBA;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AASD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,UAAU,EAAE,EACnB,MAAM,GAAE,eAAoB,GAC3B;IACD,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CA4BA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { TileBucket } from '../../../../core/plugin-system/types';
|
|
2
|
+
/**
|
|
3
|
+
* Layout information for a single tile
|
|
4
|
+
*/
|
|
5
|
+
export interface TileLayout {
|
|
6
|
+
/** Tile ID */
|
|
7
|
+
id: string;
|
|
8
|
+
/** Row index (0-based) - legacy, not used for absolute positioning */
|
|
9
|
+
row: number;
|
|
10
|
+
/** Column index within row (0-based) */
|
|
11
|
+
column: number;
|
|
12
|
+
/** CSS width value (e.g., "158px") */
|
|
13
|
+
width: string;
|
|
14
|
+
/** Width as fraction (0.5, 0.333, etc.) */
|
|
15
|
+
widthFraction: number;
|
|
16
|
+
/** Size bucket for height */
|
|
17
|
+
bucket: TileBucket;
|
|
18
|
+
/** Whether this tile starts a new row */
|
|
19
|
+
isRowStart: boolean;
|
|
20
|
+
/** Absolute X position in pixels */
|
|
21
|
+
x: number;
|
|
22
|
+
/** Absolute Y position in pixels */
|
|
23
|
+
y: number;
|
|
24
|
+
/** Height in pixels */
|
|
25
|
+
height: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Result of mosaic layout calculation
|
|
29
|
+
*/
|
|
30
|
+
export interface MosaicLayoutResult {
|
|
31
|
+
/** Map of tile ID to layout info */
|
|
32
|
+
tiles: Map<string, TileLayout>;
|
|
33
|
+
/** Total number of rows (approximate) */
|
|
34
|
+
rowCount: number;
|
|
35
|
+
/** Number of columns */
|
|
36
|
+
columnCount: number;
|
|
37
|
+
/** Layout pattern used */
|
|
38
|
+
pattern: "single" | "pair" | "trio" | "quad" | "grid";
|
|
39
|
+
/** Total height of the layout in pixels */
|
|
40
|
+
totalHeight: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Configuration for mosaic layout calculation
|
|
44
|
+
*/
|
|
45
|
+
export interface MosaicLayoutConfig {
|
|
46
|
+
/** Available width in pixels (default: 500) */
|
|
47
|
+
availableWidth?: number;
|
|
48
|
+
/** Gap between tiles in pixels (default: 12) */
|
|
49
|
+
gap?: number;
|
|
50
|
+
/** Minimum tile width in pixels (default: 140) */
|
|
51
|
+
minTileWidth?: number;
|
|
52
|
+
/** Padding around the grid (default: { top: 0, right: 0, bottom: 0, left: 0 }) */
|
|
53
|
+
padding?: {
|
|
54
|
+
top?: number;
|
|
55
|
+
right?: number;
|
|
56
|
+
bottom?: number;
|
|
57
|
+
left?: number;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Input item for layout calculation (minimal interface)
|
|
62
|
+
*/
|
|
63
|
+
export interface LayoutItem {
|
|
64
|
+
id: string;
|
|
65
|
+
count: number;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/HierarchicalTiles/layout/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,sCAAsC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,yCAAyC;IACzC,UAAU,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,oCAAoC;IACpC,CAAC,EAAE,MAAM,CAAC;IACV,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACtD,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kFAAkF;IAClF,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TileBucket, TileSeverityCounts, TileVisualState } from '../../../core/plugin-system/types';
|
|
3
|
+
/**
|
|
4
|
+
* Re-export TileBucket from plugin-system types.
|
|
5
|
+
* Size bucket for tiles in the masonry grid.
|
|
6
|
+
*/
|
|
7
|
+
export type { TileBucket };
|
|
8
|
+
/**
|
|
9
|
+
* Re-export TileSeverityCounts as SeverityCounts for convenience.
|
|
10
|
+
* Severity counts for visual breakdown in tiles.
|
|
11
|
+
*/
|
|
12
|
+
export type { TileSeverityCounts as SeverityCounts };
|
|
13
|
+
/**
|
|
14
|
+
* Also export TileSeverityCounts directly for compatibility.
|
|
15
|
+
*/
|
|
16
|
+
export type { TileSeverityCounts };
|
|
17
|
+
/**
|
|
18
|
+
* Re-export TileVisualState from plugin-system types.
|
|
19
|
+
* Visual state of a tile in the expandable grid.
|
|
20
|
+
*/
|
|
21
|
+
export type { TileVisualState };
|
|
22
|
+
/**
|
|
23
|
+
* Local alias for SeverityCounts to use in interfaces.
|
|
24
|
+
*/
|
|
25
|
+
type SeverityCounts = TileSeverityCounts;
|
|
26
|
+
/**
|
|
27
|
+
* Generic node type for hierarchical tile structures.
|
|
28
|
+
*
|
|
29
|
+
* Represents a single node in a tree hierarchy that can be rendered as a tile.
|
|
30
|
+
* The generic parameter T allows arbitrary data payloads for different use cases.
|
|
31
|
+
*
|
|
32
|
+
* @template T - The type of the data payload attached to this node
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* // Node for ESLint rules
|
|
37
|
+
* type RuleNode = HierarchyNode<{ ruleId: string; fixable: boolean }>;
|
|
38
|
+
*
|
|
39
|
+
* // Node for file system
|
|
40
|
+
* type FileNode = HierarchyNode<{ path: string; isDirectory: boolean }>;
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export interface HierarchyNode<T> {
|
|
44
|
+
/**
|
|
45
|
+
* Unique identifier for this node.
|
|
46
|
+
* Must be unique within the entire hierarchy.
|
|
47
|
+
*/
|
|
48
|
+
id: string;
|
|
49
|
+
/**
|
|
50
|
+
* Primary display label for the tile.
|
|
51
|
+
*/
|
|
52
|
+
label: string;
|
|
53
|
+
/**
|
|
54
|
+
* Optional secondary text displayed below the label.
|
|
55
|
+
*/
|
|
56
|
+
subtitle?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Optional icon to display in the tile.
|
|
59
|
+
* Can be a React component, emoji, or any renderable element.
|
|
60
|
+
*/
|
|
61
|
+
icon?: ReactNode;
|
|
62
|
+
/**
|
|
63
|
+
* Optional count for badge display and bucket sizing.
|
|
64
|
+
* Typically represents number of items, issues, or children.
|
|
65
|
+
*/
|
|
66
|
+
count?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Optional severity breakdown for visual indicators.
|
|
69
|
+
* When provided, tiles can show error/warning/info distribution.
|
|
70
|
+
*/
|
|
71
|
+
severityCounts?: SeverityCounts;
|
|
72
|
+
/**
|
|
73
|
+
* Arbitrary data payload associated with this node.
|
|
74
|
+
* Contains domain-specific information for the use case.
|
|
75
|
+
*/
|
|
76
|
+
data: T;
|
|
77
|
+
/**
|
|
78
|
+
* Child nodes in the hierarchy.
|
|
79
|
+
* When present and non-empty, the node can be expanded to show children.
|
|
80
|
+
*/
|
|
81
|
+
children?: HierarchyNode<T>[];
|
|
82
|
+
/**
|
|
83
|
+
* Indicates that children exist but have not been loaded yet.
|
|
84
|
+
* When true, expanding the node should trigger lazy loading of children.
|
|
85
|
+
* Mutually exclusive with having children already populated.
|
|
86
|
+
*/
|
|
87
|
+
hasChildren?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Indicates that this node is a leaf node with custom content.
|
|
90
|
+
* When true, expanding shows custom content via renderChildren
|
|
91
|
+
* instead of child tiles.
|
|
92
|
+
*/
|
|
93
|
+
isLeaf?: boolean;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Context value for managing hierarchical expansion state.
|
|
97
|
+
*
|
|
98
|
+
* Provides the current expansion state and methods to modify it.
|
|
99
|
+
* Used by components to track and control which nodes are expanded.
|
|
100
|
+
*
|
|
101
|
+
* @template T - The type of the data payload in hierarchy nodes
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* const { expansionPath, expand, collapseToLevel } = useHierarchyContext<RuleData>();
|
|
106
|
+
*
|
|
107
|
+
* // Expand a node
|
|
108
|
+
* expand(selectedNode);
|
|
109
|
+
*
|
|
110
|
+
* // Go back one level
|
|
111
|
+
* collapseToLevel(currentLevel - 1);
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export interface HierarchyContextValue<T> {
|
|
115
|
+
/**
|
|
116
|
+
* Array of nodes representing the current expansion path.
|
|
117
|
+
* First element is the root-level expanded node, subsequent elements
|
|
118
|
+
* are nested expansions. Empty array means no expansion.
|
|
119
|
+
*/
|
|
120
|
+
expansionPath: HierarchyNode<T>[];
|
|
121
|
+
/**
|
|
122
|
+
* Current depth level in the hierarchy (0 = root, 1 = first expansion, etc.).
|
|
123
|
+
* Equals the length of expansionPath.
|
|
124
|
+
*/
|
|
125
|
+
currentLevel: number;
|
|
126
|
+
/**
|
|
127
|
+
* ID of the currently expanded node at the deepest level.
|
|
128
|
+
* Null if no node is expanded.
|
|
129
|
+
*/
|
|
130
|
+
expandedNodeId: string | null;
|
|
131
|
+
/**
|
|
132
|
+
* Expand a node, adding it to the expansion path.
|
|
133
|
+
* If a node at the same level is already expanded, it will be replaced.
|
|
134
|
+
*
|
|
135
|
+
* @param node - The node to expand
|
|
136
|
+
*/
|
|
137
|
+
expand: (node: HierarchyNode<T>) => void;
|
|
138
|
+
/**
|
|
139
|
+
* Collapse the most recently expanded node.
|
|
140
|
+
* Removes the last entry from the expansion path.
|
|
141
|
+
*/
|
|
142
|
+
collapse: () => void;
|
|
143
|
+
/**
|
|
144
|
+
* Collapse to a specific level in the hierarchy.
|
|
145
|
+
* Useful for breadcrumb-style navigation.
|
|
146
|
+
*
|
|
147
|
+
* @param level - The level to collapse to (0 = fully collapsed)
|
|
148
|
+
*/
|
|
149
|
+
collapseToLevel: (level: number) => void;
|
|
150
|
+
/**
|
|
151
|
+
* Collapse all expansions, returning to the root view.
|
|
152
|
+
* Equivalent to collapseToLevel(0).
|
|
153
|
+
*/
|
|
154
|
+
collapseAll: () => void;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Props for the expandable container component.
|
|
158
|
+
*
|
|
159
|
+
* The expandable container wraps a tile and its expanded content,
|
|
160
|
+
* handling the expansion animation and layout.
|
|
161
|
+
*
|
|
162
|
+
* @template T - The type of the data payload in hierarchy nodes
|
|
163
|
+
*/
|
|
164
|
+
export interface ExpandableContainerProps<T> {
|
|
165
|
+
/**
|
|
166
|
+
* The node this container represents.
|
|
167
|
+
*/
|
|
168
|
+
node: HierarchyNode<T>;
|
|
169
|
+
/**
|
|
170
|
+
* Whether this node is currently expanded.
|
|
171
|
+
*/
|
|
172
|
+
isExpanded: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Callback when the node should be expanded.
|
|
175
|
+
*/
|
|
176
|
+
onExpand: () => void;
|
|
177
|
+
/**
|
|
178
|
+
* Callback when the node should be collapsed.
|
|
179
|
+
*/
|
|
180
|
+
onCollapse: () => void;
|
|
181
|
+
/**
|
|
182
|
+
* Sibling nodes at the same level.
|
|
183
|
+
* Used for rendering the collapsed sibling strip.
|
|
184
|
+
*/
|
|
185
|
+
siblings?: HierarchyNode<T>[];
|
|
186
|
+
/**
|
|
187
|
+
* Callback when a sibling tile is clicked.
|
|
188
|
+
* Typically switches expansion to the clicked sibling.
|
|
189
|
+
*
|
|
190
|
+
* @param node - The sibling node that was clicked
|
|
191
|
+
*/
|
|
192
|
+
onSiblingClick?: (node: HierarchyNode<T>) => void;
|
|
193
|
+
/**
|
|
194
|
+
* Custom render function for the tile header.
|
|
195
|
+
* Override default header rendering for custom layouts.
|
|
196
|
+
*
|
|
197
|
+
* @param node - The node to render a header for
|
|
198
|
+
* @returns React element for the header
|
|
199
|
+
*/
|
|
200
|
+
renderHeader?: (node: HierarchyNode<T>) => ReactNode;
|
|
201
|
+
/**
|
|
202
|
+
* Custom render function for leaf node content.
|
|
203
|
+
* Called when isLeaf is true and the node is expanded.
|
|
204
|
+
* Use this for custom detail views instead of child tiles.
|
|
205
|
+
*
|
|
206
|
+
* @param node - The leaf node to render content for
|
|
207
|
+
* @returns React element for the leaf content
|
|
208
|
+
*/
|
|
209
|
+
renderChildren?: (node: HierarchyNode<T>) => ReactNode;
|
|
210
|
+
/**
|
|
211
|
+
* Custom render function for child tiles.
|
|
212
|
+
* Override default tile rendering for custom appearances.
|
|
213
|
+
*
|
|
214
|
+
* @param node - The node to render as a tile
|
|
215
|
+
* @returns React element for the tile
|
|
216
|
+
*/
|
|
217
|
+
renderTile?: (node: HierarchyNode<T>) => ReactNode;
|
|
218
|
+
/**
|
|
219
|
+
* Layout mode for child tiles.
|
|
220
|
+
* - 'grid': Standard CSS grid layout
|
|
221
|
+
* - 'list': Vertical list layout
|
|
222
|
+
* - 'masonry': Pinterest-style masonry layout
|
|
223
|
+
*
|
|
224
|
+
* @default 'grid'
|
|
225
|
+
*/
|
|
226
|
+
layout?: "grid" | "list" | "masonry";
|
|
227
|
+
/**
|
|
228
|
+
* Whether to show the collapsed sibling strip.
|
|
229
|
+
* When true and expanded, shows minimized versions of sibling tiles.
|
|
230
|
+
*
|
|
231
|
+
* @default true
|
|
232
|
+
*/
|
|
233
|
+
showSiblingStrip?: boolean;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Props for the tile header component.
|
|
237
|
+
*
|
|
238
|
+
* The header displays the node's label, icon, counts, and expansion controls.
|
|
239
|
+
*/
|
|
240
|
+
export interface TileHeaderProps {
|
|
241
|
+
/**
|
|
242
|
+
* Primary display label.
|
|
243
|
+
*/
|
|
244
|
+
label: string;
|
|
245
|
+
/**
|
|
246
|
+
* Optional secondary text.
|
|
247
|
+
*/
|
|
248
|
+
subtitle?: string;
|
|
249
|
+
/**
|
|
250
|
+
* Optional icon to display.
|
|
251
|
+
*/
|
|
252
|
+
icon?: ReactNode;
|
|
253
|
+
/**
|
|
254
|
+
* Optional count for badge display.
|
|
255
|
+
*/
|
|
256
|
+
count?: number;
|
|
257
|
+
/**
|
|
258
|
+
* Optional severity breakdown for visual indicator.
|
|
259
|
+
*/
|
|
260
|
+
severityCounts?: SeverityCounts;
|
|
261
|
+
/**
|
|
262
|
+
* Whether the associated tile is expanded.
|
|
263
|
+
*/
|
|
264
|
+
isExpanded?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Whether the tile can be expanded (has children or hasChildren is true).
|
|
267
|
+
*/
|
|
268
|
+
isExpandable?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Callback when the expand/collapse button is clicked.
|
|
271
|
+
*/
|
|
272
|
+
onExpandToggle?: () => void;
|
|
273
|
+
/**
|
|
274
|
+
* Callback when the header is clicked.
|
|
275
|
+
* May differ from onExpandToggle for selection vs expansion behavior.
|
|
276
|
+
*/
|
|
277
|
+
onClick?: () => void;
|
|
278
|
+
/**
|
|
279
|
+
* Additional CSS class names.
|
|
280
|
+
*/
|
|
281
|
+
className?: string;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Props for the sibling strip component.
|
|
285
|
+
*
|
|
286
|
+
* The sibling strip shows minimized versions of sibling tiles
|
|
287
|
+
* when a tile is expanded, allowing quick navigation between siblings.
|
|
288
|
+
*
|
|
289
|
+
* @template T - The type of the data payload in hierarchy nodes
|
|
290
|
+
*/
|
|
291
|
+
export interface SiblingStripProps<T> {
|
|
292
|
+
/**
|
|
293
|
+
* Array of sibling nodes to display.
|
|
294
|
+
*/
|
|
295
|
+
siblings: HierarchyNode<T>[];
|
|
296
|
+
/**
|
|
297
|
+
* ID of the currently expanded sibling.
|
|
298
|
+
*/
|
|
299
|
+
expandedId: string;
|
|
300
|
+
/**
|
|
301
|
+
* Callback when a sibling is clicked.
|
|
302
|
+
*
|
|
303
|
+
* @param node - The clicked sibling node
|
|
304
|
+
*/
|
|
305
|
+
onSiblingClick: (node: HierarchyNode<T>) => void;
|
|
306
|
+
/**
|
|
307
|
+
* Custom render function for sibling items.
|
|
308
|
+
*
|
|
309
|
+
* @param node - The sibling node to render
|
|
310
|
+
* @param isExpanded - Whether this sibling is the expanded one
|
|
311
|
+
* @returns React element for the sibling item
|
|
312
|
+
*/
|
|
313
|
+
renderSibling?: (node: HierarchyNode<T>, isExpanded: boolean) => ReactNode;
|
|
314
|
+
/**
|
|
315
|
+
* Orientation of the sibling strip.
|
|
316
|
+
*
|
|
317
|
+
* @default 'horizontal'
|
|
318
|
+
*/
|
|
319
|
+
orientation?: "horizontal" | "vertical";
|
|
320
|
+
/**
|
|
321
|
+
* Additional CSS class names.
|
|
322
|
+
*/
|
|
323
|
+
className?: string;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Generic props for tile components.
|
|
327
|
+
*
|
|
328
|
+
* Base props that all tile variants should accept.
|
|
329
|
+
*
|
|
330
|
+
* @template T - The type of the data payload in hierarchy nodes
|
|
331
|
+
*/
|
|
332
|
+
export interface TileProps<T> {
|
|
333
|
+
/**
|
|
334
|
+
* The node this tile represents.
|
|
335
|
+
*/
|
|
336
|
+
node: HierarchyNode<T>;
|
|
337
|
+
/**
|
|
338
|
+
* Visual state of the tile.
|
|
339
|
+
* Determines styling and interaction behavior.
|
|
340
|
+
*/
|
|
341
|
+
visualState?: TileVisualState;
|
|
342
|
+
/**
|
|
343
|
+
* Size bucket for the tile.
|
|
344
|
+
* Determines tile dimensions in grid layouts.
|
|
345
|
+
*/
|
|
346
|
+
bucket?: TileBucket;
|
|
347
|
+
/**
|
|
348
|
+
* Whether the tile is currently selected.
|
|
349
|
+
*/
|
|
350
|
+
isSelected?: boolean;
|
|
351
|
+
/**
|
|
352
|
+
* Whether the tile is currently expanded.
|
|
353
|
+
*/
|
|
354
|
+
isExpanded?: boolean;
|
|
355
|
+
/**
|
|
356
|
+
* Whether the tile can be expanded.
|
|
357
|
+
*/
|
|
358
|
+
isExpandable?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Callback when the tile is clicked.
|
|
361
|
+
*/
|
|
362
|
+
onClick?: () => void;
|
|
363
|
+
/**
|
|
364
|
+
* Callback when the expand button is clicked.
|
|
365
|
+
* If not provided, onClick handles expansion.
|
|
366
|
+
*/
|
|
367
|
+
onExpand?: () => void;
|
|
368
|
+
/**
|
|
369
|
+
* Callback when the tile receives keyboard focus.
|
|
370
|
+
*/
|
|
371
|
+
onFocus?: () => void;
|
|
372
|
+
/**
|
|
373
|
+
* Callback when the tile loses keyboard focus.
|
|
374
|
+
*/
|
|
375
|
+
onBlur?: () => void;
|
|
376
|
+
/**
|
|
377
|
+
* Additional CSS class names.
|
|
378
|
+
*/
|
|
379
|
+
className?: string;
|
|
380
|
+
/**
|
|
381
|
+
* Test ID for automated testing.
|
|
382
|
+
*/
|
|
383
|
+
testId?: string;
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/HierarchicalTiles/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { FileGroup } from '../../../core/store/file-groups-selector';
|
|
3
|
+
import { HierarchyNode } from '../HierarchicalTiles/types';
|
|
4
|
+
/**
|
|
5
|
+
* Data payload for file hierarchy nodes.
|
|
6
|
+
* Wraps the FileGroup to carry full file information through the hierarchy.
|
|
7
|
+
*/
|
|
8
|
+
export interface FileNodeData {
|
|
9
|
+
/** The underlying FileGroup data */
|
|
10
|
+
fileGroup: FileGroup;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Type alias for file-based hierarchy nodes.
|
|
14
|
+
* Represents a file in the hierarchical tiles structure.
|
|
15
|
+
*/
|
|
16
|
+
export type FileNode = HierarchyNode<FileNodeData>;
|
|
17
|
+
/**
|
|
18
|
+
* Transform FileGroup array to HierarchyNode array.
|
|
19
|
+
*
|
|
20
|
+
* Maps FileGroup properties to HierarchyNode structure:
|
|
21
|
+
* - id: fileGroup.filePath (unique identifier)
|
|
22
|
+
* - label: fileGroup.fileName (displayed prominently)
|
|
23
|
+
* - subtitle: fileGroup.directory (secondary info)
|
|
24
|
+
* - count: fileGroup.totalCount (for badge/sizing)
|
|
25
|
+
* - severityCounts: fileGroup.severityCounts (for severity indicators)
|
|
26
|
+
* - data: { fileGroup } (full data payload)
|
|
27
|
+
* - isLeaf: true (FileSourceView is the leaf content)
|
|
28
|
+
* - children: undefined (leaf nodes have no child tiles)
|
|
29
|
+
*
|
|
30
|
+
* @param fileGroups - Array of FileGroup objects from the selector
|
|
31
|
+
* @returns Array of FileNode objects ready for HierarchicalTiles
|
|
32
|
+
*/
|
|
33
|
+
export declare function fileGroupsToNodes(fileGroups: FileGroup[]): FileNode[];
|
|
34
|
+
export interface FileCardHeaderProps {
|
|
35
|
+
/** The file node to render header for */
|
|
36
|
+
node: FileNode;
|
|
37
|
+
/** Whether this node is currently expanded */
|
|
38
|
+
isExpanded: boolean;
|
|
39
|
+
/** Additional class name */
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* FileCardHeader - Replicates the FileSection header styling.
|
|
44
|
+
*
|
|
45
|
+
* Displays:
|
|
46
|
+
* - File name (prominent, font-light text-[17px])
|
|
47
|
+
* - Directory (text-xs text-muted-foreground/50)
|
|
48
|
+
* - Count (text-2xl font-extralight)
|
|
49
|
+
* - Severity dots
|
|
50
|
+
*
|
|
51
|
+
* This component is designed to be used as the header content
|
|
52
|
+
* within ExpandableContainer or similar tile-based layouts.
|
|
53
|
+
*/
|
|
54
|
+
export declare function FileCardHeader({ node, isExpanded: _isExpanded, className }: FileCardHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
/**
|
|
56
|
+
* Render function for ExpandableContainer's renderHeader prop.
|
|
57
|
+
*
|
|
58
|
+
* This function returns a ReactNode that renders the FileCardHeader
|
|
59
|
+
* component. It's designed to be passed to ExpandableContainer.
|
|
60
|
+
*
|
|
61
|
+
* @param node - The FileNode to render a header for
|
|
62
|
+
* @param isExpanded - Whether the node is currently expanded
|
|
63
|
+
* @returns ReactNode rendering the file header
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* <ExpandableContainer
|
|
68
|
+
* node={fileNode}
|
|
69
|
+
* renderHeader={(node) => renderFileHeader(node, isExpanded)}
|
|
70
|
+
* // ... other props
|
|
71
|
+
* />
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
export declare function renderFileHeader(node: FileNode, isExpanded: boolean): ReactNode;
|
|
75
|
+
//# sourceMappingURL=FileNodeAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileNodeAdapter.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/FileNodeAdapter.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAMhE;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;AA2DnD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAWrE;AAMD,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,IAAI,EAAE,QAAQ,CAAC;IACf,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,mBAAmB,2CAoC/F;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,GAAG,SAAS,CAE/E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InspectorSidebar.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/InspectorSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAqE,MAAM,OAAO,CAAC;AAkB1F,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"InspectorSidebar.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/InspectorSidebar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAqE,MAAM,OAAO,CAAC;AAkB1F,wBAAgB,gBAAgB,sBAsW/B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export interface IssuesListProps {
|
|
2
2
|
/** Additional class name */
|
|
3
3
|
className?: string;
|
|
4
|
+
/** Available width for the tile grid (default: 350) */
|
|
5
|
+
availableWidth?: number;
|
|
4
6
|
}
|
|
5
|
-
export declare function IssuesList({ className }: IssuesListProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function IssuesList({ className, availableWidth }: IssuesListProps): import("react/jsx-runtime").JSX.Element;
|
|
6
8
|
export default IssuesList;
|
|
7
9
|
//# sourceMappingURL=IssuesList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssuesList.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/IssuesList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IssuesList.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/IssuesList.tsx"],"names":[],"mappings":"AA6EA,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAmCD,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,cAAwC,EAAE,EAAE,eAAe,2CA4UlG;AAsDD,eAAe,UAAU,CAAC"}
|
|
@@ -14,9 +14,11 @@ export interface RuleHeaderProps {
|
|
|
14
14
|
onToggleConfig: () => void;
|
|
15
15
|
/** Called to clear the rule filter */
|
|
16
16
|
onClear: () => void;
|
|
17
|
+
/** Whether to show the close button (default: true, set to false when inside expanded tile) */
|
|
18
|
+
showCloseButton?: boolean;
|
|
17
19
|
/** Additional class name */
|
|
18
20
|
className?: string;
|
|
19
21
|
}
|
|
20
|
-
export declare function RuleHeader({ ruleFilter, description, category, docsUrl, configExpanded, onToggleConfig, onClear, className, }: RuleHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function RuleHeader({ ruleFilter, description, category, docsUrl, configExpanded, onToggleConfig, onClear, showCloseButton, className, }: RuleHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
21
23
|
export default RuleHeader;
|
|
22
24
|
//# sourceMappingURL=RuleHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuleHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/RuleHeader.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAMpE,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,GACV,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"RuleHeader.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Inspector/RuleHeader.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAMpE,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,sCAAsC;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,wBAAgB,UAAU,CAAC,EACzB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EACd,OAAO,EACP,eAAsB,EACtB,SAAS,GACV,EAAE,eAAe,2CA6GjB;AAED,eAAe,UAAU,CAAC"}
|