@canonical/react-ds-app-launchpad 0.9.0 → 0.9.1-experimental.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/ui/GitDiffViewer/common/CodeDiffViewer/HighlighTheme.css +2 -2
- package/dist/esm/ui/GitDiffViewer/utils/highlightDiffHunkLines.js +33 -2
- package/dist/esm/ui/GitDiffViewer/utils/highlightDiffHunkLines.js.map +1 -1
- package/dist/types/ui/GitDiffViewer/utils/highlightDiffHunkLines.d.ts.map +1 -1
- package/package.json +2 -2
@@ -157,12 +157,12 @@
|
|
157
157
|
|
158
158
|
.hljs-deletion {
|
159
159
|
color: #dc3023;
|
160
|
-
background-color:
|
160
|
+
background-color: transparent;
|
161
161
|
}
|
162
162
|
|
163
163
|
.hljs-addition {
|
164
164
|
color: #0e811f;
|
165
|
-
background-color:
|
165
|
+
background-color: transparent;
|
166
166
|
}
|
167
167
|
|
168
168
|
.hljs-link {
|
@@ -15,6 +15,37 @@ function highlight(code, fileExtension) {
|
|
15
15
|
// Fall back to auto-detection if no match found
|
16
16
|
return hljs.highlightAuto(code).value;
|
17
17
|
}
|
18
|
+
/**
|
19
|
+
* Splits HTML spans that contain newline characters into separate spans for each line.
|
20
|
+
* This is useful for diff viewers where each line needs to be highlighted individually
|
21
|
+
* while preserving the original syntax highlighting CSS classes.
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* ```typescript
|
25
|
+
* // Input HTML with multiline comment span
|
26
|
+
* const input = '<span class="hljs-comment">/**\\n * Description\\n *\/</span>';
|
27
|
+
*
|
28
|
+
* const output = splitMultilineSpans(input);
|
29
|
+
* // Returns: '<span class="hljs-comment">/**</span>\\n<span class="hljs-comment"> * Description</span>\\n<span class="hljs-comment"> *\/</span>'
|
30
|
+
* ```
|
31
|
+
*
|
32
|
+
* @example
|
33
|
+
* ```typescript
|
34
|
+
* // Input with multiple multiline spans
|
35
|
+
* const input = '<span class="hljs-keyword">function</span> <span class="hljs-title">test() {\\n console.log("hello");\\n}</span>';
|
36
|
+
*
|
37
|
+
* const output = splitMultilineSpans(input);
|
38
|
+
* // Returns: '<span class="hljs-keyword">function</span> <span class="hljs-title">test() {</span>\\n<span class="hljs-title"> console.log("hello");</span>\\n<span class="hljs-title">}</span>'
|
39
|
+
* ```
|
40
|
+
*/
|
41
|
+
function splitMultilineSpans(html) {
|
42
|
+
return html.replace(/<span([^>]*)>([^<]*?\n[^<]*?)<\/span>/g, (match, attributes, content) => {
|
43
|
+
const lines = content.split("\n");
|
44
|
+
return lines
|
45
|
+
.map((line) => `<span${attributes}>${line}</span>`)
|
46
|
+
.join("\n");
|
47
|
+
});
|
48
|
+
}
|
18
49
|
function highlightDiffHunkLines(filePath, hunkLines) {
|
19
50
|
const fileExtension = filePath.split(".").pop();
|
20
51
|
const hunkContentAddedVersion = hunkLines
|
@@ -25,8 +56,8 @@ function highlightDiffHunkLines(filePath, hunkLines) {
|
|
25
56
|
.filter((line) => line.type === "remove" || line.type === "context")
|
26
57
|
.map((line) => line.content)
|
27
58
|
.join("\n");
|
28
|
-
const highlightedHunkAddedVersion = highlight(hunkContentAddedVersion, fileExtension).split("\n");
|
29
|
-
const highlightedHunkDeletedVersion = highlight(hunkContentDeletedVersion, fileExtension).split("\n");
|
59
|
+
const highlightedHunkAddedVersion = splitMultilineSpans(highlight(hunkContentAddedVersion, fileExtension)).split("\n");
|
60
|
+
const highlightedHunkDeletedVersion = splitMultilineSpans(highlight(hunkContentDeletedVersion, fileExtension)).split("\n");
|
30
61
|
const highlightedLines = [];
|
31
62
|
let addedOffset = 0;
|
32
63
|
let removedOffset = 0;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"highlightDiffHunkLines.js","sourceRoot":"","sources":["../../../../../src/ui/GitDiffViewer/utils/highlightDiffHunkLines.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,cAAc,CAAC;AAGhC,SAAS,SAAS,CAAC,IAAY,EAAE,aAAiC;IAChE,MAAM,sBAAsB,GAAG,aAAa,EAAE,WAAW,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"highlightDiffHunkLines.js","sourceRoot":"","sources":["../../../../../src/ui/GitDiffViewer/utils/highlightDiffHunkLines.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"highlightDiffHunkLines.d.ts","sourceRoot":"","sources":["../../../../../src/ui/GitDiffViewer/utils/highlightDiffHunkLines.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"highlightDiffHunkLines.d.ts","sourceRoot":"","sources":["../../../../../src/ui/GitDiffViewer/utils/highlightDiffHunkLines.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AA8DxC,iBAAS,sBAAsB,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GACvB,MAAM,EAAE,CAwCV;AAED,eAAe,sBAAsB,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@canonical/react-ds-app-launchpad",
|
3
|
-
"version": "0.9.0",
|
3
|
+
"version": "0.9.1-experimental.0",
|
4
4
|
"type": "module",
|
5
5
|
"module": "dist/esm/index.js",
|
6
6
|
"types": "dist/types/index.d.ts",
|
@@ -71,5 +71,5 @@
|
|
71
71
|
"vite-tsconfig-paths": "^5.1.4",
|
72
72
|
"vitest": "^3.2.3"
|
73
73
|
},
|
74
|
-
"gitHead": "
|
74
|
+
"gitHead": "573b33cfbe04ff6b7e869b2c1d7d6f939001da0c"
|
75
75
|
}
|