@teambit/api-reference 1.0.926 → 1.0.928
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/api-compare.module.scss +250 -0
- package/api-compare.section.tsx +26 -0
- package/api-compare.tsx +202 -0
- package/api-reference.ui.runtime.tsx +10 -2
- package/dist/api-compare.d.ts +3 -0
- package/dist/api-compare.js +221 -0
- package/dist/api-compare.js.map +1 -0
- package/dist/api-compare.module.scss +250 -0
- package/dist/api-compare.section.d.ts +20 -0
- package/dist/api-compare.section.js +45 -0
- package/dist/api-compare.section.js.map +1 -0
- package/dist/api-compare.types.d.ts +33 -0
- package/dist/api-compare.types.js +3 -0
- package/dist/api-compare.types.js.map +1 -0
- package/dist/api-reference.ui.runtime.d.ts +2 -1
- package/dist/api-reference.ui.runtime.js +21 -2
- package/dist/api-reference.ui.runtime.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/package.json +12 -8
- /package/dist/{preview-1774991821432.js → preview-1775143204644.js} +0 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.APICompare = APICompare;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = _interopRequireDefault(require("react"));
|
|
9
|
+
_react = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _componentUiComponentCompare() {
|
|
15
|
+
const data = require("@teambit/component.ui.component-compare.context");
|
|
16
|
+
_componentUiComponentCompare = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _apiCompareModule() {
|
|
22
|
+
const data = _interopRequireDefault(require("./api-compare.module.scss"));
|
|
23
|
+
_apiCompareModule = function () {
|
|
24
|
+
return data;
|
|
25
|
+
};
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
29
|
+
function impactClass(impact) {
|
|
30
|
+
switch (impact) {
|
|
31
|
+
case 'BREAKING':
|
|
32
|
+
return _apiCompareModule().default.removedBadge;
|
|
33
|
+
case 'NON_BREAKING':
|
|
34
|
+
return _apiCompareModule().default.addedBadge;
|
|
35
|
+
case 'PATCH':
|
|
36
|
+
return _apiCompareModule().default.modifiedBadge;
|
|
37
|
+
default:
|
|
38
|
+
return _apiCompareModule().default.summaryBadge;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function impactLabel(impact) {
|
|
42
|
+
switch (impact) {
|
|
43
|
+
case 'BREAKING':
|
|
44
|
+
return 'Breaking';
|
|
45
|
+
case 'NON_BREAKING':
|
|
46
|
+
return 'Non-breaking';
|
|
47
|
+
case 'PATCH':
|
|
48
|
+
return 'Patch';
|
|
49
|
+
default:
|
|
50
|
+
return impact;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function getStatusClass(status) {
|
|
54
|
+
switch (status) {
|
|
55
|
+
case 'ADDED':
|
|
56
|
+
return _apiCompareModule().default.statusAdded;
|
|
57
|
+
case 'REMOVED':
|
|
58
|
+
return _apiCompareModule().default.statusRemoved;
|
|
59
|
+
case 'MODIFIED':
|
|
60
|
+
return _apiCompareModule().default.statusModified;
|
|
61
|
+
default:
|
|
62
|
+
return _apiCompareModule().default.statusBadge;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function getStatusLabel(status) {
|
|
66
|
+
switch (status) {
|
|
67
|
+
case 'ADDED':
|
|
68
|
+
return '+ Added';
|
|
69
|
+
case 'REMOVED':
|
|
70
|
+
return '- Removed';
|
|
71
|
+
case 'MODIFIED':
|
|
72
|
+
return '~ Modified';
|
|
73
|
+
default:
|
|
74
|
+
return status;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function dotClass(impact) {
|
|
78
|
+
switch (impact) {
|
|
79
|
+
case 'BREAKING':
|
|
80
|
+
return _apiCompareModule().default.dotBreaking;
|
|
81
|
+
case 'NON_BREAKING':
|
|
82
|
+
return _apiCompareModule().default.dotNonBreaking;
|
|
83
|
+
default:
|
|
84
|
+
return _apiCompareModule().default.dotPatch;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function DetailItem({
|
|
88
|
+
detail
|
|
89
|
+
}) {
|
|
90
|
+
return /*#__PURE__*/_react().default.createElement("li", {
|
|
91
|
+
className: _apiCompareModule().default.detailItem
|
|
92
|
+
}, /*#__PURE__*/_react().default.createElement("span", {
|
|
93
|
+
className: dotClass(detail.impact)
|
|
94
|
+
}), /*#__PURE__*/_react().default.createElement("span", {
|
|
95
|
+
className: _apiCompareModule().default.detailDescription
|
|
96
|
+
}, detail.description));
|
|
97
|
+
}
|
|
98
|
+
function APIDiffEntry({
|
|
99
|
+
change
|
|
100
|
+
}) {
|
|
101
|
+
const [expanded, setExpanded] = _react().default.useState(change.status === 'MODIFIED');
|
|
102
|
+
const [showSignatures, setShowSignatures] = _react().default.useState(false);
|
|
103
|
+
const hasBody = change.status === 'MODIFIED' ? change.changes && change.changes.length > 0 || change.baseSignature || change.compareSignature : change.baseSignature || change.compareSignature;
|
|
104
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
105
|
+
className: _apiCompareModule().default.diffEntry
|
|
106
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
107
|
+
className: _apiCompareModule().default.diffEntryHeader,
|
|
108
|
+
onClick: () => hasBody && setExpanded(!expanded),
|
|
109
|
+
role: "button",
|
|
110
|
+
tabIndex: 0,
|
|
111
|
+
"aria-expanded": hasBody ? expanded : undefined,
|
|
112
|
+
onKeyDown: e => {
|
|
113
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
hasBody && setExpanded(!expanded);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}, /*#__PURE__*/_react().default.createElement("span", {
|
|
119
|
+
className: getStatusClass(change.status)
|
|
120
|
+
}, getStatusLabel(change.status)), /*#__PURE__*/_react().default.createElement("span", {
|
|
121
|
+
className: _apiCompareModule().default.exportName
|
|
122
|
+
}, change.exportName), /*#__PURE__*/_react().default.createElement("span", {
|
|
123
|
+
className: _apiCompareModule().default.schemaType
|
|
124
|
+
}, change.schemaType), /*#__PURE__*/_react().default.createElement("span", {
|
|
125
|
+
className: `${impactClass(change.impact)} ${_apiCompareModule().default.impactBadge}`
|
|
126
|
+
}, impactLabel(change.impact)), hasBody && /*#__PURE__*/_react().default.createElement("span", {
|
|
127
|
+
className: expanded ? _apiCompareModule().default.expandIconOpen : _apiCompareModule().default.expandIcon
|
|
128
|
+
}, "\u25B6")), expanded && hasBody && /*#__PURE__*/_react().default.createElement("div", {
|
|
129
|
+
className: _apiCompareModule().default.diffEntryBody
|
|
130
|
+
}, change.status === 'MODIFIED' && change.changes && change.changes.length > 0 && /*#__PURE__*/_react().default.createElement("ul", {
|
|
131
|
+
className: _apiCompareModule().default.detailsList
|
|
132
|
+
}, change.changes.map((detail, i) => /*#__PURE__*/_react().default.createElement(DetailItem, {
|
|
133
|
+
key: `${detail.changeKind}-${i}`,
|
|
134
|
+
detail: detail
|
|
135
|
+
}))), change.status === 'MODIFIED' && (change.baseSignature || change.compareSignature) && /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, /*#__PURE__*/_react().default.createElement("button", {
|
|
136
|
+
className: _apiCompareModule().default.toggleSignatures,
|
|
137
|
+
onClick: () => setShowSignatures(!showSignatures)
|
|
138
|
+
}, showSignatures ? '▼ Hide signatures' : '▶ Show signatures'), showSignatures && /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, change.baseSignature && /*#__PURE__*/_react().default.createElement("div", null, /*#__PURE__*/_react().default.createElement("div", {
|
|
139
|
+
className: _apiCompareModule().default.signatureLabel
|
|
140
|
+
}, "Base"), /*#__PURE__*/_react().default.createElement("div", {
|
|
141
|
+
className: _apiCompareModule().default.signatureRemoved
|
|
142
|
+
}, change.baseSignature)), change.compareSignature && /*#__PURE__*/_react().default.createElement("div", null, /*#__PURE__*/_react().default.createElement("div", {
|
|
143
|
+
className: _apiCompareModule().default.signatureLabel
|
|
144
|
+
}, "Compare"), /*#__PURE__*/_react().default.createElement("div", {
|
|
145
|
+
className: _apiCompareModule().default.signatureBlock
|
|
146
|
+
}, change.compareSignature)))), change.status === 'ADDED' && change.compareSignature && /*#__PURE__*/_react().default.createElement("div", {
|
|
147
|
+
className: _apiCompareModule().default.signatureBlock
|
|
148
|
+
}, change.compareSignature), change.status === 'REMOVED' && change.baseSignature && /*#__PURE__*/_react().default.createElement("div", {
|
|
149
|
+
className: _apiCompareModule().default.signatureRemoved
|
|
150
|
+
}, change.baseSignature)));
|
|
151
|
+
}
|
|
152
|
+
function ChangeSection({
|
|
153
|
+
title,
|
|
154
|
+
changes
|
|
155
|
+
}) {
|
|
156
|
+
if (changes.length === 0) return null;
|
|
157
|
+
const sorted = [...changes].sort((a, b) => {
|
|
158
|
+
const order = {
|
|
159
|
+
REMOVED: 0,
|
|
160
|
+
MODIFIED: 1,
|
|
161
|
+
ADDED: 2
|
|
162
|
+
};
|
|
163
|
+
return (order[a.status] ?? 3) - (order[b.status] ?? 3);
|
|
164
|
+
});
|
|
165
|
+
return /*#__PURE__*/_react().default.createElement(_react().default.Fragment, null, /*#__PURE__*/_react().default.createElement("h3", {
|
|
166
|
+
className: _apiCompareModule().default.sectionTitle
|
|
167
|
+
}, title), /*#__PURE__*/_react().default.createElement("div", {
|
|
168
|
+
className: _apiCompareModule().default.changeList
|
|
169
|
+
}, sorted.map(change => /*#__PURE__*/_react().default.createElement(APIDiffEntry, {
|
|
170
|
+
key: `${change.visibility}-${change.status}-${change.exportName}`,
|
|
171
|
+
change: change
|
|
172
|
+
}))));
|
|
173
|
+
}
|
|
174
|
+
function APICompare() {
|
|
175
|
+
const compareContext = (0, _componentUiComponentCompare().useComponentCompare)();
|
|
176
|
+
const apiDiffResult = compareContext?.apiDiffResult;
|
|
177
|
+
if (apiDiffResult === undefined) {
|
|
178
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
179
|
+
className: _apiCompareModule().default.emptyState
|
|
180
|
+
}, "Loading API diff...");
|
|
181
|
+
}
|
|
182
|
+
if (!apiDiffResult || !apiDiffResult.hasChanges) {
|
|
183
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
184
|
+
className: _apiCompareModule().default.emptyState
|
|
185
|
+
}, "No API changes between these versions");
|
|
186
|
+
}
|
|
187
|
+
const {
|
|
188
|
+
publicChanges,
|
|
189
|
+
internalChanges,
|
|
190
|
+
added,
|
|
191
|
+
removed,
|
|
192
|
+
modified,
|
|
193
|
+
breaking,
|
|
194
|
+
impact
|
|
195
|
+
} = apiDiffResult;
|
|
196
|
+
return /*#__PURE__*/_react().default.createElement("div", {
|
|
197
|
+
className: _apiCompareModule().default.apiCompareContainer
|
|
198
|
+
}, /*#__PURE__*/_react().default.createElement("div", {
|
|
199
|
+
className: _apiCompareModule().default.summary
|
|
200
|
+
}, /*#__PURE__*/_react().default.createElement("span", {
|
|
201
|
+
className: impactClass(impact)
|
|
202
|
+
}, impactLabel(impact)), /*#__PURE__*/_react().default.createElement("span", {
|
|
203
|
+
className: _apiCompareModule().default.summaryDivider
|
|
204
|
+
}, "|"), added > 0 && /*#__PURE__*/_react().default.createElement("span", {
|
|
205
|
+
className: _apiCompareModule().default.addedBadge
|
|
206
|
+
}, "+", added, " added"), removed > 0 && /*#__PURE__*/_react().default.createElement("span", {
|
|
207
|
+
className: _apiCompareModule().default.removedBadge
|
|
208
|
+
}, "-", removed, " removed"), modified > 0 && /*#__PURE__*/_react().default.createElement("span", {
|
|
209
|
+
className: _apiCompareModule().default.modifiedBadge
|
|
210
|
+
}, "~", modified, " modified"), breaking > 0 && /*#__PURE__*/_react().default.createElement("span", {
|
|
211
|
+
className: _apiCompareModule().default.removedBadge
|
|
212
|
+
}, breaking, " breaking")), /*#__PURE__*/_react().default.createElement(ChangeSection, {
|
|
213
|
+
title: "Public API",
|
|
214
|
+
changes: publicChanges
|
|
215
|
+
}), /*#__PURE__*/_react().default.createElement(ChangeSection, {
|
|
216
|
+
title: "Internal (non-exported)",
|
|
217
|
+
changes: internalChanges
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
//# sourceMappingURL=api-compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","_componentUiComponentCompare","_apiCompareModule","e","__esModule","default","impactClass","impact","styles","removedBadge","addedBadge","modifiedBadge","summaryBadge","impactLabel","getStatusClass","status","statusAdded","statusRemoved","statusModified","statusBadge","getStatusLabel","dotClass","dotBreaking","dotNonBreaking","dotPatch","DetailItem","detail","createElement","className","detailItem","detailDescription","description","APIDiffEntry","change","expanded","setExpanded","React","useState","showSignatures","setShowSignatures","hasBody","changes","length","baseSignature","compareSignature","diffEntry","diffEntryHeader","onClick","role","tabIndex","undefined","onKeyDown","key","preventDefault","exportName","schemaType","impactBadge","expandIconOpen","expandIcon","diffEntryBody","detailsList","map","i","changeKind","Fragment","toggleSignatures","signatureLabel","signatureRemoved","signatureBlock","ChangeSection","title","sorted","sort","a","b","order","REMOVED","MODIFIED","ADDED","sectionTitle","changeList","visibility","APICompare","compareContext","useComponentCompare","apiDiffResult","emptyState","hasChanges","publicChanges","internalChanges","added","removed","modified","breaking","apiCompareContainer","summary","summaryDivider"],"sources":["api-compare.tsx"],"sourcesContent":["import React from 'react';\nimport { useComponentCompare } from '@teambit/component.ui.component-compare.context';\nimport type { APIDiffResult, APIDiffChange, APIDiffDetail } from './api-compare.types';\nimport styles from './api-compare.module.scss';\n\nexport type { APIDiffResult, APIDiffChange, APIDiffDetail };\n\nfunction impactClass(impact: string): string {\n switch (impact) {\n case 'BREAKING':\n return styles.removedBadge;\n case 'NON_BREAKING':\n return styles.addedBadge;\n case 'PATCH':\n return styles.modifiedBadge;\n default:\n return styles.summaryBadge;\n }\n}\n\nfunction impactLabel(impact: string): string {\n switch (impact) {\n case 'BREAKING':\n return 'Breaking';\n case 'NON_BREAKING':\n return 'Non-breaking';\n case 'PATCH':\n return 'Patch';\n default:\n return impact;\n }\n}\n\nfunction getStatusClass(status: string): string {\n switch (status) {\n case 'ADDED':\n return styles.statusAdded;\n case 'REMOVED':\n return styles.statusRemoved;\n case 'MODIFIED':\n return styles.statusModified;\n default:\n return styles.statusBadge;\n }\n}\n\nfunction getStatusLabel(status: string): string {\n switch (status) {\n case 'ADDED':\n return '+ Added';\n case 'REMOVED':\n return '- Removed';\n case 'MODIFIED':\n return '~ Modified';\n default:\n return status;\n }\n}\n\nfunction dotClass(impact: string): string {\n switch (impact) {\n case 'BREAKING':\n return styles.dotBreaking;\n case 'NON_BREAKING':\n return styles.dotNonBreaking;\n default:\n return styles.dotPatch;\n }\n}\n\nfunction DetailItem({ detail }: { detail: APIDiffDetail }) {\n return (\n <li className={styles.detailItem}>\n <span className={dotClass(detail.impact)} />\n <span className={styles.detailDescription}>{detail.description}</span>\n </li>\n );\n}\n\nfunction APIDiffEntry({ change }: { change: APIDiffChange }) {\n const [expanded, setExpanded] = React.useState(change.status === 'MODIFIED');\n const [showSignatures, setShowSignatures] = React.useState(false);\n\n const hasBody =\n change.status === 'MODIFIED'\n ? (change.changes && change.changes.length > 0) || change.baseSignature || change.compareSignature\n : change.baseSignature || change.compareSignature;\n\n return (\n <div className={styles.diffEntry}>\n <div\n className={styles.diffEntryHeader}\n onClick={() => hasBody && setExpanded(!expanded)}\n role=\"button\"\n tabIndex={0}\n aria-expanded={hasBody ? expanded : undefined}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n hasBody && setExpanded(!expanded);\n }\n }}\n >\n <span className={getStatusClass(change.status)}>{getStatusLabel(change.status)}</span>\n <span className={styles.exportName}>{change.exportName}</span>\n <span className={styles.schemaType}>{change.schemaType}</span>\n <span className={`${impactClass(change.impact)} ${styles.impactBadge}`}>{impactLabel(change.impact)}</span>\n {hasBody && <span className={expanded ? styles.expandIconOpen : styles.expandIcon}>▶</span>}\n </div>\n {expanded && hasBody && (\n <div className={styles.diffEntryBody}>\n {change.status === 'MODIFIED' && change.changes && change.changes.length > 0 && (\n <ul className={styles.detailsList}>\n {change.changes.map((detail, i) => (\n <DetailItem key={`${detail.changeKind}-${i}`} detail={detail} />\n ))}\n </ul>\n )}\n {change.status === 'MODIFIED' && (change.baseSignature || change.compareSignature) && (\n <>\n <button className={styles.toggleSignatures} onClick={() => setShowSignatures(!showSignatures)}>\n {showSignatures ? '▼ Hide signatures' : '▶ Show signatures'}\n </button>\n {showSignatures && (\n <>\n {change.baseSignature && (\n <div>\n <div className={styles.signatureLabel}>Base</div>\n <div className={styles.signatureRemoved}>{change.baseSignature}</div>\n </div>\n )}\n {change.compareSignature && (\n <div>\n <div className={styles.signatureLabel}>Compare</div>\n <div className={styles.signatureBlock}>{change.compareSignature}</div>\n </div>\n )}\n </>\n )}\n </>\n )}\n {change.status === 'ADDED' && change.compareSignature && (\n <div className={styles.signatureBlock}>{change.compareSignature}</div>\n )}\n {change.status === 'REMOVED' && change.baseSignature && (\n <div className={styles.signatureRemoved}>{change.baseSignature}</div>\n )}\n </div>\n )}\n </div>\n );\n}\n\nfunction ChangeSection({ title, changes }: { title: string; changes: APIDiffChange[] }) {\n if (changes.length === 0) return null;\n\n const sorted = [...changes].sort((a, b) => {\n const order: Record<string, number> = { REMOVED: 0, MODIFIED: 1, ADDED: 2 };\n return (order[a.status] ?? 3) - (order[b.status] ?? 3);\n });\n\n return (\n <>\n <h3 className={styles.sectionTitle}>{title}</h3>\n <div className={styles.changeList}>\n {sorted.map((change) => (\n <APIDiffEntry key={`${change.visibility}-${change.status}-${change.exportName}`} change={change} />\n ))}\n </div>\n </>\n );\n}\n\nexport function APICompare() {\n const compareContext = useComponentCompare();\n const apiDiffResult: APIDiffResult | null | undefined = (compareContext as any)?.apiDiffResult;\n\n if (apiDiffResult === undefined) {\n return <div className={styles.emptyState}>Loading API diff...</div>;\n }\n\n if (!apiDiffResult || !apiDiffResult.hasChanges) {\n return <div className={styles.emptyState}>No API changes between these versions</div>;\n }\n\n const { publicChanges, internalChanges, added, removed, modified, breaking, impact } = apiDiffResult;\n\n return (\n <div className={styles.apiCompareContainer}>\n <div className={styles.summary}>\n <span className={impactClass(impact)}>{impactLabel(impact)}</span>\n <span className={styles.summaryDivider}>|</span>\n {added > 0 && <span className={styles.addedBadge}>+{added} added</span>}\n {removed > 0 && <span className={styles.removedBadge}>-{removed} removed</span>}\n {modified > 0 && <span className={styles.modifiedBadge}>~{modified} modified</span>}\n {breaking > 0 && <span className={styles.removedBadge}>{breaking} breaking</span>}\n </div>\n <ChangeSection title=\"Public API\" changes={publicChanges} />\n <ChangeSection title=\"Internal (non-exported)\" changes={internalChanges} />\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
.apiCompareContainer {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
height: 100%;
|
|
5
|
+
overflow: auto;
|
|
6
|
+
padding: 24px;
|
|
7
|
+
gap: 16px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.summary {
|
|
11
|
+
display: flex;
|
|
12
|
+
gap: 12px;
|
|
13
|
+
align-items: center;
|
|
14
|
+
padding: 12px 16px;
|
|
15
|
+
background: var(--bit-bg-dent, #f6f6f6);
|
|
16
|
+
border-radius: 8px;
|
|
17
|
+
font-size: 13px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.summaryDivider {
|
|
21
|
+
opacity: 0.3;
|
|
22
|
+
color: var(--bit-text-color-light, #6c707c);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.summaryBadge {
|
|
26
|
+
display: inline-flex;
|
|
27
|
+
align-items: center;
|
|
28
|
+
gap: 4px;
|
|
29
|
+
padding: 3px 10px;
|
|
30
|
+
border-radius: 12px;
|
|
31
|
+
font-weight: 500;
|
|
32
|
+
font-size: 12px;
|
|
33
|
+
white-space: nowrap;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.addedBadge {
|
|
37
|
+
composes: summaryBadge;
|
|
38
|
+
background: color-mix(in srgb, var(--bit-color-added, #2ea043) 15%, transparent);
|
|
39
|
+
color: var(--bit-color-added, #2ea043);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.removedBadge {
|
|
43
|
+
composes: summaryBadge;
|
|
44
|
+
background: color-mix(in srgb, var(--bit-color-removed, #f85149) 15%, transparent);
|
|
45
|
+
color: var(--bit-color-removed, #f85149);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.modifiedBadge {
|
|
49
|
+
composes: summaryBadge;
|
|
50
|
+
background: color-mix(in srgb, var(--bit-color-modified, #d29922) 15%, transparent);
|
|
51
|
+
color: var(--bit-color-modified, #d29922);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.changeList {
|
|
55
|
+
display: flex;
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
gap: 8px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.sectionTitle {
|
|
61
|
+
margin: 16px 0 8px;
|
|
62
|
+
font-size: 12px;
|
|
63
|
+
font-weight: 600;
|
|
64
|
+
text-transform: uppercase;
|
|
65
|
+
letter-spacing: 0.5px;
|
|
66
|
+
color: var(--bit-text-color-light, #6c707c);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.diffEntry {
|
|
70
|
+
border: 1px solid var(--bit-border-color-lightest, #ededed);
|
|
71
|
+
border-radius: 8px;
|
|
72
|
+
overflow: hidden;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.diffEntryHeader {
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
gap: 10px;
|
|
79
|
+
padding: 10px 16px;
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
user-select: none;
|
|
82
|
+
|
|
83
|
+
&:hover {
|
|
84
|
+
background: var(--bit-bg-dent, #f6f6f6);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.statusBadge {
|
|
89
|
+
display: inline-flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
padding: 2px 8px;
|
|
92
|
+
border-radius: 4px;
|
|
93
|
+
font-weight: 600;
|
|
94
|
+
font-size: 11px;
|
|
95
|
+
text-transform: uppercase;
|
|
96
|
+
letter-spacing: 0.3px;
|
|
97
|
+
flex-shrink: 0;
|
|
98
|
+
white-space: nowrap;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.statusAdded {
|
|
102
|
+
composes: statusBadge;
|
|
103
|
+
background: color-mix(in srgb, var(--bit-color-added, #2ea043) 15%, transparent);
|
|
104
|
+
color: var(--bit-color-added, #2ea043);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.statusRemoved {
|
|
108
|
+
composes: statusBadge;
|
|
109
|
+
background: color-mix(in srgb, var(--bit-color-removed, #f85149) 15%, transparent);
|
|
110
|
+
color: var(--bit-color-removed, #f85149);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.statusModified {
|
|
114
|
+
composes: statusBadge;
|
|
115
|
+
background: color-mix(in srgb, var(--bit-color-modified, #d29922) 15%, transparent);
|
|
116
|
+
color: var(--bit-color-modified, #d29922);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.exportName {
|
|
120
|
+
font-weight: 600;
|
|
121
|
+
font-size: 14px;
|
|
122
|
+
font-family: var(--bit-font-mono, monospace);
|
|
123
|
+
color: var(--bit-text-color-heavy, #2b2b2b);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.schemaType {
|
|
127
|
+
color: var(--bit-text-color-light, #6c707c);
|
|
128
|
+
font-size: 12px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.impactBadge {
|
|
132
|
+
composes: summaryBadge;
|
|
133
|
+
margin-left: auto;
|
|
134
|
+
font-size: 11px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.expandIcon {
|
|
138
|
+
color: var(--bit-text-color-light, #6c707c);
|
|
139
|
+
font-size: 10px;
|
|
140
|
+
transition: transform 0.2s;
|
|
141
|
+
flex-shrink: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.expandIconOpen {
|
|
145
|
+
composes: expandIcon;
|
|
146
|
+
transform: rotate(90deg);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.diffEntryBody {
|
|
150
|
+
padding: 0 16px 16px;
|
|
151
|
+
border-top: 1px solid var(--bit-border-color-lightest, #ededed);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.detailsList {
|
|
155
|
+
list-style: none;
|
|
156
|
+
padding: 12px 0 0;
|
|
157
|
+
margin: 0;
|
|
158
|
+
display: flex;
|
|
159
|
+
flex-direction: column;
|
|
160
|
+
gap: 8px;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.detailItem {
|
|
164
|
+
display: flex;
|
|
165
|
+
align-items: flex-start;
|
|
166
|
+
gap: 8px;
|
|
167
|
+
font-size: 13px;
|
|
168
|
+
line-height: 1.5;
|
|
169
|
+
color: var(--bit-text-color-heavy, #2b2b2b);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.detailDot {
|
|
173
|
+
width: 7px;
|
|
174
|
+
height: 7px;
|
|
175
|
+
min-width: 7px;
|
|
176
|
+
border-radius: 50%;
|
|
177
|
+
margin-top: 6px;
|
|
178
|
+
flex-shrink: 0;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.dotBreaking {
|
|
182
|
+
composes: detailDot;
|
|
183
|
+
background: var(--bit-color-removed, #f85149);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.dotNonBreaking {
|
|
187
|
+
composes: detailDot;
|
|
188
|
+
background: var(--bit-color-added, #2ea043);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
.dotPatch {
|
|
192
|
+
composes: detailDot;
|
|
193
|
+
background: var(--bit-color-modified, #d29922);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.detailDescription {
|
|
197
|
+
color: var(--bit-text-color-heavy, #2b2b2b);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.signatureBlock {
|
|
201
|
+
margin-top: 12px;
|
|
202
|
+
padding: 12px;
|
|
203
|
+
background: var(--bit-bg-dent, #f6f6f6);
|
|
204
|
+
border-radius: 6px;
|
|
205
|
+
font-family: var(--bit-font-mono, monospace);
|
|
206
|
+
font-size: 12px;
|
|
207
|
+
white-space: pre-wrap;
|
|
208
|
+
word-break: break-word;
|
|
209
|
+
line-height: 1.6;
|
|
210
|
+
color: var(--bit-text-color-heavy, #2b2b2b);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.signatureLabel {
|
|
214
|
+
font-weight: 600;
|
|
215
|
+
color: var(--bit-text-color-light, #6c707c);
|
|
216
|
+
margin-top: 12px;
|
|
217
|
+
margin-bottom: 4px;
|
|
218
|
+
font-size: 11px;
|
|
219
|
+
text-transform: uppercase;
|
|
220
|
+
letter-spacing: 0.5px;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.signatureRemoved {
|
|
224
|
+
composes: signatureBlock;
|
|
225
|
+
text-decoration: line-through;
|
|
226
|
+
opacity: 0.6;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.emptyState {
|
|
230
|
+
display: flex;
|
|
231
|
+
align-items: center;
|
|
232
|
+
justify-content: center;
|
|
233
|
+
height: 100%;
|
|
234
|
+
color: var(--bit-text-color-light, #6c707c);
|
|
235
|
+
font-size: 14px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.toggleSignatures {
|
|
239
|
+
background: none;
|
|
240
|
+
border: none;
|
|
241
|
+
color: var(--bit-accent-color, #0366d6);
|
|
242
|
+
font-size: 12px;
|
|
243
|
+
cursor: pointer;
|
|
244
|
+
padding: 4px 0;
|
|
245
|
+
margin-top: 12px;
|
|
246
|
+
|
|
247
|
+
&:hover {
|
|
248
|
+
text-decoration: underline;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Section } from '@teambit/component';
|
|
2
|
+
import type { TabItem } from '@teambit/component.ui.component-compare.models.component-compare-props';
|
|
3
|
+
import type { ChangeType } from '@teambit/component.ui.component-compare.models.component-compare-change-type';
|
|
4
|
+
export declare class APICompareSection implements TabItem, Section {
|
|
5
|
+
navigationLink: {
|
|
6
|
+
href: string;
|
|
7
|
+
children: string;
|
|
8
|
+
};
|
|
9
|
+
props: {
|
|
10
|
+
href: string;
|
|
11
|
+
children: string;
|
|
12
|
+
};
|
|
13
|
+
route: {
|
|
14
|
+
path: string;
|
|
15
|
+
element: import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
};
|
|
17
|
+
order: number;
|
|
18
|
+
changeType: ChangeType;
|
|
19
|
+
id: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.APICompareSection = void 0;
|
|
7
|
+
function _react() {
|
|
8
|
+
const data = _interopRequireDefault(require("react"));
|
|
9
|
+
_react = function () {
|
|
10
|
+
return data;
|
|
11
|
+
};
|
|
12
|
+
return data;
|
|
13
|
+
}
|
|
14
|
+
function _apiCompare() {
|
|
15
|
+
const data = require("./api-compare");
|
|
16
|
+
_apiCompare = function () {
|
|
17
|
+
return data;
|
|
18
|
+
};
|
|
19
|
+
return data;
|
|
20
|
+
}
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
23
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
24
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
25
|
+
// Use string cast since the external ChangeType enum doesn't have API yet
|
|
26
|
+
const ChangeTypeAPI = 'API';
|
|
27
|
+
class APICompareSection {
|
|
28
|
+
constructor() {
|
|
29
|
+
_defineProperty(this, "navigationLink", {
|
|
30
|
+
href: 'api',
|
|
31
|
+
children: 'API'
|
|
32
|
+
});
|
|
33
|
+
_defineProperty(this, "props", this.navigationLink);
|
|
34
|
+
_defineProperty(this, "route", {
|
|
35
|
+
path: 'api/*',
|
|
36
|
+
element: /*#__PURE__*/_react().default.createElement(_apiCompare().APICompare, null)
|
|
37
|
+
});
|
|
38
|
+
_defineProperty(this, "order", 15);
|
|
39
|
+
_defineProperty(this, "changeType", ChangeTypeAPI);
|
|
40
|
+
_defineProperty(this, "id", 'api');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.APICompareSection = APICompareSection;
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=api-compare.section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","data","_interopRequireDefault","require","_apiCompare","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ChangeTypeAPI","APICompareSection","constructor","href","children","navigationLink","path","element","createElement","APICompare","exports"],"sources":["api-compare.section.tsx"],"sourcesContent":["import React from 'react';\nimport type { Section } from '@teambit/component';\nimport type { TabItem } from '@teambit/component.ui.component-compare.models.component-compare-props';\nimport type { ChangeType } from '@teambit/component.ui.component-compare.models.component-compare-change-type';\nimport { APICompare } from './api-compare';\n\n// Use string cast since the external ChangeType enum doesn't have API yet\nconst ChangeTypeAPI = 'API' as unknown as ChangeType;\n\nexport class APICompareSection implements TabItem, Section {\n navigationLink = {\n href: 'api',\n children: 'API',\n };\n\n props = this.navigationLink;\n\n route = {\n path: 'api/*',\n element: <APICompare />,\n };\n\n order = 15;\n changeType = ChangeTypeAPI;\n id = 'api';\n}\n"],"mappings":";;;;;;AAAA,SAAAA,OAAA;EAAA,MAAAC,IAAA,GAAAC,sBAAA,CAAAC,OAAA;EAAAH,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAIA,SAAAG,YAAA;EAAA,MAAAH,IAAA,GAAAE,OAAA;EAAAC,WAAA,YAAAA,CAAA;IAAA,OAAAH,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA2C,SAAAC,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,gBAAAH,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAE,cAAA,CAAAF,CAAA,MAAAJ,CAAA,GAAAO,MAAA,CAAAC,cAAA,CAAAR,CAAA,EAAAI,CAAA,IAAAK,KAAA,EAAAJ,CAAA,EAAAK,UAAA,MAAAC,YAAA,MAAAC,QAAA,UAAAZ,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAM,eAAAD,CAAA,QAAAQ,CAAA,GAAAC,YAAA,CAAAT,CAAA,uCAAAQ,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAT,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAU,MAAA,CAAAC,WAAA,kBAAAhB,CAAA,QAAAa,CAAA,GAAAb,CAAA,CAAAiB,IAAA,CAAAZ,CAAA,EAAAD,CAAA,uCAAAS,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAAd,CAAA,GAAAe,MAAA,GAAAC,MAAA,EAAAf,CAAA;AAE3C;AACA,MAAMgB,aAAa,GAAG,KAA8B;AAE7C,MAAMC,iBAAiB,CAA6B;EAAAC,YAAA;IAAApB,eAAA,yBACxC;MACfqB,IAAI,EAAE,KAAK;MACXC,QAAQ,EAAE;IACZ,CAAC;IAAAtB,eAAA,gBAEO,IAAI,CAACuB,cAAc;IAAAvB,eAAA,gBAEnB;MACNwB,IAAI,EAAE,OAAO;MACbC,OAAO,eAAEjC,MAAA,GAAAO,OAAA,CAAA2B,aAAA,CAAC9B,WAAA,GAAA+B,UAAU,MAAE;IACxB,CAAC;IAAA3B,eAAA,gBAEO,EAAE;IAAAA,eAAA,qBACGkB,aAAa;IAAAlB,eAAA,aACrB,KAAK;EAAA;AACZ;AAAC4B,OAAA,CAAAT,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export type APIDiffDetail = {
|
|
2
|
+
changeKind: string;
|
|
3
|
+
description: string;
|
|
4
|
+
impact: string;
|
|
5
|
+
from?: string;
|
|
6
|
+
to?: string;
|
|
7
|
+
};
|
|
8
|
+
export type APIDiffChange = {
|
|
9
|
+
status: string;
|
|
10
|
+
visibility: string;
|
|
11
|
+
exportName: string;
|
|
12
|
+
schemaType: string;
|
|
13
|
+
schemaTypeRaw: string;
|
|
14
|
+
impact: string;
|
|
15
|
+
baseSignature?: string;
|
|
16
|
+
compareSignature?: string;
|
|
17
|
+
baseNode?: Record<string, any>;
|
|
18
|
+
compareNode?: Record<string, any>;
|
|
19
|
+
changes?: APIDiffDetail[];
|
|
20
|
+
};
|
|
21
|
+
export type APIDiffResult = {
|
|
22
|
+
hasChanges: boolean;
|
|
23
|
+
impact: string;
|
|
24
|
+
publicChanges: APIDiffChange[];
|
|
25
|
+
internalChanges: APIDiffChange[];
|
|
26
|
+
changes: APIDiffChange[];
|
|
27
|
+
added: number;
|
|
28
|
+
removed: number;
|
|
29
|
+
modified: number;
|
|
30
|
+
breaking: number;
|
|
31
|
+
nonBreaking: number;
|
|
32
|
+
patch: number;
|
|
33
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["api-compare.types.ts"],"sourcesContent":["export type APIDiffDetail = {\n changeKind: string;\n description: string;\n impact: string;\n from?: string;\n to?: string;\n};\n\nexport type APIDiffChange = {\n status: string;\n visibility: string;\n exportName: string;\n schemaType: string;\n schemaTypeRaw: string;\n impact: string;\n baseSignature?: string;\n compareSignature?: string;\n baseNode?: Record<string, any>;\n compareNode?: Record<string, any>;\n changes?: APIDiffDetail[];\n};\n\nexport type APIDiffResult = {\n hasChanges: boolean;\n impact: string;\n publicChanges: APIDiffChange[];\n internalChanges: APIDiffChange[];\n changes: APIDiffChange[];\n added: number;\n removed: number;\n modified: number;\n breaking: number;\n nonBreaking: number;\n patch: number;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import type { APINodeRenderer } from '@teambit/api-reference.models.api-node-ren
|
|
|
4
4
|
import type { SchemaNodeConstructor } from '@teambit/semantics.entities.semantic-schema';
|
|
5
5
|
import type { CodeUI } from '@teambit/code';
|
|
6
6
|
import type { WorkspaceUI } from '@teambit/workspace';
|
|
7
|
+
import type { ComponentCompareUI } from '@teambit/component-compare';
|
|
7
8
|
export type APINodeRendererSlot = SlotRegistry<APINodeRenderer[]>;
|
|
8
9
|
export declare class APIReferenceUI {
|
|
9
10
|
private host;
|
|
@@ -26,6 +27,6 @@ export declare class APIReferenceUI {
|
|
|
26
27
|
registerSchemaClasses(getSchemas: () => SchemaNodeConstructor[]): void;
|
|
27
28
|
registerAPINodeRenderer(apiNodeRenderers: APINodeRenderer[]): void;
|
|
28
29
|
apiNodeRenderers: APINodeRenderer[];
|
|
29
|
-
static provider([componentUI, codeUI, workspaceUI]: [ComponentUI, CodeUI, WorkspaceUI], _: any, [apiNodeRendererSlot]: [APINodeRendererSlot], harmony: Harmony): Promise<APIReferenceUI>;
|
|
30
|
+
static provider([componentUI, codeUI, workspaceUI, componentCompareUI]: [ComponentUI, CodeUI, WorkspaceUI, ComponentCompareUI], _: any, [apiNodeRendererSlot]: [APINodeRendererSlot], harmony: Harmony): Promise<APIReferenceUI>;
|
|
30
31
|
}
|
|
31
32
|
export default APIReferenceUI;
|