diff --git a/package.json b/package.json index 4e1c5b0..bba548b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "devDependencies": { "husky": "^8.0.3", - "lint-staged": "^14.0.0", + "lint-staged": "^14.0.1", "prettier": "3.0.0" }, "lint-staged": { diff --git a/packages/browser-tailwind/package.json b/packages/browser-tailwind/package.json index a0431c9..5df8bc2 100644 --- a/packages/browser-tailwind/package.json +++ b/packages/browser-tailwind/package.json @@ -20,7 +20,7 @@ "devDependencies": { "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", - "typescript": "^5.1.6", + "typescript": "^5.4.2", "vite": "^4.4.8" }, "dependencies": { diff --git a/packages/compiler/package.json b/packages/compiler/package.json index 8b39d2b..05fbf30 100644 --- a/packages/compiler/package.json +++ b/packages/compiler/package.json @@ -12,7 +12,7 @@ "check": "tsc --noEmit" }, "devDependencies": { - "typescript": "^5.1.6" + "typescript": "^5.4.2" }, "dependencies": { "prettier": "3.0.0" diff --git a/packages/compiler/src/compiler.ts b/packages/compiler/src/compiler.ts index 13cdd94..29acdd9 100644 --- a/packages/compiler/src/compiler.ts +++ b/packages/compiler/src/compiler.ts @@ -14,7 +14,7 @@ export class Compiler { const code = ` import QuasiRuntime, * as $quasi from "${this.runtimeModuleURL}"; -const { app, defineView } = $quasi.refina; +const { $app, $view } = $quasi.refina; ${this.input.views .map((v) => { diff --git a/packages/compiler/src/viewCompiler.ts b/packages/compiler/src/viewCompiler.ts index 45f1b47..bdd4487 100644 --- a/packages/compiler/src/viewCompiler.ts +++ b/packages/compiler/src/viewCompiler.ts @@ -97,8 +97,8 @@ ${linesDef} ${impsDef} const ${this.view.name}_view = ${ - this.view.name === "app" ? "app.use(QuasiRuntime)" : "defineView" - }(_ => { + this.view.name === "app" ? "$app({plugins:[QuasiRuntime]}," : "$view(" + }_ => { ${mainFunc} }); `; diff --git a/packages/mdui2-dts/package.json b/packages/mdui2-dts/package.json index db11ad7..b0f340d 100644 --- a/packages/mdui2-dts/package.json +++ b/packages/mdui2-dts/package.json @@ -18,7 +18,7 @@ "devDependencies": { "@microsoft/api-extractor": "^7.38.3", "mdui": "^2.0.2", - "typescript": "^5.0.2", + "typescript": "^5.4.2", "vite": "^4.4.8" } } diff --git a/packages/monaco-editor/package.json b/packages/monaco-editor/package.json index bb6345d..49fec8b 100644 --- a/packages/monaco-editor/package.json +++ b/packages/monaco-editor/package.json @@ -9,8 +9,8 @@ "check": "tsc --noEmit" }, "devDependencies": { - "@refina/tsconfig": "link:..\\..\\..\\refina\\packages\\tsconfig", - "typescript": "^5.0.2" + "@refina/tsconfig": "^0.6.0", + "typescript": "^5.4.2" }, "main": "./src/index.ts", "types": "./src/index.ts", @@ -22,6 +22,6 @@ }, "dependencies": { "monaco-editor": "^0.44.0", - "refina": "link:..\\..\\..\\refina\\packages\\core" + "refina": "^0.6.1" } } diff --git a/packages/monaco-editor/src/component.r.ts b/packages/monaco-editor/src/component.r.ts index 6f77656..28d5fba 100644 --- a/packages/monaco-editor/src/component.r.ts +++ b/packages/monaco-editor/src/component.r.ts @@ -1,49 +1,36 @@ import * as monaco from "monaco-editor"; -import { HTMLElementComponent, ref } from "refina"; -import Monaco from "./plugin"; +import { HTMLElementComponent, TriggerComponent, _, ref } from "refina"; -declare module "refina" { - interface Components { - monacoEditor( - initialValue: string, - language: string, - options?: Omit< - monaco.editor.IStandaloneEditorConstructionOptions, - "value" | "language" - >, - ): this is { - $ev: string; - }; - } -} -Monaco.triggerComponents.monacoEditor = function (_) { - const containerRef = ref>(); - let editor: monaco.editor.IStandaloneCodeEditor | null = null; - return ( +export class MonacoEditor extends TriggerComponent { + containerRef = ref>(); + editor: monaco.editor.IStandaloneCodeEditor | null = null; + $main( initialValue: string, language: string, - options: Omit< + options?: Omit< monaco.editor.IStandaloneEditorConstructionOptions, "value" | "language" - > = {}, - ) => { + >, + ): this is { + $ev: string; + } { _.$css`height:100%`; - _.$ref(containerRef) && _._div(); + _.$ref(this.containerRef) && _._div(); if (_.$updateContext) { _.$app.pushOnetimeHook("afterModifyDOM", () => { setTimeout(() => { - if (!editor) { - const node = containerRef.current!.node; + if (!this.editor) { + const node = this.containerRef.current!.node; - editor = monaco.editor.create(node, { + this.editor = monaco.editor.create(node, { ...options, value: initialValue, language, }); - editor.getModel()?.onDidChangeContent(ev => { - const newValue = editor!.getValue(); + this.editor.getModel()?.onDidChangeContent(ev => { + const newValue = this.editor!.getValue(); this.$fire(newValue); }); @@ -52,13 +39,13 @@ Monaco.triggerComponents.monacoEditor = function (_) { if (_.$updateContext) window.addEventListener("resize", () => { // make editor as small as possible - editor!.layout({ width: 0, height: 0 }); + this.editor!.layout({ width: 0, height: 0 }); // wait for next frame to ensure last layout finished window.requestAnimationFrame(() => { // get the parent dimensions and re-layout the editor const rect = parent.getBoundingClientRect(); - editor!.layout({ + this.editor!.layout({ width: rect.width, height: rect.height, }); @@ -68,5 +55,6 @@ Monaco.triggerComponents.monacoEditor = function (_) { }); }); } - }; -}; + return this.$fired; + } +} diff --git a/packages/monaco-editor/src/index.ts b/packages/monaco-editor/src/index.ts index 2a2649d..8646b09 100644 --- a/packages/monaco-editor/src/index.ts +++ b/packages/monaco-editor/src/index.ts @@ -1,7 +1,13 @@ import * as monaco from "monaco-editor"; -export { monaco }; +import { Plugin } from "refina"; +import { MonacoEditor } from "./component.r"; -import Monaco from "./plugin"; -export default Monaco; +export default { + name: "monaco-editor", + components: { + monacoEditor: MonacoEditor, + }, +} satisfies Plugin; export * from "./component.r"; +export { monaco }; diff --git a/packages/monaco-editor/src/plugin.ts b/packages/monaco-editor/src/plugin.ts deleted file mode 100644 index c20a89c..0000000 --- a/packages/monaco-editor/src/plugin.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Plugin } from "refina"; - -const Monaco = new Plugin("monaco-editor"); -export default Monaco; diff --git a/packages/northstar/index.html b/packages/northstar/index.html index b46c2f9..98c6141 100644 --- a/packages/northstar/index.html +++ b/packages/northstar/index.html @@ -30,6 +30,6 @@ -
+
diff --git a/packages/northstar/package.json b/packages/northstar/package.json index 23aa1c8..2127a2b 100644 --- a/packages/northstar/package.json +++ b/packages/northstar/package.json @@ -11,17 +11,18 @@ }, "packageManager": "pnpm@8.10.2", "devDependencies": { - "@refina/transformer": "link:..\\..\\..\\refina\\packages\\transformer", - "@refina/tsconfig": "link:..\\..\\..\\refina\\packages\\tsconfig", - "@types/wicg-file-system-access": "^2023.10.2", - "autoprefixer": "^10.4.15", - "postcss": "^8.4.27", - "tailwindcss": "^3.3.3", - "typescript": "^5.1.6", - "vite": "^4.4.8", + "@refina/transformer": "^0.6.0", + "@refina/tsconfig": "^0.6.0", + "@types/wicg-file-system-access": "^2023.10.5", + "autoprefixer": "^10.4.18", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", + "typescript": "^5.4.2", + "vite": "^4.5.2", + "vite-plugin-inspect": "^0.8.3", "vite-plugin-monaco-editor": "^1.1.0", - "vite-plugin-refina": "link:..\\..\\..\\refina\\packages\\vite-plugin", - "vite-plugin-static-copy": "^0.17.0" + "vite-plugin-refina": "^0.6.0", + "vite-plugin-static-copy": "^0.17.1" }, "dependencies": { "@quasi-dev/browser-tailwind": "workspace:^", @@ -30,12 +31,12 @@ "@quasi-dev/monaco-editor": "workspace:^", "@quasi-dev/runtime": "workspace:^", "@quasi-dev/visual-flow": "workspace:^", - "@refina/basic-components": "link:..\\..\\..\\refina\\packages\\basic-components", - "@refina/fluentui": "link:..\\..\\..\\refina\\packages\\fluentui", - "@refina/fluentui-icons": "link:..\\..\\..\\refina\\packages\\fluentui-icons", - "@refina/griffel": "link:..\\..\\..\\refina\\packages\\griffel", - "modern-screenshot": "^4.4.33", + "@refina/basic-components": "^0.6.0", + "@refina/fluentui": "^0.6.1", + "@refina/fluentui-icons": "^0.6.1", + "@refina/griffel": "^0.6.0", + "modern-screenshot": "^4.4.38", "prettier": "3.0.0", - "refina": "link:..\\..\\..\\refina\\packages\\core" + "refina": "^0.6.1" } } diff --git a/packages/northstar/src/app.r.ts b/packages/northstar/src/app.r.ts index 5721452..3b3a433 100644 --- a/packages/northstar/src/app.r.ts +++ b/packages/northstar/src/app.r.ts @@ -2,7 +2,7 @@ import Monaco from "@quasi-dev/monaco-editor"; import Vf from "@quasi-dev/visual-flow"; import Basics from "@refina/basic-components"; import FluentUI from "@refina/fluentui"; -import { app } from "refina"; +import { $app } from "refina"; import { currentProject, loadAutoSaved, @@ -27,91 +27,105 @@ loadAutoSaved(); setAutoSaveInterval(); initMonaco(); -app.use(FluentUI).use(Vf).use(Basics).use(Monaco)(_ => { - if (_.$updateContext) { - _.$root.addCls(`fixed top-0 left-0 right-0 bottom-0`); +declare module "refina" { + interface Plugins { + VisualFlow: typeof Vf; + Basics: typeof Basics; + FluentUI: ReturnType; + Monaco: typeof Monaco; } +} - _.documentTitle("Quasi Studio"); +export const app = $app( + { + plugins: [FluentUI(), Vf, Basics, Monaco], + }, + _ => { + if (_.$updateContext) { + _.$root.addCls(`fixed top-0 left-0 right-0 bottom-0`); + } - // toolbar - _.$cls`absolute left-0 top-0 w-full h-8 bg-gray-100 flex select-none z-[1000] border-gray-400 border-b`; - _.div(toolbarView); + _.documentTitle("Quasi Studio"); - if (previewMode.value) { - _.$cls`absolute left-0 bottom-0 right-0 top-8 ${ - previewMode.value ? "" : "hidden" - }`; - _.div(previewView); - } + // toolbar + _.$cls`absolute left-0 top-0 w-full h-8 bg-gray-100 flex select-none z-[1000] border-gray-400 border-b`; + _.div(toolbarView); - if (!previewMode.value) - _.div(_ => { - const hasSelectedBlock = - currentProject.activeGraph.selectedBlocks.size > 0; + if (previewMode.value) { + _.$cls`absolute left-0 bottom-0 right-0 top-8 ${ + previewMode.value ? "" : "hidden" + }`; + _.div(previewView); + } - _.$cls`absolute left-0 top-8 w-80 bottom-0 - bg-gray-200 select-none z-[1000] border-r border-gray-400 flex flex-col`; + if (!previewMode.value) _.div(_ => { - _.$cls`flex items-center w-full bg-gray-300 pl-2 leading-7 font-bold`; - _.div("BLOCKS"); - - _.$cls`overflow-y-scroll flex-grow w-full pb-16`; - _.div(_ => _.embed(blocksView)); - - if (hasSelectedBlock) { - // _.$cls`absolute left-0 bottom-0 w-80 h-2/5 border-t-4 border-gray-400 border-r border-gray-400 z-[1000]`; - // _.div(_ => { - _.$cls`flex items-center w-full bg-gray-300 pl-2 leading-7`; - _.div(_ => { - _.$cls`font-bold`; - _.span("PROPERTIES"); - - // _.$cls`text-xs pl-3`; - // _.span( - // [...currentProject.activeGraph.selectedBlocks] - // .filter(isComponentBlock) - // .map(b => b.info.name) - // .join(" "), - // ); - }); + const hasSelectedBlock = + currentProject.activeGraph.selectedBlocks.size > 0; - _.$cls`overflow-y-scroll h-min min-h-[60px] bg-gray-200 grid grid-cols-3 pb-8`; - _.div(propertiesView); - // }); - } - }); + _.$cls`absolute left-0 top-8 w-80 bottom-0 + bg-gray-200 select-none z-[1000] border-r border-gray-400 flex flex-col`; + _.div(_ => { + _.$cls`flex items-center w-full bg-gray-300 pl-2 leading-7 font-bold`; + _.div("BLOCKS"); - _.$cls`absolute left-80 top-8 right-0 bottom-0`; - _.$ref(graphElRef) && - _._div({}, _ => _.vfGraph(currentProject.activeGraph)); - - if (_.$updateContext) - _.$window.addEventListener("keydown", ev => { - if (ev.ctrlKey) { - if (ev.key === "z" && currentProject.activeGraph.canUndo) { - currentProject.activeGraph.undo(); - _.$update(); - } else if (ev.key === "y" && currentProject.activeGraph.canRedo) { - currentProject.activeGraph.redo(); - _.$update(); - } else if (ev.key === "s") { - saveAs(); - } else if (ev.key === "d" && hasBlocksToDuplicate()) { - duplicateBlocks(); - _.$update(); - } - ev.preventDefault(); - } else if (ev.key === "Delete") { - if (hasBlocksToRemove()) { - removeBlocks(); - _.$update(); - } - ev.preventDefault(); + _.$cls`overflow-y-scroll flex-grow w-full pb-16`; + _.div(blocksView); + + if (hasSelectedBlock) { + // _.$cls`absolute left-0 bottom-0 w-80 h-2/5 border-t-4 border-gray-400 border-r border-gray-400 z-[1000]`; + // _.div(_ => { + _.$cls`flex items-center w-full bg-gray-300 pl-2 leading-7`; + _.div(_ => { + _.$cls`font-bold`; + _.span("PROPERTIES"); + + // _.$cls`text-xs pl-3`; + // _.span( + // [...currentProject.activeGraph.selectedBlocks] + // .filter(isComponentBlock) + // .map(b => b.info.name) + // .join(" "), + // ); + }); + + _.$cls`overflow-y-scroll h-min min-h-[60px] bg-gray-200 grid grid-cols-3 pb-8`; + _.div(propertiesView); + // }); } }); - // a workaround to update the position of the graph - setTimeout(() => currentProject.activeGraph.updatePosition()); - }); -}); + _.$cls`absolute left-80 top-8 right-0 bottom-0`; + _.$ref(graphElRef) && + _._div({}, _ => _.vfGraph(currentProject.activeGraph)); + + if (_.$updateContext) + _.$window.addEventListener("keydown", (ev: KeyboardEvent) => { + if (ev.ctrlKey) { + if (ev.key === "z" && currentProject.activeGraph.canUndo) { + currentProject.activeGraph.undo(); + app.update(); + } else if (ev.key === "y" && currentProject.activeGraph.canRedo) { + currentProject.activeGraph.redo(); + app.update(); + } else if (ev.key === "s") { + saveAs(); + } else if (ev.key === "d" && hasBlocksToDuplicate()) { + duplicateBlocks(); + app.update(); + } + ev.preventDefault(); + } else if (ev.key === "Delete") { + if (hasBlocksToRemove()) { + removeBlocks(); + app.update(); + } + ev.preventDefault(); + } + }); + + // a workaround to update the position of the graph + setTimeout(() => currentProject.activeGraph.updatePosition()); + }); + }, +); diff --git a/packages/northstar/src/blocks/component/block.ts b/packages/northstar/src/blocks/component/block.ts index b43ec44..b453069 100644 --- a/packages/northstar/src/blocks/component/block.ts +++ b/packages/northstar/src/blocks/component/block.ts @@ -16,8 +16,7 @@ import { UseSocket, blockCtors, } from "@quasi-dev/visual-flow"; -import "@refina/fluentui"; -import { d } from "refina"; +import { model } from "refina"; import { PropsData } from "../../utils/props"; import { getContent } from "./getContent.r"; import { getProps } from "./getProps"; @@ -61,7 +60,7 @@ export class ComponentBlock extends RectBlock { ); } - primaryValue = d(""); + primaryValue = model(""); get primaryFilled() { return this.primaryValue.value !== ""; } diff --git a/packages/northstar/src/blocks/component/getContent.r.ts b/packages/northstar/src/blocks/component/getContent.r.ts index 19a31b7..0e1694a 100644 --- a/packages/northstar/src/blocks/component/getContent.r.ts +++ b/packages/northstar/src/blocks/component/getContent.r.ts @@ -1,6 +1,7 @@ -import { Context, MainElRef, ref } from "refina"; +import { Context, PrimaryElRef, ref } from "refina"; import { currentProject } from "../../project"; import { ComponentBlock } from "./block"; +import { app } from "../../app.r"; export function getContent(block: ComponentBlock) { const title = (_: Context) => { @@ -24,7 +25,7 @@ export function getContent(block: ComponentBlock) { onkeydown: propagationStopper, }, _ => { - const inputRef: MainElRef = ref(); + const inputRef: PrimaryElRef = ref(); _.$css`font-family: Consolas; max-width: 108px; padding-left:4px`; _.$ref(inputRef) && _.fUnderlineInput( @@ -34,7 +35,7 @@ export function getContent(block: ComponentBlock) { ); if (_.$updateContext) { setTimeout(() => { - const inputEl = inputRef.current!.$mainEl!.node.firstChild as + const inputEl = inputRef.current!.$primaryEl!.node.firstChild as | HTMLInputElement | undefined; if (!inputEl) return; @@ -43,7 +44,7 @@ export function getContent(block: ComponentBlock) { }; inputEl.onfocus = () => { currentProject.activeGraph.addSelectedBlock(block, false); - _.$update(); + app.update(); }; }, 5); } diff --git a/packages/northstar/src/blocks/special/FuncBlockBase.r.ts b/packages/northstar/src/blocks/special/FuncBlockBase.r.ts index 4df8a2b..9b71ff5 100644 --- a/packages/northstar/src/blocks/special/FuncBlockBase.r.ts +++ b/packages/northstar/src/blocks/special/FuncBlockBase.r.ts @@ -19,8 +19,8 @@ import { directionMap, directionNameMap, } from "@quasi-dev/visual-flow"; -import "@refina/fluentui-icons/expandUpLeft.r.ts"; -import { Context, MainElRef, bySelf, d, ref } from "refina"; +import { FiExpandUpLeft20Regular } from "@refina/fluentui-icons/expandUpLeft"; +import { Context, PrimaryElRef, bySelf, model, ref } from "refina"; import { setExtraLib } from "../../utils"; import { PropData, PropsData } from "../../utils/props"; import { multiOutSocketToOutput } from "../../utils/toOutput"; @@ -49,7 +49,7 @@ export abstract class FuncBlockBase extends RectBlock implements SpecialBlock { abstract label: string; placeholder = ""; - inputValue = d(""); + inputValue = model(""); slotsDirection = Direction.TOP; outputDirection = Direction.BOTTOM; @@ -65,7 +65,7 @@ export abstract class FuncBlockBase extends RectBlock implements SpecialBlock { onkeydown: ev => ev.stopPropagation(), }, _ => { - const inputRef: MainElRef = ref(); + const inputRef: PrimaryElRef = ref(); _.$css`--fontFamilyBase: Consolas,'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif`; _.$ref(inputRef) && (this.useTextarea @@ -75,7 +75,7 @@ export abstract class FuncBlockBase extends RectBlock implements SpecialBlock { _.fUnderlineInput(this.inputValue, false, this.placeholder)); if (_.$updateContext) { setTimeout(() => { - const inputEl = inputRef.current!.$mainEl!.node.firstChild as + const inputEl = inputRef.current!.$primaryEl!.node.firstChild as | HTMLElement | undefined; if (!inputEl) return; @@ -90,9 +90,9 @@ export abstract class FuncBlockBase extends RectBlock implements SpecialBlock { _.$cls`monaco-dialog`; _.fDialog( - (_, open) => { + open => { _.$cls`absolute right-0 top-0 text-gray-600`; - _.button(_ => _.fiExpandUpLeft20Regular()) && open(); + _.button(_ => _(FiExpandUpLeft20Regular)()) && open(); }, _ => { _.span(this.label); @@ -118,7 +118,7 @@ export abstract class FuncBlockBase extends RectBlock implements SpecialBlock { ); }); }, - _ => { + () => { const propagationStopper = (ev: Event) => ev.stopPropagation(); _.$cls`h-[80vh] overflow-visible`; _._div( diff --git a/packages/northstar/src/views/blocks.r.ts b/packages/northstar/src/views/blocks.r.ts index a6776f0..6e0d48a 100644 --- a/packages/northstar/src/views/blocks.r.ts +++ b/packages/northstar/src/views/blocks.r.ts @@ -1,12 +1,13 @@ import { componentInfoArray } from "@quasi-dev/runtime"; -import "@refina/fluentui-icons/edit.r.ts"; -import { byIndex, defineView } from "refina"; +import { FiEdit20Filled, FiEdit20Regular } from "@refina/fluentui-icons/edit"; +import { byIndex, $view } from "refina"; import { ComponentBlock } from "../blocks/component/block"; import special from "../blocks/special"; import { ViewBlock } from "../blocks/special/view.r"; import { currentProject } from "../project"; +import { app } from "../app.r"; -export default defineView(_ => { +export default $view(_ => { if (_.fAccordion("Special", false, true)) { _.$cls`grid grid-cols-3 justify-items-center`; _.div(_ => { @@ -80,7 +81,7 @@ export default defineView(_ => { _.span(view.name); if (editingThis) { _.$cls`float-right mr-1 text-gray-500`; - _.div(_ => _.fiEdit20Filled()); + _.div(_ => _(FiEdit20Filled)()); } else { _.$cls`float-right mr-1 hover:bg-gray-300`; _._div( @@ -88,10 +89,10 @@ export default defineView(_ => { onmousedown: ev => ev.stopPropagation(), onclick: () => { currentProject.setActiveView(id); - _.$update(); + app.update(); }, }, - _ => _.fiEdit20Regular(), + _ => _(FiEdit20Regular)(), ); } }); @@ -110,7 +111,7 @@ export default defineView(_ => { onclick: () => { const id = currentProject.addView(); currentProject.setActiveView(id); - _.$update(); + app.update(); }, }, _ => { diff --git a/packages/northstar/src/views/iframe/index.html b/packages/northstar/src/views/iframe/index.html index 45ff609..6fc730e 100644 --- a/packages/northstar/src/views/iframe/index.html +++ b/packages/northstar/src/views/iframe/index.html @@ -17,6 +17,6 @@ -
+
diff --git a/packages/northstar/src/views/preview.r.ts b/packages/northstar/src/views/preview.r.ts index 2dc9c7c..4bb3824 100644 --- a/packages/northstar/src/views/preview.r.ts +++ b/packages/northstar/src/views/preview.r.ts @@ -1,17 +1,16 @@ /// -import { HTMLElementComponent, defineView, ref } from "refina"; - -import runtimeURL from "@quasi-dev/runtime/src/index.ts?url"; -import mduiStyleContent from "@quasi-dev/runtime/styles.css?inline"; // Used in production -import mduiStyleUrl from "@quasi-dev/runtime/styles.css?url"; // Used in development -import iframeURL from "./iframe/index.html?url"; import { compileTailwindCSS } from "@quasi-dev/browser-tailwind"; import { Compiler } from "@quasi-dev/compiler"; -import { RefinaTransformer } from "@refina/transformer"; +import { transformFragment } from "@refina/transformer"; +import { $view, HTMLElementComponent, ref } from "refina"; +import { app } from "../app.r"; import { currentProject } from "../project"; -const transformer = new RefinaTransformer(); +import runtimeURL from "@quasi-dev/runtime/src/index.ts?url"; +import mduiStyleContent from "@quasi-dev/runtime/styles.css?inline"; // Used in production +import mduiStyleUrl from "@quasi-dev/runtime/styles.css?url"; // Used in development +import iframeURL from "./iframe/index.html?url"; let code = { js: "", @@ -27,7 +26,7 @@ export async function startPreview() { compiler.runtimeModuleURL = runtimeURL; code.js = "window.__QUASI_PREVIEW__ = true; \n\n" + - transformer.transform("$", await compiler.compile()); + transformFragment(await compiler.compile(), idx => idx.toString(36)); code.css = ( await compileTailwindCSS( `@tailwind base; @@ -42,7 +41,7 @@ export async function startPreview() { errorMsg = ""; } -export default defineView(_ => { +export default $view(_ => { if (errorMsg.length > 0) { _.$cls`text-red-900 border border-red-500`; _._pre({}, errorMsg); @@ -66,7 +65,7 @@ export default defineView(_ => { iframeNode.onload = () => { if (errorMsg !== "") { errorMsg = ""; - _.$update(); + app.update(); } iframeNode.contentWindow!.onerror = ( @@ -85,14 +84,14 @@ lineno: ${lineno} colno: ${colno} error: ${error}`; - _.$update(); + app.update(); errorReported = true; }; //@ts-ignore iframeNode.contentWindow!.console.error = (...args: any[]) => { errorMsg += "\nCONSOLE ERROR: \n" + args.join(" "); console.error(...args); - _.$update(); + app.update(); }; const scriptNode = iframeNode.contentDocument!.getElementById( diff --git a/packages/northstar/src/views/properties.r.ts b/packages/northstar/src/views/properties.r.ts index 8c6dd9e..53f61ae 100644 --- a/packages/northstar/src/views/properties.r.ts +++ b/packages/northstar/src/views/properties.r.ts @@ -1,18 +1,18 @@ -import "@refina/fluentui-icons/add.r.ts"; -import "@refina/fluentui-icons/subtract.r.ts"; -import { $clsFunc, MainElRef, defineView, ref } from "refina"; +import { FiAdd20Filled } from "@refina/fluentui-icons/add"; +import { FiSubtract20Filled } from "@refina/fluentui-icons/subtract"; +import { $view, PrimaryElRef, ref } from "refina"; import { getSelectedProps } from "../utils/props"; -export default defineView(_ => { +export default $view(_ => { const props = getSelectedProps(); _.for(props, "key", p => { - const r = ref() as MainElRef; + const r = ref() as PrimaryElRef; _.$cls`col-span-1 flex justify-center items-center border-b border-gray-500 h-8`; _._div( { onclick: () => { ( - r.current?.$mainEl?.node.firstChild as + r.current?.$primaryEl?.node.firstChild as | HTMLElement | null | undefined @@ -30,7 +30,7 @@ export default defineView(_ => { _.fSwitch("", p.getVal()) && p.setVal(_.$ev); } else if (p.type === "dropdown") { _.$ref(r); - if (_.fUnderlineDropdown(p.getVal(), p.options)) { + if (_.fDropdown(p.getVal(), p.options)) { p.setVal(_.$ev); } } else if (p.type === "readonly") { @@ -40,19 +40,20 @@ export default defineView(_ => { const value = p.getVal(); _.$cls`w-full grid grid-cols-4 items-center px-2`; _.div(() => { - const btnStyle = $clsFunc`w-5 h-5 p-[2px] box-content font-bold border-2 border-gray-500 rounded hover:border-gray-800 disabled:opacity-50`; + const btnStyle = () => + _.$cls`w-5 h-5 p-[2px] box-content font-bold border-2 border-gray-500 rounded hover:border-gray-800 disabled:opacity-50`; - btnStyle(_); + btnStyle(); _.$cls`justify-self-end`; - _.button(_ => _.fiSubtract20Filled(), value === p.min) && + _.button(_ => _(FiSubtract20Filled)(), value === p.min) && p.setVal(value - 1); _.$cls`col-span-2 justify-self-center`; _.span(value.toString()); - btnStyle(_); + btnStyle(); _.$cls`justify-self-start`; - _.button(_ => _.fiAdd20Filled(), value === p.max) && + _.button(_ => _(FiAdd20Filled)(), value === p.max) && p.setVal(value + 1); }); } diff --git a/packages/northstar/src/views/toolbar.r.ts b/packages/northstar/src/views/toolbar.r.ts index d050c3d..5e41fc1 100644 --- a/packages/northstar/src/views/toolbar.r.ts +++ b/packages/northstar/src/views/toolbar.r.ts @@ -1,30 +1,32 @@ import { Compiler } from "@quasi-dev/compiler"; import { - FieldValidationState, - ProgressBarColor, - ProgressBarValue, + FFieldValidationState, + FProgressBarColor, + FProgressBarValue, } from "@refina/fluentui"; -import "@refina/fluentui-icons/addSquareMultiple.r.ts"; -import "@refina/fluentui-icons/alignLeft.r.ts"; -import "@refina/fluentui-icons/alignTop.r.ts"; -import "@refina/fluentui-icons/arrowRedo.r.ts"; -import "@refina/fluentui-icons/arrowUndo.r.ts"; -import "@refina/fluentui-icons/delete.r.ts"; -import "@refina/fluentui-icons/documentBulletList.r.ts"; -import "@refina/fluentui-icons/drawerArrowDownload.r.ts"; -import "@refina/fluentui-icons/edit.r.ts"; -import "@refina/fluentui-icons/imageBorder.r.ts"; -import "@refina/fluentui-icons/resizeLarge.r.ts"; -import "@refina/fluentui-icons/resizeSmall.r.ts"; +import { FiAddSquareMultiple20Regular } from "@refina/fluentui-icons/addSquareMultiple"; +import { FiAlignLeft20Regular } from "@refina/fluentui-icons/alignLeft"; +import { FiAlignTop20Regular } from "@refina/fluentui-icons/alignTop"; +import { FiArrowRedo20Filled } from "@refina/fluentui-icons/arrowRedo"; +import { FiArrowUndo20Filled } from "@refina/fluentui-icons/arrowUndo"; +import { FiDelete20Regular } from "@refina/fluentui-icons/delete"; +import { FiDocumentBulletList20Regular } from "@refina/fluentui-icons/documentBulletList"; +import { FiDrawerArrowDownload20Regular } from "@refina/fluentui-icons/drawerArrowDownload"; +import { FiImageBorder20Regular } from "@refina/fluentui-icons/imageBorder"; +import { FiResizeLarge20Regular } from "@refina/fluentui-icons/resizeLarge"; +import { FiResizeSmall20Regular } from "@refina/fluentui-icons/resizeSmall"; import { domToBlob } from "modern-screenshot"; import { + $view, + Component, Content, HTMLElementComponent, - d, - defineView, - fromProp, + _, + model, + propModel, ref, } from "refina"; +import { app } from "../app.r"; import { Project, currentProject, @@ -44,16 +46,15 @@ import { import { startPreview } from "./preview.r"; import iconURL from "/favicon.ico?url"; -export const previewMode = d(false); +export const previewMode = model(false); -const toolItem = defineView( - ( - _, +class ToolItem extends Component { + $main( tip: string, buttonContent: Content, disabled: boolean, callback: () => void, - ) => { + ) { _.fTooltip( _ => _.$cls`disabled:opacity-30 h-full flex items-center enabled:hover:bg-gray-300 px-2` && @@ -61,19 +62,19 @@ const toolItem = defineView( callback(), tip, ); - }, -); + } +} let buildOutput = ""; -let exportToPNGProgess: ProgressBarValue = 0; -let exportToPNGColor: ProgressBarColor = "brand"; -let exportToPNGValidationState: FieldValidationState = "none"; +let exportToPNGProgess: FProgressBarValue = 0; +let exportToPNGColor: FProgressBarColor = "brand"; +let exportToPNGValidationState: FFieldValidationState = "none"; let exportToPNGMessage = `Click the "Export" button above to start`; export const graphElRef = ref>(); -export default defineView(_ => { +export default $view(_ => { _.$cls`flex items-center h-full`; _.div(_ => { _.$cls`w-[2em] h-[2em] invert`; @@ -83,17 +84,17 @@ export default defineView(_ => { _.span("Quasi Studio"); _.fDialog( - (_, open) => { + open => { _.fTooltip( _ => _.$cls`h-full flex items-center hover:bg-gray-300 px-2` && - _.button(_ => _.fiDocumentBulletList20Regular()) && + _.button(_ => _(FiDocumentBulletList20Regular)()) && open(), "File", ); }, "File", - (_, close) => { + close => { _.$cls`flex flex-col gap-4`; _.div(_ => { _.fButton("New") && (setCurrentProject(Project.new()), close()); @@ -106,17 +107,17 @@ export default defineView(_ => { if ( _.fDialog( - (_, open) => { + open => { _.fTooltip( _ => _.$cls`h-full flex items-center hover:bg-gray-300 px-2` && - _.button(_ => _.fiDrawerArrowDownload20Regular()) && + _.button(_ => _(FiDrawerArrowDownload20Regular)()) && open(), "Build", ); }, "Build", - (_, close) => { + close => { _.$cls`block h-56 w-full border-2 overflow-y-scroll rounded shadow-inner border-gray-400 p-3 font-[Consolas]`; _._textarea( { @@ -138,11 +139,11 @@ export default defineView(_ => { .compile() .then(v => { buildOutput = v; - _.$update(); + app.update(); }) .catch(err => { buildOutput = `Compile ${err}`; - _.$update(); + app.update(); }); } catch (e) { buildOutput = `${e}`; @@ -155,16 +156,15 @@ export default defineView(_ => { if (!previewMode.value) { _.fDialog( - (_, open) => - _.embed( - toolItem, + open => + _(ToolItem)( "Export to PNG", - _ => _.fiImageBorder20Regular(), + _ => _(FiImageBorder20Regular)(), currentProject.activeGraph.blocks.length === 0, open, ), "Export to PNG", - (_, close) => { + close => { _.$cls`mb-5`; _._div(); @@ -200,7 +200,7 @@ export default defineView(_ => { .then(async blob => { exportToPNGProgess = 0.7; exportToPNGMessage = "Saving..."; - _.$update(); + app.update(); const handle = await window.showSaveFilePicker({ suggestedName: "quasi-graph.png", @@ -216,18 +216,18 @@ export default defineView(_ => { const writable = await handle.createWritable(); exportToPNGProgess = 0.8; - _.$update(); + app.update(); await writable.write(await blob.arrayBuffer()); exportToPNGProgess = 0.9; - _.$update(); + app.update(); await writable.close(); exportToPNGProgess = 1; exportToPNGMessage = "Done"; exportToPNGValidationState = "success"; - _.$update(); + app.update(); await new Promise(resolve => setTimeout(resolve, 500)); close(); @@ -242,7 +242,7 @@ export default defineView(_ => { exportToPNGColor = "error"; exportToPNGMessage = `${err}`; exportToPNGValidationState = "error"; - _.$update(); + app.update(); }) .finally(() => { restoreBoard(); @@ -264,34 +264,30 @@ export default defineView(_ => { }, ); - _.embed( - toolItem, + _(ToolItem)( "Undo", - _ => _.fiArrowUndo20Filled(), + _ => _(FiArrowUndo20Filled)(), !currentProject.activeGraph.canUndo, () => currentProject.activeGraph.undo(), ); - _.embed( - toolItem, + _(ToolItem)( "Redo", - _ => _.fiArrowRedo20Filled(), + _ => _(FiArrowRedo20Filled)(), !currentProject.activeGraph.canRedo, () => currentProject.activeGraph.redo(), ); - _.embed( - toolItem, + _(ToolItem)( "Reset viewport", - _ => _.fiResizeLarge20Regular(), + _ => _(FiResizeLarge20Regular)(), false, () => { currentProject.activeGraph.resetViewport(); currentProject.activeGraph.pushRecord(); }, ); - _.embed( - toolItem, + _(ToolItem)( "Full view", - _ => _.fiResizeSmall20Regular(), + _ => _(FiResizeSmall20Regular)(), false, () => { currentProject.activeGraph.fullView(); @@ -299,32 +295,28 @@ export default defineView(_ => { }, ); - _.embed( - toolItem, + _(ToolItem)( "Duplicate", - _ => _.fiAddSquareMultiple20Regular(), + _ => _(FiAddSquareMultiple20Regular)(), !hasBlocksToDuplicate(), duplicateBlocks, ); - _.embed( - toolItem, + _(ToolItem)( "Remove", - _ => _.fiDelete20Regular(), + _ => _(FiDelete20Regular)(), !hasBlocksToRemove(), removeBlocks, ); - _.embed( - toolItem, + _(ToolItem)( "Align left", - _ => _.fiAlignLeft20Regular(), + _ => _(FiAlignLeft20Regular)(), !hasBlocksToAlign(), alignBlocksToLeft, ); - _.embed( - toolItem, + _(ToolItem)( "Align top", - _ => _.fiAlignTop20Regular(), + _ => _(FiAlignTop20Regular)(), !hasBlocksToAlign(), alignBlocksToTop, ); @@ -346,9 +338,7 @@ export default defineView(_ => { onkeydown: ev => ev.stopPropagation(), }, _ => - _.fUnderlineInput( - fromProp(currentProject.activeView, "name"), - ), + _.fUnderlineInput(propModel(currentProject.activeView, "name")), ); } }, diff --git a/packages/northstar/vite.config.ts b/packages/northstar/vite.config.ts index df323eb..2ea68c3 100644 --- a/packages/northstar/vite.config.ts +++ b/packages/northstar/vite.config.ts @@ -8,6 +8,8 @@ import { import Refina from "vite-plugin-refina"; import { viteStaticCopy } from "vite-plugin-static-copy"; import MonacoEditorPluginObj from "vite-plugin-monaco-editor"; +import Inspect from "vite-plugin-inspect"; + const MonacoEditorPlugin = (MonacoEditorPluginObj as any) .default as typeof MonacoEditorPluginObj; @@ -72,7 +74,8 @@ function TsBundleUrlPlugin(): PluginOption { export default defineConfig({ plugins: [ - Refina(), + Inspect(), + Refina() as any, MonacoEditorPlugin({}), TsBundleUrlPlugin(), viteStaticCopy({ diff --git a/packages/runtime/package.json b/packages/runtime/package.json index f0d1c87..687a590 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -8,11 +8,6 @@ "scripts": { "check": "tsc --noEmit" }, - "devDependencies": { - "@refina/tsconfig": "link:..\\..\\..\\refina\\packages\\tsconfig", - "typescript": "^5.0.2", - "vite": "^4.4.8" - }, "main": "./src/index.ts", "types": "./src/index.ts", "files": [ @@ -23,7 +18,12 @@ "./*": "./*" }, "dependencies": { - "@refina/mdui": "link:..\\..\\..\\refina\\packages\\mdui", - "refina": "link:..\\..\\..\\refina\\packages\\core" + "@refina/mdui": "^0.6.1", + "refina": "^0.6.1" + }, + "devDependencies": { + "@refina/tsconfig": "^0.6.0", + "typescript": "^5.4.2", + "vite": "^4.4.8" } } diff --git a/packages/runtime/src/components/appLayout.r.ts b/packages/runtime/src/components/appLayout.r.ts index 9807c41..edec0c4 100644 --- a/packages/runtime/src/components/appLayout.r.ts +++ b/packages/runtime/src/components/appLayout.r.ts @@ -1,6 +1,12 @@ /// -import { Content, HTMLElementComponent, ref } from "refina"; -import QuasiRuntime from "../plugin"; +import { + MdLayout, + MdLayoutMain, + MdNavRail, + MdTopAppBar, + MdTopAppBarTitle, +} from "@refina/mdui"; +import { Component, Content, HTMLElementComponent, _, ref } from "refina"; import { Direction, component, content, textProp } from "../types"; export default component({ @@ -31,20 +37,14 @@ export class AppLayoutModel { current: string; } -declare module "refina" { - interface Components { - qAppLayout(model: AppLayoutModel, props: AppLayoutProps): void; - } -} - -QuasiRuntime.outputComponents.qAppLayout = function (_) { - const navRailRef = ref>(); - return (model, props) => { +export class QAppLayout extends Component { + navRailRef = ref>(); + $main(model: AppLayoutModel, props: AppLayoutProps) { _.$cls(props.class); _.$css`position:fixed;width:100%;height:100%`; - _.mdLayout(_ => { - _.mdTopAppBar(_ => { - _.mdTopAppBarTitle( + _(MdLayout)(_ => { + _(MdTopAppBar)(_ => { + _(MdTopAppBarTitle)( _ => _.$css`user-select:none;text-decoration:none;color:inherit` && _._a( @@ -64,9 +64,9 @@ QuasiRuntime.outputComponents.qAppLayout = function (_) { }); _.$css`height:100%`; - model.current = _.mdNavRail(model.items); + model.current = _(MdNavRail)(model.items); - _.mdLayoutMain(_ => { + _(MdLayoutMain)(_ => { _.$css`padding:18px;padding-right:64px`; _._div({}, _ => _.provide(currentNavSymbol, model, _ => { @@ -76,5 +76,5 @@ QuasiRuntime.outputComponents.qAppLayout = function (_) { ); }); }); - }; -}; + } +} diff --git a/packages/runtime/src/components/button.r.ts b/packages/runtime/src/components/button.r.ts index 8c20115..6730982 100644 --- a/packages/runtime/src/components/button.r.ts +++ b/packages/runtime/src/components/button.r.ts @@ -1,6 +1,6 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; import { component, content, event, input, textProp } from "../types"; +import { MdButton } from "@refina/mdui"; export default component({ displayName: () => "Button", @@ -25,17 +25,11 @@ export interface ButtonProps { onClick: () => void; } -QuasiRuntime.outputComponents.qButton = function (_) { - return props => { +export class QButton extends Component { + $main(props: ButtonProps) { _.$cls(props.class); - if (_.mdButton(props.inner, props.disabled)) { + if (_(MdButton)(props.inner, props.disabled)) { props.onClick(); } - }; -}; - -declare module "refina" { - interface Components { - qButton(props: ButtonProps): void; } } diff --git a/packages/runtime/src/components/card.r.ts b/packages/runtime/src/components/card.r.ts index 641abee..f8093c5 100644 --- a/packages/runtime/src/components/card.r.ts +++ b/packages/runtime/src/components/card.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; + import { Direction, component, content, textProp } from "../types"; export default component({ @@ -19,8 +19,8 @@ export interface CardProps { class: string; } -QuasiRuntime.outputComponents.qCard = function (_) { - return props => { +export class QCard extends Component { + $main(props: CardProps) { _.$css`width:100%;padding:18px;padding-top:0`; _.$cls(props.class); _._mdui_card( @@ -32,11 +32,5 @@ QuasiRuntime.outputComponents.qCard = function (_) { _.embed(props.inner); }, ); - }; -}; - -declare module "refina" { - interface Components { - qCard(props: CardProps): void; } } diff --git a/packages/runtime/src/components/div.r.ts b/packages/runtime/src/components/div.r.ts index 75ee1fa..0d0e905 100644 --- a/packages/runtime/src/components/div.r.ts +++ b/packages/runtime/src/components/div.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; + import { component, content, textProp } from "../types"; export default component({ @@ -17,15 +17,9 @@ export interface DivProps { class: string; } -QuasiRuntime.outputComponents.qDiv = function (_) { - return props => { +export class QDiv extends Component { + $main(props: DivProps) { _.$cls(props.class); _._div({}, props.inner); - }; -}; - -declare module "refina" { - interface Components { - qDiv(props: DivProps): void; } } diff --git a/packages/runtime/src/components/forEach.r.ts b/packages/runtime/src/components/forEach.r.ts index e3d7a45..c88da95 100644 --- a/packages/runtime/src/components/forEach.r.ts +++ b/packages/runtime/src/components/forEach.r.ts @@ -1,5 +1,5 @@ -import { Content, RefTreeNode } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, RefTreeNode, _ } from "refina"; + import { Direction, component, content, input, output } from "../types"; export default component({ @@ -25,10 +25,10 @@ export class ForEachModel { current: unknown; } -QuasiRuntime.outputComponents.qForEach = function (_) { - const refTreeNodes: Record = {}; - return (model, props) => { - const parentRefTreeNode = _.$intrinsic.$$currentRefTreeNode; +export class QForEach extends Component { + refNodes: Record = {}; + $main(model: ForEachModel, props: ForEachProps) { + const parentRefTreeNode = _.$lowlevel.$$currentRefNode; let index = 0; for (const v of props.iterable) { @@ -36,20 +36,14 @@ QuasiRuntime.outputComponents.qForEach = function (_) { const key = index.toString(); - refTreeNodes[key] ??= {}; - _.$intrinsic.$$currentRefTreeNode = refTreeNodes[key]; + this.refNodes[key] ??= {}; + _.$lowlevel.$$currentRefNode = this.refNodes[key]; _.embed(props.inner); index++; } - _.$intrinsic.$$currentRefTreeNode = parentRefTreeNode; - }; -}; - -declare module "refina" { - interface Components { - qForEach(model: ForEachModel, props: ForEachProps): void; + _.$lowlevel.$$currentRefNode = parentRefTreeNode; } } diff --git a/packages/runtime/src/components/ifElse.r.ts b/packages/runtime/src/components/ifElse.r.ts index ad2169e..b77704d 100644 --- a/packages/runtime/src/components/ifElse.r.ts +++ b/packages/runtime/src/components/ifElse.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; + import { Direction, component, content, input } from "../types"; export default component({ @@ -19,18 +19,12 @@ export interface IfElseProps { else: Content; } -QuasiRuntime.outputComponents.qIfElse = function (_) { - return props => { +export class QIfElse extends Component { + $main(props: IfElseProps) { if (props.condition) { _.embed(props.then); } else { _.embed(props.else); } - }; -}; - -declare module "refina" { - interface Components { - qIfElse(props: IfElseProps): void; } } diff --git a/packages/runtime/src/components/input.r.ts b/packages/runtime/src/components/input.r.ts index 03d8b53..8e78887 100644 --- a/packages/runtime/src/components/input.r.ts +++ b/packages/runtime/src/components/input.r.ts @@ -1,5 +1,5 @@ -import { fromProp } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, _, propModel } from "refina"; +import { MdPasswordInput, MdTextField } from "@refina/mdui"; import { component, dropdownProp, @@ -68,30 +68,28 @@ export class InputModel { } } -QuasiRuntime.outputComponents.qInput = function (_) { - return (model, props) => { +export class QInput extends Component { + $main(model: InputModel, props: InputProps) { model.type = props.type; model.value ??= props.initial; _.$cls(props.class); _.$css`margin-bottom:18px;`; if ( props.type === "password" - ? _.mdPasswordInput( - fromProp(model, "_value"), + ? _(MdPasswordInput)( + propModel(model, "_value"), + props.label, + props.disabled, + ) + : _(MdTextField)( + propModel(model, "_value"), props.label, props.disabled, ) - : _.mdTextField(fromProp(model, "_value"), props.label, props.disabled) ) { //@ts-ignore const newVal = _.$ev as string; props.onInput?.(props.type === "number" ? +newVal : newVal); } - }; -}; - -declare module "refina" { - interface Components { - qInput(model: InputModel, props: InputProps): void; } } diff --git a/packages/runtime/src/components/list.r.ts b/packages/runtime/src/components/list.r.ts index 16d5430..c542c77 100644 --- a/packages/runtime/src/components/list.r.ts +++ b/packages/runtime/src/components/list.r.ts @@ -1,5 +1,5 @@ -import { Content, byIndex, bySelf } from "refina"; -import QuasiRuntime from "../plugin"; +import { MdList } from "@refina/mdui"; +import { Component, Content, _, byIndex, bySelf } from "refina"; import { Direction, component, @@ -38,10 +38,10 @@ export class ListModel { current: any; } -QuasiRuntime.outputComponents.qList = function (_) { - return (model, props) => { +export class QList extends Component { + $main(model: ListModel, props: ListProps) { _.$cls(props.class); - _.mdList( + _(MdList)( props.data, props.key === "$index" ? byIndex @@ -54,11 +54,5 @@ QuasiRuntime.outputComponents.qList = function (_) { }, ); model.current = null; - }; -}; - -declare module "refina" { - interface Components { - qList(model: ListModel, props: ListProps): void; } } diff --git a/packages/runtime/src/components/paragraph.r.ts b/packages/runtime/src/components/paragraph.r.ts index 14da3b0..c5110c5 100644 --- a/packages/runtime/src/components/paragraph.r.ts +++ b/packages/runtime/src/components/paragraph.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; + import { component, content, textProp } from "../types"; export default component({ @@ -17,15 +17,9 @@ export interface ParagraphProps { class: string; } -QuasiRuntime.outputComponents.qParagraph = function (_) { - return props => { +export class QParagraph extends Component { + $main(props: ParagraphProps) { _.$cls(props.class); _._p({}, props.inner); - }; -}; - -declare module "refina" { - interface Components { - qParagraph(props: ParagraphProps): void; } } diff --git a/packages/runtime/src/components/span.r.ts b/packages/runtime/src/components/span.r.ts index 3c30e69..be10516 100644 --- a/packages/runtime/src/components/span.r.ts +++ b/packages/runtime/src/components/span.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; + import { component, content, textProp } from "../types"; export default component({ @@ -17,15 +17,9 @@ export interface SpanProps { class: string; } -QuasiRuntime.outputComponents.qSpan = function (_) { - return props => { +export class QSpan extends Component { + $main(props: SpanProps) { _.$cls(props.class); _._span({}, props.inner); - }; -}; - -declare module "refina" { - interface Components { - qSpan(props: SpanProps): void; } } diff --git a/packages/runtime/src/components/subPage.r.ts b/packages/runtime/src/components/subPage.r.ts index c3f9344..9787837 100644 --- a/packages/runtime/src/components/subPage.r.ts +++ b/packages/runtime/src/components/subPage.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { Component, Content, _ } from "refina"; + import { component, content, input, textProp } from "../types"; import { AppLayoutModel, currentNavSymbol } from "./appLayout.r"; @@ -22,8 +22,8 @@ export interface SubPageProps { inner: Content; } -QuasiRuntime.outputComponents.qSubPage = function (_) { - return props => { +export class QSubPage extends Component { + $main(props: SubPageProps) { const model = _.$runtimeData[currentNavSymbol] as AppLayoutModel; if (model.renderingState === "nav") { @@ -33,11 +33,5 @@ QuasiRuntime.outputComponents.qSubPage = function (_) { _.embed(props.inner); } } - }; -}; - -declare module "refina" { - interface Components { - qSubPage(props: SubPageProps): void; } } diff --git a/packages/runtime/src/components/table.r.ts b/packages/runtime/src/components/table.r.ts index db751e3..4b1bb9d 100644 --- a/packages/runtime/src/components/table.r.ts +++ b/packages/runtime/src/components/table.r.ts @@ -1,5 +1,5 @@ -import { Content, byIndex, bySelf } from "refina"; -import QuasiRuntime from "../plugin"; +import { MdTable } from "@refina/mdui"; +import { Component, Content, _, byIndex, bySelf } from "refina"; import { Direction, component, @@ -43,11 +43,11 @@ export class TableModel { current: any; } -QuasiRuntime.outputComponents.qTable = function (_) { - return (model, props) => { +export class QTable extends Component { + $main(model: TableModel, props: TableProps) { + _.$cls(props.class); _.provide(currentTableSymbol, model, _ => { - _.$cls(props.class); - _.mdTable( + _(MdTable)( props.data, _ => { model.renderingState = "head"; @@ -66,11 +66,5 @@ QuasiRuntime.outputComponents.qTable = function (_) { ); model.current = null; }); - }; -}; - -declare module "refina" { - interface Components { - qTable(model: TableModel, props: TableProps): void; } } diff --git a/packages/runtime/src/components/tableItem.r.ts b/packages/runtime/src/components/tableItem.r.ts index 5ef6d80..2dd0ee6 100644 --- a/packages/runtime/src/components/tableItem.r.ts +++ b/packages/runtime/src/components/tableItem.r.ts @@ -1,5 +1,5 @@ -import { Content } from "refina"; -import QuasiRuntime from "../plugin"; +import { MdTableCell, MdTableHeader } from "@refina/mdui"; +import { Component, Content, _ } from "refina"; import { Direction, component, @@ -41,22 +41,16 @@ export class TableColModel { value: any; } -declare module "refina" { - interface Components { - qTableCol(model: TableColModel, props: TableColProps): void; - } -} - -QuasiRuntime.outputComponents.qTableCol = function (_) { - return (model, props) => { +export class QTableCol extends Component { + $main(model: TableColModel, props: TableColProps) { const currentTable = _.$runtimeData[currentTableSymbol] as TableModel; if (currentTable.renderingState === "head") { _.$cls(props.headClass); - _.mdTableHeader(props.header === "$prop" ? props.prop : props.header); + _(MdTableHeader)(props.header === "$prop" ? props.prop : props.header); } else { model.value = currentTable.current[props.prop]; _.$cls(props.cellClass); - _.mdTableCell(props.inner); + _(MdTableCell)(props.inner); } - }; -}; + } +} diff --git a/packages/runtime/src/components/textNode.r.ts b/packages/runtime/src/components/textNode.r.ts index ffb45e6..5696a55 100644 --- a/packages/runtime/src/components/textNode.r.ts +++ b/packages/runtime/src/components/textNode.r.ts @@ -1,4 +1,4 @@ -import QuasiRuntime from "../plugin"; +import { Component, _ } from "refina"; import { component, input } from "../types"; export default component({ @@ -12,14 +12,8 @@ export interface TextNodeProps { text: string | null; } -declare module "refina" { - interface Components { - qTextNode(props: TextNodeProps): void; +export class QTextNode extends Component { + $main(props: TextNodeProps) { + _.t(props.text ?? ""); } } - -QuasiRuntime.outputComponents.qTextNode = function (_) { - return props => { - _.t(props.text ?? ""); - }; -}; diff --git a/packages/runtime/src/index.ts b/packages/runtime/src/index.ts index 3184615..2e01408 100644 --- a/packages/runtime/src/index.ts +++ b/packages/runtime/src/index.ts @@ -1,7 +1,30 @@ -export * from "./components"; -export * from "./types"; +import { Plugin } from "refina"; +import * as c from "./components"; +import MdUI from "@refina/mdui"; -import QuasiRuntime from "./plugin"; -export default QuasiRuntime; +export default [ + MdUI as Plugin, + { + name: "quasi-runtime", + components: { + qAppLayout: c.QAppLayout, + qButton: c.QButton, + qCard: c.QCard, + qDiv: c.QDiv, + qForEach: c.QForEach, + qIfElse: c.QIfElse, + qInput: c.QInput, + qList: c.QList, + qParagraph: c.QParagraph, + qSpan: c.QSpan, + qSubPage: c.QSubPage, + qTable: c.QTable, + qTableCol: c.QTableCol, + qTextNode: c.QTextNode, + }, + } satisfies Plugin, +]; export * as refina from "refina"; +export * from "./components"; +export * from "./types"; diff --git a/packages/runtime/src/plugin.ts b/packages/runtime/src/plugin.ts deleted file mode 100644 index 3e6fc62..0000000 --- a/packages/runtime/src/plugin.ts +++ /dev/null @@ -1,7 +0,0 @@ -import MdUI from "@refina/mdui"; -import { Plugin } from "refina"; - -const QuasiRuntime = new Plugin("quasi-runtime", (app) => { - MdUI.install(app); -}); -export default QuasiRuntime; diff --git a/packages/visual-flow/package.json b/packages/visual-flow/package.json index aa4102f..cb4c46d 100644 --- a/packages/visual-flow/package.json +++ b/packages/visual-flow/package.json @@ -8,11 +8,6 @@ "scripts": { "check": "tsc --noEmit" }, - "devDependencies": { - "@refina/tsconfig": "link:..\\..\\..\\refina\\packages\\tsconfig", - "@types/deep-equal": "^1.0.3", - "typescript": "^5.0.2" - }, "main": "./src/index.ts", "types": "./src/index.ts", "files": [ @@ -23,10 +18,15 @@ ".": "./src/index.ts" }, "dependencies": { - "@fluentui/tokens": "1.0.0-alpha.11", - "@refina/fluentui": "link:..\\..\\..\\refina\\packages\\fluentui", - "@refina/griffel": "link:..\\..\\..\\refina\\packages\\griffel", + "@fluentui/tokens": "^1.0.0-alpha.11", + "@refina/fluentui": "^0.6.1", + "@refina/griffel": "^0.6.0", "deep-equal": "^2.2.2", - "refina": "link:..\\..\\..\\refina\\packages\\core" + "refina": "^0.6.1" + }, + "devDependencies": { + "@refina/tsconfig": "^0.6.0", + "@types/deep-equal": "^1.0.3", + "typescript": "^5.4.2" } } diff --git a/packages/visual-flow/src/components/block/RectBlock.r.ts b/packages/visual-flow/src/components/block/RectBlock.r.ts index f92447f..504a14f 100644 --- a/packages/visual-flow/src/components/block/RectBlock.r.ts +++ b/packages/visual-flow/src/components/block/RectBlock.r.ts @@ -2,7 +2,7 @@ import { Context } from "refina"; import { Block, Socket } from "../../model"; import { Direction, Point } from "../../types"; import { spreadItems } from "../../utils"; -import styles from "./RectBlock.styles"; +import useStyles from "./RectBlock.styles"; const SOCKET_PADDING_SCALE = -0.1; @@ -141,11 +141,13 @@ export abstract class RectBlock extends Block { content: (_: Context) => void; contentMain = (_: Context) => { - styles.contentOuterWrapper(_); + const styles = useStyles(); + + styles.contentOuterWrapper(); _.$css`width:${this.pageWidth}px;height:${this.pageHeight}px;`; _.$css`padding:${8 * this.graph.boardScale}px;`; _._div({}, _ => { - styles.contentInnerWrapper(_); + styles.contentInnerWrapper(); _.$css`transform:scale(${this.graph.boardScale})`; _._div({}, this.content); }); diff --git a/packages/visual-flow/src/components/block/RectBlock.styles.ts b/packages/visual-flow/src/components/block/RectBlock.styles.ts index e8a28ff..18c7c0c 100644 --- a/packages/visual-flow/src/components/block/RectBlock.styles.ts +++ b/packages/visual-flow/src/components/block/RectBlock.styles.ts @@ -1,4 +1,4 @@ -import { makeResetStyles, mergeClasses } from "@refina/griffel"; +import { defineStyles, makeResetStyles, mergeClasses } from "@refina/griffel"; const contentOuterWrapperClassName = makeResetStyles({ position: "absolute", @@ -17,7 +17,8 @@ const contentInnerWrapperClassName = makeResetStyles({ transformOrigin: "center left", }); -export default { - contentOuterWrapper: mergeClasses(contentOuterWrapperClassName), - contentInnerWrapper: mergeClasses(contentInnerWrapperClassName), -}; +export default () => + defineStyles({ + contentOuterWrapper: [contentOuterWrapperClassName], + contentInnerWrapper: [contentInnerWrapperClassName], + }); diff --git a/packages/visual-flow/src/index.ts b/packages/visual-flow/src/index.ts index 4294ac9..7f37d37 100644 --- a/packages/visual-flow/src/index.ts +++ b/packages/visual-flow/src/index.ts @@ -1,8 +1,19 @@ +import { Plugin } from "refina"; +import * as c from "./view"; + +export default { + name: "visual-flow", + components: { + vfBlock: c.VfBlock, + vfCreator: c.VfCreator, + vfGraph: c.VfGraph, + vfLine: c.VfLine, + vfSocket: c.VfSocket, + }, +} satisfies Plugin; + export * from "./components"; export * from "./model"; export * from "./recorder"; export * from "./types"; export * from "./view"; - -import Vf from "./plugin"; -export default Vf; diff --git a/packages/visual-flow/src/plugin.ts b/packages/visual-flow/src/plugin.ts deleted file mode 100644 index ae1bbb5..0000000 --- a/packages/visual-flow/src/plugin.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Plugin } from "refina"; - -const Vf = new Plugin("visual-flow"); -export default Vf; diff --git a/packages/visual-flow/src/view/block.r.ts b/packages/visual-flow/src/view/block.r.ts index a6a4348..227f68d 100644 --- a/packages/visual-flow/src/view/block.r.ts +++ b/packages/visual-flow/src/view/block.r.ts @@ -1,24 +1,22 @@ +import { Component, _ } from "refina"; import { Block } from "../model"; -import Vf from "../plugin"; -import styles, { PADDING_FOR_SOCKETS } from "./block.styles"; +import useStyles, { PADDING_FOR_SOCKETS } from "./block.styles"; +import { VfSocket } from "./socket.r"; -declare module "refina" { - interface Components { - vfBlock(model: Block): void; - } -} -Vf.outputComponents.vfBlock = function (_) { - return model => { +export class VfBlock extends Component { + $main(model: Block) { const { x, y } = model.attached ? model.graphPos : model.pagePos; const padding = PADDING_FOR_SOCKETS * model.graph.boardScale; - styles.root(model.selected, model.attached, model.predicting)(_); + const styles = useStyles(model.selected, model.attached, model.predicting); + + styles.root(); _.$css`left:${x}px;top:${y}px;z-index:${ model.attached ? model.zIndex : 10000 }`; _.$ref(model.ref) && _._div({}, _ => { - styles.svg(_); + styles.svg(); _.$css`left:${-padding}px; top:${-padding}px`; _._svgSvg( { @@ -35,14 +33,14 @@ Vf.outputComponents.vfBlock = function (_) { transform: `translate(${padding}, ${padding})`, }, _ => { - styles.bg(model.selected)(_); + styles.bg(); _.$ref(model.bgRef) && _._svgPath({ d: model.backgroudPath, }); _.for(model.allSockets, "id", socket => { - _.vfSocket(socket); + _(VfSocket)(socket); }); }, ); @@ -64,5 +62,5 @@ Vf.outputComponents.vfBlock = function (_) { model.contentMain, ); }); - }; -}; + } +} diff --git a/packages/visual-flow/src/view/block.styles.ts b/packages/visual-flow/src/view/block.styles.ts index 2b5f103..7b55243 100644 --- a/packages/visual-flow/src/view/block.styles.ts +++ b/packages/visual-flow/src/view/block.styles.ts @@ -1,5 +1,6 @@ import { tokens, typographyStyles } from "@fluentui/tokens"; import { + defineStyles, makeResetStyles, makeStyles, mergeClasses, @@ -66,19 +67,15 @@ const textStyles = makeResetStyles({ ...typographyStyles.caption1, }); -export default { - root: (selected: boolean, attached: boolean, predicting: boolean) => - mergeClasses( +export default (selected: boolean, attached: boolean, predicting: boolean) => + defineStyles({ + root: [ rootClassName, selected && rootStyles.selected, !attached && rootStyles.unattached, predicting && rootStyles.predicting, - ), - svg: mergeClasses(svgClassName), - bg: (selected: boolean) => - mergeClasses( - bgClassName, - selected ? bgStyles.selected : bgStyles.notSelected, - ), - text: mergeClasses(textStyles), -}; + ], + svg: [svgClassName], + bg: [bgClassName, selected ? bgStyles.selected : bgStyles.notSelected], + text: [textStyles], + }); diff --git a/packages/visual-flow/src/view/creator.r.ts b/packages/visual-flow/src/view/creator.r.ts index 0cca3d6..7d5a7ff 100644 --- a/packages/visual-flow/src/view/creator.r.ts +++ b/packages/visual-flow/src/view/creator.r.ts @@ -1,25 +1,21 @@ -import { Content, D, } from "refina"; +import { Content, TriggerComponent, _, Model } from "refina"; import { Block, Graph } from "../model"; -import Vf from "../plugin"; -import styles from "./creator.styles"; +import useStyles from "./creator.styles"; const DRAGGING_START_PADDING = 20; -declare module "refina" { - interface Components { - vfCreator( - graph: Graph, - inner: D, - factory: () => Block, - disabled?: D, - ): this is { - $ev: void; - }; - } -} -Vf.triggerComponents.vfCreator = function (_) { - return (graph, inner, factory, disabled = false) => { - styles.root(_); +export class VfCreator extends TriggerComponent { + $main( + graph: Graph, + inner: Content, + factory: () => Block, + disabled?: Model, + ): this is { + $ev: void; + } { + const styles = useStyles(); + + styles.root(); _._div( { onmousedown: ev => { @@ -38,10 +34,11 @@ Vf.triggerComponents.vfCreator = function (_) { graph.addBlock(block); this.$fire(); - _.$update(); + this.$update(); }, }, inner, ); - }; -}; + return this.$fired; + } +} diff --git a/packages/visual-flow/src/view/creator.styles.ts b/packages/visual-flow/src/view/creator.styles.ts index fad7b3c..300af9a 100644 --- a/packages/visual-flow/src/view/creator.styles.ts +++ b/packages/visual-flow/src/view/creator.styles.ts @@ -1,10 +1,11 @@ -import { makeResetStyles, mergeClasses } from "@refina/griffel"; +import { defineStyles, makeResetStyles } from "@refina/griffel"; const rootClassName = makeResetStyles({ width: "max-content", height: "max-content", }); -export default { - root: mergeClasses(rootClassName), -}; +export default () => + defineStyles({ + root: [rootClassName], + }); diff --git a/packages/visual-flow/src/view/graph.r.ts b/packages/visual-flow/src/view/graph.r.ts index 219291d..b206b78 100644 --- a/packages/visual-flow/src/view/graph.r.ts +++ b/packages/visual-flow/src/view/graph.r.ts @@ -1,18 +1,18 @@ +import { Component, _ } from "refina"; import { Graph } from "../model"; -import Vf from "../plugin"; -import styles from "./graph.styles"; +import { VfBlock } from "./block.r"; +import useStyles from "./graph.styles"; +import { VfLine } from "./line.r"; -declare module "refina" { - interface Components { - vfGraph(model: Graph): void; - } -} -Vf.outputComponents.vfGraph = function (_) { - return model => { +export class VfGraph extends Component { + $main(model: Graph) { model.app = _.$app; + const styles = useStyles(); + if (_.$updateContext) { - _.$window.addEventListener( + const windowElement = _.$window as any; + windowElement.addEventListener( "resize", () => { model.onResize(); @@ -22,20 +22,20 @@ Vf.outputComponents.vfGraph = function (_) { passive: true, }, ); - _.$window.addEventListener( + windowElement.addEventListener( "mousemove", - ev => { + (ev: MouseEvent) => { model.setMousePos(ev); if (model.onMouseMove((ev.buttons & 1) !== 0, ev.shiftKey)) { window.getSelection()?.removeAllRanges(); - _.$update(); + this.$update(); } }, { passive: true, }, ); - _.$window.addEventListener("mousedown", ev => { + windowElement.addEventListener("mousedown", (ev: MouseEvent) => { model.setMousePos(ev); if (model.onMouseDown(ev.shiftKey)) { window.getSelection()?.removeAllRanges(); @@ -43,16 +43,16 @@ Vf.outputComponents.vfGraph = function (_) { document.activeElement?.blur(); } ev.preventDefault(); - _.$update(); + this.$update(); return false; } return true; }); - _.$window.addEventListener("mouseup", ev => { + windowElement.addEventListener("mouseup", (ev: MouseEvent) => { model.setMousePos(ev); if (model.onMouseUp(ev.shiftKey)) { ev.preventDefault(); - _.$update(); + this.$update(); return false; } return true; @@ -67,17 +67,17 @@ Vf.outputComponents.vfGraph = function (_) { if (ev.ctrlKey) { if (model.onScaling(-ev.deltaY / 1500)) { ev.preventDefault(); - _.$update(); + this.$update(); } } else if (ev.shiftKey) { if (model.onHorizontalScroll(ev.deltaY / 2)) { ev.preventDefault(); - _.$update(); + this.$update(); } } else { if (model.onVerticalScroll(ev.deltaY / 2)) { ev.preventDefault(); - _.$update(); + this.$update(); } } return true; @@ -90,34 +90,34 @@ Vf.outputComponents.vfGraph = function (_) { model.blocks.forEach(block => block.updateSockets()); } - styles.root(_); + styles.root(); _.$ref(model.ref) && _._div({}, _ => { const { bg, fg } = model.displayLines; - styles.bgSvg(_); + styles.bgSvg(); _._svgSvg({}, _ => { _.for(bg, "id", line => { - _.vfLine(line); + _(VfLine)(line); }); }); - styles.fgSvg(_); + styles.fgSvg(); _._svgSvg({}, _ => { _.for(fg, "id", line => { - _.vfLine(line); + _(VfLine)(line); }); }); }); _.for(model.blocks, "id", block => { - _.vfBlock(block); + _(VfBlock)(block); }); - styles.canvas(_); + styles.canvas(); _.$ref(model.canvasRef) && _._canvas({ id: "vf-thumbnail", }); - }; -}; + } +} diff --git a/packages/visual-flow/src/view/graph.styles.ts b/packages/visual-flow/src/view/graph.styles.ts index 6124dd8..1e5c283 100644 --- a/packages/visual-flow/src/view/graph.styles.ts +++ b/packages/visual-flow/src/view/graph.styles.ts @@ -1,4 +1,4 @@ -import { makeResetStyles, makeStyles, mergeClasses } from "@refina/griffel"; +import { defineStyles, makeResetStyles, makeStyles } from "@refina/griffel"; const rootClassName = makeResetStyles({ width: "100%", @@ -28,9 +28,10 @@ const canvasClassName = makeResetStyles({ backgroundColor: "#eeeeee", }); -export default { - root: mergeClasses(rootClassName), - bgSvg: mergeClasses(svgClassName), - fgSvg: mergeClasses(svgClassName, svgStyles.fg), - canvas: mergeClasses(canvasClassName), -}; +export default () => + defineStyles({ + root: [rootClassName], + bgSvg: [svgClassName], + fgSvg: [svgClassName, svgStyles.fg], + canvas: [canvasClassName], + }); diff --git a/packages/visual-flow/src/view/line.r.ts b/packages/visual-flow/src/view/line.r.ts index 4b26bd9..40dab06 100644 --- a/packages/visual-flow/src/view/line.r.ts +++ b/packages/visual-flow/src/view/line.r.ts @@ -1,31 +1,28 @@ +import { Component, _ } from "refina"; import { Line } from "../model"; -import Vf from "../plugin"; -import styles from "./line.styles"; +import useStyles from "./line.styles"; -declare module "refina" { - interface Components { - vfLine(model: Line): void; - } -} -Vf.outputComponents.vfLine = function (_) { - return model => { +export class VfLine extends Component { + $main(model: Line) { const color = model.colors[ model.dragging ? "dragging" : model.hovered ? "hovered" : "default" ]; - styles.curve(model.dragging, model.predicting)(_); + const styles = useStyles(model.dragging, model.predicting); + + styles.curve(); _.$css`stroke-width:${model.graph.boardScale * 3}px;stroke:${color}`; _.$ref(model.lineRef) && _._svgPath({ d: model.linePath, }); - styles.arrow(model.dragging, model.predicting)(_); + styles.arrow(); _.$css`fill:${color}`; _.$ref(model.arrowRef) && _._svgPath({ d: model.arrowPath, }); - }; -}; + } +} diff --git a/packages/visual-flow/src/view/line.styles.ts b/packages/visual-flow/src/view/line.styles.ts index a8d11f2..3e28b61 100644 --- a/packages/visual-flow/src/view/line.styles.ts +++ b/packages/visual-flow/src/view/line.styles.ts @@ -1,5 +1,10 @@ import { tokens } from "@fluentui/tokens"; -import { makeResetStyles, makeStyles, mergeClasses } from "@refina/griffel"; +import { + defineStyles, + makeResetStyles, + makeStyles, + mergeClasses, +} from "@refina/griffel"; const curveClassName = makeResetStyles({ fill: "none", @@ -23,17 +28,16 @@ const arrowStyles = makeStyles({ }, }); -export default { - curve: (dragging: boolean, predicting: boolean) => - mergeClasses( +export default (dragging: boolean, predicting: boolean) => + defineStyles({ + curve: [ curveClassName, dragging && curveStyles.dragging, predicting && curveStyles.predicting, - ), - arrow: (dragging: boolean, predicting: boolean) => - mergeClasses( + ], + arrow: [ arrowClassName, dragging && arrowStyles.dragging, predicting && arrowStyles.predicting, - ), -}; + ], + }); diff --git a/packages/visual-flow/src/view/socket.r.ts b/packages/visual-flow/src/view/socket.r.ts index c49acd9..5d39d6f 100644 --- a/packages/visual-flow/src/view/socket.r.ts +++ b/packages/visual-flow/src/view/socket.r.ts @@ -1,16 +1,13 @@ +import { Component, _ } from "refina"; import { Socket } from "../model"; -import Vf from "../plugin"; import { Direction } from "../types"; -import styles from "./socket.styles"; +import useStyles from "./socket.styles"; -declare module "refina" { - interface Components { - vfSocket(model: Socket): void; - } -} -Vf.outputComponents.vfSocket = function (_) { - return model => { - styles.root(model.disabled)(_); +export class VfSocket extends Component { + $main(model: Socket) { + const styles = useStyles(model.disabled); + + styles.root(); _.$css`transform: translate(${model.blockDisplayX}px, ${model.blockDisplayY}px) scale(${model.graph.boardScale})`; _.$ref(model.ref) && _._svgG({}, _ => { @@ -27,9 +24,9 @@ Vf.outputComponents.vfSocket = function (_) { }); if (!model.hideLabel) { - styles.label(model.disabled)(_); + styles.label(); _._svgText(model.labelBoardPos, model.label); } }); - }; -}; + } +} diff --git a/packages/visual-flow/src/view/socket.styles.ts b/packages/visual-flow/src/view/socket.styles.ts index ea9e43b..1198863 100644 --- a/packages/visual-flow/src/view/socket.styles.ts +++ b/packages/visual-flow/src/view/socket.styles.ts @@ -1,5 +1,5 @@ import { tokens } from "@fluentui/tokens"; -import { makeResetStyles, makeStyles, mergeClasses } from "@refina/griffel"; +import { defineStyles, makeResetStyles, makeStyles } from "@refina/griffel"; const rootClassName = makeResetStyles({ fill: tokens.colorBrandForegroundInverted, @@ -24,12 +24,11 @@ const labelStyles = makeStyles({ disabled: { fill: tokens.colorNeutralForegroundDisabled }, }); -export default { - root: (disabled: boolean) => - mergeClasses( +export default (disabled: boolean) => + defineStyles({ + root: [ rootClassName, disabled ? rootStyles.disabled : rootStyles.notDisabled, - ), - label: (disabled: boolean) => - mergeClasses(labelClassName, disabled && labelStyles.disabled), -}; + ], + label: [labelClassName, disabled && labelStyles.disabled], + }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f617273..cd0ef7e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ importers: specifier: ^8.0.3 version: 8.0.3 lint-staged: - specifier: ^14.0.0 + specifier: ^14.0.1 version: 14.0.1 prettier: specifier: 3.0.0 @@ -34,8 +34,8 @@ importers: specifier: ^15.2.3 version: 15.2.3 typescript: - specifier: ^5.1.6 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 vite: specifier: ^4.4.8 version: 4.4.11 @@ -47,8 +47,8 @@ importers: version: 3.0.0 devDependencies: typescript: - specifier: ^5.1.6 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 packages/mdui2-dts: devDependencies: @@ -59,8 +59,8 @@ importers: specifier: ^2.0.2 version: 2.0.2 typescript: - specifier: ^5.0.2 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 vite: specifier: ^4.4.8 version: 4.4.11 @@ -71,15 +71,15 @@ importers: specifier: ^0.44.0 version: 0.44.0 refina: - specifier: link:..\..\..\refina\packages\core - version: link:../../../refina/packages/core + specifier: ^0.6.1 + version: 0.6.1 devDependencies: '@refina/tsconfig': - specifier: link:..\..\..\refina\packages\tsconfig - version: link:../../../refina/packages/tsconfig + specifier: ^0.6.0 + version: 0.6.0(typescript@5.4.2) typescript: - specifier: ^5.0.2 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 packages/northstar: dependencies: @@ -102,76 +102,79 @@ importers: specifier: workspace:^ version: link:../visual-flow '@refina/basic-components': - specifier: link:..\..\..\refina\packages\basic-components - version: link:../../../refina/packages/basic-components + specifier: ^0.6.0 + version: 0.6.0(refina@0.6.1) '@refina/fluentui': - specifier: link:..\..\..\refina\packages\fluentui - version: link:../../../refina/packages/fluentui + specifier: ^0.6.1 + version: 0.6.1(refina@0.6.1) '@refina/fluentui-icons': - specifier: link:..\..\..\refina\packages\fluentui-icons - version: link:../../../refina/packages/fluentui-icons + specifier: ^0.6.1 + version: 0.6.1(refina@0.6.1) '@refina/griffel': - specifier: link:..\..\..\refina\packages\griffel - version: link:../../../refina/packages/griffel + specifier: ^0.6.0 + version: 0.6.0(refina@0.6.1) modern-screenshot: - specifier: ^4.4.33 - version: 4.4.33 + specifier: ^4.4.38 + version: 4.4.38 prettier: specifier: 3.0.0 version: 3.0.0 refina: - specifier: link:..\..\..\refina\packages\core - version: link:../../../refina/packages/core + specifier: ^0.6.1 + version: 0.6.1 devDependencies: '@refina/transformer': - specifier: link:..\..\..\refina\packages\transformer - version: link:../../../refina/packages/transformer + specifier: ^0.6.0 + version: 0.6.0 '@refina/tsconfig': - specifier: link:..\..\..\refina\packages\tsconfig - version: link:../../../refina/packages/tsconfig + specifier: ^0.6.0 + version: 0.6.0(typescript@5.4.2) '@types/wicg-file-system-access': - specifier: ^2023.10.2 - version: 2023.10.2 + specifier: ^2023.10.5 + version: 2023.10.5 autoprefixer: - specifier: ^10.4.15 - version: 10.4.16(postcss@8.4.31) + specifier: ^10.4.18 + version: 10.4.18(postcss@8.4.35) postcss: - specifier: ^8.4.27 - version: 8.4.31 + specifier: ^8.4.35 + version: 8.4.35 tailwindcss: - specifier: ^3.3.3 - version: 3.3.5 + specifier: ^3.4.1 + version: 3.4.1 typescript: - specifier: ^5.1.6 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 vite: - specifier: ^4.4.8 - version: 4.4.11 + specifier: ^4.5.2 + version: 4.5.2 + vite-plugin-inspect: + specifier: ^0.8.3 + version: 0.8.3(vite@4.5.2) vite-plugin-monaco-editor: specifier: ^1.1.0 - version: 1.1.0(monaco-editor@0.44.0) + version: 1.1.0(monaco-editor@0.47.0) vite-plugin-refina: - specifier: link:..\..\..\refina\packages\vite-plugin - version: link:../../../refina/packages/vite-plugin + specifier: ^0.6.0 + version: 0.6.0(typescript@5.4.2)(vite@4.5.2) vite-plugin-static-copy: - specifier: ^0.17.0 - version: 0.17.0(vite@4.4.11) + specifier: ^0.17.1 + version: 0.17.1(vite@4.5.2) packages/runtime: dependencies: '@refina/mdui': - specifier: link:..\..\..\refina\packages\mdui - version: link:../../../refina/packages/mdui + specifier: ^0.6.1 + version: 0.6.1(refina@0.6.1) refina: - specifier: link:..\..\..\refina\packages\core - version: link:../../../refina/packages/core + specifier: ^0.6.1 + version: 0.6.1 devDependencies: '@refina/tsconfig': - specifier: link:..\..\..\refina\packages\tsconfig - version: link:../../../refina/packages/tsconfig + specifier: ^0.6.0 + version: 0.6.0(typescript@5.4.2) typescript: - specifier: ^5.0.2 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 vite: specifier: ^4.4.8 version: 4.4.11 @@ -179,30 +182,30 @@ importers: packages/visual-flow: dependencies: '@fluentui/tokens': - specifier: 1.0.0-alpha.11 + specifier: ^1.0.0-alpha.11 version: 1.0.0-alpha.11 '@refina/fluentui': - specifier: link:..\..\..\refina\packages\fluentui - version: link:../../../refina/packages/fluentui + specifier: ^0.6.1 + version: 0.6.1(refina@0.6.1) '@refina/griffel': - specifier: link:..\..\..\refina\packages\griffel - version: link:../../../refina/packages/griffel + specifier: ^0.6.0 + version: 0.6.0(refina@0.6.1) deep-equal: specifier: ^2.2.2 version: 2.2.2 refina: - specifier: link:..\..\..\refina\packages\core - version: link:../../../refina/packages/core + specifier: ^0.6.1 + version: 0.6.1 devDependencies: '@refina/tsconfig': - specifier: link:..\..\..\refina\packages\tsconfig - version: link:../../../refina/packages/tsconfig + specifier: ^0.6.0 + version: 0.6.0(typescript@5.4.2) '@types/deep-equal': specifier: ^1.0.3 version: 1.0.3 typescript: - specifier: ^5.0.2 - version: 5.2.2 + specifier: ^5.4.2 + version: 5.4.2 packages: @@ -210,6 +213,48 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} + /@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==} + dev: true + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/runtime@7.24.0: + resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.1 + dev: false + + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + + /@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} + dev: false + /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} @@ -408,12 +453,74 @@ packages: dev: true optional: true + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: false + + /@floating-ui/dom@1.6.3: + resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 + dev: false + + /@floating-ui/utils@0.1.6: + resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==} + dev: false + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: false + + /@fluentui/keyboard-keys@9.0.7: + resolution: {integrity: sha512-vaQ+lOveQTdoXJYqDQXWb30udSfTVcIuKk1rV0X0eGAgcHeSDeP1HxMy+OgHOQZH3OiBH4ZYeWxb+tmfiDiygQ==} + dependencies: + '@swc/helpers': 0.5.6 + dev: false + /@fluentui/tokens@1.0.0-alpha.11: resolution: {integrity: sha512-kHKR1/JIGcBXA0qr+MyNg8KQZL4RLJXlhaSV6yNn50rJ0kTdQHUCKbbficvNZoeQBj3x0A8/WgAbPmfppZo0Zg==} dependencies: '@swc/helpers': 0.5.3 dev: false + /@fluentui/tokens@1.0.0-alpha.9: + resolution: {integrity: sha512-OSDRGTH93icerI9UrSjGRomFo2ZqqxZvkb4DliIdme3lG1x2i/ejucsp5JXwTOPSDd8QrFtXjZDGPW+yYqlNog==} + dependencies: + '@swc/helpers': 0.5.6 + dev: false + + /@griffel/core@1.15.2: + resolution: {integrity: sha512-RlsIXoSS3gaYykUgxFpwKAs/DV9cRUKp3CW1kt3iPAtsDTWn/o+8bT1jvBws/tMM2GBu/Uc0EkaIzUPqD7uA+Q==} + dependencies: + '@emotion/hash': 0.9.1 + '@griffel/style-types': 1.0.3 + csstype: 3.1.3 + rtl-css-js: 1.16.1 + stylis: 4.3.1 + tslib: 2.6.2 + dev: false + + /@griffel/style-types@1.0.3: + resolution: {integrity: sha512-AzbbYV/EobNIBtfMtyu2edFin895gjVxtu1nsRhTETUAIb0/LCZoue3Jd/kFLuPwe95rv5WRUBiQpVwJsrrFcw==} + dependencies: + csstype: 3.1.3 + dev: false + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + /@jridgewell/gen-mapping@0.3.3: resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -421,50 +528,75 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.9 + dev: false + + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.25 + dev: true /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true /@jridgewell/set-array@1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} + dev: false + + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + dev: true /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 + dev: false /@lit-labs/motion@1.0.6: resolution: {integrity: sha512-7d4d89CjdEMsU7lNG0gFMZOUowq00CgcJL1ifab0IVFc/fTCcfZyQuRb5vAhetkwPQFmiyP54tvHQ9GuHsLtuQ==} dependencies: lit: 3.1.0 - dev: true /@lit-labs/ssr-dom-shim@1.1.2: resolution: {integrity: sha512-jnOD+/+dSrfTWYfSXBXlo5l5f0q1UuJo3tkbMDCYA2lKUYq79jaxqtGEvnRoh049nt1vdo1+45RinipU6FGY2g==} - dev: true /@lit/reactive-element@2.0.2: resolution: {integrity: sha512-SVOwLAWUQg3Ji1egtOt1UiFe4zdDpnWHyc5qctSceJ5XIu0Uc76YmGpIjZgx9YJ0XtdW0Jm507sDvjOu+HnB8w==} dependencies: '@lit-labs/ssr-dom-shim': 1.1.2 - dev: true /@material/material-color-utilities@0.2.7: resolution: {integrity: sha512-0FCeqG6WvK4/Cc06F/xXMd/pv4FeisI0c1tUpBbfhA2n9Y8eZEv4Karjbmf2ZqQCPUWMrGp8A571tCjizxoTiQ==} - dev: true /@mdui/jq@3.0.1: resolution: {integrity: sha512-B6Dep5XgJHJAuFMDDzbWL5QNThRqExlmht/tpKkb6CF6iHVeGLY9Xpeuyc4qPdF452mFKtbde8jBO+vVJUxL/g==} dependencies: ssr-window: 4.0.2 tslib: 2.6.2 - dev: true /@mdui/shared@1.0.2: resolution: {integrity: sha512-7GEsfXcOR8zTA7n9/olDRBy1kL40Xv/haT9CqCQRMV1pY5+sirbUOyzx7Xb0oqKz+SJMj0aL2ZnwIhZhTpTwyQ==} @@ -476,6 +608,16 @@ packages: tslib: 2.6.2 dev: true + /@mdui/shared@1.0.5: + resolution: {integrity: sha512-5ypE0/p5ijI0jG/ioXd38mXUjYnIU7hr7fMKLG7Zhugkw9A7rkhstLLDzvuH6tDOOsx8co5/lny1WFwSPagI4A==} + dependencies: + '@mdui/jq': 3.0.1 + '@open-wc/dedupe-mixin': 1.4.0 + lit: 3.1.0 + ssr-window: 4.0.2 + tslib: 2.6.2 + dev: false + /@microsoft/api-extractor-model@7.28.2: resolution: {integrity: sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig==} dependencies: @@ -486,6 +628,16 @@ packages: - '@types/node' dev: true + /@microsoft/api-extractor-model@7.28.3: + resolution: {integrity: sha512-wT/kB2oDbdZXITyDh2SQLzaWwTOFbV326fP0pUwNW00WeliARs0qjmXBWmGWardEzp2U3/axkO3Lboqun6vrig==} + dependencies: + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0 + transitivePeerDependencies: + - '@types/node' + dev: true + /@microsoft/api-extractor@7.38.3: resolution: {integrity: sha512-xt9iYyC5f39281j77JTA9C3ISJpW1XWkCcnw+2vM78CPnro6KhPfwQdPDfwS5JCPNuq0grm8cMdPUOPvrchDWw==} hasBin: true @@ -506,6 +658,26 @@ packages: - '@types/node' dev: true + /@microsoft/api-extractor@7.39.0: + resolution: {integrity: sha512-PuXxzadgnvp+wdeZFPonssRAj/EW4Gm4s75TXzPk09h3wJ8RS3x7typf95B4vwZRrPTQBGopdUl+/vHvlPdAcg==} + hasBin: true + dependencies: + '@microsoft/api-extractor-model': 7.28.3 + '@microsoft/tsdoc': 0.14.2 + '@microsoft/tsdoc-config': 0.16.2 + '@rushstack/node-core-library': 3.62.0 + '@rushstack/rig-package': 0.5.1 + '@rushstack/ts-command-line': 4.17.1 + colors: 1.2.5 + lodash: 4.17.21 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.3.3 + transitivePeerDependencies: + - '@types/node' + dev: true + /@microsoft/tsdoc-config@0.16.2: resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} dependencies: @@ -539,6 +711,79 @@ packages: /@open-wc/dedupe-mixin@1.4.0: resolution: {integrity: sha512-Sj7gKl1TLcDbF7B6KUhtvr+1UCxdhMbNY5KxdU5IfMFWqL8oy1ZeAcCANjoB1TL0AJTcPmcCFsCbHf8X2jGDUA==} + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + dev: true + + /@refina/basic-components@0.6.0(refina@0.6.1): + resolution: {integrity: sha512-U7H+kWmQR0ASdZcrIMA0sJhCGd8ri82LGbvzBIO1fGMBcM+ihZIxxNg3uGVh+97B4i+/ueeIIAdztw/Nf//8xQ==} + peerDependencies: + refina: ^0.6.0 + dependencies: + refina: 0.6.1 + dev: false + + /@refina/fluentui-icons@0.6.1(refina@0.6.1): + resolution: {integrity: sha512-2251Fqm5EaXe5OSQPlGlJT0DuqROvZcOCUnAYH/Dl3WcAeZJGTE5Psv/GMb3RKVxi16g0eBAZqcrst+QUTFyNg==} + peerDependencies: + refina: ^0.6.1 + dependencies: + '@refina/griffel': 0.6.0(refina@0.6.1) + refina: 0.6.1 + dev: false + + /@refina/fluentui@0.6.1(refina@0.6.1): + resolution: {integrity: sha512-evkZ5Gj6X2rUjWxU7PqaqDnQPgg2FdxODz7HNvsHcvJmmsCIpasO3uaxQ4RviGtr/zEOFhK3VvzCPDpnMuSjiA==} + peerDependencies: + refina: ^0.6.1 + dependencies: + '@floating-ui/dom': 1.6.3 + '@fluentui/keyboard-keys': 9.0.7 + '@fluentui/tokens': 1.0.0-alpha.9 + '@refina/fluentui-icons': 0.6.1(refina@0.6.1) + '@refina/griffel': 0.6.0(refina@0.6.1) + keyborg: 2.5.0 + refina: 0.6.1 + dev: false + + /@refina/griffel@0.6.0(refina@0.6.1): + resolution: {integrity: sha512-4eS2H5XXAm6wkArLuJJS7fff0ruPZ2OYPo9S1srPzONI3KnyKYQHAf08TJzd3xLwPclgGPgYO0DI8t+Q6Ullgw==} + peerDependencies: + refina: ^0.6.0 + dependencies: + '@griffel/core': 1.15.2 + refina: 0.6.1 + dev: false + + /@refina/mdui@0.6.1(refina@0.6.1): + resolution: {integrity: sha512-RdUmv7dgWuNb0nELTD5+KMwXkXQQmViaLv1sNGOJNHfNJRn6A7t0zBO4lF33wGqREb8eFp2wBjmdDjoGS9ACyA==} + peerDependencies: + refina: ^0.6.1 + dependencies: + mdui: 2.0.6 + refina: 0.6.1 + dev: false + + /@refina/transformer@0.6.0: + resolution: {integrity: sha512-HuRypgBoeNk/qnNkhWeGV9JwiXituuPo0bxh3rSTxg3aDt+SeGsLVaRMMMppLNLm4vPMUPrzq8CZ9F1f2msxZw==} + dependencies: + magic-string: 0.30.8 + dev: true + + /@refina/tsconfig@0.6.0(typescript@5.4.2): + resolution: {integrity: sha512-iRrHNG+ZOH1NoNfrPkEShJM38uZ+C+8K0LZwlpRgK63+P3sY1TgnghcarDpOR0Xh7CFFhZCL+B2RHsOW6lxlSw==} + peerDependencies: + typescript: ^5.2.2 + dependencies: + typescript: 5.4.2 dev: true /@rollup/plugin-commonjs@25.0.7: @@ -589,6 +834,20 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@rushstack/node-core-library@3.61.0: resolution: {integrity: sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==} peerDependencies: @@ -606,6 +865,23 @@ packages: z-schema: 5.0.5 dev: true + /@rushstack/node-core-library@3.62.0: + resolution: {integrity: sha512-88aJn2h8UpSvdwuDXBv1/v1heM6GnBf3RjEy6ZPP7UnzHNCqOHA2Ut+ScYUbXcqIdfew9JlTAe3g+cnX9xQ/Aw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + dependencies: + colors: 1.2.5 + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + z-schema: 5.0.5 + dev: true + /@rushstack/rig-package@0.5.1: resolution: {integrity: sha512-pXRYSe29TjRw7rqxD4WS3HN/sRSbfr+tJs4a9uuaSIBAITbUggygdhuG0VrO0EO+QqH91GhYMN4S6KRtOEmGVA==} dependencies: @@ -628,6 +904,12 @@ packages: tslib: 2.6.2 dev: false + /@swc/helpers@0.5.6: + resolution: {integrity: sha512-aYX01Ke9hunpoCexYAgQucEpARGQ5w/cqHFrIR+e9gdKb1QWTsVJuTJ2ozQzIAxLyRQe/m+2RqzkyOOGiMKRQA==} + dependencies: + tslib: 2.6.2 + dev: false + /@types/argparse@1.0.38: resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} dev: true @@ -646,10 +928,69 @@ packages: /@types/trusted-types@2.0.7: resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + /@types/wicg-file-system-access@2023.10.5: + resolution: {integrity: sha512-e9kZO9kCdLqT2h9Tw38oGv9UNzBBWaR1MzuAavxPcsV/7FJ3tWbU6RI3uB+yKIDPGLkGVbplS52ub0AcRLvrhA==} + dev: true + + /@volar/language-core@1.11.1: + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + dependencies: + '@volar/source-map': 1.11.1 + dev: true + + /@volar/source-map@1.11.1: + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + dependencies: + muggle-string: 0.3.1 + dev: true + + /@volar/typescript@1.11.1: + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + dev: true + + /@vue/compiler-core@3.4.21: + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + dependencies: + '@babel/parser': 7.24.0 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.0.2 + dev: true + + /@vue/compiler-dom@3.4.21: + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + dev: true + + /@vue/language-core@1.8.27(typescript@5.4.2): + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + typescript: 5.4.2 + vue-template-compiler: 2.7.16 dev: true - /@types/wicg-file-system-access@2023.10.2: - resolution: {integrity: sha512-nSiK8qt0O7sQmDcW3HYfvya7GDoD6ipgdcUFzk3QN+UBIqXeNg38Nh6VnKv7EIPfkVETRiquyMskCbpxUzgX1Q==} + /@vue/shared@3.4.21: + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} dev: true /ajv@6.12.6: @@ -668,11 +1009,23 @@ packages: type-fest: 1.4.0 dev: true + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} dev: true + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -704,19 +1057,19 @@ packages: is-array-buffer: 3.0.2 dev: false - /autoprefixer@10.4.16(postcss@8.4.31): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + /autoprefixer@10.4.18(postcss@8.4.35): + resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.22.1 - caniuse-lite: 1.0.30001551 + browserslist: 4.23.0 + caniuse-lite: 1.0.30001597 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.31 + postcss: 8.4.35 postcss-value-parser: 4.2.0 dev: true @@ -737,6 +1090,7 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: false /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} @@ -750,15 +1104,15 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001551 - electron-to-chromium: 1.4.559 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) + caniuse-lite: 1.0.30001597 + electron-to-chromium: 1.4.702 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) dev: true /builtin-modules@3.3.0: @@ -766,6 +1120,13 @@ packages: engines: {node: '>=6'} dev: true + /bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + dependencies: + run-applescript: 7.0.0 + dev: true + /call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} dependencies: @@ -778,8 +1139,8 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - /caniuse-lite@1.0.30001551: - resolution: {integrity: sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==} + /caniuse-lite@1.0.30001597: + resolution: {integrity: sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==} dev: true /chalk@5.3.0: @@ -800,10 +1161,25 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 + dev: false + + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true /classcat@5.0.4: resolution: {integrity: sha512-sbpkOw6z413p+HDGcBENe498WM9woqWHiJxCq7nvmxe9WmrUmqfAcxpIwAiMtM5Q3AhYkzXcNQHqsWq0mND51g==} - dev: true /cli-cursor@4.0.0: resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} @@ -820,6 +1196,17 @@ packages: string-width: 5.1.2 dev: true + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + /colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: true @@ -849,8 +1236,13 @@ packages: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} dev: true + /computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + dev: true + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -866,6 +1258,14 @@ packages: engines: {node: '>=4'} hasBin: true + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + dev: false + + /de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + dev: true + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -906,6 +1306,19 @@ packages: engines: {node: '>=0.10.0'} dev: true + /default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + dev: true + + /default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + dev: true + /define-data-property@1.1.1: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} @@ -915,6 +1328,11 @@ packages: has-property-descriptors: 1.0.1 dev: false + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -934,14 +1352,27 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium@1.4.559: - resolution: {integrity: sha512-iS7KhLYCSJbdo3rUSkhDTVuFNCV34RKs2UaB9Ecr7VlqzjjWW//0nfsFF5dtDmyXlZQaDYYtID5fjtC/6lpRug==} + /electron-to-chromium@1.4.702: + resolution: {integrity: sha512-LYLXyEUsZ3nNSwiOWjI88N1PJUAMU2QphQSgGLVkFnb3FxZxNui2Vzi2PaKPgPWbsWbZstZnh6BMf/VQJamjiQ==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-stack-parser-es@0.1.1: + resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==} + dev: true + /es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} dependencies: @@ -986,8 +1417,8 @@ packages: '@esbuild/win32-x64': 0.18.20 dev: true - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: true @@ -1008,7 +1439,7 @@ packages: human-signals: 4.3.1 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.1.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 @@ -1027,13 +1458,25 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: false - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} dependencies: reusify: 1.0.4 @@ -1049,17 +1492,25 @@ packages: is-callable: 1.2.7 dev: false + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + /fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} dev: true - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 - universalify: 2.0.0 + universalify: 2.0.1 dev: true /fs-extra@7.0.1: @@ -1115,6 +1566,18 @@ packages: dependencies: is-glob: 4.0.3 + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + /glob@7.1.6: resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} dependencies: @@ -1124,6 +1587,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: false /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} @@ -1184,6 +1648,11 @@ packages: function-bind: 1.1.2 dev: false + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + /human-signals@4.3.1: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} @@ -1278,10 +1747,21 @@ packages: has-tostringtag: 1.0.0 dev: false + /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 + dev: true + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + /is-fullwidth-code-point@4.0.0: resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} engines: {node: '>=12'} @@ -1293,6 +1773,14 @@ packages: dependencies: is-extglob: 2.1.1 + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: false @@ -1314,7 +1802,6 @@ packages: /is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - dev: true /is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} @@ -1377,6 +1864,13 @@ packages: get-intrinsic: 1.2.2 dev: false + /is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + dev: true + /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} dev: false @@ -1385,9 +1879,24 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + /jiti@1.20.0: resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} hasBin: true + dev: false + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -1406,15 +1915,28 @@ packages: /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: - universalify: 2.0.0 + universalify: 2.0.1 optionalDependencies: graceful-fs: 4.2.11 dev: true + /keyborg@2.5.0: + resolution: {integrity: sha512-nb4Ji1suqWqj6VXb61Jrs4ab/UWgtGph4wDch2NIZDfLBUObmLcZE0aiDjZY49ghtu03fvwxDNvS9ZB0XMz6/g==} + dev: false + + /kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + dev: true + /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -1451,7 +1973,7 @@ packages: colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 5.0.1 - rfdc: 1.3.0 + rfdc: 1.3.1 wrap-ansi: 8.1.0 dev: true @@ -1461,13 +1983,11 @@ packages: '@lit-labs/ssr-dom-shim': 1.1.2 '@lit/reactive-element': 2.0.2 lit-html: 3.1.0 - dev: true /lit-html@3.1.0: resolution: {integrity: sha512-FwAjq3iNsaO6SOZXEIpeROlJLUlrbyMkn4iuv4f4u1H40Jw8wkeR/OUXZUHUoiYabGk8Y4Y0F/rgq+R4MrOLmA==} dependencies: '@types/trusted-types': 2.0.7 - dev: true /lit@3.1.0: resolution: {integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==} @@ -1475,7 +1995,6 @@ packages: '@lit/reactive-element': 2.0.2 lit-element: 4.0.2 lit-html: 3.1.0 - dev: true /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} @@ -1500,6 +2019,11 @@ packages: wrap-ansi: 8.1.0 dev: true + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -1514,6 +2038,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.15 dev: true + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /mdui@2.0.2: resolution: {integrity: sha512-n824kl2/kSO38j3jNQG62WXUYymgssMcOyeX/GkUjsPla7ohqX+rjPrg6pJfExAMZUjcMA3M5O0tDLQBm9nldA==} dependencies: @@ -1529,6 +2060,22 @@ packages: tslib: 2.6.2 dev: true + /mdui@2.0.6: + resolution: {integrity: sha512-OZowMR/df9vrwKTQ7d9LorEXe4+v9CKp88meTM1hj8ey5VWAOsqIQFXt7XcMSLPO7luDRk/tmeDqQa5YgP89ug==} + dependencies: + '@floating-ui/utils': 0.1.6 + '@lit-labs/motion': 1.0.6 + '@material/material-color-utilities': 0.2.7 + '@mdui/jq': 3.0.1 + '@mdui/shared': 1.0.5 + '@open-wc/dedupe-mixin': 1.4.0 + classcat: 5.0.4 + is-promise: 4.0.0 + lit: 3.1.0 + ssr-window: 4.0.2 + tslib: 2.6.2 + dev: false + /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} dev: true @@ -1558,6 +2105,7 @@ packages: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: false /minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} @@ -1566,17 +2114,43 @@ packages: brace-expansion: 2.0.1 dev: true - /modern-screenshot@4.4.33: - resolution: {integrity: sha512-uxxD4PdbIitXFlcNbO6kpRuxssfN+rJDfr8Pk2/eOx1dFz+LcaYDfbfeq7UxKuhsOVeN1tj996wEY3yJYwhnaQ==} + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /modern-screenshot@4.4.38: + resolution: {integrity: sha512-WeC3BuaJYjKvtXPSvSZRV5uvoJ4A1yrdb4mu1w5eLWkrONwD2mxYecRIJx3scf6/IwNl4zRh1SBrMibeJHMrYQ==} dev: false /monaco-editor@0.44.0: resolution: {integrity: sha512-5SmjNStN6bSuSE5WPT2ZV+iYn1/yI9sd4Igtk23ChvqB7kDk9lZbB9F5frsuvpB+2njdIeGGFf2G4gbE6rCC9Q==} + dev: false + + /monaco-editor@0.47.0: + resolution: {integrity: sha512-VabVvHvQ9QmMwXu4du008ZDuyLnHs9j7ThVFsiJoXSOQk18+LF89N4ADzPbFenm0W4V2bGHnFBztIRQTgBfxzw==} + dev: true + + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + dev: true /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true + /muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + dev: true + /mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: @@ -1589,8 +2163,14 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} dev: true /normalize-path@3.0.0: @@ -1602,8 +2182,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -1663,9 +2243,24 @@ packages: mimic-fn: 4.0.0 dev: true + /open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + dev: true + + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + dev: false /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} @@ -1680,6 +2275,18 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + + /perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -1711,6 +2318,19 @@ packages: postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 + dev: false + + /postcss-import@15.1.0(postcss@8.4.35): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true /postcss-js@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} @@ -1720,6 +2340,17 @@ packages: dependencies: camelcase-css: 2.0.1 postcss: 8.4.31 + dev: false + + /postcss-js@4.0.1(postcss@8.4.35): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.35 + dev: true /postcss-load-config@4.0.1(postcss@8.4.31): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} @@ -1736,6 +2367,24 @@ packages: lilconfig: 2.1.0 postcss: 8.4.31 yaml: 2.3.1 + dev: false + + /postcss-load-config@4.0.2(postcss@8.4.35): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.35 + yaml: 2.4.1 + dev: true /postcss-nested@6.0.1(postcss@8.4.31): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} @@ -1745,6 +2394,17 @@ packages: dependencies: postcss: 8.4.31 postcss-selector-parser: 6.0.13 + dev: false + + /postcss-nested@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.13 + dev: true /postcss-selector-parser@6.0.13: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} @@ -1753,6 +2413,14 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -1764,6 +2432,15 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + /prettier@3.0.0: resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} engines: {node: '>=14'} @@ -1788,6 +2465,14 @@ packages: dependencies: picomatch: 2.3.1 + /refina@0.6.1: + resolution: {integrity: sha512-+MqVhQX50I0LnSMlZFRu4Wz8rmjV37ou4EVXjd1sAT+4inlviZByXCfDrEDED89Ab/FF5+gj/ndDKth1E6i7lg==} + dev: false + + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + dev: false + /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -1824,8 +2509,8 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + /rfdc@1.3.1: + resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} dev: true /rollup@3.29.4: @@ -1836,6 +2521,17 @@ packages: fsevents: 2.3.3 dev: true + /rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + dependencies: + '@babel/runtime': 7.24.0 + dev: false + + /run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + dev: true + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -1849,6 +2545,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /set-function-length@1.1.1: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} @@ -1892,6 +2596,20 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + dev: true + /slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -1915,7 +2633,6 @@ packages: /ssr-window@4.0.2: resolution: {integrity: sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==} - dev: true /stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} @@ -1929,6 +2646,15 @@ packages: engines: {node: '>=0.6.19'} dev: true + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + /string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} @@ -1938,6 +2664,13 @@ packages: strip-ansi: 7.1.0 dev: true + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + /strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} @@ -1955,6 +2688,10 @@ packages: engines: {node: '>=8'} dev: true + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: false + /sucrase@3.34.0: resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} engines: {node: '>=8'} @@ -1967,6 +2704,21 @@ packages: mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 + dev: false + + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -2001,6 +2753,38 @@ packages: sucrase: 3.34.0 transitivePeerDependencies: - ts-node + dev: false + + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + lilconfig: 2.1.0 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-import: 15.1.0(postcss@8.4.35) + postcss-js: 4.0.1(postcss@8.4.35) + postcss-load-config: 4.0.2(postcss@8.4.35) + postcss-nested: 6.0.1(postcss@8.4.35) + postcss-selector-parser: 6.0.15 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true /thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -2013,12 +2797,22 @@ packages: dependencies: any-promise: 1.3.0 + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + /totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + dev: true + /ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -2036,8 +2830,14 @@ packages: hasBin: true dev: true - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} + hasBin: true + dev: true + + /typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -2047,19 +2847,19 @@ packages: engines: {node: '>= 4.0.0'} dev: true - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): + /update-browserslist-db@1.0.13(browserslist@4.23.0): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 + browserslist: 4.23.0 + escalade: 3.1.2 picocolors: 1.0.0 dev: true @@ -2077,25 +2877,91 @@ packages: engines: {node: '>= 0.10'} dev: true - /vite-plugin-monaco-editor@1.1.0(monaco-editor@0.44.0): + /vite-plugin-dts@3.7.3(typescript@5.4.2)(vite@4.5.2): + resolution: {integrity: sha512-26eTlBYdpjRLWCsTJebM8vkCieE+p9gP3raf+ecDnzzK5E3FG6VE1wcy55OkRpfWWVlVvKkYFe6uvRHYWx7Nog==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + dependencies: + '@microsoft/api-extractor': 7.39.0 + '@rollup/pluginutils': 5.1.0 + '@vue/language-core': 1.8.27(typescript@5.4.2) + debug: 4.3.4 + kolorist: 1.8.0 + typescript: 5.4.2 + vite: 4.5.2 + vue-tsc: 1.8.27(typescript@5.4.2) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + dev: true + + /vite-plugin-inspect@0.8.3(vite@4.5.2): + resolution: {integrity: sha512-SBVzOIdP/kwe6hjkt7LSW4D0+REqqe58AumcnCfRNw4Kt3mbS9pEBkch+nupu2PBxv2tQi69EQHQ1ZA1vgB/Og==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': '*' + vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 + peerDependenciesMeta: + '@nuxt/kit': + optional: true + dependencies: + '@antfu/utils': 0.7.7 + '@rollup/pluginutils': 5.1.0 + debug: 4.3.4 + error-stack-parser-es: 0.1.1 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.0.0 + sirv: 2.0.4 + vite: 4.5.2 + transitivePeerDependencies: + - rollup + - supports-color + dev: true + + /vite-plugin-monaco-editor@1.1.0(monaco-editor@0.47.0): resolution: {integrity: sha512-IvtUqZotrRoVqwT0PBBDIZPNraya3BxN/bfcNfnxZ5rkJiGcNtO5eAOWWSgT7zullIAEqQwxMU83yL9J5k7gww==} peerDependencies: monaco-editor: '>=0.33.0' dependencies: - monaco-editor: 0.44.0 + monaco-editor: 0.47.0 + dev: true + + /vite-plugin-refina@0.6.0(typescript@5.4.2)(vite@4.5.2): + resolution: {integrity: sha512-0iT82kG6d03NTr6LPAyCL65x2fj60rfxEl8tO5RbJdYsUGqegCDTbBny001teWKTzkB3jEifU5W7zBMZ7vdKMA==} + peerDependencies: + vite: ^4.5.2 + dependencies: + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + magic-string: 0.30.8 + vite: 4.5.2 + vite-plugin-dts: 3.7.3(typescript@5.4.2)(vite@4.5.2) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + - typescript dev: true - /vite-plugin-static-copy@0.17.0(vite@4.4.11): - resolution: {integrity: sha512-2HpNbHfDt8SDy393AGXh9llHkc8FJMQkI8s3T5WsH3SWLMO+f5cFIyPErl4yGKU9Uh3Vaqsd4lHZYTf042fQ2A==} + /vite-plugin-static-copy@0.17.1(vite@4.5.2): + resolution: {integrity: sha512-9h3iaVs0bqnqZOM5YHJXGHqdC5VAVlTZ2ARYsuNpzhEJUHmFqXY7dAK4ZFpjEQ4WLFKcaN8yWbczr81n01U4sQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^3.0.0 || ^4.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - chokidar: 3.5.3 - fast-glob: 3.3.1 - fs-extra: 11.1.1 + chokidar: 3.6.0 + fast-glob: 3.3.2 + fs-extra: 11.2.0 picocolors: 1.0.0 - vite: 4.4.11 + vite: 4.5.2 dev: true /vite@4.4.11: @@ -2133,6 +2999,60 @@ packages: fsevents: 2.3.3 dev: true + /vite@4.5.2: + resolution: {integrity: sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.18.20 + postcss: 8.4.35 + rollup: 3.29.4 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + dev: true + + /vue-tsc@1.8.27(typescript@5.4.2): + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.4.2) + semver: 7.6.0 + typescript: 5.4.2 + dev: true + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -2171,6 +3091,15 @@ packages: isexe: 2.0.0 dev: true + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + /wrap-ansi@8.1.0: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} @@ -2191,6 +3120,12 @@ packages: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} + /yaml@2.4.1: + resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} + engines: {node: '>= 14'} + hasBin: true + dev: true + /z-schema@5.0.5: resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} engines: {node: '>=8.0.0'}