diff --git a/panel/styles/models/tabulator.less b/panel/styles/models/tabulator.less index f82ea6ab4a..04c5dc6c46 100644 --- a/panel/styles/models/tabulator.less +++ b/panel/styles/models/tabulator.less @@ -1,3 +1,7 @@ .tabulator-table { - max-width: 100% + max-width: 100%; + + .tabulator-row .row-content .bk-panel-models-markup-HTML { + white-space: normal; + } } diff --git a/panel/tests/ui/widgets/test_tabulator.py b/panel/tests/ui/widgets/test_tabulator.py index 8663a597f2..c7643ed344 100644 --- a/panel/tests/ui/widgets/test_tabulator.py +++ b/panel/tests/ui/widgets/test_tabulator.py @@ -23,6 +23,7 @@ from panel.io.state import state from panel.layout.base import Column from panel.models.tabulator import _TABULATOR_THEMES_MAPPING +from panel.pane import Markdown from panel.tests.util import get_ctrl_modifier, serve_component, wait_until from panel.util import BOKEH_GE_3_6 from panel.widgets import Select, Tabulator, TextInput @@ -4079,3 +4080,17 @@ def test_tabulator_header_tooltips(page): page.wait_for_timeout(200) expect(page.locator('.tabulator-tooltip')).to_have_text("Test") + + +def test_tabulator_row_content_markup_wrap(page): + # https://github.com/holoviz/panel/issues/7388 + + df = pd.DataFrame({"col": ["foo"]}) + long_markdown = Markdown("xxxx " * 50) + widget = Tabulator(df, row_content=lambda row: long_markdown, expanded=[0], width=200) + + serve_component(page, widget) + + md = page.locator('.row-content .bk-panel-models-markup-HTML') + + assert md.bounding_box()['height'] >= 130