diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 1fd5869..d72e069 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -5,5 +5,5 @@ module.exports = {
},
// eslint will auto add `eslint-config` for a no scope package(which not start with '@' chart), so here use absolute file path
extends: [require.resolve("project-tool/baseLint")],
- ignorePatterns: ["dist", "dev", "scripts", "node_modules", "next-app-example", "next-page-example"],
+ ignorePatterns: ["dist", "dev", "scripts", "node_modules", "next-app-example", "next-page-example", "packages/solid"],
};
diff --git a/package.json b/package.json
index f18e8ab..5a7e8c7 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"dev:vue-ssr": "cd ui/vue-ssr-example && pnpm run dev",
"dev:next-page": "cd ui/next-page-example && pnpm run dev",
"dev:next-app": "cd ui/next-app-example && pnpm run dev",
+ "dev:solid": "cd ui/solid-example && pnpm run dev",
"build:react": "cd ui/react-example && pnpm run build",
"pre:release": "pnpm run lint && pnpm run prettier && pnpm run clean && pnpm run build:packages",
"release": "pnpm run pre:release && pnpm run start:release",
diff --git a/packages/angular/package.json b/packages/angular/package.json
new file mode 100644
index 0000000..4f03a06
--- /dev/null
+++ b/packages/angular/package.json
@@ -0,0 +1,3 @@
+{
+ "name": "@git-diff-view/angular"
+}
\ No newline at end of file
diff --git a/packages/dom/package.json b/packages/dom/package.json
new file mode 100644
index 0000000..a6dc1c7
--- /dev/null
+++ b/packages/dom/package.json
@@ -0,0 +1,3 @@
+{
+ "name": "@git-diff-view/dom"
+}
\ No newline at end of file
diff --git a/packages/solid/.eslintrc.cjs b/packages/solid/.eslintrc.cjs
new file mode 100644
index 0000000..e256508
--- /dev/null
+++ b/packages/solid/.eslintrc.cjs
@@ -0,0 +1,5 @@
+module.exports = {
+ plugins: ["solid"],
+ extends: ["../../.eslintrc.cjs", "plugin:solid/typescript"],
+ ignorePatterns: ["dist", "dev", "node_modules"],
+};
diff --git a/packages/solid/package.json b/packages/solid/package.json
new file mode 100644
index 0000000..192a3fa
--- /dev/null
+++ b/packages/solid/package.json
@@ -0,0 +1,59 @@
+{
+ "name": "@git-diff-view/solid",
+ "description": "@git-diff-view/solid",
+ "author": "MrWangJustToDo",
+ "license": "MIT",
+ "version": "0.0.25",
+ "main": "index.js",
+ "type": "module",
+ "types": "index.d.ts",
+ "files": [
+ "dist",
+ "index.cjs",
+ "index.d.ts"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/MrWangJustToDo/git-diff-view.git",
+ "directory": "packages/solid"
+ },
+ "scripts": {
+ "build": "vite build",
+ "gen:type": "dts-bundle-generator -o index.d.ts dist/index.d.ts"
+ },
+ "homepage": "https://mrwangjusttodo.github.io/git-diff-view",
+ "exports": {
+ ".": {
+ "require": "./index.cjs",
+ "types": "./index.d.ts",
+ "import": "./dist/vue-git-diff-view.mjs"
+ },
+ "./styles/*": "./dist/css/*",
+ "./package.json": "./package.json"
+ },
+ "keywords": [
+ "diff component",
+ "solid diff component"
+ ],
+ "dependencies": {
+ "@git-diff-view/core": "^0.0.25",
+ "@types/hast": "^3.0.0",
+ "highlight.js": "^11.11.0",
+ "lowlight": "^3.3.0",
+ "fast-diff": "^1.3.0"
+ },
+ "devDependencies": {
+ "@rollup/plugin-typescript": "^11.1.6",
+ "solid-js": "^1.9.0",
+ "vite-plugin-solid": "^2.11.0",
+ "autoprefixer": "^10.4.20",
+ "eslint-plugin-solid": "^0.14.5",
+ "postcss": "^8.4.47",
+ "tailwindcss": "^3.4.14",
+ "vite": "^5.4.10",
+ "vite-plugin-dts": "^3.9.1"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.9.0"
+ }
+}
\ No newline at end of file
diff --git a/packages/solid/postcss.config.js b/packages/solid/postcss.config.js
new file mode 100644
index 0000000..c917e1b
--- /dev/null
+++ b/packages/solid/postcss.config.js
@@ -0,0 +1,32 @@
+export default {
+ plugins: {
+ tailwindcss: { config: "./tailwind.config.js" },
+ "postcss-prefix-selector": {
+ prefix: ".diff-tailwindcss-wrapper",
+ transform: function (prefix, selector, prefixedSelector, _filePath, rule) {
+ const filePath = rule.source?.input?.file;
+ // ignore base css
+ // TODO next release update
+ if (rule.source?.start?.line === 1 && rule.source?.start?.column === 1) {
+ return selector;
+ }
+ if (selector.includes("diff-line-extend-wrapper") || selector.includes("diff-line-widget-wrapper")) {
+ return selector;
+ }
+ if (selector.includes("[data-theme")) {
+ return prefix + selector;
+ }
+ if (filePath.includes("node_modules")) {
+ if (filePath.includes("dark.css")) {
+ return `${prefix}[data-theme="dark"] .diff-line-syntax-raw ${selector}`;
+ } else {
+ return `${prefix}[data-theme="light"] .diff-line-syntax-raw ${selector}`;
+ }
+ } else {
+ return prefixedSelector;
+ }
+ },
+ },
+ autoprefixer: {},
+ },
+};
diff --git a/packages/solid/src/components/DiffAddWidget.tsx b/packages/solid/src/components/DiffAddWidget.tsx
new file mode 100644
index 0000000..c23bb16
--- /dev/null
+++ b/packages/solid/src/components/DiffAddWidget.tsx
@@ -0,0 +1,74 @@
+import { diffFontSizeName, addWidgetColorName, addWidgetBGName } from "@git-diff-view/utils";
+
+import type { SplitSide } from "./DiffView";
+import type { DiffFile } from "@git-diff-view/core";
+
+export const DiffSplitAddWidget = (props: {
+ index: number;
+ className?: string;
+ lineNumber: number;
+ diffFile: DiffFile;
+ side: SplitSide;
+ onOpenAddWidget: (lineNumber: number, side: SplitSide) => void;
+ onWidgetClick?: (event: "onAddWidgetClick", lineNumber: number, side: SplitSide) => void;
+}) => {
+ return (
+
+
+
+ );
+};
+
+export const DiffUnifiedAddWidget = (props: {
+ index: number;
+ diffFile: DiffFile;
+ lineNumber: number;
+ side: SplitSide;
+ onOpenAddWidget: (lineNumber: number, side: SplitSide) => void;
+ onWidgetClick?: (event: "onAddWidgetClick", lineNumber: number, side: SplitSide) => void;
+}) => {
+ return (
+
+
+
+ );
+};
diff --git a/packages/solid/src/components/DiffContent.tsx b/packages/solid/src/components/DiffContent.tsx
new file mode 100644
index 0000000..973ff18
--- /dev/null
+++ b/packages/solid/src/components/DiffContent.tsx
@@ -0,0 +1,234 @@
+import { DiffLineType, NewLineSymbol, type DiffFile, type DiffLine, type SyntaxLine } from "@git-diff-view/core";
+import {
+ addContentHighlightBGName,
+ delContentHighlightBGName,
+ diffFontSizeName,
+ getSymbol,
+} from "@git-diff-view/utils";
+import { For, Show } from "solid-js";
+
+import { DiffNoNewLine } from "./DiffNoNewLine";
+
+const DiffString = (props: {
+ rawLine: string;
+ diffLine?: DiffLine;
+ operator?: "add" | "del";
+ enableWrap?: boolean;
+}) => {
+ const getRange = () => props.diffLine?.changes?.range;
+
+ const getStr1 = () => props.rawLine.slice(0, getRange?.()?.location);
+
+ const getStr2 = () =>
+ props.rawLine.slice(getRange?.()?.location, (getRange?.()?.location || 0) + (getRange?.()?.length || 0));
+
+ const getStr3 = () => props.rawLine.slice((getRange?.()?.location || 0) + (getRange?.()?.length || 0));
+
+ const getIsLast = () => getStr2().includes("\n");
+
+ const get_Str2 = () => (getIsLast() ? getStr2().replace("\n", "").replace("\r", "") : getStr2());
+
+ const getIsNewLineSymbolChanged = () => (getStr3() === "" ? props.diffLine?.changes?.newLineSymbol : null);
+
+ return (
+ {props.rawLine}}
+ >
+
+
+ {getStr1()}
+
+ {getIsLast() ? `${get_Str2()}${getSymbol(getIsNewLineSymbolChanged())}` : getStr2()}
+
+ {getStr3()}
+
+ {getIsNewLineSymbolChanged() === NewLineSymbol.NEWLINE && (
+
+
+
+ )}
+
+
+ );
+};
+
+const DiffSyntax = (props: {
+ rawLine: string;
+ diffLine?: DiffLine;
+ syntaxLine?: SyntaxLine;
+ operator?: "add" | "del";
+ enableWrap?: boolean;
+}) => {
+ const getRange = () => props.diffLine?.changes?.range;
+
+ const getIsNewLineSymbolChanged = () => props.diffLine?.changes?.newLineSymbol;
+
+ return (
+ }
+ >
+
+
+ {({ node, wrapper }) => (
+
+ {node.value}
+
+ )}
+
+
+ }
+ >
+
+
+
+ {({ node, wrapper }) => {
+ if (
+ node.endIndex < getRange()!.location ||
+ getRange()!.location + getRange()!.length < node.startIndex
+ ) {
+ return (
+
+ {node.value}
+
+ );
+ } else {
+ const index1 = getRange()!.location - node.startIndex;
+ const index2 = index1 < 0 ? 0 : index1;
+ const str1 = node.value.slice(0, index2);
+ const str2 = node.value.slice(index2, index1 + getRange()!.length);
+ const str3 = node.value.slice(index1 + getRange()!.length);
+ const isStart = str1.length || getRange()!.location === node.startIndex;
+ const isEnd = str3.length || node.endIndex === getRange()!.location + getRange()!.length - 1;
+ const isLast = str2.includes("\n");
+ const _str2 = isLast ? str2.replace("\n", "").replace("\r", "") : str2;
+ return (
+
+ {str1}
+
+ {isLast ? `${_str2}${getSymbol(getIsNewLineSymbolChanged())}` : str2}
+
+ {str3}
+
+ );
+ }
+ }}
+
+
+ {getIsNewLineSymbolChanged() === NewLineSymbol.NEWLINE && (
+
+
+
+ )}
+
+
+
+ );
+};
+
+export const DiffContent = (props: {
+ rawLine: string;
+ syntaxLine?: SyntaxLine;
+ diffLine?: DiffLine;
+ diffFile: DiffFile;
+ enableWrap: boolean;
+ enableHighlight: boolean;
+}) => {
+ const getIsAdded = () => props.diffLine?.type === DiffLineType.Add;
+
+ const getIsDelete = () => props.diffLine?.type === DiffLineType.Delete;
+
+ const getIsMaxLineLengthToIgnoreSyntax = () =>
+ props.syntaxLine?.nodeList ? props.syntaxLine?.nodeList?.length > 150 : false;
+
+ return (
+
+
+ {getIsAdded() ? "+" : getIsDelete() ? "-" : " "}
+
+ {props.enableHighlight && props.syntaxLine && !getIsMaxLineLengthToIgnoreSyntax() ? (
+
+ ) : (
+
+ )}
+
+ );
+};
diff --git a/packages/solid/src/components/DiffExpand.tsx b/packages/solid/src/components/DiffExpand.tsx
new file mode 100644
index 0000000..b480b9a
--- /dev/null
+++ b/packages/solid/src/components/DiffExpand.tsx
@@ -0,0 +1,23 @@
+export const ExpandDown = (props: { className: string }) => {
+ return (
+
+ );
+};
+
+export const ExpandUp = (props: { className?: string }) => {
+ return (
+
+ );
+};
+
+export const ExpandAll = (props: { className?: string }) => {
+ return (
+
+ );
+};
diff --git a/packages/solid/src/components/DiffNoNewLine.tsx b/packages/solid/src/components/DiffNoNewLine.tsx
new file mode 100644
index 0000000..fdd9ce1
--- /dev/null
+++ b/packages/solid/src/components/DiffNoNewLine.tsx
@@ -0,0 +1,8 @@
+export const DiffNoNewLine = () => {
+ return (
+
+ );
+};
diff --git a/packages/solid/src/components/DiffView.tsx b/packages/solid/src/components/DiffView.tsx
new file mode 100644
index 0000000..e14a4e8
--- /dev/null
+++ b/packages/solid/src/components/DiffView.tsx
@@ -0,0 +1,93 @@
+import { DiffFile} from "@git-diff-view/core";
+import { type JSXElement, type JSX, createSignal, createRenderEffect } from "solid-js";
+
+import type { DiffHighlighter, DiffHighlighterLang } from "@git-diff-view/core";
+
+export enum SplitSide {
+ old = 1,
+ new = 2,
+}
+
+export enum DiffModeEnum {
+ // github like
+ SplitGitHub = 1,
+ // gitlab like
+ SplitGitLab = 2,
+ Split = 1 | 2,
+ Unified = 4,
+}
+
+export type DiffViewProps = {
+ data?: {
+ oldFile?: { fileName?: string | null; fileLang?: DiffHighlighterLang | string | null; content?: string | null };
+ newFile?: { fileName?: string | null; fileLang?: DiffHighlighterLang | string | null; content?: string | null };
+ hunks: string[];
+ };
+ extendData?: { oldFile?: Record; newFile?: Record };
+ diffFile?: DiffFile;
+ class?: string;
+ style?: JSX.CSSProperties;
+ registerHighlighter?: Omit;
+ diffViewMode?: DiffModeEnum;
+ diffViewWrap?: boolean;
+ diffViewTheme?: "light" | "dark";
+ diffViewFontSize?: number;
+ diffViewHighlight?: boolean;
+ diffViewAddWidget?: boolean;
+ renderWidgetLine?: ({
+ diffFile,
+ side,
+ lineNumber,
+ onClose,
+ }: {
+ lineNumber: number;
+ side: SplitSide;
+ diffFile: DiffFile;
+ onClose: () => void;
+ }) => JSXElement;
+ renderExtendLine?: ({
+ diffFile,
+ side,
+ data,
+ lineNumber,
+ onUpdate,
+ }: {
+ lineNumber: number;
+ side: SplitSide;
+ data: T;
+ diffFile: DiffFile;
+ onUpdate: () => void;
+ }) => JSXElement;
+ onAddWidgetClick?: (lineNumber: number, side: SplitSide) => void;
+};
+
+export const DiffView = (props: DiffViewProps) => {
+ const getInstance = () => {
+ if (props.diffFile) {
+ const diffFile = DiffFile.createInstance({});
+ diffFile._mergeFullBundle(props.diffFile._getFullBundle());
+ return diffFile;
+ }
+ if (props.data)
+ return new DiffFile(
+ props.data.oldFile?.fileName || "",
+ props.data.oldFile?.content || "",
+ props.data.newFile?.fileName || "",
+ props.data.newFile?.content || "",
+ props.data.hunks || [],
+ props.data.oldFile?.fileLang || "",
+ props.data.newFile?.fileLang || ""
+ );
+ return null;
+ };
+
+ const [diffFile, setDiffFile] = createSignal(getInstance());
+
+ createRenderEffect(() => {
+ diffFile()?.clear();
+
+ setDiffFile(getInstance());
+ })
+
+ return DiffView
;
+}
\ No newline at end of file
diff --git a/packages/solid/src/components/tool.ts b/packages/solid/src/components/tool.ts
new file mode 100644
index 0000000..e69de29
diff --git a/packages/solid/src/global.d.ts b/packages/solid/src/global.d.ts
new file mode 100644
index 0000000..1de7eae
--- /dev/null
+++ b/packages/solid/src/global.d.ts
@@ -0,0 +1,11 @@
+declare global {
+ const __VERSION__: string;
+
+ namespace NodeJS {
+ interface ProcessEnv {
+ NODE_ENV: "development" | "production" | "test";
+ }
+ }
+}
+
+export {};
diff --git a/packages/solid/src/index.ts b/packages/solid/src/index.ts
new file mode 100644
index 0000000..37d8547
--- /dev/null
+++ b/packages/solid/src/index.ts
@@ -0,0 +1,7 @@
+import "highlight.js/styles/github.css";
+import "highlight.js/styles/github-dark.css";
+import "./tailwind.css";
+
+export * from "./components/DiffView";
+
+export * from "@git-diff-view/core";
\ No newline at end of file
diff --git a/packages/solid/src/tailwind.css b/packages/solid/src/tailwind.css
new file mode 100644
index 0000000..2db0027
--- /dev/null
+++ b/packages/solid/src/tailwind.css
@@ -0,0 +1,124 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+[data-theme="light"] .diff-style-root {
+ --diff-border--: #dedede;
+ --diff-add-content--: #e6ffec;
+ --diff-del-content--: #ffebe9;
+ --diff-add-lineNumber--: #ccffd8;
+ --diff-del-lineNumber--: #ffd7d5;
+ --diff-plain-content--: #ffffff;
+ --diff-expand-content--: #fafafa;
+ --diff-plain-lineNumber--: #fafafa;
+ --diff-plain-lineNumber-color--: #555555;
+ --diff-hunk-content--: #ddf4ff;
+ --diff-hunk-lineNumber--: #c7ecff;
+ --diff-hunk-lineNumber-hover--: #9dc4f8;
+ --diff-add-content-highlight--: #abf2bc;
+ --diff-del-content-highlight--: #ffb3ad;
+ --diff-add-widget--: #0969d2;
+ --diff-add-widget-color--: #ffffff;
+ --diff-empty-content--: #fafafa;
+ --diff-hunk-content-color--: #777777;
+
+ color: black;
+}
+
+.diff-style-root .diff-line-syntax-raw *,
+[data-theme="light"] .diff-line-syntax-raw * {
+ color: var(--diff-view-light, inherit);
+ font-weight: var(--diff-view-light-font-weight, inherit);
+}
+
+[data-theme="dark"] .diff-style-root {
+ --diff-border--: #3d444d;
+ --diff-add-content--: #14261f;
+ --diff-del-content--: #311b1f;
+ --diff-add-lineNumber--: #1f4429;
+ --diff-del-lineNumber--: #552527;
+ --diff-plain-content--: #0d1117;
+ --diff-expand-content--: #161b22;
+ --diff-plain-lineNumber--: #161b22;
+ --diff-plain-lineNumber-color--: #a0aaab;
+ --diff-hunk-content--: #131d2e;
+ --diff-hunk-lineNumber--: #204274;
+ --diff-hunk-lineNumber-hover--: #386de3;
+ --diff-add-content-highlight--: #1f572d;
+ --diff-del-content-highlight--: #80312f;
+ --diff-add-widget--: #0969d2;
+ --diff-add-widget-color--: #ffffff;
+ --diff-empty-content--: #161b22;
+ --diff-hunk-content-color--: #9298a0;
+
+ color: white;
+}
+
+[data-theme="dark"] .diff-line-syntax-raw * {
+ color: var(--diff-view-dark, inherit);
+ font-weight: var(--diff-view-dark-font-weight, inherit);
+}
+
+table,
+tr,
+td {
+ border-color: transparent;
+ border-width: 0px;
+}
+
+.diff-style-root tr {
+ content-visibility: auto;
+}
+
+.diff-widget-tooltip {
+ position: relative;
+}
+
+.diff-widget-tooltip::after {
+ display: none;
+ box-sizing: border-box;
+ background-color: #555555;
+ position: absolute;
+ content: attr(data-title);
+ font-size: 11px;
+ padding: 1px 2px;
+ border-radius: 4px;
+ overflow: hidden;
+ top: 50%;
+ white-space: nowrap;
+ transform: translateY(-50%);
+ left: calc(100% + 8px);
+ color: #ffffff;
+}
+
+.diff-widget-tooltip::before {
+ display: none;
+ box-sizing: border-box;
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: calc(100% - 2px);
+ transform: translateY(-50%);
+ border: 6px solid transparent;
+ border-right-color: #555555;
+}
+
+.diff-widget-tooltip:hover {
+ background-color: var(--diff-hunk-lineNumber-hover--);
+}
+
+.diff-widget-tooltip:hover::before {
+ display: block;
+}
+
+.diff-widget-tooltip:hover::after {
+ display: block;
+}
+
+.diff-line-extend-wrapper * {
+ color: initial;
+}
+
+.diff-line-widget-wrapper * {
+ color: initial;
+}
diff --git a/packages/solid/tailwind.config.js b/packages/solid/tailwind.config.js
new file mode 100644
index 0000000..614c86b
--- /dev/null
+++ b/packages/solid/tailwind.config.js
@@ -0,0 +1,8 @@
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
+ theme: {
+ extend: {},
+ },
+ plugins: [],
+};
diff --git a/packages/solid/tsconfig.json b/packages/solid/tsconfig.json
new file mode 100644
index 0000000..7fafd44
--- /dev/null
+++ b/packages/solid/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "rootDir": "src",
+ "target": "ESNext",
+ "module": "ESNext",
+ "moduleResolution": "Bundler",
+ "allowSyntheticDefaultImports": true,
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js",
+ },
+ "include": ["./src"],
+ "exclude": ["node_modules"]
+}
diff --git a/packages/solid/vite.config.ts b/packages/solid/vite.config.ts
new file mode 100644
index 0000000..753cf0d
--- /dev/null
+++ b/packages/solid/vite.config.ts
@@ -0,0 +1,43 @@
+import typescript from "@rollup/plugin-typescript";
+import * as path from "path";
+import { defineConfig } from "vite";
+import dts from "vite-plugin-dts";
+import solidPlugin from "vite-plugin-solid";
+
+import pkg from "./package.json";
+
+export default defineConfig({
+ plugins: [
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-ignore
+ typescript({ tsconfig: "./tsconfig.json" }),
+ solidPlugin(),
+ dts(),
+ ],
+ server: {
+ port: 3000,
+ },
+ build: {
+ lib: {
+ entry: path.resolve(__dirname, "src/index.withStyle.ts"),
+ name: "GitDiffView",
+ formats: ["es", "cjs"],
+ fileName: (format) =>
+ format === "cjs"
+ ? `solid-git-diff-view.cjs`
+ : format === "es"
+ ? `solid-git-diff-view.mjs`
+ : `solid-git-diff-view.js`,
+ },
+ sourcemap: true,
+ rollupOptions: {
+ external: ["solid-js", "@git-diff-view/core"],
+ output: {
+ assetFileNames: "css/diff-view.css",
+ },
+ },
+ },
+ define: {
+ __VERSION__: JSON.stringify(pkg.version),
+ },
+});
diff --git a/packages/svelte/package.json b/packages/svelte/package.json
new file mode 100644
index 0000000..2b07d19
--- /dev/null
+++ b/packages/svelte/package.json
@@ -0,0 +1,3 @@
+{
+ "name": "@git-diff-view/svelte"
+}
\ No newline at end of file
diff --git a/packages/utils/index.d.ts b/packages/utils/index.d.ts
index 74f8890..8c2f740 100644
--- a/packages/utils/index.d.ts
+++ b/packages/utils/index.d.ts
@@ -42,6 +42,6 @@ declare enum NewLineSymbol {
NORMAL = 5,
NULL = 6
}
-export declare const getSymbol: (symbol: NewLineSymbol) => "" | "\u240A" | "\u240D" | "\u240D\u240A";
+export declare const getSymbol: (symbol: NewLineSymbol | string | null | undefined) => "" | "\u240A" | "\u240D" | "\u240D\u240A";
export {};
diff --git a/packages/utils/src/symbol.ts b/packages/utils/src/symbol.ts
index a27091d..9c637db 100644
--- a/packages/utils/src/symbol.ts
+++ b/packages/utils/src/symbol.ts
@@ -1,6 +1,6 @@
import { NewLineSymbol } from "@git-diff-view/core";
-export const getSymbol = (symbol: NewLineSymbol) => {
+export const getSymbol = (symbol: NewLineSymbol | string | null | undefined) => {
switch (symbol) {
case NewLineSymbol.LF:
return "␊";
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6387fc2..e7fb302 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -84,6 +84,8 @@ importers:
specifier: 5.3.3
version: 5.3.3
+ packages/angular: {}
+
packages/core:
dependencies:
'@git-diff-view/lowlight':
@@ -189,6 +191,54 @@ importers:
specifier: ^1.29.2
version: 1.29.2
+ packages/solid:
+ dependencies:
+ '@git-diff-view/core':
+ specifier: ^0.0.25
+ version: 0.0.25
+ '@types/hast':
+ specifier: ^3.0.0
+ version: 3.0.4
+ fast-diff:
+ specifier: ^1.3.0
+ version: 1.3.0
+ highlight.js:
+ specifier: ^11.11.0
+ version: 11.11.1
+ lowlight:
+ specifier: ^3.3.0
+ version: 3.3.0
+ devDependencies:
+ '@rollup/plugin-typescript':
+ specifier: ^11.1.6
+ version: 11.1.6(rollup@4.34.6)(tslib@2.8.1)(typescript@5.7.2)
+ autoprefixer:
+ specifier: ^10.4.20
+ version: 10.4.20(postcss@8.5.1)
+ eslint-plugin-solid:
+ specifier: ^0.14.5
+ version: 0.14.5(eslint@8.57.1)(typescript@5.7.2)
+ postcss:
+ specifier: ^8.4.47
+ version: 8.5.1
+ solid-js:
+ specifier: ^1.9.0
+ version: 1.9.5
+ tailwindcss:
+ specifier: ^3.4.14
+ version: 3.4.17(ts-node@10.9.2(@swc/core@1.10.15(@swc/helpers@0.5.15))(@types/node@22.13.1)(typescript@5.7.2))
+ vite:
+ specifier: ^5.4.10
+ version: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
+ vite-plugin-dts:
+ specifier: ^3.9.1
+ version: 3.9.1(@types/node@22.13.1)(rollup@4.34.6)(typescript@5.7.2)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1))
+ vite-plugin-solid:
+ specifier: ^2.11.0
+ version: 2.11.6(solid-js@1.9.5)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1))
+
+ packages/svelte: {}
+
packages/utils:
dependencies:
'@git-diff-view/core':
@@ -427,6 +477,25 @@ importers:
specifier: ^5.1.4
version: 5.1.4(typescript@5.3.3)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1))
+ ui/solid-example:
+ dependencies:
+ solid-js:
+ specifier: ^1.9.3
+ version: 1.9.5
+ devDependencies:
+ typescript:
+ specifier: 5.3.3
+ version: 5.3.3
+ vite:
+ specifier: ^5.4.10
+ version: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
+ vite-plugin-inspect:
+ specifier: ^0.8.9
+ version: 0.8.9(rollup@4.34.6)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1))
+ vite-plugin-solid:
+ specifier: ^2.11.0
+ version: 2.11.6(solid-js@1.9.5)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1))
+
ui/vue-example:
dependencies:
'@git-diff-view/vue':
@@ -508,6 +577,9 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
+ '@antfu/utils@0.7.10':
+ resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
+
'@babel/code-frame@7.26.2':
resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
engines: {node: '>=6.9.0'}
@@ -542,6 +614,10 @@ packages:
resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==}
engines: {node: '>=6.9.0'}
+ '@babel/helper-module-imports@7.18.6':
+ resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-module-imports@7.25.9':
resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
engines: {node: '>=6.9.0'}
@@ -886,6 +962,12 @@ packages:
'@floating-ui/utils@0.2.9':
resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
+ '@git-diff-view/core@0.0.25':
+ resolution: {integrity: sha512-ghsa3m0zbNgty5bCJDZs8eNjSAobdewaE5UghhRfhzwWcYZhddeAJNXV0byobc4jpzphEK/7OpA7/vERyTQm2w==}
+
+ '@git-diff-view/lowlight@0.0.25':
+ resolution: {integrity: sha512-pLjvg79jUJP0QJG6VLEzDdcJMvpaVJhrZ+kbGZmKgWky9adml8fxsjmSNtoDB3IbjTvGhFwHaDC760BdirgwZQ==}
+
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
@@ -1068,16 +1150,29 @@ packages:
'@marijn/find-cluster-break@1.0.2':
resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==}
+ '@microsoft/api-extractor-model@7.28.13':
+ resolution: {integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw==}
+
'@microsoft/api-extractor-model@7.30.3':
resolution: {integrity: sha512-yEAvq0F78MmStXdqz9TTT4PZ05Xu5R8nqgwI5xmUmQjWBQ9E6R2n8HB/iZMRciG4rf9iwI2mtuQwIzDXBvHn1w==}
+ '@microsoft/api-extractor@7.43.0':
+ resolution: {integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w==}
+ hasBin: true
+
'@microsoft/api-extractor@7.49.2':
resolution: {integrity: sha512-DI/WnvhbkHcucxxc4ys00ejCiViFls5EKPrEfe4NV3GGpVkoM5ZXF61HZNSGA8IG0oEV4KfTqIa59Rc3wdMopw==}
hasBin: true
+ '@microsoft/tsdoc-config@0.16.2':
+ resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+
'@microsoft/tsdoc-config@0.17.1':
resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==}
+ '@microsoft/tsdoc@0.14.2':
+ resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
+
'@microsoft/tsdoc@0.15.1':
resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==}
@@ -1244,6 +1339,19 @@ packages:
rollup:
optional: true
+ '@rollup/plugin-typescript@11.1.6':
+ resolution: {integrity: sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.14.0||^3.0.0||^4.0.0
+ tslib: '*'
+ typescript: '>=3.7.0'
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ tslib:
+ optional: true
+
'@rollup/plugin-typescript@12.1.2':
resolution: {integrity: sha512-cdtSp154H5sv637uMr1a8OTWB0L1SWDSm1rDGiyfcGcvQ6cuTs4MDk2BVEBGysUWago4OJN4EQZqOTl/QY3Jgg==}
engines: {node: '>=14.0.0'}
@@ -1367,6 +1475,14 @@ packages:
'@rushstack/eslint-patch@1.10.5':
resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==}
+ '@rushstack/node-core-library@4.0.2':
+ resolution: {integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg==}
+ peerDependencies:
+ '@types/node': '*'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@rushstack/node-core-library@5.11.0':
resolution: {integrity: sha512-I8+VzG9A0F3nH2rLpPd7hF8F7l5Xb7D+ldrWVZYegXM6CsKkvWc670RlgK3WX8/AseZfXA/vVrh0bpXe2Y2UDQ==}
peerDependencies:
@@ -1375,9 +1491,20 @@ packages:
'@types/node':
optional: true
+ '@rushstack/rig-package@0.5.2':
+ resolution: {integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA==}
+
'@rushstack/rig-package@0.5.3':
resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==}
+ '@rushstack/terminal@0.10.0':
+ resolution: {integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw==}
+ peerDependencies:
+ '@types/node': '*'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+
'@rushstack/terminal@0.14.6':
resolution: {integrity: sha512-4nMUy4h0u5PGXVG71kEA9uYI3l8GjVqewoHOFONiM6fuqS51ORdaJZ5ZXB2VZEGUyfg1TOTSy88MF2cdAy+lqA==}
peerDependencies:
@@ -1386,6 +1513,9 @@ packages:
'@types/node':
optional: true
+ '@rushstack/ts-command-line@4.19.1':
+ resolution: {integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg==}
+
'@rushstack/ts-command-line@4.23.4':
resolution: {integrity: sha512-pqmzDJCm0TS8VyeqnzcJ7ncwXgiLDQ6LVmXXfqv2nPL6VIz+UpyTpNVfZRJpyyJ+UDxqob1vIj2liaUfBjv8/A==}
@@ -1689,12 +1819,21 @@ packages:
vite: ^5.0.0 || ^6.0.0
vue: ^3.2.25
+ '@volar/language-core@1.11.1':
+ resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==}
+
'@volar/language-core@2.4.11':
resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==}
+ '@volar/source-map@1.11.1':
+ resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==}
+
'@volar/source-map@2.4.11':
resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==}
+ '@volar/typescript@1.11.1':
+ resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==}
+
'@volar/typescript@2.4.11':
resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==}
@@ -1729,6 +1868,14 @@ packages:
'@vue/compiler-vue2@2.7.16':
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
+ '@vue/language-core@1.8.27':
+ resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
'@vue/language-core@2.2.0':
resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==}
peerDependencies:
@@ -1924,6 +2071,16 @@ packages:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
+ babel-plugin-jsx-dom-expressions@0.39.7:
+ resolution: {integrity: sha512-8GzVmFla7jaTNWW8W+lTMl9YGva4/06CtwJjySnkYtt8G1v9weCzc2SuF1DfrudcCNb2Doetc1FRg33swBYZCA==}
+ peerDependencies:
+ '@babel/core': ^7.20.12
+
+ babel-preset-solid@1.9.5:
+ resolution: {integrity: sha512-85I3osODJ1LvZbv8wFozROV1vXq32BubqHXAGu73A//TRs3NLI1OFP83AQBUTSQHwgZQmARjHlJciym3we+V+w==}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
@@ -1965,6 +2122,10 @@ packages:
buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+ bundle-name@4.1.0:
+ resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+ engines: {node: '>=18'}
+
busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
@@ -2071,6 +2232,10 @@ packages:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
+ commander@9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+
commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
@@ -2085,6 +2250,9 @@ packages:
resolution: {integrity: sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==}
engines: {node: '>= 0.8.0'}
+ computeds@0.0.1:
+ resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==}
+
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
@@ -2266,10 +2434,22 @@ packages:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
+ default-browser-id@5.0.0:
+ resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
+ engines: {node: '>=18'}
+
+ default-browser@5.2.1:
+ resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
+ engines: {node: '>=18'}
+
define-data-property@1.1.4:
resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
engines: {node: '>= 0.4'}
+ define-lazy-prop@3.0.0:
+ resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+ engines: {node: '>=12'}
+
define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
@@ -2403,6 +2583,9 @@ packages:
error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
+ error-stack-parser-es@0.1.5:
+ resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==}
+
es-abstract@1.23.9:
resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==}
engines: {node: '>= 0.4'}
@@ -2563,6 +2746,13 @@ packages:
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
+ eslint-plugin-solid@0.14.5:
+ resolution: {integrity: sha512-nfuYK09ah5aJG/oEN6P1qziy1zLgW4PDWe75VNPi4CEFYk1x2AEqwFeQfEPR7gNn0F2jOeqKhx2E+5oNCOBYWQ==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
+ typescript: '>=4.8.4'
+
eslint-scope@7.2.2:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -2745,6 +2935,10 @@ packages:
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==}
engines: {node: '>=14.14'}
+ fs-extra@7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@@ -2904,6 +3098,9 @@ packages:
hookified@1.7.0:
resolution: {integrity: sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==}
+ html-entities@2.3.3:
+ resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==}
+
html-tags@3.3.1:
resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
engines: {node: '>=8'}
@@ -2978,6 +3175,9 @@ packages:
ini@1.3.8:
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
+ inline-style-parser@0.2.4:
+ resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==}
+
internal-slot@1.1.0:
resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
engines: {node: '>= 0.4'}
@@ -3034,6 +3234,11 @@ packages:
resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
engines: {node: '>= 0.4'}
+ is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -3054,6 +3259,15 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-html@2.0.0:
+ resolution: {integrity: sha512-S+OpgB5i7wzIue/YSE5hg0e5ZYfG3hhpNh9KGl6ayJ38p7ED6wxQLd1TV91xHpcTvw90KMJ9EwN3F/iNflHBVg==}
+ engines: {node: '>=8'}
+
+ is-inside-container@1.0.0:
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
+ hasBin: true
+
is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
@@ -3119,6 +3333,14 @@ packages:
resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
engines: {node: '>= 0.4'}
+ is-what@4.1.16:
+ resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==}
+ engines: {node: '>=12.13'}
+
+ is-wsl@3.1.0:
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+ engines: {node: '>=16'}
+
isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -3182,6 +3404,9 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ jsonfile@4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
@@ -3189,6 +3414,9 @@ packages:
resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
engines: {node: '>=4.0'}
+ kebab-case@1.0.2:
+ resolution: {integrity: sha512-7n6wXq4gNgBELfDCpzKc+mRrZFs7D+wgfF5WRFLNAr4DA/qtr9Js8uOAVAfHhuLMfAcQ0pRKqbpjx+TcJVdE1Q==}
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -3199,6 +3427,9 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
+ known-css-properties@0.30.0:
+ resolution: {integrity: sha512-VSWXYUnsPu9+WYKkfmJyLKtIvaRJi1kXUqVmBACORXZQxT5oZDsoZ2vQP+bQFDnWtpI/4eq3MLoRMjI2fnLzTQ==}
+
known-css-properties@0.35.0:
resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==}
@@ -3242,6 +3473,14 @@ packages:
lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+ lodash.get@4.4.2:
+ resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
+ deprecated: This package is deprecated. Use the optional chaining (?.) operator instead.
+
+ lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
+ deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead.
+
lodash.memoize@4.1.2:
resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
@@ -3315,6 +3554,10 @@ packages:
resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
engines: {node: '>=18'}
+ merge-anything@5.1.7:
+ resolution: {integrity: sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ==}
+ engines: {node: '>=12.13'}
+
merge-descriptors@2.0.0:
resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==}
engines: {node: '>=18'}
@@ -3395,6 +3638,9 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ muggle-string@0.3.1:
+ resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
+
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
@@ -3513,6 +3759,10 @@ packages:
oniguruma-to-es@2.3.0:
resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==}
+ open@10.1.1:
+ resolution: {integrity: sha512-zy1wx4+P3PfhXSEPJNtZmJXfhkkIaxU1VauWIrDZw1O7uJRDRJtKr9n3Ic4NgbA16KyOxOXO2ng9gYwCdXuSXA==}
+ engines: {node: '>=18'}
+
optionator@0.9.4:
resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
engines: {node: '>= 0.8.0'}
@@ -3558,6 +3808,9 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
+ parse5@7.2.1:
+ resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
+
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -3599,6 +3852,9 @@ packages:
pathe@2.0.2:
resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==}
+ perfect-debounce@1.0.0:
+ resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -4228,6 +4484,9 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ resolve@1.19.0:
+ resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==}
+
resolve@1.22.10:
resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
engines: {node: '>= 0.4'}
@@ -4264,6 +4523,10 @@ packages:
resolution: {integrity: sha512-dIM5zVoG8xhC6rnSN8uoAgFARwTE7BQs8YwHEvK0VCmfxQXMaOuA1uiR1IPwsW7JyK5iTt7Od/TC9StasS2NPQ==}
engines: {node: '>= 0.10'}
+ run-applescript@7.0.0:
+ resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
+ engines: {node: '>=18'}
+
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
@@ -4322,6 +4585,16 @@ packages:
serialize-javascript@6.0.2:
resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==}
+ seroval-plugins@1.2.1:
+ resolution: {integrity: sha512-H5vs53+39+x4Udwp4J5rNZfgFuA+Lt+uU+09w1gYBVWomtAl98B+E9w7yC05Xc81/HgLvJdlyqJbU0fJCKCmdw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ seroval: ^1.0
+
+ seroval@1.2.1:
+ resolution: {integrity: sha512-yBxFFs3zmkvKNmR0pFSU//rIsYjuX418TnlDmc2weaq5XFDqDIV/NOMPBoLrbxjLH42p4UzRuXHryXh9dYcKcw==}
+ engines: {node: '>=10'}
+
serve-static@2.1.0:
resolution: {integrity: sha512-A3We5UfEjG8Z7VkDv6uItWw6HY2bBSBJT1KtVESn6EOoOr2jAxNhxWCLY3jDE2WcuHXByWju74ck3ZgLwL8xmA==}
engines: {node: '>= 18'}
@@ -4398,6 +4671,14 @@ packages:
smob@1.5.0:
resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==}
+ solid-js@1.9.5:
+ resolution: {integrity: sha512-ogI3DaFcyn6UhYhrgcyRAMbu/buBJitYQASZz5WzfQVPP10RD2AbCoRZ517psnezrasyCbWzIxZ6kVqet768xw==}
+
+ solid-refresh@0.6.3:
+ resolution: {integrity: sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA==}
+ peerDependencies:
+ solid-js: ^1.3
+
sonic-boom@4.2.0:
resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==}
@@ -4506,6 +4787,9 @@ packages:
style-mod@4.1.2:
resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==}
+ style-to-object@1.0.8:
+ resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==}
+
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -4766,6 +5050,11 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ typescript@5.4.2:
+ resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
typescript@5.7.2:
resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==}
engines: {node: '>=14.17'}
@@ -4803,6 +5092,10 @@ packages:
unist-util-visit@5.0.0:
resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+ universalify@0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+
universalify@2.0.1:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
@@ -4882,6 +5175,13 @@ packages:
v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+ validate-html-nesting@1.2.2:
+ resolution: {integrity: sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg==}
+
+ validator@13.15.0:
+ resolution: {integrity: sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==}
+ engines: {node: '>= 0.10'}
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -4892,6 +5192,16 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+ vite-plugin-dts@3.9.1:
+ resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ vite: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
+
vite-plugin-dts@4.5.0:
resolution: {integrity: sha512-M1lrPTdi7gilLYRZoLmGYnl4fbPryVYsehPN9JgaxjJKTs8/f7tuAlvCCvOLB5gRDQTTKnptBcB0ACsaw2wNLw==}
peerDependencies:
@@ -4901,6 +5211,26 @@ packages:
vite:
optional: true
+ vite-plugin-inspect@0.8.9:
+ resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@nuxt/kit': '*'
+ vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1
+ peerDependenciesMeta:
+ '@nuxt/kit':
+ optional: true
+
+ vite-plugin-solid@2.11.6:
+ resolution: {integrity: sha512-Sl5CTqJTGyEeOsmdH6BOgalIZlwH3t4/y0RQuFLMGnvWMBvxb4+lq7x3BSiAw6etf0QexfNJW7HSOO/Qf7pigg==}
+ peerDependencies:
+ '@testing-library/jest-dom': ^5.16.6 || ^5.17.0 || ^6.*
+ solid-js: ^1.7.2
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
+ peerDependenciesMeta:
+ '@testing-library/jest-dom':
+ optional: true
+
vite-tsconfig-paths@5.1.4:
resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==}
peerDependencies:
@@ -4940,9 +5270,26 @@ packages:
terser:
optional: true
+ vitefu@1.0.6:
+ resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==}
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0
+ peerDependenciesMeta:
+ vite:
+ optional: true
+
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
+ vue-template-compiler@2.7.16:
+ resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==}
+
+ vue-tsc@1.8.27:
+ resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==}
+ hasBin: true
+ peerDependencies:
+ typescript: '*'
+
vue-tsc@2.2.0:
resolution: {integrity: sha512-gtmM1sUuJ8aSb0KoAFmK9yMxb8TxjewmxqTJ1aKphD5Cbu0rULFY6+UQT51zW7SpUcenfPUuflKyVwyx9Qdnxg==}
hasBin: true
@@ -5039,6 +5386,11 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
+ z-schema@5.0.5:
+ resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
+ engines: {node: '>=8.0.0'}
+ hasBin: true
+
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -5051,6 +5403,8 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
+ '@antfu/utils@0.7.10': {}
+
'@babel/code-frame@7.26.2':
dependencies:
'@babel/helper-validator-identifier': 7.25.9
@@ -5120,6 +5474,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-imports@7.18.6':
+ dependencies:
+ '@babel/types': 7.26.8
+
'@babel/helper-module-imports@7.25.9':
dependencies:
'@babel/traverse': 7.26.8
@@ -5481,6 +5839,19 @@ snapshots:
'@floating-ui/utils@0.2.9': {}
+ '@git-diff-view/core@0.0.25':
+ dependencies:
+ '@git-diff-view/lowlight': 0.0.25
+ fast-diff: 1.3.0
+ highlight.js: 11.11.1
+ lowlight: 3.3.0
+
+ '@git-diff-view/lowlight@0.0.25':
+ dependencies:
+ '@types/hast': 3.0.4
+ highlight.js: 11.11.1
+ lowlight: 3.3.0
+
'@humanwhocodes/config-array@0.13.0':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -5656,6 +6027,14 @@ snapshots:
'@marijn/find-cluster-break@1.0.2': {}
+ '@microsoft/api-extractor-model@7.28.13(@types/node@22.13.1)':
+ dependencies:
+ '@microsoft/tsdoc': 0.14.2
+ '@microsoft/tsdoc-config': 0.16.2
+ '@rushstack/node-core-library': 4.0.2(@types/node@22.13.1)
+ transitivePeerDependencies:
+ - '@types/node'
+
'@microsoft/api-extractor-model@7.30.3(@types/node@22.13.1)':
dependencies:
'@microsoft/tsdoc': 0.15.1
@@ -5664,6 +6043,24 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
+ '@microsoft/api-extractor@7.43.0(@types/node@22.13.1)':
+ dependencies:
+ '@microsoft/api-extractor-model': 7.28.13(@types/node@22.13.1)
+ '@microsoft/tsdoc': 0.14.2
+ '@microsoft/tsdoc-config': 0.16.2
+ '@rushstack/node-core-library': 4.0.2(@types/node@22.13.1)
+ '@rushstack/rig-package': 0.5.2
+ '@rushstack/terminal': 0.10.0(@types/node@22.13.1)
+ '@rushstack/ts-command-line': 4.19.1(@types/node@22.13.1)
+ lodash: 4.17.21
+ minimatch: 3.0.8
+ resolve: 1.22.10
+ semver: 7.5.4
+ source-map: 0.6.1
+ typescript: 5.4.2
+ transitivePeerDependencies:
+ - '@types/node'
+
'@microsoft/api-extractor@7.49.2(@types/node@22.13.1)':
dependencies:
'@microsoft/api-extractor-model': 7.30.3(@types/node@22.13.1)
@@ -5682,6 +6079,13 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
+ '@microsoft/tsdoc-config@0.16.2':
+ dependencies:
+ '@microsoft/tsdoc': 0.14.2
+ ajv: 6.12.6
+ jju: 1.4.0
+ resolve: 1.19.0
+
'@microsoft/tsdoc-config@0.17.1':
dependencies:
'@microsoft/tsdoc': 0.15.1
@@ -5689,6 +6093,8 @@ snapshots:
jju: 1.4.0
resolve: 1.22.10
+ '@microsoft/tsdoc@0.14.2': {}
+
'@microsoft/tsdoc@0.15.1': {}
'@my-react/react-dom@0.3.6(@my-react/react@0.3.6)':
@@ -5823,6 +6229,15 @@ snapshots:
optionalDependencies:
rollup: 4.34.6
+ '@rollup/plugin-typescript@11.1.6(rollup@4.34.6)(tslib@2.8.1)(typescript@5.7.2)':
+ dependencies:
+ '@rollup/pluginutils': 5.1.4(rollup@4.34.6)
+ resolve: 1.22.10
+ typescript: 5.7.2
+ optionalDependencies:
+ rollup: 4.34.6
+ tslib: 2.8.1
+
'@rollup/plugin-typescript@12.1.2(rollup@4.34.6)(tslib@2.8.1)(typescript@5.3.3)':
dependencies:
'@rollup/pluginutils': 5.1.4(rollup@4.34.6)
@@ -5901,6 +6316,17 @@ snapshots:
'@rushstack/eslint-patch@1.10.5': {}
+ '@rushstack/node-core-library@4.0.2(@types/node@22.13.1)':
+ dependencies:
+ fs-extra: 7.0.1
+ import-lazy: 4.0.0
+ jju: 1.4.0
+ resolve: 1.22.10
+ semver: 7.5.4
+ z-schema: 5.0.5
+ optionalDependencies:
+ '@types/node': 22.13.1
+
'@rushstack/node-core-library@5.11.0(@types/node@22.13.1)':
dependencies:
ajv: 8.13.0
@@ -5914,11 +6340,23 @@ snapshots:
optionalDependencies:
'@types/node': 22.13.1
+ '@rushstack/rig-package@0.5.2':
+ dependencies:
+ resolve: 1.22.10
+ strip-json-comments: 3.1.1
+
'@rushstack/rig-package@0.5.3':
dependencies:
resolve: 1.22.10
strip-json-comments: 3.1.1
+ '@rushstack/terminal@0.10.0(@types/node@22.13.1)':
+ dependencies:
+ '@rushstack/node-core-library': 4.0.2(@types/node@22.13.1)
+ supports-color: 8.1.1
+ optionalDependencies:
+ '@types/node': 22.13.1
+
'@rushstack/terminal@0.14.6(@types/node@22.13.1)':
dependencies:
'@rushstack/node-core-library': 5.11.0(@types/node@22.13.1)
@@ -5926,6 +6364,15 @@ snapshots:
optionalDependencies:
'@types/node': 22.13.1
+ '@rushstack/ts-command-line@4.19.1(@types/node@22.13.1)':
+ dependencies:
+ '@rushstack/terminal': 0.10.0(@types/node@22.13.1)
+ '@types/argparse': 1.0.38
+ argparse: 1.0.10
+ string-argv: 0.3.2
+ transitivePeerDependencies:
+ - '@types/node'
+
'@rushstack/ts-command-line@4.23.4(@types/node@22.13.1)':
dependencies:
'@rushstack/terminal': 0.14.6(@types/node@22.13.1)
@@ -6225,6 +6672,20 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/typescript-estree@8.23.0(typescript@5.7.2)':
+ dependencies:
+ '@typescript-eslint/types': 8.23.0
+ '@typescript-eslint/visitor-keys': 8.23.0
+ debug: 4.4.0
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.1
+ ts-api-utils: 2.0.1(typescript@5.7.2)
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/utils@8.23.0(eslint@8.57.1)(typescript@5.3.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
@@ -6236,6 +6697,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/utils@8.23.0(eslint@8.57.1)(typescript@5.7.2)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
+ '@typescript-eslint/scope-manager': 8.23.0
+ '@typescript-eslint/types': 8.23.0
+ '@typescript-eslint/typescript-estree': 8.23.0(typescript@5.7.2)
+ eslint: 8.57.1
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/visitor-keys@8.23.0':
dependencies:
'@typescript-eslint/types': 8.23.0
@@ -6274,12 +6746,25 @@ snapshots:
vite: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
vue: 3.5.13(typescript@5.7.2)
+ '@volar/language-core@1.11.1':
+ dependencies:
+ '@volar/source-map': 1.11.1
+
'@volar/language-core@2.4.11':
dependencies:
'@volar/source-map': 2.4.11
+ '@volar/source-map@1.11.1':
+ dependencies:
+ muggle-string: 0.3.1
+
'@volar/source-map@2.4.11': {}
+ '@volar/typescript@1.11.1':
+ dependencies:
+ '@volar/language-core': 1.11.1
+ path-browserify: 1.0.1
+
'@volar/typescript@2.4.11':
dependencies:
'@volar/language-core': 2.4.11
@@ -6351,6 +6836,20 @@ snapshots:
de-indent: 1.0.2
he: 1.2.0
+ '@vue/language-core@1.8.27(typescript@5.7.2)':
+ dependencies:
+ '@volar/language-core': 1.11.1
+ '@volar/source-map': 1.11.1
+ '@vue/compiler-dom': 3.5.13
+ '@vue/shared': 3.5.13
+ computeds: 0.0.1
+ minimatch: 9.0.5
+ muggle-string: 0.3.1
+ path-browserify: 1.0.1
+ vue-template-compiler: 2.7.16
+ optionalDependencies:
+ typescript: 5.7.2
+
'@vue/language-core@2.2.0(typescript@5.3.3)':
dependencies:
'@volar/language-core': 2.4.11
@@ -6595,6 +7094,21 @@ snapshots:
axobject-query@4.1.0: {}
+ babel-plugin-jsx-dom-expressions@0.39.7(@babel/core@7.26.8):
+ dependencies:
+ '@babel/core': 7.26.8
+ '@babel/helper-module-imports': 7.18.6
+ '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.8)
+ '@babel/types': 7.26.8
+ html-entities: 2.3.3
+ parse5: 7.2.1
+ validate-html-nesting: 1.2.2
+
+ babel-preset-solid@1.9.5(@babel/core@7.26.8):
+ dependencies:
+ '@babel/core': 7.26.8
+ babel-plugin-jsx-dom-expressions: 0.39.7(@babel/core@7.26.8)
+
balanced-match@1.0.2: {}
balanced-match@2.0.0: {}
@@ -6647,6 +7161,10 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
+ bundle-name@4.1.0:
+ dependencies:
+ run-applescript: 7.0.0
+
busboy@1.6.0:
dependencies:
streamsearch: 1.1.0
@@ -6757,6 +7275,9 @@ snapshots:
commander@7.2.0: {}
+ commander@9.5.0:
+ optional: true
+
commondir@1.0.1: {}
compare-versions@6.1.1: {}
@@ -6777,6 +7298,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ computeds@0.0.1: {}
+
concat-map@0.0.1: {}
concat-with-sourcemaps@1.1.0:
@@ -6951,12 +7474,21 @@ snapshots:
deepmerge@4.3.1: {}
+ default-browser-id@5.0.0: {}
+
+ default-browser@5.2.1:
+ dependencies:
+ bundle-name: 4.1.0
+ default-browser-id: 5.0.0
+
define-data-property@1.1.4:
dependencies:
es-define-property: 1.0.1
es-errors: 1.3.0
gopd: 1.2.0
+ define-lazy-prop@3.0.0: {}
+
define-properties@1.2.1:
dependencies:
define-data-property: 1.1.4
@@ -7068,6 +7600,8 @@ snapshots:
dependencies:
is-arrayish: 0.2.1
+ error-stack-parser-es@0.1.5: {}
+
es-abstract@1.23.9:
dependencies:
array-buffer-byte-length: 1.0.2
@@ -7364,6 +7898,19 @@ snapshots:
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
+ eslint-plugin-solid@0.14.5(eslint@8.57.1)(typescript@5.7.2):
+ dependencies:
+ '@typescript-eslint/utils': 8.23.0(eslint@8.57.1)(typescript@5.7.2)
+ eslint: 8.57.1
+ estraverse: 5.3.0
+ is-html: 2.0.0
+ kebab-case: 1.0.2
+ known-css-properties: 0.30.0
+ style-to-object: 1.0.8
+ typescript: 5.7.2
+ transitivePeerDependencies:
+ - supports-color
+
eslint-scope@7.2.2:
dependencies:
esrecurse: 4.3.0
@@ -7611,6 +8158,12 @@ snapshots:
jsonfile: 6.1.0
universalify: 2.0.1
+ fs-extra@7.0.1:
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@@ -7792,6 +8345,8 @@ snapshots:
hookified@1.7.0: {}
+ html-entities@2.3.3: {}
+
html-tags@3.3.1: {}
html-void-elements@3.0.0: {}
@@ -7852,6 +8407,8 @@ snapshots:
ini@1.3.8: {}
+ inline-style-parser@0.2.4: {}
+
internal-slot@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -7915,6 +8472,8 @@ snapshots:
call-bound: 1.0.3
has-tostringtag: 1.0.2
+ is-docker@3.0.0: {}
+
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -7934,6 +8493,14 @@ snapshots:
dependencies:
is-extglob: 2.1.1
+ is-html@2.0.0:
+ dependencies:
+ html-tags: 3.3.1
+
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
is-map@2.0.3: {}
is-module@1.0.0: {}
@@ -7994,6 +8561,12 @@ snapshots:
call-bound: 1.0.3
get-intrinsic: 1.2.7
+ is-what@4.1.16: {}
+
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
isarray@2.0.5: {}
isexe@2.0.0: {}
@@ -8045,6 +8618,10 @@ snapshots:
json5@2.2.3: {}
+ jsonfile@4.0.0:
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
jsonfile@6.1.0:
dependencies:
universalify: 2.0.1
@@ -8058,6 +8635,8 @@ snapshots:
object.assign: 4.1.7
object.values: 1.2.1
+ kebab-case@1.0.2: {}
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@@ -8068,6 +8647,8 @@ snapshots:
kind-of@6.0.3: {}
+ known-css-properties@0.30.0: {}
+
known-css-properties@0.35.0: {}
kolorist@1.8.0: {}
@@ -8102,6 +8683,10 @@ snapshots:
lodash.camelcase@4.3.0: {}
+ lodash.get@4.4.2: {}
+
+ lodash.isequal@4.5.0: {}
+
lodash.memoize@4.1.2: {}
lodash.merge@4.6.2: {}
@@ -8168,6 +8753,10 @@ snapshots:
meow@13.2.0: {}
+ merge-anything@5.1.7:
+ dependencies:
+ is-what: 4.1.16
+
merge-descriptors@2.0.0: {}
merge2@1.4.1: {}
@@ -8239,6 +8828,8 @@ snapshots:
ms@2.1.3: {}
+ muggle-string@0.3.1: {}
+
muggle-string@0.4.1: {}
mz@2.7.0:
@@ -8355,6 +8946,13 @@ snapshots:
regex: 5.1.1
regex-recursion: 5.1.1
+ open@10.1.1:
+ dependencies:
+ default-browser: 5.2.1
+ define-lazy-prop: 3.0.0
+ is-inside-container: 1.0.0
+ is-wsl: 3.1.0
+
optionator@0.9.4:
dependencies:
deep-is: 0.1.4
@@ -8406,6 +9004,10 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
+ parse5@7.2.1:
+ dependencies:
+ entities: 4.5.0
+
parseurl@1.3.3: {}
path-browserify@1.0.1: {}
@@ -8431,6 +9033,8 @@ snapshots:
pathe@2.0.2: {}
+ perfect-debounce@1.0.0: {}
+
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -9054,6 +9658,11 @@ snapshots:
resolve-pkg-maps@1.0.0: {}
+ resolve@1.19.0:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+
resolve@1.22.10:
dependencies:
is-core-module: 2.16.1
@@ -9130,6 +9739,8 @@ snapshots:
setprototypeof: 1.2.0
utils-merge: 1.0.1
+ run-applescript@7.0.0: {}
+
run-parallel@1.2.0:
dependencies:
queue-microtask: 1.2.3
@@ -9198,6 +9809,12 @@ snapshots:
dependencies:
randombytes: 2.1.0
+ seroval-plugins@1.2.1(seroval@1.2.1):
+ dependencies:
+ seroval: 1.2.1
+
+ seroval@1.2.1: {}
+
serve-static@2.1.0:
dependencies:
encodeurl: 2.0.0
@@ -9328,6 +9945,21 @@ snapshots:
smob@1.5.0: {}
+ solid-js@1.9.5:
+ dependencies:
+ csstype: 3.1.3
+ seroval: 1.2.1
+ seroval-plugins: 1.2.1(seroval@1.2.1)
+
+ solid-refresh@0.6.3(solid-js@1.9.5):
+ dependencies:
+ '@babel/generator': 7.26.8
+ '@babel/helper-module-imports': 7.25.9
+ '@babel/types': 7.26.8
+ solid-js: 1.9.5
+ transitivePeerDependencies:
+ - supports-color
+
sonic-boom@4.2.0:
dependencies:
atomic-sleep: 1.0.0
@@ -9451,6 +10083,10 @@ snapshots:
style-mod@4.1.2: {}
+ style-to-object@1.0.8:
+ dependencies:
+ inline-style-parser: 0.2.4
+
styled-jsx@5.1.6(react@19.0.0):
dependencies:
client-only: 0.0.1
@@ -9741,6 +10377,10 @@ snapshots:
dependencies:
typescript: 5.3.3
+ ts-api-utils@2.0.1(typescript@5.7.2):
+ dependencies:
+ typescript: 5.7.2
+
ts-interface-checker@0.1.13: {}
ts-node@10.9.2(@swc/core@1.10.15(@swc/helpers@0.5.15))(@types/node@20.17.17)(typescript@5.3.3):
@@ -9874,6 +10514,8 @@ snapshots:
typescript@5.3.3: {}
+ typescript@5.4.2: {}
+
typescript@5.7.2: {}
ufo@1.5.4: {}
@@ -9914,6 +10556,8 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
+ universalify@0.1.2: {}
+
universalify@2.0.1: {}
unpipe@1.0.0: {}
@@ -9972,6 +10616,10 @@ snapshots:
v8-compile-cache-lib@3.0.1: {}
+ validate-html-nesting@1.2.2: {}
+
+ validator@13.15.0: {}
+
vary@1.1.2: {}
vfile-message@4.0.2:
@@ -9984,6 +10632,23 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.2
+ vite-plugin-dts@3.9.1(@types/node@22.13.1)(rollup@4.34.6)(typescript@5.7.2)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)):
+ dependencies:
+ '@microsoft/api-extractor': 7.43.0(@types/node@22.13.1)
+ '@rollup/pluginutils': 5.1.4(rollup@4.34.6)
+ '@vue/language-core': 1.8.27(typescript@5.7.2)
+ debug: 4.4.0
+ kolorist: 1.8.0
+ magic-string: 0.30.17
+ typescript: 5.7.2
+ vue-tsc: 1.8.27(typescript@5.7.2)
+ optionalDependencies:
+ vite: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - rollup
+ - supports-color
+
vite-plugin-dts@4.5.0(@types/node@22.13.1)(rollup@4.34.6)(typescript@5.7.2)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)):
dependencies:
'@microsoft/api-extractor': 7.49.2(@types/node@22.13.1)
@@ -10003,6 +10668,35 @@ snapshots:
- rollup
- supports-color
+ vite-plugin-inspect@0.8.9(rollup@4.34.6)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)):
+ dependencies:
+ '@antfu/utils': 0.7.10
+ '@rollup/pluginutils': 5.1.4(rollup@4.34.6)
+ debug: 4.4.0
+ error-stack-parser-es: 0.1.5
+ fs-extra: 11.3.0
+ open: 10.1.1
+ perfect-debounce: 1.0.0
+ picocolors: 1.1.1
+ sirv: 3.0.0
+ vite: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+
+ vite-plugin-solid@2.11.6(solid-js@1.9.5)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)):
+ dependencies:
+ '@babel/core': 7.26.8
+ '@types/babel__core': 7.20.5
+ babel-preset-solid: 1.9.5(@babel/core@7.26.8)
+ merge-anything: 5.1.7
+ solid-js: 1.9.5
+ solid-refresh: 0.6.3(solid-js@1.9.5)
+ vite: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
+ vitefu: 1.0.6(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1))
+ transitivePeerDependencies:
+ - supports-color
+
vite-tsconfig-paths@5.1.4(typescript@5.3.3)(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)):
dependencies:
debug: 4.4.0
@@ -10025,8 +10719,24 @@ snapshots:
sugarss: 4.0.1(postcss@8.5.1)
terser: 5.38.1
+ vitefu@1.0.6(vite@5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)):
+ optionalDependencies:
+ vite: 5.4.14(@types/node@22.13.1)(sugarss@4.0.1(postcss@8.5.1))(terser@5.38.1)
+
vscode-uri@3.1.0: {}
+ vue-template-compiler@2.7.16:
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+
+ vue-tsc@1.8.27(typescript@5.7.2):
+ dependencies:
+ '@volar/typescript': 1.11.1
+ '@vue/language-core': 1.8.27(typescript@5.7.2)
+ semver: 7.7.1
+ typescript: 5.7.2
+
vue-tsc@2.2.0(typescript@5.3.3):
dependencies:
'@volar/typescript': 2.4.11
@@ -10156,4 +10866,12 @@ snapshots:
yocto-queue@0.1.0: {}
+ z-schema@5.0.5:
+ dependencies:
+ lodash.get: 4.4.2
+ lodash.isequal: 4.5.0
+ validator: 13.15.0
+ optionalDependencies:
+ commander: 9.5.0
+
zwitch@2.0.4: {}
diff --git a/ui/solid-example/.gitignore b/ui/solid-example/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/ui/solid-example/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/ui/solid-example/README.md b/ui/solid-example/README.md
new file mode 100644
index 0000000..167c567
--- /dev/null
+++ b/ui/solid-example/README.md
@@ -0,0 +1,28 @@
+## Usage
+
+```bash
+$ npm install # or pnpm install or yarn install
+```
+
+### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm run dev`
+
+Runs the app in the development mode.
+Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
+
+### `npm run build`
+
+Builds the app for production to the `dist` folder.
+It correctly bundles Solid in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.
+Your app is ready to be deployed!
+
+## Deployment
+
+Learn more about deploying your application with the [documentations](https://vite.dev/guide/static-deploy.html)
diff --git a/ui/solid-example/index.html b/ui/solid-example/index.html
new file mode 100644
index 0000000..7021737
--- /dev/null
+++ b/ui/solid-example/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Solid + TS
+
+
+
+
+
+
diff --git a/ui/solid-example/package.json b/ui/solid-example/package.json
new file mode 100644
index 0000000..a139a17
--- /dev/null
+++ b/ui/solid-example/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "solid-example",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "tsc -b && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "solid-js": "^1.9.3"
+ },
+ "devDependencies": {
+ "typescript": "5.3.3",
+ "vite": "^5.4.10",
+ "vite-plugin-inspect": "^0.8.9",
+ "vite-plugin-solid": "^2.11.0"
+ }
+}
diff --git a/ui/solid-example/public/vite.svg b/ui/solid-example/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/ui/solid-example/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/solid-example/src/App.css b/ui/solid-example/src/App.css
new file mode 100644
index 0000000..613607d
--- /dev/null
+++ b/ui/solid-example/src/App.css
@@ -0,0 +1,27 @@
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+.logo {
+ height: 6em;
+ padding: 1.5em;
+ will-change: filter;
+ transition: filter 300ms;
+}
+.logo:hover {
+ filter: drop-shadow(0 0 2em #646cffaa);
+}
+.logo.solid:hover {
+ filter: drop-shadow(0 0 2em #61dafbaa);
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
diff --git a/ui/solid-example/src/App.tsx b/ui/solid-example/src/App.tsx
new file mode 100644
index 0000000..1f906bf
--- /dev/null
+++ b/ui/solid-example/src/App.tsx
@@ -0,0 +1,38 @@
+import { createSignal } from 'solid-js'
+
+import solidLogo from './assets/solid.svg'
+
+// eslint-disable-next-line import/no-unresolved
+import viteLogo from '/vite.svg'
+import './App.css'
+
+function App() {
+ const [count, setCount] = createSignal(0)
+
+ return (
+ <>
+
+ Vite + Solid
+
+
+
+ Edit src/App.tsx
and save to test HMR
+
+
+
+ Click on the Vite and Solid logos to learn more
+
+ >
+ )
+}
+
+export default App
diff --git a/ui/solid-example/src/assets/solid.svg b/ui/solid-example/src/assets/solid.svg
new file mode 100644
index 0000000..025aa30
--- /dev/null
+++ b/ui/solid-example/src/assets/solid.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/ui/solid-example/src/index.css b/ui/solid-example/src/index.css
new file mode 100644
index 0000000..6119ad9
--- /dev/null
+++ b/ui/solid-example/src/index.css
@@ -0,0 +1,68 @@
+:root {
+ font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: rgba(255, 255, 255, 0.87);
+ background-color: #242424;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+a {
+ font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit;
+}
+a:hover {
+ color: #535bf2;
+}
+
+body {
+ margin: 0;
+ display: flex;
+ place-items: center;
+ min-width: 320px;
+ min-height: 100vh;
+}
+
+h1 {
+ font-size: 3.2em;
+ line-height: 1.1;
+}
+
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.6em 1.2em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ background-color: #1a1a1a;
+ cursor: pointer;
+ transition: border-color 0.25s;
+}
+button:hover {
+ border-color: #646cff;
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto -webkit-focus-ring-color;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color: #213547;
+ background-color: #ffffff;
+ }
+ a:hover {
+ color: #747bff;
+ }
+ button {
+ background-color: #f9f9f9;
+ }
+}
diff --git a/ui/solid-example/src/index.tsx b/ui/solid-example/src/index.tsx
new file mode 100644
index 0000000..0e0597e
--- /dev/null
+++ b/ui/solid-example/src/index.tsx
@@ -0,0 +1,9 @@
+/* @refresh reload */
+import { render } from 'solid-js/web'
+
+import './index.css'
+import App from './App.tsx'
+
+const root = document.getElementById('root')
+
+render(() => , root!)
diff --git a/ui/solid-example/src/vite-env.d.ts b/ui/solid-example/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/ui/solid-example/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/ui/solid-example/tsconfig.app.json b/ui/solid-example/tsconfig.app.json
new file mode 100644
index 0000000..542583a
--- /dev/null
+++ b/ui/solid-example/tsconfig.app.json
@@ -0,0 +1,27 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
+ "target": "ES2020",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+ "jsx": "preserve",
+ "jsxImportSource": "solid-js",
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["src"]
+}
diff --git a/ui/solid-example/tsconfig.json b/ui/solid-example/tsconfig.json
new file mode 100644
index 0000000..1ffef60
--- /dev/null
+++ b/ui/solid-example/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./tsconfig.app.json" },
+ { "path": "./tsconfig.node.json" }
+ ]
+}
diff --git a/ui/solid-example/tsconfig.node.json b/ui/solid-example/tsconfig.node.json
new file mode 100644
index 0000000..db0becc
--- /dev/null
+++ b/ui/solid-example/tsconfig.node.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
+ "target": "ES2022",
+ "lib": ["ES2023"],
+ "module": "ESNext",
+ "skipLibCheck": true,
+
+ /* Bundler mode */
+ "moduleResolution": "bundler",
+ "allowImportingTsExtensions": true,
+ "isolatedModules": true,
+ "moduleDetection": "force",
+ "noEmit": true,
+
+ /* Linting */
+ "strict": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "noFallthroughCasesInSwitch": true,
+ "noUncheckedSideEffectImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/ui/solid-example/vite.config.ts b/ui/solid-example/vite.config.ts
new file mode 100644
index 0000000..5f1ca99
--- /dev/null
+++ b/ui/solid-example/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from "vite";
+import inspect from "vite-plugin-inspect";
+import solid from "vite-plugin-solid";
+
+export default defineConfig({
+ plugins: [solid(), inspect()],
+});