@pierre/diffs 1.2.7 → 1.2.9

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.
Files changed (60) hide show
  1. package/dist/components/CodeView.d.ts +3 -0
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +15 -0
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/FileDiff.d.ts.map +1 -1
  6. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  7. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/highlighter/shared_highlighter.js +3 -29
  10. package/dist/highlighter/shared_highlighter.js.map +1 -1
  11. package/dist/highlighter/themes/attachResolvedThemes.js +4 -3
  12. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  13. package/dist/highlighter/themes/cleanUpResolvedThemes.js +3 -2
  14. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  15. package/dist/highlighter/themes/constants.d.ts +1 -7
  16. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  17. package/dist/highlighter/themes/constants.js +1 -4
  18. package/dist/highlighter/themes/constants.js.map +1 -1
  19. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +2 -2
  20. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  21. package/dist/highlighter/themes/getResolvedThemes.js +2 -8
  22. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  23. package/dist/highlighter/themes/hasResolvedThemes.js +2 -3
  24. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  25. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +1 -1
  26. package/dist/highlighter/themes/registerCustomTheme.d.ts +5 -3
  27. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  28. package/dist/highlighter/themes/registerCustomTheme.js +15 -5
  29. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  30. package/dist/highlighter/themes/resolveTheme.js +6 -27
  31. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  32. package/dist/highlighter/themes/resolveThemes.js +5 -12
  33. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  34. package/dist/highlighter/themes/themeResolution.d.ts +8 -0
  35. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -0
  36. package/dist/highlighter/themes/themeResolution.js +22 -0
  37. package/dist/highlighter/themes/themeResolution.js.map +1 -0
  38. package/dist/highlighter/themes/themeResolver.d.ts +5 -0
  39. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -0
  40. package/dist/highlighter/themes/themeResolver.js +8 -0
  41. package/dist/highlighter/themes/themeResolver.js.map +1 -0
  42. package/dist/index.d.ts +4 -4
  43. package/dist/index.js +3 -3
  44. package/dist/managers/InteractionManager.d.ts.map +1 -1
  45. package/dist/react/index.d.ts +2 -2
  46. package/dist/react/jsx.d.ts.map +1 -1
  47. package/dist/ssr/index.d.ts +2 -2
  48. package/dist/types.d.ts +3 -3
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/utils/getHighlighterThemeStyles.js +16 -12
  51. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  52. package/dist/utils/parsePatchFiles.js +93 -4
  53. package/dist/utils/parsePatchFiles.js.map +1 -1
  54. package/dist/worker/WorkerPoolManager.js +1 -1
  55. package/dist/worker/WorkerPoolManager.js.map +1 -1
  56. package/dist/worker/worker-portable.js +25 -18
  57. package/dist/worker/worker-portable.js.map +1 -1
  58. package/dist/worker/worker.js +23 -15
  59. package/dist/worker/worker.js.map +1 -1
  60. package/package.json +4 -2
@@ -1,8 +1,10 @@
1
1
  import { createHighlighterCore } from "shiki/core";
2
2
  import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
3
3
  import { createOnigurumaEngine } from "shiki/engine/oniguruma";
4
+ import { createThemeResolver } from "@pierre/theming";
4
5
  import { diffChars, diffWordsWithSpace } from "diff";
5
6
  import { transformerStyleToClass } from "@shikijs/transformers";
7
+ import { normalizeThemeColors } from "@pierre/theming/color";
6
8
 
7
9
  //#region src/constants.ts
