diff --git a/panel/models/layout.ts b/panel/models/layout.ts index 95d06128eb..0d9c5f1c5d 100644 --- a/panel/models/layout.ts +++ b/panel/models/layout.ts @@ -34,16 +34,16 @@ export class PanelMarkupView extends WidgetView { for (const sts of this._applied_stylesheets) { const style_el = (sts as any).el if (style_el instanceof HTMLLinkElement) { - this._initialized_stylesheets[style_el.href] = false - style_el.addEventListener("load", () => { - this._initialized_stylesheets[style_el.href] = true - if ( - Object.values(this._initialized_stylesheets).every(Boolean) - ) - this.style_redraw() - }) + this._initialized_stylesheets[style_el.href] = false + style_el.addEventListener('load', () => { + this._initialized_stylesheets[style_el.href] = true + if (Object.values(this._initialized_stylesheets).every(Boolean)) + this.style_redraw() + }) } } + if (Object.keys(this._initialized_stylesheets).length === 0) + this.style_redraw() } style_redraw(): void { diff --git a/panel/tests/ui/pane/test_markup.py b/panel/tests/ui/pane/test_markup.py index 9babe5185f..f2bae01304 100644 --- a/panel/tests/ui/pane/test_markup.py +++ b/panel/tests/ui/pane/test_markup.py @@ -1,9 +1,12 @@ +from html import escape + import pytest pytest.importorskip("playwright") from playwright.sync_api import expect +from panel.models import HTML from panel.pane import Markdown from panel.tests.util import serve_component, wait_until @@ -85,3 +88,13 @@ def test_markdown_pane_visible_toggle(page): md.visible = True wait_until(lambda: page.locator(".markdown").locator("div").is_visible(), page) + +def test_html_model_no_stylesheet(page): + # regression test for https://github.com/holoviz/holoviews/issues/5963 + text = "

Header

" + html = HTML(text=escape(text), width=200, height=200) + serve_component(page, html) + + header_element = page.locator('h1:has-text("Header")') + assert header_element.is_visible() + assert header_element.text_content() == "Header"