@principal-ade/code-quality-panels 0.1.0 → 0.1.2
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/components/QualityEmptyState.d.ts +22 -0
- package/dist/components/QualityEmptyState.d.ts.map +1 -0
- package/dist/components/QualityHexagon.d.ts +19 -1
- package/dist/components/QualityHexagon.d.ts.map +1 -1
- package/dist/components/QualityHexagon.stories.d.ts +1 -0
- package/dist/components/QualityHexagon.stories.d.ts.map +1 -1
- package/dist/components/RepositoryQualityGrid.d.ts +82 -0
- package/dist/components/RepositoryQualityGrid.d.ts.map +1 -0
- package/dist/components/RepositoryQualityGrid.stories.d.ts +45 -0
- package/dist/components/RepositoryQualityGrid.stories.d.ts.map +1 -0
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/mocks/panelContext.d.ts.map +1 -1
- package/dist/panels/QualityHexagonPanel.d.ts.map +1 -1
- package/dist/panels/QualityHexagonPanel.stories.d.ts +10 -5
- package/dist/panels/QualityHexagonPanel.stories.d.ts.map +1 -1
- package/dist/panels/RepositoryQualityGridPanel.d.ts +8 -0
- package/dist/panels/RepositoryQualityGridPanel.d.ts.map +1 -0
- package/dist/panels/RepositoryQualityGridPanel.stories.d.ts +26 -0
- package/dist/panels/RepositoryQualityGridPanel.stories.d.ts.map +1 -0
- package/dist/panels.bundle.js +1308 -119
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Theme } from '@principal-ade/industry-theme';
|
|
3
|
+
interface QualityEmptyStateProps {
|
|
4
|
+
theme: Theme;
|
|
5
|
+
hasWorkflow: boolean;
|
|
6
|
+
}
|
|
7
|
+
declare const WORKFLOW_FILE_PATH = ".github/workflows/quality-lens.yml";
|
|
8
|
+
/**
|
|
9
|
+
* Check if a file path exists in a FileTree's allFiles array
|
|
10
|
+
*/
|
|
11
|
+
export declare function checkFileExistsInTree(treeData: {
|
|
12
|
+
allFiles?: Array<{
|
|
13
|
+
relativePath?: string;
|
|
14
|
+
path?: string;
|
|
15
|
+
}>;
|
|
16
|
+
} | undefined, targetPath: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Empty state component for when no quality data is available
|
|
19
|
+
*/
|
|
20
|
+
export declare const QualityEmptyState: React.FC<QualityEmptyStateProps>;
|
|
21
|
+
export { WORKFLOW_FILE_PATH };
|
|
22
|
+
//# sourceMappingURL=QualityEmptyState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QualityEmptyState.d.ts","sourceRoot":"","sources":["../../src/components/QualityEmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAE3D,UAAU,sBAAsB;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,QAAA,MAAM,kBAAkB,uCAAuC,CAAC;AAEhE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,EACpF,UAAU,EAAE,MAAM,GACjB,OAAO,CAST;AA6DD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8N9D,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -2,6 +2,13 @@ import type { Theme } from '@principal-ade/industry-theme';
|
|
|
2
2
|
import type { QualityMetrics } from '@principal-ai/codebase-composition';
|
|
3
3
|
export type { QualityMetrics };
|
|
4
4
|
export type QualityTier = 'none' | 'bronze' | 'silver' | 'gold' | 'platinum';
|
|
5
|
+
export type MetricKey = 'types' | 'documentation' | 'tests' | 'deadCode' | 'formatting' | 'linting';
|
|
6
|
+
export interface VertexHoverInfo {
|
|
7
|
+
key: MetricKey;
|
|
8
|
+
label: string;
|
|
9
|
+
value: number;
|
|
10
|
+
color: string;
|
|
11
|
+
}
|
|
5
12
|
interface QualityHexagonProps {
|
|
6
13
|
metrics: QualityMetrics;
|
|
7
14
|
tier: QualityTier;
|
|
@@ -9,8 +16,11 @@ interface QualityHexagonProps {
|
|
|
9
16
|
showLabels?: boolean;
|
|
10
17
|
showValues?: boolean;
|
|
11
18
|
className?: string;
|
|
19
|
+
onVertexHover?: (info: VertexHoverInfo) => void;
|
|
20
|
+
onVertexLeave?: () => void;
|
|
21
|
+
onVertexClick?: (info: VertexHoverInfo) => void;
|
|
12
22
|
}
|
|
13
|
-
export declare function QualityHexagon({ metrics, tier, theme, showLabels, showValues, className }: QualityHexagonProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function QualityHexagon({ metrics, tier, theme, showLabels, showValues, className, onVertexHover, onVertexLeave, onVertexClick, }: QualityHexagonProps): import("react/jsx-runtime").JSX.Element;
|
|
14
24
|
export declare function QualityHexagonCompact({ metrics, tier, theme, className }: Pick<QualityHexagonProps, 'metrics' | 'tier' | 'theme' | 'className'>): import("react/jsx-runtime").JSX.Element;
|
|
15
25
|
interface QualityHexagonDetailedProps extends Pick<QualityHexagonProps, 'metrics' | 'tier' | 'theme' | 'className'> {
|
|
16
26
|
packageName?: string;
|
|
@@ -19,6 +29,14 @@ interface QualityHexagonDetailedProps extends Pick<QualityHexagonProps, 'metrics
|
|
|
19
29
|
isRefreshing?: boolean;
|
|
20
30
|
}
|
|
21
31
|
export declare function QualityHexagonDetailed({ metrics, tier, theme, className, packageName, packageVersion, onRefresh, isRefreshing, }: QualityHexagonDetailedProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
interface QualityHexagonExpandableProps extends Pick<QualityHexagonProps, 'metrics' | 'tier' | 'theme' | 'className'> {
|
|
33
|
+
packageName?: string;
|
|
34
|
+
packageVersion?: string;
|
|
35
|
+
onRefresh?: () => void;
|
|
36
|
+
isRefreshing?: boolean;
|
|
37
|
+
defaultExpanded?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare function QualityHexagonExpandable({ metrics, tier, theme, className, packageName, packageVersion, onRefresh, isRefreshing, defaultExpanded, }: QualityHexagonExpandableProps): import("react/jsx-runtime").JSX.Element;
|
|
22
40
|
/**
|
|
23
41
|
* Calculate the quality tier based on metrics
|
|
24
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityHexagon.d.ts","sourceRoot":"","sources":["../../src/components/QualityHexagon.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"QualityHexagon.d.ts","sourceRoot":"","sources":["../../src/components/QualityHexagon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,YAAY,EAAE,cAAc,EAAE,CAAC;AAC/B,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAC7E,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;AAEpG,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD;AAmED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAkB,EAClB,UAAkB,EAClB,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,GACd,EAAE,mBAAmB,2CAgNrB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,EACV,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,2CAYvE;AAED,UAAU,2BAA4B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IACjH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAoB,GACrB,EAAE,2BAA2B,2CAoJ7B;AAED,UAAU,6BAA8B,SAAQ,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IACnH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,wBAAwB,CAAC,EACvC,OAAO,EACP,IAAI,EACJ,KAAK,EACL,SAAS,EACT,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAoB,EACpB,eAAuB,GACxB,EAAE,6BAA6B,2CAsM/B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW,CAYzE"}
|
|
@@ -50,4 +50,5 @@ export declare const Detailed: Story;
|
|
|
50
50
|
export declare const ProgressComparison: Story;
|
|
51
51
|
export declare const TeamComparison: Story;
|
|
52
52
|
export declare const AllTiers: Story;
|
|
53
|
+
export declare const Expandable: Story;
|
|
53
54
|
//# sourceMappingURL=QualityHexagon.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityHexagon.stories.d.ts","sourceRoot":"","sources":["../../src/components/QualityHexagon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"QualityHexagon.stories.d.ts","sourceRoot":"","sources":["../../src/components/QualityHexagon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAA2F,MAAM,kBAAkB,CAAC;AAG3I,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkC6B,CAAC;AAExC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA+CnC,eAAO,MAAM,OAAO,EAAE,KAarB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAYtB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAYlB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAYpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAYpB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAmBxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAoBxB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAkCnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAqBrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAoBtB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KA4ChC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAsC5B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KA2CtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KA8BxB,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { Theme } from '@principal-ade/industry-theme';
|
|
2
|
+
import type { QualityMetrics } from '@principal-ai/codebase-composition';
|
|
3
|
+
import { type QualityTier, type VertexHoverInfo, type MetricKey } from './QualityHexagon';
|
|
4
|
+
export type { VertexHoverInfo, MetricKey };
|
|
5
|
+
/**
|
|
6
|
+
* Represents a single package within a repository
|
|
7
|
+
*/
|
|
8
|
+
export interface PackageQualityItem {
|
|
9
|
+
/** Package name (e.g., "@acme/core" or "my-app") */
|
|
10
|
+
name: string;
|
|
11
|
+
/** Optional version string */
|
|
12
|
+
version?: string;
|
|
13
|
+
/** Quality metrics for this package */
|
|
14
|
+
metrics: QualityMetrics;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Represents a repository with one or more packages
|
|
18
|
+
*/
|
|
19
|
+
export interface RepositoryQualityItem {
|
|
20
|
+
/** Unique identifier for the repository */
|
|
21
|
+
id: string;
|
|
22
|
+
/** Repository name */
|
|
23
|
+
name: string;
|
|
24
|
+
/** Optional path to the repository */
|
|
25
|
+
path?: string;
|
|
26
|
+
/** Packages within this repository (monorepos have multiple) */
|
|
27
|
+
packages: PackageQualityItem[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A flattened item for display in the grid
|
|
31
|
+
*/
|
|
32
|
+
export interface FlatGridItem {
|
|
33
|
+
/** Unique key for React */
|
|
34
|
+
key: string;
|
|
35
|
+
/** Repository ID */
|
|
36
|
+
repositoryId: string;
|
|
37
|
+
/** Repository name */
|
|
38
|
+
repositoryName: string;
|
|
39
|
+
/** Package name */
|
|
40
|
+
packageName: string;
|
|
41
|
+
/** Optional version */
|
|
42
|
+
version?: string;
|
|
43
|
+
/** Quality metrics */
|
|
44
|
+
metrics: QualityMetrics;
|
|
45
|
+
/** Calculated tier */
|
|
46
|
+
tier: QualityTier;
|
|
47
|
+
}
|
|
48
|
+
interface RepositoryQualityGridProps {
|
|
49
|
+
/** Array of repositories with their packages */
|
|
50
|
+
repositories: RepositoryQualityItem[];
|
|
51
|
+
/** Theme from @principal-ade/industry-theme */
|
|
52
|
+
theme: Theme;
|
|
53
|
+
/** Callback when a grid item is clicked */
|
|
54
|
+
onItemClick?: (item: FlatGridItem) => void;
|
|
55
|
+
/** Callback when a hexagon vertex is clicked */
|
|
56
|
+
onVertexClick?: (item: FlatGridItem, vertex: VertexHoverInfo) => void;
|
|
57
|
+
/** Optional CSS class */
|
|
58
|
+
className?: string;
|
|
59
|
+
/** Show repository name in label (default: true) */
|
|
60
|
+
showRepositoryName?: boolean;
|
|
61
|
+
/** Show overall summary header (default: true) */
|
|
62
|
+
showSummary?: boolean;
|
|
63
|
+
}
|
|
64
|
+
interface RepositoryQualityGridItemProps {
|
|
65
|
+
/** The flattened item to display */
|
|
66
|
+
item: FlatGridItem;
|
|
67
|
+
/** Theme */
|
|
68
|
+
theme: Theme;
|
|
69
|
+
/** Click handler for the card */
|
|
70
|
+
onClick?: () => void;
|
|
71
|
+
/** Click handler for hexagon vertices */
|
|
72
|
+
onVertexClick?: (item: FlatGridItem, vertex: VertexHoverInfo) => void;
|
|
73
|
+
/** Show repository name in label */
|
|
74
|
+
showRepositoryName?: boolean;
|
|
75
|
+
/** Selected metric to display (from dropdown) */
|
|
76
|
+
selectedMetric?: MetricKey | null;
|
|
77
|
+
/** Optional CSS class */
|
|
78
|
+
className?: string;
|
|
79
|
+
}
|
|
80
|
+
export declare function RepositoryQualityGridItem({ item, theme, onClick, onVertexClick, showRepositoryName, selectedMetric, className, }: RepositoryQualityGridItemProps): import("react/jsx-runtime").JSX.Element;
|
|
81
|
+
export declare function RepositoryQualityGrid({ repositories, theme, onItemClick, onVertexClick, className, showRepositoryName, showSummary, }: RepositoryQualityGridProps): import("react/jsx-runtime").JSX.Element;
|
|
82
|
+
//# sourceMappingURL=RepositoryQualityGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryQualityGrid.d.ts","sourceRoot":"","sources":["../../src/components/RepositoryQualityGrid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAwC,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEhI,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AAW3C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,oBAAoB;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,OAAO,EAAE,cAAc,CAAC;IACxB,sBAAsB;IACtB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,UAAU,0BAA0B;IAClC,gDAAgD;IAChD,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,+CAA+C;IAC/C,KAAK,EAAE,KAAK,CAAC;IACb,2CAA2C;IAC3C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3C,gDAAgD;IAChD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACtE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,8BAA8B;IACtC,oCAAoC;IACpC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACtE,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iDAAiD;IACjD,cAAc,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyED,wBAAgB,yBAAyB,CAAC,EACxC,IAAI,EACJ,KAAK,EACL,OAAO,EACP,aAAa,EACb,kBAAyB,EACzB,cAAc,EACd,SAAS,GACV,EAAE,8BAA8B,2CAkJhC;AAgBD,wBAAgB,qBAAqB,CAAC,EACpC,YAAY,EACZ,KAAK,EACL,WAAW,EACX,aAAa,EACb,SAAS,EACT,kBAAyB,EACzB,WAAkB,GACnB,EAAE,0BAA0B,2CAsL5B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
import { RepositoryQualityGrid } from './RepositoryQualityGrid';
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: typeof RepositoryQualityGrid;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
backgrounds: {
|
|
9
|
+
default: string;
|
|
10
|
+
values: {
|
|
11
|
+
name: string;
|
|
12
|
+
value: string;
|
|
13
|
+
}[];
|
|
14
|
+
};
|
|
15
|
+
docs: {
|
|
16
|
+
description: {
|
|
17
|
+
component: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
tags: string[];
|
|
22
|
+
argTypes: {
|
|
23
|
+
showRepositoryName: {
|
|
24
|
+
control: "boolean";
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
showSummary: {
|
|
28
|
+
control: "boolean";
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export default meta;
|
|
34
|
+
type Story = StoryObj<typeof meta>;
|
|
35
|
+
export declare const Default: Story;
|
|
36
|
+
export declare const MonorepoPackages: Story;
|
|
37
|
+
export declare const MixedRepositories: Story;
|
|
38
|
+
export declare const LargeOrganization: Story;
|
|
39
|
+
export declare const WithoutSummary: Story;
|
|
40
|
+
export declare const WithClickHandler: Story;
|
|
41
|
+
export declare const WithVertexClickHandler: Story;
|
|
42
|
+
export declare const SingleRepository: Story;
|
|
43
|
+
export declare const EmptyState: Story;
|
|
44
|
+
export declare const VariedQualityTiers: Story;
|
|
45
|
+
//# sourceMappingURL=RepositoryQualityGrid.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryQualityGrid.stories.d.ts","sourceRoot":"","sources":["../../src/components/RepositoryQualityGrid.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAyB,MAAM,yBAAyB,CAAC;AAGvF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BoC,CAAC;AAE/C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AA6JnC,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAc9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAc/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAc/B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAc5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAiB9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAiBpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAc9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAcxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAiEhC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export { QualityHexagon, QualityHexagonCompact, QualityHexagonDetailed, calculateQualityTier, type QualityMetrics, type QualityTier, } from './QualityHexagon';
|
|
1
|
+
export { QualityHexagon, QualityHexagonCompact, QualityHexagonDetailed, QualityHexagonExpandable, calculateQualityTier, type QualityMetrics, type QualityTier, type MetricKey, type VertexHoverInfo, } from './QualityHexagon';
|
|
2
|
+
export { QualityEmptyState, checkFileExistsInTree, WORKFLOW_FILE_PATH, } from './QualityEmptyState';
|
|
3
|
+
export { RepositoryQualityGrid, RepositoryQualityGridItem, type RepositoryQualityItem, type PackageQualityItem, type FlatGridItem, } from './RepositoryQualityGrid';
|
|
2
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,yBAAyB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare const onPackageLoad: () => Promise<void>;
|
|
|
12
12
|
* Optional: Called once when the package is unloaded.
|
|
13
13
|
*/
|
|
14
14
|
export declare const onPackageUnload: () => Promise<void>;
|
|
15
|
-
export { QualityHexagon, QualityHexagonCompact, QualityHexagonDetailed, calculateQualityTier, type QualityMetrics, type QualityTier, } from './components';
|
|
15
|
+
export { QualityHexagon, QualityHexagonCompact, QualityHexagonDetailed, QualityHexagonExpandable, calculateQualityTier, type QualityMetrics, type QualityTier, RepositoryQualityGrid, RepositoryQualityGridItem, type RepositoryQualityItem, type PackageQualityItem, type FlatGridItem, } from './components';
|
|
16
16
|
export { QualityHexagonPanel } from './panels/QualityHexagonPanel';
|
|
17
|
+
export { RepositoryQualityGridPanel } from './panels/RepositoryQualityGridPanel';
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,SAAS,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,eAAe,EAwDnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,qBAEzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBAE3B,CAAC;AAGF,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAEhB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EAIlB,MAAM,UAAU,CAAC;AA+BlB;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAuHF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,YAAY,CAAC,KAChC,YAkBD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1C,
|
|
1
|
+
{"version":3,"file":"panelContext.d.ts","sourceRoot":"","sources":["../../src/mocks/panelContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EAIlB,MAAM,UAAU,CAAC;AA+BlB;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,iBAAiB,CAAC,KACrC,iBAuHF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,OAAO,CAAC,YAAY,CAAC,KAChC,YAkBD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,iBAwCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1C,CAmCA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,KAAG,mBAqCH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityHexagonPanel.d.ts","sourceRoot":"","sources":["../../src/panels/QualityHexagonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"QualityHexagonPanel.d.ts","sourceRoot":"","sources":["../../src/panels/QualityHexagonPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAoPpD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAM7D,CAAC"}
|
|
@@ -15,11 +15,6 @@ declare const meta: {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
tags: string[];
|
|
18
|
-
decorators: ((Story: import("storybook/internal/csf").PartialStoryFn<import("@storybook/react").ReactRenderer, {
|
|
19
|
-
context: import("@principal-ade/panel-framework-core").PanelContextValue;
|
|
20
|
-
actions: import("@principal-ade/panel-framework-core").PanelActions;
|
|
21
|
-
events: import("@principal-ade/panel-framework-core").PanelEventEmitter;
|
|
22
|
-
}>) => import("react/jsx-runtime").JSX.Element)[];
|
|
23
18
|
args: {
|
|
24
19
|
context: import("@principal-ade/panel-framework-core").PanelContextValue;
|
|
25
20
|
actions: import("@principal-ade/panel-framework-core").PanelActions;
|
|
@@ -56,4 +51,14 @@ export declare const NoRepository: Story;
|
|
|
56
51
|
* Loading state
|
|
57
52
|
*/
|
|
58
53
|
export declare const Loading: Story;
|
|
54
|
+
/**
|
|
55
|
+
* Empty state - no workflow installed
|
|
56
|
+
* Shows setup instructions for installing the Quality Lens CLI or GitHub Action
|
|
57
|
+
*/
|
|
58
|
+
export declare const EmptyNoWorkflow: Story;
|
|
59
|
+
/**
|
|
60
|
+
* Empty state - workflow installed, waiting for data
|
|
61
|
+
* Shows that the workflow is detected and waiting for the first CI run
|
|
62
|
+
*/
|
|
63
|
+
export declare const EmptyWithWorkflow: Story;
|
|
59
64
|
//# sourceMappingURL=QualityHexagonPanel.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityHexagonPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/QualityHexagonPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAU5D;;;GAGG;AACH,QAAA,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"QualityHexagonPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/QualityHexagonPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAU5D;;;GAGG;AACH,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;CAkBkC,CAAC;AAE7C,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAwD7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAuDzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAwD/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAgFtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAuB1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KA6BrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAwD7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAyD/B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PanelComponentProps } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* RepositoryQualityGridPanel - A panel for visualizing quality metrics
|
|
5
|
+
* across multiple repositories in a flat grid layout.
|
|
6
|
+
*/
|
|
7
|
+
export declare const RepositoryQualityGridPanel: React.FC<PanelComponentProps>;
|
|
8
|
+
//# sourceMappingURL=RepositoryQualityGridPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryQualityGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/RepositoryQualityGridPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAsMpD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAMpE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { StoryObj } from '@storybook/react';
|
|
2
|
+
declare const meta: {
|
|
3
|
+
title: string;
|
|
4
|
+
component: import("react").FC<import("@principal-ade/panel-framework-core").PanelComponentProps>;
|
|
5
|
+
parameters: {
|
|
6
|
+
layout: string;
|
|
7
|
+
backgrounds: {
|
|
8
|
+
default: string;
|
|
9
|
+
values: {
|
|
10
|
+
name: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}[];
|
|
13
|
+
};
|
|
14
|
+
docs: {
|
|
15
|
+
description: {
|
|
16
|
+
component: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
tags: string[];
|
|
21
|
+
};
|
|
22
|
+
export default meta;
|
|
23
|
+
type Story = StoryObj<typeof meta>;
|
|
24
|
+
export declare const Default: Story;
|
|
25
|
+
export declare const InContainer: Story;
|
|
26
|
+
//# sourceMappingURL=RepositoryQualityGridPanel.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryQualityGridPanel.stories.d.ts","sourceRoot":"","sources":["../../src/panels/RepositoryQualityGridPanel.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAmByC,CAAC;AAEpD,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KASrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAgBzB,CAAC"}
|