diff --git a/packages/codemirror/html.mjs b/packages/codemirror/html.mjs
index 4b4d82e4..527275ef 100644
--- a/packages/codemirror/html.mjs
+++ b/packages/codemirror/html.mjs
@@ -1,6 +1,6 @@
-const parser = new DOMParser();
+const parser = typeof DOMParser !== 'undefined' ? new DOMParser() : null;
export let html = (string) => {
- return parser.parseFromString(string, 'text/html').querySelectorAll('*');
+ return parser?.parseFromString(string, 'text/html').querySelectorAll('*');
};
let parseChunk = (chunk) => {
if (Array.isArray(chunk)) return chunk.flat().join('');
diff --git a/packages/codemirror/tooltip.mjs b/packages/codemirror/tooltip.mjs
index 7b7a36db..f67e6d14 100644
--- a/packages/codemirror/tooltip.mjs
+++ b/packages/codemirror/tooltip.mjs
@@ -6,26 +6,28 @@ const getDocLabel = (doc) => doc.name || doc.longname;
let ctrlDown = false;
-// Record Control key event to trigger or block the tooltip depending on the state
-window.addEventListener(
- 'keyup',
- function (e) {
- if (e.key == 'Control') {
- ctrlDown = false;
- }
- },
- true,
-);
+if (typeof window !== 'undefined') {
+ // Record Control key event to trigger or block the tooltip depending on the state
+ window.addEventListener(
+ 'keyup',
+ function (e) {
+ if (e.key == 'Control') {
+ ctrlDown = false;
+ }
+ },
+ true,
+ );
-window.addEventListener(
- 'keydown',
- function (e) {
- if (e.key == 'Control') {
- ctrlDown = true;
- }
- },
- true,
-);
+ window.addEventListener(
+ 'keydown',
+ function (e) {
+ if (e.key == 'Control') {
+ ctrlDown = true;
+ }
+ },
+ true,
+ );
+}
export const strudelTooltip = hoverTooltip(
(view, pos, side) => {