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()], +});