const html = String.raw;
const css = String.raw;
export function $(selector, root = document) {
return root.querySelector(selector);
}
export function $$(selector, root = document) {
return Array.from(root.querySelectorAll(selector));
}
export function $elem(tagName, props, ...children) {
const element = document.createElement(tagName);
if (props) {
for (const key of Object.keys(props)) {
if (key in element) {
element[key] = props[key];
} else {
element.setAttribute(key, props[key]);
}
}
}
element.append(...children);
return element;
}
class SiteNav extends HTMLElement {
connectedCallback() {
this.innerHTML = html`
`;
}
}
customElements.define("site-nav", SiteNav);
class SiteFooter extends HTMLElement {
connectedCallback() {
this.innerHTML = html`
`;
$("[data-slot='year']", this).textContent = new Date().getFullYear();
}
}
customElements.define("site-footer", SiteFooter);
class SiteCopyright extends HTMLElement {
connectedCallback() {
this.innerHTML = html`
©
Sage Fennel
`;
$("[data-slot='year']", this).textContent = new Date().getFullYear();
}
}
customElements.define("site-copyright", SiteCopyright);