include heading.pug mixin dialog(title) - const slots = {} mixin slot(key) - slots[key] = block - block ? block() : undefined let classes = { 'o-dialog': true, 'o-dialog--flat': attributes.flat, } let headerClass = { 'o-dialog__header': true, 'u-themed': !attributes.flat, 't-lowered': !attributes.flat, 'l-media': true, } let sidebarHeaderClass = { 'o-dialog__header--sidebar': true, } Object.assign(sidebarHeaderClass, headerClass); let bodyClass = { 'o-dialog__body': true } if (attributes.bodyClass) { bodyClass[attributes.bodyClass] = true; } div(class=classes) if slots['sidebar-header'] || attributes.sidebarTitle div(class=sidebarHeaderClass) if slots['sidebar-header'] - slots['sidebar-header']() else +div-heading('sm')(class='o-dialog__title l-media__block l-media__block--main')= attributes.sidebarTitle if slots.sidebar .o-dialog__sidebar.l-overflow - slots.sidebar() div(class=headerClass) if slots.header - slots.header() else if title +div-heading('sm')(class='o-dialog__title l-media__block l-media__block--main')= title +action-button(round=true quiet=true icon='x' class='o-dialog__close-btn l-media__block') section(class=bodyClass) if slots.body - slots.body() footer.o-dialog__footer.l-button-group +a-button(outline=true)= 'Cancel' = ' ' +a-button(variant='accent')= 'Continue'