Consolidate Lit repositories: figma-to-lit, figma_lit_example, lit-3d-piano, lit-calculator, lit-code-editor, lit-draggable-dom, lit-file-based-routing, lit-force-graph, lit-html-editor, lit-html-table, lit-modules, lit-native, lit-node-editor, lit-sheet-music, lit-starter-ts, lit-vscode-extension, lit-wmr, vite-lit-capacitor, vite-lit-element-starter, vite-rxdb-lit

This commit is contained in:
2026-05-16 22:17:12 -07:00
parent 4dc3c8a3ff
commit 95667e3038
527 changed files with 63872 additions and 54 deletions
+1
View File
@@ -0,0 +1 @@
node_modules
+1
View File
@@ -0,0 +1 @@
common --@aspect_rules_ts//ts:skipLibCheck=honor_tsconfig
+2
View File
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
+68
View File
@@ -0,0 +1,68 @@
name: Build and Deploy
on:
push:
branches: ["main", "master"]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
REGISTRY: git.rodydavis.dev
jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.7.1
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- name: Set up Bazel (Bazelisk)
run: npm install -g @bazel/bazelisk
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Verify Hermetic Bazel Build
run: bazel build //...
- name: Build Site
run: pnpm run build
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to registry
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ gitea.actor }}
password: ${{ secrets.GIT_TOKEN }}
- name: Build and push image
uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
push: true
tags: ${{ env.REGISTRY }}/${{ gitea.repository }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
+55
View File
@@ -0,0 +1,55 @@
# ==========================================
# 🌌 Federated Workspaces - Ultimate Ignores
# ==========================================
# --- System & Editor Files ---
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.vscode/
.idea/
*.swp
*.swo
# --- Bazel Convenience Symlinks & Outputs ---
bazel-*
bazel_out/
# --- C/C++ Outputs ---
*.o
*.obj
*.a
*.lib
*.so
*.dylib
*.dll
*.out
*.exe
# --- Go Outputs ---
*.test
*.prof
__debug_bin
MODULE.bazel.lock
# --- Node / JavaScript / pnpm ---
node_modules/
.npm/
.pnpm-store/
.pnpm-debug.log*
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# --- Dart / Flutter ---
.dart_tool/
.packages
.pub-cache/
.pub/
/build/
*.flutter-plugins
*.flutter-plugins-dependencies
View File
+24
View File
@@ -0,0 +1,24 @@
load("@aspect_rules_js//npm:defs.bzl", "npm_link_package")
load("@npm//:defs.bzl", "npm_link_all_packages")
load("@aspect_rules_ts//ts:defs.bzl", "ts_config", "ts_project")
npm_link_all_packages(name = "node_modules")
ts_config(
name = "tsconfig",
src = "tsconfig.json",
visibility = ["//visibility:public"],
)
ts_project(
name = "build",
srcs = glob(["docs/**/*.ts"]),
declaration = True,
source_map = True,
transpiler = "tsc",
tsconfig = ":tsconfig",
deps = [
"//:node_modules",
],
visibility = ["//visibility:public"],
)
+4
View File
@@ -0,0 +1,4 @@
FROM nginx:alpine
COPY docs /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2020 Rody Davis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+22
View File
@@ -0,0 +1,22 @@
module(
name = "lit_calculator",
version = "1.0.0",
)
bazel_dep(name = "aspect_rules_js", version = "3.1.1")
bazel_dep(name = "aspect_rules_ts", version = "3.1.0")
bazel_dep(name = "rules_nodejs", version = "6.7.3")
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//:pnpm-lock.yaml",
verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext", dev_dependency = True)
rules_ts_ext.deps()
use_repo(rules_ts_ext, "npm_typescript")
+5
View File
@@ -0,0 +1,5 @@
# Lit Calculator
Reactive calculator made with LitElement and no build system or framework.
Demo: https://rodydavis.github.io/lit-calculator/
+158
View File
@@ -0,0 +1,158 @@
import { LitElement, html, css } from "lit";
import { customElement, property } from "lit/decorators.js";
import "./keypad-input.js";
import "./key-pad.js";
import "./display-output.js";
@customElement("app-calculator")
export class AppCalculator extends LitElement {
@property()
width = "500px";
@property()
primaryColor = "red";
@property()
accentColor = "black";
static styles = css`
#base {
border: 2px solid black;
padding-bottom: 20px;
--base-padding: 10px;
}
#actions {
padding-top: var(--base-padding);
padding-left: var(--base-padding);
}
button {
font-size: 17px;
}
`;
connectedCallback() {
super.connectedCallback();
// @ts-ignore
window.addEventListener("select-number", this._handleNumber);
}
disconnectedCallback() {
// @ts-ignore
window.removeEventListener("select-number", this._handleNumber);
super.disconnectedCallback();
}
_staging: string = "";
_value: string = "";
_mode: string = "";
public get mode(): string {
return this._mode;
}
public set mode(v: string) {
const oldMode = this._mode;
const oldVal = this.value;
this._mode = v;
// @ts-ignore
this.requestUpdate("mode", oldMode);
// @ts-ignore
this.requestUpdate("value", oldVal);
}
private get value(): string {
if (this.mode == "") return this._value;
return this._staging;
}
private set value(v: string) {
var oldVal = "";
if (this.mode == "") {
oldVal = this._value;
this._value = v;
} else {
oldVal = this._staging;
this._staging = v;
}
// @ts-ignore
this.requestUpdate("value", oldVal);
}
_handleNumber = (event: CustomEvent) => {
const num = event.detail.value;
event.stopPropagation();
if (num === "=") {
this.calculate();
return;
}
if (this.value === "0") {
this.value = "";
}
if (num === "." && this.value.includes(".")) {
return;
}
this.value += num;
};
clear = () => {
this.value = "";
this._staging = "";
this._value = "";
this.mode = "";
};
calculate = () => {
const staging = Number(this._staging || "0");
const current = Number(this._value || "0");
var result: number = 0;
// Calculate
switch (this.mode) {
case "+":
result = staging + current;
break;
case "-":
result = staging - current;
break;
case "/":
result = staging / current;
break;
case "*":
result = staging * current;
break;
default:
break;
}
const output = result.toString();
this.value = output;
this._staging = output;
};
// Render element DOM by returning a `lit-html` template.
render() {
return html`<div
id="base"
style="width: ${this.width}; background-color: ${this.primaryColor};"
>
<display-output
value="${this.value}"
color="black"
textColor="white"
></display-output>
<div id="actions">
<button
@click=${this.clear}
?disabled=${this.value === "" && this.mode === ""}
>
Clear
</button>
<button @click="${() => (this.mode = "+")}">+</button>
<button @click="${() => (this.mode = "-")}">-</button>
<button @click="${() => (this.mode = "/")}">/</button>
<button @click="${() => (this.mode = "*")}">*</button>
</div>
<key-pad></key-pad>
</div>`;
}
}
+43
View File
@@ -0,0 +1,43 @@
import { LitElement, html, css } from "lit";
import { customElement, property } from "lit/decorators.js";
@customElement("display-output")
export class CalcDisplay extends LitElement {
@property()
color = "black";
@property()
textColor = "white";
@property()
value = "";
static styles = css`
#base {
background-color: black;
text-align: end;
display: inline-block;
margin: var(--base-padding);
width: calc(100% - calc(var(--base-padding) * 2));
border-bottom: 2px solid black;
}
#text-display {
color: white;
margin: 0px;
padding-top: 40px;
padding-right: 10px;
padding-bottom: 10px;
font-size: 36px;
}
`;
// Render element DOM by returning a `lit-html` template.
render() {
return html`<div id="base" style="background-color: ${this.color};">
<div id="text-display" style="color: ${this.textColor};">
${this.value || "0"}
</div>
</div>`;
}
}
+17
View File
@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
<title>Lit Calculator</title>
</head>
<body>
<app-calculator
width="350px"
primaryColor="red"
accentColor="blue"
></app-calculator>
<script type="module" src="./calculator.js"></script>
</body>
</html>
+97
View File
@@ -0,0 +1,97 @@
import { LitElement, html, css } from "lit";
import { customElement, property } from "lit/decorators.js";
@customElement("key-pad")
export class CalcKeyPad extends LitElement {
@property()
accentColor = "blue";
@property()
textColor = "white";
@property()
actionColor = "black";
@property()
actionTextColor = "white";
static styles = css`
#base {
display: grid;
grid-template-columns: 33% 33% 33%;
padding-left: calc(var(--base-padding) / 2);
padding-right: calc(var(--base-padding) / 2);
}
keypad-input {
display: inline-grid;
margin: 5px;
}
`;
// Render element DOM by returning a `lit-html` template.
render() {
return html` <div id="base">
<keypad-input
number="7"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="8"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="9"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="4"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="5"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="6"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="1"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="2"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="3"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="0"
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="."
color="${this.accentColor}"
textColor="${this.textColor}"
></keypad-input>
<keypad-input
number="="
color="${this.actionColor}"
textColor="${this.actionTextColor}"
></keypad-input>
</div>`;
}
}
+64
View File
@@ -0,0 +1,64 @@
import { LitElement, html, css } from "lit";
import { customElement, property } from "lit/decorators.js";
@customElement("keypad-input")
export class CalcNumber extends LitElement {
@property()
number = "0";
@property()
color = "black";
@property()
textColor = "white";
static styles = css`
#base {
width: 100%;
height: 100%;
border-radius: 10px;
text-align: center;
float: left;
}
#base:hover {
box-shadow: 0 0 11px rgba(33, 33, 33, 0.2);
}
#base:active {
background-color: lightgrey;
}
button {
outline: 0 none;
color: white;
margin-top: 10px;
margin-bottom: 10px;
font-size: 20px;
}
`;
_onTap(e: Event) {
e.preventDefault();
const event = new CustomEvent("select-number", {
detail: { value: this.number } as any,
bubbles: true,
cancelable: true,
});
// @ts-ignore
window.dispatchEvent(event);
}
// Render element DOM by returning a `lit-html` template.
render() {
return html` <button
@click="${this._onTap}"
id="base"
style="background-color: ${this.color}; color: ${this.textColor};"
>
${this.number}
</button>`;
}
}
+10
View File
@@ -0,0 +1,10 @@
body {
margin: 0px;
padding: 0px;
font-family: sans-serif;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f2f5;
}
+18
View File
@@ -0,0 +1,18 @@
{
"name": "lit-calculator",
"version": "1.0.0",
"private": true,
"scripts": {
"build": "esbuild docs/calculator.ts --bundle --outfile=docs/calculator.js --format=esm --minify --target=es2022"
},
"dependencies": {
"lit": "^3.1.2"
},
"devDependencies": {
"typescript": "^5.4.0",
"esbuild": "^0.20.1"
},
"pnpm": {
"onlyBuiltDependencies": []
}
}
+311
View File
@@ -0,0 +1,311 @@
lockfileVersion: '9.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
importers:
.:
dependencies:
lit:
specifier: ^3.1.2
version: 3.3.3
devDependencies:
esbuild:
specifier: ^0.20.1
version: 0.20.2
typescript:
specifier: ^5.4.0
version: 5.9.3
packages:
'@esbuild/aix-ppc64@0.20.2':
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [aix]
'@esbuild/android-arm64@0.20.2':
resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
'@esbuild/android-arm@0.20.2':
resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
'@esbuild/android-x64@0.20.2':
resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
'@esbuild/darwin-arm64@0.20.2':
resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
'@esbuild/darwin-x64@0.20.2':
resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
'@esbuild/freebsd-arm64@0.20.2':
resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
'@esbuild/freebsd-x64@0.20.2':
resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
'@esbuild/linux-arm64@0.20.2':
resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
'@esbuild/linux-arm@0.20.2':
resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
'@esbuild/linux-ia32@0.20.2':
resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
'@esbuild/linux-loong64@0.20.2':
resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
'@esbuild/linux-mips64el@0.20.2':
resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
'@esbuild/linux-ppc64@0.20.2':
resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
'@esbuild/linux-riscv64@0.20.2':
resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
'@esbuild/linux-s390x@0.20.2':
resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
'@esbuild/linux-x64@0.20.2':
resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
'@esbuild/netbsd-x64@0.20.2':
resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
'@esbuild/openbsd-x64@0.20.2':
resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
'@esbuild/sunos-x64@0.20.2':
resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
'@esbuild/win32-arm64@0.20.2':
resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
'@esbuild/win32-ia32@0.20.2':
resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
'@esbuild/win32-x64@0.20.2':
resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
'@lit-labs/ssr-dom-shim@1.6.0':
resolution: {integrity: sha512-VHb0ALPMTlgKjM6yIxxoQNnpKyUKLD04VzeQdsiXkMqkvYlAHxq9glGLmgbb889/1GsohSOAjvQYoiBppXFqrQ==}
'@lit/reactive-element@2.1.2':
resolution: {integrity: sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==}
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
esbuild@0.20.2:
resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
engines: {node: '>=12'}
hasBin: true
lit-element@4.2.2:
resolution: {integrity: sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==}
lit-html@3.3.3:
resolution: {integrity: sha512-el8M6jK2o3RXBnrSHX3ZKrsN8zEV63pSExTO1wYJz7QndGYZ8353e2a5PPX+qHe2aGayfnchQmkAojaWAREOIA==}
lit@3.3.3:
resolution: {integrity: sha512-fycuvZg/hkpozL00lm1pEJH5nN/lr9ZXd6mJI2HSN4+Bzc+LDNdEApJ6HFbPkdFNHLvOplIIuJvxkS4XUxqirw==}
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
hasBin: true
snapshots:
'@esbuild/aix-ppc64@0.20.2':
optional: true
'@esbuild/android-arm64@0.20.2':
optional: true
'@esbuild/android-arm@0.20.2':
optional: true
'@esbuild/android-x64@0.20.2':
optional: true
'@esbuild/darwin-arm64@0.20.2':
optional: true
'@esbuild/darwin-x64@0.20.2':
optional: true
'@esbuild/freebsd-arm64@0.20.2':
optional: true
'@esbuild/freebsd-x64@0.20.2':
optional: true
'@esbuild/linux-arm64@0.20.2':
optional: true
'@esbuild/linux-arm@0.20.2':
optional: true
'@esbuild/linux-ia32@0.20.2':
optional: true
'@esbuild/linux-loong64@0.20.2':
optional: true
'@esbuild/linux-mips64el@0.20.2':
optional: true
'@esbuild/linux-ppc64@0.20.2':
optional: true
'@esbuild/linux-riscv64@0.20.2':
optional: true
'@esbuild/linux-s390x@0.20.2':
optional: true
'@esbuild/linux-x64@0.20.2':
optional: true
'@esbuild/netbsd-x64@0.20.2':
optional: true
'@esbuild/openbsd-x64@0.20.2':
optional: true
'@esbuild/sunos-x64@0.20.2':
optional: true
'@esbuild/win32-arm64@0.20.2':
optional: true
'@esbuild/win32-ia32@0.20.2':
optional: true
'@esbuild/win32-x64@0.20.2':
optional: true
'@lit-labs/ssr-dom-shim@1.6.0': {}
'@lit/reactive-element@2.1.2':
dependencies:
'@lit-labs/ssr-dom-shim': 1.6.0
'@types/trusted-types@2.0.7': {}
esbuild@0.20.2:
optionalDependencies:
'@esbuild/aix-ppc64': 0.20.2
'@esbuild/android-arm': 0.20.2
'@esbuild/android-arm64': 0.20.2
'@esbuild/android-x64': 0.20.2
'@esbuild/darwin-arm64': 0.20.2
'@esbuild/darwin-x64': 0.20.2
'@esbuild/freebsd-arm64': 0.20.2
'@esbuild/freebsd-x64': 0.20.2
'@esbuild/linux-arm': 0.20.2
'@esbuild/linux-arm64': 0.20.2
'@esbuild/linux-ia32': 0.20.2
'@esbuild/linux-loong64': 0.20.2
'@esbuild/linux-mips64el': 0.20.2
'@esbuild/linux-ppc64': 0.20.2
'@esbuild/linux-riscv64': 0.20.2
'@esbuild/linux-s390x': 0.20.2
'@esbuild/linux-x64': 0.20.2
'@esbuild/netbsd-x64': 0.20.2
'@esbuild/openbsd-x64': 0.20.2
'@esbuild/sunos-x64': 0.20.2
'@esbuild/win32-arm64': 0.20.2
'@esbuild/win32-ia32': 0.20.2
'@esbuild/win32-x64': 0.20.2
lit-element@4.2.2:
dependencies:
'@lit-labs/ssr-dom-shim': 1.6.0
'@lit/reactive-element': 2.1.2
lit-html: 3.3.3
lit-html@3.3.3:
dependencies:
'@types/trusted-types': 2.0.7
lit@3.3.3:
dependencies:
'@lit/reactive-element': 2.1.2
lit-element: 4.2.2
lit-html: 3.3.3
typescript@5.9.3: {}
+22
View File
@@ -0,0 +1,22 @@
{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "node",
"lib": ["esnext", "dom"],
"declaration": true,
"sourceMap": true,
"inlineSources": false,
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"noImplicitAny": true,
"noImplicitThis": true,
"skipLibCheck": true,
"experimentalDecorators": true
},
"include": ["docs/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}