From 1ffb470f85ae97532e98796c81ee854a2a89a1c7 Mon Sep 17 00:00:00 2001 From: Adam Matthiesen Date: Mon, 5 Jan 2026 21:24:45 -0800 Subject: [PATCH 1/4] fix: Improve global window augmentation for tooltips with better type definitions --- .changeset/few-eyes-provide.md | 5 ++++ .../src/components/Tooltip/tooltip.ts | 6 +---- packages/studiocms_ui/src/events.d.ts | 25 ++++++++++--------- 3 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 .changeset/few-eyes-provide.md diff --git a/.changeset/few-eyes-provide.md b/.changeset/few-eyes-provide.md new file mode 100644 index 00000000..3d9daafc --- /dev/null +++ b/.changeset/few-eyes-provide.md @@ -0,0 +1,5 @@ +--- +"@studiocms/ui": patch +--- + +Fixes global window augmentation for tooltips (no user facing changes, just better types!) diff --git a/packages/studiocms_ui/src/components/Tooltip/tooltip.ts b/packages/studiocms_ui/src/components/Tooltip/tooltip.ts index fa68a347..96756d15 100644 --- a/packages/studiocms_ui/src/components/Tooltip/tooltip.ts +++ b/packages/studiocms_ui/src/components/Tooltip/tooltip.ts @@ -56,7 +56,7 @@ class Tooltip { try { const parsedOptions = jsonOptions ? (JSON.parse(jsonOptions) as Record) : {}; options = { ...options, ...parsedOptions }; - } catch {} + } catch { } return options; } @@ -327,7 +327,6 @@ function loadTooltips() { const anchor = tooltipInstance.getAnchor(); const popup = tooltipInstance.tooltip; - // @ts-expect-error window.sui.tooltips.instances.set(tooltipInstance.container.id, tooltipInstance); anchor.addEventListener('mouseenter', () => { @@ -394,11 +393,8 @@ function loadTooltips() { }); } -// TODO: Investigate why global type definitions are not being recognized -// @ts-expect-error window.sui = window.sui ?? {}; -// @ts-expect-error window.sui.tooltips = { instances: new Map(), diff --git a/packages/studiocms_ui/src/events.d.ts b/packages/studiocms_ui/src/events.d.ts index 31e3bf28..dda0c93b 100644 --- a/packages/studiocms_ui/src/events.d.ts +++ b/packages/studiocms_ui/src/events.d.ts @@ -39,6 +39,19 @@ interface SuiTooltipApi { hide: (id: string) => void; } +// biome-ignore lint/correctness/noUnusedVariables: This is being used as a global augmentation +interface Window { + /** + * The StudioCMS UI API, which includes various tools and utilities for the UI. + */ + sui: { + /** + * The tooltip API, which provides methods for managing tooltips in the UI. + */ + tooltips: SuiTooltipApi; + }; +} + /** * Extends the global `Document` interface to include custom event handling methods. * @@ -89,16 +102,4 @@ declare global { */ dispatchEvent(ev: CustomEventMap[K]): void; } - - interface Window { - /** - * The StudioCMS UI API, which includes various tools and utilities for the UI. - */ - sui: { - /** - * The tooltip API, which provides methods for managing tooltips in the UI. - */ - tooltips: SuiTooltipApi; - }; - } } From e0b3b69bda2cc381137a5192fc94f4fcd7f840ae Mon Sep 17 00:00:00 2001 From: Adam Matthiesen Date: Mon, 5 Jan 2026 21:29:31 -0800 Subject: [PATCH 2/4] fix: Improve error handling in tooltip options parsing and update VSCode settings for TypeScript formatter --- .vscode/settings.json | 3 +++ packages/studiocms_ui/src/components/Tooltip/tooltip.ts | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cc27ec5a..381af5c6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -45,5 +45,8 @@ "material-icon-theme.files.associations": { "*.e2e.ts": "playwright", "*.test.ts": "vitest" + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome" } } diff --git a/packages/studiocms_ui/src/components/Tooltip/tooltip.ts b/packages/studiocms_ui/src/components/Tooltip/tooltip.ts index 96756d15..4443a9d8 100644 --- a/packages/studiocms_ui/src/components/Tooltip/tooltip.ts +++ b/packages/studiocms_ui/src/components/Tooltip/tooltip.ts @@ -56,7 +56,7 @@ class Tooltip { try { const parsedOptions = jsonOptions ? (JSON.parse(jsonOptions) as Record) : {}; options = { ...options, ...parsedOptions }; - } catch { } + } catch {} return options; } From 6056e43b798c3af7713caa6d00e4cab9152e621d Mon Sep 17 00:00:00 2001 From: Adam Matthiesen Date: Mon, 5 Jan 2026 21:33:07 -0800 Subject: [PATCH 3/4] fix: Update comments for global augmentations in events.d.ts --- packages/studiocms_ui/src/events.d.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/studiocms_ui/src/events.d.ts b/packages/studiocms_ui/src/events.d.ts index dda0c93b..00935cb6 100644 --- a/packages/studiocms_ui/src/events.d.ts +++ b/packages/studiocms_ui/src/events.d.ts @@ -1,3 +1,5 @@ +/** biome-ignore-all lint/correctness/noUnusedVariables: Global augments */ + /** * CustomEventMap defines the custom events used in the application. * @@ -39,7 +41,6 @@ interface SuiTooltipApi { hide: (id: string) => void; } -// biome-ignore lint/correctness/noUnusedVariables: This is being used as a global augmentation interface Window { /** * The StudioCMS UI API, which includes various tools and utilities for the UI. From 51daf4e82c2bbc6aba87e60ad9feaca4b0c23f38 Mon Sep 17 00:00:00 2001 From: Adam Matthiesen Date: Mon, 5 Jan 2026 21:41:02 -0800 Subject: [PATCH 4/4] Update .changeset/few-eyes-provide.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .changeset/few-eyes-provide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/few-eyes-provide.md b/.changeset/few-eyes-provide.md index 3d9daafc..48c0a09f 100644 --- a/.changeset/few-eyes-provide.md +++ b/.changeset/few-eyes-provide.md @@ -2,4 +2,4 @@ "@studiocms/ui": patch --- -Fixes global window augmentation for tooltips (no user facing changes, just better types!) +Fixes global window augmentation for tooltips (no user-facing changes, just better types!)