), so it runs on every page.
*
* Any link to https://admin.southlondonacro.co.uk/book/… opens in a pop-up
* instead of a new page. Without this script (or with JavaScript off) the
* same links just open the booking page — nothing breaks.
*
* Book the next jam: https://admin.southlondonacro.co.uk/book/jam/lsbu-jam
* Book a specific date: https://admin.southlondonacro.co.uk/book/jam/lsbu-jam?on=2026-10-17
*
* The booking page talks back with three messages (admin/lib/book/embed.ts):
* slac:height resize the pop-up to fit
* slac:navigate card payment: send the whole window to Stripe
* slac:close the "Done" button after a booking
*/
(function () {
var ORIGIN = window.SLAC_BOOKING_ORIGIN || 'https://admin.southlondonacro.co.uk'
if (window.__slacBookingPopup) return
window.__slacBookingPopup = true
function build() {
var css =
'#slac-book{border:0;padding:0;width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);' +
'border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 30px 80px rgba(20,8,12,.35)}' +
'#slac-book::backdrop{background:rgba(20,8,12,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}' +
'#slac-book-bar{display:flex;justify-content:flex-end;padding:10px 10px 0}' +
'#slac-book-close{all:unset;cursor:pointer;width:36px;height:36px;border-radius:999px;display:grid;place-items:center;' +
'font:600 22px/1 system-ui,sans-serif;color:#1d1b25;background:rgba(0,0,0,.06)}' +
'#slac-book-close:hover{background:rgba(0,0,0,.12)}#slac-book-close:focus-visible{outline:2px solid #e11f26;outline-offset:2px}' +
'#slac-book-frame{display:block;width:100%;border:0;height:70dvh;max-height:calc(100dvh - 90px);background:#fff}' +
'@media (max-width:640px){#slac-book{width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}' +
'#slac-book-frame{height:calc(100dvh - 46px)!important;max-height:none}}'
var style = document.createElement('style')
style.textContent = css
document.head.appendChild(style)
var dialog = document.createElement('dialog')
dialog.id = 'slac-book'
dialog.setAttribute('aria-label', 'Book with South London Acro')
dialog.innerHTML =
'
' +
''
document.body.appendChild(dialog)
return dialog
}
var dialog = null
function frame() { return document.getElementById('slac-book-frame') }
function open(url) {
if (!dialog) {
dialog = build()
document.getElementById('slac-book-close').addEventListener('click', function () { dialog.close() })
dialog.addEventListener('click', function (e) { if (e.target === dialog) dialog.close() })
dialog.addEventListener('close', function () {
frame().src = 'about:blank'
document.documentElement.style.overflow = ''
})
}
if (typeof dialog.showModal !== 'function') { window.location.href = url; return }
frame().src = url
document.documentElement.style.overflow = 'hidden'
dialog.showModal()
}
document.addEventListener('click', function (e) {
if (e.defaultPrevented || e.button !== 0 || e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return
var a = e.target && e.target.closest ? e.target.closest('a[href]') : null
if (!a || a.href.indexOf(ORIGIN + '/book/') !== 0) return
e.preventDefault()
open(a.href)
})
window.addEventListener('message', function (e) {
if (e.origin !== ORIGIN || !e.data || typeof e.data !== 'object') return
if (e.data.type === 'slac:height' && typeof e.data.height === 'number' && window.innerWidth > 640) {
frame().style.height = Math.max(360, Math.min(e.data.height, window.innerHeight - 90)) + 'px'
} else if (e.data.type === 'slac:navigate' && /^https:\/\/checkout\.stripe\.com\//.test(e.data.url)) {
window.location.href = e.data.url
} else if (e.data.type === 'slac:close' && dialog) {
dialog.close()
}
})
})()
About South London Acro
Placeholder blurb - who we are, why we started, and what we are building. Since 2017 we have run acro yoga and partner acrobatics jams, classes and workshops across South London and Surrey, with a focus on making the practice safe, accessible and fun for every body.
Meet the team
Team member one
they/them
Placeholder bio - three lines of copy about what this person does in the community, how long they have been jamming, and what they love to teach.