2024-04-17 11:20:27 -04:00
|
|
|
document.addEventListener('click', event => {
|
|
|
|
|
const toggle = event.target?.closest('.code-example-toggle');
|
|
|
|
|
const pen = event.target?.closest('.code-example-pen');
|
|
|
|
|
|
|
|
|
|
// Toggle source
|
|
|
|
|
if (toggle) {
|
|
|
|
|
const codeExample = toggle.closest('.code-example');
|
|
|
|
|
const isOpen = !codeExample.classList.contains('open');
|
|
|
|
|
|
|
|
|
|
toggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
|
|
|
|
|
codeExample.classList.toggle('open', isOpen);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Edit in CodePen
|
|
|
|
|
if (pen) {
|
|
|
|
|
const codeExample = pen.closest('.code-example');
|
|
|
|
|
const code = codeExample.querySelector('code');
|
2024-06-18 13:49:17 -04:00
|
|
|
const cdnUrl = document.documentElement.dataset.cdnUrl;
|
2024-06-20 12:09:13 -04:00
|
|
|
const html =
|
|
|
|
|
`<script type="module" src="${cdnUrl}webawesome.loader.js"></script>\n` +
|
2024-12-13 13:45:33 -05:00
|
|
|
`<link rel="stylesheet" href="${cdnUrl}styles/themes/default.css">\n` +
|
2024-12-20 14:01:01 -05:00
|
|
|
`<link rel="stylesheet" href="${cdnUrl}styles/webawesome.css">\n` +
|
2024-12-13 13:45:33 -05:00
|
|
|
`<link rel="stylesheet" href="${cdnUrl}styles/utilities.css">\n\n` +
|
2024-06-20 12:09:13 -04:00
|
|
|
`${code.textContent}`;
|
2024-12-20 15:39:30 -05:00
|
|
|
const css = 'html > body {\n padding: 2rem !important;\n}';
|
2024-04-17 11:20:27 -04:00
|
|
|
const js = '';
|
|
|
|
|
|
|
|
|
|
const form = document.createElement('form');
|
|
|
|
|
form.action = 'https://codepen.io/pen/define';
|
|
|
|
|
form.method = 'POST';
|
|
|
|
|
form.target = '_blank';
|
|
|
|
|
|
|
|
|
|
const data = {
|
|
|
|
|
title: '',
|
|
|
|
|
description: '',
|
|
|
|
|
tags: ['webawesome'],
|
|
|
|
|
editors: '1000',
|
|
|
|
|
head: '<meta name="viewport" content="width=device-width">',
|
|
|
|
|
html_classes: '',
|
|
|
|
|
css_external: '',
|
|
|
|
|
js_external: '',
|
|
|
|
|
js_module: true,
|
|
|
|
|
js_pre_processor: 'none',
|
|
|
|
|
html,
|
|
|
|
|
css,
|
2024-12-14 17:08:29 -05:00
|
|
|
js,
|
2024-04-17 11:20:27 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const input = document.createElement('input');
|
|
|
|
|
input.type = 'hidden';
|
|
|
|
|
input.name = 'data';
|
|
|
|
|
input.value = JSON.stringify(data);
|
|
|
|
|
form.append(input);
|
|
|
|
|
|
|
|
|
|
document.documentElement.append(form);
|
|
|
|
|
form.submit();
|
|
|
|
|
form.remove();
|
|
|
|
|
}
|
|
|
|
|
});
|