From 5521bb9db6004b381c46ebfef8f593468f70270e Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 13 Jul 2024 13:14:06 +0200 Subject: [PATCH 01/16] Added pro elements package --- packages/pro-elements/LICENSE | 21 + packages/pro-elements/README.md | 3 + packages/pro-elements/bunfig.toml | 2 + packages/pro-elements/index.d.ts | 30 ++ packages/pro-elements/index.js | 1 + packages/pro-elements/package.json | 52 ++ .../packages/audio-meter/package.json | 28 ++ .../packages/audio-meter/src/AudioMeter.ts | 131 +++++ .../packages/audio-meter/src/index.ts | 7 + .../packages/audio-meter/tsconfig.json | 3 + .../packages/fluid-input/package.json | 28 ++ .../packages/fluid-input/src/FluidInput.ts | 472 ++++++++++++++++++ .../packages/fluid-input/src/index.ts | 7 + .../packages/fluid-input/tsconfig.json | 3 + .../pro-elements/packages/knob/package.json | 28 ++ .../pro-elements/packages/knob/src/Knob.ts | 293 +++++++++++ .../pro-elements/packages/knob/src/index.ts | 7 + .../pro-elements/packages/knob/tsconfig.json | 3 + packages/pro-elements/test/preload.ts | 7 + packages/pro-elements/tsconfig.json | 12 + 20 files changed, 1138 insertions(+) create mode 100644 packages/pro-elements/LICENSE create mode 100644 packages/pro-elements/README.md create mode 100644 packages/pro-elements/bunfig.toml create mode 100644 packages/pro-elements/index.d.ts create mode 100644 packages/pro-elements/index.js create mode 100644 packages/pro-elements/package.json create mode 100644 packages/pro-elements/packages/audio-meter/package.json create mode 100644 packages/pro-elements/packages/audio-meter/src/AudioMeter.ts create mode 100644 packages/pro-elements/packages/audio-meter/src/index.ts create mode 100644 packages/pro-elements/packages/audio-meter/tsconfig.json create mode 100644 packages/pro-elements/packages/fluid-input/package.json create mode 100644 packages/pro-elements/packages/fluid-input/src/FluidInput.ts create mode 100644 packages/pro-elements/packages/fluid-input/src/index.ts create mode 100644 packages/pro-elements/packages/fluid-input/tsconfig.json create mode 100644 packages/pro-elements/packages/knob/package.json create mode 100644 packages/pro-elements/packages/knob/src/Knob.ts create mode 100644 packages/pro-elements/packages/knob/src/index.ts create mode 100644 packages/pro-elements/packages/knob/tsconfig.json create mode 100644 packages/pro-elements/test/preload.ts create mode 100644 packages/pro-elements/tsconfig.json diff --git a/packages/pro-elements/LICENSE b/packages/pro-elements/LICENSE new file mode 100644 index 00000000..370902ca --- /dev/null +++ b/packages/pro-elements/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Atrium Contributors + +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. diff --git a/packages/pro-elements/README.md b/packages/pro-elements/README.md new file mode 100644 index 00000000..f63885bb --- /dev/null +++ b/packages/pro-elements/README.md @@ -0,0 +1,3 @@ +# Pro Elements + +Elements for professional web applications. diff --git a/packages/pro-elements/bunfig.toml b/packages/pro-elements/bunfig.toml new file mode 100644 index 00000000..786a3774 --- /dev/null +++ b/packages/pro-elements/bunfig.toml @@ -0,0 +1,2 @@ +[test] +preload = ["./test/preload.ts"] diff --git a/packages/pro-elements/index.d.ts b/packages/pro-elements/index.d.ts new file mode 100644 index 00000000..7baaec77 --- /dev/null +++ b/packages/pro-elements/index.d.ts @@ -0,0 +1,30 @@ +type ElementProps = { + [K in keyof T]: CustomElementProps; +}; + +type CustomElementChildren = Element | Element[] | JSX.Element | JSX.Element[]; + +type CustomElementProps = { + [K in keyof Omit as string & K]?: T[K]; +} & { + children?: CustomElementChildren; + class?: string; + onChange?: (e: Event) => void; + // TODO: merge with default react props +}; + +type CustomElements = ElementProps; + +declare global { + namespace JSX { + namespace JSX { + interface IntrinsicElements extends ElementProps {} + } + } + + declare module "solid-js" { + namespace JSX { + interface IntrinsicElements extends ElementProps {} + } + } +} diff --git a/packages/pro-elements/index.js b/packages/pro-elements/index.js new file mode 100644 index 00000000..ff7bd09c --- /dev/null +++ b/packages/pro-elements/index.js @@ -0,0 +1 @@ +// placeholder diff --git a/packages/pro-elements/package.json b/packages/pro-elements/package.json new file mode 100644 index 00000000..d64adb73 --- /dev/null +++ b/packages/pro-elements/package.json @@ -0,0 +1,52 @@ +{ + "name": "@sv/pro-elements", + "author": "atrium", + "contributors": [ + "luckydye" + ], + "version": "1.0.0", + "description": "Atrium Pro Elements", + "type": "module", + "scripts": { + "check": "# tsc --pretty", + "test": "# bun test .", + "publish-package": "# task publish" + }, + "files": [ + "README.md", + "packages", + "index.d.ts", + "index.js", + "tsconfig.json" + ], + "keywords": [], + "license": "MIT", + "dependencies": { + "lit": "^3.1.3" + }, + "devDependencies": { + "@happy-dom/global-registrator": "^14.7.1", + "intersection-observer": "^0.12.2" + }, + "exports": { + ".": { + "import": "./index.js", + "types": "./index.d.ts" + }, + "./knob": { + "import": "./packages/toggle/dist/index.js", + "require": "./packages/toggle/dist/index.cjs", + "types": "./packages/toggle/src/index.ts" + }, + "./fluid-input": { + "import": "./packages/expandable/dist/index.js", + "require": "./packages/expandable/dist/index.cjs", + "types": "./packages/expandable/src/index.ts" + }, + "./audio-meter": { + "import": "./packages/dropdown/dist/index.js", + "require": "./packages/dropdown/dist/index.cjs", + "types": "./packages/dropdown/src/index.ts" + } + } +} diff --git a/packages/pro-elements/packages/audio-meter/package.json b/packages/pro-elements/packages/audio-meter/package.json new file mode 100644 index 00000000..1409b0bc --- /dev/null +++ b/packages/pro-elements/packages/audio-meter/package.json @@ -0,0 +1,28 @@ +{ + "name": "@atrium-ui/audio-meter", + "author": "atrium", + "contributors": [], + "private": true, + "description": "", + "type": "module", + "main": "dist/index.js", + "types": "src/index.ts", + "scripts": { + "build": "# tsup", + "dev": "# tsup --watch" + }, + "tsup": { + "entry": [ + "src/index.ts" + ], + "format": [ + "esm", + "cjs" + ], + "external": [ + "lit" + ], + "sourcemap": true, + "clean": true + } +} diff --git a/packages/pro-elements/packages/audio-meter/src/AudioMeter.ts b/packages/pro-elements/packages/audio-meter/src/AudioMeter.ts new file mode 100644 index 00000000..dddbfe77 --- /dev/null +++ b/packages/pro-elements/packages/audio-meter/src/AudioMeter.ts @@ -0,0 +1,131 @@ +import { html, LitElement } from "lit"; + +function splitAudioSourceChannels(audioContext, source) { + const splitter = audioContext.createChannelSplitter(source.channelCount); + source.connect(splitter); + + const outputs = []; + for (let i = 0; i < splitter.channelCount; i++) { + const gain = audioContext.createGain(); + gain.out = true; + splitter.connect(gain, i); + outputs[i] = gain; + } + + return outputs; +} + +export class AudioStreamMeter extends LitElement { + constructor(context, name) { + super(); + + this.name = name; + this.audioContext = context; + + this.meter = new AudioWorkletNode(this.audioContext, "audio-db-meter"); + this.levels = [0, 0]; + + this.value = []; + this.history = []; + this.peak = []; + this.target = []; + this.history = []; + + this.meter.port.onmessage = (msg) => { + this.levels = msg.data; + }; + + this.canvas = document.createElement("canvas"); + this.canvas.width = 150; + this.canvas.height = 20; + this.context = this.canvas.getContext("2d"); + + const updateAudioMeter = () => { + this.renderAudioMeter(); + requestAnimationFrame(updateAudioMeter); + }; + updateAudioMeter(); + } + + setSourceStream(stream) { + const audioSource = this.audioContext.createMediaStreamSource(stream); + this.setAudioSourceNode(audioSource); + } + + setAudioSourceNode(audioSourceNode) { + this.audioSource = audioSourceNode; + this.audioSource.connect(this.meter); + } + + setAudioSourceFromTrack(audioTrack) { + const stream = new MediaStream(); + stream.addTrack(audioTrack); + this.setSourceStream(stream); + } + + renderAudioMeter() { + const channelHeight = 2; + this.canvas.height = channelHeight * this.levels.length + (this.levels.length - 1); + + for (let channel = 0; channel < this.levels.length; channel++) { + // eval levels + this.value[channel] = this.value[channel] || 0; + this.history[channel] = this.history[channel] || []; + this.peak[channel] = this.peak[channel] || 0; + this.target[channel] = this.target[channel] || 0; + + this.target[channel] = (1 / -this.levels[channel]) * 1000; + + if (Number.isFinite(this.target[channel])) { + this.value[channel] += (this.target[channel] - this.value[channel]) * 0.1; + } + + this.history[channel].push(this.target[channel]); + if (this.history[channel].length > 100) { + this.history[channel].shift(); + } + + this.peak[channel] = Math.max(...this.history[channel]); + + // draw everything + const y = channel * channelHeight + channel; + + this.context.fillStyle = "#1a8e1a"; + this.context.fillRect(0, y, this.target[channel], channelHeight); + + this.context.fillStyle = "#00ff00"; + this.context.fillRect(0, y, this.value[channel], channelHeight); + + if (this.levels[channel] < 0) { + this.context.fillStyle = "#00ff00"; + } else { + this.context.fillStyle = "red"; + } + this.context.fillRect(this.peak[channel], y, 1, channelHeight); + } + + this.update(); + } + + render() { + return html` + + ${this.name ? html`
${this.name}
` : ""} ${this.canvas} + `; + } +} + +customElements.define("audio-meter", AudioStreamMeter); diff --git a/packages/pro-elements/packages/audio-meter/src/index.ts b/packages/pro-elements/packages/audio-meter/src/index.ts new file mode 100644 index 00000000..a637a32a --- /dev/null +++ b/packages/pro-elements/packages/audio-meter/src/index.ts @@ -0,0 +1,7 @@ +/** + * @license + * Copyright (c) 2024 Atrium Contributors + * SPDX-License-Identifier: MIT + */ + +export { AudioStreamMeter } from "./AudioMeter.js"; diff --git a/packages/pro-elements/packages/audio-meter/tsconfig.json b/packages/pro-elements/packages/audio-meter/tsconfig.json new file mode 100644 index 00000000..4082f16a --- /dev/null +++ b/packages/pro-elements/packages/audio-meter/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/packages/pro-elements/packages/fluid-input/package.json b/packages/pro-elements/packages/fluid-input/package.json new file mode 100644 index 00000000..1af68da0 --- /dev/null +++ b/packages/pro-elements/packages/fluid-input/package.json @@ -0,0 +1,28 @@ +{ + "name": "@atrium-ui/fluid-input", + "author": "atrium", + "contributors": [], + "private": true, + "description": "", + "type": "module", + "main": "dist/index.js", + "types": "src/index.ts", + "scripts": { + "build": "# tsup", + "dev": "# tsup --watch" + }, + "tsup": { + "entry": [ + "src/index.ts" + ], + "format": [ + "esm", + "cjs" + ], + "external": [ + "lit" + ], + "sourcemap": true, + "clean": true + } +} diff --git a/packages/pro-elements/packages/fluid-input/src/FluidInput.ts b/packages/pro-elements/packages/fluid-input/src/FluidInput.ts new file mode 100644 index 00000000..c33283b2 --- /dev/null +++ b/packages/pro-elements/packages/fluid-input/src/FluidInput.ts @@ -0,0 +1,472 @@ +import { html, css, LitElement } from "lit"; +import { customElement } from "lit/decorators.js"; + +function map( + value: number, + inMin: number, + inMax: number, + outMin: number, + outMax: number, +) { + return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin; +} + +@customElement("fluid-input") +export class FluidInput extends LitElement { + internalValue = 400; + + internalMin = 100; + + internalMax = 600; + + internalSteps = 10; + + input: HTMLInputElement | undefined | null; + + inputValue: HTMLInputElement | undefined | null; + + valueContainer: HTMLInputElement | undefined | null; + + leftArrow: Element | undefined | null; + + rightArrow: Element | undefined | null; + + static get properties() { + return { + value: { + type: Number, + }, + min: { + type: Number, + }, + max: { + type: Number, + }, + steps: { + type: Number, + }, + }; + } + + get value() { + return this.internalValue; + } + + set value(val) { + this.internalValue = +val; + this.updateValue(); + } + + get min() { + return this.internalMin; + } + + set min(val) { + this.internalMin = +val; + this.updateValue(); + } + + get max() { + return this.internalMax; + } + + set max(val) { + this.internalMax = +val; + this.updateValue(); + } + + get steps() { + return this.internalSteps; + } + + set steps(val) { + this.internalSteps = +val; + this.updateValue(); + } + + get suffix() { + return this.getAttribute("suffix"); + } + + get isRange() { + return this.max || this.min; + } + + connectedCallback(): void { + super.connectedCallback(); + + requestAnimationFrame(() => { + this.input = this.shadowRoot?.querySelector(".input-container") as HTMLInputElement; + this.inputValue = this.shadowRoot?.querySelector( + ".input-value", + ) as HTMLInputElement; + + this.valueContainer = this.shadowRoot?.querySelector( + ".value-container", + ) as HTMLInputElement; + + this.leftArrow = this.shadowRoot?.querySelector(".left-arrow"); + this.rightArrow = this.shadowRoot?.querySelector(".right-arrow"); + + this.registerHandlers(); + this.updateValue(); + }); + } + + updateValue() { + if (this.isRange && this.input != null) { + this.input.style.setProperty( + "--value", + map(this.value, this.min, this.max, 0, 1).toString(), + ); + } + + const getPrecision = (n: number) => { + const precParts = n.toString().split("."); + const size = precParts[1] ? precParts[1].length : 0; + + // return 0 if precision is smaller then .000 + if (precParts[1] && precParts[1].substring(0, 3) === "000") { + return 0; + } + + return size; + }; + + const valuePrecision = getPrecision(this.value); + const stepsPrecision = getPrecision(this.steps); + + const precision = valuePrecision > stepsPrecision ? stepsPrecision : valuePrecision; + + if (this.inputValue) { + this.inputValue.value = this.value.toFixed(precision); + this.inputValue.size = this.inputValue.value.length; + } + } + + setValue(value: number) { + const latValue = this.value; + + if (this.isRange) { + this.value = Math.min(Math.max(value, this.min), this.max); + } else { + this.value = value; + } + + this.dispatchEvent(new CustomEvent("change", { detail: this.value - latValue })); + } + + registerHandlers() { + let startPos: [number, number] | null = null; + let startMovePos: [number, number] | null = null; + let startValue = this.value; + let focused = false; + + const cancel = () => { + startPos = null; + startMovePos = null; + if (this.input) { + this.input.removeAttribute("active"); + } + }; + + if (this.valueContainer) { + this.valueContainer.addEventListener("click", (e) => { + if (this.inputValue) { + this.inputValue.disabled = false; + focused = true; + + this.setAttribute("active", ""); + + this.inputValue.focus(); + } + }); + } + + const up = () => { + cancel(); + }; + const start = (e: TouchEvent | MouseEvent) => { + let x = 0; + let y = 0; + + if (e instanceof MouseEvent) { + x = e.clientX; + y = e.clientY; + } else { + x = e.touches[0].clientX; + y = e.touches[0].clientY; + } + + if (!focused) { + startPos = [x, y]; + startValue = this.value; + if (this.input) { + this.input.setAttribute("active", ""); + } + e.preventDefault(); + } + }; + const move = (e: TouchEvent | MouseEvent) => { + let x = 0; + let y = 0; + + if (e instanceof MouseEvent) { + x = e.clientX; + y = e.clientY; + } else { + x = e.touches[0].clientX; + y = e.touches[0].clientY; + } + + if (startPos) { + if (Math.abs(x - startPos[0]) > 10) { + startMovePos = [x, y]; + } + } + if (startMovePos && startPos) { + // apply shift key scaler + let scale = e.shiftKey ? 0.0005 : 0.005; + // scale to min max range + if (this.max - this.min > 0) { + scale *= (this.max - this.min) / 1; + } + + // set value by absolute delta movement * scale + let absolute = startValue + (x - startPos[0]) * scale; + // apply steps + absolute -= absolute % this.steps; + + this.setValue(absolute); + e.preventDefault(); + } + }; + + const cancelInput = () => { + this.setValue(this.value); + if (!this.inputValue) return; + this.inputValue.disabled = true; + focused = false; + this.removeAttribute("active"); + }; + + const submit = () => { + if (!this.inputValue) return; + + if (Number.isNaN(this.inputValue.value)) { + try { + const evalValue = +this.inputValue.value; + this.setValue(evalValue); + } catch (err) { + console.log(err); + } + + cancelInput(); + } else { + const evalValue = eval(this.inputValue.value); + this.setValue(parseFloat(evalValue)); + this.inputValue.disabled = true; + this.removeAttribute("active"); + focused = false; + } + }; + + const input = (e: KeyboardEvent) => { + if (e.key === "Enter") { + submit(); + } else if (e.key === "Escape") { + cancelInput(); + } + }; + + if (this.inputValue && this.input && this.rightArrow && this.leftArrow) { + this.inputValue.addEventListener("blur", submit); + this.inputValue.addEventListener("keydown", input); + + // mouse + this.input.addEventListener("mousedown", start); + window.addEventListener("mousemove", move); + + // touch + this.input.addEventListener("touchstart", start); + window.addEventListener("touchmove", move); + + // touch + window.addEventListener("touchend", up); + window.addEventListener("touchcancel", up); + + // mouse + window.addEventListener("mouseup", up); + window.addEventListener("mousecancel", up); + window.addEventListener("mouseleave", up); + + this.leftArrow.addEventListener("click", (e) => { + this.setValue(this.value - this.steps); + e.preventDefault(); + }); + this.rightArrow.addEventListener("click", (e) => { + this.setValue(this.value + this.steps); + e.preventDefault(); + }); + } + + // touch + this.addEventListener("touchstart", (e) => { + if (!startPos && !focused) { + e.preventDefault(); + } + }); + + // mouse + this.addEventListener("mousedown", (e) => { + if (!startPos && !focused) { + e.preventDefault(); + } + }); + } + + static get styles() { + return css` + :host { + display: inline-block; + height: 20px; + width: 85px; + + --color-input-background: #c4c4c4; + --color-input-hover-background: #cccccc; + --color-input-active-background: #cccccc; + --value-background-color: var(--accent-color); + } + + .input-container { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + background: var(--color-input-background); + border-radius: 4px; + cursor: ew-resize; + position: relative; + overflow: hidden; + border: 1px solid transparent; + } + + .input-container:before { + content: ""; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: calc(100% * var(--value)); + pointer-events: none; + background: var(--value-background-color); + opacity: 0.75; + } + + .input-container:hover { + background: var(--color-input-hover-background); + } + + .input-container[active] { + background: var(--color-input-active-background); + border-color: grey; + } + + .value-container { + white-space: nowrap; + height: 100%; + } + + .input-value { + cursor: ew-resize; + height: 100%; + display: inline-flex; + align-items: center; + justify-content: center; + border: none; + background: transparent; + margin: 0; + width: auto; + padding: 0; + color: inherit; + font-family: inherit; + font-size: inherit; + text-align: center; + position: relative; + z-index: 1000; + } + + .input-value:focus { + cursor: text; + } + + .value-suffix { + opacity: 0.5; + pointer-events: none; + } + + :host([active]) .value-suffix { + display: none; + } + + .input-value:focus { + outline: none; + cursor: text; + } + + .arrow { + padding: 0 6px; + height: 100%; + display: flex; + align-items: center; + cursor: pointer; + opacity: 0.75; + position: absolute; + } + + .left-arrow { + left: 0; + } + .right-arrow { + right: 0; + } + + .arrow:hover { + background: rgba(0, 0, 0, 0.1); + } + + .arrow:active { + background: rgba(255, 255, 255, 0.25); + } + + .arrow svg { + fill: none; + stroke: #fff; + stroke-width: 1.25px; + stroke-linecap: round; + } + `; + } + + render() { + return html` +
+ + + + + + + + ${this.suffix ? html` ${this.suffix} ` : ""} + + + + + + +
+ `; + } +} diff --git a/packages/pro-elements/packages/fluid-input/src/index.ts b/packages/pro-elements/packages/fluid-input/src/index.ts new file mode 100644 index 00000000..6abb70cd --- /dev/null +++ b/packages/pro-elements/packages/fluid-input/src/index.ts @@ -0,0 +1,7 @@ +/** + * @license + * Copyright (c) 2024 Atrium Contributors + * SPDX-License-Identifier: MIT + */ + +export { FluidInput } from "./FluidInput.js"; diff --git a/packages/pro-elements/packages/fluid-input/tsconfig.json b/packages/pro-elements/packages/fluid-input/tsconfig.json new file mode 100644 index 00000000..4082f16a --- /dev/null +++ b/packages/pro-elements/packages/fluid-input/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/packages/pro-elements/packages/knob/package.json b/packages/pro-elements/packages/knob/package.json new file mode 100644 index 00000000..a580d614 --- /dev/null +++ b/packages/pro-elements/packages/knob/package.json @@ -0,0 +1,28 @@ +{ + "name": "@atrium-ui/knob", + "author": "atrium", + "contributors": [], + "private": true, + "description": "", + "type": "module", + "main": "dist/index.js", + "types": "src/index.ts", + "scripts": { + "build": "# tsup", + "dev": "# tsup --watch" + }, + "tsup": { + "entry": [ + "src/index.ts" + ], + "format": [ + "esm", + "cjs" + ], + "external": [ + "lit" + ], + "sourcemap": true, + "clean": true + } +} diff --git a/packages/pro-elements/packages/knob/src/Knob.ts b/packages/pro-elements/packages/knob/src/Knob.ts new file mode 100644 index 00000000..6e9e7b2b --- /dev/null +++ b/packages/pro-elements/packages/knob/src/Knob.ts @@ -0,0 +1,293 @@ +import { html, render } from "lit"; + +function map(value, in_min, in_max, out_min, out_max) { + return ((value - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min; +} + +export class Knob extends HTMLElement { + template() { + return html` + + +
+
+
+
+
+ +
+
+
+ `; + } + + static get observedAttributes() { + return ["value", "min", "max", "steps", "offset"]; + } + + get value() { + return this._value; + } + set value(val) { + this._value = +val; + this.update(); + } + + get min() { + return this._min; + } + set min(val) { + this._min = +val; + this.update(); + } + + get max() { + return this._max; + } + set max(val) { + this._max = +val; + this.update(); + } + + get steps() { + return this._steps; + } + set steps(val) { + this._steps = +val; + this.update(); + } + + get offset() { + return this._offset; + } + set offset(val) { + this._offset = +val; + this.update(); + } + + constructor() { + super(); + + this._value = 0; + this._min = 0; + this._max = 100; + this._steps = 1; + this._offset = 0; + + this.attachShadow({ mode: "open" }); + this.render(); + + this._ringColor = "rgba(0, 0, 0, 0.25)"; + this._ringColorFilled = "lime"; + + this.knob = this.shadowRoot.querySelector(".knob-container"); + this.knobValue = this.shadowRoot.querySelector(".knob-value"); + this.knobHandle = this.shadowRoot.querySelector(".knob-handle"); + + const display = this.shadowRoot.querySelector(".knob-display"); + this.displayContext = display.getContext("2d"); + + this.registerHandlers(); + this.update(); + } + + registerHandlers() { + let startPos = null; + let startValue = this.value; + + const cancel = () => { + startPos = null; + this.removeAttribute("active"); + }; + const start = (e) => { + startPos = [e.x, e.y]; + startValue = this.value; + this.setAttribute("active", ""); + }; + const move = (e) => { + if (startPos) { + // apply shift key scaler + let scale = e.shiftKey ? 0.0005 : 0.005; + // scale to min max range + scale *= this.max - this.min; + + // set value by absolute delta movement * scale + let absolute = startValue - (e.y - startPos[1]) * scale; + // apply steps + absolute = absolute - (absolute % this.steps); + + this.setValue(absolute); + e.preventDefault(); + } + }; + + this.knobHandle.addEventListener("mousedown", start); + window.addEventListener("mousemove", move); + + window.addEventListener("mouseup", cancel); + window.addEventListener("mousecancel", cancel); + window.addEventListener("mouseleave", cancel); + + this.addEventListener("dblclick", (e) => { + this.setValue(+this.getAttribute("value")); + }); + } + + attributeChangedCallback(name, oldValue, newValue) { + if (name == "value") { + this.setValue(newValue); + } + if (name == "min") { + this.min = +newValue; + } + if (name == "max") { + this.max = +newValue; + } + if (name == "steps") { + this.steps = +newValue; + } + if (name == "offset") { + this.offset = +newValue; + } + + this.update(); + } + + drawDisplay() { + const ctx = this.displayContext; + + ctx.canvas.width = 50; + ctx.canvas.height = 50; + + const width = ctx.canvas.width; + const height = ctx.canvas.height; + + ctx.clearRect(0, 0, width, height); + + ctx.lineWidth = 2.5; + + const r = width / 2 - 2.5; + + ctx.strokeStyle = this._ringColor; + ctx.beginPath(); + ctx.arc(width / 2, height / 2, r, (Math.PI / 4) * 3, (Math.PI / 4) * 3 * 3); + ctx.stroke(); + + const prog = map(this.value, this.min, this.max, 0, 1); + + let start = (Math.PI / 4) * 3 + this.offset * ((Math.PI / 4) * 3); + let end = (Math.PI / 4) * 3 * (2 * prog + 1); + + ctx.strokeStyle = this._ringColorFilled; + ctx.beginPath(); + if (end < start) { + ctx.arc(width / 2, height / 2, r, end, start); + } else { + ctx.arc(width / 2, height / 2, r, start, end); + } + ctx.stroke(); + } + + update() { + this.knob.style.setProperty("--value", map(this.value, this.min, this.max, 0, 1)); + + const precParts = this.steps.toString().split("."); + const precision = precParts[1] ? precParts[1].length : 0; + this.knobValue.setAttribute("value", this.value.toFixed(precision)); + + this.drawDisplay(); + } + + setValue(value) { + this.value = Math.min(Math.max(value, this.min), this.max); + + this.dispatchEvent(new Event("change")); + } + + render() { + render(this.template(), this.shadowRoot); + } +} + +customElements.define("a-knob", Knob); diff --git a/packages/pro-elements/packages/knob/src/index.ts b/packages/pro-elements/packages/knob/src/index.ts new file mode 100644 index 00000000..11f62f38 --- /dev/null +++ b/packages/pro-elements/packages/knob/src/index.ts @@ -0,0 +1,7 @@ +/** + * @license + * Copyright (c) 2024 Atrium Contributors + * SPDX-License-Identifier: MIT + */ + +export { Knob } from "./Knob.js"; diff --git a/packages/pro-elements/packages/knob/tsconfig.json b/packages/pro-elements/packages/knob/tsconfig.json new file mode 100644 index 00000000..4082f16a --- /dev/null +++ b/packages/pro-elements/packages/knob/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/packages/pro-elements/test/preload.ts b/packages/pro-elements/test/preload.ts new file mode 100644 index 00000000..8e5d50eb --- /dev/null +++ b/packages/pro-elements/test/preload.ts @@ -0,0 +1,7 @@ +import { GlobalRegistrator } from "@happy-dom/global-registrator"; + +GlobalRegistrator.register(); + +require("intersection-observer"); + +globalThis.IntersectionObserver = window.IntersectionObserver; diff --git a/packages/pro-elements/tsconfig.json b/packages/pro-elements/tsconfig.json new file mode 100644 index 00000000..ef226fd3 --- /dev/null +++ b/packages/pro-elements/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@sv/codestyle/tsconfig.json", + "compilerOptions": { + "useDefineForClassFields": false, + "experimentalDecorators": true, + "types": ["@types/bun"] + }, + "exclude": [ + "node_modules", + "**/dist" + ] +} From 7a86e67941f9e54045a48d52d3458b50b9d72b00 Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 13 Jul 2024 13:16:33 +0200 Subject: [PATCH 02/16] Added dropzone element to pro-elements --- .../packages/dropzone/package.json | 28 ++++++++ .../packages/dropzone/src/Dropzone.ts | 64 +++++++++++++++++++ .../packages/dropzone/src/index.ts | 7 ++ .../packages/dropzone/tsconfig.json | 3 + 4 files changed, 102 insertions(+) create mode 100644 packages/pro-elements/packages/dropzone/package.json create mode 100644 packages/pro-elements/packages/dropzone/src/Dropzone.ts create mode 100644 packages/pro-elements/packages/dropzone/src/index.ts create mode 100644 packages/pro-elements/packages/dropzone/tsconfig.json diff --git a/packages/pro-elements/packages/dropzone/package.json b/packages/pro-elements/packages/dropzone/package.json new file mode 100644 index 00000000..7df475cc --- /dev/null +++ b/packages/pro-elements/packages/dropzone/package.json @@ -0,0 +1,28 @@ +{ + "name": "@atrium-ui/dropzone", + "author": "atrium", + "contributors": [], + "private": true, + "description": "", + "type": "module", + "main": "dist/index.js", + "types": "src/index.ts", + "scripts": { + "build": "# tsup", + "dev": "# tsup --watch" + }, + "tsup": { + "entry": [ + "src/index.ts" + ], + "format": [ + "esm", + "cjs" + ], + "external": [ + "lit" + ], + "sourcemap": true, + "clean": true + } +} diff --git a/packages/pro-elements/packages/dropzone/src/Dropzone.ts b/packages/pro-elements/packages/dropzone/src/Dropzone.ts new file mode 100644 index 00000000..82d83f99 --- /dev/null +++ b/packages/pro-elements/packages/dropzone/src/Dropzone.ts @@ -0,0 +1,64 @@ +import { css, type CSSResultGroup, html, LitElement } from "lit"; + +export class FileDropEvent extends Event { + file: File; + + constructor(file: File) { + super("drop-file-event"); + + this.file = file; + } +} + +export class Dropzone extends LitElement { + constructor() { + super(); + + this.addEventListener("dragover", (e) => { + e.preventDefault(); + }); + + this.addEventListener("drop", (e) => { + const files = e.dataTransfer?.files; + + if (files) { + for (let file of files) { + if (file.type.match("video")) { + this.dispatchEvent(new FileDropEvent(file)); + } + } + } + + e.preventDefault(); + }); + } + + static get styles(): CSSResultGroup | undefined { + return css` + :host { + } + + .dropzone { + width: 500px; + height: 200px; + display: flex; + justify-content: center; + align-items: center; + pointer-events: none; + border: 1px solid currentColor; + border-radius: 6px; + opacity: 0.5; + } + `; + } + + render() { + return html` +
+

Drop Video or Audio here

+
+ `; + } +} + +customElements.define("a-dropzone", Dropzone); diff --git a/packages/pro-elements/packages/dropzone/src/index.ts b/packages/pro-elements/packages/dropzone/src/index.ts new file mode 100644 index 00000000..67bbb7bf --- /dev/null +++ b/packages/pro-elements/packages/dropzone/src/index.ts @@ -0,0 +1,7 @@ +/** + * @license + * Copyright (c) 2024 Atrium Contributors + * SPDX-License-Identifier: MIT + */ + +export { Dropzone } from "./Dropzone.js"; diff --git a/packages/pro-elements/packages/dropzone/tsconfig.json b/packages/pro-elements/packages/dropzone/tsconfig.json new file mode 100644 index 00000000..4082f16a --- /dev/null +++ b/packages/pro-elements/packages/dropzone/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} From f9c35417f9bd1c8190005eaa6bac9a75613c4a39 Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 24 Aug 2024 20:39:21 +0200 Subject: [PATCH 03/16] Reorgenaized pro elements and added layout package --- .../{pro-elements => elements-audio}/LICENSE | 0 .../README.md | 0 .../bunfig.toml | 0 .../index.d.ts | 0 .../{pro-elements => elements-audio}/index.js | 0 packages/elements-audio/package.json | 42 ++ .../packages/audio-meter/package.json | 0 .../packages/audio-meter/src/AudioMeter.ts | 0 .../packages/audio-meter/src/index.ts | 0 .../packages/audio-meter/tsconfig.json | 0 .../test/preload.ts | 0 .../tsconfig.json | 0 packages/elements-pro/LICENSE | 21 + packages/elements-pro/README.md | 20 + packages/elements-pro/bunfig.toml | 2 + packages/elements-pro/index.d.ts | 30 ++ packages/elements-pro/index.js | 1 + .../package.json | 2 +- .../packages/fluid-input/package.json | 0 .../packages/fluid-input/src/FluidInput.ts | 0 .../packages/fluid-input/src/index.ts | 0 .../packages/fluid-input}/tsconfig.json | 0 .../packages/knob/package.json | 0 .../packages/knob/src/Knob.ts | 0 .../packages/knob/src/index.ts | 0 .../packages/knob}/tsconfig.json | 0 .../elements-pro/packages/layout/README.md | 3 + .../elements-pro/packages/layout/index.html | 71 +++ .../elements-pro/packages/layout/package.json | 29 ++ .../packages/layout/src/Column.ts | 7 + .../elements-pro/packages/layout/src/Group.ts | 426 ++++++++++++++++++ .../elements-pro/packages/layout/src/Panel.ts | 392 ++++++++++++++++ .../elements-pro/packages/layout/src/index.ts | 9 + .../packages/layout}/tsconfig.json | 0 packages/elements-pro/test/preload.ts | 7 + packages/elements-pro/tsconfig.json | 12 + packages/elements/package.json | 7 +- .../packages/dropzone/package.json | 0 .../packages/dropzone/src/Dropzone.ts | 0 .../packages/dropzone/src/index.ts | 0 .../elements/packages/dropzone/tsconfig.json | 3 + 41 files changed, 1082 insertions(+), 2 deletions(-) rename packages/{pro-elements => elements-audio}/LICENSE (100%) rename packages/{pro-elements => elements-audio}/README.md (100%) rename packages/{pro-elements => elements-audio}/bunfig.toml (100%) rename packages/{pro-elements => elements-audio}/index.d.ts (100%) rename packages/{pro-elements => elements-audio}/index.js (100%) create mode 100644 packages/elements-audio/package.json rename packages/{pro-elements => elements-audio}/packages/audio-meter/package.json (100%) rename packages/{pro-elements => elements-audio}/packages/audio-meter/src/AudioMeter.ts (100%) rename packages/{pro-elements => elements-audio}/packages/audio-meter/src/index.ts (100%) rename packages/{pro-elements => elements-audio}/packages/audio-meter/tsconfig.json (100%) rename packages/{pro-elements => elements-audio}/test/preload.ts (100%) rename packages/{pro-elements => elements-audio}/tsconfig.json (100%) create mode 100644 packages/elements-pro/LICENSE create mode 100644 packages/elements-pro/README.md create mode 100644 packages/elements-pro/bunfig.toml create mode 100644 packages/elements-pro/index.d.ts create mode 100644 packages/elements-pro/index.js rename packages/{pro-elements => elements-pro}/package.json (98%) rename packages/{pro-elements => elements-pro}/packages/fluid-input/package.json (100%) rename packages/{pro-elements => elements-pro}/packages/fluid-input/src/FluidInput.ts (100%) rename packages/{pro-elements => elements-pro}/packages/fluid-input/src/index.ts (100%) rename packages/{pro-elements/packages/dropzone => elements-pro/packages/fluid-input}/tsconfig.json (100%) rename packages/{pro-elements => elements-pro}/packages/knob/package.json (100%) rename packages/{pro-elements => elements-pro}/packages/knob/src/Knob.ts (100%) rename packages/{pro-elements => elements-pro}/packages/knob/src/index.ts (100%) rename packages/{pro-elements/packages/fluid-input => elements-pro/packages/knob}/tsconfig.json (100%) create mode 100644 packages/elements-pro/packages/layout/README.md create mode 100644 packages/elements-pro/packages/layout/index.html create mode 100644 packages/elements-pro/packages/layout/package.json create mode 100644 packages/elements-pro/packages/layout/src/Column.ts create mode 100644 packages/elements-pro/packages/layout/src/Group.ts create mode 100644 packages/elements-pro/packages/layout/src/Panel.ts create mode 100644 packages/elements-pro/packages/layout/src/index.ts rename packages/{pro-elements/packages/knob => elements-pro/packages/layout}/tsconfig.json (100%) create mode 100644 packages/elements-pro/test/preload.ts create mode 100644 packages/elements-pro/tsconfig.json rename packages/{pro-elements => elements}/packages/dropzone/package.json (100%) rename packages/{pro-elements => elements}/packages/dropzone/src/Dropzone.ts (100%) rename packages/{pro-elements => elements}/packages/dropzone/src/index.ts (100%) create mode 100644 packages/elements/packages/dropzone/tsconfig.json diff --git a/packages/pro-elements/LICENSE b/packages/elements-audio/LICENSE similarity index 100% rename from packages/pro-elements/LICENSE rename to packages/elements-audio/LICENSE diff --git a/packages/pro-elements/README.md b/packages/elements-audio/README.md similarity index 100% rename from packages/pro-elements/README.md rename to packages/elements-audio/README.md diff --git a/packages/pro-elements/bunfig.toml b/packages/elements-audio/bunfig.toml similarity index 100% rename from packages/pro-elements/bunfig.toml rename to packages/elements-audio/bunfig.toml diff --git a/packages/pro-elements/index.d.ts b/packages/elements-audio/index.d.ts similarity index 100% rename from packages/pro-elements/index.d.ts rename to packages/elements-audio/index.d.ts diff --git a/packages/pro-elements/index.js b/packages/elements-audio/index.js similarity index 100% rename from packages/pro-elements/index.js rename to packages/elements-audio/index.js diff --git a/packages/elements-audio/package.json b/packages/elements-audio/package.json new file mode 100644 index 00000000..fc8e2edb --- /dev/null +++ b/packages/elements-audio/package.json @@ -0,0 +1,42 @@ +{ + "name": "@sv/pro-elements", + "author": "atrium", + "contributors": [ + "luckydye" + ], + "version": "1.0.0", + "description": "Atrium Pro Elements", + "type": "module", + "scripts": { + "check": "# tsc --pretty", + "test": "# bun test .", + "publish-package": "# task publish" + }, + "files": [ + "README.md", + "packages", + "index.d.ts", + "index.js", + "tsconfig.json" + ], + "keywords": [], + "license": "MIT", + "dependencies": { + "lit": "^3.1.3" + }, + "devDependencies": { + "@happy-dom/global-registrator": "^14.7.1", + "intersection-observer": "^0.12.2" + }, + "exports": { + ".": { + "import": "./index.js", + "types": "./index.d.ts" + }, + "./audio-meter": { + "import": "./packages/dropdown/dist/index.js", + "require": "./packages/dropdown/dist/index.cjs", + "types": "./packages/dropdown/src/index.ts" + } + } +} diff --git a/packages/pro-elements/packages/audio-meter/package.json b/packages/elements-audio/packages/audio-meter/package.json similarity index 100% rename from packages/pro-elements/packages/audio-meter/package.json rename to packages/elements-audio/packages/audio-meter/package.json diff --git a/packages/pro-elements/packages/audio-meter/src/AudioMeter.ts b/packages/elements-audio/packages/audio-meter/src/AudioMeter.ts similarity index 100% rename from packages/pro-elements/packages/audio-meter/src/AudioMeter.ts rename to packages/elements-audio/packages/audio-meter/src/AudioMeter.ts diff --git a/packages/pro-elements/packages/audio-meter/src/index.ts b/packages/elements-audio/packages/audio-meter/src/index.ts similarity index 100% rename from packages/pro-elements/packages/audio-meter/src/index.ts rename to packages/elements-audio/packages/audio-meter/src/index.ts diff --git a/packages/pro-elements/packages/audio-meter/tsconfig.json b/packages/elements-audio/packages/audio-meter/tsconfig.json similarity index 100% rename from packages/pro-elements/packages/audio-meter/tsconfig.json rename to packages/elements-audio/packages/audio-meter/tsconfig.json diff --git a/packages/pro-elements/test/preload.ts b/packages/elements-audio/test/preload.ts similarity index 100% rename from packages/pro-elements/test/preload.ts rename to packages/elements-audio/test/preload.ts diff --git a/packages/pro-elements/tsconfig.json b/packages/elements-audio/tsconfig.json similarity index 100% rename from packages/pro-elements/tsconfig.json rename to packages/elements-audio/tsconfig.json diff --git a/packages/elements-pro/LICENSE b/packages/elements-pro/LICENSE new file mode 100644 index 00000000..370902ca --- /dev/null +++ b/packages/elements-pro/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Atrium Contributors + +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. diff --git a/packages/elements-pro/README.md b/packages/elements-pro/README.md new file mode 100644 index 00000000..ca9d525b --- /dev/null +++ b/packages/elements-pro/README.md @@ -0,0 +1,20 @@ +# Pro Elements + +Elements for professional web applications. + +Elements: +- Fluid Number Input +- Multiline Text +- Single Select +- Multiple Select +- Switch +- Checkbox +- Tab Group +- Panel Layout +- Range Slider +- Accordion Expandable Area +- Text Search Input +- Toggle Button +- Editable Text Field (dbclick to edit) +- Custom Popover +- Combobox with Text Search diff --git a/packages/elements-pro/bunfig.toml b/packages/elements-pro/bunfig.toml new file mode 100644 index 00000000..786a3774 --- /dev/null +++ b/packages/elements-pro/bunfig.toml @@ -0,0 +1,2 @@ +[test] +preload = ["./test/preload.ts"] diff --git a/packages/elements-pro/index.d.ts b/packages/elements-pro/index.d.ts new file mode 100644 index 00000000..7baaec77 --- /dev/null +++ b/packages/elements-pro/index.d.ts @@ -0,0 +1,30 @@ +type ElementProps = { + [K in keyof T]: CustomElementProps; +}; + +type CustomElementChildren = Element | Element[] | JSX.Element | JSX.Element[]; + +type CustomElementProps = { + [K in keyof Omit as string & K]?: T[K]; +} & { + children?: CustomElementChildren; + class?: string; + onChange?: (e: Event) => void; + // TODO: merge with default react props +}; + +type CustomElements = ElementProps; + +declare global { + namespace JSX { + namespace JSX { + interface IntrinsicElements extends ElementProps {} + } + } + + declare module "solid-js" { + namespace JSX { + interface IntrinsicElements extends ElementProps {} + } + } +} diff --git a/packages/elements-pro/index.js b/packages/elements-pro/index.js new file mode 100644 index 00000000..ff7bd09c --- /dev/null +++ b/packages/elements-pro/index.js @@ -0,0 +1 @@ +// placeholder diff --git a/packages/pro-elements/package.json b/packages/elements-pro/package.json similarity index 98% rename from packages/pro-elements/package.json rename to packages/elements-pro/package.json index d64adb73..24323b8f 100644 --- a/packages/pro-elements/package.json +++ b/packages/elements-pro/package.json @@ -43,7 +43,7 @@ "require": "./packages/expandable/dist/index.cjs", "types": "./packages/expandable/src/index.ts" }, - "./audio-meter": { + "./layout": { "import": "./packages/dropdown/dist/index.js", "require": "./packages/dropdown/dist/index.cjs", "types": "./packages/dropdown/src/index.ts" diff --git a/packages/pro-elements/packages/fluid-input/package.json b/packages/elements-pro/packages/fluid-input/package.json similarity index 100% rename from packages/pro-elements/packages/fluid-input/package.json rename to packages/elements-pro/packages/fluid-input/package.json diff --git a/packages/pro-elements/packages/fluid-input/src/FluidInput.ts b/packages/elements-pro/packages/fluid-input/src/FluidInput.ts similarity index 100% rename from packages/pro-elements/packages/fluid-input/src/FluidInput.ts rename to packages/elements-pro/packages/fluid-input/src/FluidInput.ts diff --git a/packages/pro-elements/packages/fluid-input/src/index.ts b/packages/elements-pro/packages/fluid-input/src/index.ts similarity index 100% rename from packages/pro-elements/packages/fluid-input/src/index.ts rename to packages/elements-pro/packages/fluid-input/src/index.ts diff --git a/packages/pro-elements/packages/dropzone/tsconfig.json b/packages/elements-pro/packages/fluid-input/tsconfig.json similarity index 100% rename from packages/pro-elements/packages/dropzone/tsconfig.json rename to packages/elements-pro/packages/fluid-input/tsconfig.json diff --git a/packages/pro-elements/packages/knob/package.json b/packages/elements-pro/packages/knob/package.json similarity index 100% rename from packages/pro-elements/packages/knob/package.json rename to packages/elements-pro/packages/knob/package.json diff --git a/packages/pro-elements/packages/knob/src/Knob.ts b/packages/elements-pro/packages/knob/src/Knob.ts similarity index 100% rename from packages/pro-elements/packages/knob/src/Knob.ts rename to packages/elements-pro/packages/knob/src/Knob.ts diff --git a/packages/pro-elements/packages/knob/src/index.ts b/packages/elements-pro/packages/knob/src/index.ts similarity index 100% rename from packages/pro-elements/packages/knob/src/index.ts rename to packages/elements-pro/packages/knob/src/index.ts diff --git a/packages/pro-elements/packages/fluid-input/tsconfig.json b/packages/elements-pro/packages/knob/tsconfig.json similarity index 100% rename from packages/pro-elements/packages/fluid-input/tsconfig.json rename to packages/elements-pro/packages/knob/tsconfig.json diff --git a/packages/elements-pro/packages/layout/README.md b/packages/elements-pro/packages/layout/README.md new file mode 100644 index 00000000..47141461 --- /dev/null +++ b/packages/elements-pro/packages/layout/README.md @@ -0,0 +1,3 @@ +# Layout + +A simple panel layout framework based on css grid. diff --git a/packages/elements-pro/packages/layout/index.html b/packages/elements-pro/packages/layout/index.html new file mode 100644 index 00000000..693b394b --- /dev/null +++ b/packages/elements-pro/packages/layout/index.html @@ -0,0 +1,71 @@ + + + + + + Layout + + + + + + + + + + + 1 + + + 2 + + + + + + 3 + + + 4 + + + + + diff --git a/packages/elements-pro/packages/layout/package.json b/packages/elements-pro/packages/layout/package.json new file mode 100644 index 00000000..96beef00 --- /dev/null +++ b/packages/elements-pro/packages/layout/package.json @@ -0,0 +1,29 @@ +{ + "name": "@atrium-ui/layout", + "version": "2.0.0", + "author": "luckydye", + "description": "A simple panel layout framework based on css grid.", + "license": "MIT", + "main": "dist/index.cjs", + "module": "dist/index.js", + "type": "module", + "types": "index.ts", + "scripts": { + "dev": "vite", + "dev:build": "vite build", + "build": "tsup" + }, + "devDependencies": { + "@atrium-ui/codestyle": "^1.1.1", + "@biomejs/biome": "^1.8.3", + "tsup": "^8.2.4", + "typescript": "^5.5.4", + "vite": "^5.4.2" + }, + "tsup": { + "entry": ["src/index.ts"], + "format": ["esm", "cjs"], + "sourcemap": true, + "clean": true + } +} diff --git a/packages/elements-pro/packages/layout/src/Column.ts b/packages/elements-pro/packages/layout/src/Column.ts new file mode 100644 index 00000000..bd60bae5 --- /dev/null +++ b/packages/elements-pro/packages/layout/src/Column.ts @@ -0,0 +1,7 @@ +import { Panel } from "./Panel.js"; + +export class Column extends Panel { + resizableRow = true; + resizableColumn = false; + removeOnEmtpy = true; +} diff --git a/packages/elements-pro/packages/layout/src/Group.ts b/packages/elements-pro/packages/layout/src/Group.ts new file mode 100644 index 00000000..ed0ad09c --- /dev/null +++ b/packages/elements-pro/packages/layout/src/Group.ts @@ -0,0 +1,426 @@ +import { Column } from "./Column.js"; + +const styles = ` + :host { + position: relative; + overflow: hidden; + z-index: 1000; + display: flex; + flex-direction: column; + color: inherit; + + --tab-height: 28px; + --tab-width: auto; + --tab-font-color: #ffffff; + --tab-font-size: 0.8em; + --tab-border-radius: 3px; + --tab-padding: 0px 18px; + --tab-border: none; + + --tab-background: #1C1C1C; + --tab-hover-background: #2F2F32; + --tab-active-background: #252527; + + --tab-bottom-border: none; + --tab-active-bottom-border: none; + } + + @media (prefers-color-scheme: light) { + :host { + --tab-background: #EEE; + --tab-hover-background: #FFF; + --tab-active-background: #FFF; + } + } + + [part="tabs"] { + display: flex; + color: inherit; + z-index: 1000; + pointer-events: all; + user-select: none; + font-size: var(--tab-font-size); + padding: 3px 3px 0 3px; + } + + .tab { + display: inline-flex; + align-items: center; + justify-content: center; + background: var(--tab-background); + margin: 0 1px 0 0; + height: var(--tab-height); + cursor: pointer; + position: relative; + min-width: var(--tab-width); + padding: var(--tab-padding); + border-bottom: var(--tab-bottom-border); + color: var(--tab-font-color); + opacity: 0.5; + border-top-left-radius: var(--tab-border-radius); + border-top-right-radius: var(--tab-border-radius); + border: var(--tab-border); + } + + .tab[data-groupid] { + -webkit-user-drag: element; + } + + .tab[active] { + background: var(--tab-active-background); + border-bottom: var(--tab-active-bottom-border); + opacity: 1; + } + + .tab::before { + content: ""; + position: absolute; + pointer-events: none; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + + .tab:hover { + background: var(--tab-hover-background); + } + + .tab:active { + background: var(--tab-active-background); + opacity: 1; + } + + slot { + display: block; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + } + + :host([tabs]) slot { + top: calc(var(--tab-height) + 3px); + } + + :host([drag-over]) { + --left: 0; + --top: 0; + --width: 100%; + --height: 100%; + } + + :host([drag-over])::slotted(*) { + pointer-events: none; + } + + :host([drag-over])::after { + content: ''; + background: white; + opacity: 0.05; + position: absolute; + top: var(--top); + left: var(--left); + z-index: 10000; + width: var(--width); + height: var(--height); + pointer-events: none; + } + + ::slotted(*) { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + } + + ::slotted([tab]:not([active])) { + display: none !important; + visibility: hidden; + opacity: 0; + transition: none; + pointer-events: none; + } +`; + +export class Group extends Column { + static get observedAttributes() { + return ["active-tab", "tabs"]; + } + + template() { + return ` +
+ ${super.template()} + `; + } + + styles() { + return ` + ${super.styles()} + ${styles} + `; + } + + get activeTab() { + if (this.hasAttribute("active-tab")) { + return +(this.getAttribute("active-tab") || 0); + } + return -1; + } + + set activeTab(index: number) { + this.setActiveTab(index); + } + + get tabs() { + const elements = this.shadowRoot?.querySelectorAll(".tab[data-groupid]"); + return elements ? [...elements] : []; + } + + get components() { + return [...this.children].filter((ele) => ele.hasAttribute("tab")); + } + + attributeChangedCallback(name: string, oldValue: string, newValue: string) { + if (oldValue === newValue) return; + + if (name === "active-tab") { + this.activeTab = +newValue; + } + + this.renderTabs(); + } + + connectedCallback() { + super.connectedCallback(); + + this.addEventListener("dragover", this.dragOverHandler); + this.addEventListener("dragleave", this.dragLeaveHandler); + this.addEventListener("dragend", this.dragEndHandler); + this.addEventListener("drop", this.dragDropHandler); + } + + slotChangeCallback() { + super.slotChangeCallback(); + + this.renderTabs(); + this.setActiveTab(this.components.length - 1); + } + + insertPosition = 0; + + dragOverHandler = (e: DragEvent) => { + if (!document.body.hasAttribute("layout-drag")) return; + + e.preventDefault(); + + const bounds = this.getBoundingClientRect(); + + const x = e.x; + const y = e.y; + + const area = Math.min(bounds.height / 8, bounds.width / 8); + + this.removeAttribute("style"); + this.insertPosition = 0; + + if (y < bounds.top + area) { + this.style.setProperty("--height", `${area}px`); + + this.insertPosition = -1; + } else if (y > bounds.bottom - area) { + this.style.setProperty("--height", `${area}px`); + this.style.setProperty("--top", `${bounds.height - area}px`); + + this.insertPosition = 1; + } else if (x < bounds.left + area) { + this.style.setProperty("--width", `${area}px`); + + this.insertPosition = -2; + } else if (x > bounds.right - area) { + this.style.setProperty("--width", `${area}px`); + this.style.setProperty("--left", `${bounds.width - area}px`); + + this.insertPosition = 2; + } + + this.setAttribute("drag-over", ""); + + if (e.dataTransfer) e.dataTransfer.dropEffect = "move"; + }; + + dragEndHandler = (e: DragEvent) => { + this.dragLeaveHandler(e); + + if (document.body.hasAttribute("layout-drag")) { + document.body.removeAttribute("layout-drag"); + } + }; + + dragLeaveHandler = (e: DragEvent) => { + this.removeAttribute("drag-over"); + this.removeAttribute("style"); + }; + + dragDropHandler = (e: DragEvent) => { + e.preventDefault(); + + this.dragEndHandler(e); + + const targetId = e.dataTransfer?.getData("tab"); + + if (!targetId) return; + + const component = document.querySelector(`[${targetId}]`); + + if (!component) return; + + if (this.insertPosition === 0 && component.parentNode === this) return; + + component.parentNode?.removeChild(component); + + // apend inside + if (this.insertPosition === 0) { + this.appendChild(component); + } + + // vertical + if (Math.abs(this.insertPosition) === 1) { + const oldHeight = this.height; + const newGroup = this.cloneNode(); + + newGroup.appendChild(component); + + // apend above + if (this.insertPosition < 0) { + newGroup.height = oldHeight / 2; + this.height -= oldHeight / 2; + this.parentNode?.insertBefore(newGroup, this); + } + + // apend below + if (this.insertPosition > 0) { + newGroup.height = oldHeight / 2; + this.height -= oldHeight / 2; + this.parentNode?.insertBefore(newGroup, this.nextSibling); + } + } + + // horizontal + if (Math.abs(this.insertPosition) === 2) { + const oldWidth = this.parentNode.width; + const newColumn = this.parentNode.cloneNode(); + const newGroup = this.cloneNode(); + + newGroup.appendChild(component); + newColumn.appendChild(newGroup); + + // apend to the left + if (this.insertPosition < 0) { + this.parentNode.width -= oldWidth / 2; + newColumn.width = oldWidth / 2; + this.parentNode.parentNode.insertBefore(newColumn, this.parentNode); + } + + // apend to the right + if (this.insertPosition > 0) { + this.parentNode.width -= oldWidth / 2; + newColumn.width = oldWidth / 2; + this.parentNode.parentNode.insertBefore(newColumn, this.parentNode.nextSibling); + } + } + }; + + // updates tabs bar if components have changed + renderTabs() { + if (!this.shadowRoot) return; + + const tabs = this.shadowRoot.querySelector(".tabs"); + if (!tabs) return; + + tabs.innerHTML = ""; + + // creates tab ele for component + const createTab = (component) => { + const tab = document.createElement("span"); + tab.setAttribute("draggable", "true"); + tab.className = "tab"; + tab.part = "tab"; + + if (component) { + const groupid = component.getAttribute("tab"); + + if (groupid) { + tab.innerText = component.name || groupid; + tab.dataset.groupid = groupid; + } + + tab.onmousedown = (e) => { + const index = [...tab.parentNode.children].indexOf(tab); + this.activeTab = index; + }; + + tab.ondragstart = (e) => { + document.body.setAttribute("layout-drag", ""); + e.dataTransfer?.setData("tab", "drag-target"); + component.setAttribute("drag-target", ""); + }; + + tab.ondragend = (e) => { + setTimeout(() => { + component.removeAttribute("drag-target"); + }, 10); + }; + } + + return tab; + }; + + const components = this.components; + + if (components.length > 1 || this.hasAttribute("tabs")) { + for (let i = 0; i < components.length; i++) { + const tab = createTab(components[i]); + tabs.appendChild(tab); + } + } + + // set active tab if undefined + if (this.activeTab === undefined) { + this.activeTab = 0; + } + + if (this.activeTab > this.tabs?.length - 1) { + this.activeTab = Math.max(this.tabs?.length - 1, 0); + } + } + + // updates components and tab bar if active tab changed + setActiveTab(index: number) { + const tabs = this.tabs; + const components = this.components; + + for (let i = 0; i < components.length; i++) { + const tab = tabs[i]; + + if (tab) { + if (i === index) { + tab.setAttribute("active", ""); + } else { + tab.removeAttribute("active"); + } + } + + if (components[i]) { + if (i === index) { + components[i].setAttribute("active", ""); + } else { + components[i].removeAttribute("active"); + } + } + } + } +} diff --git a/packages/elements-pro/packages/layout/src/Panel.ts b/packages/elements-pro/packages/layout/src/Panel.ts new file mode 100644 index 00000000..cebc691d --- /dev/null +++ b/packages/elements-pro/packages/layout/src/Panel.ts @@ -0,0 +1,392 @@ +const styles = ` + :host { + --split-bar-color: rgba(255, 255, 255, 0.3); + --split-bar-color-hover: rgba(255, 255, 255, 0.2); + --layout-grid-gap: 3px; + + position: relative; + overflow: hidden; + display: grid; + grid-gap: var(--layout-grid-gap); + width: 100%; + height: 100%; + } + + .split-bar { + --size: 0; + --x: 0; + --y: 0; + + z-index: 100000; + position: fixed; + left: calc(var(--x, 0) * 1px); + top: calc(var(--y, 0) * 1px); + background: var(--split-bar-color-hover); + } + .split-bar[active] { + background: var(--split-bar-color); + } + .split-bar.vertical { + height: 100%; + width: calc(var(--size) * 1px); + transform: translate(-50%, 0); + } + .split-bar.horizontal { + width: 100%; + height: calc(var(--size) * 1px); + transform: translate(0, -50%); + } + .split-bar::after { + content: ""; + z-index: 10000; + position: absolute; + top: 0; + left: 0; + } + .split-bar.vertical::after { + width: 200px; + height: 100%; + transform: translate(-50%, 0); + cursor: col-resize; + } + .split-bar.horizontal::after { + height: 200px; + width: 100%; + transform: translate(0, -50%); + cursor: row-resize; + } +`; + +export class Panel extends HTMLElement { + template() { + return ""; + } + + styles() { + return styles; + } + + get childElements() { + return [...this.children].filter((ele) => ele instanceof Panel); + } + + get shadowSlot() { + for (const child of this.shadowRoot?.children || []) { + if (child instanceof HTMLSlotElement) return child; + } + return null; + } + + columns: number[] = []; + rows: number[] = []; + + resizableRow = false; + resizableColumn = true; + removeOnEmtpy = false; + boundsInvalid = true; + + chacnelDragOver = () => { + this.removeAttribute("drag-over"); + }; + + slotChangeCallback() { + requestAnimationFrame(() => { + if (this.removeOnEmtpy && this.children.length === 0) { + this.parentNode?.removeChild(this); + } + }); + + this.layoutUpdate(); + this.onLayoutChange(); + } + + constructor() { + super(); + + this.addEventListener("dragend", this.chacnelDragOver); + this.addEventListener("dragcancel", this.chacnelDragOver); + this.addEventListener("dragleave", this.chacnelDragOver); + this.addEventListener("drop", this.chacnelDragOver); + + // ignore components on drag over + this.addEventListener("dragstart", (e) => { + if (e.dataTransfer?.getData("tab")) { + this.setAttribute("drag-over", ""); + } + }); + } + + connectedCallback() { + this.attachShadow({ mode: "open" }); + + if (!this.shadowRoot) { + throw new Error("Failed to attach shadow root"); + } + + this.shadowRoot.innerHTML = this.template(); + const style = document.createElement("style"); + style.innerHTML = this.styles(); + this.shadowRoot.appendChild(style); + + if (this.shadowSlot) { + this.shadowSlot.onslotchange = (e) => this.slotChangeCallback(); + } + + this.slotChangeCallback(); + + window.addEventListener("resize", () => { + this.boundsInvalid = true; + }); + + this.resizable(); + } + + resizable() { + const splitBar = document.createElement("div"); + splitBar.className = "split-bar"; + + const borderSizeVar = getComputedStyle(this).getPropertyValue("--layout-grid-gap"); + const borderSize = Number.parseInt(borderSizeVar); + + let pointerDownEvent: PointerEvent | null = null; + let resizeAvailable = [0, 0]; + + const pointerMoveHandler = (e, index) => { + // check if bounds needs update + if (this.boundsInvalid) { + this.updateBounds(); + } + + const children = this.childElements; + + // return here if target is the last child + if (children.length - 1 <= index) { + return; + } + + const column = children[index]; + const columnBounds = column.boundingBox; + + const borderX = + columnBounds.left + + this.width * (this.columns[index] / children.length) + + borderSize / 2; + const borderY = + columnBounds.top + + this.height * (this.rows[index] / children.length) + + borderSize / 2; + + const minElementFraction = 0.05; + + const mouse = [e.x, e.y]; + + const mouseDelta = [e.movementX, e.movementY]; + + const delta = [ + this.columns[index] + mouseDelta[0] / this.width > minElementFraction && + this.columns[index + 1] - mouseDelta[0] / this.width > minElementFraction + ? mouseDelta[0] + : 0, + + this.rows[index] + mouseDelta[1] / this.height > minElementFraction && + this.rows[index + 1] - mouseDelta[1] / this.height > minElementFraction + ? mouseDelta[1] + : 0, + ]; + + const resizable = [ + this.resizableColumn && + mouse[0] > borderX - borderSize && + mouse[0] < borderX + borderSize && + mouse[1] < borderY && + mouse[1] > columnBounds.top, + + this.resizableRow && + mouse[1] > borderY - borderSize && + mouse[1] < borderY + borderSize && + mouse[0] < borderX && + mouse[0] > columnBounds.left, + ]; + + const resizeX = resizable[0] || resizeAvailable[0]; + const resizeY = resizable[1] || resizeAvailable[1]; + + if (pointerDownEvent) { + if (resizeX) { + this.onResize([delta[0], 0], index); + } + if (resizeY) { + this.onResize([0, delta[1]], index); + } + } + + // update splitbar + + if (resizeX || (resizeY && !splitBar.parentNode)) { + this.shadowRoot.appendChild(splitBar); + } + + if (splitBar.parentNode) { + if (!pointerDownEvent && !resizeX && !resizeY) { + splitBar.remove(); + } + + if (pointerDownEvent) { + splitBar.setAttribute("active", ""); + } else { + splitBar.removeAttribute("active"); + } + + if (resizeX) { + splitBar.className = "split-bar vertical"; + splitBar.style.setProperty("--size", borderSize); + splitBar.style.setProperty( + "--x", + pointerDownEvent ? borderX + delta[0] : borderX, + ); + splitBar.style.setProperty("--y", column.boundingBox.top); + splitBar.style.height = `${column.height}px`; + } + + if (resizeY) { + splitBar.className = "split-bar horizontal"; + splitBar.style.setProperty("--size", borderSize); + splitBar.style.setProperty( + "--y", + pointerDownEvent ? borderY + delta[1] : borderY, + ); + splitBar.style.setProperty("--x", column.boundingBox.left); + splitBar.style.width = `${column.width}px`; + } + } + + // set resize state + if (!pointerDownEvent) { + resizeAvailable = resizable; + } + + return resizeAvailable[0] || resizeAvailable[1]; + }; + + const cancelPointerHandler = (e) => { + if (pointerDownEvent) { + this.onLayoutChange(); + } + + pointerDownEvent = null; + splitBar.removeAttribute("active"); + }; + + const pointerDownHandler = (e) => { + if (resizeAvailable[0] || resizeAvailable[1]) { + pointerDownEvent = e; + splitBar.setAttribute("active", ""); + } + }; + + let activeChild: number | null = null; + + this.addEventListener("pointerdown", pointerDownHandler); + + window.addEventListener("pointermove", (e) => { + if (resizeAvailable[0] || resizeAvailable[1]) { + pointerMoveHandler(e, activeChild); + e.preventDefault(); + } else { + for (let c = 0; c < this.childElements.length; c++) { + if (pointerMoveHandler(e, c)) { + e.preventDefault(); + activeChild = c; + return; + } + } + } + }); + window.addEventListener("pointerup", cancelPointerHandler); + window.addEventListener("pointercancel", cancelPointerHandler); + + if (this.boundsInvalid) { + this.updateBounds(); + } + } + + onLayoutChange() { + window.dispatchEvent(new Event("resize")); + } + + width = 0; + height = 0; + boundingBox?: DOMRect; + + updateBounds() { + this.width = this.clientWidth; + this.height = this.clientHeight; + this.boundingBox = this.getBoundingClientRect(); + + for (const child of this.childElements) { + child.width = child.clientWidth; + child.height = child.clientHeight; + child.boundingBox = child.getBoundingClientRect(); + } + + this.layoutUpdate(); + + this.boundsInvalid = false; + } + + onResize(delta, childIndex) { + const children = this.childElements; + const availableWidth = this.width; + const availableHeight = this.height; + + if (delta[0]) { + const frac = (delta[0] / availableWidth) * children.length; + + this.columns[childIndex] = (this.columns[childIndex] || 1) + frac; + this.columns[childIndex + 1] = (this.columns[childIndex + 1] || 1) - frac; + } + + if (delta[1]) { + const frac = (delta[1] / availableHeight) * children.length; + + this.rows[childIndex] = (this.rows[childIndex] || 1) + frac; + this.rows[childIndex + 1] = (this.rows[childIndex + 1] || 1) - frac; + } + + this.setLayoutTempalte(this.columns, this.rows); + } + + layoutUpdate() { + const children = this.childElements; + + this.columns = []; + this.rows = []; + + if (children.length === 1) { + this.columns = [1]; + this.rows = [1]; + } else { + for (let i = 0; i < children.length; i++) { + this.columns[i] = (children[i].width / this.width) * children.length; + this.rows[i] = (children[i].height / this.height) * children.length; + } + } + + this.setLayoutTempalte(this.columns, this.rows); + } + + setLayoutTempalte(columnTemplate = [1, 1], rowTemplate = [1, 1]) { + if (this.resizableColumn) { + this.style.gridTemplateColumns = columnTemplate + .map((n) => `${n.toFixed(4)}fr`) + .join(" "); + this.style.gridTemplateRows = "1fr"; + } + if (this.resizableRow) { + this.style.gridTemplateColumns = "1fr"; + this.style.gridTemplateRows = rowTemplate.map((n) => `${n.toFixed(4)}fr`).join(" "); + } + + window.dispatchEvent(new Event("layout")); + } +} diff --git a/packages/elements-pro/packages/layout/src/index.ts b/packages/elements-pro/packages/layout/src/index.ts new file mode 100644 index 00000000..0111e449 --- /dev/null +++ b/packages/elements-pro/packages/layout/src/index.ts @@ -0,0 +1,9 @@ +import { Column } from "./Column.js"; +import { Group } from "./Group.js"; +import { Panel } from "./Panel.js"; + +customElements.define("a-layout", Panel); +customElements.define("a-layout-column", Column); +customElements.define("a-layout-group", Group); + +export { Column, Group, Panel }; diff --git a/packages/pro-elements/packages/knob/tsconfig.json b/packages/elements-pro/packages/layout/tsconfig.json similarity index 100% rename from packages/pro-elements/packages/knob/tsconfig.json rename to packages/elements-pro/packages/layout/tsconfig.json diff --git a/packages/elements-pro/test/preload.ts b/packages/elements-pro/test/preload.ts new file mode 100644 index 00000000..8e5d50eb --- /dev/null +++ b/packages/elements-pro/test/preload.ts @@ -0,0 +1,7 @@ +import { GlobalRegistrator } from "@happy-dom/global-registrator"; + +GlobalRegistrator.register(); + +require("intersection-observer"); + +globalThis.IntersectionObserver = window.IntersectionObserver; diff --git a/packages/elements-pro/tsconfig.json b/packages/elements-pro/tsconfig.json new file mode 100644 index 00000000..ef226fd3 --- /dev/null +++ b/packages/elements-pro/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@sv/codestyle/tsconfig.json", + "compilerOptions": { + "useDefineForClassFields": false, + "experimentalDecorators": true, + "types": ["@types/bun"] + }, + "exclude": [ + "node_modules", + "**/dist" + ] +} diff --git a/packages/elements/package.json b/packages/elements/package.json index 7c7b9d1d..c5cfd421 100644 --- a/packages/elements/package.json +++ b/packages/elements/package.json @@ -130,6 +130,11 @@ "import": "./packages/chart/dist/index.js", "require": "./packages/chart/dist/index.cjs", "types": "./packages/chart/src/index.ts" + }, + "./dropzone": { + "import": "./packages/dropzone/dist/index.js", + "require": "./packages/dropzone/dist/index.cjs", + "types": "./packages/dropzone/src/index.ts" } } -} \ No newline at end of file +} diff --git a/packages/pro-elements/packages/dropzone/package.json b/packages/elements/packages/dropzone/package.json similarity index 100% rename from packages/pro-elements/packages/dropzone/package.json rename to packages/elements/packages/dropzone/package.json diff --git a/packages/pro-elements/packages/dropzone/src/Dropzone.ts b/packages/elements/packages/dropzone/src/Dropzone.ts similarity index 100% rename from packages/pro-elements/packages/dropzone/src/Dropzone.ts rename to packages/elements/packages/dropzone/src/Dropzone.ts diff --git a/packages/pro-elements/packages/dropzone/src/index.ts b/packages/elements/packages/dropzone/src/index.ts similarity index 100% rename from packages/pro-elements/packages/dropzone/src/index.ts rename to packages/elements/packages/dropzone/src/index.ts diff --git a/packages/elements/packages/dropzone/tsconfig.json b/packages/elements/packages/dropzone/tsconfig.json new file mode 100644 index 00000000..4082f16a --- /dev/null +++ b/packages/elements/packages/dropzone/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} From 4354648daef1cb6fc19dd80a6161fc8c496eff27 Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sun, 25 Aug 2024 01:38:38 +0200 Subject: [PATCH 04/16] Added input field --- .../elements-pro/packages/field/bun.lockb | Bin 0 -> 75365 bytes .../elements-pro/packages/field/index.html | 45 ++++ .../elements-pro/packages/field/package.json | 29 +++ .../elements-pro/packages/field/src/Field.ts | 223 ++++++++++++++++++ .../elements-pro/packages/field/src/index.ts | 5 + .../elements-pro/packages/field/tsconfig.json | 3 + 6 files changed, 305 insertions(+) create mode 100755 packages/elements-pro/packages/field/bun.lockb create mode 100644 packages/elements-pro/packages/field/index.html create mode 100644 packages/elements-pro/packages/field/package.json create mode 100644 packages/elements-pro/packages/field/src/Field.ts create mode 100644 packages/elements-pro/packages/field/src/index.ts create mode 100644 packages/elements-pro/packages/field/tsconfig.json diff --git a/packages/elements-pro/packages/field/bun.lockb b/packages/elements-pro/packages/field/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..80819b8782b18823e683ee4ce06acb380ebf0679 GIT binary patch literal 75365 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 V5TZ_^lY#x%VyJM${lD+O{{tWD(|`Z~ literal 0 HcmV?d00001 diff --git a/packages/elements-pro/packages/field/index.html b/packages/elements-pro/packages/field/index.html new file mode 100644 index 00000000..148e4cb8 --- /dev/null +++ b/packages/elements-pro/packages/field/index.html @@ -0,0 +1,45 @@ + + + + + + Layout + + + + + + + +
+ +
+ + diff --git a/packages/elements-pro/packages/field/package.json b/packages/elements-pro/packages/field/package.json new file mode 100644 index 00000000..37189dee --- /dev/null +++ b/packages/elements-pro/packages/field/package.json @@ -0,0 +1,29 @@ +{ + "name": "@atrium-ui/field", + "version": "1.0.0", + "author": "luckydye", + "description": "An inpput element that is read-only by default. Enables users to edit the value by double-clicking on the input.", + "license": "MIT", + "main": "dist/index.cjs", + "module": "dist/index.js", + "type": "module", + "types": "index.ts", + "scripts": { + "dev": "vite", + "dev:build": "vite build", + "build": "tsup" + }, + "devDependencies": { + "@atrium-ui/codestyle": "^1.1.1", + "@biomejs/biome": "^1.8.3", + "tsup": "^8.2.4", + "typescript": "^5.5.4", + "vite": "^5.4.2" + }, + "tsup": { + "entry": ["src/index.ts"], + "format": ["esm", "cjs"], + "sourcemap": true, + "clean": true + } +} diff --git a/packages/elements-pro/packages/field/src/Field.ts b/packages/elements-pro/packages/field/src/Field.ts new file mode 100644 index 00000000..f1517b4f --- /dev/null +++ b/packages/elements-pro/packages/field/src/Field.ts @@ -0,0 +1,223 @@ +const css = String.raw; + +export class Field extends HTMLElement { + static get observedAttributes() { + return ["value", "name"]; + } + + attributeChangedCallback(name: string, _oldValue: string, newValue: string) { + if (name === "value") { + this.value = newValue; + } + if (name === "name") { + this.name = newValue; + } + } + + private readonly input = this.createInput(); + private readonly inner = this.createInnerText(); + + public set value(value: string) { + this.inner.innerText = value; + this.input.value = value; + } + + public get value() { + return this.input.value; + } + + public set name(name: string) { + this.input.name = name; + } + + public get name() { + return this.input.name; + } + + public set editable(editable: boolean) { + if (editable) { + this.setAttribute("editable", ""); + } else { + this.removeAttribute("editable"); + } + } + + public get editable() { + return this.hasAttribute("editable"); + } + + public enable() { + this.editable = true; + + requestAnimationFrame(() => { + this.input.focus(); + }); + } + + public disable() { + this.editable = false; + window.getSelection()?.empty(); + } + + public reportValidity() { + return this.input.reportValidity() && this.input.value.length >= this.input.minLength; + } + + private clickCount = 0; + + constructor() { + super(); + + this.addEventListener("pointerdown", () => { + if (this.editable) return; + + this.clickCount++; + + if (this.clickCount === 2) { + this.enable(); + } + + setTimeout(() => { + this.clickCount = 0; + }, 400); + }); + } + + public connectedCallback() { + this.attach(); + } + + public trySubmit() { + if (!this.reportValidity()) { + return false; + } + + this.setAttribute("value", this.value); + this.disable(); + + this.dispatchEvent(new CustomEvent("change", { detail: this.value, bubbles: true })); + + return true; + } + + public cancel() { + const oldValue = this.getAttribute("value"); + if (oldValue) { + this.value = oldValue; + } + this.disable(); + } + + private createInnerText() { + const text = document.createElement("span"); + text.innerText = this.value; + return text; + } + + private createInput() { + const input = document.createElement("input"); + input.type = "text"; + input.autocomplete = "off"; + input.minLength = 2; + + input.addEventListener("input", (ev: Event) => { + ev.stopPropagation(); + }); + + input.addEventListener("change", (ev: Event) => { + ev.stopPropagation(); + }); + + input.addEventListener("keydown", (ev: KeyboardEvent) => { + this.handleKey(ev) && ev.preventDefault(); + }); + + input.addEventListener("focusout", (e: Event) => { + this.clickCount = 0; + + if (this.editable) { + this.trySubmit() || this.cancel(); + } + }); + + return input; + } + + private handleKey(ev: KeyboardEvent) { + if (ev.key === "Enter") { + this.trySubmit(); + return true; + } + + if (ev.key === "Escape") { + this.cancel(); + return true; + } + + return false; + } + + private attach() { + if (!this.shadowRoot) { + const shadowRoot = this.attachShadow({ mode: "open" }); + const styles = document.createElement("style"); + styles.innerHTML = css` + * { + box-sizing: border-box; + } + + :host { + display: inline-block; + } + + :host([editable]) { + cursor: text; + } + + /* text container */ + div { + position: relative; + } + + /* inner text */ + span { + pointer-events: none; + } + + :host([editable]) span { + pointer-events: none; + visibility: hidden; + } + + /* input */ + slot { + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: none; + } + + :host([editable]) slot { + display: block; + } + + ::slotted(input) { + all: unset; + width: 100%; + height: 100%; + } + `; + shadowRoot.append(styles); + const container = document.createElement("div"); + const slot = document.createElement("slot"); + container.appendChild(this.inner); + container.appendChild(slot); + shadowRoot.append(container); + } + + this.appendChild(this.input); + } +} diff --git a/packages/elements-pro/packages/field/src/index.ts b/packages/elements-pro/packages/field/src/index.ts new file mode 100644 index 00000000..c38dfbc6 --- /dev/null +++ b/packages/elements-pro/packages/field/src/index.ts @@ -0,0 +1,5 @@ +import { Field } from "./Field.js"; + +customElements.define("a-field", Field); + +export { Field }; diff --git a/packages/elements-pro/packages/field/tsconfig.json b/packages/elements-pro/packages/field/tsconfig.json new file mode 100644 index 00000000..4082f16a --- /dev/null +++ b/packages/elements-pro/packages/field/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} From c344ac51541258d54fa67f458b4038556b6cf762 Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sun, 25 Aug 2024 04:00:57 +0200 Subject: [PATCH 05/16] Testing layout --- .../elements-pro/packages/layout/index.html | 151 +++++++++++------- .../elements-pro/packages/layout/src/Group.ts | 28 ++-- 2 files changed, 103 insertions(+), 76 deletions(-) diff --git a/packages/elements-pro/packages/layout/index.html b/packages/elements-pro/packages/layout/index.html index 693b394b..217962b5 100644 --- a/packages/elements-pro/packages/layout/index.html +++ b/packages/elements-pro/packages/layout/index.html @@ -1,71 +1,98 @@ - + - - - - Layout + + + + Layout - + - - + @media (prefers-color-scheme: light) { + body { + background: #e6e6e6; + } + } - - - - - 1 - - - 2 - - + a-layout-group { + display: flex; + flex-direction: row; + } - - - 3 - - - 4 - - - - + a-layout-group::part(tabs) { + display: flex; + flex-direction: column; + padding: 3px 0px 3px 3px; + } + + a-tab { + display: none; + } + + + + + + + + + + + ABC + 1 + + 2 + 3 + + + + diff --git a/packages/elements-pro/packages/layout/src/Group.ts b/packages/elements-pro/packages/layout/src/Group.ts index ed0ad09c..2e52a6c0 100644 --- a/packages/elements-pro/packages/layout/src/Group.ts +++ b/packages/elements-pro/packages/layout/src/Group.ts @@ -2,19 +2,15 @@ import { Column } from "./Column.js"; const styles = ` :host { - position: relative; - overflow: hidden; - z-index: 1000; display: flex; flex-direction: column; - color: inherit; + gap: 0; - --tab-height: 28px; --tab-width: auto; --tab-font-color: #ffffff; --tab-font-size: 0.8em; --tab-border-radius: 3px; - --tab-padding: 0px 18px; + --tab-padding: 8px 18px; --tab-border: none; --tab-background: #1C1C1C; @@ -41,6 +37,7 @@ const styles = ` user-select: none; font-size: var(--tab-font-size); padding: 3px 3px 0 3px; + gap: 1px; } .tab { @@ -48,8 +45,6 @@ const styles = ` align-items: center; justify-content: center; background: var(--tab-background); - margin: 0 1px 0 0; - height: var(--tab-height); cursor: pointer; position: relative; min-width: var(--tab-width); @@ -100,10 +95,6 @@ const styles = ` right: 0; } - :host([tabs]) slot { - top: calc(var(--tab-height) + 3px); - } - :host([drag-over]) { --left: 0; --top: 0; @@ -143,6 +134,12 @@ const styles = ` transition: none; pointer-events: none; } + + .content { + position: relative; + width: 100%; + height: 100%; + } `; export class Group extends Column { @@ -153,7 +150,9 @@ export class Group extends Column { template() { return `
- ${super.template()} +
+ ${super.template()} +
`; } @@ -354,7 +353,8 @@ export class Group extends Column { const groupid = component.getAttribute("tab"); if (groupid) { - tab.innerText = component.name || groupid; + const tabContent = component.querySelector("a-tab")?.innerHTML; + tab.innerHTML = tabContent || component.name || groupid; tab.dataset.groupid = groupid; } From a1ae7c5fd6cfa500b07b8d6c0000db34afcb0106 Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sun, 25 Aug 2024 04:05:54 +0200 Subject: [PATCH 06/16] Fix package names --- bun.lockb | Bin 568736 -> 570072 bytes packages/elements-audio/package.json | 2 +- packages/elements-pro/package.json | 2 +- .../elements-pro/packages/layout/src/Panel.ts | 7 +++---- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/bun.lockb b/bun.lockb index 845665da357ceae3526dce8dda53b237faebb944..44415ba08ae6ffc6df383f3e2f2aaba85bb9f61c 100755 GIT binary patch delta 107222 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 NS3iwT&mO+B>_01+gT?>= delta 104085 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 Date: Sun, 25 Aug 2024 19:00:19 +0200 Subject: [PATCH 07/16] Working panel layout --- .../elements-pro/packages/layout/src/Group.ts | 14 +-- .../elements-pro/packages/layout/src/Panel.ts | 2 - .../packages/layout/test/index.html | 87 +++++++++++++++++++ .../layout/{index.html => test/index2.html} | 23 ++--- 4 files changed, 99 insertions(+), 27 deletions(-) create mode 100644 packages/elements-pro/packages/layout/test/index.html rename packages/elements-pro/packages/layout/{index.html => test/index2.html} (77%) diff --git a/packages/elements-pro/packages/layout/src/Group.ts b/packages/elements-pro/packages/layout/src/Group.ts index 2e52a6c0..d941ccd6 100644 --- a/packages/elements-pro/packages/layout/src/Group.ts +++ b/packages/elements-pro/packages/layout/src/Group.ts @@ -86,7 +86,7 @@ const styles = ` opacity: 1; } - slot { + .content slot { display: block; position: absolute; top: 0; @@ -119,7 +119,7 @@ const styles = ` pointer-events: none; } - ::slotted(*) { + ::slotted([tab]) { width: 100%; height: 100%; position: absolute; @@ -206,7 +206,7 @@ export class Group extends Column { super.slotChangeCallback(); this.renderTabs(); - this.setActiveTab(this.components.length - 1); + this.activeTab = 0; } insertPosition = 0; @@ -344,7 +344,7 @@ export class Group extends Column { // creates tab ele for component const createTab = (component) => { - const tab = document.createElement("span"); + const tab = document.createElement("button"); tab.setAttribute("draggable", "true"); tab.className = "tab"; tab.part = "tab"; @@ -353,12 +353,12 @@ export class Group extends Column { const groupid = component.getAttribute("tab"); if (groupid) { - const tabContent = component.querySelector("a-tab")?.innerHTML; - tab.innerHTML = tabContent || component.name || groupid; + const id = component.name || groupid; + tab.innerHTML = `${id}`; tab.dataset.groupid = groupid; } - tab.onmousedown = (e) => { + tab.onclick = (e) => { const index = [...tab.parentNode.children].indexOf(tab); this.activeTab = index; }; diff --git a/packages/elements-pro/packages/layout/src/Panel.ts b/packages/elements-pro/packages/layout/src/Panel.ts index 2be1053a..cf6fda80 100644 --- a/packages/elements-pro/packages/layout/src/Panel.ts +++ b/packages/elements-pro/packages/layout/src/Panel.ts @@ -356,8 +356,6 @@ export class Panel extends HTMLElement { layoutUpdate() { const children = this.childElements; - console.log(children); - this.columns = []; this.rows = []; diff --git a/packages/elements-pro/packages/layout/test/index.html b/packages/elements-pro/packages/layout/test/index.html new file mode 100644 index 00000000..edd4150a --- /dev/null +++ b/packages/elements-pro/packages/layout/test/index.html @@ -0,0 +1,87 @@ + + + + + + Layout + + + + + + + + + + +
ABC
+ 1 + 2 + 3 +
+
+
+ + diff --git a/packages/elements-pro/packages/layout/index.html b/packages/elements-pro/packages/layout/test/index2.html similarity index 77% rename from packages/elements-pro/packages/layout/index.html rename to packages/elements-pro/packages/layout/test/index2.html index 217962b5..3be29bf4 100644 --- a/packages/elements-pro/packages/layout/index.html +++ b/packages/elements-pro/packages/layout/test/index2.html @@ -2,10 +2,10 @@ - + Layout - + - ${this.name ? html`
${this.name}
` : ""} ${this.canvas} - `; - } -} - -customElements.define("audio-meter", AudioStreamMeter); diff --git a/packages/elements-audio/packages/audio-meter/src/index.ts b/packages/elements-audio/packages/audio-meter/src/index.ts deleted file mode 100644 index a637a32a..00000000 --- a/packages/elements-audio/packages/audio-meter/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @license - * Copyright (c) 2024 Atrium Contributors - * SPDX-License-Identifier: MIT - */ - -export { AudioStreamMeter } from "./AudioMeter.js"; diff --git a/packages/elements-audio/test/preload.ts b/packages/elements-audio/test/preload.ts deleted file mode 100644 index 8e5d50eb..00000000 --- a/packages/elements-audio/test/preload.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { GlobalRegistrator } from "@happy-dom/global-registrator"; - -GlobalRegistrator.register(); - -require("intersection-observer"); - -globalThis.IntersectionObserver = window.IntersectionObserver; diff --git a/packages/elements-audio/tsconfig.json b/packages/elements-audio/tsconfig.json deleted file mode 100644 index ef226fd3..00000000 --- a/packages/elements-audio/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@sv/codestyle/tsconfig.json", - "compilerOptions": { - "useDefineForClassFields": false, - "experimentalDecorators": true, - "types": ["@types/bun"] - }, - "exclude": [ - "node_modules", - "**/dist" - ] -} diff --git a/packages/elements-pro/.npmignore b/packages/elements-pro/.npmignore deleted file mode 100644 index 3c3629e6..00000000 --- a/packages/elements-pro/.npmignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/packages/elements-pro/LICENSE b/packages/elements-pro/LICENSE deleted file mode 100644 index 370902ca..00000000 --- a/packages/elements-pro/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Atrium Contributors - -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. diff --git a/packages/elements-pro/README.md b/packages/elements-pro/README.md deleted file mode 100644 index ca9d525b..00000000 --- a/packages/elements-pro/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Pro Elements - -Elements for professional web applications. - -Elements: -- Fluid Number Input -- Multiline Text -- Single Select -- Multiple Select -- Switch -- Checkbox -- Tab Group -- Panel Layout -- Range Slider -- Accordion Expandable Area -- Text Search Input -- Toggle Button -- Editable Text Field (dbclick to edit) -- Custom Popover -- Combobox with Text Search diff --git a/packages/elements-pro/bunfig.toml b/packages/elements-pro/bunfig.toml deleted file mode 100644 index 786a3774..00000000 --- a/packages/elements-pro/bunfig.toml +++ /dev/null @@ -1,2 +0,0 @@ -[test] -preload = ["./test/preload.ts"] diff --git a/packages/elements-pro/index.d.ts b/packages/elements-pro/index.d.ts deleted file mode 100644 index 7baaec77..00000000 --- a/packages/elements-pro/index.d.ts +++ /dev/null @@ -1,30 +0,0 @@ -type ElementProps = { - [K in keyof T]: CustomElementProps; -}; - -type CustomElementChildren = Element | Element[] | JSX.Element | JSX.Element[]; - -type CustomElementProps = { - [K in keyof Omit as string & K]?: T[K]; -} & { - children?: CustomElementChildren; - class?: string; - onChange?: (e: Event) => void; - // TODO: merge with default react props -}; - -type CustomElements = ElementProps; - -declare global { - namespace JSX { - namespace JSX { - interface IntrinsicElements extends ElementProps {} - } - } - - declare module "solid-js" { - namespace JSX { - interface IntrinsicElements extends ElementProps {} - } - } -} diff --git a/packages/elements-pro/index.js b/packages/elements-pro/index.js deleted file mode 100644 index ff7bd09c..00000000 --- a/packages/elements-pro/index.js +++ /dev/null @@ -1 +0,0 @@ -// placeholder diff --git a/packages/elements-pro/package.json b/packages/elements-pro/package.json deleted file mode 100644 index ab40cbad..00000000 --- a/packages/elements-pro/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "@atrium-ui/elements-pro", - "author": "atrium", - "contributors": [ - "luckydye" - ], - "version": "1.0.2", - "description": "Atrium Pro Elements", - "type": "module", - "scripts": { - "check": "# tsc --pretty", - "test": "# bun test .", - "publish-package": "# task publish" - }, - "files": [ - "README.md", - "packages", - "index.d.ts", - "index.js", - "tsconfig.json" - ], - "keywords": [], - "license": "MIT", - "dependencies": { - "lit": "^3.1.3" - }, - "devDependencies": { - "@happy-dom/global-registrator": "^14.7.1", - "intersection-observer": "^0.12.2" - }, - "exports": { - ".": { - "import": "./index.js", - "types": "./index.d.ts" - }, - "./knob": { - "import": "./packages/toggle/dist/index.js", - "require": "./packages/toggle/dist/index.cjs", - "types": "./packages/toggle/src/index.ts" - }, - "./fluid-input": { - "import": "./packages/expandable/dist/index.js", - "require": "./packages/expandable/dist/index.cjs", - "types": "./packages/expandable/src/index.ts" - }, - "./layout": { - "import": "./packages/dropdown/dist/index.js", - "require": "./packages/dropdown/dist/index.cjs", - "types": "./packages/dropdown/src/index.ts" - } - } -} diff --git a/packages/elements-pro/packages/field/bun.lockb b/packages/elements-pro/packages/field/bun.lockb deleted file mode 100755 index 80819b8782b18823e683ee4ce06acb380ebf0679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75365 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 V5TZ_^lY#x%VyJM${lD+O{{tWD(|`Z~ diff --git a/packages/elements-pro/packages/field/index.html b/packages/elements-pro/packages/field/index.html deleted file mode 100644 index 148e4cb8..00000000 --- a/packages/elements-pro/packages/field/index.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - Layout - - - - - - - -
- -
- - diff --git a/packages/elements-pro/packages/field/package.json b/packages/elements-pro/packages/field/package.json deleted file mode 100644 index 37189dee..00000000 --- a/packages/elements-pro/packages/field/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@atrium-ui/field", - "version": "1.0.0", - "author": "luckydye", - "description": "An inpput element that is read-only by default. Enables users to edit the value by double-clicking on the input.", - "license": "MIT", - "main": "dist/index.cjs", - "module": "dist/index.js", - "type": "module", - "types": "index.ts", - "scripts": { - "dev": "vite", - "dev:build": "vite build", - "build": "tsup" - }, - "devDependencies": { - "@atrium-ui/codestyle": "^1.1.1", - "@biomejs/biome": "^1.8.3", - "tsup": "^8.2.4", - "typescript": "^5.5.4", - "vite": "^5.4.2" - }, - "tsup": { - "entry": ["src/index.ts"], - "format": ["esm", "cjs"], - "sourcemap": true, - "clean": true - } -} diff --git a/packages/elements-pro/packages/field/src/Field.ts b/packages/elements-pro/packages/field/src/Field.ts deleted file mode 100644 index f1517b4f..00000000 --- a/packages/elements-pro/packages/field/src/Field.ts +++ /dev/null @@ -1,223 +0,0 @@ -const css = String.raw; - -export class Field extends HTMLElement { - static get observedAttributes() { - return ["value", "name"]; - } - - attributeChangedCallback(name: string, _oldValue: string, newValue: string) { - if (name === "value") { - this.value = newValue; - } - if (name === "name") { - this.name = newValue; - } - } - - private readonly input = this.createInput(); - private readonly inner = this.createInnerText(); - - public set value(value: string) { - this.inner.innerText = value; - this.input.value = value; - } - - public get value() { - return this.input.value; - } - - public set name(name: string) { - this.input.name = name; - } - - public get name() { - return this.input.name; - } - - public set editable(editable: boolean) { - if (editable) { - this.setAttribute("editable", ""); - } else { - this.removeAttribute("editable"); - } - } - - public get editable() { - return this.hasAttribute("editable"); - } - - public enable() { - this.editable = true; - - requestAnimationFrame(() => { - this.input.focus(); - }); - } - - public disable() { - this.editable = false; - window.getSelection()?.empty(); - } - - public reportValidity() { - return this.input.reportValidity() && this.input.value.length >= this.input.minLength; - } - - private clickCount = 0; - - constructor() { - super(); - - this.addEventListener("pointerdown", () => { - if (this.editable) return; - - this.clickCount++; - - if (this.clickCount === 2) { - this.enable(); - } - - setTimeout(() => { - this.clickCount = 0; - }, 400); - }); - } - - public connectedCallback() { - this.attach(); - } - - public trySubmit() { - if (!this.reportValidity()) { - return false; - } - - this.setAttribute("value", this.value); - this.disable(); - - this.dispatchEvent(new CustomEvent("change", { detail: this.value, bubbles: true })); - - return true; - } - - public cancel() { - const oldValue = this.getAttribute("value"); - if (oldValue) { - this.value = oldValue; - } - this.disable(); - } - - private createInnerText() { - const text = document.createElement("span"); - text.innerText = this.value; - return text; - } - - private createInput() { - const input = document.createElement("input"); - input.type = "text"; - input.autocomplete = "off"; - input.minLength = 2; - - input.addEventListener("input", (ev: Event) => { - ev.stopPropagation(); - }); - - input.addEventListener("change", (ev: Event) => { - ev.stopPropagation(); - }); - - input.addEventListener("keydown", (ev: KeyboardEvent) => { - this.handleKey(ev) && ev.preventDefault(); - }); - - input.addEventListener("focusout", (e: Event) => { - this.clickCount = 0; - - if (this.editable) { - this.trySubmit() || this.cancel(); - } - }); - - return input; - } - - private handleKey(ev: KeyboardEvent) { - if (ev.key === "Enter") { - this.trySubmit(); - return true; - } - - if (ev.key === "Escape") { - this.cancel(); - return true; - } - - return false; - } - - private attach() { - if (!this.shadowRoot) { - const shadowRoot = this.attachShadow({ mode: "open" }); - const styles = document.createElement("style"); - styles.innerHTML = css` - * { - box-sizing: border-box; - } - - :host { - display: inline-block; - } - - :host([editable]) { - cursor: text; - } - - /* text container */ - div { - position: relative; - } - - /* inner text */ - span { - pointer-events: none; - } - - :host([editable]) span { - pointer-events: none; - visibility: hidden; - } - - /* input */ - slot { - position: absolute; - z-index: 1; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: none; - } - - :host([editable]) slot { - display: block; - } - - ::slotted(input) { - all: unset; - width: 100%; - height: 100%; - } - `; - shadowRoot.append(styles); - const container = document.createElement("div"); - const slot = document.createElement("slot"); - container.appendChild(this.inner); - container.appendChild(slot); - shadowRoot.append(container); - } - - this.appendChild(this.input); - } -} diff --git a/packages/elements-pro/packages/field/src/index.ts b/packages/elements-pro/packages/field/src/index.ts deleted file mode 100644 index c38dfbc6..00000000 --- a/packages/elements-pro/packages/field/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Field } from "./Field.js"; - -customElements.define("a-field", Field); - -export { Field }; diff --git a/packages/elements-pro/packages/fluid-input/tsconfig.json b/packages/elements-pro/packages/fluid-input/tsconfig.json deleted file mode 100644 index 4082f16a..00000000 --- a/packages/elements-pro/packages/fluid-input/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json" -} diff --git a/packages/elements-pro/packages/knob/tsconfig.json b/packages/elements-pro/packages/knob/tsconfig.json deleted file mode 100644 index 4082f16a..00000000 --- a/packages/elements-pro/packages/knob/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json" -} diff --git a/packages/elements-pro/packages/layout/README.md b/packages/elements-pro/packages/layout/README.md deleted file mode 100644 index 47141461..00000000 --- a/packages/elements-pro/packages/layout/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Layout - -A simple panel layout framework based on css grid. diff --git a/packages/elements-pro/packages/layout/package.json b/packages/elements-pro/packages/layout/package.json deleted file mode 100644 index 96beef00..00000000 --- a/packages/elements-pro/packages/layout/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@atrium-ui/layout", - "version": "2.0.0", - "author": "luckydye", - "description": "A simple panel layout framework based on css grid.", - "license": "MIT", - "main": "dist/index.cjs", - "module": "dist/index.js", - "type": "module", - "types": "index.ts", - "scripts": { - "dev": "vite", - "dev:build": "vite build", - "build": "tsup" - }, - "devDependencies": { - "@atrium-ui/codestyle": "^1.1.1", - "@biomejs/biome": "^1.8.3", - "tsup": "^8.2.4", - "typescript": "^5.5.4", - "vite": "^5.4.2" - }, - "tsup": { - "entry": ["src/index.ts"], - "format": ["esm", "cjs"], - "sourcemap": true, - "clean": true - } -} diff --git a/packages/elements-pro/packages/layout/src/Column.ts b/packages/elements-pro/packages/layout/src/Column.ts deleted file mode 100644 index bd60bae5..00000000 --- a/packages/elements-pro/packages/layout/src/Column.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Panel } from "./Panel.js"; - -export class Column extends Panel { - resizableRow = true; - resizableColumn = false; - removeOnEmtpy = true; -} diff --git a/packages/elements-pro/packages/layout/src/Group.ts b/packages/elements-pro/packages/layout/src/Group.ts deleted file mode 100644 index d941ccd6..00000000 --- a/packages/elements-pro/packages/layout/src/Group.ts +++ /dev/null @@ -1,426 +0,0 @@ -import { Column } from "./Column.js"; - -const styles = ` - :host { - display: flex; - flex-direction: column; - gap: 0; - - --tab-width: auto; - --tab-font-color: #ffffff; - --tab-font-size: 0.8em; - --tab-border-radius: 3px; - --tab-padding: 8px 18px; - --tab-border: none; - - --tab-background: #1C1C1C; - --tab-hover-background: #2F2F32; - --tab-active-background: #252527; - - --tab-bottom-border: none; - --tab-active-bottom-border: none; - } - - @media (prefers-color-scheme: light) { - :host { - --tab-background: #EEE; - --tab-hover-background: #FFF; - --tab-active-background: #FFF; - } - } - - [part="tabs"] { - display: flex; - color: inherit; - z-index: 1000; - pointer-events: all; - user-select: none; - font-size: var(--tab-font-size); - padding: 3px 3px 0 3px; - gap: 1px; - } - - .tab { - display: inline-flex; - align-items: center; - justify-content: center; - background: var(--tab-background); - cursor: pointer; - position: relative; - min-width: var(--tab-width); - padding: var(--tab-padding); - border-bottom: var(--tab-bottom-border); - color: var(--tab-font-color); - opacity: 0.5; - border-top-left-radius: var(--tab-border-radius); - border-top-right-radius: var(--tab-border-radius); - border: var(--tab-border); - } - - .tab[data-groupid] { - -webkit-user-drag: element; - } - - .tab[active] { - background: var(--tab-active-background); - border-bottom: var(--tab-active-bottom-border); - opacity: 1; - } - - .tab::before { - content: ""; - position: absolute; - pointer-events: none; - top: 0; - left: 0; - width: 100%; - height: 100%; - } - - .tab:hover { - background: var(--tab-hover-background); - } - - .tab:active { - background: var(--tab-active-background); - opacity: 1; - } - - .content slot { - display: block; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - } - - :host([drag-over]) { - --left: 0; - --top: 0; - --width: 100%; - --height: 100%; - } - - :host([drag-over])::slotted(*) { - pointer-events: none; - } - - :host([drag-over])::after { - content: ''; - background: white; - opacity: 0.05; - position: absolute; - top: var(--top); - left: var(--left); - z-index: 10000; - width: var(--width); - height: var(--height); - pointer-events: none; - } - - ::slotted([tab]) { - width: 100%; - height: 100%; - position: absolute; - top: 0; - left: 0; - } - - ::slotted([tab]:not([active])) { - display: none !important; - visibility: hidden; - opacity: 0; - transition: none; - pointer-events: none; - } - - .content { - position: relative; - width: 100%; - height: 100%; - } -`; - -export class Group extends Column { - static get observedAttributes() { - return ["active-tab", "tabs"]; - } - - template() { - return ` -
-
- ${super.template()} -
- `; - } - - styles() { - return ` - ${super.styles()} - ${styles} - `; - } - - get activeTab() { - if (this.hasAttribute("active-tab")) { - return +(this.getAttribute("active-tab") || 0); - } - return -1; - } - - set activeTab(index: number) { - this.setActiveTab(index); - } - - get tabs() { - const elements = this.shadowRoot?.querySelectorAll(".tab[data-groupid]"); - return elements ? [...elements] : []; - } - - get components() { - return [...this.children].filter((ele) => ele.hasAttribute("tab")); - } - - attributeChangedCallback(name: string, oldValue: string, newValue: string) { - if (oldValue === newValue) return; - - if (name === "active-tab") { - this.activeTab = +newValue; - } - - this.renderTabs(); - } - - connectedCallback() { - super.connectedCallback(); - - this.addEventListener("dragover", this.dragOverHandler); - this.addEventListener("dragleave", this.dragLeaveHandler); - this.addEventListener("dragend", this.dragEndHandler); - this.addEventListener("drop", this.dragDropHandler); - } - - slotChangeCallback() { - super.slotChangeCallback(); - - this.renderTabs(); - this.activeTab = 0; - } - - insertPosition = 0; - - dragOverHandler = (e: DragEvent) => { - if (!document.body.hasAttribute("layout-drag")) return; - - e.preventDefault(); - - const bounds = this.getBoundingClientRect(); - - const x = e.x; - const y = e.y; - - const area = Math.min(bounds.height / 8, bounds.width / 8); - - this.removeAttribute("style"); - this.insertPosition = 0; - - if (y < bounds.top + area) { - this.style.setProperty("--height", `${area}px`); - - this.insertPosition = -1; - } else if (y > bounds.bottom - area) { - this.style.setProperty("--height", `${area}px`); - this.style.setProperty("--top", `${bounds.height - area}px`); - - this.insertPosition = 1; - } else if (x < bounds.left + area) { - this.style.setProperty("--width", `${area}px`); - - this.insertPosition = -2; - } else if (x > bounds.right - area) { - this.style.setProperty("--width", `${area}px`); - this.style.setProperty("--left", `${bounds.width - area}px`); - - this.insertPosition = 2; - } - - this.setAttribute("drag-over", ""); - - if (e.dataTransfer) e.dataTransfer.dropEffect = "move"; - }; - - dragEndHandler = (e: DragEvent) => { - this.dragLeaveHandler(e); - - if (document.body.hasAttribute("layout-drag")) { - document.body.removeAttribute("layout-drag"); - } - }; - - dragLeaveHandler = (e: DragEvent) => { - this.removeAttribute("drag-over"); - this.removeAttribute("style"); - }; - - dragDropHandler = (e: DragEvent) => { - e.preventDefault(); - - this.dragEndHandler(e); - - const targetId = e.dataTransfer?.getData("tab"); - - if (!targetId) return; - - const component = document.querySelector(`[${targetId}]`); - - if (!component) return; - - if (this.insertPosition === 0 && component.parentNode === this) return; - - component.parentNode?.removeChild(component); - - // apend inside - if (this.insertPosition === 0) { - this.appendChild(component); - } - - // vertical - if (Math.abs(this.insertPosition) === 1) { - const oldHeight = this.height; - const newGroup = this.cloneNode(); - - newGroup.appendChild(component); - - // apend above - if (this.insertPosition < 0) { - newGroup.height = oldHeight / 2; - this.height -= oldHeight / 2; - this.parentNode?.insertBefore(newGroup, this); - } - - // apend below - if (this.insertPosition > 0) { - newGroup.height = oldHeight / 2; - this.height -= oldHeight / 2; - this.parentNode?.insertBefore(newGroup, this.nextSibling); - } - } - - // horizontal - if (Math.abs(this.insertPosition) === 2) { - const oldWidth = this.parentNode.width; - const newColumn = this.parentNode.cloneNode(); - const newGroup = this.cloneNode(); - - newGroup.appendChild(component); - newColumn.appendChild(newGroup); - - // apend to the left - if (this.insertPosition < 0) { - this.parentNode.width -= oldWidth / 2; - newColumn.width = oldWidth / 2; - this.parentNode.parentNode.insertBefore(newColumn, this.parentNode); - } - - // apend to the right - if (this.insertPosition > 0) { - this.parentNode.width -= oldWidth / 2; - newColumn.width = oldWidth / 2; - this.parentNode.parentNode.insertBefore(newColumn, this.parentNode.nextSibling); - } - } - }; - - // updates tabs bar if components have changed - renderTabs() { - if (!this.shadowRoot) return; - - const tabs = this.shadowRoot.querySelector(".tabs"); - if (!tabs) return; - - tabs.innerHTML = ""; - - // creates tab ele for component - const createTab = (component) => { - const tab = document.createElement("button"); - tab.setAttribute("draggable", "true"); - tab.className = "tab"; - tab.part = "tab"; - - if (component) { - const groupid = component.getAttribute("tab"); - - if (groupid) { - const id = component.name || groupid; - tab.innerHTML = `${id}`; - tab.dataset.groupid = groupid; - } - - tab.onclick = (e) => { - const index = [...tab.parentNode.children].indexOf(tab); - this.activeTab = index; - }; - - tab.ondragstart = (e) => { - document.body.setAttribute("layout-drag", ""); - e.dataTransfer?.setData("tab", "drag-target"); - component.setAttribute("drag-target", ""); - }; - - tab.ondragend = (e) => { - setTimeout(() => { - component.removeAttribute("drag-target"); - }, 10); - }; - } - - return tab; - }; - - const components = this.components; - - if (components.length > 1 || this.hasAttribute("tabs")) { - for (let i = 0; i < components.length; i++) { - const tab = createTab(components[i]); - tabs.appendChild(tab); - } - } - - // set active tab if undefined - if (this.activeTab === undefined) { - this.activeTab = 0; - } - - if (this.activeTab > this.tabs?.length - 1) { - this.activeTab = Math.max(this.tabs?.length - 1, 0); - } - } - - // updates components and tab bar if active tab changed - setActiveTab(index: number) { - const tabs = this.tabs; - const components = this.components; - - for (let i = 0; i < components.length; i++) { - const tab = tabs[i]; - - if (tab) { - if (i === index) { - tab.setAttribute("active", ""); - } else { - tab.removeAttribute("active"); - } - } - - if (components[i]) { - if (i === index) { - components[i].setAttribute("active", ""); - } else { - components[i].removeAttribute("active"); - } - } - } - } -} diff --git a/packages/elements-pro/packages/layout/src/Panel.ts b/packages/elements-pro/packages/layout/src/Panel.ts deleted file mode 100644 index cf6fda80..00000000 --- a/packages/elements-pro/packages/layout/src/Panel.ts +++ /dev/null @@ -1,389 +0,0 @@ -const styles = ` - :host { - --split-bar-color: rgba(255, 255, 255, 0.3); - --split-bar-color-hover: rgba(255, 255, 255, 0.2); - --layout-grid-gap: 3px; - - position: relative; - overflow: hidden; - display: grid; - grid-gap: var(--layout-grid-gap); - width: 100%; - height: 100%; - } - - .split-bar { - --size: 0; - --x: 0; - --y: 0; - - z-index: 100000; - position: fixed; - left: calc(var(--x, 0) * 1px); - top: calc(var(--y, 0) * 1px); - background: var(--split-bar-color-hover); - } - .split-bar[active] { - background: var(--split-bar-color); - } - .split-bar.vertical { - height: 100%; - width: calc(var(--size) * 1px); - transform: translate(-50%, 0); - } - .split-bar.horizontal { - width: 100%; - height: calc(var(--size) * 1px); - transform: translate(0, -50%); - } - .split-bar::after { - content: ""; - z-index: 10000; - position: absolute; - top: 0; - left: 0; - } - .split-bar.vertical::after { - width: 200px; - height: 100%; - transform: translate(-50%, 0); - cursor: col-resize; - } - .split-bar.horizontal::after { - height: 200px; - width: 100%; - transform: translate(0, -50%); - cursor: row-resize; - } -`; - -export class Panel extends HTMLElement { - template() { - return ""; - } - - styles() { - return styles; - } - - get childElements() { - return [...this.children].filter((ele) => ele instanceof Panel); - } - - get shadowSlot() { - return this.shadowRoot?.querySelector("slot"); - } - - columns: number[] = []; - rows: number[] = []; - - resizableRow = false; - resizableColumn = true; - removeOnEmtpy = false; - boundsInvalid = true; - - chacnelDragOver = () => { - this.removeAttribute("drag-over"); - }; - - slotChangeCallback() { - requestAnimationFrame(() => { - if (this.removeOnEmtpy && this.children.length === 0) { - this.parentNode?.removeChild(this); - } - }); - - this.layoutUpdate(); - this.onLayoutChange(); - } - - constructor() { - super(); - - this.addEventListener("dragend", this.chacnelDragOver); - this.addEventListener("dragcancel", this.chacnelDragOver); - this.addEventListener("dragleave", this.chacnelDragOver); - this.addEventListener("drop", this.chacnelDragOver); - - // ignore components on drag over - this.addEventListener("dragstart", (e) => { - if (e.dataTransfer?.getData("tab")) { - this.setAttribute("drag-over", ""); - } - }); - } - - connectedCallback() { - this.attachShadow({ mode: "open" }); - - if (!this.shadowRoot) { - throw new Error("Failed to attach shadow root"); - } - - this.shadowRoot.innerHTML = this.template(); - const style = document.createElement("style"); - style.innerHTML = this.styles(); - this.shadowRoot.appendChild(style); - - if (this.shadowSlot) { - this.shadowSlot.onslotchange = (e) => this.slotChangeCallback(); - } - - this.slotChangeCallback(); - - window.addEventListener("resize", () => { - this.boundsInvalid = true; - }); - - this.resizable(); - } - - resizable() { - const splitBar = document.createElement("div"); - splitBar.className = "split-bar"; - - const borderSizeVar = getComputedStyle(this).getPropertyValue("--layout-grid-gap"); - const borderSize = Number.parseInt(borderSizeVar); - - let pointerDownEvent: PointerEvent | null = null; - let resizeAvailable = [0, 0]; - - const pointerMoveHandler = (e, index) => { - // check if bounds needs update - if (this.boundsInvalid) { - this.updateBounds(); - } - - const children = this.childElements; - - // return here if target is the last child - if (children.length - 1 <= index) { - return; - } - - const column = children[index]; - const columnBounds = column.boundingBox; - - const borderX = - columnBounds.left + - this.width * (this.columns[index] / children.length) + - borderSize / 2; - const borderY = - columnBounds.top + - this.height * (this.rows[index] / children.length) + - borderSize / 2; - - const minElementFraction = 0.05; - - const mouse = [e.x, e.y]; - - const mouseDelta = [e.movementX, e.movementY]; - - const delta = [ - this.columns[index] + mouseDelta[0] / this.width > minElementFraction && - this.columns[index + 1] - mouseDelta[0] / this.width > minElementFraction - ? mouseDelta[0] - : 0, - - this.rows[index] + mouseDelta[1] / this.height > minElementFraction && - this.rows[index + 1] - mouseDelta[1] / this.height > minElementFraction - ? mouseDelta[1] - : 0, - ]; - - const resizable = [ - this.resizableColumn && - mouse[0] > borderX - borderSize && - mouse[0] < borderX + borderSize && - mouse[1] < borderY && - mouse[1] > columnBounds.top, - - this.resizableRow && - mouse[1] > borderY - borderSize && - mouse[1] < borderY + borderSize && - mouse[0] < borderX && - mouse[0] > columnBounds.left, - ]; - - const resizeX = resizable[0] || resizeAvailable[0]; - const resizeY = resizable[1] || resizeAvailable[1]; - - if (pointerDownEvent) { - if (resizeX) { - this.onResize([delta[0], 0], index); - } - if (resizeY) { - this.onResize([0, delta[1]], index); - } - } - - // update splitbar - - if (resizeX || (resizeY && !splitBar.parentNode)) { - this.shadowRoot.appendChild(splitBar); - } - - if (splitBar.parentNode) { - if (!pointerDownEvent && !resizeX && !resizeY) { - splitBar.remove(); - } - - if (pointerDownEvent) { - splitBar.setAttribute("active", ""); - } else { - splitBar.removeAttribute("active"); - } - - if (resizeX) { - splitBar.className = "split-bar vertical"; - splitBar.style.setProperty("--size", borderSize); - splitBar.style.setProperty( - "--x", - pointerDownEvent ? borderX + delta[0] : borderX, - ); - splitBar.style.setProperty("--y", column.boundingBox.top); - splitBar.style.height = `${column.height}px`; - } - - if (resizeY) { - splitBar.className = "split-bar horizontal"; - splitBar.style.setProperty("--size", borderSize); - splitBar.style.setProperty( - "--y", - pointerDownEvent ? borderY + delta[1] : borderY, - ); - splitBar.style.setProperty("--x", column.boundingBox.left); - splitBar.style.width = `${column.width}px`; - } - } - - // set resize state - if (!pointerDownEvent) { - resizeAvailable = resizable; - } - - return resizeAvailable[0] || resizeAvailable[1]; - }; - - const cancelPointerHandler = (e) => { - if (pointerDownEvent) { - this.onLayoutChange(); - } - - pointerDownEvent = null; - splitBar.removeAttribute("active"); - }; - - const pointerDownHandler = (e) => { - if (resizeAvailable[0] || resizeAvailable[1]) { - pointerDownEvent = e; - splitBar.setAttribute("active", ""); - } - }; - - let activeChild: number | null = null; - - this.addEventListener("pointerdown", pointerDownHandler); - - window.addEventListener("pointermove", (e) => { - if (resizeAvailable[0] || resizeAvailable[1]) { - pointerMoveHandler(e, activeChild); - e.preventDefault(); - } else { - for (let c = 0; c < this.childElements.length; c++) { - if (pointerMoveHandler(e, c)) { - e.preventDefault(); - activeChild = c; - return; - } - } - } - }); - window.addEventListener("pointerup", cancelPointerHandler); - window.addEventListener("pointercancel", cancelPointerHandler); - - if (this.boundsInvalid) { - this.updateBounds(); - } - } - - onLayoutChange() { - window.dispatchEvent(new Event("resize")); - } - - width = 0; - height = 0; - boundingBox?: DOMRect; - - updateBounds() { - this.width = this.clientWidth; - this.height = this.clientHeight; - this.boundingBox = this.getBoundingClientRect(); - - for (const child of this.childElements) { - child.width = child.clientWidth; - child.height = child.clientHeight; - child.boundingBox = child.getBoundingClientRect(); - } - - this.layoutUpdate(); - - this.boundsInvalid = false; - } - - onResize(delta, childIndex) { - const children = this.childElements; - const availableWidth = this.width; - const availableHeight = this.height; - - if (delta[0]) { - const frac = (delta[0] / availableWidth) * children.length; - - this.columns[childIndex] = (this.columns[childIndex] || 1) + frac; - this.columns[childIndex + 1] = (this.columns[childIndex + 1] || 1) - frac; - } - - if (delta[1]) { - const frac = (delta[1] / availableHeight) * children.length; - - this.rows[childIndex] = (this.rows[childIndex] || 1) + frac; - this.rows[childIndex + 1] = (this.rows[childIndex + 1] || 1) - frac; - } - - this.setLayoutTempalte(this.columns, this.rows); - } - - layoutUpdate() { - const children = this.childElements; - - this.columns = []; - this.rows = []; - - if (children.length === 1) { - this.columns = [1]; - this.rows = [1]; - } else { - for (let i = 0; i < children.length; i++) { - this.columns[i] = (children[i].width / this.width) * children.length; - this.rows[i] = (children[i].height / this.height) * children.length; - } - } - - this.setLayoutTempalte(this.columns, this.rows); - } - - setLayoutTempalte(columnTemplate = [1, 1], rowTemplate = [1, 1]) { - if (this.resizableColumn) { - this.style.gridTemplateColumns = columnTemplate - .map((n) => `${n.toFixed(4)}fr`) - .join(" "); - this.style.gridTemplateRows = "1fr"; - } - if (this.resizableRow) { - this.style.gridTemplateColumns = "1fr"; - this.style.gridTemplateRows = rowTemplate.map((n) => `${n.toFixed(4)}fr`).join(" "); - } - - window.dispatchEvent(new Event("layout")); - } -} diff --git a/packages/elements-pro/packages/layout/src/index.ts b/packages/elements-pro/packages/layout/src/index.ts deleted file mode 100644 index 0111e449..00000000 --- a/packages/elements-pro/packages/layout/src/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Column } from "./Column.js"; -import { Group } from "./Group.js"; -import { Panel } from "./Panel.js"; - -customElements.define("a-layout", Panel); -customElements.define("a-layout-column", Column); -customElements.define("a-layout-group", Group); - -export { Column, Group, Panel }; diff --git a/packages/elements-pro/packages/layout/test/index.html b/packages/elements-pro/packages/layout/test/index.html deleted file mode 100644 index edd4150a..00000000 --- a/packages/elements-pro/packages/layout/test/index.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - Layout - - - - - - - - - - -
ABC
- 1 - 2 - 3 -
-
-
- - diff --git a/packages/elements-pro/packages/layout/test/index2.html b/packages/elements-pro/packages/layout/test/index2.html deleted file mode 100644 index 3be29bf4..00000000 --- a/packages/elements-pro/packages/layout/test/index2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - Layout - - - - - - - - - - - 1 - - - 2 - - - - - - 3 - - - 4 - - - - - diff --git a/packages/elements-pro/packages/layout/tsconfig.json b/packages/elements-pro/packages/layout/tsconfig.json deleted file mode 100644 index 4082f16a..00000000 --- a/packages/elements-pro/packages/layout/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json" -} diff --git a/packages/elements-pro/test/preload.ts b/packages/elements-pro/test/preload.ts deleted file mode 100644 index 8e5d50eb..00000000 --- a/packages/elements-pro/test/preload.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { GlobalRegistrator } from "@happy-dom/global-registrator"; - -GlobalRegistrator.register(); - -require("intersection-observer"); - -globalThis.IntersectionObserver = window.IntersectionObserver; diff --git a/packages/elements-pro/tsconfig.json b/packages/elements-pro/tsconfig.json deleted file mode 100644 index ef226fd3..00000000 --- a/packages/elements-pro/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "@sv/codestyle/tsconfig.json", - "compilerOptions": { - "useDefineForClassFields": false, - "experimentalDecorators": true, - "types": ["@types/bun"] - }, - "exclude": [ - "node_modules", - "**/dist" - ] -} diff --git a/packages/elements-pro/packages/fluid-input/package.json b/packages/elements/packages/fluid-input/package.json similarity index 100% rename from packages/elements-pro/packages/fluid-input/package.json rename to packages/elements/packages/fluid-input/package.json diff --git a/packages/elements-pro/packages/fluid-input/src/FluidInput.ts b/packages/elements/packages/fluid-input/src/FluidInput.ts similarity index 100% rename from packages/elements-pro/packages/fluid-input/src/FluidInput.ts rename to packages/elements/packages/fluid-input/src/FluidInput.ts diff --git a/packages/elements-pro/packages/fluid-input/src/index.ts b/packages/elements/packages/fluid-input/src/index.ts similarity index 100% rename from packages/elements-pro/packages/fluid-input/src/index.ts rename to packages/elements/packages/fluid-input/src/index.ts diff --git a/packages/elements-audio/packages/audio-meter/tsconfig.json b/packages/elements/packages/fluid-input/tsconfig.json similarity index 100% rename from packages/elements-audio/packages/audio-meter/tsconfig.json rename to packages/elements/packages/fluid-input/tsconfig.json diff --git a/packages/elements-pro/packages/knob/package.json b/packages/elements/packages/knob/package.json similarity index 100% rename from packages/elements-pro/packages/knob/package.json rename to packages/elements/packages/knob/package.json diff --git a/packages/elements-pro/packages/knob/src/Knob.ts b/packages/elements/packages/knob/src/Knob.ts similarity index 100% rename from packages/elements-pro/packages/knob/src/Knob.ts rename to packages/elements/packages/knob/src/Knob.ts diff --git a/packages/elements-pro/packages/knob/src/index.ts b/packages/elements/packages/knob/src/index.ts similarity index 100% rename from packages/elements-pro/packages/knob/src/index.ts rename to packages/elements/packages/knob/src/index.ts diff --git a/packages/elements-pro/packages/field/tsconfig.json b/packages/elements/packages/knob/tsconfig.json similarity index 100% rename from packages/elements-pro/packages/field/tsconfig.json rename to packages/elements/packages/knob/tsconfig.json From cd42e53f6afcc7fb886799bc71ddaa0f28da5fdb Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 31 Jan 2026 20:53:00 +0100 Subject: [PATCH 12/16] fi --- bun.lock | 595 ++++++++++++++++++++++++++++----------------------- bun.lockb | Bin 580992 -> 0 bytes package.json | 15 +- 3 files changed, 334 insertions(+), 276 deletions(-) delete mode 100755 bun.lockb diff --git a/bun.lock b/bun.lock index d0352bbf..af52217f 100644 --- a/bun.lock +++ b/bun.lock @@ -5,14 +5,15 @@ "": { "name": "atrium", "dependencies": { - "@biomejs/biome": "^1.8.0", - "@types/bun": "^1.1.0", - "@types/node": "^20.11.0", + "@biomejs/biome": "2.0.6", + "@total-typescript/ts-reset": "^0.6.1", + "@types/bun": "^1.2.21", + "@types/node": "^20.19.13", "@types/web": "^0.0.123", - "fast-glob": "^3.3.2", - "npm": "^10.7.0", - "tsup": "^8.1.0", - "turbo": "^2.0.1", + "fast-glob": "^3.3.3", + "npm": "^10.9.3", + "turbo": "^2.5.6", + "typescript": "^5.9.2", }, }, "docs": { @@ -136,56 +137,6 @@ "chart.js": "^4.4.3", }, }, - "packages/elements-audio": { - "name": "@sv/elements-audio", - "version": "1.0.0", - "dependencies": { - "lit": "^3.1.3", - }, - "devDependencies": { - "@happy-dom/global-registrator": "^14.7.1", - "intersection-observer": "^0.12.2", - }, - }, - "packages/elements-pro": { - "name": "@atrium-ui/elements-pro", - "version": "1.0.2", - "dependencies": { - "lit": "^3.1.3", - }, - "devDependencies": { - "@happy-dom/global-registrator": "^14.7.1", - "intersection-observer": "^0.12.2", - }, - }, - "packages/elements-pro/packages/field": { - "name": "@atrium-ui/field", - "version": "1.0.0", - "devDependencies": { - "@atrium-ui/codestyle": "^1.1.1", - "@biomejs/biome": "^1.8.3", - "tsup": "^8.2.4", - "typescript": "^5.5.4", - "vite": "^5.4.2", - }, - }, - "packages/elements-pro/packages/fluid-input": { - "name": "@atrium-ui/fluid-input", - }, - "packages/elements-pro/packages/knob": { - "name": "@atrium-ui/knob", - }, - "packages/elements-pro/packages/layout": { - "name": "@atrium-ui/layout", - "version": "2.0.0", - "devDependencies": { - "@atrium-ui/codestyle": "^1.1.1", - "@biomejs/biome": "^1.8.3", - "tsup": "^8.2.4", - "typescript": "^5.5.4", - "vite": "^5.4.2", - }, - }, "packages/elements/packages/blur": { "name": "@sv/blur", "dependencies": { @@ -204,9 +155,15 @@ "packages/elements/packages/expandable": { "name": "@sv/expandable", }, + "packages/elements/packages/fluid-input": { + "name": "@atrium-ui/fluid-input", + }, "packages/elements/packages/form": { "name": "@sv/form", }, + "packages/elements/packages/knob": { + "name": "@atrium-ui/knob", + }, "packages/elements/packages/list": { "name": "@sv/list", }, @@ -330,19 +287,11 @@ "@astrojs/yaml2ts": ["@astrojs/yaml2ts@0.2.2", "", { "dependencies": { "yaml": "^2.5.0" } }, "sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ=="], - "@atrium-ui/codestyle": ["@atrium-ui/codestyle@1.4.0", "", { "dependencies": { "@commitlint/cli": "^19.5.0", "@commitlint/types": "^19.5.0", "@total-typescript/ts-reset": "^0.5.1", "conventional-changelog-conventionalcommits": "^8.0.0" }, "bin": { "codestyle": "bin/cli.js" } }, "sha512-jIitonL0heJ/w1NfxTRqqMR8CbNFQvjL34GpvPr0eYNk1m/aSfpAsyMcSXgf8DKB+7rutiIugIXG0IEjre+Q2w=="], - "@atrium-ui/dropzone": ["@atrium-ui/dropzone@workspace:packages/elements/packages/dropzone"], - "@atrium-ui/elements-pro": ["@atrium-ui/elements-pro@workspace:packages/elements-pro"], - - "@atrium-ui/field": ["@atrium-ui/field@workspace:packages/elements-pro/packages/field"], + "@atrium-ui/fluid-input": ["@atrium-ui/fluid-input@workspace:packages/elements/packages/fluid-input"], - "@atrium-ui/fluid-input": ["@atrium-ui/fluid-input@workspace:packages/elements-pro/packages/fluid-input"], - - "@atrium-ui/knob": ["@atrium-ui/knob@workspace:packages/elements-pro/packages/knob"], - - "@atrium-ui/layout": ["@atrium-ui/layout@workspace:packages/elements-pro/packages/layout"], + "@atrium-ui/knob": ["@atrium-ui/knob@workspace:packages/elements/packages/knob"], "@babel/code-frame": ["@babel/code-frame@7.28.6", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q=="], @@ -410,60 +359,28 @@ "@babel/types": ["@babel/types@7.28.6", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg=="], - "@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "1.9.4", "@biomejs/cli-darwin-x64": "1.9.4", "@biomejs/cli-linux-arm64": "1.9.4", "@biomejs/cli-linux-arm64-musl": "1.9.4", "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4", "@biomejs/cli-win32-arm64": "1.9.4", "@biomejs/cli-win32-x64": "1.9.4" }, "bin": { "biome": "bin/biome" } }, "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog=="], + "@biomejs/biome": ["@biomejs/biome@2.0.6", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.0.6", "@biomejs/cli-darwin-x64": "2.0.6", "@biomejs/cli-linux-arm64": "2.0.6", "@biomejs/cli-linux-arm64-musl": "2.0.6", "@biomejs/cli-linux-x64": "2.0.6", "@biomejs/cli-linux-x64-musl": "2.0.6", "@biomejs/cli-win32-arm64": "2.0.6", "@biomejs/cli-win32-x64": "2.0.6" }, "bin": { "biome": "bin/biome" } }, "sha512-RRP+9cdh5qwe2t0gORwXaa27oTOiQRQvrFf49x2PA1tnpsyU7FIHX4ZOFMtBC4QNtyWsN7Dqkf5EDbg4X+9iqA=="], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@1.9.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw=="], + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.0.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-AzdiNNjNzsE6LfqWyBvcL29uWoIuZUkndu+wwlXW13EKcBHbbKjNQEZIJKYDc6IL+p7bmWGx3v9ZtcRyIoIz5A=="], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@1.9.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg=="], + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.0.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-wJjjP4E7bO4WJmiQaLnsdXMa516dbtC6542qeRkyJg0MqMXP0fvs4gdsHhZ7p9XWTAmGIjZHFKXdsjBvKGIJJQ=="], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g=="], + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.0.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-ZSVf6TYo5rNMUHIW1tww+rs/krol7U5A1Is/yzWyHVZguuB0lBnIodqyFuwCNqG9aJGyk7xIMS8HG0qGUPz0SA=="], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA=="], + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.0.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-CVPEMlin3bW49sBqLBg2x016Pws7eUXA27XYDFlEtponD0luYjg2zQaMJ2nOqlkKG9fqzzkamdYxHdMDc2gZFw=="], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.0.6", "", { "os": "linux", "cpu": "x64" }, "sha512-geM1MkHTV1Kh2Cs/Xzot9BOF3WBacihw6bkEmxkz4nSga8B9/hWy5BDiOG3gHDGIBa8WxT0nzsJs2f/hPqQIQw=="], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.0.6", "", { "os": "linux", "cpu": "x64" }, "sha512-mKHE/e954hR/hSnAcJSjkf4xGqZc/53Kh39HVW1EgO5iFi0JutTN07TSjEMg616julRtfSNJi0KNyxvc30Y4rQ=="], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@1.9.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg=="], + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.0.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-290V4oSFoKaprKE1zkYVsDfAdn0An5DowZ+GIABgjoq1ndhvNxkJcpxPsiYtT7slbVe3xmlT0ncdfOsN7KruzA=="], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@1.9.4", "", { "os": "win32", "cpu": "x64" }, "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA=="], + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.0.6", "", { "os": "win32", "cpu": "x64" }, "sha512-bfM1Bce0d69Ao7pjTjUS+AWSZ02+5UHdiAP85Th8e9yV5xzw6JrHXbL5YWlcEKQ84FIZMdDc7ncuti1wd2sdbw=="], "@capsizecss/unpack": ["@capsizecss/unpack@4.0.0", "", { "dependencies": { "fontkitten": "^1.0.0" } }, "sha512-VERIM64vtTP1C4mxQ5thVT9fK0apjPFobqybMtA1UdUujWka24ERHbRHFGmpbbhp73MhV+KSsHQH9C6uOTdEQA=="], "@colors/colors": ["@colors/colors@1.6.0", "", {}, "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA=="], - "@commitlint/cli": ["@commitlint/cli@19.8.1", "", { "dependencies": { "@commitlint/format": "^19.8.1", "@commitlint/lint": "^19.8.1", "@commitlint/load": "^19.8.1", "@commitlint/read": "^19.8.1", "@commitlint/types": "^19.8.1", "tinyexec": "^1.0.0", "yargs": "^17.0.0" }, "bin": { "commitlint": "./cli.js" } }, "sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA=="], - - "@commitlint/config-validator": ["@commitlint/config-validator@19.8.1", "", { "dependencies": { "@commitlint/types": "^19.8.1", "ajv": "^8.11.0" } }, "sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ=="], - - "@commitlint/ensure": ["@commitlint/ensure@19.8.1", "", { "dependencies": { "@commitlint/types": "^19.8.1", "lodash.camelcase": "^4.3.0", "lodash.kebabcase": "^4.1.1", "lodash.snakecase": "^4.1.1", "lodash.startcase": "^4.4.0", "lodash.upperfirst": "^4.3.1" } }, "sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw=="], - - "@commitlint/execute-rule": ["@commitlint/execute-rule@19.8.1", "", {}, "sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA=="], - - "@commitlint/format": ["@commitlint/format@19.8.1", "", { "dependencies": { "@commitlint/types": "^19.8.1", "chalk": "^5.3.0" } }, "sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw=="], - - "@commitlint/is-ignored": ["@commitlint/is-ignored@19.8.1", "", { "dependencies": { "@commitlint/types": "^19.8.1", "semver": "^7.6.0" } }, "sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg=="], - - "@commitlint/lint": ["@commitlint/lint@19.8.1", "", { "dependencies": { "@commitlint/is-ignored": "^19.8.1", "@commitlint/parse": "^19.8.1", "@commitlint/rules": "^19.8.1", "@commitlint/types": "^19.8.1" } }, "sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw=="], - - "@commitlint/load": ["@commitlint/load@19.8.1", "", { "dependencies": { "@commitlint/config-validator": "^19.8.1", "@commitlint/execute-rule": "^19.8.1", "@commitlint/resolve-extends": "^19.8.1", "@commitlint/types": "^19.8.1", "chalk": "^5.3.0", "cosmiconfig": "^9.0.0", "cosmiconfig-typescript-loader": "^6.1.0", "lodash.isplainobject": "^4.0.6", "lodash.merge": "^4.6.2", "lodash.uniq": "^4.5.0" } }, "sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A=="], - - "@commitlint/message": ["@commitlint/message@19.8.1", "", {}, "sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg=="], - - "@commitlint/parse": ["@commitlint/parse@19.8.1", "", { "dependencies": { "@commitlint/types": "^19.8.1", "conventional-changelog-angular": "^7.0.0", "conventional-commits-parser": "^5.0.0" } }, "sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw=="], - - "@commitlint/read": ["@commitlint/read@19.8.1", "", { "dependencies": { "@commitlint/top-level": "^19.8.1", "@commitlint/types": "^19.8.1", "git-raw-commits": "^4.0.0", "minimist": "^1.2.8", "tinyexec": "^1.0.0" } }, "sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ=="], - - "@commitlint/resolve-extends": ["@commitlint/resolve-extends@19.8.1", "", { "dependencies": { "@commitlint/config-validator": "^19.8.1", "@commitlint/types": "^19.8.1", "global-directory": "^4.0.1", "import-meta-resolve": "^4.0.0", "lodash.mergewith": "^4.6.2", "resolve-from": "^5.0.0" } }, "sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg=="], - - "@commitlint/rules": ["@commitlint/rules@19.8.1", "", { "dependencies": { "@commitlint/ensure": "^19.8.1", "@commitlint/message": "^19.8.1", "@commitlint/to-lines": "^19.8.1", "@commitlint/types": "^19.8.1" } }, "sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw=="], - - "@commitlint/to-lines": ["@commitlint/to-lines@19.8.1", "", {}, "sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg=="], - - "@commitlint/top-level": ["@commitlint/top-level@19.8.1", "", { "dependencies": { "find-up": "^7.0.0" } }, "sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw=="], - - "@commitlint/types": ["@commitlint/types@19.8.1", "", { "dependencies": { "@types/conventional-commits-parser": "^5.0.0", "chalk": "^5.3.0" } }, "sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw=="], - "@dabh/diagnostics": ["@dabh/diagnostics@2.0.8", "", { "dependencies": { "@so-ric/colorspace": "^1.1.6", "enabled": "2.0.x", "kuler": "^2.0.0" } }, "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q=="], "@dependents/detective-less": ["@dependents/detective-less@4.1.0", "", { "dependencies": { "gonzales-pe": "^4.3.0", "node-source-walk": "^6.0.1" } }, "sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg=="], @@ -486,57 +403,57 @@ "@emnapi/runtime": ["@emnapi/runtime@1.8.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg=="], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], - "@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], - "@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], "@floating-ui/core": ["@floating-ui/core@1.7.4", "", { "dependencies": { "@floating-ui/utils": "^0.2.10" } }, "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg=="], @@ -816,8 +733,6 @@ "@sv/elements": ["@sv/elements@workspace:packages/elements"], - "@sv/elements-audio": ["@sv/elements-audio@workspace:packages/elements-audio"], - "@sv/elements-shortcut": ["@sv/elements-shortcut@workspace:packages/elements/packages/shortcut"], "@sv/expandable": ["@sv/expandable@workspace:packages/elements/packages/expandable"], @@ -896,7 +811,7 @@ "@tootallnate/quickjs-emscripten": ["@tootallnate/quickjs-emscripten@0.23.0", "", {}, "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA=="], - "@total-typescript/ts-reset": ["@total-typescript/ts-reset@0.5.1", "", {}, "sha512-AqlrT8YA1o7Ff5wPfMOL0pvL+1X+sw60NN6CcOCqs658emD6RfiXhF7Gu9QcfKBH7ELY2nInLhKSCWVoNL70MQ=="], + "@total-typescript/ts-reset": ["@total-typescript/ts-reset@0.6.1", "", {}, "sha512-cka47fVSo6lfQDIATYqb/vO1nvFfbPw7uWLayIXIhGETj0wcOOlrlkobOMDNQOFr9QOafegUPq13V2+6vtD7yg=="], "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], @@ -912,8 +827,6 @@ "@types/bun": ["@types/bun@1.3.8", "", { "dependencies": { "bun-types": "1.3.8" } }, "sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA=="], - "@types/conventional-commits-parser": ["@types/conventional-commits-parser@5.0.2", "", { "dependencies": { "@types/node": "*" } }, "sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g=="], - "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], "@types/eslint": ["@types/eslint@9.6.1", "", { "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag=="], @@ -1080,8 +993,6 @@ "@xtuc/long": ["@xtuc/long@4.2.2", "", {}, "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="], - "JSONStream": ["JSONStream@1.3.5", "", { "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" }, "bin": { "JSONStream": "./bin.js" } }, "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ=="], - "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], "acorn-import-phases": ["acorn-import-phases@1.0.4", "", { "peerDependencies": { "acorn": "^8.14.0" } }, "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ=="], @@ -1118,8 +1029,6 @@ "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], - "array-ify": ["array-ify@1.0.0", "", {}, "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng=="], - "array-iterate": ["array-iterate@2.0.1", "", {}, "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg=="], "array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="], @@ -1272,20 +1181,12 @@ "common-ancestor-path": ["common-ancestor-path@2.0.0", "", {}, "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng=="], - "compare-func": ["compare-func@2.0.0", "", { "dependencies": { "array-ify": "^1.0.0", "dot-prop": "^5.1.0" } }, "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA=="], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], "consola": ["consola@3.4.2", "", {}, "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA=="], - "conventional-changelog-angular": ["conventional-changelog-angular@7.0.0", "", { "dependencies": { "compare-func": "^2.0.0" } }, "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ=="], - - "conventional-changelog-conventionalcommits": ["conventional-changelog-conventionalcommits@8.0.0", "", { "dependencies": { "compare-func": "^2.0.0" } }, "sha512-eOvlTO6OcySPyyyk8pKz2dP4jjElYunj9hn9/s0OB+gapTO8zwS9UQWrZ1pmF2hFs3vw1xhonOLGcGjy/zgsuA=="], - - "conventional-commits-parser": ["conventional-commits-parser@5.0.0", "", { "dependencies": { "JSONStream": "^1.3.5", "is-text-path": "^2.0.0", "meow": "^12.0.1", "split2": "^4.0.0" }, "bin": { "conventional-commits-parser": "cli.mjs" } }, "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA=="], - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], "cookie": ["cookie@1.1.1", "", {}, "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ=="], @@ -1298,8 +1199,6 @@ "cosmiconfig": ["cosmiconfig@9.0.0", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg=="], - "cosmiconfig-typescript-loader": ["cosmiconfig-typescript-loader@6.2.0", "", { "dependencies": { "jiti": "^2.6.1" }, "peerDependencies": { "@types/node": "*", "cosmiconfig": ">=9", "typescript": ">=5" } }, "sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ=="], - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], "crossws": ["crossws@0.3.5", "", { "dependencies": { "uncrypto": "^0.1.3" } }, "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA=="], @@ -1320,8 +1219,6 @@ "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], - "dargs": ["dargs@8.1.0", "", {}, "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw=="], - "data-uri-to-buffer": ["data-uri-to-buffer@6.0.2", "", {}, "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw=="], "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], @@ -1394,8 +1291,6 @@ "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], - "dot-prop": ["dot-prop@5.3.0", "", { "dependencies": { "is-obj": "^2.0.0" } }, "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q=="], - "dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="], "electron-to-chromium": ["electron-to-chromium@1.5.283", "", {}, "sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w=="], @@ -1430,7 +1325,7 @@ "esast-util-from-js": ["esast-util-from-js@2.0.1", "", { "dependencies": { "@types/estree-jsx": "^1.0.0", "acorn": "^8.0.0", "esast-util-from-estree": "^2.0.0", "vfile-message": "^4.0.0" } }, "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw=="], - "esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], "esbuild-wasm": ["esbuild-wasm@0.25.12", "", { "bin": { "esbuild": "bin/esbuild" } }, "sha512-rZqkjL3Y6FwLpSHzLnaEy8Ps6veCNo1kZa9EOfJvmWtBq5dJH4iVjfmOO6Mlkv9B0tt9WFPFmb/VxlgJOnueNg=="], @@ -1546,8 +1441,6 @@ "get-uri": ["get-uri@6.0.5", "", { "dependencies": { "basic-ftp": "^5.0.2", "data-uri-to-buffer": "^6.0.2", "debug": "^4.3.4" } }, "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg=="], - "git-raw-commits": ["git-raw-commits@4.0.0", "", { "dependencies": { "dargs": "^8.0.0", "meow": "^12.0.1", "split2": "^4.0.0" }, "bin": { "git-raw-commits": "cli.mjs" } }, "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ=="], - "github-slugger": ["github-slugger@2.0.0", "", {}, "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw=="], "glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], @@ -1556,8 +1449,6 @@ "glob-to-regexp": ["glob-to-regexp@0.4.1", "", {}, "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="], - "global-directory": ["global-directory@4.0.1", "", { "dependencies": { "ini": "4.1.1" } }, "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q=="], - "globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="], "gonzales-pe": ["gonzales-pe@4.3.0", "", { "dependencies": { "minimist": "^1.2.5" }, "bin": { "gonzales": "bin/gonzales.js" } }, "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ=="], @@ -1634,14 +1525,10 @@ "import-local": ["import-local@3.2.0", "", { "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" }, "bin": { "import-local-fixture": "fixtures/cli.js" } }, "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA=="], - "import-meta-resolve": ["import-meta-resolve@4.2.0", "", {}, "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg=="], - "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], - "ini": ["ini@4.1.1", "", {}, "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g=="], - "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], "install": ["install@0.13.0", "", {}, "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA=="], @@ -1682,7 +1569,7 @@ "is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="], - "is-obj": ["is-obj@2.0.0", "", {}, "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="], + "is-obj": ["is-obj@1.0.1", "", {}, "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="], "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], @@ -1694,8 +1581,6 @@ "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], - "is-text-path": ["is-text-path@2.0.0", "", { "dependencies": { "text-extensions": "^2.0.0" } }, "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw=="], - "is-unicode-supported": ["is-unicode-supported@2.1.0", "", {}, "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ=="], "is-url": ["is-url@1.2.4", "", {}, "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="], @@ -1736,8 +1621,6 @@ "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], - "jsonparse": ["jsonparse@1.3.1", "", {}, "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="], - "jsonpath": ["jsonpath@1.1.1", "", { "dependencies": { "esprima": "1.2.2", "static-eval": "2.0.2", "underscore": "1.12.1" } }, "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w=="], "kind-of": ["kind-of@6.0.3", "", {}, "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="], @@ -1800,28 +1683,12 @@ "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], - "lodash.camelcase": ["lodash.camelcase@4.3.0", "", {}, "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="], - "lodash.deburr": ["lodash.deburr@4.1.0", "", {}, "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ=="], "lodash.escape": ["lodash.escape@4.0.1", "", {}, "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw=="], - "lodash.isplainobject": ["lodash.isplainobject@4.0.6", "", {}, "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="], - - "lodash.kebabcase": ["lodash.kebabcase@4.1.1", "", {}, "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g=="], - "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], - "lodash.mergewith": ["lodash.mergewith@4.6.2", "", {}, "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ=="], - - "lodash.snakecase": ["lodash.snakecase@4.1.1", "", {}, "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw=="], - - "lodash.startcase": ["lodash.startcase@4.4.0", "", {}, "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg=="], - - "lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="], - - "lodash.upperfirst": ["lodash.upperfirst@4.3.1", "", {}, "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg=="], - "logform": ["logform@2.7.0", "", { "dependencies": { "@colors/colors": "1.6.0", "@types/triple-beam": "^1.3.2", "fecha": "^4.2.0", "ms": "^2.1.1", "safe-stable-stringify": "^2.3.1", "triple-beam": "^1.3.0" } }, "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ=="], "longest-streak": ["longest-streak@3.1.0", "", {}, "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="], @@ -1886,8 +1753,6 @@ "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], - "meow": ["meow@12.1.1", "", {}, "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw=="], - "merge-anything": ["merge-anything@5.1.7", "", { "dependencies": { "is-what": "^4.1.8" } }, "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ=="], "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], @@ -2108,7 +1973,7 @@ "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - "postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="], + "postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], @@ -2326,8 +2191,6 @@ "speakingurl": ["speakingurl@14.0.1", "", {}, "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ=="], - "split2": ["split2@4.2.0", "", {}, "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg=="], - "sprintf-js": ["sprintf-js@1.0.3", "", {}, "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="], "stable": ["stable@0.1.8", "", {}, "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="], @@ -2396,8 +2259,6 @@ "text-decoder": ["text-decoder@1.2.3", "", { "dependencies": { "b4a": "^1.6.4" } }, "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA=="], - "text-extensions": ["text-extensions@2.4.0", "", {}, "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g=="], - "text-hex": ["text-hex@1.0.0", "", {}, "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="], "thenify": ["thenify@3.3.1", "", { "dependencies": { "any-promise": "^1.0.0" } }, "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw=="], @@ -2410,7 +2271,7 @@ "tinybench": ["tinybench@2.9.0", "", {}, "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg=="], - "tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], @@ -2670,8 +2531,6 @@ "@astrojs/solid-js/vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="], - "@astrojs/tailwind/postcss-load-config": ["postcss-load-config@4.0.2", "", { "dependencies": { "lilconfig": "^3.0.0", "yaml": "^2.3.4" }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "optionalPeers": ["postcss", "ts-node"] }, "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ=="], - "@astrojs/tailwind/tailwindcss": ["tailwindcss@4.1.18", "", {}, "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw=="], "@astrojs/vue/vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="], @@ -2684,14 +2543,6 @@ "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@commitlint/cli/tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], - - "@commitlint/is-ignored/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - - "@commitlint/read/tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], - - "@commitlint/top-level/find-up": ["find-up@7.0.0", "", { "dependencies": { "locate-path": "^7.2.0", "path-exists": "^5.0.0", "unicorn-magic": "^0.1.0" } }, "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g=="], - "@mdx-js/mdx/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], "@puppeteer/browsers/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], @@ -2724,14 +2575,10 @@ "astro/es-module-lexer": ["es-module-lexer@2.0.0", "", {}, "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw=="], - "astro/esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], - "astro/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], "astro/shiki": ["shiki@3.21.0", "", { "dependencies": { "@shikijs/core": "3.21.0", "@shikijs/engine-javascript": "3.21.0", "@shikijs/engine-oniguruma": "3.21.0", "@shikijs/langs": "3.21.0", "@shikijs/themes": "3.21.0", "@shikijs/types": "3.21.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-N65B/3bqL/TI2crrXr+4UivctrAGEjmsib5rPMMPpFp1xAx/w03v8WZ9RDDFYteXoEgY7qZ4HGgl5KBIu1153w=="], - "astro/tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], - "astro/vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="], "astro/zod": ["zod@4.3.6", "", {}, "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg=="], @@ -3182,8 +3029,6 @@ "static-eval/escodegen": ["escodegen@1.14.3", "", { "dependencies": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1" }, "optionalDependencies": { "source-map": "~0.6.1" }, "bin": { "esgenerate": "bin/esgenerate.js", "escodegen": "bin/escodegen.js" } }, "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw=="], - "stringify-object/is-obj": ["is-obj@1.0.1", "", {}, "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="], - "stylus-lookup/commander": ["commander@10.0.1", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="], "sucrase/commander": ["commander@4.1.1", "", {}, "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="], @@ -3196,6 +3041,12 @@ "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], + "tsup/esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], + + "tsup/postcss-load-config": ["postcss-load-config@6.0.1", "", { "dependencies": { "lilconfig": "^3.1.1" }, "peerDependencies": { "jiti": ">=1.21.0", "postcss": ">=8.0.9", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["jiti", "postcss", "tsx", "yaml"] }, "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g=="], + + "tsup/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + "tsutils/tslib": ["tslib@1.14.1", "", {}, "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="], "typescript-auto-import-cache/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], @@ -3204,6 +3055,8 @@ "vite/esbuild": ["esbuild@0.21.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.21.5", "@esbuild/android-arm": "0.21.5", "@esbuild/android-arm64": "0.21.5", "@esbuild/android-x64": "0.21.5", "@esbuild/darwin-arm64": "0.21.5", "@esbuild/darwin-x64": "0.21.5", "@esbuild/freebsd-arm64": "0.21.5", "@esbuild/freebsd-x64": "0.21.5", "@esbuild/linux-arm": "0.21.5", "@esbuild/linux-arm64": "0.21.5", "@esbuild/linux-ia32": "0.21.5", "@esbuild/linux-loong64": "0.21.5", "@esbuild/linux-mips64el": "0.21.5", "@esbuild/linux-ppc64": "0.21.5", "@esbuild/linux-riscv64": "0.21.5", "@esbuild/linux-s390x": "0.21.5", "@esbuild/linux-x64": "0.21.5", "@esbuild/netbsd-x64": "0.21.5", "@esbuild/openbsd-x64": "0.21.5", "@esbuild/sunos-x64": "0.21.5", "@esbuild/win32-arm64": "0.21.5", "@esbuild/win32-ia32": "0.21.5", "@esbuild/win32-x64": "0.21.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw=="], + "vitest/tinyexec": ["tinyexec@0.3.2", "", {}, "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA=="], + "volar-service-css/vscode-css-languageservice": ["vscode-css-languageservice@6.3.9", "", { "dependencies": { "@vscode/l10n": "^0.0.18", "vscode-languageserver-textdocument": "^1.0.12", "vscode-languageserver-types": "3.17.5", "vscode-uri": "^3.1.0" } }, "sha512-1tLWfp+TDM5ZuVWht3jmaY5y7O6aZmpeXLoHl5bv1QtRsRKt4xYGRMmdJa5Pqx/FTkgRbsna9R+Gn2xE+evVuA=="], "volar-service-typescript/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], @@ -3246,11 +3099,11 @@ "@astrojs/markdown-remark/shiki/@shikijs/types": ["@shikijs/types@3.21.0", "", { "dependencies": { "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-zGrWOxZ0/+0ovPY7PvBU2gIS9tmhSUUt30jAcNV0Bq0gb2S98gwfjIs1vxlmH5zM7/4YxLamT6ChlqqAJmPPjA=="], - "@commitlint/top-level/find-up/locate-path": ["locate-path@7.2.0", "", { "dependencies": { "p-locate": "^6.0.0" } }, "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA=="], + "@astrojs/react/vite/esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], - "@commitlint/top-level/find-up/path-exists": ["path-exists@5.0.0", "", {}, "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ=="], + "@astrojs/solid-js/vite/esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], - "@commitlint/top-level/find-up/unicorn-magic": ["unicorn-magic@0.1.0", "", {}, "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ=="], + "@astrojs/vue/vite/esbuild": ["esbuild@0.27.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.2", "@esbuild/android-arm": "0.27.2", "@esbuild/android-arm64": "0.27.2", "@esbuild/android-x64": "0.27.2", "@esbuild/darwin-arm64": "0.27.2", "@esbuild/darwin-x64": "0.27.2", "@esbuild/freebsd-arm64": "0.27.2", "@esbuild/freebsd-x64": "0.27.2", "@esbuild/linux-arm": "0.27.2", "@esbuild/linux-arm64": "0.27.2", "@esbuild/linux-ia32": "0.27.2", "@esbuild/linux-loong64": "0.27.2", "@esbuild/linux-mips64el": "0.27.2", "@esbuild/linux-ppc64": "0.27.2", "@esbuild/linux-riscv64": "0.27.2", "@esbuild/linux-s390x": "0.27.2", "@esbuild/linux-x64": "0.27.2", "@esbuild/netbsd-arm64": "0.27.2", "@esbuild/netbsd-x64": "0.27.2", "@esbuild/openbsd-arm64": "0.27.2", "@esbuild/openbsd-x64": "0.27.2", "@esbuild/openharmony-arm64": "0.27.2", "@esbuild/sunos-x64": "0.27.2", "@esbuild/win32-arm64": "0.27.2", "@esbuild/win32-ia32": "0.27.2", "@esbuild/win32-x64": "0.27.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw=="], "@sv/svg-sprites/@types/node/undici-types": ["undici-types@5.26.5", "", {}, "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="], @@ -3260,58 +3113,6 @@ "@sv/test/@happy-dom/global-registrator/happy-dom": ["happy-dom@18.0.1", "", { "dependencies": { "@types/node": "^20.0.0", "@types/whatwg-mimetype": "^3.0.2", "whatwg-mimetype": "^3.0.0" } }, "sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA=="], - "astro/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], - - "astro/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], - - "astro/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], - - "astro/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], - - "astro/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], - - "astro/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], - - "astro/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], - - "astro/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], - - "astro/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], - - "astro/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], - - "astro/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], - - "astro/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], - - "astro/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], - - "astro/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], - - "astro/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], - - "astro/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], - - "astro/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], - - "astro/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], - - "astro/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], - - "astro/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], - - "astro/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], - - "astro/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], - - "astro/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], - - "astro/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], - - "astro/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], - - "astro/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], - "astro/shiki/@shikijs/core": ["@shikijs/core@3.21.0", "", { "dependencies": { "@shikijs/types": "3.21.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA=="], "astro/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.21.0", "", { "dependencies": { "@shikijs/types": "3.21.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ=="], @@ -3406,6 +3207,58 @@ "svgo/csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], + "tsup/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + + "tsup/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + + "tsup/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + + "tsup/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + + "tsup/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + + "tsup/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + + "tsup/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + + "tsup/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + + "tsup/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + + "tsup/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + + "tsup/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + + "tsup/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + + "tsup/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + + "tsup/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + + "tsup/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + + "tsup/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + + "tsup/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + + "tsup/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + + "tsup/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + + "tsup/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + + "tsup/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + + "tsup/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + + "tsup/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + + "tsup/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + + "tsup/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + + "tsup/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], + "unstorage/chokidar/readdirp": ["readdirp@5.0.0", "", {}, "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ=="], "vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.21.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ=="], @@ -3464,7 +3317,161 @@ "@astrojs/markdown-remark/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.4", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA=="], - "@commitlint/top-level/find-up/locate-path/p-locate": ["p-locate@6.0.0", "", { "dependencies": { "p-limit": "^4.0.0" } }, "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw=="], + "@astrojs/react/vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + + "@astrojs/react/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + + "@astrojs/react/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + + "@astrojs/react/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + + "@astrojs/react/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + + "@astrojs/react/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + + "@astrojs/react/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + + "@astrojs/react/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + + "@astrojs/react/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + + "@astrojs/react/vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + + "@astrojs/react/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + + "@astrojs/react/vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + + "@astrojs/react/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + + "@astrojs/react/vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + + "@astrojs/react/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + + "@astrojs/react/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + + "@astrojs/react/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + + "@astrojs/react/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + + "@astrojs/solid-js/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], + + "@astrojs/vue/vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + + "@astrojs/vue/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + + "@astrojs/vue/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + + "@astrojs/vue/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + + "@astrojs/vue/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + + "@astrojs/vue/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + + "@astrojs/vue/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + + "@astrojs/vue/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + + "@astrojs/vue/vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + + "@astrojs/vue/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + + "@astrojs/vue/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + + "@astrojs/vue/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + + "@astrojs/vue/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], "@sv/svg-sprites/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], @@ -3512,6 +3519,58 @@ "astro/shiki/@shikijs/engine-javascript/oniguruma-to-es": ["oniguruma-to-es@4.3.4", "", { "dependencies": { "oniguruma-parser": "^0.12.1", "regex": "^6.0.1", "regex-recursion": "^6.0.2" } }, "sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA=="], + "astro/vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw=="], + + "astro/vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.27.2", "", { "os": "android", "cpu": "arm" }, "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA=="], + + "astro/vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.2", "", { "os": "android", "cpu": "arm64" }, "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA=="], + + "astro/vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.27.2", "", { "os": "android", "cpu": "x64" }, "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A=="], + + "astro/vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg=="], + + "astro/vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA=="], + + "astro/vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g=="], + + "astro/vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA=="], + + "astro/vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.2", "", { "os": "linux", "cpu": "arm" }, "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw=="], + + "astro/vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw=="], + + "astro/vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w=="], + + "astro/vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg=="], + + "astro/vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw=="], + + "astro/vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ=="], + + "astro/vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.2", "", { "os": "linux", "cpu": "none" }, "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA=="], + + "astro/vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w=="], + + "astro/vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.2", "", { "os": "linux", "cpu": "x64" }, "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA=="], + + "astro/vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw=="], + + "astro/vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.2", "", { "os": "none", "cpu": "x64" }, "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA=="], + + "astro/vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA=="], + + "astro/vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg=="], + + "astro/vite/esbuild/@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.2", "", { "os": "none", "cpu": "arm64" }, "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag=="], + + "astro/vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg=="], + + "astro/vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg=="], + + "astro/vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ=="], + + "astro/vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.2", "", { "os": "win32", "cpu": "x64" }, "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ=="], + "boxen/string-width/strip-ansi/ansi-regex": ["ansi-regex@6.2.2", "", {}, "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg=="], "cliui/wrap-ansi/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], @@ -3554,8 +3613,6 @@ "@astrojs/markdown-remark/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], - "@commitlint/top-level/find-up/locate-path/p-locate/p-limit": ["p-limit@4.0.0", "", { "dependencies": { "yocto-queue": "^1.0.0" } }, "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ=="], - "astro/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex": ["regex@6.1.0", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg=="], "astro/shiki/@shikijs/engine-javascript/oniguruma-to-es/regex-recursion": ["regex-recursion@6.0.2", "", { "dependencies": { "regex-utilities": "^2.3.0" } }, "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg=="], diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index ee61e37d853c145b6cabd1cc04081efa6967acb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580992 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
;=97@cFU*v;9ZFHv@iG z^H0-@;*;|?f@tGUmoRh)e0+W&&;P%-`0qQ! zzLqz&{&Y3|-oVHHN9{!Czb*Z@MCxYJe9~@y*Z*4JllAAnE&X>Xu`kQ|=ll|Diu`x= z|ErYnZGmt6Q~de$e-+IqJYL5zv0n*%GX8M>>-K+n`rieFFYH6{G5*NsxBVu-$LAmP zpXmH=i~lYqb%TMA>lfO`iy$Ta{x{(l03YWMw2%JtdJ%pz@G*YaZshZ-gYY$csr8Ta zAHVkJ0$-2zpVz)a8^r!vn$N4>#6Q9>2mWxdk231u)d#|V34BA~6TJ(_AAdo@SNEg( zzYo-xh97>nS}_T$*c z81Qltz7Ozm{u2ihww>SjtBK8$S1?#^A;N$aGSN(qg{7Jw^pZmiPzt0cD z!YKc--M9zgH~wM3w-CVpO4@!`+dqIqfz-gd^7Gp|Na7el!EX6O9MVRzd`%_?mun-pX|RdcKq&tB*OnW zKkN$M75F&+g6Yn_%hnPzpL@to=&_dfRDC$ zUAum^{|@+q#Lp;}+CQPrLGZ)tIWB2`4DiYGPgmks3499y;wQQApZ#A~?Arogkoctl z-+=ZX_s}>Fc)1|wIzUW5D`CV7zClOD5f48fA zM*;ci0`eaV$k$mWSo;PEI|IG3CMpaAYW^_VEzXI-%^0~9~6-P zNkIOD6@vM{1o&g1{oP;!P=X&3oCtWh$oyRa{8_*k1x^nhc%%y9>#n4}|BLUv#NdaN zlX|~HQg1Er@%#j3A^PWcoS(}H|1R*YXg=P@cJOi${-9OV`K>&Vx?a_ z{hJS@-e%zI0biUZpblOx!oLW7a(;AM7A7xVZMP2ls}{=2}(_IIb9=C}Xj)=>G6xzi7RBxpT<1JeG4B&z?> zJ{d!Qfq%f{Exsl2L7*c>-_&8fZ|o#RNpp#v^M=!C*kX@rJlcu z{A<16$)x@w;A8%FHGX321hel1e4n4}qaVCn#QzfD&-{tc@BAaTp208`fL{%KoPVXj z>8`9_;>ipKyn_8-{P}HvB=GV1jr1SC{2RdkIez@|wNw5bKYscCz_$><|C7Ks6M!$V zfy#eg=N*!pB>&8T55u%`{C8#jSp|G-KhC?n&b{aZv0nvz%s*b|onQSI-T3d%fAi`C zvF`$W6WTtO{W^~kd%q&#Zveg-@R5geH?Qp={M*3C{R8sxhhM&2D)s%9u8yAw;G2W} z|HIx}fK|~&ecuPg4ipnn6c7b5un|Sl#6ZMAM8QPGMn%EE?!@jwZ?UlxTQR^E#X{^B zK{4O;XZE@o?^j{woaei~=e;iX#o>Q;{MK4~&z?PT<^c1#DF!8p<3C0`&mW9EmuF^! z+a(c?@n`>P*T1R@G#XzSulD%4nRs2+5B-JG-+$uxp-K|>zZ3D@Wbv!*{}1AE{KMGu z98%-ocG0i*e_=yO;`sX!??nEwb`+x*muF^!+x;ZolXx|;!#49B7fbV(^93_=Eb6)a zO5#0)fAqm#;SR|Bd*T}j9;RQMJEv#}nYUe{(R3o7=a1U$zkqmLzcH_N{>KX*@hI#% zy7}+;n=MWEUzp0(uD=n)T()}0A9Sbe|w_5EUsU81y#J44$*FUxV z7vj4Tk9c#_i{n5(qs0C6*_zIS#dVaD#Qas_=_`a|z+n7%{feUULR22S&Y_vzyl$gV zFHg)j-zFWuIj?jL=l0`>A4-0B{M63BvfDM9ARYMA#LJI=s{QZKXdKBu)?f6U`z0T% z-@WH{uZc(hkyo=1Gv9Tmw0?2^cfNjC#_f$GrR!&H{ZApDCP!NQzw`5_GWK6^mvsC= zJDfWx9RucD5|8tL@Yn`Q6Z4_Oh4=$M(~fZ?Z?D8K48dpLluvO1A;`-(s&u6R3m##l++IuWkRc?$d4k zm`D6X9sC>Z*JwuQz|SMTpANj<0gc9A2YwXst%=8EH=q}9SL8EF-0m{*x@`Xj2X!0& zWa7t&{^zHFm99Y?|Byq!9{<$Nf3L&3UH?ZCFP}eZ{Z~4o+x%Hdye{iUo};?m{~k!Z zeEz8I|6}6&itP_p?fH*Kly2*9Eb+s1@Zac|ZtLF;;&J|>?fO~%xJJ`ohxiu|FW-KM zLrLQOFZYS``K!(OcM$QDb?Cq5q(&2}L;pjG$Mv7K*q7#<>!yEqa^YE?-{Mz`P)w7Lv$Fw%I7tjAv*MbE%9S?@b7&=qnWD%|C)GR&L6!m zO8@^{+wFgxcwPM4T+(g+E+Jk%|1gJ@B%XiSV|2TJF^YI!+4fWG{~qzW9KStd)6d`X zQ^(bw|DGgXm-WBa`9Ga_UC#f%$#_F@oLz}?YQz2muBY$++RWb@#CH+>*XH`J7|>8!a0?SJvWkUyTjI;>z#9->Obed3 zfBQSq-;c+6pB}x`t{>sV+me56`47Z5A)ez=yZ+UUm+oJ4+-ldKS;RM&`DZ(sZAgwc zp7^H3W9+yrGZyvSw%pzH`)}C)xjZu)+-^AWUgRHZCwOcJC5ibv#Mje-FLzJ+{7$J~ zj*a~X5Z{daE8XtQ^ZxUJHdsO8xm>BT|2O2{nRw2#W@d-mdEA$tU*UXa9M^OEDB>~x zIB!E4mvg&6DYyGZyqhe3Zr`taP+(;njb=e?W0MinmeF4JYhu391C7Q}#w*>9%)cbQ z6Y;$NYZNBtH$0S%f7pMJ@<@{DZ{`apNcUghzkrNN>wh(kX3wgclh%)$YA35od&~R? z;xYcntJ#N{-y?Xe8`|(6i0?@L!7Ckmbb$T0cqDy(kNLx6i2BSD^J9sxFZ^r6UnJgH z2i_o2`uq@m*T%mS@h!&%NM_$L|dBIR3#mUg(FC#C+bz((`*@ zz;bzJHn?3w;@!zV@>oN04WJ}3zkv9<#AEDn>{PlAGyjoz2jbxqWf%h`iTUbJ(!W0d z|4MmY|1T3zNcdOcm)o%a#pK_Wcr~%Z2J?4`$M$Dl=^SRh%+p`@KehA6pZG@PAJ;xe zxg^Q-H~T+Kd>!I>zsZ&CYc(!#5?q1^LIk!@j3>{w*RN z>nAw*^=D=S!ToRlO8WjIwmZ&Y)o%Z3#M4?ZM(Mi2ak2la#AE+wUTy!YzE0nNm9mI| z{r4vx>j(OcvYe;Jok`Okvq?e~AT{Cx@Yc5kKgCmw&Lc9`!+JmP0g?fl&?c;0?$`49i$Ij-OL zI=z(JxxbV4e{KDrBc4vK(~f^iV@DM1-|oHi{GztwH-LD)eo{Jj<^DGlkMp10VrZ21 zf#ZKlJkGxmzfxB2zxIdp^@nYWP%;#5`&mc6L6Wrn)Qp`x{?WucQ~$M{KgWp2^@q0n zPvYAW&++rPWH@+K$?ZCSl-569cR3EF{2Ags$Uo2D%s8%R|5nM;@eA>DAGl3M%KUQT zvHz)=d$7y=P2y|Fc%^oj&yynEKj+xFJfqm<{>Kr|>j!M`aYQM9n0OnCKL-Ku&2cE@ zbAFP>pZm?Kly@f{^H(Xyc6pp;5|92PZrI>*ZuckUc4vvl`9D~^_&okk9G5e1^jTUz zxm;;Km~TToU;n^{(*1z>8G>iOYPbI>;^p&~?Q(zqq}(o*c+4O8R~kEPGH;do>-^#J zKl$ZyZa0v4-2cY9Q;;haDDwx1uSGoac=0%9W`g;5#5a`jnQ>gte626i^&|XZ4K?Hj znJDw4h=+ghN@Is<=1&rj{%gyBA-+2Ch@1C8*v~An|2kha8b{$@&HSNjmbA2!Ao4v% zWEBhhzexUZ{tggxNa+|dU+kN7|E3TOP*S^o1`*$#{3|_fN?y|TnY6d-ssH(O=>K!_ zUyXP^ezX0|l>6WDyR`llC4k~kJ$?^}$N3-o8+C<8l1qNC?BC@_`uA5+M#G^fF~5m; zSMrbT4p!~q!p2uJ5wufQnC(C&FRy%&zh`{-aw(%S4>80KO0k3rJm&fl< zJo`ugxnF3LQQ~&t#5;=ZkG`wz{}bXX3m)5E?e;I6MKA68ll`)06g%oTes|(|{$l%a zxl(?r@Xy;G`=FA%|GVVZvR!p^ZpNiY&Rp{@^&|f$N2H_SFQh2+4R!x zf50Y=e@eFj$Jw5E9Dk9=HdH!~n4d~K`p^5FTK*34b%@7x58I@-nI>*qCcCu#IInj6 ze2K^P58_wKA~^Q9i1=o*{&RU|9pH9}#AE&7?a!)|H_4%==|DW%7t0Ki)wBN~;&J~B z^B?QK+U*xfJjRdhspVf1&&Lmhr*s>zznVGIkKeclsMddf;&J@|dwdTOab%X*|6byq z#Q38O`=FA<{AUqA`mMC@u+Mz8T+;dvmdj9|S>m=`i0AvST$UM&dTzUdc&xugsZ5*m z@At%4B3{k4r`&(7+|uz2Woq_ej(-~QRmeZ)4fY?k=g$X-Z%MqGxr12Qf37^g9>0~& z0p{xvkNrpK=f?1j#QY56b=m&si0?xFVGm=dHh$~8()s}oJjX?EGfdpBAMxlv8lz0D z{{zJ1_=V%9QkH!|---A+9;G(8y=6Y>_=UdXr8F@=MDR+F`)r^2-NZXn|2b|}Zuci; zUXx#1f7NVz*ks<0c=`ITbPSjeBEBNUukHA4CmzQyj33+lQ=jGK-1ZsqIDg{#qxSe+ z!a(oezrPAr?fCa4zBc*C@f+t*YWa1<or=@h;K|h$HV9Gu$NKd_Bjou;}_a0^^La7+Y-<5gXeOz$tZEVK*962=kknL z)N#A*#Pjt#%GB<^FNnwS12z!@)&V7n{g){u^&gxzY)urTrHi)-WzdJQ*c!S6A>DKg@rn<4R zwVA(!rKL%<|KR>1);;VyTrSoA`8T&aNj%O!c;B=7GxAFf^IwUtNj!WP`K3k18Rl(@ z=xMxl;HMGqr30U+qko5@dTD>ZN8A3-CEiDe_}>!WO9#GvF+Gi+4*Y)Nb&0=daXn2> z9sG|ZzPk>50`Z-7;GK+g<5v-{%lLiQ(SOGhy6r!^iEpRF_~kWDzkk7NSjH=dRLko} zW8$&?Vf{iG_CqC!`5@x?`i~ApY4@Pi@R7tfApd#<@kypE^ZeakQab+z zXGAZx_pjYb>7_lth5ZKeUuk0hqlw4;cW}7=#WjGE#Qb~W@%#pDMpgR{^G+tx^)Gm( zz7ZeuQ;5g?Z>%3`67w;{I}(qv!wYdJNz5CRmew!i!7IHF%)A5fc>a#JozgL2elYR4 z{{bFzK<)j5Z^XM2&z#!+JC@N)`~C}jBXL|(?$5uu-Av-K{v!_?IEE-m%pV~h_b=GL z+W2#rO7~yco?5;M@i=}MP|!+Q^pE{*CLZytVdeZY;(7dd4xv7?#Quw$N&7FxkIOP+ zQO|AtiRbyJgyS~MhZB$cKgg>Y1LhwH|2%)Woc;Vsxt)o5`tvLBuXGHVZ$>ZTJx4 zasA5U&ik=E*5AEn|3`_(^9#&#`R^Ec8MpgPJno+r5S2>jAoD>MQvCefIB!R}uiw3A z{vh!ZZr4@t@U4yig@R{$JP-fmm&>{RdE$BfMje-PyFV$n`$~LM z8b3boP}&FPqb<|7AABjD2h9H<9?#z}$NHzZxt#f6E9vkspp#m)81k0-tb`PVl7E5zgY%kxKV{P`>CrTzUCj)&vROu7A5 z;yuVe=QHED{@?bMb>lsV*Jb`6As+Mh-*`B{OqAQ_uOdBvgK_7wOwhDyZtFulj^Dg) zux4h1`31yd{o(DO8OQa^ClHVRYs*)&k>)?IziQ*(M7%5c=Xli4-#5hL_>1dCHQRvw znN^kcKW(p{2N3Tmi(lzDvj3CBWB+0QYWrWgnlygAeyH_7h+x4@|2>Gu{OA6wFX^^MrLpL2=F`i1>Y8~z6IPQ+_Ff2!D~AO8@S(ik}YNaFjEf6l{(lEm#z z>qytX+Kzt~JH52OU&i*-#@~r}`TDCQcC=xCJOATfEuX)xUfTbkVS8%%AmZEVF#eZ_ z$Mg5>U+wr^sHfZdQIS3X=`HiGw*L!=_tk+&IH+T}A&<#^o8YsN;4|iAVoYhS<3r`HT{`vuLLG@Be?t^AlX2 z5sNx*x0-lc@{e-|ZTL9i@%g2;e4*yj_%p9|`?dZLpIN`Tp8G$Kc-;Tc)_)A~&N80u zXQu4GU<+ycv;WLEu4ld_@xC(uT+Z$Oq}*;B@!fRb3$>KaA2@!t`zOC#&h5O2$NB-j zIK7}s67vzn%dda9JTn{IE}MJ$_ZKo_vz8YrV#(vzaQ~9{_=j$b~CfX?T!i_ zpTB6+|8lLR`HO9*Cb9nj;&K0;^W2ZjY;pVb#N+yn@1JMJaXs_N#5X2h+xYE0(?5S^ z+e(!EPbMD6FQxk}+h#tMco(H-)3*PIh<7Ic9FNjD#O;3&??OE8-zjC$ z2j-pHO2;2<<6lEO?tf@Ie&^chrTza+#G_68_U(1M|FePkE@J$(@t?~}FYW)2X&Zkq z@%}pae?)wc4!n1V^!vw{7fKV)A2aXt@l(p89rNRf*X8ri1may~^H1qKWdG$l>URHc zBJsN1|BENShuD7FjGvE>^!YjWTj?C;{vRYBU;Bf1~a54~fL%{uS0grDKOU*?+ap((^yOesXzcec^WNiO2b;w&VYacx*r3{+apZ zdiLMQSL#3Km5u?opHDpYKhCrL%#_>55s&9@5WhC}Z_D{f$3O5&V@GW4e<<I{U8VD9j34$P-Vb3fqs07Z;xT`*exQuYGh$K4?M?_@P3&?$M>lEwc-&Z(`fox! zK0iTwHESTpKc09;;&J}WWw4c5;;lhSdQ=ybkt4{83$ZE~B8l>N6S9{V51uXG(?elqd={5C#6Qp+DD9@me| zDLsy}|IftZ_|3f1ab&(m&-DA(C@YZBpvmf(pGABvF@9VoYxc*t-1d}==RW)ql2tHY z&|kX#-GJ0{a3nv;^%nK4<(7)HxxV=UIW$eBZ$ZTqwW0POgyeXmF{;O8^`~JcxU33 zZnyvP^#)4g4_-|S>_3EfKL26cN|gCs#LJ&QS37^+5s&plP3(w|{Z|;2zW*zUo7*t& zOS~@qUqn3S53c`s4PYM`Df|CIy!`w_?fBUamd2mQPc0uvJg$EcPoazg{!bmpzm0fZ zw%>EX^XE@$(jH!r=^@|}st^&|El9KY4_vjmUv0IQZiN_=JVukHHdFhsZe z|Fej1Nd77Gw0(-VEAkm7Zg-t{SK>LJ5hJhT_C`ac^$U3%L%3Yt_IK~Oofq-gf7Gn~ zu*dvD;`#my??b=y_un$+pAwJt4|7LNV!rAyY5cV1hX@|At2qX+|NX?{{s;W4IR-Ir z5|sY@Ev_AvZU^RD5zo(0XtV#U68^!exd+DnuM*GK58CkghW~p1UG4tgfq41(2X#YH z;`pZ%kNCAc|2j=P_8&Fd9s#m{{Sngf1M{b-qR6F2%sUW|__dw?!v)Xlr_vDEe(e}4n_j*-;HUwD*m z_m4UfkMmdb8!sLQ#FA0s{)Z9Ie?JRlO8*BT^Jj=}q{H?vHTu`{54G`6As*`|#vLz? zE2F-nj@un1zJnM)ZTK1F8RHLD%^Jl1PZ5dFZ`n7OD~;bfH2wK`uxj}O#Cwx}tb16$ z`FpfV{TCUV{{0DU{D%@#mUPI~@? zj~`0s0P|aj_Z8z`ob0MS{^T34+wp5Q@w)hbM?CI-Q0Qs%U+Hn2`yV_(I{t88Eq{V| z%pcx%YPbJa;_Zq5FW0YoP+;Y1H8q=@s>dg;4ZMi{$rHzGJ5f(lm3W*x{?~@Q{eRyx zA4Gg(S^WQP_oqDbQN%YS9&10!l*Yik`6TK2U8ToOj)(dF#Pj_NrM_W<`9s7bex>vN zzy7mKPXGQ2{HvWmp2TDQfL+9(_Ve4B#N+vArGDWDiTi(>cvs?i{8^<|fBwz9$&~cJ zpQg?D2NUm1{?TvrLFqjp_Mb>RwjUyee=bKpqr~khOiiCZ*oT$Q1LpmSZ$th$&+9-& zzEQ{R4-=2^M;ZMc*R*peyw5B#KVzEo_qWmBlwNALU!Lhw{Mz#UiO2eZZKuun?%?RK<-FSXO=tdk z|4l7Fka%bEk9m(6)Q*1?@g9PQZ|+BCW5DeUXQkhNQW`sKGvAhYoPT5fXtV#$A-)Uo z+;3K;@h1`QEO^APcKg?y{p@dvyP2%zS1J1vZ)NX&nxzgu{%qxw7{Wm1O z5&4I2Q+lc0{(AGI^Ji^&KjNKr@V}FIN8&MV7z4Ha|3Ey}4??x-ziZg9-~U%Tev635 z{dc9?9dRP@_Ddn&m3W@FYWqKGzQnUVwfu47vHxq!{~#X6FKzjD3#9WeZTaQIchbTC zSK%MyrgZG&+s|pCZl9meB3_s4r;o&Uq5kvyQ`!d}@3xC1|GfTiIr^AU;&zXT=kp&m zW5|5z#k$=;X-7Ohe?+WG`;NBke**FN{s@mB>Xanro4asgk+W6zR^Zky!kTe{yp-%4V0K*ekk$s&mWbr zXv6#|;`#bP>DbBng3HtIzpzauF>qTS;_>+fⅈ9sNutiZ%90kozgzA|J%gNpMU4$ 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 z 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 Date: Sat, 31 Jan 2026 20:54:10 +0100 Subject: [PATCH 13/16] fix --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 913c36e3..4d86b444 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "keywords": [], "license": "MIT", "dependencies": { - "@biomejs/biome": "2.0.6", + "@biomejs/biome": "2.0.6", "@total-typescript/ts-reset": "^0.6.1", "@types/bun": "^1.2.21", "@types/node": "^20.19.13", @@ -25,5 +25,5 @@ "packages/slider/packages/*", "docs" ], - "prettier": "@sv/codestyle/.prettierrc.json" + "prettier": "./.prettierrc.json" } From a99518b8e419a2ca62fd8570847c78eaed30f1ab Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 31 Jan 2026 20:55:09 +0100 Subject: [PATCH 14/16] fix --- bun.lock | 113 --------------------------------------------------- package.json | 3 -- 2 files changed, 116 deletions(-) diff --git a/bun.lock b/bun.lock index af52217f..94da4018 100644 --- a/bun.lock +++ b/bun.lock @@ -137,75 +137,6 @@ "chart.js": "^4.4.3", }, }, - "packages/elements/packages/blur": { - "name": "@sv/blur", - "dependencies": { - "@sv/scroll-lock": "workspace:*", - }, - }, - "packages/elements/packages/box": { - "name": "@sv/box", - }, - "packages/elements/packages/calendar": { - "name": "@sv/calendar", - }, - "packages/elements/packages/dropzone": { - "name": "@atrium-ui/dropzone", - }, - "packages/elements/packages/expandable": { - "name": "@sv/expandable", - }, - "packages/elements/packages/fluid-input": { - "name": "@atrium-ui/fluid-input", - }, - "packages/elements/packages/form": { - "name": "@sv/form", - }, - "packages/elements/packages/knob": { - "name": "@atrium-ui/knob", - }, - "packages/elements/packages/list": { - "name": "@sv/list", - }, - "packages/elements/packages/loader": { - "name": "@sv/loader", - }, - "packages/elements/packages/popover": { - "name": "@sv/popover", - }, - "packages/elements/packages/portal": { - "name": "@sv/portal", - }, - "packages/elements/packages/range": { - "name": "@sv/range", - }, - "packages/elements/packages/scroll": { - "name": "@sv/scroll", - }, - "packages/elements/packages/select": { - "name": "@sv/select", - }, - "packages/elements/packages/shortcut": { - "name": "@sv/elements-shortcut", - }, - "packages/elements/packages/tabs": { - "name": "@sv/tabs", - }, - "packages/elements/packages/time": { - "name": "@sv/time", - }, - "packages/elements/packages/toast": { - "name": "@sv/toast", - }, - "packages/elements/packages/toggle": { - "name": "@sv/toggle", - }, - "packages/elements/packages/track": { - "name": "@sv/track", - }, - "packages/elements/packages/transition": { - "name": "@sv/transition", - }, "packages/icons": { "name": "@sv/icons", "version": "1.2.0", @@ -287,12 +218,6 @@ "@astrojs/yaml2ts": ["@astrojs/yaml2ts@0.2.2", "", { "dependencies": { "yaml": "^2.5.0" } }, "sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ=="], - "@atrium-ui/dropzone": ["@atrium-ui/dropzone@workspace:packages/elements/packages/dropzone"], - - "@atrium-ui/fluid-input": ["@atrium-ui/fluid-input@workspace:packages/elements/packages/fluid-input"], - - "@atrium-ui/knob": ["@atrium-ui/knob@workspace:packages/elements/packages/knob"], - "@babel/code-frame": ["@babel/code-frame@7.28.6", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q=="], "@babel/compat-data": ["@babel/compat-data@7.28.6", "", {}, "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg=="], @@ -719,12 +644,6 @@ "@sv/animation": ["@sv/animation@workspace:packages/animation"], - "@sv/blur": ["@sv/blur@workspace:packages/elements/packages/blur"], - - "@sv/box": ["@sv/box@workspace:packages/elements/packages/box"], - - "@sv/calendar": ["@sv/calendar@workspace:packages/elements/packages/calendar"], - "@sv/charts": ["@sv/charts@workspace:packages/charts"], "@sv/components": ["@sv/components@workspace:packages/components"], @@ -733,48 +652,16 @@ "@sv/elements": ["@sv/elements@workspace:packages/elements"], - "@sv/elements-shortcut": ["@sv/elements-shortcut@workspace:packages/elements/packages/shortcut"], - - "@sv/expandable": ["@sv/expandable@workspace:packages/elements/packages/expandable"], - - "@sv/form": ["@sv/form@workspace:packages/elements/packages/form"], - "@sv/icons": ["@sv/icons@workspace:packages/icons"], - "@sv/list": ["@sv/list@workspace:packages/elements/packages/list"], - - "@sv/loader": ["@sv/loader@workspace:packages/elements/packages/loader"], - "@sv/panels": ["@sv/panels@workspace:packages/panels"], - "@sv/popover": ["@sv/popover@workspace:packages/elements/packages/popover"], - - "@sv/portal": ["@sv/portal@workspace:packages/elements/packages/portal"], - - "@sv/range": ["@sv/range@workspace:packages/elements/packages/range"], - - "@sv/scroll": ["@sv/scroll@workspace:packages/elements/packages/scroll"], - "@sv/scroll-lock": ["@sv/scroll-lock@workspace:packages/scroll-lock"], - "@sv/select": ["@sv/select@workspace:packages/elements/packages/select"], - "@sv/svg-sprites": ["@sv/svg-sprites@workspace:packages/svg-sprites"], - "@sv/tabs": ["@sv/tabs@workspace:packages/elements/packages/tabs"], - "@sv/test": ["@sv/test@workspace:packages/test"], - "@sv/time": ["@sv/time@workspace:packages/elements/packages/time"], - - "@sv/toast": ["@sv/toast@workspace:packages/elements/packages/toast"], - - "@sv/toggle": ["@sv/toggle@workspace:packages/elements/packages/toggle"], - - "@sv/track": ["@sv/track@workspace:packages/elements/packages/track"], - - "@sv/transition": ["@sv/transition@workspace:packages/elements/packages/transition"], - "@tailwindcss/browser": ["@tailwindcss/browser@4.1.18", "", {}, "sha512-cnAUsj2TXGslPmDEnM469b4MAFT/ifxjt+Bla/2vBTBzp/PIPo6pjKxRrd8x+S84/S1bAtEIlzbJaaJxgZUV8Q=="], "@tailwindcss/node": ["@tailwindcss/node@4.0.15", "", { "dependencies": { "enhanced-resolve": "^5.18.1", "jiti": "^2.4.2", "tailwindcss": "4.0.15" } }, "sha512-IODaJjNmiasfZX3IoS+4Em3iu0fD2HS0/tgrnkYfW4hyUor01Smnr5eY3jc4rRgaTDrJlDmBTHbFO0ETTDaxWA=="], diff --git a/package.json b/package.json index 4d86b444..cb1259bb 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,6 @@ "packageManager": "bun@1.1.12", "workspaces": [ "packages/*", - "packages/elements/packages/*", - "packages/elements-pro/packages/*", - "packages/slider/packages/*", "docs" ], "prettier": "./.prettierrc.json" From a94267f7b45844b45213ebfff0d600daf4a06224 Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 31 Jan 2026 20:56:10 +0100 Subject: [PATCH 15/16] fix --- bun.lock | 30 +++---- packages/elements/package.json | 143 +++++++++++++++++---------------- 2 files changed, 81 insertions(+), 92 deletions(-) diff --git a/bun.lock b/bun.lock index 94da4018..5e130cb9 100644 --- a/bun.lock +++ b/bun.lock @@ -120,22 +120,18 @@ }, "packages/elements": { "name": "@sv/elements", - "version": "1.14.2", + "version": "4.6.2", "dependencies": { + "@floating-ui/dom": "^1.6.7", + "@sv/scroll-lock": "^1.1.1", "lit": "^3.1.3", }, "devDependencies": { - "@happy-dom/global-registrator": "^14.7.1", - "install": "^0.13.0", - "intersection-observer": "^0.12.2", + "@sv/test": "^0.1.0", + "@testing-library/user-event": "^14.6.1", + "@types/bun": "^1.3.5", "ts-lit-plugin": "^2.0.2", }, - "peerDependencies": { - "@floating-ui/dom": "^1.6.7", - "@rive-app/canvas-advanced": "2.7.8", - "@sv/scroll-lock": "^1.0.0", - "chart.js": "^4.4.3", - }, }, "packages/icons": { "name": "@sv/icons", @@ -396,7 +392,7 @@ "@gerrit0/mini-shiki": ["@gerrit0/mini-shiki@1.27.2", "", { "dependencies": { "@shikijs/engine-oniguruma": "^1.27.2", "@shikijs/types": "^1.27.2", "@shikijs/vscode-textmate": "^10.0.1" } }, "sha512-GeWyHz8ao2gBiUW4OJnQDxXQnFgZQwwQk05t/CVVgNBN7/rK8XZ7xY6YhLVv9tH3VppWWmr9DCl3MwemB/i+Og=="], - "@happy-dom/global-registrator": ["@happy-dom/global-registrator@14.12.3", "", { "dependencies": { "happy-dom": "^14.12.3" } }, "sha512-VL6mjnIhqD1l9zYBmdIx5Q3qNiNY0ZBByrDV2Z7hHDMsjhqwaVI2/uQZ7uyCsgRWvubSG1yZ74sEK2inDBBw/w=="], + "@happy-dom/global-registrator": ["@happy-dom/global-registrator@18.0.1", "", { "dependencies": { "@types/node": "^20.0.0", "happy-dom": "^18.0.1" } }, "sha512-xCy/cpEP8xyJ6u0eokYgaQxeUmcKqHx/+aC3R0DLa7/S38efhZAVDQqLJ5zzTguLFS0gvAzZHP40NGaLwRyapQ=="], "@img/colour": ["@img/colour@1.0.0", "", {}, "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw=="], @@ -562,8 +558,6 @@ "@resvg/resvg-js-win32-x64-msvc": ["@resvg/resvg-js-win32-x64-msvc@2.6.2", "", { "os": "win32", "cpu": "x64" }, "sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ=="], - "@rive-app/canvas-advanced": ["@rive-app/canvas-advanced@2.7.8", "", {}, "sha512-QIadMrFz+8KJz13GA7IJQw8AqHfVqCu7/oauphU9j/76A7Db1PYn2w9Emjh+CL113Ld9u+if5/0NRgnVO/r23g=="], - "@rive-app/canvas-advanced-lite": ["@rive-app/canvas-advanced-lite@2.23.3", "", {}, "sha512-VtlUB3jDSVVRXCO1/P5eWRUlokAr6Gi2cKMmQthN12qrV14f3JdqHVrwQgW215nWCfCrU27hDchqcuvGt89h4Q=="], "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.53", "", {}, "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ=="], @@ -1418,8 +1412,6 @@ "inline-style-parser": ["inline-style-parser@0.2.7", "", {}, "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA=="], - "install": ["install@0.13.0", "", {}, "sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA=="], - "interpret": ["interpret@3.1.1", "", {}, "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ=="], "intersection-observer": ["intersection-observer@0.12.2", "", {}, "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg=="], @@ -2430,12 +2422,12 @@ "@babel/helper-create-class-features-plugin/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "@happy-dom/global-registrator/happy-dom": ["happy-dom@18.0.1", "", { "dependencies": { "@types/node": "^20.0.0", "@types/whatwg-mimetype": "^3.0.2", "whatwg-mimetype": "^3.0.0" } }, "sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA=="], + "@mdx-js/mdx/estree-walker": ["estree-walker@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.0" } }, "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g=="], "@puppeteer/browsers/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], - "@sv/components/@sv/elements": ["@sv/elements@4.6.2", "https://gitlab.s-v.de/api/v4/projects/1560/packages/npm/@sv/elements/-/@sv/elements-4.6.2.tgz", { "dependencies": { "@floating-ui/dom": "^1.6.7", "@sv/scroll-lock": "^1.1.1", "lit": "^3.1.3" } }, "sha1-7F6EQz9RtSHt9AN+AocMSm4lD1c="], - "@sv/docs/react": ["react@19.2.4", "", {}, "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ=="], "@sv/docs/tailwind-merge": ["tailwind-merge@3.4.0", "", {}, "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g=="], @@ -2444,8 +2436,6 @@ "@sv/svg-sprites/vite": ["vite@4.5.14", "", { "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", "rollup": "^3.27.1" }, "optionalDependencies": { "fsevents": "~2.3.2" }, "peerDependencies": { "@types/node": ">= 14", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" }, "optionalPeers": ["@types/node", "less", "lightningcss", "sass", "stylus", "sugarss", "terser"], "bin": { "vite": "bin/vite.js" } }, "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g=="], - "@sv/test/@happy-dom/global-registrator": ["@happy-dom/global-registrator@18.0.1", "", { "dependencies": { "@types/node": "^20.0.0", "happy-dom": "^18.0.1" } }, "sha512-xCy/cpEP8xyJ6u0eokYgaQxeUmcKqHx/+aC3R0DLa7/S38efhZAVDQqLJ5zzTguLFS0gvAzZHP40NGaLwRyapQ=="], - "@testing-library/dom/aria-query": ["aria-query@5.3.0", "", { "dependencies": { "dequal": "^2.0.3" } }, "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="], "@typescript-eslint/typescript-estree/semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], @@ -2998,8 +2988,6 @@ "@sv/svg-sprites/vite/rollup": ["rollup@3.29.5", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w=="], - "@sv/test/@happy-dom/global-registrator/happy-dom": ["happy-dom@18.0.1", "", { "dependencies": { "@types/node": "^20.0.0", "@types/whatwg-mimetype": "^3.0.2", "whatwg-mimetype": "^3.0.0" } }, "sha512-qn+rKOW7KWpVTtgIUi6RVmTBZJSe2k0Db0vh1f7CWrWclkkc7/Q+FrOfkZIb2eiErLyqu5AXEzE7XthO9JVxRA=="], - "astro/shiki/@shikijs/core": ["@shikijs/core@3.21.0", "", { "dependencies": { "@shikijs/types": "3.21.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.5" } }, "sha512-AXSQu/2n1UIQekY8euBJlvFYZIw0PHY63jUzGbrOma4wPxzznJXTXkri+QcHeBNaFxiiOljKxxJkVSoB3PjbyA=="], "astro/shiki/@shikijs/engine-javascript": ["@shikijs/engine-javascript@3.21.0", "", { "dependencies": { "@shikijs/types": "3.21.0", "@shikijs/vscode-textmate": "^10.0.2", "oniguruma-to-es": "^4.3.4" } }, "sha512-ATwv86xlbmfD9n9gKRiwuPpWgPENAWCLwYCGz9ugTJlsO2kOzhOkvoyV/UD+tJ0uT7YRyD530x6ugNSffmvIiQ=="], diff --git a/packages/elements/package.json b/packages/elements/package.json index c5cfd421..260a6396 100644 --- a/packages/elements/package.json +++ b/packages/elements/package.json @@ -4,12 +4,14 @@ "contributors": [ "luckydye" ], - "version": "1.14.2", + "version": "4.6.2", "description": "Atrium Elements", "type": "module", "scripts": { - "check": "tsc --pretty", - "test": "bun test --rerun-each 5 .", + "build": "bun ./build.ts", + "dev": "bun --watch ./build.ts", + "test": "bun test --rerun-each 3 --coverage", + "check": "tsc", "publish-package": "task publish" }, "files": [ @@ -22,119 +24,118 @@ "keywords": [], "license": "MIT", "dependencies": { - "lit": "^3.1.3" + "lit": "^3.1.3", + "@floating-ui/dom": "^1.6.7", + "@sv/scroll-lock": "^1.1.1" }, "devDependencies": { - "@happy-dom/global-registrator": "^14.7.1", - "install": "^0.13.0", - "intersection-observer": "^0.12.2", + "@testing-library/user-event": "^14.6.1", + "@types/bun": "^1.3.5", + "@sv/test": "^0.1.0", "ts-lit-plugin": "^2.0.2" }, - "peerDependencies": { - "@floating-ui/dom": "^1.6.7", - "@rive-app/canvas-advanced": "2.7.8", - "@sv/scroll-lock": "^1.0.0", - "chart.js": "^4.4.3" - }, "exports": { + "./CHANGELOG.md": { + "import": "./CHANGELOG.md" + }, ".": { - "import": "./index.js", - "types": "./index.d.ts" + "types": "./index.d.ts", + "import": "./index.js" }, "./toggle": { + "types": "./packages/toggle/src/index.ts", "import": "./packages/toggle/dist/index.js", - "require": "./packages/toggle/dist/index.cjs", - "types": "./packages/toggle/src/index.ts" + "require": "./packages/toggle/dist/index.cjs" }, "./expandable": { + "types": "./packages/expandable/src/index.ts", "import": "./packages/expandable/dist/index.js", - "require": "./packages/expandable/dist/index.cjs", - "types": "./packages/expandable/src/index.ts" - }, - "./dropdown": { - "import": "./packages/dropdown/dist/index.js", - "require": "./packages/dropdown/dist/index.cjs", - "types": "./packages/dropdown/src/index.ts" + "require": "./packages/expandable/dist/index.cjs" }, "./track": { + "types": "./packages/track/src/index.ts", "import": "./packages/track/dist/index.js", - "require": "./packages/track/dist/index.cjs", - "types": "./packages/track/src/index.ts" + "require": "./packages/track/dist/index.cjs" }, "./blur": { + "types": "./packages/blur/src/index.ts", "import": "./packages/blur/dist/index.js", - "require": "./packages/blur/dist/index.cjs", - "types": "./packages/blur/src/index.ts" + "require": "./packages/blur/dist/index.cjs" }, "./popover": { + "types": "./packages/popover/src/index.ts", "import": "./packages/popover/dist/index.js", - "require": "./packages/popover/dist/index.cjs", - "types": "./packages/popover/src/index.ts" - }, - "./animation": { - "import": "./packages/animation/dist/index.js", - "require": "./packages/animation/dist/index.cjs", - "types": "./packages/animation/src/index.ts" + "require": "./packages/popover/dist/index.cjs" }, "./time": { + "types": "./packages/time/src/index.ts", "import": "./packages/time/dist/index.js", - "require": "./packages/time/dist/index.cjs", - "types": "./packages/time/src/index.ts" - }, - "./pager": { - "import": "./packages/pager/dist/index.js", - "require": "./packages/pager/dist/index.cjs", - "types": "./packages/pager/src/index.ts" + "require": "./packages/time/dist/index.cjs" }, "./range": { + "types": "./packages/range/src/index.ts", "import": "./packages/range/dist/index.js", - "require": "./packages/range/dist/index.cjs", - "types": "./packages/range/src/index.ts" - }, - "./filter": { - "import": "./packages/filter/dist/index.js", - "require": "./packages/filter/dist/index.cjs", - "types": "./packages/filter/src/index.ts" + "require": "./packages/range/dist/index.cjs" }, "./toast": { + "types": "./packages/toast/src/index.ts", "import": "./packages/toast/dist/index.js", - "require": "./packages/toast/dist/index.cjs", - "types": "./packages/toast/src/index.ts" + "require": "./packages/toast/dist/index.cjs" }, "./form": { + "types": "./packages/form/src/index.ts", "import": "./packages/form/dist/index.js", - "require": "./packages/form/dist/index.cjs", - "types": "./packages/form/src/index.ts" + "require": "./packages/form/dist/index.cjs" }, "./portal": { + "types": "./packages/portal/src/index.ts", "import": "./packages/portal/dist/index.js", - "require": "./packages/portal/dist/index.cjs", - "types": "./packages/portal/src/index.ts" + "require": "./packages/portal/dist/index.cjs" }, "./transition": { + "types": "./packages/transition/src/index.ts", "import": "./packages/transition/dist/index.js", - "require": "./packages/transition/dist/index.cjs", - "types": "./packages/transition/src/index.ts" + "require": "./packages/transition/dist/index.cjs" }, "./select": { + "types": "./packages/select/src/index.ts", "import": "./packages/select/dist/index.js", - "require": "./packages/select/dist/index.cjs", - "types": "./packages/select/src/index.ts" + "require": "./packages/select/dist/index.cjs" }, "./scroll": { + "types": "./packages/scroll/src/index.ts", "import": "./packages/scroll/dist/index.js", - "require": "./packages/scroll/dist/index.cjs", - "types": "./packages/scroll/src/index.ts" - }, - "./chart": { - "import": "./packages/chart/dist/index.js", - "require": "./packages/chart/dist/index.cjs", - "types": "./packages/chart/src/index.ts" - }, - "./dropzone": { - "import": "./packages/dropzone/dist/index.js", - "require": "./packages/dropzone/dist/index.cjs", - "types": "./packages/dropzone/src/index.ts" + "require": "./packages/scroll/dist/index.cjs" + }, + "./box": { + "types": "./packages/box/src/index.ts", + "import": "./packages/box/dist/index.js", + "require": "./packages/box/dist/index.cjs" + }, + "./list": { + "types": "./packages/list/src/index.ts", + "import": "./packages/list/dist/index.js", + "require": "./packages/list/dist/index.cjs" + }, + "./loader": { + "types": "./packages/loader/src/index.ts", + "import": "./packages/loader/dist/index.js", + "require": "./packages/loader/dist/index.cjs" + }, + "./shortcut": { + "types": "./packages/shortcut/src/index.ts", + "import": "./packages/shortcut/dist/index.js", + "require": "./packages/shortcut/dist/index.cjs" + }, + "./calendar": { + "types": "./packages/calendar/src/index.ts", + "import": "./packages/calendar/dist/index.js", + "require": "./packages/calendar/dist/index.cjs" + }, + "./tabs": { + "types": "./packages/tabs/src/index.ts", + "import": "./packages/tabs/dist/index.js", + "require": "./packages/tabs/dist/index.cjs" } } } From 6666f000cfe101cecf42d2e11cea0ec04f60341d Mon Sep 17 00:00:00 2001 From: Tim Havlicek Date: Sat, 31 Jan 2026 20:57:48 +0100 Subject: [PATCH 16/16] rm dropzone --- .../elements/packages/dropzone/package.json | 28 -------- .../packages/dropzone/src/Dropzone.ts | 64 ------------------- .../elements/packages/dropzone/src/index.ts | 7 -- .../elements/packages/dropzone/tsconfig.json | 3 - 4 files changed, 102 deletions(-) delete mode 100644 packages/elements/packages/dropzone/package.json delete mode 100644 packages/elements/packages/dropzone/src/Dropzone.ts delete mode 100644 packages/elements/packages/dropzone/src/index.ts delete mode 100644 packages/elements/packages/dropzone/tsconfig.json diff --git a/packages/elements/packages/dropzone/package.json b/packages/elements/packages/dropzone/package.json deleted file mode 100644 index 7df475cc..00000000 --- a/packages/elements/packages/dropzone/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@atrium-ui/dropzone", - "author": "atrium", - "contributors": [], - "private": true, - "description": "", - "type": "module", - "main": "dist/index.js", - "types": "src/index.ts", - "scripts": { - "build": "# tsup", - "dev": "# tsup --watch" - }, - "tsup": { - "entry": [ - "src/index.ts" - ], - "format": [ - "esm", - "cjs" - ], - "external": [ - "lit" - ], - "sourcemap": true, - "clean": true - } -} diff --git a/packages/elements/packages/dropzone/src/Dropzone.ts b/packages/elements/packages/dropzone/src/Dropzone.ts deleted file mode 100644 index 82d83f99..00000000 --- a/packages/elements/packages/dropzone/src/Dropzone.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { css, type CSSResultGroup, html, LitElement } from "lit"; - -export class FileDropEvent extends Event { - file: File; - - constructor(file: File) { - super("drop-file-event"); - - this.file = file; - } -} - -export class Dropzone extends LitElement { - constructor() { - super(); - - this.addEventListener("dragover", (e) => { - e.preventDefault(); - }); - - this.addEventListener("drop", (e) => { - const files = e.dataTransfer?.files; - - if (files) { - for (let file of files) { - if (file.type.match("video")) { - this.dispatchEvent(new FileDropEvent(file)); - } - } - } - - e.preventDefault(); - }); - } - - static get styles(): CSSResultGroup | undefined { - return css` - :host { - } - - .dropzone { - width: 500px; - height: 200px; - display: flex; - justify-content: center; - align-items: center; - pointer-events: none; - border: 1px solid currentColor; - border-radius: 6px; - opacity: 0.5; - } - `; - } - - render() { - return html` -

- `; - } -} - -customElements.define("a-dropzone", Dropzone); diff --git a/packages/elements/packages/dropzone/src/index.ts b/packages/elements/packages/dropzone/src/index.ts deleted file mode 100644 index 67bbb7bf..00000000 --- a/packages/elements/packages/dropzone/src/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * @license - * Copyright (c) 2024 Atrium Contributors - * SPDX-License-Identifier: MIT - */ - -export { Dropzone } from "./Dropzone.js"; diff --git a/packages/elements/packages/dropzone/tsconfig.json b/packages/elements/packages/dropzone/tsconfig.json deleted file mode 100644 index 4082f16a..00000000 --- a/packages/elements/packages/dropzone/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json" -}