@teambit/component.ui.component-compare.context 0.0.125 → 0.0.127
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/component-compare-context.ts +3 -0
- package/dist/component-compare-context.d.ts +3 -0
- package/dist/component-compare-context.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/inline-compare-empty.d.ts +19 -0
- package/dist/inline-compare-empty.js +57 -0
- package/dist/inline-compare-empty.js.map +1 -0
- package/index.ts +2 -0
- package/inline-compare-empty.tsx +85 -0
- package/package.json +4 -3
- /package/dist/{preview-1779204000743.js → preview-1785362864561.js} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ComponentCompareModel } from '@teambit/component.ui.component-compare.models.component-compare-model';
|
|
2
2
|
import type { ComponentCompareState } from '@teambit/component.ui.component-compare.models.component-compare-state';
|
|
3
3
|
import type { ComponentCompareHooks } from '@teambit/component.ui.component-compare.models.component-compare-hooks';
|
|
4
|
+
import type { APIDiffResult } from '@teambit/semantics.ui.api-diff-view';
|
|
4
5
|
import { createContext, useContext } from 'react';
|
|
5
6
|
|
|
6
7
|
export type StateAndHooks = {
|
|
@@ -16,6 +17,8 @@ export type ComponentCompareContextType = ComponentCompareModel &
|
|
|
16
17
|
StateAndHooks & {
|
|
17
18
|
baseContext?: StateAndHooks;
|
|
18
19
|
compareContext?: StateAndHooks;
|
|
20
|
+
/** API diff between base and compare — undefined while loading, null when not computable */
|
|
21
|
+
apiDiffResult?: APIDiffResult | null;
|
|
19
22
|
} & ViewState;
|
|
20
23
|
|
|
21
24
|
export const ComponentCompareContext: React.Context<ComponentCompareContextType | undefined> = createContext<
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ComponentCompareModel } from '@teambit/component.ui.component-compare.models.component-compare-model';
|
|
2
2
|
import type { ComponentCompareState } from '@teambit/component.ui.component-compare.models.component-compare-state';
|
|
3
3
|
import type { ComponentCompareHooks } from '@teambit/component.ui.component-compare.models.component-compare-hooks';
|
|
4
|
+
import type { APIDiffResult } from '@teambit/semantics.ui.api-diff-view';
|
|
4
5
|
export type StateAndHooks = {
|
|
5
6
|
state?: ComponentCompareState;
|
|
6
7
|
hooks?: ComponentCompareHooks;
|
|
@@ -12,6 +13,8 @@ export type ViewState = {
|
|
|
12
13
|
export type ComponentCompareContextType = ComponentCompareModel & StateAndHooks & {
|
|
13
14
|
baseContext?: StateAndHooks;
|
|
14
15
|
compareContext?: StateAndHooks;
|
|
16
|
+
/** API diff between base and compare — undefined while loading, null when not computable */
|
|
17
|
+
apiDiffResult?: APIDiffResult | null;
|
|
15
18
|
} & ViewState;
|
|
16
19
|
export declare const ComponentCompareContext: React.Context<ComponentCompareContextType | undefined>;
|
|
17
20
|
export declare const useComponentCompare: () => ComponentCompareContextType | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-compare-context.js","sourceRoot":"","sources":["../component-compare-context.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"component-compare-context.js","sourceRoot":"","sources":["../component-compare-context.ts"],"names":[],"mappings":";;;AAIA,iCAAkD;AAmBrC,QAAA,uBAAuB,GAA2D,IAAA,qBAAa,EAE1G,SAAS,CAAC,CAAC;AAEN,MAAM,mBAAmB,GAAkD,GAAG,EAAE;IACrF,MAAM,uBAAuB,GAAG,IAAA,kBAAU,EAAC,+BAAuB,CAAC,CAAC;IACpE,OAAO,uBAAuB,CAAC;AACjC,CAAC,CAAC;AAHW,QAAA,mBAAmB,uBAG9B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { ComponentCompareContext, useComponentCompare } from './component-compare-context';
|
|
2
2
|
export type { StateAndHooks, ComponentCompareContextType } from './component-compare-context';
|
|
3
|
+
export { InlineCompareEmpty } from './inline-compare-empty';
|
|
4
|
+
export type { InlineCompareEmptyProps } from './inline-compare-empty';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useComponentCompare = exports.ComponentCompareContext = void 0;
|
|
3
|
+
exports.InlineCompareEmpty = exports.useComponentCompare = exports.ComponentCompareContext = void 0;
|
|
4
4
|
var component_compare_context_1 = require("./component-compare-context");
|
|
5
5
|
Object.defineProperty(exports, "ComponentCompareContext", { enumerable: true, get: function () { return component_compare_context_1.ComponentCompareContext; } });
|
|
6
6
|
Object.defineProperty(exports, "useComponentCompare", { enumerable: true, get: function () { return component_compare_context_1.useComponentCompare; } });
|
|
7
|
+
var inline_compare_empty_1 = require("./inline-compare-empty");
|
|
8
|
+
Object.defineProperty(exports, "InlineCompareEmpty", { enumerable: true, get: function () { return inline_compare_empty_1.InlineCompareEmpty; } });
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,yEAA2F;AAAlF,oIAAA,uBAAuB,OAAA;AAAE,gIAAA,mBAAmB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,yEAA2F;AAAlF,oIAAA,uBAAuB,OAAA;AAAE,gIAAA,mBAAmB,OAAA;AAErD,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type InlineCompareEmptyProps = {
|
|
3
|
+
/** primary message, e.g. "No code changes" / "No changes to compare" */
|
|
4
|
+
message: string;
|
|
5
|
+
/** optional secondary line with more context */
|
|
6
|
+
hint?: string;
|
|
7
|
+
/**
|
|
8
|
+
* when both are provided, a base → compare version pill row is rendered. identical versions are
|
|
9
|
+
* tinted neutral to signal "same version", different ones are color-coded (base neutral, compare accent).
|
|
10
|
+
*/
|
|
11
|
+
baseVersion?: string;
|
|
12
|
+
compareVersion?: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Shared blank state for the compare surfaces (inline tabs, the single-component compare page,
|
|
16
|
+
* and lane-compare). Renders in place of an empty body so a no-change comparison reads as an
|
|
17
|
+
* intentional "nothing changed" state instead of a blank pane.
|
|
18
|
+
*/
|
|
19
|
+
export declare function InlineCompareEmpty({ message, hint, baseVersion, compareVersion }: InlineCompareEmptyProps): React.JSX.Element;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InlineCompareEmpty = InlineCompareEmpty;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const ACCENT = 'var(--bit-accent-color, #6c5ce7)';
|
|
9
|
+
const MUTED = 'var(--on-background-medium-color, #a0aec0)';
|
|
10
|
+
const SECONDARY = 'var(--on-surface-medium-color, #707279)';
|
|
11
|
+
const PRIMARY = 'var(--on-surface-color, #1a1a2e)';
|
|
12
|
+
const BORDER = 'var(--border-medium-color, #e8ecf0)';
|
|
13
|
+
const SURFACE = 'var(--surface-color, #fff)';
|
|
14
|
+
function VersionPill({ version, tone }) {
|
|
15
|
+
const accent = tone === 'compare';
|
|
16
|
+
return (react_1.default.createElement("span", { style: {
|
|
17
|
+
fontFamily: 'var(--font-family-monospace, ui-monospace, SFMono-Regular, Menlo, monospace)',
|
|
18
|
+
fontSize: 13,
|
|
19
|
+
fontWeight: 600,
|
|
20
|
+
padding: '4px 10px',
|
|
21
|
+
borderRadius: 8,
|
|
22
|
+
border: `1px solid ${accent ? ACCENT : BORDER}`,
|
|
23
|
+
background: accent ? 'rgba(108, 92, 231, 0.06)' : SURFACE,
|
|
24
|
+
color: accent ? ACCENT : PRIMARY,
|
|
25
|
+
whiteSpace: 'nowrap',
|
|
26
|
+
} }, version));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Shared blank state for the compare surfaces (inline tabs, the single-component compare page,
|
|
30
|
+
* and lane-compare). Renders in place of an empty body so a no-change comparison reads as an
|
|
31
|
+
* intentional "nothing changed" state instead of a blank pane.
|
|
32
|
+
*/
|
|
33
|
+
function InlineCompareEmpty({ message, hint, baseVersion, compareVersion }) {
|
|
34
|
+
const hasPills = !!baseVersion && !!compareVersion;
|
|
35
|
+
const identical = hasPills && baseVersion === compareVersion;
|
|
36
|
+
return (react_1.default.createElement("div", { style: {
|
|
37
|
+
display: 'flex',
|
|
38
|
+
flexDirection: 'column',
|
|
39
|
+
alignItems: 'center',
|
|
40
|
+
justifyContent: 'center',
|
|
41
|
+
gap: 12,
|
|
42
|
+
padding: '48px 16px',
|
|
43
|
+
textAlign: 'center',
|
|
44
|
+
} },
|
|
45
|
+
react_1.default.createElement("span", { style: { fontSize: 15, fontWeight: 600, color: PRIMARY } }, message),
|
|
46
|
+
hasPills && (react_1.default.createElement("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 4 } },
|
|
47
|
+
react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 12 } },
|
|
48
|
+
react_1.default.createElement(VersionPill, { version: baseVersion, tone: identical ? 'neutral' : 'base' }),
|
|
49
|
+
react_1.default.createElement("span", { style: { color: MUTED, fontSize: 16 } }, "\u2192"),
|
|
50
|
+
react_1.default.createElement(VersionPill, { version: compareVersion, tone: identical ? 'neutral' : 'compare' })),
|
|
51
|
+
react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: 12, fontSize: 11, color: MUTED } },
|
|
52
|
+
react_1.default.createElement("span", { style: { minWidth: 64 } }, "base"),
|
|
53
|
+
react_1.default.createElement("span", { style: { width: 16 } }),
|
|
54
|
+
react_1.default.createElement("span", { style: { minWidth: 64 } }, "compare")))),
|
|
55
|
+
hint && react_1.default.createElement("span", { style: { fontSize: 13, color: SECONDARY, maxWidth: 440, lineHeight: 1.5 } }, hint)));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=inline-compare-empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-compare-empty.js","sourceRoot":"","sources":["../inline-compare-empty.tsx"],"names":[],"mappings":"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"}
|
package/index.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { ComponentCompareContext, useComponentCompare } from './component-compare-context';
|
|
2
2
|
export type { StateAndHooks, ComponentCompareContextType } from './component-compare-context';
|
|
3
|
+
export { InlineCompareEmpty } from './inline-compare-empty';
|
|
4
|
+
export type { InlineCompareEmptyProps } from './inline-compare-empty';
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
export type InlineCompareEmptyProps = {
|
|
4
|
+
/** primary message, e.g. "No code changes" / "No changes to compare" */
|
|
5
|
+
message: string;
|
|
6
|
+
/** optional secondary line with more context */
|
|
7
|
+
hint?: string;
|
|
8
|
+
/**
|
|
9
|
+
* when both are provided, a base → compare version pill row is rendered. identical versions are
|
|
10
|
+
* tinted neutral to signal "same version", different ones are color-coded (base neutral, compare accent).
|
|
11
|
+
*/
|
|
12
|
+
baseVersion?: string;
|
|
13
|
+
compareVersion?: string;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const ACCENT = 'var(--bit-accent-color, #6c5ce7)';
|
|
17
|
+
const MUTED = 'var(--on-background-medium-color, #a0aec0)';
|
|
18
|
+
const SECONDARY = 'var(--on-surface-medium-color, #707279)';
|
|
19
|
+
const PRIMARY = 'var(--on-surface-color, #1a1a2e)';
|
|
20
|
+
const BORDER = 'var(--border-medium-color, #e8ecf0)';
|
|
21
|
+
const SURFACE = 'var(--surface-color, #fff)';
|
|
22
|
+
|
|
23
|
+
function VersionPill({ version, tone }: { version: string; tone: 'neutral' | 'base' | 'compare' }) {
|
|
24
|
+
const accent = tone === 'compare';
|
|
25
|
+
return (
|
|
26
|
+
<span
|
|
27
|
+
style={{
|
|
28
|
+
fontFamily: 'var(--font-family-monospace, ui-monospace, SFMono-Regular, Menlo, monospace)',
|
|
29
|
+
fontSize: 13,
|
|
30
|
+
fontWeight: 600,
|
|
31
|
+
padding: '4px 10px',
|
|
32
|
+
borderRadius: 8,
|
|
33
|
+
border: `1px solid ${accent ? ACCENT : BORDER}`,
|
|
34
|
+
background: accent ? 'rgba(108, 92, 231, 0.06)' : SURFACE,
|
|
35
|
+
color: accent ? ACCENT : PRIMARY,
|
|
36
|
+
whiteSpace: 'nowrap',
|
|
37
|
+
}}
|
|
38
|
+
>
|
|
39
|
+
{version}
|
|
40
|
+
</span>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Shared blank state for the compare surfaces (inline tabs, the single-component compare page,
|
|
46
|
+
* and lane-compare). Renders in place of an empty body so a no-change comparison reads as an
|
|
47
|
+
* intentional "nothing changed" state instead of a blank pane.
|
|
48
|
+
*/
|
|
49
|
+
export function InlineCompareEmpty({ message, hint, baseVersion, compareVersion }: InlineCompareEmptyProps) {
|
|
50
|
+
const hasPills = !!baseVersion && !!compareVersion;
|
|
51
|
+
const identical = hasPills && baseVersion === compareVersion;
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<div
|
|
55
|
+
style={{
|
|
56
|
+
display: 'flex',
|
|
57
|
+
flexDirection: 'column',
|
|
58
|
+
alignItems: 'center',
|
|
59
|
+
justifyContent: 'center',
|
|
60
|
+
gap: 12,
|
|
61
|
+
padding: '48px 16px',
|
|
62
|
+
textAlign: 'center',
|
|
63
|
+
}}
|
|
64
|
+
>
|
|
65
|
+
<span style={{ fontSize: 15, fontWeight: 600, color: PRIMARY }}>{message}</span>
|
|
66
|
+
|
|
67
|
+
{hasPills && (
|
|
68
|
+
<div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 4 }}>
|
|
69
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: 12 }}>
|
|
70
|
+
<VersionPill version={baseVersion as string} tone={identical ? 'neutral' : 'base'} />
|
|
71
|
+
<span style={{ color: MUTED, fontSize: 16 }}>→</span>
|
|
72
|
+
<VersionPill version={compareVersion as string} tone={identical ? 'neutral' : 'compare'} />
|
|
73
|
+
</div>
|
|
74
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: 12, fontSize: 11, color: MUTED }}>
|
|
75
|
+
<span style={{ minWidth: 64 }}>base</span>
|
|
76
|
+
<span style={{ width: 16 }} />
|
|
77
|
+
<span style={{ minWidth: 64 }}>compare</span>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
)}
|
|
81
|
+
|
|
82
|
+
{hint && <span style={{ fontSize: 13, color: SECONDARY, maxWidth: 440, lineHeight: 1.5 }}>{hint}</span>}
|
|
83
|
+
</div>
|
|
84
|
+
);
|
|
85
|
+
}
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teambit/component.ui.component-compare.context",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.127",
|
|
4
4
|
"homepage": "https://bit.cloud/teambit/component/ui/component-compare/context",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"componentId": {
|
|
7
7
|
"scope": "teambit.component",
|
|
8
8
|
"name": "ui/component-compare/context",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.127"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"core-js": "^3.0.0",
|
|
13
13
|
"@teambit/component.ui.component-compare.models.component-compare-hooks": "0.0.11",
|
|
14
14
|
"@teambit/component.ui.component-compare.models.component-compare-model": "0.0.112",
|
|
15
|
-
"@teambit/component.ui.component-compare.models.component-compare-state": "0.0.7"
|
|
15
|
+
"@teambit/component.ui.component-compare.models.component-compare-state": "0.0.7",
|
|
16
|
+
"@teambit/semantics.ui.api-diff-view": "0.0.2"
|
|
16
17
|
},
|
|
17
18
|
"devDependencies": {
|
|
18
19
|
"@types/react": "^19.0.0",
|
|
File without changes
|