In Quarto 1.3, tabsets are represented as a custom AST node. You can create conditional blocks in Lua filters with the quarto.Tabset constructor, with parameters tabs, level and attr as described above. In addition, you can use quarto.Tab to create the tab objects for the tabs field. quarto.Tab is more lenient with parameter types, converting strings to Blocks and Inlines as needed. In Lua filters, tabsets are represented as a table with the following fields:

tabs: a table containing the content for each tab. Each entry is a table with two entries: title (a pandoc.Inlines) and content (a pandoc.Blocks) (optional in the contructor, default value {})
level: the level of the tab headings to be used in rendering the tabset (optional in the constructor, default value 2)
attr: the Attr object for the resulting tabset div (optional in the constructor)