Periodic callback breaks the tabulator widget layout styling

Starting a periodic callback that updates the value of a tabulator widget sets the left and right css attributes to 0 causing the tables to overlap each other. The styling works correctly when just displaying both tables ‘statically’

Example code:

import panel as pn
import pandas as pd
pn.extension()

def generate_df(event=None):
    df.value = pd.util.testing.makeDataFrame()
    df2.value = pd.util.testing.makeDataFrame()

def start(event):
    periodic_cb.start()
    
button = pn.widgets.Button(name='Start')
button.on_click(start)
        
df = pn.widgets.Tabulator(value=pd.util.testing.makeDataFrame(), width=800)
df2 = pn.widgets.Tabulator(value=pd.util.testing.makeDataFrame(), width=800)
periodic_cb = pn.state.add_periodic_callback(generate_df, period=500, start=False)

col = pn.Column(df, df2, button)
pn.serve(col)

Wrapping the tabulator widget in a WidgetBox or Row/Column fixes the issue! Feel free to close this topic if this is expected behavior

import panel as pn
import pandas as pd
import holoviews as hv

renderer = hv.renderer('bokeh')
pn.extension()

def generate_df(event=None):
    df.value = pd.util.testing.makeDataFrame()
    df2.value = pd.util.testing.makeDataFrame()

def start(event):
    periodic_cb.start()
    
button = pn.widgets.Button(name='Start')
button.on_click(start)
        
df = pn.widgets.Tabulator(value=pd.util.testing.makeDataFrame(), width=800, sizing_mode='stretch_both')
df2 = pn.widgets.Tabulator(value=pd.util.testing.makeDataFrame(), width=800, sizing_mode='stretch_both')
periodic_cb = pn.state.add_periodic_callback(generate_df, period=50, start=False)

col = pn.Column(pn.Row(df), pn.Row(df2), button)
pn.serve(col)

Doesn’t seem expected, could you file an issue?