8
10
  const DIFFS_DEVELOPMENT_BUILD = (() => {
@@ -56,9 +58,12 @@ function attachResolvedLanguages(resolvedLanguages, highlighter$1) {
56
58
 
57
59
  //#endregion
58
60
  //#region src/highlighter/themes/constants.ts
59
- const ResolvedThemes = /* @__PURE__ */ new Map();
60
61
  const AttachedThemes = /* @__PURE__ */ new Set();
61
62
 
63
+ //#endregion
64
+ //#region src/highlighter/themes/themeResolver.ts
65
+ const themeResolver = createThemeResolver();
66
+
62
67
  //#endregion
63
68
  //#region src/highlighter/themes/attachResolvedThemes.ts
64
69
  function attachResolvedThemes(themes, highlighter$1) {
@@ -66,12 +71,12 @@ function attachResolvedThemes(themes, highlighter$1) {
66
71
  for (let themeRef of themes) {
67
72
  let resolvedTheme;
68
73
  if (typeof themeRef === "string") {
69
- resolvedTheme = ResolvedThemes.get(themeRef);
74
+ resolvedTheme = themeResolver.getResolvedTheme(themeRef);
70
75
  if (resolvedTheme == null) throw new Error(`loadResolvedThemes: ${themeRef} is not resolved, you must resolve it before calling loadResolvedThemes`);
71
76
  } else {
72
77
  resolvedTheme = themeRef;
73
78
  themeRef = themeRef.name;
74
- if (!ResolvedThemes.has(themeRef)) ResolvedThemes.set(themeRef, resolvedTheme);
79
+ if (themeResolver.getResolvedTheme(themeRef) == null) themeResolver.seedResolvedTheme(themeRef, resolvedTheme);
75
80
  }
76
81
  if (AttachedThemes.has(themeRef)) continue;
77
82
  AttachedThemes.add(themeRef);
@@ -668,24 +673,27 @@ function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter: highli
668
673
  let styles = "";
669
674
  if (typeof theme === "string") {
670
675
  const themeData = highlighter$1.getTheme(theme);
671
- styles += `color:${themeData.fg};`;
672
- styles += `background-color:${themeData.bg};`;
673
- styles += `${formatCSSVariablePrefix("global")}fg:${themeData.fg};`;
674
- styles += `${formatCSSVariablePrefix("global")}bg:${themeData.bg};`;
675
- styles += getThemeVariables(themeData, prefix);
676
+ const normalized = normalizeThemeColors(themeData);
677
+ styles += `color:${normalized.fg};`;
678
+ styles += `background-color:${normalized.bg};`;
679
+ styles += `${formatCSSVariablePrefix("global")}fg:${normalized.fg};`;
680
+ styles += `${formatCSSVariablePrefix("global")}bg:${normalized.bg};`;
681
+ styles += getGitVariables(themeData, prefix);
676
682
  } else {
677
683
  let themeData = highlighter$1.getTheme(theme.dark);
678
- styles += `${formatCSSVariablePrefix("global")}dark:${themeData.fg};`;
679
- styles += `${formatCSSVariablePrefix("global")}dark-bg:${themeData.bg};`;
680
- styles += getThemeVariables(themeData, "dark");
684
+ let normalized = normalizeThemeColors(themeData);
685
+ styles += `${formatCSSVariablePrefix("global")}dark:${normalized.fg};`;
686
+ styles += `${formatCSSVariablePrefix("global")}dark-bg:${normalized.bg};`;
687
+ styles += getGitVariables(themeData, "dark");
681
688
  themeData = highlighter$1.getTheme(theme.light);
682
- styles += `${formatCSSVariablePrefix("global")}light:${themeData.fg};`;
683
- styles += `${formatCSSVariablePrefix("global")}light-bg:${themeData.bg};`;
684
- styles += getThemeVariables(themeData, "light");
689
+ normalized = normalizeThemeColors(themeData);
690
+ styles += `${formatCSSVariablePrefix("global")}light:${normalized.fg};`;
691
+ styles += `${formatCSSVariablePrefix("global")}light-bg:${normalized.bg};`;
692
+ styles += getGitVariables(themeData, "light");
685
693
  }
686
694
  return styles;
687
695
  }
688
- function getThemeVariables(themeData, modePrefix) {
696
+ function getGitVariables(themeData, modePrefix) {
689
697
  modePrefix = modePrefix != null ? `${modePrefix}-` : "";
690
698
  let styles = "";
691
699
  const additionGreen = themeData.colors?.["gitDecoration.addedResourceForeground"] ?? themeData.colors?.["terminal.ansiGreen"];