-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
// SPDX-FileCopyrightText: 2024 Shota FUJI <pockawoooh@gmail.com>
// SPDX-License-Identifier: AGPL-3.0-only
import { createElement, type IconNode } from "lucide";
import { wrapElement, YamoriElement } from "../element.ts";
import css from "./builder.css?inline";
export function createLucideElement(tagName: string, icon: IconNode) {
return wrapElement({
tagName,
constructor: class extends YamoriElement {
constructor() {
super();
const shadow = this.attachShadow({ mode: "open" });
const style = document.createElement("style");
style.textContent = css;
shadow.appendChild(style);
const body = createElement(icon);
body.classList.add("icon");
shadow.appendChild(body);
}
override connectedCallback() {
super.connectedCallback();
}
},
});
}