From 660f0150cbf8422d68276683c95c1e0064b9e780 Mon Sep 17 00:00:00 2001 From: yyyyaaa Date: Sun, 15 Sep 2024 19:28:49 +0700 Subject: [PATCH 01/14] remove old code --- compiler/base.js | 474 ------------------ compiler/cache.js | 91 ---- compiler/dev.js | 129 ----- compiler/frameworks/react.compile.js | 42 -- compiler/frameworks/vue.compile.js | 330 ------------ compiler/index.js | 1 - compiler/log.js | 11 - compiler/mitosis.config.js | 24 - .../__fixtures__/button-event-handlers.ts | 237 --------- .../__snapshots__/vue.plugin.test.ts.snap | 233 --------- compiler/plugins/__tests__/vue.plugin.test.ts | 14 - compiler/plugins/react.plugin.js | 180 ------- compiler/plugins/vue.plugin.js | 92 ---- compiler/scaffold.config.js | 188 ------- compiler/tasks.js | 115 ----- 15 files changed, 2161 deletions(-) delete mode 100644 compiler/base.js delete mode 100644 compiler/cache.js delete mode 100644 compiler/dev.js delete mode 100644 compiler/frameworks/react.compile.js delete mode 100644 compiler/frameworks/vue.compile.js delete mode 100644 compiler/index.js delete mode 100644 compiler/log.js delete mode 100644 compiler/mitosis.config.js delete mode 100644 compiler/plugins/__fixtures__/button-event-handlers.ts delete mode 100644 compiler/plugins/__tests__/__snapshots__/vue.plugin.test.ts.snap delete mode 100644 compiler/plugins/__tests__/vue.plugin.test.ts delete mode 100644 compiler/plugins/react.plugin.js delete mode 100644 compiler/plugins/vue.plugin.js delete mode 100644 compiler/scaffold.config.js delete mode 100644 compiler/tasks.js diff --git a/compiler/base.js b/compiler/base.js deleted file mode 100644 index 9c9686eb..00000000 --- a/compiler/base.js +++ /dev/null @@ -1,474 +0,0 @@ -// @ts-check -const glob = require("glob"); -const fsPromise = require("fs/promises"); -const fs = require("fs-extra"); -const path = require("path"); -const filesystemTools = require("gluegun/filesystem"); -const stringTools = require("gluegun/strings"); -const printTools = require("gluegun/print"); -const commandLineArgs = require("command-line-args"); -const ora = require("ora"); -const compileCommand = require("@builder.io/mitosis-cli/dist/commands/compile"); -const camelCase = require("lodash/camelCase"); -const startCase = require("lodash/startCase"); -const scaffolds = require("./scaffold.config.js"); -const { cwd } = require("process"); -const { Cache } = require("./cache.js"); -const { fixReactTypeIssues } = require("./plugins/react.plugin"); - -const cache = new Cache(); - -const { scaffoldConfig, compileAllowList } = scaffolds; - -const DEFAULT_OPTIONS = { - elements: "src/**/*.lite.tsx", - dest: "packages", - options: {}, - target: "", - extension: "", - state: "", - styles: "", - customReplace: (_outFile, _isFirstCompilation) => null, -}; - -const optionDefinitions = [ - { name: "elements", alias: "e", type: String, multiple: true }, - { name: "dev", type: Boolean }, -]; - -function applyFixReactTypeIssues(content, filePath, target) { - if (target === "react" && !filePath.endsWith(".lite.tsx")) { - return fixReactTypeIssues(content); - } - return content; -} - -function stripVueJsxExtension(filePath) { - // .lite.tsx file is processed by Mitosis compiler - if (filePath.endsWith(".lite.tsx")) { - return filePath; - } - - return filePath.endsWith(".tsx") - ? filePath.replace(/\.tsx$/, ".ts") - : filePath; -} - -async function compile(rawOptions) { - const { watcherEvents, ...defaultOptions } = rawOptions; - - const options = { - ...DEFAULT_OPTIONS, - ...defaultOptions, - }; - - const cliConfig = commandLineArgs(optionDefinitions); - - // const globLiteTsxFiles = (file) => - // glob.sync(`src/**/${file}/${file}.lite.tsx`); - - // String or array of strings of glob patterns - const elementsFilter = cliConfig.elements - ? cliConfig.elements - : options.elements; - - options.elements = elementsFilter; - options.isDev = !!cliConfig.dev; - - const files = cliConfig.elements - ? options.elements - : glob.sync(options.elements); - - const filteredGlobbedFiles = compileAllowList[options.target] - ? files.filter((file) => { - return compileAllowList[options.target] - .map( - (allowedElement) => - `src/ui/${allowedElement}/${allowedElement}.lite.tsx`, - ) - .some((allowed) => allowed === file); - }) - : files; - - const outPath = `${options.dest}/${options.target}`; - - function copyNonMitosisLiteFiles(isFirstRun = false, scaffoldsExist = false) { - if (!isFirstRun) { - return; - } - - // Move src to all the package folder - // fs.copySync("src", `${outPath}/src`); - - // Move src to all the package folder - const srcFiles = glob.sync("src/**/*"); - const allowList = compileAllowList[options.target]; - const doesTargetHaveAllowList = allowList != null; - - srcFiles.forEach((file) => { - const relativePath = path.relative("src", file); - let destPath = path.join(outPath, "src", relativePath); - - if (doesTargetHaveAllowList && !file.startsWith("src/ui/shared")) { - const isAllowed = allowList.some( - (allowed) => - file.includes(`src/ui/${allowed}/`) || !file.startsWith("src/ui/"), - ); - if (!isAllowed) return; - } - - if (fs.lstatSync(file).isDirectory()) { - fs.ensureDirSync(destPath); - } else { - if (options.target === "vue") { - destPath = stripVueJsxExtension(destPath); - } - fs.copySync(file, destPath); - } - }); - - // For Vue, we need to add .vue to the export statement - if (options.target === "vue") { - const reExportIndexFiles = glob.sync(`${outPath}/src/ui/**/index.ts`); - - reExportIndexFiles.forEach((indexFile) => { - const data = fs.readFileSync(indexFile, "utf8"); - const result = addVueExtension(data); - fs.writeFileSync(indexFile, result, "utf8"); - }); - - copyFiles(`${outPath}/typings`, `${outPath}/src`); - } - - // Remove unnecessary files moved - const unnecessaryFiles = glob.sync(`${outPath}/src/**/*.lite.tsx`); - unnecessaryFiles.forEach((element) => fs.removeSync(element)); - - // Output file to /src - const targetSrcFiles = glob.sync(`${outPath}/src/**/*.{ts,tsx}`); - - targetSrcFiles.forEach((element) => { - const data = fs.readFileSync(element, "utf8"); - - let result = removeLiteExtension( - // Fix alias - data.replace(/\~\//g, "../../"), - ); - - result = applyFixReactTypeIssues(result, element, options.target); - - fs.writeFileSync(element, result, "utf8"); - }); - - let fileExports = "$2"; - - // Export only the elements we want with matching filters: - // - CLI flag --elements - // - allowList - if (cliConfig.elements || doesTargetHaveAllowList) { - const filterWithAllowList = (elements) => { - const elementsToFilter = doesTargetHaveAllowList - ? compileAllowList[options.target].map( - (allowedElement) => - `src/ui/${allowedElement}/${allowedElement}.lite.tsx`, - ) - : toArray(elements); - - return elementsToFilter; - }; - - fileExports = filterWithAllowList(options.elements) - .map((fileName) => { - const file = path.parse(fileName); - const name = file.name.replace(".lite", ""); - return `export { default as ${pascalName( - name, - )} } from './${file.dir.replace("src/", "")}';`; - }) - .join("\n"); - } - - const indexData = fs.readFileSync(`${outPath}/src/index.ts`, "utf8"); - - let indexResult = indexData - // Export only needed components - .replace( - /(\/\/ Init Components)(.+?)(\/\/ End Components)/s, - `$1\n${fileExports}\n$3`, - ) - .replace(/Platform.Default/g, `Platform.${pascalName(options.target)}`); - - // Adding scaffolds imports to index.ts - if (scaffoldsExist) { - const scaffoldNames = Object.keys(scaffoldConfig).map((name) => ({ - name, - Comp: pascalName(name), - })); - - const scaffoldImports = scaffoldNames - .map( - (item) => - `export { default as ${item.Comp} } from './ui/${item.name}';`, - ) - .join("\n"); - - indexResult = indexResult.replace( - /(\/\/ Init Components)(.+?)(\/\/ End Components)/s, - `$1$2${scaffoldImports}\n$3`, - ); - } - - fs.writeFileSync(`${outPath}/src/index.ts`, indexResult, "utf8"); - } - - async function handleWatcherEvents(watcherEvents) { - // Watcher event has shape Array<{ path: , type: 'update' | 'create' | 'delete' }> - const event = watcherEvents[0]; - - // example parsed path - // { - // root: '/', - // dir: '/Users/fatg/workspace/cosmology/interchain-ui/src/ui/asset-item-transfer', - // base: 'asset-item-transfer.css.ts', - // ext: '.ts', - // name: 'asset-item-transfer.css' - // } - const parsedPath = path.parse(event.path); - - const isLiteJSXComponent = - parsedPath.ext === ".tsx" && parsedPath.name.includes(".lite"); - const isScaffold = parsedPath.dir.includes("scaffolds"); - - let targetPath = path.join( - outPath, - parsedPath.dir.slice(parsedPath.dir.indexOf("src")), - parsedPath.base, - ); - - if (options.target === "vue") { - targetPath = stripVueJsxExtension(targetPath); - } - - if (event.type === "create" || event.type === "update") { - // Only process non lite jsx files in this handler - if (isLiteJSXComponent || isScaffold) return; - - try { - let fileContent = await fsPromise.readFile(event.path, "utf-8"); - fileContent = removeLiteExtension(fileContent); - - fileContent = applyFixReactTypeIssues( - fileContent, - event.path, - options.target, - ); - - await fsPromise.writeFile(targetPath, fileContent); - } catch (err) { - console.log(`handleWatcherEvents() [${event.type}] event error `, err); - } - } - - if (event.type === "delete") { - try { - await fsPromise.unlink(targetPath); - } catch (err) { - console.log("handleWatcherEvents() [delete] event error ", err); - } - } - } - - async function compileMitosisComponent(filepath) { - const file = path.parse(filepath); - let outFile = `${outPath}/${file.dir}/${file.name.replace(".lite", "")}.${ - options.extension - }`; - - let to = - options.target === "webcomponents" ? "webcomponent" : options.target; - - await compileCommand.run({ - parameters: { - options: { - from: "mitosis", - to: to, - out: outFile, - force: true, - api: options.api, - state: options.state, - styles: options.styles, - config: path.resolve(__dirname, "./mitosis.config.js"), - }, - array: [filepath], - }, - strings: stringTools.strings, - filesystem: filesystemTools.filesystem, - print: { ...printTools.print }, - }); - - return { - outFile, - }; - } - - async function addReactRSCPatch() { - const targetRootPath = path.resolve( - cwd(), - `packages/${options.target}/src`, - ); - const indexPath = path.resolve(targetRootPath, "index.ts"); - const hooksPath = path.resolve(targetRootPath, "ui", "hooks"); - - return fsPromise - .readdir(hooksPath) - .then((hookFolders) => { - const hookNamesByFolder = hookFolders.reduce((arr, folder) => { - // @ts-ignore - arr.push({ folder, hookName: camelCase(folder) }); - return arr; - }, []); - - const indexData = fs.readFileSync(indexPath, "utf8"); - - const hooksExports = hookNamesByFolder - .map( - (item) => - `export { default as ${item.hookName} } from './ui/hooks/${item.folder}';`, - ) - .filter((exportLine) => { - // Don't include exports if it's already there - return indexData.indexOf(exportLine) === -1; - }) - .join("\n"); - - const clientOnlyMarker = `import "client-only";`; - - const indexResult = `${indexData}\n${clientOnlyMarker}\n${hooksExports}`; - - // Skip if hooks exports are the same - if (indexResult === indexData) { - return; - } - - fs.writeFileSync(indexPath, indexResult, "utf8"); - }) - .catch((err) => { - console.log("Failed to add hooks exports", err); - }); - } - - function replacePropertiesFromCompiledFiles(outFile) { - const data = fs.readFileSync(outFile, "utf8"); - let result = data - // Fix alias - .replace(/\~\//g, "../../"); - - fs.writeFileSync(outFile, result, "utf8"); - } - - const spinner = ora(`>> Compiling [${options.target}]`).start(); - - for (const fileName of filteredGlobbedFiles) { - const isFirstCompilation = - !fs.existsSync(`${outPath}/src`) || options.isDev; - const file = path.parse(fileName); - const name = file.name.replace(".lite", ""); - - // Copying files - const { inDir, outDir } = getScaffoldsDirs(outPath); - const scaffoldsExist = fs.existsSync(inDir); - - copyNonMitosisLiteFiles(isFirstCompilation, scaffoldsExist); - - if (scaffoldsExist) { - fs.copySync(inDir, outDir); - } - - const changed = await cache.isChanged(fileName); - - if (!changed) { - continue; - } - - // Compile using Mitosis CLI - const { outFile } = await compileMitosisComponent(fileName); - replacePropertiesFromCompiledFiles(outFile); - options.customReplace({ - name, - pascalName: pascalName(name), - file, - outFile, - outPath, - isFirstCompilation, - }); - - spinner.text = `[Done] ${fileName}`; - } - - if (watcherEvents) { - await handleWatcherEvents(watcherEvents); - } - - if (!cache.isPopulated) { - await cache.build(files); - } - - if (options.target === "react") { - addReactRSCPatch(); - } - - spinner.succeed(); - spinner.stop(); -} - -module.exports = { - compile, -}; - -function pascalName(str) { - return startCase(str).replace(/\s/g, ""); -} - -function getScaffoldsDirs(rootPath) { - return { - inDir: `${rootPath}/scaffolds`, - outDir: `${rootPath}/src/ui`, - }; -} - -function removeLiteExtension(fileContent) { - return fileContent.replace(/\.lite/g, ""); -} - -function toArray(maybeArray) { - return Array.isArray(maybeArray) ? maybeArray : [maybeArray]; -} - -function addVueExtension(inputString) { - return inputString.replace(/(\.[^"';\s]+)("|')/g, "$1.vue$2"); -} - -async function copyFiles(srcDir, destDir) { - try { - // Ensure the destination directory exists, if not create it - await fs.mkdir(destDir, { recursive: true }); - - // Read all the files from the source directory - const files = await fs.readdir(srcDir); - - for (const file of files) { - // Construct full file paths for both the source and destination - const srcFile = path.join(srcDir, file); - const destFile = path.join(destDir, file); - - // Check if the source is indeed a file and not a directory - const stat = await fs.stat(srcFile); - if (stat.isFile()) { - // Copy each file to the destination directory - await fs.copyFile(srcFile, destFile); - } - } - } catch (error) { - console.error("Error copying files:", error); - } -} diff --git a/compiler/cache.js b/compiler/cache.js deleted file mode 100644 index b8065842..00000000 --- a/compiler/cache.js +++ /dev/null @@ -1,91 +0,0 @@ -const fs = require("fs/promises"); -const fsSync = require("fs"); -const crypto = require("crypto"); - -function replacer(key, value) { - if (value instanceof Map) { - return { - dataType: "Map", - value: Array.from(value.entries()), - }; - } else { - return value; - } -} - -class Cache { - constructor() { - // { : } - this.cache = new Map(); - this.isPopulated = false; - } - - async build(filePaths = []) { - const promises = filePaths - .filter((filePath) => fsSync.existsSync(filePath)) - .map(async (filePath) => { - try { - const fileContent = await fs.readFile(filePath, "utf8"); - const hash = this.hash(fileContent); - // Check if the file still exists and its content hasn't changed - // before setting the cache to avoid race conditions - const currentContent = await fs.readFile(filePath, "utf8"); - if (currentContent === fileContent) { - this.cache.set(filePath, hash); - } - } catch (err) { - console.error("Cannot build cache, error reading file ", filePath); - // Don't throw here, allow other files to be processed - } - }); - - try { - await Promise.all(promises); - this.isPopulated = true; - } catch (err) { - console.error("Cannot build cache ", err); - } - } - - toString() { - return JSON.stringify(this.cache, replacer); - } - - hash(source) { - return crypto.createHash("sha1").update(source).digest("base64"); - } - - has(filePath) { - return this.cache.has(filePath); - } - - get(filePath) { - return this.cache.get(filePath); - } - - set(filePath, source) { - const hash = this.hash(source); - this.cache.set(filePath, hash); - } - - // Check if file content changed - async isChanged(filePath) { - if (!this.cache.has(filePath)) { - return true; - } - - try { - const fileContent = await fs.readFile(filePath, "utf8"); - const currentHash = this.hash(fileContent); - const prevHash = this.cache.get(filePath); - return prevHash !== currentHash; - } catch (err) { - console.error("isDiff error ", err); - return true; - } - } -} - -module.exports = { - Cache, -}; diff --git a/compiler/dev.js b/compiler/dev.js deleted file mode 100644 index 919d90e5..00000000 --- a/compiler/dev.js +++ /dev/null @@ -1,129 +0,0 @@ -// @ts-check -const { Listr } = require("listr2"); -const path = require("path"); -const ora = require("ora"); -const watcher = require("@parcel/watcher"); -const lodash = require("lodash"); -const { compileReact } = require("./frameworks/react.compile"); - -(async () => { - const execa = (await import("execa")).command; - - let unsub; - - const tasks = new Listr([ - { - title: "Clean output", - task: () => - execa("pnpm run clear:artifacts && pnpm run clear:builds").catch(() => { - throw new Error("Cannot remove output directory"); - }), - }, - { - title: "Compile React Components", - task: () => - compileReact().catch((error) => { - throw new Error("[Dev] Error task compile react components " + error); - }), - }, - { - title: "Watching /src ...", - task: () => { - const compileWithCancelToken = (watcherEvent, token) => { - return new Promise(function (resolve, reject) { - compileReact(watcherEvent).then(resolve).catch(reject); - - token.cancel = function () { - reject(new Error("Cancelled")); - }; - }); - }; - - const compile = last(compileWithCancelToken); - - return new Listr([ - { - title: "Recompile Mitosis", - task: async () => { - const srcDir = path.resolve(process.cwd(), "src"); - const scaffoldDir = path.resolve( - process.cwd(), - "packages/react/scaffolds", - ); - - const onChange = lodash.debounce((err, _events) => { - const spinner = ora(`Watching src/ for changes...`).start(); - spinner.text = `src/ changed, compiling...`; - - const t = +Date.now(); - const timingLabel = `[t:${t}] Recompile took`; - console.time(timingLabel); - - compile(_events) - .then(() => { - spinner.succeed("Compiled successfully."); - console.timeEnd(timingLabel); - }) - .catch((e) => { - spinner.fail(`Error compiling mitosis ${e.message}.`); - }); - - if (err) { - spinner.fail( - `Error watching src/ for changes ${err?.message}.`, - ); - return; - } - }, 500); - - let watchSrc = watcher.subscribe(srcDir, (err, _events) => { - onChange(err, _events); - }); - - let watchScaffold = watcher.subscribe( - scaffoldDir, - (err, _events) => { - onChange(err, _events); - }, - ); - - return Promise.all([watchSrc, watchScaffold]).then( - (subscriptions) => { - unsub = () => { - subscriptions.forEach((subscription) => { - if ( - subscription && - typeof subscription.unsubscribe === "function" - ) { - subscription.unsubscribe(); - } - }); - }; - }, - ); - }, - options: { - persistentOutput: true, - }, - }, - ]); - }, - }, - ]); - - tasks.run().catch((err) => { - unsub(); - console.error(err); - }); -})(); - -function last(fn) { - const lastToken = { cancel: function () {} }; // start with no op - - return function executor() { - lastToken.cancel(); - const args = Array.prototype.slice.call(arguments); - args.push(lastToken); - return fn.apply(this, args); - }; -} diff --git a/compiler/frameworks/react.compile.js b/compiler/frameworks/react.compile.js deleted file mode 100644 index 93407827..00000000 --- a/compiler/frameworks/react.compile.js +++ /dev/null @@ -1,42 +0,0 @@ -// @ts-check -const fs = require("fs-extra"); -const compiler = require("../base"); -const { fixReactTypeIssues } = require("../plugins/react.plugin"); -const log = require("../log"); - -const DEFAULT_OPTIONS = { - target: "react", - extension: "tsx", - state: "useState", - styles: "style-tag", -}; - -function customReplaceReact(props) { - const { name, pascalName, outFile, _outPath, _isFirstCompilation } = props; - log.info(`\nCompiling ${name} [${pascalName}] for React...`); - - const data = fs.readFileSync(outFile, "utf8"); - - let result = fixReactTypeIssues(data); - - fs.writeFileSync(outFile, result, "utf8"); -} - -async function compileReact(watcherEvents) { - await compiler.compile({ - ...DEFAULT_OPTIONS, - watcherEvents, - customReplace: customReplaceReact, - }); -} - -module.exports = { - compileReact, -}; - -if (require.main === module) { - // Call directly through CLI - (async () => { - await compileReact(); - })(); -} diff --git a/compiler/frameworks/vue.compile.js b/compiler/frameworks/vue.compile.js deleted file mode 100644 index 0e61f2ec..00000000 --- a/compiler/frameworks/vue.compile.js +++ /dev/null @@ -1,330 +0,0 @@ -// @ts-check -const fs = require("fs-extra"); -const glob = require("glob"); -const compiler = require("../base.js"); -const log = require("../log.js"); - -const DEFAULT_OPTIONS = { - target: "vue", - extension: "vue", - api: "composition", - state: "", - styles: "", -}; - -function customReplaceVue(props) { - const { name, pascalName, outFile, outPath, isFirstCompilation } = props; - - log.info(`\nCompiling ${name} [${pascalName}] for Vue...`); - - if (isFirstCompilation) { - const data = fs.readFileSync(`${outPath}/src/index.ts`, "utf8"); - - log.info("\n ============== before edit index.ts =========== \n" + data); - - const result = data - // Add .vue to index - .replace( - /(export)(.*)\/ui\/(?!.*(\.css|\.css\.ts)")(.+)";/g, - `$1$2/ui/$3/$3.vue";`, - ) - .replace(/(extensions)\/(.*)\.vue/g, "$1/$2") - .replace(/\/helpers\.vue/g, "") - // Add .vue and a subpath to each export - .replace( - /(export { default as (\w+) } from '\.\/ui\/)([^';]+)';/g, - `$1$3/$3.vue';`, - ); - - log.warn("\n ============== after edit index.ts =========== \n" + result); - - fs.writeFileSync(`${outPath}/src/index.ts`, result, "utf8"); - - // Add .vue extension to all the indexes in src folder - glob.sync(`${outPath}/src/ui/**/index.ts`).map((src) => { - const data = fs - .readFileSync(src, "utf8") - // add vue to index - .replace(/(export { default } from)(.*)(';)/g, "$1$2.vue$3") - // but remove from hooks - .replace(/\.hook\.vue/g, ".hook"); - - fs.writeFileSync(src, data, "utf8"); - }); - } - - const data = fs.readFileSync(outFile, "utf8"); - - let result = data; - - const transforms = [ - patchPropsDestructuring, - // TODO: work on TS output later - // Need to parse + follow imports and resolve + inline types in the .vue files - // addPathAliasToHelperTypeImports, - // addPathAliasToRelativeTypeImports, - // (fileData) => inlineTypes(fileData, name, pascalName), - ]; - - result = transforms.reduce((acc, transform) => { - acc = transform(acc); - return acc; - }, result); - - fs.writeFileSync(outFile, result, "utf8"); -} - -const compileVue = async () => { - await compiler.compile({ - ...DEFAULT_OPTIONS, - customReplace: customReplaceVue, - }); -}; - -if (require.main === module) { - // Call directly through CLI - (async () => { - await compileVue(); - })(); -} - -// Due to a bug in Vue SFC compiler, we need to use TS path alias for the external types to resolve correctly -function addPathAliasToHelperTypeImports(inputString) { - // This regex matches type imports that start with "./" and captures the rest of the path - const helpersTypeImportRe = - /import type { ([\s\S]*?) } from "(..\/)+(models|helpers|styles)\/([\s\S]*?)"/g; - - const result = inputString.replace( - helpersTypeImportRe, - 'import type { $1 } from "@/$3/$4"', - ); - - return result; -} - -function addPathAliasToRelativeTypeImports(inputString) { - // This regex matches type imports that start with "./" and captures the rest of the path - // It also captures the filename without the .type extension - const regex = /import type { ([\s\S]*?) } from "\.\/([\w-]+)\.types"/g; - - // Replace the matched import with the "@" alias, the specified path, and the filename without .type extension - // repeated before the filename - return inputString.replace( - regex, - (match, typeName, filePathWithoutExtension) => { - // Extract the base filename without the .types extension - const baseFilename = filePathWithoutExtension.match(/([\w-]+)$/)[0]; - // Construct the new import statement - return `import type { ${typeName} } from "@/ui/${filePathWithoutExtension}/${baseFilename}.types"`; - }, - ); -} - -// Mitosis don't understand the destructure of someFn({...props}) yet, so it outputs `props.props`, we only need `props` -function patchPropsDestructuring(inputString) { - return inputString.replace(/props\.props/g, "props"); -} - -// ==================== Patching SFC compiler typescript issue ==================== -// The following code is a patch for the SFC compiler issue that causes the types to be incorrectly resolved -// in short, non-trivial types must be inlined in the .vue templates and can't be accessed by referencing an external file normally like in React apps -// import type { SomeType } from "./SomeType"; <-- this doesn't work in .vue files -// More info at: https://github.com/vuejs/core/issues/8286 -function getAllTheInterfacesFromPropsInComponent(result, pascalName) { - const regex1 = /interface\s+([^{]+){([^}]+)}/g; - const interfacesWithProps = {}; - let match; - - while ((match = regex1.exec(result)) !== null) { - const [interfaceDef] = match; - const interfaceName = interfaceDef - .split("{")[0] - .replace(/\n\s*/g, "") - .replace(/\{/g, "") - .replace(/interface/g, "") - .replace(/(extends)/g, " $1") - .replace(/(\r\n|\n|\r)/g, " ") - .trim(); - - if (interfaceName.includes("Props")) { - interfacesWithProps[interfaceName] = match[2].trim(); - } - } - - return interfacesWithProps; -} - -function searchComponentPropsInterface( - result, - interfacesWithProps, - pascalName, -) { - const interfaceSearchResult = Object.entries(interfacesWithProps).find( - ([interfaceName]) => interfaceName.includes(pascalName), - ); - - const [currentInterfacePropsName = "", currentInterfacePropsContent = ""] = - interfaceSearchResult ?? []; - - const extensions = currentInterfacePropsName - .replace(/.*extends/, "") - .trim() - .split(",") - .map((e) => e.trim()); - - const interfacesContent = [ - "// Original props \n", - currentInterfacePropsContent, - ]; - - extensions.forEach((extension) => { - let extensionName = extension; - let replacers = null; - - // If the extension has generics - if (extension.includes("<")) { - extensionName = extension.replace(/<.*>/g, ""); - const generics = extension.match(/<.*>/g); - replacers = generics && generics[0].replace(//g, ""); - } - - let content = interfacesWithProps[extensionName]; - - if (replacers) { - content = content.replace(/T/g, replacers); - } - - interfacesContent.push(`// Props from ${extensionName}\n`); - interfacesContent.push(content); - }); - - return interfacesContent; -} - -function addNewPropsInterfacesForComponent( - result, - interfacesContent, - pascalName, -) { - // Create the new props interface - const newPropsInterface = ` ${pascalName}Props {${interfacesContent.join("\n")}}`; - - // Deprecate the old props interface - return ( - result - // Deprecate the old props interface - .replace( - `export interface ${pascalName}Props`, - `interface __${pascalName}Props__`, - ) - // Add the new props interface - .replace( - `interface __${pascalName}Props__`, - `// This interface is auto generated to join the interfaces \nexport interface ${newPropsInterface}\n\ninterface __${pascalName}Props__`, - ) - ); -} - -function mergeAllPropsInterfaceIntoNewInterface(result, pascalName) { - const interfacesWithProps = getAllTheInterfacesFromPropsInComponent( - result, - pascalName, - ); - const interfacesContent = searchComponentPropsInterface( - result, - interfacesWithProps, - pascalName, - ); - return addNewPropsInterfacesForComponent( - result, - interfacesContent, - pascalName, - ); -} - -function inlineTypes(fileData, name, pascalName) { - const allTheNeededTypes = glob - .sync([ - `src/models/**/*.model.ts`, - `src/**/${name}.types.tsx`, - `src/styles/themes.css.ts`, - `src/styles/rainbow-sprinkles.css.ts`, - ]) - .reverse() - .map((src) => fs.readFileSync(src, "utf8")) - .join("\n") - // Remove type imports, should be injected - .replace(/import type .*/g, ""); - - // First try to fix the problem with watchers and names - //////////////////// - const watchRegex = - /watch\(\s*\(\)\s*=>\s*\[(.*)\],\s*\(\[(.*)\]\s*\) ?=>\s*{([\s\S]*?)},\n/g; - - let match; - let result = fileData; - - while ((match = watchRegex.exec(fileData)) !== null) { - let callbackRegex = match[3].trim(); - let parametersRegex = match[2].trim(); - const parameters = parametersRegex.split(/\s*,\s*/); - - parameters.forEach((parameter) => { - parametersRegex = parametersRegex.replace( - new RegExp(parameter, "g"), - `___${parameter}`, - ); - callbackRegex = callbackRegex.replace( - new RegExp(`props\\.${parameter}`, "g"), - parameter, - ); - callbackRegex = callbackRegex.replace( - new RegExp(`${parameter}\\.value`, "g"), - `${parameter}`, - ); - callbackRegex = callbackRegex.replace( - new RegExp(parameter, "g"), - `___${parameter}`, - ); - }); - - result = result - .replace(match[3], callbackRegex) - .replace( - new RegExp(`(watch.*)(\\s.*)?(\\s.*\\(\\[)(${match[2].trim()})(\\])`), - `$1$2$3${parametersRegex}$5`, - ); - } - - result = result - // Inject needed types to this file as cannot be imported in vue https://vuejs.org/guide/typescript/composition-api.html - .replace( - /(\n$1`, - ) - // Type defineProps and Inject types as cannot be imported in vue https://vuejs.org/guide/typescript/composition-api.html - .replace( - /(const props = defineProps)\(\[(.|\n)*\]\);/gm, - `$1<${pascalName}Props>();`, - ) - // Enable children - .replace(/this\.children/, "this.$slots.default()") - // Add ? to .value variables - // .replace(/\.value/g, '?.value') - // Replace classname for class - .replace(/\.className/g, ".class") - //Fix using value in computed properties and classes - // .replace(/classes\.(?!value)(.*`)/g, 'classes.value.$1') - // remove ? from left hand assigments - // .replace(/\?\.value =/g, '.value =') - // Replace vue html .values for refs - .replace(/\.value \}\}/g, "}}") - // Enable Typescript - .replace(/script setup/g, 'script setup lang="ts"') - // TODO: Temporal meanwhile we find another why but this is stable - .replace(/getData\(\);/g, "getData.bind(this)();"); - - result = mergeAllPropsInterfaceIntoNewInterface(result, pascalName); - - return result; -} diff --git a/compiler/index.js b/compiler/index.js deleted file mode 100644 index faebb0b6..00000000 --- a/compiler/index.js +++ /dev/null @@ -1 +0,0 @@ -require("./tasks"); diff --git a/compiler/log.js b/compiler/log.js deleted file mode 100644 index 9fb7814c..00000000 --- a/compiler/log.js +++ /dev/null @@ -1,11 +0,0 @@ -const clc = require("cli-color"); - -const error = clc.red.bold; -const warn = clc.yellow; -const info = clc.blue; - -module.exports = { - error: (...args) => console.log(error(...args)), - warn: (...args) => console.log(warn(...args)), - info: (...args) => console.log(info(...args)), -}; diff --git a/compiler/mitosis.config.js b/compiler/mitosis.config.js deleted file mode 100644 index bbc14bcf..00000000 --- a/compiler/mitosis.config.js +++ /dev/null @@ -1,24 +0,0 @@ -const reactPlugin = require("./plugins/react.plugin"); -const vuePlugin = require("./plugins/vue.plugin"); - -/** - * @type {import('@builder.io/mitosis').MitosisConfig} - */ -module.exports = { - targets: ["vue", "react"], - options: { - react: { - typescript: true, - // TODO: turn this on when we distribute components as preserved modules - addUseClientDirectiveIfNeeded: false, - plugins: [reactPlugin], - }, - vue: { - typescript: true, - defineComponent: true, - namePrefix: "interchain", - api: "composition", - plugins: [vuePlugin], - }, - }, -}; diff --git a/compiler/plugins/__fixtures__/button-event-handlers.ts b/compiler/plugins/__fixtures__/button-event-handlers.ts deleted file mode 100644 index 65f62707..00000000 --- a/compiler/plugins/__fixtures__/button-event-handlers.ts +++ /dev/null @@ -1,237 +0,0 @@ -export const buttonEventHandlersFixture = ` - - -`; diff --git a/compiler/plugins/__tests__/__snapshots__/vue.plugin.test.ts.snap b/compiler/plugins/__tests__/__snapshots__/vue.plugin.test.ts.snap deleted file mode 100644 index 1023efe2..00000000 --- a/compiler/plugins/__tests__/__snapshots__/vue.plugin.test.ts.snap +++ /dev/null @@ -1,233 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`vue plugin should fix vue event handlers 1`] = ` -" - - -" -`; diff --git a/compiler/plugins/__tests__/vue.plugin.test.ts b/compiler/plugins/__tests__/vue.plugin.test.ts deleted file mode 100644 index 28ed468a..00000000 --- a/compiler/plugins/__tests__/vue.plugin.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { fixVueEventHandlers } from "../vue.plugin"; -import { buttonEventHandlersFixture } from "../__fixtures__/button-event-handlers"; - -describe("vue plugin", () => { - it("should fix vue event handlers", () => { - const result = fixVueEventHandlers(buttonEventHandlersFixture); - const vBind = 'v-bind="{ ...spreadAttributes, ...eventHandlers }"'; - const vOn = 'v-on="{ ...eventHandlers }"'; - - console.log(result); - expect(result).not.toContain(vBind); - expect(result).toContain(vOn); - }); -}); diff --git a/compiler/plugins/react.plugin.js b/compiler/plugins/react.plugin.js deleted file mode 100644 index cd7a33c0..00000000 --- a/compiler/plugins/react.plugin.js +++ /dev/null @@ -1,180 +0,0 @@ -// @ts-check -const scaffolds = require("../scaffold.config.js"); -const scaffoldConfig = scaffolds.scaffoldConfig; -// const log = require("../log.js"); - -/** - * @type {import('@builder.io/mitosis').Plugin} - */ -module.exports = function reactCompilerPlugin() { - return { - json: { - pre: (json) => { - const comp = { - ...json, - }; - - const scaffolds = comp.meta.useMetadata?.scaffolds ?? []; - - if (scaffolds.length > 0) { - // An import will have this shape - // { - // imports: { WalletConnectModalProps: 'WalletConnectModalProps' }, - // path: './wallet-connect-modal.types' - // } - scaffolds.forEach((scaffold) => { - const scaffoldMeta = scaffoldConfig[scaffold]; - - if (scaffoldMeta) { - comp.imports.push(scaffoldMeta.import); - } - - changeJsxTag(comp, scaffold); - }); - } - - return comp; - }, - }, - code: { - // Happens before formatting - pre: (codeStr) => { - return [fixReactTypeIssues, fixIncorrectRefName].reduce( - (acc, transform) => { - acc = transform(codeStr); - return acc; - }, - codeStr, - ); - }, - }, - }; -}; - -// @ts-expect-error -module.exports.fixReactTypeIssues = fixReactTypeIssues; - -function changeJsxTag(component, scaffoldName) { - const scaffoldMeta = scaffoldConfig[scaffoldName]; - - // Check if the node has a name property that contains "Scaffold" - if (component.name && isScaffoldJSXTag(component.name)) { - // Replace scaffold jsx tag in the name property - component.name = scaffoldMeta.jsxMap[component.name]; - } - - // Check if the node has a children property - if (componentHasChildren(component)) { - // Recursively check each child node - component.children = component.children.map((child) => { - const isDirectNodeScaffold = isScaffoldJSXTag(child.name); - - if (isDirectNodeScaffold) { - return { - ...child, - name: scaffoldMeta.jsxMap[child.name], - }; - } else if (componentHasChildren(child)) { - return changeJsxTag(child, scaffoldName); - } - - return child; - }); - } - - return component; -} - -function isScaffoldJSXTag(componentName) { - return componentName.includes("Scaffold"); -} - -function componentHasChildren(component) { - return component.children && Array.isArray(component.children); -} - -function fixReactTypeIssues(codeStr) { - const s1 = transformForwardRef(codeStr); - - return ( - s1 - // Fix typescript types for children prop - .replace(/children\?:\sany/g, "children?: React.ReactNode") - .replace(/Children\s=\sany/g, "Children = React.ReactNode") - // Fix content editable - .replace( - /contentEditable\=(.*)/g, - "contentEditable=$1\nsuppressContentEditableWarning={true}", - ) - // Fix some svg attributes not correctly compiled - .replace(/(shape-rendering)="(.*)"/g, `shapeRendering="$2"`) - .replace(/(clip-path)="(.*)"/g, `clipPath="$2"`) - .replace(/(clip-rule)="(.*)"/g, `clipRule="$2"`) - .replace(/(stroke-linejoin)="(.*)"/g, `strokeLinejoin="$2"`) - .replace(/(stroke-linecap)="(.*)"/g, `strokeLinecap="$2"`) - .replace(/(stroke-width)="(.*)"/g, `strokeWidth="$2"`) - .replace(/(fill-rule)="(.*)"/g, `fillRule="$2"`) - .replace(/(srcset)={(.*)}/g, `srcSet={$2}`) - ); -} - -function transformForwardRef(codeStr) { - // First part: Transform the forwardRef part - const transformedForwardRef = codeStr.replace( - /forwardRef<\s*([A-Za-z]+)Props\s*\[\s*"(\w+)Ref"\s*\]\s*>/g, - (match, componentName, ref) => { - return `forwardRef`; - }, - ); - - // Second part: Transform the function signature to use the correct ref case - const transformedFunctionSignature = transformedForwardRef.replace( - /function\s+([A-Za-z]+)\s*\(\s*props\s*:\s*\1Props\s*,\s*(\w+)\s*\)/g, - (match, componentName, refParam) => { - // Ensure the parameter ends with 'Ref' and construct the type key - const refParamWithRef = refParam.endsWith("Ref") - ? refParam - : `${refParam}Ref`; - const propKey = - refParamWithRef.charAt(0).toLowerCase() + refParamWithRef.slice(1); - return `function ${componentName}(props: ${componentName}Props, ${refParamWithRef}: ${componentName}Props["${propKey}"])`; - }, - ); - - return transformedFunctionSignature; -} - -function fixBoxForwardRef(codeStr) { - const isBoxComponent = codeStr.match(/const\s+Box\s*=\s*forwardRef/); - - console.log("isBoxComponent", isBoxComponent); - if (isBoxComponent) { - // Add import for BoxProps - codeStr = codeStr.replace( - /import { DEFAULT_VALUES } from "\.\/box\.types";/, - `import { DEFAULT_VALUES, BoxProps } from "./box.types";`, - ); - - // Modify forwardRef call to include BoxProps - codeStr = codeStr.replace( - /const Box = forwardRef\(function Box\(props, boxRef\)/, - `const Box = forwardRef(function Box(props: BoxProps, boxRef)`, - ); - } - - return codeStr; -} - -function fixIncorrectRefName(codeStr) { - const re = /boxRef=\{([^{}]+)\.current\}/g; - const isBoxComponent = codeStr.includes( - `const Box = forwardRef`, - ); - - // If the component is a Box component, we need to change the actual ref passed with props.boxRef or boxRef (forwardedRef) - if (isBoxComponent) { - return codeStr.replace(`ref={boxRef}`, `ref={props.boxRef ?? boxRef}`); - } - - return codeStr.replace(re, "boxRef={$1}"); -} diff --git a/compiler/plugins/vue.plugin.js b/compiler/plugins/vue.plugin.js deleted file mode 100644 index 6af46835..00000000 --- a/compiler/plugins/vue.plugin.js +++ /dev/null @@ -1,92 +0,0 @@ -// @ts-check -const { parse } = require("@babel/parser"); -const traverse = require("@babel/traverse").default; -const generate = require("@babel/generator").default; -const t = require("@babel/types"); - -/** - * @type {import('@builder.io/mitosis').Plugin} - */ -module.exports = function vueCompilerPlugin() { - return { - json: { - // Happens after getting json - post: (json) => { - json = fixCleanupRefAst(json); - return json; - }, - }, - code: { - // Happens before formatting - pre: (codeStr) => { - return [fixVueClassName].reduce((acc, transform) => { - acc = transform(acc); - return acc; - }, codeStr); - }, - }, - }; -}; - -// Export for testing -// @ts-ignore -module.exports.fixVueEventHandlers = fixVueEventHandlers; - -function fixCleanupRefAst(ast) { - if (ast.hooks && ast.hooks.onUnMount) { - const onUnMountCode = ast.hooks.onUnMount.code; - - let updatedCode = onUnMountCode; - - if ( - onUnMountCode && - /if\s*\(\s*typeof\s+cleanupRef\.value\s*===\s*["']function["']\s*\)/.test( - onUnMountCode, - ) - ) { - const ast = parse(onUnMountCode, { - sourceType: "module", - plugins: ["typescript"], - }); - - traverse(ast, { - IfStatement(path) { - const { test, consequent } = path.node; - if ( - t.isBinaryExpression(test) && - t.isUnaryExpression(test.left) && - t.isMemberExpression(test.left.argument) && - t.isIdentifier(test.left.argument.object) && - test.left.argument.object.name === "cleanupRef" && - t.isIdentifier(test.left.argument.property) && - test.left.argument.property.name === "value" && - t.isStringLiteral(test.right) && - test.right.value === "function" - ) { - const newConsequent = t.blockStatement([ - t.expressionStatement( - t.callExpression( - t.memberExpression( - t.identifier("cleanupRef"), - t.identifier("value"), - ), - [], - ), - ), - ]); - path.node.consequent = newConsequent; - } - }, - }); - - updatedCode = generate(ast).code; - } - - ast.hooks.onUnMount.code = updatedCode; - } - return ast; -} - -function fixVueClassName(codeStr) { - return codeStr.replace(/\bprops\.className\b/g, "props.class"); -} diff --git a/compiler/scaffold.config.js b/compiler/scaffold.config.js deleted file mode 100644 index 4d806838..00000000 --- a/compiler/scaffold.config.js +++ /dev/null @@ -1,188 +0,0 @@ -// This is a made-up thing from us used for scaffolds, not from Mitosis CLI -// put it here to centralize config -module.exports.scaffoldConfig = { - modal: { - // {from, to} - // Maps from /> to JSX tag name - jsxMap: { - ScaffoldModal: "Modal", - }, - import: { - imports: { Modal: "default" }, - path: "../modal", - }, - }, - select: { - jsxMap: { - ScaffoldSelect: "Select", - }, - import: { - imports: { Select: "default" }, - path: "../select", - }, - }, - combobox: { - jsxMap: { - ScaffoldCombobox: "Combobox", - }, - import: { - imports: { Combobox: "default" }, - path: "../combobox", - }, - }, - slider: { - jsxMap: { - ScaffoldSlider: "Slider", - }, - import: { - imports: { Slider: "default" }, - path: "../slider", - }, - }, - "select-option": { - jsxMap: { - ScaffoldSelectOption: "SelectOption", - }, - import: { - imports: { SelectOption: "default" }, - path: "../select-option", - }, - }, - popover: { - jsxMap: { - ScaffoldPopover: "Popover", - }, - import: { - imports: { Popover: "default" }, - path: "../popover", - }, - }, - "popover-trigger": { - jsxMap: { - ScaffoldPopoverTrigger: "PopoverTrigger", - }, - import: { - imports: { PopoverTrigger: "default" }, - path: "../popover-trigger", - }, - }, - "popover-content": { - jsxMap: { - ScaffoldPopoverContent: "PopoverContent", - }, - import: { - imports: { PopoverContent: "default" }, - path: "../popover-content", - }, - }, - "chain-swap-combobox": { - jsxMap: { - ScaffoldChainSwapCombobox: "ChainSwapCombobox", - }, - import: { - imports: { ChainSwapCombobox: "default" }, - path: "../chain-swap-combobox", - }, - }, - "change-chain-combobox": { - jsxMap: { - ScaffoldChangeChainCombobox: "ChangeChainCombobox", - }, - import: { - imports: { ChangeChainCombobox: "default" }, - path: "../change-chain-combobox", - }, - }, - "number-field": { - jsxMap: { - ScaffoldNumberField: "NumberField", - }, - import: { - imports: { NumberField: "default" }, - path: "../number-field", - }, - }, - "governance-checkbox": { - jsxMap: { - ScaffoldGovernanceCheckbox: "GovernanceCheckbox", - }, - import: { - imports: { GovernanceCheckbox: "default" }, - path: "../governance-checkbox", - }, - }, - "governance-radio": { - jsxMap: { - ScaffoldGovernanceRadio: "GovernanceRadio", - }, - import: { - imports: { GovernanceRadio: "default" }, - path: "../governance-radio", - }, - }, - "governance-radio-group": { - jsxMap: { - ScaffoldGovernanceRadioGroup: "GovernanceRadioGroup", - }, - import: { - imports: { GovernanceRadioGroup: "default" }, - path: "../governance-radio-group", - }, - }, - "noble-chain-combobox": { - jsxMap: { - ScaffoldNobleChainCombobox: "NobleChainCombobox", - }, - import: { - imports: { NobleChainCombobox: "default" }, - path: "../noble-chain-combobox", - }, - }, -}; - -// Only allow these components for each target, if null = allow all -// This is kinda like feature flag for components -module.exports.compileAllowList = { - react: null, - vue: [ - // "avatar", - // "avatar-badge", - // "avatar-image", - // "avatar-name", - "box", - "theme-provider", - "text", - "button", - // "callout", - // "stack", - // "center", - // "icon-button", - // "spinner", - // "tooltip", - // "animate-layout", - // "container", - // "divider", - // "fade-in", - // "field-label", - // "icon", - // "link", - // "qrcode", - // "reveal", - // "skeleton", - // "breadcrumb", - // "clipboard-copy-text", - // "toast", - // "connect-modal", - // "connect-modal-head", - // "connect-modal-install-button", - // "connect-modal-qrcode", - // "connect-modal-qrcode-error", - // "connect-modal-qrcode-skeleton", - // "connect-modal-status", - // "connect-modal-wallet-button", - // "connect-modal-wallet-list", - // ==== - // "interchain-ui-provider", - // "basic-modal", - ], -}; diff --git a/compiler/tasks.js b/compiler/tasks.js deleted file mode 100644 index 5e6f395e..00000000 --- a/compiler/tasks.js +++ /dev/null @@ -1,115 +0,0 @@ -// @ts-check -const { Listr } = require("listr2"); -const commandLineArgs = require("command-line-args"); -const util = require("util"); -const exec = util.promisify(require("child_process").exec); - -const optionDefinitions = [ - { name: "elements", alias: "e", type: String, multiple: true }, - { - name: "platforms", - alias: "p", - type: String, - multiple: true, - defaultValue: ["react", "vue"], // TODO: add more targets below - // defaultValue: ["angular", "react", "solid", "svelte", "vue"], - }, - { name: "lint", type: Boolean, defaultValue: true }, - { name: "no-lint", type: Boolean }, -]; - -const shouldMinify = process.env.MINIFY === "true"; -const shouldSkipBundling = process.env.NO_BUILD === "true"; - -(async () => { - const cliConfig = commandLineArgs(optionDefinitions); - const execa = (await import("execa")).command; - cliConfig.lint = cliConfig.lint && !cliConfig["no-lint"]; // TODO: add linting - - const tasks = new Listr([ - { - title: "Pretasks", - task: () => { - return new Listr( - [ - { - title: "Clean output", - task: (_, task) => { - const platforms = Array.isArray(cliConfig.platforms) - ? cliConfig.platforms - : [cliConfig.platforms]; - - const platformPkgRoot = - platforms.length === 1 - ? `${platforms}` - : `{${platforms.join(",")}}`; - - const cleanCmd = `rimraf packages/${platformPkgRoot}/{src,dist,lib,types,stats.html}`; - task.output = `Cleaning dir: ${cleanCmd}`; - return exec(cleanCmd); - }, - }, - ], - { concurrent: true }, - ); - }, - }, - { - title: `Compile Mitosis Elements: ${ - cliConfig.elements?.join(", ") || "all" - }`, - task: () => { - return new Listr( - cliConfig.platforms.map((platform) => ({ - title: `Compile ${platform}`, - task: () => - execa( - `node ./compiler/frameworks/${platform}.compile.js ${ - cliConfig.elements - ? `--elements ${cliConfig.elements.join(" ")}` - : "" - }`, - ).catch((error) => { - throw new Error(`Error compiling ${platform} ${error.message}`); - }), - })), - { concurrent: true }, - ); - }, - }, - { - title: `Bundle Packages: ${cliConfig.platforms?.join(", ") || ""}`, - task: async () => { - if (shouldSkipBundling) return true; - - const platforms = Array.isArray(cliConfig.platforms) - ? cliConfig.platforms - : [cliConfig.platforms]; - - const platformGlob = - platforms.length === 1 - ? platforms - : `{${cliConfig.platforms.join(",")}}`; - - const filters = `--filter "@interchain-ui/${platformGlob}"`; - - const buildCmd = `pnpm run --stream ${filters} build`; - - try { - await exec(buildCmd); - - if (shouldMinify) { - const minifyCssCmd = `pnpm run --stream ${filters} minifyCss`; - await exec(minifyCssCmd); - } - } catch (error) { - throw new Error("Error bundling packages " + error); - } - }, - }, - ]); - - tasks.run().catch((err) => { - console.error(err); - }); -})(); From b5521344a55b4858dee74c8b6343efe6d30b1526 Mon Sep 17 00:00:00 2001 From: yyyyaaa Date: Mon, 16 Sep 2024 00:43:45 +0700 Subject: [PATCH 02/14] stories --- packages/compiler/src/scaffold.config.ts | 64 +- packages/react/package.json | 22 +- packages/vue/package.json | 20 +- packages/vue/stories/AnimateLayout.stories.ts | 39 + packages/vue/stories/Avatar.stories.ts | 70 + packages/vue/stories/AvatarBadge.stories.ts | 33 + packages/vue/stories/Box.stories.ts | 35 + packages/vue/stories/Breadcrumb.stories.ts | 32 + packages/vue/stories/Button.stories.ts | 84 + packages/vue/stories/Callout.stories.ts | 42 + packages/vue/stories/Center.stories.ts | 29 + .../vue/stories/ClipboardCopyText.stories.ts | 26 + packages/vue/stories/ConnectModal.stories.ts | 35 + .../vue/stories/ConnectModalHead.stories.ts | 32 + .../ConnectModalInstallButton.stories.ts | 30 + .../vue/stories/ConnectModalQRCode.stories.ts | 30 + .../ConnectModalQRCodeError.stories.ts | 30 + .../ConnectModalQRCodeSkeleton.stories.ts | 24 + .../vue/stories/ConnectModalStatus.stories.ts | 41 + .../ConnectModalWalletButton.stories.ts | 30 + .../stories/ConnectModalWalletList.stories.ts | 43 + packages/vue/stories/Container.stories.ts | 38 + packages/vue/stories/Divider.stories.ts | 31 + packages/vue/stories/FadeIn.stories.ts | 39 + packages/vue/stories/FieldLabel.stories.ts | 32 + packages/vue/stories/Icon.stories.ts | 36 + packages/vue/stories/IconButton.stories.ts | 40 + packages/vue/stories/Link.stories.ts | 35 + packages/vue/stories/QRCode.stories.ts | 30 + packages/vue/stories/Reveal.stories.ts | 39 + packages/vue/stories/Skeleton.stories.ts | 32 + packages/vue/stories/Spinner.stories.ts | 31 + packages/vue/stories/Stack.stories.ts | 43 + packages/vue/stories/Text.stories.ts | 43 + packages/vue/stories/ThemeProvider.stories.ts | 39 + packages/vue/stories/Toast.stories.ts | 44 + packages/vue/stories/Tooltip.stories.ts | 37 + packages/vue/stories/core/Box.stories.ts | 76 - packages/vue/stories/core/Button.stories.ts | 320 --- packages/vue/stories/core/Icon.stories.ts | 70 - packages/vue/stories/core/Text.stories.ts | 133 - pnpm-lock.yaml | 2222 +++++------------ 42 files changed, 1889 insertions(+), 2312 deletions(-) create mode 100644 packages/vue/stories/AnimateLayout.stories.ts create mode 100644 packages/vue/stories/Avatar.stories.ts create mode 100644 packages/vue/stories/AvatarBadge.stories.ts create mode 100644 packages/vue/stories/Box.stories.ts create mode 100644 packages/vue/stories/Breadcrumb.stories.ts create mode 100644 packages/vue/stories/Button.stories.ts create mode 100644 packages/vue/stories/Callout.stories.ts create mode 100644 packages/vue/stories/Center.stories.ts create mode 100644 packages/vue/stories/ClipboardCopyText.stories.ts create mode 100644 packages/vue/stories/ConnectModal.stories.ts create mode 100644 packages/vue/stories/ConnectModalHead.stories.ts create mode 100644 packages/vue/stories/ConnectModalInstallButton.stories.ts create mode 100644 packages/vue/stories/ConnectModalQRCode.stories.ts create mode 100644 packages/vue/stories/ConnectModalQRCodeError.stories.ts create mode 100644 packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts create mode 100644 packages/vue/stories/ConnectModalStatus.stories.ts create mode 100644 packages/vue/stories/ConnectModalWalletButton.stories.ts create mode 100644 packages/vue/stories/ConnectModalWalletList.stories.ts create mode 100644 packages/vue/stories/Container.stories.ts create mode 100644 packages/vue/stories/Divider.stories.ts create mode 100644 packages/vue/stories/FadeIn.stories.ts create mode 100644 packages/vue/stories/FieldLabel.stories.ts create mode 100644 packages/vue/stories/Icon.stories.ts create mode 100644 packages/vue/stories/IconButton.stories.ts create mode 100644 packages/vue/stories/Link.stories.ts create mode 100644 packages/vue/stories/QRCode.stories.ts create mode 100644 packages/vue/stories/Reveal.stories.ts create mode 100644 packages/vue/stories/Skeleton.stories.ts create mode 100644 packages/vue/stories/Spinner.stories.ts create mode 100644 packages/vue/stories/Stack.stories.ts create mode 100644 packages/vue/stories/Text.stories.ts create mode 100644 packages/vue/stories/ThemeProvider.stories.ts create mode 100644 packages/vue/stories/Toast.stories.ts create mode 100644 packages/vue/stories/Tooltip.stories.ts delete mode 100644 packages/vue/stories/core/Box.stories.ts delete mode 100644 packages/vue/stories/core/Button.stories.ts delete mode 100644 packages/vue/stories/core/Icon.stories.ts delete mode 100644 packages/vue/stories/core/Text.stories.ts diff --git a/packages/compiler/src/scaffold.config.ts b/packages/compiler/src/scaffold.config.ts index d49a4ac8..490fb3ef 100644 --- a/packages/compiler/src/scaffold.config.ts +++ b/packages/compiler/src/scaffold.config.ts @@ -160,42 +160,42 @@ type CompileAllowList = { const compileAllowList: CompileAllowList = { react: null, vue: [ - // "avatar", - // "avatar-badge", - // "avatar-image", - // "avatar-name", + "avatar", + "avatar-badge", + "avatar-image", + "avatar-name", "box", "theme-provider", "text", "button", - // "callout", - // "stack", - // "center", - // "icon-button", - // "spinner", - // "tooltip", - // "animate-layout", - // "container", - // "divider", - // "fade-in", - // "field-label", - // "icon", - // "link", - // "qrcode", - // "reveal", - // "skeleton", - // "breadcrumb", - // "clipboard-copy-text", - // "toast", - // "connect-modal", - // "connect-modal-head", - // "connect-modal-install-button", - // "connect-modal-qrcode", - // "connect-modal-qrcode-error", - // "connect-modal-qrcode-skeleton", - // "connect-modal-status", - // "connect-modal-wallet-button", - // "connect-modal-wallet-list", + "callout", + "stack", + "center", + "icon-button", + "spinner", + "tooltip", + "animate-layout", + "container", + "divider", + "fade-in", + "field-label", + "icon", + "link", + "qrcode", + "reveal", + "skeleton", + "breadcrumb", + "clipboard-copy-text", + "toast", + "connect-modal", + "connect-modal-head", + "connect-modal-install-button", + "connect-modal-qrcode", + "connect-modal-qrcode-error", + "connect-modal-qrcode-skeleton", + "connect-modal-status", + "connect-modal-wallet-button", + "connect-modal-wallet-list", // ==== // "interchain-ui-provider", // "basic-modal", diff --git a/packages/react/package.json b/packages/react/package.json index c64d71dc..12771636 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -118,7 +118,7 @@ "@chain-registry/osmosis": "^1.62.59", "@chain-registry/types": "^0.18.19", "@chain-registry/utils": "^1.46.59", - "@chromatic-com/storybook": "^1.7.0", + "@chromatic-com/storybook": "^2.0.2", "@parcel/config-default": "^2.12.0", "@parcel/core": "^2.12.0", "@parcel/optimizer-swc": "^2.12.0", @@ -131,14 +131,14 @@ "@parcel/transformer-typescript-tsc": "^2.12.0", "@parcel/transformer-typescript-types": "^2.12.0", "@react-types/combobox": "^3.12.1", - "@storybook/addon-essentials": "^8.2.9", - "@storybook/addon-interactions": "^8.2.9", - "@storybook/addon-links": "^8.2.9", - "@storybook/addon-viewport": "^8.2.9", - "@storybook/blocks": "^8.2.9", - "@storybook/react": "^8.2.9", - "@storybook/react-vite": "^8.2.9", - "@storybook/test": "^8.2.9", + "@storybook/addon-essentials": "^8.3.0", + "@storybook/addon-interactions": "^8.3.0", + "@storybook/addon-links": "^8.3.0", + "@storybook/addon-viewport": "^8.3.0", + "@storybook/blocks": "^8.3.0", + "@storybook/react": "^8.3.0", + "@storybook/react-vite": "^8.3.0", + "@storybook/test": "^8.3.0", "@types/react": "latest", "@vanilla-extract/parcel-transformer": "^1.0.9", "@vanilla-extract/vite-plugin": "^4.0.15", @@ -150,8 +150,8 @@ "parcel-optimizer-unlink-css": "link:../parcel-optimizer-unlink-css", "parcel-resolver-ts-base-url": "^1.3.1", "prop-types": "^15.8.1", - "storybook": "^8.2.9", - "storybook-react-rsbuild": "^0.0.7", + "storybook": "^8.3.0", + "storybook-react-rsbuild": "^0.1.0", "vite": "^5.4.2", "vite-plugin-replace": "^0.1.1" }, diff --git a/packages/vue/package.json b/packages/vue/package.json index 3e25a8d8..83bbb2d8 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -83,15 +83,15 @@ "zustand": "^4.5.5" }, "devDependencies": { - "@chromatic-com/storybook": "^1.8.0", - "@storybook/addon-essentials": "^8.2.9", - "@storybook/addon-interactions": "^8.2.9", - "@storybook/addon-links": "^8.2.9", - "@storybook/addon-onboarding": "^8.2.9", - "@storybook/blocks": "^8.2.9", - "@storybook/test": "^8.2.9", - "@storybook/vue3": "^8.2.9", - "@storybook/vue3-vite": "^8.2.9", + "@chromatic-com/storybook": "^2.0.2", + "@storybook/addon-essentials": "^8.3.0", + "@storybook/addon-interactions": "^8.3.0", + "@storybook/addon-links": "^8.3.0", + "@storybook/addon-onboarding": "^8.3.0", + "@storybook/blocks": "^8.3.0", + "@storybook/test": "^8.3.0", + "@storybook/vue3": "^8.3.0", + "@storybook/vue3-vite": "^8.3.0", "@types/animejs": "^3.1.12", "@types/lodash": "^4.17.7", "@types/node": "^20.16.2", @@ -110,7 +110,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "shiki-es": "^0.14.0", - "storybook": "^8.2.9", + "storybook": "^8.3.0", "tslib": "^2.7.0", "typescript": "^5.5.4", "vite": "^5.4.2", diff --git a/packages/vue/stories/AnimateLayout.stories.ts b/packages/vue/stories/AnimateLayout.stories.ts new file mode 100644 index 00000000..76ce6975 --- /dev/null +++ b/packages/vue/stories/AnimateLayout.stories.ts @@ -0,0 +1,39 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import AnimateLayout from "../src/ui/animate-layout/animate-layout.vue"; +import Box from "../src/ui/box/box.vue"; +import { ref } from "vue"; + +const meta: Meta = { + component: AnimateLayout, + title: "AnimateLayout", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { AnimateLayout, Box }, + setup() { + const show = ref(true); + const toggle = () => { + show.value = !show.value; + }; + return { args, show, toggle }; + }, + template: ` +
+ + + + This content will animate when added or removed + + +
+ `, + }), +}; diff --git a/packages/vue/stories/Avatar.stories.ts b/packages/vue/stories/Avatar.stories.ts new file mode 100644 index 00000000..2fd460b8 --- /dev/null +++ b/packages/vue/stories/Avatar.stories.ts @@ -0,0 +1,70 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Avatar from "../src/ui/avatar/avatar.vue"; +import AvatarBadge from "../src/ui/avatar-badge/avatar-badge.vue"; +import Box from "../src/ui/box/box.vue"; +import Stack from "../src/ui/stack/stack.vue"; + +const meta: Meta = { + component: Avatar, + title: "Avatar", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +const dogImage = `https://picsum.photos/id/237/200/200`; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { Avatar, Stack }, + setup() { + return { args }; + }, + template: ` + + + + + + + + + + `, + }), +}; + +export const WithBadge: Story = { + args: {}, + render: (args) => ({ + components: { Avatar, AvatarBadge, Box, Stack }, + setup() { + return { args, dogImage }; + }, + template: ` + + + + + + + + + + + `, + }), +}; diff --git a/packages/vue/stories/AvatarBadge.stories.ts b/packages/vue/stories/AvatarBadge.stories.ts new file mode 100644 index 00000000..c309fb73 --- /dev/null +++ b/packages/vue/stories/AvatarBadge.stories.ts @@ -0,0 +1,33 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import AvatarBadge from "../src/ui/avatar-badge/avatar-badge.vue"; +import Avatar from "../src/ui/avatar/avatar.vue"; + +const meta: Meta = { + component: AvatarBadge, + title: "AvatarBadge", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + attributes: { + backgroundColor: "$green400", + }, + }, + render: (args) => ({ + components: { AvatarBadge, Avatar }, + setup() { + return { args }; + }, + template: ` + + + + `, + }), +}; diff --git a/packages/vue/stories/Box.stories.ts b/packages/vue/stories/Box.stories.ts new file mode 100644 index 00000000..fbd7b0ba --- /dev/null +++ b/packages/vue/stories/Box.stories.ts @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Box from "../src/ui/box/box.vue"; + +const meta: Meta = { + component: Box, + title: "Box", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + bg: "$background", + p: "$4", + borderRadius: "$md", + borderWidth: "1px", + borderStyle: "solid", + borderColor: "$divider", + }, + render: (args) => ({ + components: { Box }, + setup() { + return { args }; + }, + template: ` + + This is a Box component + + `, + }), +}; diff --git a/packages/vue/stories/Breadcrumb.stories.ts b/packages/vue/stories/Breadcrumb.stories.ts new file mode 100644 index 00000000..ad1a7040 --- /dev/null +++ b/packages/vue/stories/Breadcrumb.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Breadcrumb from "../src/ui/breadcrumb/breadcrumb.vue"; + +const meta: Meta = { + component: Breadcrumb, + title: "Breadcrumb", + tags: ["autodocs"], + argTypes: { + children: { control: "object" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + children: [ + { label: "Home", href: "/" }, + { label: "Category", href: "/category" }, + { label: "Current Page" }, + ], + }, + render: (args) => ({ + components: { Breadcrumb }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Button.stories.ts b/packages/vue/stories/Button.stories.ts new file mode 100644 index 00000000..048975cf --- /dev/null +++ b/packages/vue/stories/Button.stories.ts @@ -0,0 +1,84 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Button from "../src/ui/button/button.vue"; + +const meta: Meta = { + component: Button, + title: "Button", + tags: ["autodocs"], + argTypes: { + intent: { + control: "select", + options: [ + "primary", + "secondary", + "tertiary", + "success", + "warning", + "danger", + "text", + ], + }, + variant: { + control: "select", + options: ["solid", "ghost", "outlined", "unstyled"], + }, + size: { + control: "select", + options: ["sm", "md", "lg"], + }, + isLoading: { + control: "boolean", + }, + disabled: { + control: "boolean", + }, + fluidWidth: { + control: "boolean", + }, + fluid: { + control: "boolean", + }, + leftIcon: { + control: "text", + }, + rightIcon: { + control: "text", + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + intent: "primary", + variant: "solid", + }, + render: (args) => ({ + components: { Button }, + setup() { + const handleClick = () => { + alert("Button clicked"); + }; + return { args, handleClick }; + }, + template: '', + }), +}; + +export const Secondary: Story = { + args: { + intent: "secondary", + }, + render: (args) => ({ + components: { Button }, + setup() { + return { args }; + }, + template: '', + }), +}; + +// Add more stories for other button variants and states... diff --git a/packages/vue/stories/Callout.stories.ts b/packages/vue/stories/Callout.stories.ts new file mode 100644 index 00000000..814a48b6 --- /dev/null +++ b/packages/vue/stories/Callout.stories.ts @@ -0,0 +1,42 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Callout from "../src/ui/callout/callout.vue"; + +const meta: Meta = { + component: Callout, + title: "Callout", + tags: ["autodocs"], + argTypes: { + intent: { + control: "select", + options: ["info", "success", "error", "warning", "none"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Info: Story = { + args: { + title: "Visually important content", + intent: "info", + iconName: "lock", + attributes: { + width: "600px", + }, + }, + render: (args) => ({ + components: { Callout }, + setup() { + return { args }; + }, + template: ` + + You will need to undelegate in order for your staked assets to be liquid again. This process will take 14 days to complete. + + `, + }), +}; + +// Add more stories for other callout intents... diff --git a/packages/vue/stories/Center.stories.ts b/packages/vue/stories/Center.stories.ts new file mode 100644 index 00000000..dcb0f84f --- /dev/null +++ b/packages/vue/stories/Center.stories.ts @@ -0,0 +1,29 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Center from "../src/ui/center/center.vue"; +import Box from "../src/ui/box/box.vue"; + +const meta: Meta = { + component: Center, + title: "Center", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { Center, Box }, + setup() { + return { args }; + }, + template: ` +
+ Centered Content +
+ `, + }), +}; diff --git a/packages/vue/stories/ClipboardCopyText.stories.ts b/packages/vue/stories/ClipboardCopyText.stories.ts new file mode 100644 index 00000000..4162e7a4 --- /dev/null +++ b/packages/vue/stories/ClipboardCopyText.stories.ts @@ -0,0 +1,26 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ClipboardCopyText from "../src/ui/clipboard-copy-text/clipboard-copy-text.vue"; + +const meta: Meta = { + component: ClipboardCopyText, + title: "ClipboardCopyText", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + text: "Copy this text to clipboard", + }, + render: (args) => ({ + components: { ClipboardCopyText }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModal.stories.ts b/packages/vue/stories/ConnectModal.stories.ts new file mode 100644 index 00000000..ca7045d4 --- /dev/null +++ b/packages/vue/stories/ConnectModal.stories.ts @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModal from "../src/ui/connect-modal/connect-modal.vue"; +import Button from "../src/ui/button/button.vue"; +import { ref } from "vue"; + +const meta: Meta = { + component: ConnectModal, + title: "ConnectModal", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { ConnectModal, Button }, + setup() { + const isOpen = ref(false); + const toggleModal = () => { + isOpen.value = !isOpen.value; + }; + return { args, isOpen, toggleModal }; + }, + template: ` +
+ + +
+ `, + }), +}; diff --git a/packages/vue/stories/ConnectModalHead.stories.ts b/packages/vue/stories/ConnectModalHead.stories.ts new file mode 100644 index 00000000..65cab42a --- /dev/null +++ b/packages/vue/stories/ConnectModalHead.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalHead from "../src/ui/connect-modal-head/connect-modal-head.vue"; + +const meta: Meta = { + component: ConnectModalHead, + title: "ConnectModalHead", + tags: ["autodocs"], + argTypes: { + title: { control: "text" }, + hasCloseButton: { control: "boolean" }, + hasBackButton: { control: "boolean" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + title: "Connect Wallet", + hasCloseButton: true, + hasBackButton: false, + }, + render: (args) => ({ + components: { ConnectModalHead }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalInstallButton.stories.ts b/packages/vue/stories/ConnectModalInstallButton.stories.ts new file mode 100644 index 00000000..77b24cfe --- /dev/null +++ b/packages/vue/stories/ConnectModalInstallButton.stories.ts @@ -0,0 +1,30 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalInstallButton from "../src/ui/connect-modal-install-button/connect-modal-install-button.vue"; + +const meta: Meta = { + component: ConnectModalInstallButton, + title: "ConnectModalInstallButton", + tags: ["autodocs"], + argTypes: { + walletName: { control: "text" }, + walletUrl: { control: "text" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + walletName: "Example Wallet", + walletUrl: "https://example.com/wallet", + }, + render: (args) => ({ + components: { ConnectModalInstallButton }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalQRCode.stories.ts b/packages/vue/stories/ConnectModalQRCode.stories.ts new file mode 100644 index 00000000..9635e965 --- /dev/null +++ b/packages/vue/stories/ConnectModalQRCode.stories.ts @@ -0,0 +1,30 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalQRCode from "../src/ui/connect-modal-qrcode/connect-modal-qrcode.vue"; + +const meta: Meta = { + component: ConnectModalQRCode, + title: "ConnectModalQRCode", + tags: ["autodocs"], + argTypes: { + uri: { control: "text" }, + status: { control: "select", options: ["loading", "done", "error"] }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + uri: "https://example.com/qr", + status: "loading", + }, + render: (args) => ({ + components: { ConnectModalQRCode }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalQRCodeError.stories.ts b/packages/vue/stories/ConnectModalQRCodeError.stories.ts new file mode 100644 index 00000000..516fd226 --- /dev/null +++ b/packages/vue/stories/ConnectModalQRCodeError.stories.ts @@ -0,0 +1,30 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalQRCodeError from "../src/ui/connect-modal-qrcode-error/connect-modal-qrcode-error.vue"; + +const meta: Meta = { + component: ConnectModalQRCodeError, + title: "ConnectModalQRCodeError", + tags: ["autodocs"], + argTypes: { + errorTitle: { control: "text" }, + errorDesc: { control: "text" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + errorTitle: "Error", + errorDesc: "Failed to generate QR code", + }, + render: (args) => ({ + components: { ConnectModalQRCodeError }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts b/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts new file mode 100644 index 00000000..2e998921 --- /dev/null +++ b/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts @@ -0,0 +1,24 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalQRCodeSkeleton from "../src/ui/connect-modal-qrcode-skeleton/connect-modal-qrcode-skeleton.vue"; + +const meta: Meta = { + component: ConnectModalQRCodeSkeleton, + title: "ConnectModalQRCodeSkeleton", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { ConnectModalQRCodeSkeleton }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalStatus.stories.ts b/packages/vue/stories/ConnectModalStatus.stories.ts new file mode 100644 index 00000000..cd1311e4 --- /dev/null +++ b/packages/vue/stories/ConnectModalStatus.stories.ts @@ -0,0 +1,41 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalStatus from "../src/ui/connect-modal-status/connect-modal-status.vue"; + +const meta: Meta = { + component: ConnectModalStatus, + title: "ConnectModalStatus", + tags: ["autodocs"], + argTypes: { + status: { + control: "select", + options: ["Connected", "Connecting", "Error"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + status: "Connected", + connectedInfo: { + avatar: "https://example.com/avatar.jpg", + name: "John Doe", + address: "0x1234...5678", + }, + wallet: { + name: "Example Wallet", + logo: "https://example.com/wallet-logo.png", + mobileDisabled: false, + }, + }, + render: (args) => ({ + components: { ConnectModalStatus }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalWalletButton.stories.ts b/packages/vue/stories/ConnectModalWalletButton.stories.ts new file mode 100644 index 00000000..16970e52 --- /dev/null +++ b/packages/vue/stories/ConnectModalWalletButton.stories.ts @@ -0,0 +1,30 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalWalletButton from "../src/ui/connect-modal-wallet-button/connect-modal-wallet-button.vue"; + +const meta: Meta = { + component: ConnectModalWalletButton, + title: "ConnectModalWalletButton", + tags: ["autodocs"], + argTypes: { + name: { control: "text" }, + logo: { control: "text" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + name: "Example Wallet", + logo: "https://example.com/wallet-logo.png", + }, + render: (args) => ({ + components: { ConnectModalWalletButton }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/ConnectModalWalletList.stories.ts b/packages/vue/stories/ConnectModalWalletList.stories.ts new file mode 100644 index 00000000..773951ec --- /dev/null +++ b/packages/vue/stories/ConnectModalWalletList.stories.ts @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ConnectModalWalletList from "../src/ui/connect-modal-wallet-list/connect-modal-wallet-list.vue"; +import { Wallet } from "../src/ui/connect-modal-wallet-list/connect-modal-wallet-list.types"; + +const meta: Meta = { + component: ConnectModalWalletList, + title: "ConnectModalWalletList", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + wallets: [ + { + name: "Wallet 1", + logo: "https://example.com/wallet1-logo.png", + mobileDisabled: false, + }, + { + name: "Wallet 2", + logo: "https://example.com/wallet2-logo.png", + mobileDisabled: false, + }, + { + name: "Wallet 3", + logo: "https://example.com/wallet3-logo.png", + mobileDisabled: false, + }, + ] as Wallet[], + }, + render: (args) => ({ + components: { ConnectModalWalletList }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Container.stories.ts b/packages/vue/stories/Container.stories.ts new file mode 100644 index 00000000..279fea8b --- /dev/null +++ b/packages/vue/stories/Container.stories.ts @@ -0,0 +1,38 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Container from "../src/ui/container/container.vue"; +import Box from "../src/ui/box/box.vue"; + +const meta: Meta = { + component: Container, + title: "Container", + tags: ["autodocs"], + argTypes: { + maxWidth: { + control: "select", + options: ["sm", "md", "lg", "xl", "2xl", "full"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + maxWidth: "md", + }, + render: (args) => ({ + components: { Container, Box }, + setup() { + return { args }; + }, + template: ` + + + This content is inside a container + + + `, + }), +}; diff --git a/packages/vue/stories/Divider.stories.ts b/packages/vue/stories/Divider.stories.ts new file mode 100644 index 00000000..abcc0a08 --- /dev/null +++ b/packages/vue/stories/Divider.stories.ts @@ -0,0 +1,31 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Divider from "../src/ui/divider/divider.vue"; +import Box from "../src/ui/box/box.vue"; + +const meta: Meta = { + component: Divider, + title: "Divider", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { Divider, Box }, + setup() { + return { args }; + }, + template: ` + + Content above + + Content below + + `, + }), +}; diff --git a/packages/vue/stories/FadeIn.stories.ts b/packages/vue/stories/FadeIn.stories.ts new file mode 100644 index 00000000..1ddbb44e --- /dev/null +++ b/packages/vue/stories/FadeIn.stories.ts @@ -0,0 +1,39 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import FadeIn from "../src/ui/fade-in/fade-in.vue"; +import Box from "../src/ui/box/box.vue"; +import { ref } from "vue"; + +const meta: Meta = { + component: FadeIn, + title: "FadeIn", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: {}, + render: (args) => ({ + components: { FadeIn, Box }, + setup() { + const show = ref(true); + const toggle = () => { + show.value = !show.value; + }; + return { args, show, toggle }; + }, + template: ` +
+ + + + This content will fade in when added + + +
+ `, + }), +}; diff --git a/packages/vue/stories/FieldLabel.stories.ts b/packages/vue/stories/FieldLabel.stories.ts new file mode 100644 index 00000000..0f3929ee --- /dev/null +++ b/packages/vue/stories/FieldLabel.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import FieldLabel from "../src/ui/field-label/field-label.vue"; + +const meta: Meta = { + component: FieldLabel, + title: "FieldLabel", + tags: ["autodocs"], + argTypes: {}, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + label: "Username", + htmlFor: "username-input", + }, + render: (args) => ({ + components: { FieldLabel }, + setup() { + return { args }; + }, + template: ` +
+ + +
+ `, + }), +}; diff --git a/packages/vue/stories/Icon.stories.ts b/packages/vue/stories/Icon.stories.ts new file mode 100644 index 00000000..01a238a9 --- /dev/null +++ b/packages/vue/stories/Icon.stories.ts @@ -0,0 +1,36 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Icon from "../src/ui/icon/icon.vue"; + +const meta: Meta = { + component: Icon, + title: "Icon", + tags: ["autodocs"], + argTypes: { + name: { + control: "select", + options: ["copy", "walletFilled", "chevronRight", "closeFilled"], // Add more icon names as needed + }, + size: { + control: "select", + options: ["sm", "md", "lg"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + name: "copy", + size: "md", + }, + render: (args) => ({ + components: { Icon }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/IconButton.stories.ts b/packages/vue/stories/IconButton.stories.ts new file mode 100644 index 00000000..5ec74e45 --- /dev/null +++ b/packages/vue/stories/IconButton.stories.ts @@ -0,0 +1,40 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import IconButton from "../src/ui/icon-button/icon-button.vue"; + +const meta: Meta = { + component: IconButton, + title: "IconButton", + tags: ["autodocs"], + argTypes: { + icon: { + control: "text", + }, + size: { + control: "select", + options: ["sm", "md", "lg"], + }, + intent: { + control: "select", + options: ["primary", "secondary", "tertiary"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + icon: "copy", + size: "md", + intent: "primary", + }, + render: (args) => ({ + components: { IconButton }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Link.stories.ts b/packages/vue/stories/Link.stories.ts new file mode 100644 index 00000000..79d6f868 --- /dev/null +++ b/packages/vue/stories/Link.stories.ts @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Link from "../src/ui/link/link.vue"; + +const meta: Meta = { + component: Link, + title: "Link", + tags: ["autodocs"], + argTypes: { + href: { control: "text" }, + target: { + control: "select", + options: ["_blank", "_self", "_parent", "_top"], + }, + underline: { control: "boolean" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + href: "https://example.com", + target: "_blank", + underline: true, + }, + render: (args) => ({ + components: { Link }, + setup() { + return { args }; + }, + template: 'Click me', + }), +}; diff --git a/packages/vue/stories/QRCode.stories.ts b/packages/vue/stories/QRCode.stories.ts new file mode 100644 index 00000000..3ced42a9 --- /dev/null +++ b/packages/vue/stories/QRCode.stories.ts @@ -0,0 +1,30 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import QRCode from "../src/ui/qrcode/qrcode.vue"; + +const meta: Meta = { + component: QRCode, + title: "QRCode", + tags: ["autodocs"], + argTypes: { + value: { control: "text" }, + size: { control: "number" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + value: "https://example.com", + size: 200, + }, + render: (args) => ({ + components: { QRCode }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Reveal.stories.ts b/packages/vue/stories/Reveal.stories.ts new file mode 100644 index 00000000..95e912e0 --- /dev/null +++ b/packages/vue/stories/Reveal.stories.ts @@ -0,0 +1,39 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Reveal from "../src/ui/reveal/reveal.vue"; +import Box from "../src/ui/box/box.vue"; + +const meta: Meta = { + component: Reveal, + title: "Reveal", + tags: ["autodocs"], + argTypes: { + showMoreLabel: { control: "text" }, + showLessLabel: { control: "text" }, + hideThresholdHeight: { control: "number" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + showMoreLabel: "Show more", + showLessLabel: "Show less", + hideThresholdHeight: 100, + }, + render: (args) => ({ + components: { Reveal, Box }, + setup() { + return { args }; + }, + template: ` + + + This is a long content that will be revealed + + + `, + }), +}; diff --git a/packages/vue/stories/Skeleton.stories.ts b/packages/vue/stories/Skeleton.stories.ts new file mode 100644 index 00000000..21feeb48 --- /dev/null +++ b/packages/vue/stories/Skeleton.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Skeleton from "../src/ui/skeleton/skeleton.vue"; + +const meta: Meta = { + component: Skeleton, + title: "Skeleton", + tags: ["autodocs"], + argTypes: { + width: { control: "text" }, + height: { control: "text" }, + borderRadius: { control: "text" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + width: "200px", + height: "20px", + borderRadius: "4px", + }, + render: (args) => ({ + components: { Skeleton }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Spinner.stories.ts b/packages/vue/stories/Spinner.stories.ts new file mode 100644 index 00000000..5d3f0737 --- /dev/null +++ b/packages/vue/stories/Spinner.stories.ts @@ -0,0 +1,31 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Spinner from "../src/ui/spinner/spinner.vue"; + +const meta: Meta = { + component: Spinner, + title: "Spinner", + tags: ["autodocs"], + argTypes: { + size: { + control: "select", + options: ["sm", "md", "lg"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + size: "md", + }, + render: (args) => ({ + components: { Spinner }, + setup() { + return { args }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Stack.stories.ts b/packages/vue/stories/Stack.stories.ts new file mode 100644 index 00000000..068aab35 --- /dev/null +++ b/packages/vue/stories/Stack.stories.ts @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Stack from "../src/ui/stack/stack.vue"; +import Box from "../src/ui/box/box.vue"; + +const meta: Meta = { + component: Stack, + title: "Stack", + tags: ["autodocs"], + argTypes: { + direction: { + control: "select", + options: ["vertical", "horizontal"], + }, + space: { + control: "select", + options: ["$2", "$4", "$6", "$8"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + direction: "vertical", + space: "$4", + }, + render: (args) => ({ + components: { Stack, Box }, + setup() { + return { args }; + }, + template: ` + + Item 1 + Item 2 + Item 3 + + `, + }), +}; diff --git a/packages/vue/stories/Text.stories.ts b/packages/vue/stories/Text.stories.ts new file mode 100644 index 00000000..424a54c0 --- /dev/null +++ b/packages/vue/stories/Text.stories.ts @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Text from "../src/ui/text/text.vue"; + +const meta: Meta = { + component: Text, + title: "Text", + tags: ["autodocs"], + argTypes: { + as: { + control: "select", + options: ["p", "span", "div", "h1", "h2", "h3", "h4", "h5", "h6"], + }, + fontSize: { + control: "select", + options: ["$xs", "$sm", "$md", "$lg", "$xl", "$2xl", "$3xl", "$4xl"], + }, + fontWeight: { + control: "select", + options: ["$normal", "$medium", "$semibold", "$bold"], + }, + color: { control: "color" }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + as: "p", + fontSize: "$md", + fontWeight: "$normal", + color: "$text", + }, + render: (args) => ({ + components: { Text }, + setup() { + return { args }; + }, + template: 'This is a text component', + }), +}; diff --git a/packages/vue/stories/ThemeProvider.stories.ts b/packages/vue/stories/ThemeProvider.stories.ts new file mode 100644 index 00000000..3a05f173 --- /dev/null +++ b/packages/vue/stories/ThemeProvider.stories.ts @@ -0,0 +1,39 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import ThemeProvider from "../src/ui/theme-provider/theme-provider.vue"; +import Box from "../src/ui/box/box.vue"; +import Text from "../src/ui/text/text.vue"; + +const meta: Meta = { + component: ThemeProvider, + title: "ThemeProvider", + tags: ["autodocs"], + argTypes: { + themeMode: { + control: "select", + options: ["light", "dark"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + themeMode: "light", + }, + render: (args) => ({ + components: { ThemeProvider, Box, Text }, + setup() { + return { args }; + }, + template: ` + + + This content is wrapped in a ThemeProvider + + + `, + }), +}; diff --git a/packages/vue/stories/Toast.stories.ts b/packages/vue/stories/Toast.stories.ts new file mode 100644 index 00000000..c132352b --- /dev/null +++ b/packages/vue/stories/Toast.stories.ts @@ -0,0 +1,44 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Toast from "../src/ui/toast/toast.vue"; +import Button from "../src/ui/button/button.vue"; +import { ref } from "vue"; + +const meta: Meta = { + component: Toast, + title: "Toast", + tags: ["autodocs"], + argTypes: { + message: { control: "text" }, + type: { + control: "select", + options: ["info", "success", "warning", "error"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + message: "This is a toast message", + type: "info", + }, + render: (args) => ({ + components: { Toast, Button }, + setup() { + const showToast = ref(false); + const toggleToast = () => { + showToast.value = !showToast.value; + }; + return { args, showToast, toggleToast }; + }, + template: ` +
+ + +
+ `, + }), +}; diff --git a/packages/vue/stories/Tooltip.stories.ts b/packages/vue/stories/Tooltip.stories.ts new file mode 100644 index 00000000..3c4c0556 --- /dev/null +++ b/packages/vue/stories/Tooltip.stories.ts @@ -0,0 +1,37 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import Tooltip from "../src/ui/tooltip/tooltip.vue"; +import Button from "../src/ui/button/button.vue"; + +const meta: Meta = { + component: Tooltip, + title: "Tooltip", + tags: ["autodocs"], + argTypes: { + placement: { + control: "select", + options: ["top", "bottom", "left", "right"], + }, + }, +}; + +export default meta; + +type Story = StoryObj; + +export const Primary: Story = { + args: { + title: "This is a tooltip", + placement: "top", + }, + render: (args) => ({ + components: { Tooltip, Button }, + setup() { + return { args }; + }, + template: ` + + + + `, + }), +}; diff --git a/packages/vue/stories/core/Box.stories.ts b/packages/vue/stories/core/Box.stories.ts deleted file mode 100644 index 484677b6..00000000 --- a/packages/vue/stories/core/Box.stories.ts +++ /dev/null @@ -1,76 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/vue3"; -import Box from "../../src/ui/box/box.vue"; - -const meta = { - title: "Core/Box", - component: Box, - tags: ["autodocs"], - argTypes: { - as: { control: "text" }, - className: { control: "text" }, - backgroundColor: { control: "color" }, - padding: { control: "text" }, - margin: { control: "text" }, - borderRadius: { control: "text" }, - rawCSS: { control: "object" }, - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - args: { - as: "div", - backgroundColor: "$background", - padding: "$10", - margin: "$10", - fontSize: "$2xl", - fontFamily: "$body", - color: "$primary400", - borderRadius: "$sm", - }, - render: (args) => ({ - components: { Box }, - setup() { - const handleClick = () => { - console.log("Box clicked"); - }; - const handleMouseEnter = () => { - console.log("Box mouse enter"); - }; - const handleMouseLeave = () => { - console.log("Box mouse up"); - }; - return { args, handleClick, handleMouseEnter, handleMouseLeave }; - }, - template: ` - This is a Box component - `, - }), -}; - -export const CustomElement: Story = { - args: { - as: "span", - backgroundColor: "$background", - padding: "$10", - margin: "$10", - fontSize: "$2xl", - fontFamily: "$body", - color: "$accent", - borderRadius: "$sm", - }, - render: (args) => ({ - components: { Box }, - setup() { - return { args }; - }, - template: 'This is a Box as a span', - }), -}; diff --git a/packages/vue/stories/core/Button.stories.ts b/packages/vue/stories/core/Button.stories.ts deleted file mode 100644 index 73dbd045..00000000 --- a/packages/vue/stories/core/Button.stories.ts +++ /dev/null @@ -1,320 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/vue3"; -import Button from "../../src/ui/button/button.vue"; - -const meta: Meta = { - title: "Core/Button", - component: Button, - tags: ["autodocs"], - argTypes: { - intent: { - control: "select", - options: [ - "primary", - "secondary", - "tertiary", - "success", - "warning", - "danger", - "text", - ], - }, - variant: { - control: "select", - options: ["solid", "ghost", "outlined", "unstyled"], - }, - size: { - control: "select", - options: ["sm", "md", "lg"], - }, - isLoading: { - control: "boolean", - }, - disabled: { - control: "boolean", - }, - fluidWidth: { - control: "boolean", - }, - fluid: { - control: "boolean", - }, - leftIcon: { - control: "text", - }, - rightIcon: { - control: "text", - }, - }, -}; - -export default meta; - -type Story = StoryObj; - -export const Primary: Story = { - args: { - intent: "primary", - variant: "solid", - onClick: () => alert("Button clicked"), - }, - render: (args) => ({ - components: { Button }, - setup() { - const handleClick = () => { - alert("Button clicked"); - }; - return { args, handleClick }; - }, - template: '', - }), -}; - -export const Secondary: Story = { - args: { - intent: "secondary", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Tertiary: Story = { - args: { - intent: "tertiary", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const IntentSuccess: Story = { - args: { - intent: "success", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const IntentWarning: Story = { - args: { - intent: "warning", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const IntentDanger: Story = { - args: { - intent: "danger", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const SecondaryGhost: Story = { - args: { - default: "Button", - intent: "secondary", - variant: "ghost", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Outlined: Story = { - args: { - default: "Button", - intent: "secondary", - variant: "outlined", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const ConnectWallet: Story = { - args: { - default: "Connect Wallet", - leftIcon: "walletFilled", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Large: Story = { - args: { - default: "Button", - size: "lg", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Middle: Story = { - args: { - default: "Button", - size: "md", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Small: Story = { - args: { - default: "Button", - size: "sm", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Unstyled: Story = { - args: { - variant: "unstyled", - default: "Unbond All", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Text: Story = { - args: { - default: "100%", - intent: "text", - size: "xs", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Loading: Story = { - args: { - default: "Loading", - isLoading: true, - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Disabled: Story = { - args: { - default: "Disabled", - disabled: true, - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const FluidWidth: Story = { - args: { - default: "Fluid Width", - fluidWidth: true, - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const Fluid: Story = { - args: { - default: "Fluid", - fluid: true, - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; - -export const WithRightIcon: Story = { - args: { - default: "Next", - rightIcon: "walletFilled", - }, - render: (args) => ({ - components: { Button }, - setup() { - return { args }; - }, - template: '', - }), -}; diff --git a/packages/vue/stories/core/Icon.stories.ts b/packages/vue/stories/core/Icon.stories.ts deleted file mode 100644 index 97aa573b..00000000 --- a/packages/vue/stories/core/Icon.stories.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/vue3"; -import Icon from "../../src/ui/icon/icon.vue"; -import Box from "../../src/ui/box/box.vue"; -import Text from "../../src/ui/text/text.vue"; -import { ALL_ICON_NAMES } from "../../src/ui/icon/icon.types"; - -const meta: Meta = { - title: "Core/Icon", - component: Icon, - tags: ["autodocs"], - argTypes: { - name: { - control: "select", - options: ALL_ICON_NAMES, - }, - size: { - control: "text", - }, - color: { - control: "color", - }, - }, -}; - -export default meta; -type Story = StoryObj; - -export const Primary: Story = { - args: {}, - render: (args) => ({ - components: { Icon, Box, Text }, - setup() { - return { args, ALL_ICON_NAMES }; - }, - template: ` -
- - - - {{ iconName }} - - -
- `, - }), -}; diff --git a/packages/vue/stories/core/Text.stories.ts b/packages/vue/stories/core/Text.stories.ts deleted file mode 100644 index 8af51cf1..00000000 --- a/packages/vue/stories/core/Text.stories.ts +++ /dev/null @@ -1,133 +0,0 @@ -import type { Meta, StoryObj } from "@storybook/vue3"; -import Text from "../../src/ui/text/text.vue"; - -const meta: Meta = { - title: "Core/Text", - component: Text, - tags: ["autodocs"], - argTypes: { - as: { - control: "select", - options: ["p", "span", "div", "h1", "h2", "h3", "h4", "h5", "h6"], - }, - variant: { - control: "select", - options: ["body", "heading"], - }, - fontFamily: { control: "text" }, - ellipsis: { control: "boolean" }, - underline: { control: "boolean" }, - color: { control: "color" }, - fontSize: { control: "text" }, - fontWeight: { control: "text" }, - letterSpacing: { control: "text" }, - lineHeight: { control: "text" }, - textAlign: { - control: "select", - options: ["left", "center", "right", "justify"], - }, - textTransform: { - control: "select", - options: ["none", "capitalize", "uppercase", "lowercase"], - }, - wordBreak: { - control: "select", - options: ["normal", "break-all", "keep-all", "break-word"], - }, - }, -}; - -export default meta; -type Story = StoryObj; - -export const Default: Story = { - args: {}, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: 'This is a sample text', - }), -}; - -export const Heading: Story = { - args: { - as: "h1", - variant: "heading", - }, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: 'This is a heading', - }), -}; - -export const Ellipsis: Story = { - args: { - ellipsis: true, - }, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: - 'This is a very long text that will be truncated with an ellipsis', - }), -}; - -export const Underline: Story = { - args: { - underline: true, - }, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: 'This text is underlined', - }), -}; - -export const CustomColor: Story = { - args: { - color: "$textDanger", - }, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: - 'This text is red (you can provide any CSS colors or theme tokens)', - }), -}; - -export const CustomFontSize: Story = { - args: { - fontSize: "$10xl", - }, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: 'This text has a custom font size', - }), -}; - -export const CustomAlignment: Story = { - args: { - textAlign: "center", - }, - render: (args) => ({ - components: { Text }, - setup() { - return { args }; - }, - template: 'This text is center-aligned', - }), -}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7669832..df6b24ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -396,10 +396,10 @@ importers: version: 0.5.2(@vanilla-extract/css@1.14.1) '@vanilla-extract/vite-plugin': specifier: ^4.0.4 - version: 4.0.6(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + version: 4.0.6(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.21(typescript@5.4.2)) + version: 5.0.4(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.21(typescript@5.4.2)) animejs: specifier: ^3.2.1 version: 3.2.2 @@ -438,10 +438,10 @@ importers: version: 5.4.2 vite: specifier: ^5.4.2 - version: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + version: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@9.10.0)(optionator@0.9.4)(typescript@5.4.2)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue-tsc@1.8.27(typescript@5.4.2)) + version: 0.6.4(eslint@9.10.0)(optionator@0.9.4)(typescript@5.4.2)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue-tsc@1.8.27(typescript@5.4.2)) vue-tsc: specifier: ^1.8.22 version: 1.8.27(typescript@5.4.2) @@ -658,8 +658,8 @@ importers: specifier: ^1.46.59 version: 1.46.59 '@chromatic-com/storybook': - specifier: ^1.7.0 - version: 1.7.0(react@18.3.1) + specifier: ^2.0.2 + version: 2.0.2(react@18.3.1) '@parcel/config-default': specifier: ^2.12.0 version: 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)(postcss@8.4.45)(relateurl@0.2.7)(terser@5.31.6)(typescript@5.5.4) @@ -697,44 +697,44 @@ importers: specifier: ^3.12.1 version: 3.12.1(react@18.3.1) '@storybook/addon-essentials': - specifier: ^8.2.9 - version: 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@storybook/addon-interactions': - specifier: ^8.2.9 - version: 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@storybook/addon-links': - specifier: ^8.2.9 - version: 8.2.9(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(react@18.3.1)(storybook@8.3.0) '@storybook/addon-viewport': - specifier: ^8.2.9 - version: 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@storybook/blocks': - specifier: ^8.2.9 - version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) '@storybook/react': - specifier: ^8.2.9 - version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4) + specifier: ^8.3.0 + version: 8.3.0(@storybook/test@8.3.0(storybook@8.3.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0)(typescript@5.5.4) '@storybook/react-vite': - specifier: ^8.2.9 - version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.21.2)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + specifier: ^8.3.0 + version: 8.3.0(@storybook/test@8.3.0(storybook@8.3.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.21.2)(storybook@8.3.0)(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) '@storybook/test': - specifier: ^8.2.9 - version: 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@types/react': specifier: latest version: 18.3.5 '@vanilla-extract/parcel-transformer': specifier: ^1.0.9 - version: 1.0.9(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + version: 1.0.9(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) '@vanilla-extract/vite-plugin': specifier: ^4.0.15 - version: 4.0.15(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + version: 4.0.15(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + version: 4.3.1(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) '@vitejs/plugin-react-swc': specifier: ^3.7.0 - version: 3.7.0(@swc/helpers@0.5.3)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + version: 3.7.0(@swc/helpers@0.5.3)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) match-sorter: specifier: ^6.3.4 version: 6.3.4 @@ -754,17 +754,17 @@ importers: specifier: ^15.8.1 version: 15.8.1 storybook: - specifier: ^8.2.9 - version: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + specifier: ^8.3.0 + version: 8.3.0 storybook-react-rsbuild: - specifier: ^0.0.7 - version: 0.0.7(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + specifier: ^0.1.0 + version: 0.1.0(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@storybook/test@8.3.0(storybook@8.3.0))(@swc/core@1.7.18(@swc/helpers@0.5.11))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.21.2)(storybook@8.3.0)(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) vite: specifier: ^5.4.2 - version: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + version: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vite-plugin-replace: specifier: ^0.1.1 - version: 0.1.1(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + version: 0.1.1(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) packages/react-no-ssr: dependencies: @@ -801,7 +801,7 @@ importers: version: 10.1.0 '@testing-library/jest-dom': specifier: ^6.4.6 - version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(vitest@1.6.0(@types/node@22.5.4)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + version: 6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.5))(vitest@1.6.0(@types/node@22.5.5)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) '@testing-library/react': specifier: ^16.0.0 version: 16.0.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -837,7 +837,7 @@ importers: version: 7.13.1(eslint@9.5.0)(typescript@5.4.5) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@22.5.4)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + version: 1.6.0(@types/node@22.5.5)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) packages/vue: dependencies: @@ -885,32 +885,32 @@ importers: version: 4.5.5(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1) devDependencies: '@chromatic-com/storybook': - specifier: ^1.8.0 - version: 1.8.0(react@18.3.1) + specifier: ^2.0.2 + version: 2.0.2(react@18.3.1) '@storybook/addon-essentials': - specifier: ^8.2.9 - version: 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@storybook/addon-interactions': - specifier: ^8.2.9 - version: 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@storybook/addon-links': - specifier: ^8.2.9 - version: 8.2.9(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(react@18.3.1)(storybook@8.3.0) '@storybook/addon-onboarding': - specifier: ^8.2.9 - version: 8.2.9(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(react@18.3.1)(storybook@8.3.0) '@storybook/blocks': - specifier: ^8.2.9 - version: 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + specifier: ^8.3.0 + version: 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) '@storybook/test': - specifier: ^8.2.9 - version: 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0) '@storybook/vue3': - specifier: ^8.2.9 - version: 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vue@3.4.31(typescript@5.5.4)) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0)(vue@3.4.31(typescript@5.5.4)) '@storybook/vue3-vite': - specifier: ^8.2.9 - version: 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.31(typescript@5.5.4)) + specifier: ^8.3.0 + version: 8.3.0(storybook@8.3.0)(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.31(typescript@5.5.4)) '@types/animejs': specifier: ^3.1.12 version: 3.1.12 @@ -966,8 +966,8 @@ importers: specifier: ^0.14.0 version: 0.14.0 storybook: - specifier: ^8.2.9 - version: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + specifier: ^8.3.0 + version: 8.3.0 tslib: specifier: ^2.7.0 version: 2.7.0 @@ -1153,12 +1153,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.25.2': - resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.2': resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: @@ -1222,12 +1216,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-remap-async-to-generator@7.25.0': - resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.24.7': resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} engines: {node: '>=6.9.0'} @@ -1272,10 +1260,6 @@ packages: resolution: {integrity: sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.0': - resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} - engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} @@ -1309,30 +1293,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3': - resolution: {integrity: sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': - resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7': resolution: {integrity: sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': - resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} @@ -1345,12 +1311,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': - resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-proposal-class-properties@7.18.6': resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} @@ -1407,12 +1367,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.7': resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} engines: {node: '>=6.9.0'} @@ -1519,12 +1473,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.4': - resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.24.7': resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} @@ -1543,24 +1491,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.0': - resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.24.7': resolution: {integrity: sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.4': - resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.24.7': resolution: {integrity: sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==} engines: {node: '>=6.9.0'} @@ -1573,12 +1509,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-classes@7.25.4': - resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.7': resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} @@ -1591,12 +1521,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.8': - resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.24.7': resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} @@ -1609,12 +1533,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': - resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.24.7': resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} @@ -1633,12 +1551,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.25.2': - resolution: {integrity: sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.7': resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} @@ -1651,12 +1563,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.1': - resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.24.7': resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} @@ -1669,12 +1575,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.2': - resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.24.7': resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} @@ -1699,24 +1599,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.8': - resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.24.7': resolution: {integrity: sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.25.0': - resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.24.7': resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} @@ -1771,12 +1659,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.24.8': - resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} engines: {node: '>=6.9.0'} @@ -1789,12 +1671,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.4': - resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.24.7': resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} @@ -1891,12 +1767,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.24.8': - resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.24.7': resolution: {integrity: sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==} engines: {node: '>=6.9.0'} @@ -1933,30 +1803,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-unicode-sets-regex@7.25.4': - resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/preset-env@7.24.7': resolution: {integrity: sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-env@7.25.4': - resolution: {integrity: sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/preset-flow@7.24.7': - resolution: {integrity: sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/preset-modules@0.1.6-no-external-plugins': resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: @@ -1974,12 +1826,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/register@7.24.6': - resolution: {integrity: sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -2053,12 +1899,8 @@ packages: '@chain-registry/utils@1.46.59': resolution: {integrity: sha512-PLXTDUJoJ86MbanVFHzQ0JkzMeSdgvNQNm+kJq37N3l75RMroKFuuq+LbHuxEm8Z2O0R2dTy8aK2Qrd4Kxg9aA==} - '@chromatic-com/storybook@1.7.0': - resolution: {integrity: sha512-0aAkSaNsHaJL37/r+TIbpKjCouIysvoJno61LzUSs1xW4fpxF7gdr8xwIOONQjEsz2Fa0uFHXmzkFYcH6o8kmA==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} - - '@chromatic-com/storybook@1.8.0': - resolution: {integrity: sha512-vkB9dPVmM2Yvqc/0DJ4MYwOGY1MOjd/KbB9TXTMGN+qshaEyiZtSOgbz9u0ExFALEgDKLmtUnWyUtoGb0pCzUg==} + '@chromatic-com/storybook@2.0.2': + resolution: {integrity: sha512-7bPIliISedeIpnVKbzktysFYW5n56bN91kxuOj1XXKixmjbUHRUMvcXd4K2liN6MiR5ZqJtmtcPsZ6CebbGlEA==} engines: {node: '>=16.0.0', yarn: '>=1.22.18'} '@colors/colors@1.5.0': @@ -4316,10 +4158,13 @@ packages: engines: {node: '>=16.0.0'} hasBin: true - '@rsbuild/plugin-type-check@1.0.0-alpha.9': - resolution: {integrity: sha512-y1tgukEAynf1nBhpELY99cfY3qluT9ytM/OAyDMSYZ9i1BgFN0mJYDajal9p+xvqnFHGVf/1K0JFfwNP7cI7Xw==} + '@rsbuild/plugin-type-check@1.0.1': + resolution: {integrity: sha512-BahXAJNq4kWtL2dINUlrOL9UCN1t8c/qf5RW8JXx2HSSasfKPJGJ1BVfieMcIaFa/t8/QdafcwoxY1WKPTlSMg==} peerDependencies: - '@rsbuild/core': ^1.0.0-alpha.9 + '@rsbuild/core': 1.x || ^1.0.1-beta.0 + peerDependenciesMeta: + '@rsbuild/core': + optional: true '@rsbuild/shared@0.6.15': resolution: {integrity: sha512-siBYUQL3qVINLDkIBaxx4caNb+zZ+Jb8WtN2RgRT5buLW+PU5fXUs5vGwjFz6B6wCxO/vLr78X/FjaCmxMv8HA==} @@ -4463,92 +4308,92 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} - '@storybook/addon-actions@8.2.9': - resolution: {integrity: sha512-eh2teOqjga7aoClDVV+/b1gHJqsPwjiU1t+Hg/l4i2CkaBUNdYMEL90nR6fgReOdvvL5YhcPwJ8w38f9TrQcoQ==} + '@storybook/addon-actions@8.3.0': + resolution: {integrity: sha512-HvAc3fW979JVw8CSKXZMouvgrJ2BNLNWaUB8jNokQb3Us00P6igVKLwg/pBV8GBgDr5Ng4pHYqi/ZH+xzEYFFw==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-backgrounds@8.2.9': - resolution: {integrity: sha512-eGmZAd742ORBbQ6JepzBCko/in62T4Xg9j9LVa+Cvz/7L1C/RQSuU6sUwbRAsXaz+PMVDksPDCUUNsXl3zUL7w==} + '@storybook/addon-backgrounds@8.3.0': + resolution: {integrity: sha512-qaV/QsXoviAmBYFszI/KN1CaI/LcACGX9RCBB54fMau3JuouIBU/zTl2jY2+BioCBk6oY8KqcnAS1coOZzlNXQ==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-controls@8.2.9': - resolution: {integrity: sha512-vaSE78KOE7SO0GrW4e+mdQphSNpvCX/FGybIRxyaKX9h8smoyUwRNHVyCS3ROHTwH324QWu7GDzsOVrnyXOv0A==} + '@storybook/addon-controls@8.3.0': + resolution: {integrity: sha512-Id4j6Neimkdq0OyfQ3qkHpKLisbN08M8pXHDI/A0VeF91xEGBdc1bJgS/EU+ifa24tr5SRYwlAlcBDAWJbZMfA==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-docs@8.2.9': - resolution: {integrity: sha512-flDOxFIGmXg+6lVdwTLMOKsGob1WrT7rG98mn1SNW0Nxhg3Wg+9pQuq1GLxEzKtAgSflmu+xcBRfYhsogyDXkw==} + '@storybook/addon-docs@8.3.0': + resolution: {integrity: sha512-LrvWBDX5Vi//82Q78QRbTsG+9rJU9JJFAVPk1NnLp2Yn0F4FueVzIw8AabAkZFy0LHPMGV+EHpkPtYz4Czkhgw==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-essentials@8.2.9': - resolution: {integrity: sha512-B2d3eznGZvPIyCVtYX0UhrYcEfK+3Y2sACmEWpSwtk8KXomFEsZnD95m397BYDRw3/X6qeSLWxqgMfqDTEDeMA==} + '@storybook/addon-essentials@8.3.0': + resolution: {integrity: sha512-y+hlMnIoD+h/diY7BvIeySPCz/ZtJPPZfS/COQuPRXfPWCr37p9XLEz3E+m2spniAbgGv9KpvdqQd0kWcwwfiA==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-highlight@8.2.9': - resolution: {integrity: sha512-qdcazeNQoo9QKIq+LJJZZXvFZoLn+i4uhbt1Uf9WtW6oU/c1qxORGVD7jc3zsxbQN9nROVPbJ76sfthogxeqWA==} + '@storybook/addon-highlight@8.3.0': + resolution: {integrity: sha512-bS1rqzbwGgeTKVLYEyY+6DzpafLtDLnoSF+KzRIiV7/1H30evhwVSzkgX1L2F6+ssS1n9WrRJeglniv9j+5mGQ==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-interactions@8.2.9': - resolution: {integrity: sha512-oSxBkqpmp1Vm9v/G8mZeFNXD8k6T1NMgzUWzAx7R5m31rfObhoi5Fo1bKQT5BAhSSsdjjd7owTAFKdhwSotSKg==} + '@storybook/addon-interactions@8.3.0': + resolution: {integrity: sha512-nAVUFpt2kTaPMY7RxfZwiYipngxf76dfx1E/QP9n/333+/pe88UwXbUkmLKpyC8EWqZXDI0oSV5XDDzoI5x3dA==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-links@8.2.9': - resolution: {integrity: sha512-RhJzUNdDb7lbliwXb64HMwieIeJ+OQ2Ditue1vmSox6NsSd+pshR+okHpAyoP1+fW+dahNENwAS2Kt2QiI78FA==} + '@storybook/addon-links@8.3.0': + resolution: {integrity: sha512-nUnoMPPuxM8yJ7LCrppsUrn3gwqt4E0si9fqIIb5IkB56vz48RxCO9MtO1qjwhWosfMdN6boHaOl1Qc6IxV3Lg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.9 + storybook: ^8.3.0 peerDependenciesMeta: react: optional: true - '@storybook/addon-measure@8.2.9': - resolution: {integrity: sha512-XUfQtYRKWB2dfbPRmHuos816wt1JrLbtRld5ZC8J8ljeqZ4hFBPTQcgI5GAzZqjQuclLC0KuhlA/0bKxdxMMGA==} + '@storybook/addon-measure@8.3.0': + resolution: {integrity: sha512-0TZ2ihzX0mRr1rNrFDieDsIKASZ2qUg3eHDkskLKOhxwoUHqsLzXlvS/scKZ+zb8pgjrvsBAsjyPstlrK+z0Zg==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-onboarding@8.2.9': - resolution: {integrity: sha512-9FAWwlnF4JqxOdaZCqe4HeEDj95rqQmITPugPUV3Ra8aJuukPWzlFZgfYubI50TTrnJDAFc8kYeatbxFvoagNQ==} + '@storybook/addon-onboarding@8.3.0': + resolution: {integrity: sha512-M40WdKvzN5xqGlKSbQOMRegeEw3Jltr9q99VufUZF/6HZUNVH/maxnOB9lGrlj/boyyhY/KHpZo9/CWrC4CjJQ==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-outline@8.2.9': - resolution: {integrity: sha512-p22kI4W7MT0YJOCmg/FfhfH+NpZEDA5tgwstjazSg4ertyhaxziMwWZWiK2JCg0gOAfRJjoYjHz+6/u56iXwgQ==} + '@storybook/addon-outline@8.3.0': + resolution: {integrity: sha512-xTvBGgX6RIkKjQiAi9LvPGbGuBa6tsJS2jCmjwiei3SX3I56E6Bf3KASsFH2x8j9khMVsgQcfA3QDIhjwatdgw==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-toolbars@8.2.9': - resolution: {integrity: sha512-9LMZZ2jRD86Jh6KXedDbAYs4eHj9HtJA9VhSEE2wiqMGwXozpySi7B1GWniNzmFfcgMQ4JHfmD/OrBVTK7Ca/w==} + '@storybook/addon-toolbars@8.3.0': + resolution: {integrity: sha512-/3/jnd70tnvh3x1EL8axE4TR9EHwC+bBch1uIc3vH/lmyZBqSBVA50clz23FvjhykjcaKQogcugCuU1w5TJlBA==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/addon-viewport@8.2.9': - resolution: {integrity: sha512-lyM24+DJEt8R0YZkJKee34NQWv0REACU6lYDalqJNdKS1sEwzLGWxg1hZXnw2JFdBID9NGVvyYU2w6LDozOB0g==} + '@storybook/addon-viewport@8.3.0': + resolution: {integrity: sha512-6h/0mKipUG6w2o5IOzyhvC/2ifJlSNIA60hLkJ291g42+ilzkydpby9TBN7FcnrVL3Bv+oLgkDLBWVCqma/fyw==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/blocks@8.2.9': - resolution: {integrity: sha512-5276q/s/UL8arwftuBXovUNHqYo/HPQFMGXEmjVVAMXUyFjzEAfKj3+xU897J6AuL+7XVZG32WnqA+X6LJMrcQ==} + '@storybook/blocks@8.3.0': + resolution: {integrity: sha512-V7D5lv5R+GJya9cCZOCjmOVjhvP5J3KIaclQuuGGJda/ZD/SpwHcFOGSpo6sNR2UKHXXvb61oM8gRQQWDvqPlg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.9 + storybook: ^8.3.0 peerDependenciesMeta: react: optional: true react-dom: optional: true - '@storybook/builder-vite@8.2.9': - resolution: {integrity: sha512-MHD3ezRjKkJkOl0u7CRQoQD/LKd28YMWIcaz4YrV6ygokc0c3RFTlOefICQFgboc+1RwIUowxN1CJ2kJ7p4SWw==} + '@storybook/builder-vite@8.3.0': + resolution: {integrity: sha512-9qo3zcZkEpy69E7cx9OHHexBe9+25vH0p+4sWZSjl2sjqjhaxLN5eXnODQbDsOKZNRVrLVTGmKxfFJzAJFnY0w==} peerDependencies: '@preact/preset-vite': '*' - storybook: ^8.2.9 + storybook: ^8.3.0 typescript: '>= 4.3.x' vite: ^4.0.0 || ^5.0.0 vite-plugin-glimmerx: '*' @@ -4560,26 +4405,23 @@ packages: vite-plugin-glimmerx: optional: true - '@storybook/codemod@8.2.9': - resolution: {integrity: sha512-3yRx1lFMm1FXWVv+CKDiYM4gOQPEfpcZAQrjfcumxSDUrB091pnU1PeI92Prj3vCdi4+0oPNuN4yDGNUYTMP/A==} - - '@storybook/components@8.2.9': - resolution: {integrity: sha512-OkkcZ/f/6o3GdFEEK9ZHKIGHWUHmavZUYs5xaSgU64bOrA2aqEFtfeWWitZYTv3Euhk8MVLWfyEMDfez0AlvDg==} + '@storybook/components@8.3.0': + resolution: {integrity: sha512-SO/iTkmWp3aYCIy8DEhRMoOn6K7lcKTPNC/YjTvOFFzwq/CLq86WNqz6aX+wV5n6MvWTs7evSwMoz7lp4Lc4sw==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 '@storybook/core-webpack@8.2.9': resolution: {integrity: sha512-6yL1su+d8IOTU+UkZqM9SeBcVc/G6vUHLsMdlWNyVtRus2JTMmT0K0/ll56jrm/ym0y98cxUOA1jsImkBubP2Q==} peerDependencies: storybook: ^8.2.9 - '@storybook/core@8.2.9': - resolution: {integrity: sha512-wSER8FpA6Il/jPyDfKm3yohxDtuhisNPTonMVzd3ulNWR4zERLddyO3HrHJJwdqYHLNk4SBFzwMGpQZVws1y0w==} + '@storybook/core@8.3.0': + resolution: {integrity: sha512-UeErpD0xRIP2nFA2TjPYxtEyv24O6VRfq2XXU5ki2QPYnxOxAPBbrMHCADjgBwNS4S2NUWTaVBYxybISVbrj+w==} - '@storybook/csf-plugin@8.2.9': - resolution: {integrity: sha512-QQCFb3g12VQQEraDV1UfCmniGhQZKyT6oEt1Im6dzzPJj9NQk+6BjWoDep33CZhBHWoLryrMQd2fjuHxnFRNEA==} + '@storybook/csf-plugin@8.3.0': + resolution: {integrity: sha512-sCmeN/OVYj95TKkMqJqxbaztIbdv5jCrtrXuNg4oJaGzNucmMNAbmv2jK2tCNE6Uz2X9IMRcseFX/h9TgjyJ9A==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 '@storybook/csf@0.0.1': resolution: {integrity: sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==} @@ -4597,20 +4439,20 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@storybook/instrumenter@8.2.9': - resolution: {integrity: sha512-+DNjTbsMzlDggsvkhRuOy7aGvQJ4oLCPgunP5Se/3yBjG+M2bYDa0EmC5jC2nwZ3ffpuvbzaVe7fWf7R8W9F2Q==} + '@storybook/instrumenter@8.3.0': + resolution: {integrity: sha512-oJmX8jbNKbPBlNMItRvEoaVAJWX1u6jsqXdIcNRCXo3PDdVnunVYz8vVkG8mbL8Cp/cKlsuQk7YBZA4IM5mRgg==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/manager-api@8.2.9': - resolution: {integrity: sha512-mkYvUlfqDw+0WbxIynh5TcrotmoXlumEsOA4+45zuNea8XpEgj5cNBUCnmfEO6yQ85swqkS8YYbMpg1cZyu/Vw==} + '@storybook/manager-api@8.3.0': + resolution: {integrity: sha512-5WBLEFHpe4H+9vZZLjNh7msIkyl9MPt4/C2nI+MXKZyU55xBBgiAy4fcD9aj02PcbhyR4JhLqbqmdeBe5Xafeg==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/preview-api@8.2.9': - resolution: {integrity: sha512-D8/t+a78OJqQAcT/ABa1C4YM/OaLGQ9IvCsp3Q9ruUqDCwuZBj8bG3D4477dlY4owX2ycC0rWYu3VvuK0EmJjA==} + '@storybook/preview-api@8.3.0': + resolution: {integrity: sha512-pHq/T7oWBfzc9TCIPYyJQUXuiUiFfmdrcYvuZE1kf46i7wXh9Q2/Kd3BUJWSCpBXUMoYfAxg9YysGljMII8LWA==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 '@storybook/react-docgen-typescript-plugin@1.0.1': resolution: {integrity: sha512-dqbHa+5gaxaklFCuV1WTvljVPTo3QIJgpW4Ln+QeME7osPZUnUhjN2/djvo+sxrWUrTTuqX5jkn291aDngu9Tw==} @@ -4618,56 +4460,59 @@ packages: typescript: '>= 3.x' webpack: '>= 4' - '@storybook/react-dom-shim@8.2.9': - resolution: {integrity: sha512-uCAjSQEsNk8somVn1j/I1G9G/uUax5byHseIIV0Eq3gVXttGd7gaWcP+TDHtqIaenWHx4l+hCSuCesxiLWmx4Q==} + '@storybook/react-dom-shim@8.3.0': + resolution: {integrity: sha512-87X4cvgwFT1ll5SzXgQq6iGbkVCgxLBpBm58akF/hzpeRkwfJDncGi/A5hElOJrBg63IkznmSJE7tf9RkrboqQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/react-vite@8.2.9': - resolution: {integrity: sha512-Lw6FzcAaL7jX8Y8EsDzg32Lp0NdeNJZpj0LVwX5sLOQQA6w4i3PqlFINXDY28qCGo6wqKT+w44zhgwUcU5V0Ow==} + '@storybook/react-vite@8.3.0': + resolution: {integrity: sha512-VcKp/mpO8M+JsyprTGLLvAzwx7PChdWFDBasyQ0MO+YVwci78gPAZnfWNZaaEB2mdDgPPGuoSTwBgzZmP3FsPg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.9 + storybook: ^8.3.0 vite: ^4.0.0 || ^5.0.0 - '@storybook/react@8.2.9': - resolution: {integrity: sha512-F2xZcTDxxjpbqt7eP8rEHmlksiKmE/qtPusEWEY4N4jK01kN+ncxSl8gkJpUohMEmAnVC5t/1v/sU57xv1DYpg==} + '@storybook/react@8.3.0': + resolution: {integrity: sha512-qd8IKXqaOG9m0VK0QukFMmKpjmm7sy1R3T681dLet8s+AEAimLH/RiBzd+0dxWng2H/Ng6ldUmCtd3Cs6w/EFQ==} engines: {node: '>=18.0.0'} peerDependencies: + '@storybook/test': 8.3.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.2.9 + storybook: ^8.3.0 typescript: '>= 4.2.x' peerDependenciesMeta: + '@storybook/test': + optional: true typescript: optional: true - '@storybook/test@8.2.9': - resolution: {integrity: sha512-O5JZ5S8UVVR7V0ru5AiF/uRO+srAVwji0Iik7ihy8gw3V91WQNMmJh2KkdhG0R1enYeBsYZlipOm+AW7f/MmOA==} + '@storybook/test@8.3.0': + resolution: {integrity: sha512-d8y8ST8YY/pSjTxBcWitKM7YbbupN8D0obVlciZRt6WW3o8WUz6iwMuzuJuiUVwtxiRtdKL9jygC5M+aaCpFYQ==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/theming@8.2.9': - resolution: {integrity: sha512-OL0NFvowPX85N5zIYdgeKKaFm7V4Vgtci093vL3cDZT13LGH6GuEzJKkUFGuUGNPFlJc+EgTj0o6PYKrOLyQ6w==} + '@storybook/theming@8.3.0': + resolution: {integrity: sha512-lJCarAzswZvUgBt/o1LMJp+07Io5G2VI1+Fw+bgn+92kRD8otCFwuMZIy0u7cEjHiEGqGnpzThlIki6vFjEXeA==} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 - '@storybook/vue3-vite@8.2.9': - resolution: {integrity: sha512-oan7w6xlKRu1/d4+Bg2ASzqpcS/MKZFkwS4Det5f6fASqUpN8SZMgFY8dm9/chTdo/FKJYXUfowDgZ33N6cnjQ==} + '@storybook/vue3-vite@8.3.0': + resolution: {integrity: sha512-lnhyMJk89ZgsCVa9toGhh8nVAQvZ1Is2twwtATOONaFq+2TPeel38RAkZes3uVcm3F9HuTQMAcrb3QKq5ff58Q==} engines: {node: '>=18.0.0'} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 vite: ^4.0.0 || ^5.0.0 - '@storybook/vue3@8.2.9': - resolution: {integrity: sha512-ef3J8Vc7HpOWy4UB7c5SzEzRAOuTgC7kwE9bulOW7tG4RrH1yt9vyOuPaUj/mgsF4OWE69Rbbwvc/9Fnsq6cjw==} + '@storybook/vue3@8.3.0': + resolution: {integrity: sha512-75PmRUoyDPvSFkR+LYLBpFJIACA9Wyfd7Illa/0D7PF0eQKjKIFdyxqa0nfPsB2UGFiP+778A2jAXsTYw3i+9Q==} engines: {node: '>=18.0.0'} peerDependencies: - storybook: ^8.2.9 + storybook: ^8.3.0 vue: ^3.0.0 '@swc/core-darwin-arm64@1.7.18': @@ -4773,26 +4618,9 @@ packages: resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.4.5': - resolution: {integrity: sha512-AguB9yvTXmCnySBP1lWjfNNUwpbElsaQ567lt2VdGqAdHtpieLgjmcVyv1q7PMIvLbgpDdkWV5Ydv3FEejyp2A==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - peerDependencies: - '@jest/globals': '>= 28' - '@types/bun': latest - '@types/jest': '>= 28' - jest: '>= 28' - vitest: '>= 0.32' - peerDependenciesMeta: - '@jest/globals': - optional: true - '@types/bun': - optional: true - '@types/jest': - optional: true - jest: - optional: true - vitest: - optional: true + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} + engines: {node: '>=18'} '@testing-library/jest-dom@6.4.6': resolution: {integrity: sha512-8qpnGVincVDLEcQXWaHOf6zmlbwTKc6Us6PPu4CRnPXCzo2OGBS5cwgMMOWdxDpEz1mkbvXHpEy99M5Yvt682w==} @@ -4815,6 +4643,10 @@ packages: vitest: optional: true + '@testing-library/jest-dom@6.5.0': + resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/react@16.0.0': resolution: {integrity: sha512-guuxUKRWQ+FgNX0h0NS0FIq3Q3uLtWVpBzcLOggmfMoUpgBnzBzvLLd4fbm6yS8ydJd94cIfY4yP9qUQjM2KwQ==} engines: {node: '>=18'} @@ -4911,9 +4743,6 @@ packages: '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - '@types/cross-spawn@6.0.6': - resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} - '@types/d3-scale-chromatic@3.0.3': resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} @@ -4929,9 +4758,6 @@ packages: '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/emscripten@1.39.13': - resolution: {integrity: sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==} - '@types/escodegen@0.0.6': resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} @@ -5058,6 +4884,9 @@ packages: '@types/node@22.5.4': resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} + '@types/node@22.5.5': + resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -5463,6 +5292,15 @@ packages: '@vitest/expect@1.6.0': resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/pretty-format@2.1.1': + resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} + '@vitest/runner@1.6.0': resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} @@ -5472,9 +5310,18 @@ packages: '@vitest/spy@1.6.0': resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.1': + resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} + '@volar/language-core@1.11.1': resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} @@ -5824,14 +5671,6 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - '@yarnpkg/fslib@2.10.3': - resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} - - '@yarnpkg/libzip@2.3.0': - resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} - engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} - '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} @@ -6083,6 +5922,10 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -6151,11 +5994,6 @@ packages: axobject-query@3.2.1: resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - babel-core@7.0.0-bridge.0: - resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6183,11 +6021,6 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.2: resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: @@ -6393,6 +6226,10 @@ packages: resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + chalk@2.3.0: resolution: {integrity: sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q==} engines: {node: '>=4'} @@ -6445,6 +6282,10 @@ packages: check-error@1.0.3: resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -6641,10 +6482,6 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - commander@6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} - commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -6922,9 +6759,6 @@ packages: core-js-compat@3.37.1: resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} - core-js-compat@3.38.1: - resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} - core-js@3.36.1: resolution: {integrity: sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==} @@ -6980,10 +6814,6 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} - css-loader@6.11.0: resolution: {integrity: sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==} engines: {node: '>= 12.13.0'} @@ -7298,6 +7128,10 @@ packages: resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} engines: {node: '>=6'} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -7552,11 +7386,6 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - envinfo@7.13.0: - resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} - engines: {node: '>=4'} - hasBin: true - envinfo@7.8.1: resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} engines: {node: '>=4'} @@ -8016,9 +7845,6 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fd-package-json@1.2.0: - resolution: {integrity: sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==} - fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} @@ -8053,10 +7879,6 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} - find-cache-dir@2.1.0: - resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} - engines: {node: '>=6'} - find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -8072,10 +7894,6 @@ packages: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -8105,10 +7923,6 @@ packages: flexsearch@0.7.43: resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} - flow-parser@0.244.0: - resolution: {integrity: sha512-Dkc88m5k8bx1VvHTO9HEJ7tvMcSb3Zvcv1PY4OHK7pHdtdY2aUjhmPy6vpjVJ2uUUOIybRlb91sXE8g4doChtA==} - engines: {node: '>=0.4.0'} - focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} @@ -9236,15 +9050,6 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jscodeshift@0.15.2: - resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} - hasBin: true - peerDependencies: - '@babel/preset-env': ^7.1.6 - peerDependenciesMeta: - '@babel/preset-env': - optional: true - jsdom@24.1.0: resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} engines: {node: '>=18'} @@ -9514,10 +9319,6 @@ packages: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -9627,6 +9428,9 @@ packages: loupe@2.3.7: resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} @@ -10279,10 +10083,6 @@ packages: resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} engines: {node: ^16 || ^18 || >= 20} - node-dir@0.1.17: - resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} - engines: {node: '>= 0.10.5'} - node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} @@ -10607,10 +10407,6 @@ packages: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -10792,6 +10588,10 @@ packages: pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} @@ -10836,10 +10636,6 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-dir@3.0.0: - resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} - engines: {node: '>=6'} - pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -11494,11 +11290,6 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@2.6.3: - resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -11889,21 +11680,21 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - storybook-builder-rsbuild@0.0.7: - resolution: {integrity: sha512-PMNI0SSn23KSWTO94fla1MdjnOLgmJ7Jjl5P1r8oUtPX2JONCPcpCuKxnPQUVJxi/Mdu2fDDR0VER6rky2D9qw==} + storybook-builder-rsbuild@0.1.0: + resolution: {integrity: sha512-g5ILrbIwdouNiaNv+xkjyqRfKJZzl6crKsOBKUgWpXEqEz9h8yr6A7PadQgfi95knEuaSpeRDGRge/6pMLqYnA==} peerDependencies: - '@rsbuild/core': '>= 1.0.0-alpha.9' + '@rsbuild/core': ^1.0.1 storybook: ^8.2.1 typescript: '*' peerDependenciesMeta: typescript: optional: true - storybook-react-rsbuild@0.0.7: - resolution: {integrity: sha512-wnu/BP/ty9XUD6ZJm3p2uoI6biHoe7N584gWa8W8Hv/TcSsk5GMMxZQtVcjYWeGDrX1Qx7DA1IhW8eV2WBNVFQ==} + storybook-react-rsbuild@0.1.0: + resolution: {integrity: sha512-m6nfHH3Y7w9JjzdK6i0l8A+S4DJYRxS3S7VlkPoIcPeeSSxsxd1Vv2fSoSdVx8AsNjdpPoJhD9Epa5LlYb76xA==} engines: {node: '>=18.0.0'} peerDependencies: - '@rsbuild/core': '>= 1.0.0-alpha.9' + '@rsbuild/core': ^1.0.1 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^8.2.1 @@ -11912,8 +11703,8 @@ packages: typescript: optional: true - storybook@8.2.9: - resolution: {integrity: sha512-S7Q/Yt4A+nu1O23rg39lQvBqL2Vg+PKXbserDWUR4LFJtfmoZ2xGO8oFIhJmvvhjUBvolw1q7QDeswPq2i0sGw==} + storybook@8.3.0: + resolution: {integrity: sha512-XKU+nem9OKX/juvJPwka1Q7DTpSbOe0IMp8ZyLQWorhFKpquJdUjryl7Z9GiFZyyTykCqH4ItQ7h8PaOmqVMOw==} hasBin: true streamsearch@1.1.0: @@ -12188,18 +11979,6 @@ packages: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} - temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} - - temp@0.8.4: - resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} - engines: {node: '>=6.0.0'} - - tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} - term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -12266,10 +12045,18 @@ packages: resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + tinyspy@2.2.1: resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} + title@3.5.3: resolution: {integrity: sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q==} hasBin: true @@ -12603,10 +12390,6 @@ packages: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} - unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -13545,21 +13328,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -13580,20 +13348,6 @@ snapshots: regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 - - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 - semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -13605,18 +13359,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.7 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-environment-visitor@7.24.7': + '@babel/helper-environment-visitor@7.24.7': dependencies: '@babel/types': 7.25.6 @@ -13676,17 +13419,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-module-transforms@7.25.2(@babel/core@7.14.5)': dependencies: '@babel/core': 7.14.5 @@ -13724,24 +13456,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-remap-async-to-generator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-wrap-function': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.24.7(@babel/core@7.14.5)': dependencies: '@babel/core': 7.14.5 @@ -13760,15 +13474,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -13813,14 +13518,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-wrap-function@7.25.0': - dependencies: - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/helpers@7.24.7': dependencies: '@babel/template': 7.24.7 @@ -13854,29 +13551,11 @@ snapshots: '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -13886,29 +13565,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -13930,10 +13592,6 @@ snapshots: dependencies: '@babel/core': 7.24.7 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -13984,36 +13642,16 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14154,11 +13792,6 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.14.5)': dependencies: '@babel/core': 7.14.5 @@ -14175,22 +13808,11 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-async-generator-functions@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14201,16 +13823,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14220,35 +13832,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-remap-async-to-generator': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14257,14 +13850,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14274,15 +13859,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-classes@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14297,80 +13873,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/template': 7.24.7 - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/template': 7.24.7 - '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14379,32 +13909,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-flow-strip-types@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14413,14 +13923,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14428,59 +13930,28 @@ snapshots: '@babel/helper-function-name': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14489,14 +13960,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.14.5)': dependencies: '@babel/core': 7.14.5 @@ -14515,24 +13978,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-simple-access': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-systemjs@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14543,16 +13988,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14561,60 +13996,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14623,66 +14027,26 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7) '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - - '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - - '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)': - dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7) - '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': + '@babel/plugin-transform-optional-chaining@7.24.7(@babel/core@7.24.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.24.7 + '@babel/helper-plugin-utils': 7.24.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7) transitivePeerDependencies: - supports-color @@ -14691,11 +14055,6 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-private-methods@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14704,14 +14063,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14722,26 +14073,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14798,22 +14134,11 @@ snapshots: '@babel/helper-plugin-utils': 7.24.7 regenerator-transform: 0.15.2 - '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-runtime@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14831,11 +14156,6 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -14844,44 +14164,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-typeof-symbol@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.14.5)': dependencies: '@babel/core': 7.14.5 @@ -14902,16 +14199,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - '@babel/plugin-transform-typescript@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -14928,47 +14215,24 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-sets-regex@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 '@babel/helper-create-regexp-features-plugin': 7.24.7(@babel/core@7.24.7) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 - '@babel/preset-env@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/compat-data': 7.24.7 @@ -15056,102 +14320,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-env@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.3(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-async-generator-functions': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-destructuring': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-dotall-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-keys': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-dynamic-import': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-exponentiation-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-export-namespace-from': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-function-name': 7.25.1(@babel/core@7.25.2) - '@babel/plugin-transform-json-strings': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-literals': 7.25.2(@babel/core@7.25.2) - '@babel/plugin-transform-logical-assignment-operators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-amd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-modules-systemjs': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-modules-umd': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-named-capturing-groups-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-new-target': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-numeric-separator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-rest-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-catch-binding': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-private-property-in-object': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-regenerator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-reserved-words': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-sticky-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typeof-symbol': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-escapes': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-property-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-regex': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-unicode-sets-regex': 7.25.4(@babel/core@7.25.2) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.38.1 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/preset-flow@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/helper-validator-option': 7.24.8 - '@babel/plugin-transform-flow-strip-types': 7.25.2(@babel/core@7.25.2) - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -15159,13 +14327,6 @@ snapshots: '@babel/types': 7.25.6 esutils: 2.0.3 - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/types': 7.25.6 - esutils: 2.0.3 - '@babel/preset-react@7.24.7(@babel/core@7.24.7)': dependencies: '@babel/core': 7.24.7 @@ -15200,26 +14361,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.24.7(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - - '@babel/register@7.24.6(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - clone-deep: 4.0.1 - find-cache-dir: 2.1.0 - make-dir: 2.1.0 - pirates: 4.0.6 - source-map-support: 0.5.21 - '@babel/regjsgen@0.8.0': {} '@babel/runtime@7.24.7': @@ -15379,19 +14520,7 @@ snapshots: bignumber.js: 9.1.2 sha.js: 2.4.11 - '@chromatic-com/storybook@1.7.0(react@18.3.1)': - dependencies: - chromatic: 11.7.1 - filesize: 10.1.4 - jsonfile: 6.1.0 - react-confetti: 6.1.0(react@18.3.1) - strip-ansi: 7.1.0 - transitivePeerDependencies: - - '@chromatic-com/cypress' - - '@chromatic-com/playwright' - - react - - '@chromatic-com/storybook@1.8.0(react@18.3.1)': + '@chromatic-com/storybook@2.0.2(react@18.3.1)': dependencies: chromatic: 11.7.1 filesize: 10.1.4 @@ -16029,13 +15158,13 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: glob: 7.2.3 glob-promise: 4.2.2(glob@7.2.3) magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.5.4) - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) optionalDependencies: typescript: 5.5.4 @@ -16664,28 +15793,34 @@ snapshots: - '@parcel/core' - '@swc/helpers' - '@parcel/cache@2.12.0': + '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12)': dependencies: - '@parcel/fs': 2.12.0(@swc/helpers@0.5.11) + '@parcel/core': 2.12.0(@swc/helpers@0.5.12) + '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 + transitivePeerDependencies: + - '@swc/helpers' - '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))': + '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: - '@parcel/core': 2.12.0(@swc/helpers@0.5.12) - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + '@parcel/core': 2.12.0(@swc/helpers@0.5.3) + '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 + transitivePeerDependencies: + - '@swc/helpers' - '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))': + '@parcel/cache@2.12.0(@swc/helpers@0.5.11)': dependencies: - '@parcel/core': 2.12.0(@swc/helpers@0.5.3) - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/fs': 2.12.0(@swc/helpers@0.5.11) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 + transitivePeerDependencies: + - '@swc/helpers' '@parcel/codeframe@2.12.0': dependencies: @@ -16843,7 +15978,7 @@ snapshots: '@parcel/core@2.12.0(@swc/helpers@0.5.12)': dependencies: '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/diagnostic': 2.12.0 '@parcel/events': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) @@ -16856,7 +15991,7 @@ snapshots: '@parcel/source-map': 2.1.1 '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) abortcontroller-polyfill: 1.7.5 base-x: 3.0.10 browserslist: 4.23.3 @@ -16873,7 +16008,7 @@ snapshots: '@parcel/core@2.12.0(@swc/helpers@0.5.3)': dependencies: '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/diagnostic': 2.12.0 '@parcel/events': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) @@ -16914,7 +16049,7 @@ snapshots: '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/utils': 2.12.0 '@parcel/watcher': 2.4.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) transitivePeerDependencies: - '@swc/helpers' @@ -16935,7 +16070,7 @@ snapshots: '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 '@parcel/watcher': 2.4.1 - '@parcel/workers': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) transitivePeerDependencies: - '@swc/helpers' @@ -17096,7 +16231,7 @@ snapshots: '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/rust': 2.12.0 '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) transitivePeerDependencies: - '@swc/helpers' @@ -17174,9 +16309,24 @@ snapshots: '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/logger': 2.12.0 '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) - '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + '@parcel/types': 2.12.0(@swc/helpers@0.5.11) + '@parcel/utils': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + '@swc/core': 1.7.18(@swc/helpers@0.5.12) + semver: 7.6.3 + transitivePeerDependencies: + - '@swc/helpers' + + '@parcel/package-manager@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12)': + dependencies: + '@parcel/core': 2.12.0(@swc/helpers@0.5.3) + '@parcel/diagnostic': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/logger': 2.12.0 + '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) '@swc/core': 1.7.18(@swc/helpers@0.5.12) semver: 7.6.3 transitivePeerDependencies: @@ -17189,7 +16339,7 @@ snapshots: '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/logger': 2.12.0 '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) - '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) '@swc/core': 1.7.18(@swc/helpers@0.5.3) @@ -17205,7 +16355,7 @@ snapshots: '@parcel/node-resolver-core': 3.3.0 '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) '@swc/core': 1.7.18(@swc/helpers@0.5.11) semver: 7.6.3 transitivePeerDependencies: @@ -17347,6 +16497,13 @@ snapshots: - '@parcel/core' - '@swc/helpers' + '@parcel/plugin@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12)': + dependencies: + '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + '@parcel/plugin@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) @@ -17619,7 +16776,7 @@ snapshots: '@parcel/core': 2.12.0(@swc/helpers@0.5.12) '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) nullthrows: 1.1.1 transitivePeerDependencies: - '@swc/helpers' @@ -17642,7 +16799,7 @@ snapshots: '@parcel/rust': 2.12.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@swc/helpers': 0.5.12 browserslist: 4.23.3 nullthrows: 1.1.1 @@ -17653,7 +16810,7 @@ snapshots: dependencies: '@parcel/core': 2.12.0(@swc/helpers@0.5.3) '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) '@parcel/rust': 2.12.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.12.0 @@ -17934,12 +17091,25 @@ snapshots: '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12)': dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + utility-types: 3.11.0 + transitivePeerDependencies: + - '@parcel/core' + - '@swc/helpers' + + '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12)': + dependencies: + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/diagnostic': 2.12.0 + '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) + '@parcel/source-map': 2.1.1 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/core' @@ -17947,7 +17117,7 @@ snapshots: '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) @@ -17960,12 +17130,12 @@ snapshots: '@parcel/types@2.12.0(@swc/helpers@0.5.11)': dependencies: - '@parcel/cache': 2.12.0 + '@parcel/cache': 2.12.0(@swc/helpers@0.5.11) '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@swc/helpers@0.5.11) '@parcel/package-manager': 2.12.0(@swc/helpers@0.5.11) '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0 + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/core' @@ -18038,16 +17208,7 @@ snapshots: '@parcel/watcher-win32-ia32': 2.4.1 '@parcel/watcher-win32-x64': 2.4.1 - '@parcel/workers@2.12.0': - dependencies: - '@parcel/diagnostic': 2.12.0 - '@parcel/logger': 2.12.0 - '@parcel/profiler': 2.12.0 - '@parcel/types': 2.12.0(@swc/helpers@0.5.11) - '@parcel/utils': 2.12.0 - nullthrows: 1.1.1 - - '@parcel/workers@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))': + '@parcel/workers@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12)': dependencies: '@parcel/core': 2.12.0(@swc/helpers@0.5.12) '@parcel/diagnostic': 2.12.0 @@ -18056,6 +17217,8 @@ snapshots: '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/utils': 2.12.0 nullthrows: 1.1.1 + transitivePeerDependencies: + - '@swc/helpers' '@parcel/workers@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))': dependencies: @@ -18063,7 +17226,7 @@ snapshots: '@parcel/diagnostic': 2.12.0 '@parcel/logger': 2.12.0 '@parcel/profiler': 2.12.0 - '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 nullthrows: 1.1.1 @@ -19145,14 +18308,15 @@ snapshots: html-webpack-plugin: html-rspack-plugin@5.7.2(@rspack/core@0.6.5(@swc/helpers@0.5.3)) postcss: 8.4.45 - '@rsbuild/plugin-type-check@1.0.0-alpha.9(@rsbuild/core@0.6.15)(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(typescript@5.5.4)': + '@rsbuild/plugin-type-check@1.0.1(@rsbuild/core@0.6.15)(@swc/core@1.7.18(@swc/helpers@0.5.11))(typescript@5.5.4)': dependencies: - '@rsbuild/core': 0.6.15 deepmerge: 4.3.1 - fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) json5: 2.2.3 reduce-configs: 1.0.0 - webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5) + webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)) + optionalDependencies: + '@rsbuild/core': 0.6.15 transitivePeerDependencies: - '@swc/core' - esbuild @@ -19321,137 +18485,112 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@storybook/addon-actions@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-actions@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 uuid: 9.0.1 - '@storybook/addon-backgrounds@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-backgrounds@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 - '@storybook/addon-controls@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-controls@8.3.0(storybook@8.3.0)': dependencies: + '@storybook/global': 5.0.0 dequal: 2.0.3 lodash: 4.17.21 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 - '@storybook/addon-docs@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-docs@8.3.0(storybook@8.3.0)': dependencies: - '@babel/core': 7.25.2 '@mdx-js/react': 3.0.1(@types/react@18.3.5)(react@18.3.1) - '@storybook/blocks': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/csf-plugin': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/blocks': 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) + '@storybook/csf-plugin': 8.3.0(storybook@8.3.0) '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/react-dom-shim': 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) '@types/react': 18.3.5 fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) rehype-external-links: 3.0.0 rehype-slug: 6.0.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/addon-essentials@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': - dependencies: - '@storybook/addon-actions': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-backgrounds': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-controls': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-docs': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-highlight': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-measure': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-outline': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-toolbars': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/addon-viewport': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@storybook/addon-essentials@8.3.0(storybook@8.3.0)': + dependencies: + '@storybook/addon-actions': 8.3.0(storybook@8.3.0) + '@storybook/addon-backgrounds': 8.3.0(storybook@8.3.0) + '@storybook/addon-controls': 8.3.0(storybook@8.3.0) + '@storybook/addon-docs': 8.3.0(storybook@8.3.0) + '@storybook/addon-highlight': 8.3.0(storybook@8.3.0) + '@storybook/addon-measure': 8.3.0(storybook@8.3.0) + '@storybook/addon-outline': 8.3.0(storybook@8.3.0) + '@storybook/addon-toolbars': 8.3.0(storybook@8.3.0) + '@storybook/addon-viewport': 8.3.0(storybook@8.3.0) + storybook: 8.3.0 ts-dedent: 2.2.0 - transitivePeerDependencies: - - supports-color - '@storybook/addon-highlight@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-highlight@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/addon-interactions@8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@storybook/addon-interactions@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/test': 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + '@storybook/instrumenter': 8.3.0(storybook@8.3.0) + '@storybook/test': 8.3.0(storybook@8.3.0) polished: 4.3.1 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - - '@storybook/addon-interactions@8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/test': 8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) - polished: 4.3.1 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - '@storybook/addon-links@8.2.9(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-links@8.3.0(react@18.3.1)(storybook@8.3.0)': dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 - '@storybook/addon-measure@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-measure@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.2.9(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-onboarding@8.3.0(react@18.3.1)(storybook@8.3.0)': dependencies: react-confetti: 6.1.0(react@18.3.1) - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 transitivePeerDependencies: - react - '@storybook/addon-outline@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-outline@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-toolbars@8.3.0(storybook@8.3.0)': dependencies: - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/addon-viewport@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/addon-viewport@8.3.0(storybook@8.3.0)': dependencies: memoizerific: 1.11.3 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/blocks@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/blocks@8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0)': dependencies: '@storybook/csf': 0.1.11 '@storybook/global': 5.0.0 @@ -19464,7 +18603,7 @@ snapshots: memoizerific: 1.11.3 polished: 4.3.1 react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 telejson: 7.2.0 ts-dedent: 2.2.0 util-deprecate: 1.0.2 @@ -19472,9 +18611,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@storybook/builder-vite@8.3.0(storybook@8.3.0)(typescript@5.5.4)(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: - '@storybook/csf-plugin': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/csf-plugin': 8.3.0(storybook@8.3.0) '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 1.5.4 @@ -19482,7 +18621,7 @@ snapshots: find-cache-dir: 3.3.2 fs-extra: 11.2.0 magic-string: 0.30.11 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 vite: 5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) optionalDependencies: @@ -19490,65 +18629,45 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/builder-vite@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@storybook/builder-vite@8.3.0(storybook@8.3.0)(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: - '@storybook/csf-plugin': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/csf-plugin': 8.3.0(storybook@8.3.0) '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 1.5.4 express: 4.19.2 find-cache-dir: 3.3.2 fs-extra: 11.2.0 - magic-string: 0.30.11 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - ts-dedent: 2.2.0 - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@storybook/codemod@8.2.9': - dependencies: - '@babel/core': 7.25.2 - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) - '@babel/types': 7.25.6 - '@storybook/core': 8.2.9 - '@storybook/csf': 0.1.11 - '@types/cross-spawn': 6.0.6 - cross-spawn: 7.0.3 - globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - lodash: 4.17.21 - prettier: 3.3.3 - recast: 0.23.9 - tiny-invariant: 1.3.3 + magic-string: 0.30.11 + storybook: 8.3.0 + ts-dedent: 2.2.0 + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + optionalDependencies: + typescript: 5.5.4 transitivePeerDependencies: - - bufferutil - supports-color - - utf-8-validate - '@storybook/components@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/components@8.3.0(storybook@8.3.0)': dependencies: - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/core-webpack@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/core-webpack@8.2.9(storybook@8.3.0)': dependencies: '@types/node': 18.19.50 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 - '@storybook/core@8.2.9': + '@storybook/core@8.3.0': dependencies: '@storybook/csf': 0.1.11 '@types/express': 4.17.21 - '@types/node': 18.19.50 browser-assert: 1.2.1 - esbuild: 0.21.5 - esbuild-register: 3.6.0(esbuild@0.21.5) + esbuild: 0.23.1 + esbuild-register: 3.6.0(esbuild@0.23.1) express: 4.19.2 process: 0.11.10 recast: 0.23.9 + semver: 7.6.3 util: 0.12.5 ws: 8.18.0 transitivePeerDependencies: @@ -19556,9 +18675,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/csf-plugin@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/csf-plugin@8.3.0(storybook@8.3.0)': dependencies: - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 unplugin: 1.12.2 '@storybook/csf@0.0.1': @@ -19576,22 +18695,22 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/instrumenter@8.3.0(storybook@8.3.0)': dependencies: '@storybook/global': 5.0.0 - '@vitest/utils': 1.6.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@vitest/utils': 2.1.1 + storybook: 8.3.0 util: 0.12.5 - '@storybook/manager-api@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/manager-api@8.3.0(storybook@8.3.0)': dependencies: - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/preview-api@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/preview-api@8.3.0(storybook@8.3.0)': dependencies: - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/react-docgen-typescript-plugin@1.0.1(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5))': + '@storybook/react-docgen-typescript-plugin@1.0.1(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)))': dependencies: debug: 4.3.7 endent: 2.1.0 @@ -19601,114 +18720,92 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.5.4) tslib: 2.7.0 typescript: 5.5.4 - webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5) + webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)) transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/react-dom-shim@8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/react-vite@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.21.2)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@storybook/react-vite@8.3.0(@storybook/test@8.3.0(storybook@8.3.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.21.2)(storybook@8.3.0)(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) '@rollup/pluginutils': 5.1.0(rollup@4.21.2) - '@storybook/builder-vite': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) - '@storybook/react': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4) + '@storybook/builder-vite': 8.3.0(storybook@8.3.0)(typescript@5.5.4)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + '@storybook/react': 8.3.0(@storybook/test@8.3.0(storybook@8.3.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0)(typescript@5.5.4) find-up: 5.0.0 magic-string: 0.30.11 react: 18.3.1 react-docgen: 7.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 tsconfig-paths: 4.2.0 - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@preact/preset-vite' + - '@storybook/test' - rollup - supports-color - typescript - vite-plugin-glimmerx - '@storybook/react@8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)': + '@storybook/react@8.3.0(@storybook/test@8.3.0(storybook@8.3.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0)(typescript@5.5.4)': dependencies: - '@storybook/components': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/components': 8.3.0(storybook@8.3.0) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/preview-api': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/react-dom-shim': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/theming': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/manager-api': 8.3.0(storybook@8.3.0) + '@storybook/preview-api': 8.3.0(storybook@8.3.0) + '@storybook/react-dom-shim': 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) + '@storybook/theming': 8.3.0(storybook@8.3.0) '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 - '@types/node': 18.19.50 + '@types/node': 22.5.5 acorn: 7.4.1 acorn-jsx: 5.3.2(acorn@7.4.1) acorn-walk: 7.2.0 escodegen: 2.1.0 html-tags: 3.3.1 - lodash: 4.17.21 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) semver: 7.6.3 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 type-fest: 2.19.0 util-deprecate: 1.0.2 optionalDependencies: + '@storybook/test': 8.3.0(storybook@8.3.0) typescript: 5.5.4 - '@storybook/test@8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': - dependencies: - '@storybook/csf': 0.1.11 - '@storybook/instrumenter': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@testing-library/dom': 10.1.0 - '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) - '@vitest/expect': 1.6.0 - '@vitest/spy': 1.6.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - util: 0.12.5 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - - '@storybook/test@8.2.9(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@storybook/test@8.3.0(storybook@8.3.0)': dependencies: '@storybook/csf': 0.1.11 - '@storybook/instrumenter': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@testing-library/dom': 10.1.0 - '@testing-library/jest-dom': 6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) - '@testing-library/user-event': 14.5.2(@testing-library/dom@10.1.0) - '@vitest/expect': 1.6.0 - '@vitest/spy': 1.6.0 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + '@storybook/global': 5.0.0 + '@storybook/instrumenter': 8.3.0(storybook@8.3.0) + '@testing-library/dom': 10.4.0 + '@testing-library/jest-dom': 6.5.0 + '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) + '@vitest/expect': 2.0.5 + '@vitest/spy': 2.0.5 + storybook: 8.3.0 util: 0.12.5 - transitivePeerDependencies: - - '@jest/globals' - - '@types/bun' - - '@types/jest' - - jest - - vitest - '@storybook/theming@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))': + '@storybook/theming@8.3.0(storybook@8.3.0)': dependencies: - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 - '@storybook/vue3-vite@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.31(typescript@5.5.4))': + '@storybook/vue3-vite@8.3.0(storybook@8.3.0)(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.31(typescript@5.5.4))': dependencies: - '@storybook/builder-vite': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) - '@storybook/vue3': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vue@3.4.31(typescript@5.5.4)) + '@storybook/builder-vite': 8.3.0(storybook@8.3.0)(typescript@5.5.4)(vite@5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)) + '@storybook/vue3': 8.3.0(storybook@8.3.0)(vue@3.4.31(typescript@5.5.4)) find-package-json: 1.2.0 magic-string: 0.30.11 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 typescript: 5.5.4 vite: 5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vue-component-meta: 2.1.4(typescript@5.5.4) @@ -19719,16 +18816,15 @@ snapshots: - vite-plugin-glimmerx - vue - '@storybook/vue3@8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(vue@3.4.31(typescript@5.5.4))': + '@storybook/vue3@8.3.0(storybook@8.3.0)(vue@3.4.31(typescript@5.5.4))': dependencies: - '@storybook/components': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/components': 8.3.0(storybook@8.3.0) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/preview-api': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/theming': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@storybook/manager-api': 8.3.0(storybook@8.3.0) + '@storybook/preview-api': 8.3.0(storybook@8.3.0) + '@storybook/theming': 8.3.0(storybook@8.3.0) '@vue/compiler-core': 3.4.38 - lodash: 4.17.21 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) + storybook: 8.3.0 ts-dedent: 2.2.0 type-fest: 2.19.0 vue: 3.4.31(typescript@5.5.4) @@ -19861,26 +18957,21 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@20.16.2))(vitest@1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@testing-library/dom@10.4.0': dependencies: - '@adobe/css-tools': 4.4.0 + '@babel/code-frame': 7.24.7 '@babel/runtime': 7.25.4 + '@types/aria-query': 5.0.4 aria-query: 5.3.0 - chalk: 3.0.0 - css.escape: 1.5.1 - dom-accessibility-api: 0.6.3 - lodash: 4.17.21 - redent: 3.0.0 - optionalDependencies: - '@jest/globals': 29.7.0 - '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@20.16.2) - vitest: 1.6.0(@types/node@20.16.2)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + chalk: 4.1.2 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + pretty-format: 27.5.1 - '@testing-library/jest-dom@6.4.5(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(vitest@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.5))(vitest@1.6.0(@types/node@22.5.5)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.25.4 + '@babel/runtime': 7.24.7 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 @@ -19890,24 +18981,18 @@ snapshots: optionalDependencies: '@jest/globals': 29.7.0 '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.5.4) - vitest: 1.6.0(@types/node@22.5.4)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + jest: 29.7.0(@types/node@22.5.5) + vitest: 1.6.0(@types/node@22.5.5)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - '@testing-library/jest-dom@6.4.6(@jest/globals@29.7.0)(@types/jest@29.5.12)(jest@29.7.0(@types/node@22.5.4))(vitest@1.6.0(@types/node@22.5.4)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@testing-library/jest-dom@6.5.0': dependencies: '@adobe/css-tools': 4.4.0 - '@babel/runtime': 7.24.7 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - optionalDependencies: - '@jest/globals': 29.7.0 - '@types/jest': 29.5.12 - jest: 29.7.0(@types/node@22.5.4) - vitest: 1.6.0(@types/node@22.5.4)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) '@testing-library/react@16.0.0(@testing-library/dom@10.1.0)(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: @@ -19919,9 +19004,9 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 - '@testing-library/user-event@14.5.2(@testing-library/dom@10.1.0)': + '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: - '@testing-library/dom': 10.1.0 + '@testing-library/dom': 10.4.0 '@theguild/remark-mermaid@0.0.5(react@18.3.1)': dependencies: @@ -20007,10 +19092,6 @@ snapshots: dependencies: '@types/node': 20.16.5 - '@types/cross-spawn@6.0.6': - dependencies: - '@types/node': 20.16.5 - '@types/d3-scale-chromatic@3.0.3': {} '@types/d3-scale@4.0.8': @@ -20025,8 +19106,6 @@ snapshots: '@types/doctrine@0.0.9': {} - '@types/emscripten@1.39.13': {} - '@types/escodegen@0.0.6': {} '@types/eslint@8.56.10': @@ -20169,6 +19248,10 @@ snapshots: dependencies: undici-types: 6.19.8 + '@types/node@22.5.5': + dependencies: + undici-types: 6.19.8 + '@types/normalize-package-data@2.4.4': {} '@types/parcel__watcher@2.0.5': @@ -20724,7 +19807,7 @@ snapshots: dependencies: '@vanilla-extract/private': 1.0.6 - '@vanilla-extract/integration@7.1.1(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)': + '@vanilla-extract/integration@7.1.1(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)': dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.25.2) @@ -20737,8 +19820,8 @@ snapshots: lodash: 4.17.21 mlly: 1.6.1 outdent: 0.8.0 - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - vite-node: 1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite-node: 1.6.0(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@types/node' - less @@ -20776,7 +19859,7 @@ snapshots: - supports-color - terser - '@vanilla-extract/integration@7.1.9(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)': + '@vanilla-extract/integration@7.1.9(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)': dependencies: '@babel/core': 7.25.2 '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) @@ -20788,8 +19871,8 @@ snapshots: find-up: 5.0.0 javascript-stringify: 2.1.0 mlly: 1.7.1 - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - vite-node: 1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite-node: 1.6.0(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20802,10 +19885,10 @@ snapshots: - supports-color - terser - '@vanilla-extract/parcel-transformer@1.0.9(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)': + '@vanilla-extract/parcel-transformer@1.0.9(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)': dependencies: '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) - '@vanilla-extract/integration': 7.1.9(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + '@vanilla-extract/integration': 7.1.9(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@parcel/core' - '@swc/helpers' @@ -20854,10 +19937,10 @@ snapshots: - supports-color - terser - '@vanilla-extract/vite-plugin@4.0.15(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@vanilla-extract/vite-plugin@4.0.15(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: - '@vanilla-extract/integration': 7.1.9(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + '@vanilla-extract/integration': 7.1.9(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -20870,10 +19953,10 @@ snapshots: - supports-color - terser - '@vanilla-extract/vite-plugin@4.0.6(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@vanilla-extract/vite-plugin@4.0.6(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: - '@vanilla-extract/integration': 7.1.1(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + '@vanilla-extract/integration': 7.1.1(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@types/node' - less @@ -20885,21 +19968,21 @@ snapshots: - supports-color - terser - '@vitejs/plugin-react-swc@3.7.0(@swc/helpers@0.5.3)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@vitejs/plugin-react-swc@3.7.0(@swc/helpers@0.5.3)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: '@swc/core': 1.7.18(@swc/helpers@0.5.3) - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@swc/helpers' - '@vitejs/plugin-react@4.3.1(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': + '@vitejs/plugin-react@4.3.1(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - supports-color @@ -20918,9 +20001,9 @@ snapshots: vite: 5.4.2(@types/node@20.16.2)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vue: 3.4.31(typescript@5.5.4) - '@vitejs/plugin-vue@5.0.4(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.21(typescript@5.4.2))': + '@vitejs/plugin-vue@5.0.4(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue@3.4.21(typescript@5.4.2))': dependencies: - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vue: 3.4.21(typescript@5.4.2) '@vitejs/plugin-vue@5.0.5(vite@5.4.2(@types/node@20.14.9)(lightningcss@1.26.0)(terser@5.31.6))(vue@3.4.31(typescript@5.5.3))': @@ -20934,6 +20017,21 @@ snapshots: '@vitest/utils': 1.6.0 chai: 4.5.0 + '@vitest/expect@2.0.5': + dependencies: + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.1': + dependencies: + tinyrainbow: 1.2.0 + '@vitest/runner@1.6.0': dependencies: '@vitest/utils': 1.6.0 @@ -20950,6 +20048,10 @@ snapshots: dependencies: tinyspy: 2.2.1 + '@vitest/spy@2.0.5': + dependencies: + tinyspy: 3.0.2 + '@vitest/utils@1.6.0': dependencies: diff-sequences: 29.6.3 @@ -20957,6 +20059,19 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 + '@vitest/utils@2.0.5': + dependencies: + '@vitest/pretty-format': 2.0.5 + estree-walker: 3.0.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + '@vitest/utils@2.1.1': + dependencies: + '@vitest/pretty-format': 2.1.1 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + '@volar/language-core@1.11.1': dependencies: '@volar/source-map': 1.11.1 @@ -21565,16 +20680,6 @@ snapshots: '@xtuc/long@4.2.2': {} - '@yarnpkg/fslib@2.10.3': - dependencies: - '@yarnpkg/libzip': 2.3.0 - tslib: 1.14.1 - - '@yarnpkg/libzip@2.3.0': - dependencies: - '@types/emscripten': 1.39.13 - tslib: 1.14.1 - '@yarnpkg/lockfile@1.1.0': {} '@yarnpkg/parsers@3.0.0-rc.46': @@ -21846,6 +20951,8 @@ snapshots: assertion-error@1.1.0: {} + assertion-error@2.0.1: {} + ast-types-flow@0.0.8: {} ast-types@0.14.2: @@ -21916,10 +21023,6 @@ snapshots: dependencies: dequal: 2.0.3 - babel-core@7.0.0-bridge.0(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - babel-jest@29.7.0(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 @@ -21963,15 +21066,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): - dependencies: - '@babel/compat-data': 7.24.7 - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 @@ -21980,14 +21074,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.38.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.7): dependencies: '@babel/core': 7.24.7 @@ -21995,13 +21081,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - babel-preset-current-node-syntax@1.1.0(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 @@ -22275,6 +21354,14 @@ snapshots: pathval: 1.1.1 type-detect: 4.1.0 + chai@5.1.1: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 + chalk@2.3.0: dependencies: ansi-styles: 3.2.1 @@ -22340,6 +21427,8 @@ snapshots: dependencies: get-func-name: 2.0.2 + check-error@2.1.1: {} + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -22521,8 +21610,6 @@ snapshots: commander@4.1.1: {} - commander@6.2.1: {} - commander@7.2.0: {} commander@8.3.0: {} @@ -22657,10 +21744,6 @@ snapshots: dependencies: browserslist: 4.23.3 - core-js-compat@3.38.1: - dependencies: - browserslist: 4.23.3 - core-js@3.36.1: {} core-util-is@1.0.3: {} @@ -22713,22 +21796,6 @@ snapshots: optionalDependencies: typescript: 5.5.4 - create-jest@29.7.0(@types/node@20.16.2): - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.16.2) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - create-jest@29.7.0(@types/node@20.16.5): dependencies: '@jest/types': 29.6.3 @@ -22744,13 +21811,13 @@ snapshots: - supports-color - ts-node - create-jest@29.7.0(@types/node@22.5.4): + create-jest@29.7.0(@types/node@22.5.5): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.5.4) + jest-config: 29.7.0(@types/node@22.5.5) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -22790,11 +21857,7 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crypto-random-string@4.0.0: - dependencies: - type-fest: 1.4.0 - - css-loader@6.11.0(@rspack/core@0.6.5(@swc/helpers@0.5.3))(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)): + css-loader@6.11.0(@rspack/core@0.6.5(@swc/helpers@0.5.3))(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))): dependencies: icss-utils: 5.1.0(postcss@8.4.45) postcss: 8.4.45 @@ -22806,7 +21869,7 @@ snapshots: semver: 7.6.3 optionalDependencies: '@rspack/core': 0.6.5(@swc/helpers@0.5.3) - webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5) + webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)) css-select@4.3.0: dependencies: @@ -23116,6 +22179,8 @@ snapshots: dependencies: type-detect: 4.1.0 + deep-eql@5.0.2: {} + deep-is@0.1.4: {} deep-object-diff@1.1.9: {} @@ -23331,8 +22396,6 @@ snapshots: env-paths@2.2.1: {} - envinfo@7.13.0: {} - envinfo@7.8.1: {} environment@1.1.0: {} @@ -23528,10 +22591,10 @@ snapshots: es6-iterator: 2.0.3 es6-symbol: 3.1.4 - esbuild-register@3.6.0(esbuild@0.21.5): + esbuild-register@3.6.0(esbuild@0.23.1): dependencies: debug: 4.3.7 - esbuild: 0.21.5 + esbuild: 0.23.1 transitivePeerDependencies: - supports-color @@ -24468,10 +23531,6 @@ snapshots: dependencies: bser: 2.1.1 - fd-package-json@1.2.0: - dependencies: - walk-up-path: 3.0.1 - fflate@0.8.2: {} figures@3.2.0: @@ -24512,12 +23571,6 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-dir@2.1.0: - dependencies: - commondir: 1.0.1 - make-dir: 2.1.0 - pkg-dir: 3.0.0 - find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -24534,10 +23587,6 @@ snapshots: dependencies: locate-path: 2.0.0 - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -24569,8 +23618,6 @@ snapshots: flexsearch@0.7.43: {} - flow-parser@0.244.0: {} - focus-trap@7.5.4: dependencies: tabbable: 6.2.0 @@ -24590,7 +23637,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@9.0.2(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)): + fork-ts-checker-webpack-plugin@9.0.2(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))): dependencies: '@babel/code-frame': 7.24.7 chalk: 4.1.2 @@ -24605,7 +23652,7 @@ snapshots: semver: 7.6.3 tapable: 2.2.1 typescript: 5.5.4 - webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5) + webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)) form-data@4.0.0: dependencies: @@ -25722,26 +24769,6 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.16.2): - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.16.2) - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.16.2) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest-cli@29.7.0(@types/node@20.16.5): dependencies: '@jest/core': 29.7.0 @@ -25761,16 +24788,16 @@ snapshots: - supports-color - ts-node - jest-cli@29.7.0(@types/node@22.5.4): + jest-cli@29.7.0(@types/node@22.5.5): dependencies: '@jest/core': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.5.4) + create-jest: 29.7.0(@types/node@22.5.5) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.5.4) + jest-config: 29.7.0(@types/node@22.5.5) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -25781,37 +24808,6 @@ snapshots: - ts-node optional: true - jest-config@29.7.0(@types/node@20.16.2): - dependencies: - '@babel/core': 7.25.2 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.2) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 29.7.0 - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - micromatch: 4.0.8 - parse-json: 5.2.0 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-json-comments: 3.1.1 - optionalDependencies: - '@types/node': 20.16.2 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - optional: true - jest-config@29.7.0(@types/node@20.16.5): dependencies: '@babel/core': 7.25.2 @@ -25842,7 +24838,7 @@ snapshots: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@22.5.4): + jest-config@29.7.0(@types/node@22.5.5): dependencies: '@babel/core': 7.25.2 '@jest/test-sequencer': 29.7.0 @@ -25867,7 +24863,7 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -26094,19 +25090,6 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.16.2): - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.16.2) - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - optional: true - jest@29.7.0(@types/node@20.16.5): dependencies: '@jest/core': 29.7.0 @@ -26119,12 +25102,12 @@ snapshots: - supports-color - ts-node - jest@29.7.0(@types/node@22.5.4): + jest@29.7.0(@types/node@22.5.5): dependencies: '@jest/core': 29.7.0 '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.5.4) + jest-cli: 29.7.0(@types/node@22.5.5) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -26155,33 +25138,6 @@ snapshots: jsbn@1.1.0: {} - jscodeshift@0.15.2(@babel/preset-env@7.25.4(@babel/core@7.25.2)): - dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) - '@babel/plugin-transform-modules-commonjs': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-nullish-coalescing-operator': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) - '@babel/plugin-transform-private-methods': 7.25.4(@babel/core@7.25.2) - '@babel/preset-flow': 7.24.7(@babel/core@7.25.2) - '@babel/preset-typescript': 7.24.7(@babel/core@7.25.2) - '@babel/register': 7.24.6(@babel/core@7.25.2) - babel-core: 7.0.0-bridge.0(@babel/core@7.25.2) - chalk: 4.1.2 - flow-parser: 0.244.0 - graceful-fs: 4.2.11 - micromatch: 4.0.8 - neo-async: 2.6.2 - node-dir: 0.1.17 - recast: 0.23.9 - temp: 0.8.4 - write-file-atomic: 2.4.3 - optionalDependencies: - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) - transitivePeerDependencies: - - supports-color - jsdom@24.1.0: dependencies: cssstyle: 4.0.1 @@ -26548,11 +25504,6 @@ snapshots: p-locate: 2.0.0 path-exists: 3.0.0 - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -26645,6 +25596,10 @@ snapshots: dependencies: get-func-name: 2.0.2 + loupe@3.1.1: + dependencies: + get-func-name: 2.0.2 + lower-case@2.0.2: dependencies: tslib: 2.7.0 @@ -27716,10 +26671,6 @@ snapshots: node-addon-api@7.1.0: {} - node-dir@0.1.17: - dependencies: - minimatch: 3.1.2 - node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 @@ -28168,10 +27119,6 @@ snapshots: dependencies: p-limit: 1.3.0 - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -28449,6 +27396,8 @@ snapshots: pathval@1.1.1: {} + pathval@2.0.0: {} + perfect-debounce@1.0.0: {} periscopic@3.1.0: @@ -28477,10 +27426,6 @@ snapshots: pirates@4.0.6: {} - pkg-dir@3.0.0: - dependencies: - find-up: 3.0.0 - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -29272,10 +28217,6 @@ snapshots: rfdc@1.4.1: {} - rimraf@2.6.3: - dependencies: - glob: 7.2.3 - rimraf@2.7.1: dependencies: glob: 7.2.3 @@ -29731,17 +28672,17 @@ snapshots: std-env@3.7.0: {} - storybook-builder-rsbuild@0.0.7(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)): + storybook-builder-rsbuild@0.1.0(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@swc/core@1.7.18(@swc/helpers@0.5.11))(storybook@8.3.0)(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))): dependencies: '@rsbuild/core': 0.6.15 - '@rsbuild/plugin-type-check': 1.0.0-alpha.9(@rsbuild/core@0.6.15)(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(typescript@5.5.4) - '@storybook/addon-docs': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) - '@storybook/core-webpack': 8.2.9(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2))) + '@rsbuild/plugin-type-check': 1.0.1(@rsbuild/core@0.6.15)(@swc/core@1.7.18(@swc/helpers@0.5.11))(typescript@5.5.4) + '@storybook/addon-docs': 8.3.0(storybook@8.3.0) + '@storybook/core-webpack': 8.2.9(storybook@8.3.0) browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.0 constants-browserify: 1.0.0 - css-loader: 6.11.0(@rspack/core@0.6.5(@swc/helpers@0.5.3))(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + css-loader: 6.11.0(@rspack/core@0.6.5(@swc/helpers@0.5.3))(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) es-module-lexer: 1.5.4 express: 4.19.2 fs-extra: 11.2.0 @@ -29749,8 +28690,8 @@ snapshots: path-browserify: 1.0.1 process: 0.11.10 rsbuild-plugin-html-minifier-terser: 1.1.1(@rsbuild/core@0.6.15) - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - style-loader: 3.3.4(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + storybook: 8.3.0 + style-loader: 3.3.4(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) ts-dedent: 2.2.0 url: 0.11.4 util: 0.12.5 @@ -29766,11 +28707,12 @@ snapshots: - webpack - webpack-cli - storybook-react-rsbuild@0.0.7(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)): + storybook-react-rsbuild@0.1.0(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@storybook/test@8.3.0(storybook@8.3.0))(@swc/core@1.7.18(@swc/helpers@0.5.11))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.21.2)(storybook@8.3.0)(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))): dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.21.2) '@rsbuild/core': 0.6.15 - '@storybook/react': 8.2.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4) - '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + '@storybook/react': 8.3.0(@storybook/test@8.3.0(storybook@8.3.0))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0)(typescript@5.5.4) + '@storybook/react-docgen-typescript-plugin': 1.0.1(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) '@types/node': 18.19.50 find-up: 5.0.0 magic-string: 0.30.11 @@ -29778,52 +28720,26 @@ snapshots: react-docgen: 7.0.3 react-dom: 18.3.1(react@18.3.1) resolve: 1.22.8 - storybook: 8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - storybook-builder-rsbuild: 0.0.7(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)))(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + storybook: 8.3.0 + storybook-builder-rsbuild: 0.1.0(@rsbuild/core@0.6.15)(@rspack/core@0.6.5(@swc/helpers@0.5.3))(@swc/core@1.7.18(@swc/helpers@0.5.11))(storybook@8.3.0)(typescript@5.5.4)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) tsconfig-paths: 4.2.0 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - '@rspack/core' + - '@storybook/test' - '@swc/core' - esbuild + - rollup - supports-color - uglify-js - webpack - webpack-cli - storybook@8.2.9(@babel/preset-env@7.25.4(@babel/core@7.25.2)): + storybook@8.3.0: dependencies: - '@babel/core': 7.25.2 - '@babel/types': 7.25.6 - '@storybook/codemod': 8.2.9 - '@storybook/core': 8.2.9 - '@types/semver': 7.5.8 - '@yarnpkg/fslib': 2.10.3 - '@yarnpkg/libzip': 2.3.0 - chalk: 4.1.2 - commander: 6.2.1 - cross-spawn: 7.0.3 - detect-indent: 6.1.0 - envinfo: 7.13.0 - execa: 5.1.1 - fd-package-json: 1.2.0 - find-up: 5.0.0 - fs-extra: 11.2.0 - giget: 1.2.3 - globby: 14.0.2 - jscodeshift: 0.15.2(@babel/preset-env@7.25.4(@babel/core@7.25.2)) - leven: 3.1.0 - ora: 5.4.1 - prettier: 3.3.3 - prompts: 2.4.2 - semver: 7.6.3 - strip-json-comments: 3.1.1 - tempy: 3.1.0 - tiny-invariant: 1.3.3 - ts-dedent: 2.2.0 + '@storybook/core': 8.3.0 transitivePeerDependencies: - - '@babel/preset-env' - bufferutil - supports-color - utf-8-validate @@ -29971,9 +28887,9 @@ snapshots: minimist: 1.2.8 through: 2.3.8 - style-loader@3.3.4(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)): + style-loader@3.3.4(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))): dependencies: - webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5) + webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)) style-to-object@0.4.4: dependencies: @@ -30149,32 +29065,18 @@ snapshots: temp-dir@1.0.0: {} - temp-dir@3.0.0: {} - - temp@0.8.4: - dependencies: - rimraf: 2.6.3 - - tempy@3.1.0: - dependencies: - is-stream: 3.0.0 - temp-dir: 3.0.0 - type-fest: 2.19.0 - unique-string: 3.0.0 - term-size@2.2.1: {} - terser-webpack-plugin@5.3.10(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)): + terser-webpack-plugin@5.3.10(@swc/core@1.7.18(@swc/helpers@0.5.11))(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.6 - webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5) + webpack: 5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)) optionalDependencies: '@swc/core': 1.7.18(@swc/helpers@0.5.11) - esbuild: 0.21.5 terser@5.31.6: dependencies: @@ -30221,8 +29123,12 @@ snapshots: tinypool@0.8.4: {} + tinyrainbow@1.2.0: {} + tinyspy@2.2.1: {} + tinyspy@3.0.2: {} + title@3.5.3: dependencies: arg: 1.0.0 @@ -30572,10 +29478,6 @@ snapshots: dependencies: imurmurhash: 0.1.4 - unique-string@3.0.0: - dependencies: - crypto-random-string: 4.0.0 - unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.2 @@ -30859,13 +29761,13 @@ snapshots: - supports-color - terser - vite-node@1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): + vite-node@1.6.0(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 picocolors: 1.1.0 - vite: 5.4.3(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.3(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) transitivePeerDependencies: - '@types/node' - less @@ -30901,7 +29803,7 @@ snapshots: typescript: 5.5.4 vue-tsc: 1.8.27(typescript@5.5.4) - vite-plugin-checker@0.6.4(eslint@9.10.0)(optionator@0.9.4)(typescript@5.4.2)(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue-tsc@1.8.27(typescript@5.4.2)): + vite-plugin-checker@0.6.4(eslint@9.10.0)(optionator@0.9.4)(typescript@5.4.2)(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6))(vue-tsc@1.8.27(typescript@5.4.2)): dependencies: '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 @@ -30914,7 +29816,7 @@ snapshots: semver: 7.6.3 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.12 @@ -30942,9 +29844,9 @@ snapshots: - rollup - supports-color - vite-plugin-replace@0.1.1(vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)): + vite-plugin-replace@0.1.1(vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6)): dependencies: - vite: 5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) vite@5.4.2(@types/node@20.14.9)(lightningcss@1.26.0)(terser@5.31.6): dependencies: @@ -30969,13 +29871,13 @@ snapshots: stylus: 0.57.0 terser: 5.31.6 - vite@5.4.2(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): + vite@5.4.2(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): dependencies: esbuild: 0.21.5 postcss: 8.4.45 rollup: 4.21.1 optionalDependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 fsevents: 2.3.3 lightningcss: 1.26.0 stylus: 0.57.0 @@ -31005,13 +29907,13 @@ snapshots: stylus: 0.57.0 terser: 5.31.6 - vite@5.4.3(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): + vite@5.4.3(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): dependencies: esbuild: 0.21.5 postcss: 8.4.45 rollup: 4.21.2 optionalDependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 fsevents: 2.3.3 lightningcss: 1.26.0 stylus: 0.57.0 @@ -31087,7 +29989,7 @@ snapshots: - supports-color - terser - vitest@1.6.0(@types/node@22.5.4)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): + vitest@1.6.0(@types/node@22.5.5)(jsdom@24.1.0)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -31106,11 +30008,11 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.9.0 tinypool: 0.8.4 - vite: 5.4.3(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) - vite-node: 1.6.0(@types/node@22.5.4)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite: 5.4.3(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) + vite-node: 1.6.0(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.5.4 + '@types/node': 22.5.5 jsdom: 24.1.0 transitivePeerDependencies: - less @@ -31375,7 +30277,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5): + webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11)): dependencies: '@types/estree': 1.0.5 '@webassemblyjs/ast': 1.12.1 @@ -31397,7 +30299,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))(esbuild@0.21.5)) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.18(@swc/helpers@0.5.11))(webpack@5.94.0(@swc/core@1.7.18(@swc/helpers@0.5.11))) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: From 235cf4a7531769207a2fc6d2a7906c0f7a2a929f Mon Sep 17 00:00:00 2001 From: yyyyaaa Date: Mon, 16 Sep 2024 05:40:08 +0700 Subject: [PATCH 03/14] fix edge cases --- packages/vue/stories/Box.stories.ts | 1 + src/helpers/style.ts | 16 ++++++++++------ src/models/store.ts | 12 +++++------- src/ui/theme-provider/theme-provider.lite.tsx | 7 +++++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/packages/vue/stories/Box.stories.ts b/packages/vue/stories/Box.stories.ts index fbd7b0ba..70148a42 100644 --- a/packages/vue/stories/Box.stories.ts +++ b/packages/vue/stories/Box.stories.ts @@ -15,6 +15,7 @@ type Story = StoryObj; export const Primary: Story = { args: { bg: "$background", + color: "$text", p: "$4", borderRadius: "$md", borderWidth: "1px", diff --git a/src/helpers/style.ts b/src/helpers/style.ts index 92e2f494..025d590f 100644 --- a/src/helpers/style.ts +++ b/src/helpers/style.ts @@ -67,24 +67,28 @@ export const resolveThemeMode = ( const hasHydrated = store.getState()._hasHydrated; // While in SSR, return a default theme - // TODO: document for package consumer to provide fallback UI using _hasHydrated to prevent flashing content - if (isSSR() || !hasHydrated) return "light"; + if (isSSR() || !hasHydrated) { + return "light"; + } + + const savedTheme = store.getState().themeMode; if (isValidThemeMode(defaultThemeMode)) { - store.getState().setThemeMode(defaultThemeMode); + // Only set the theme if it's different from the saved theme + if (defaultThemeMode !== savedTheme) { + store.getState().setThemeMode(defaultThemeMode); + } return defaultThemeMode; } // props.defaultThemeMode is not provided or invalid, rely on persisted theme - const savedTheme = store.getState().themeMode; - if (isValidThemeMode(savedTheme)) { - store.getState().setThemeMode(savedTheme); return savedTheme; } // persisted value not a valid theme mode, fallback to 'system' store.getState().setThemeMode("system"); + console.log("[resolveThemeMode] using system theme mode"); return "system"; }; diff --git a/src/models/store.ts b/src/models/store.ts index 5b496539..c8abd974 100644 --- a/src/models/store.ts +++ b/src/models/store.ts @@ -155,13 +155,11 @@ export const store = createStore( })), { name: STORAGE_NAME, - // NOTE: this is a workaround for SSR frameworks like Next.js - // We need to call store.persist.rehydrate() ourselves - // More details: https://github.com/pmndrs/zustand/issues/938#issuecomment-1752885433 - skipHydration: true, - onRehydrateStorage: () => (state) => { - state.setHasHydrated(true); - state.setThemeMode(state.themeMode); + onRehydrateStorage: (state) => { + return (persistedState) => { + state.setHasHydrated(true); + state.setThemeMode(persistedState.themeMode); + }; }, // Only choose to persist theme preference, ignore other state partialize: (state) => ({ diff --git a/src/ui/theme-provider/theme-provider.lite.tsx b/src/ui/theme-provider/theme-provider.lite.tsx index b14aaba4..8f298649 100644 --- a/src/ui/theme-provider/theme-provider.lite.tsx +++ b/src/ui/theme-provider/theme-provider.lite.tsx @@ -179,9 +179,12 @@ export default function ThemeProvider(props: ThemeProviderProps) { onMount(() => { state.isMounted = true; - // Dont set global theme mode if in controlled mode + // Resolve the theme mode + const resolvedThemeMode = resolveThemeMode(props.defaultTheme); + + // Set the initial theme based on the resolved mode if (!state.isControlled) { - resolveThemeMode(props.defaultTheme); + store.getState().setThemeMode(resolvedThemeMode); } const darkListener = ({ matches }: MediaQueryListEvent) => { From 94441da924deb6908977528eef091abc3ee09efc Mon Sep 17 00:00:00 2001 From: yyyyaaa Date: Tue, 17 Sep 2024 09:10:13 +0700 Subject: [PATCH 04/14] fix scaffolding logic bug --- packages/compiler/src/base.ts | 62 +- .../compiler/src/frameworks/vue.compile.ts | 22 +- packages/vue/package.json | 1 + .../vue/scaffolds/hooks/use-theme/index.ts | 1 + .../scaffolds/hooks/use-theme/use-theme.ts | 101 ++ packages/vue/scaffolds/modal/index.ts | 0 packages/vue/scaffolds/modal/modal.css.ts | 65 ++ packages/vue/scaffolds/modal/modal.vue | 125 +++ packages/vue/stories/Button.stories.ts | 84 +- packages/vue/stories/Modal.stories.ts | 96 ++ packages/vue/tsconfig.json | 29 +- packages/vue/vite.config.mts | 13 + pnpm-lock.yaml | 980 ++++++++++++++++-- 13 files changed, 1439 insertions(+), 140 deletions(-) create mode 100644 packages/vue/scaffolds/hooks/use-theme/index.ts create mode 100644 packages/vue/scaffolds/hooks/use-theme/use-theme.ts create mode 100644 packages/vue/scaffolds/modal/index.ts create mode 100644 packages/vue/scaffolds/modal/modal.css.ts create mode 100644 packages/vue/scaffolds/modal/modal.vue create mode 100644 packages/vue/stories/Modal.stories.ts diff --git a/packages/compiler/src/base.ts b/packages/compiler/src/base.ts index 547c9047..0a47db49 100644 --- a/packages/compiler/src/base.ts +++ b/packages/compiler/src/base.ts @@ -120,6 +120,8 @@ export async function compile(rawOptions: CompileParams): Promise { }) : files; + console.log("[base.ts] filteredGlobbedFiles", filteredGlobbedFiles); + const outPath = `${options.dest}/${options.target}`; function copyNonMitosisLiteFiles( @@ -236,10 +238,13 @@ export async function compile(rawOptions: CompileParams): Promise { })); const scaffoldImports = scaffoldNames - .map( - (item) => - `export { default as ${item.Comp} } from './ui/${item.name}';`, - ) + .map((item) => { + const importPath = + options.target === "vue" + ? `./ui/${item.name}/${item.name}.vue` + : `./ui/${item.name}`; + return `export { default as ${item.Comp} } from '${importPath}';`; + }) .join("\n"); indexResult = indexResult.replace( @@ -338,7 +343,7 @@ export async function compile(rawOptions: CompileParams): Promise { }; } - async function addReactRSCPatch(): Promise { + async function addFrameworkSpecificPatches(): Promise { const targetRootPath = path.resolve( cwd(), `packages/${options.target}/src`, @@ -360,21 +365,31 @@ export async function compile(rawOptions: CompileParams): Promise { const indexData = fs.readFileSync(indexPath, "utf8"); const hooksExports = hookNamesByFolder - .map( - (item) => - `export { default as ${item.hookName} } from './ui/hooks/${item.folder}';`, - ) + .map((item) => { + if (options.target === "vue") { + // Due to SFC compiler not understanding the barrel file, we need to import the hooks manually + return `export { default as ${item.hookName} } from './ui/hooks/${item.folder}/${item.folder}';`; + } else { + return `export { default as ${item.hookName} } from './ui/hooks/${item.folder}';`; + } + }) .filter((exportLine) => { // Don't include exports if it's already there return indexData.indexOf(exportLine) === -1; }) .join("\n"); - const clientOnlyMarker = `import "client-only";`; + let indexResult = indexData; - const indexResult = `${indexData}\n${clientOnlyMarker}\n${hooksExports}`; + if (options.target === "react") { + const clientOnlyMarker = `import "client-only";`; + indexResult = `${indexData}\n${clientOnlyMarker}\n${hooksExports}`; + } else if (options.target === "vue") { + // For Vue, we don't need the client-only import + indexResult = `${indexData}\n${hooksExports}`; + } - // Skip if hooks exports are the same + // Skip if the result is the same as the original if (indexResult === indexData) { return; } @@ -382,7 +397,7 @@ export async function compile(rawOptions: CompileParams): Promise { fs.writeFileSync(indexPath, indexResult, "utf8"); }) .catch((err) => { - console.log("Failed to add hooks exports", err); + console.log(`Failed to add ${options.target} specific patches:`, err); }); } @@ -411,6 +426,22 @@ export async function compile(rawOptions: CompileParams): Promise { if (scaffoldsExist) { fs.copySync(inDir, outDir); + + // For Vue, we need to rename .tsx files to .vue and copy the hooks + if (options.target === "vue") { + const scaffoldFiles = globSync(`${outDir}/**/*.tsx`); + scaffoldFiles.forEach((file) => { + const newFile = file.replace(/\.tsx$/, ".vue"); + fs.renameSync(file, newFile); + }); + + // Copy hooks to the correct location + const hooksDir = path.join(inDir, "hooks"); + const vueHooksDir = path.join(outPath, "src", "ui", "hooks"); + if (fs.existsSync(hooksDir)) { + fs.copySync(hooksDir, vueHooksDir); + } + } } const changed = await cache.isChanged(fileName); @@ -445,9 +476,8 @@ export async function compile(rawOptions: CompileParams): Promise { await cache.build(Array.isArray(files) ? files : [files]); } - if (options.target === "react") { - addReactRSCPatch(); - } + // Call the new function for both React and Vue + await addFrameworkSpecificPatches(); spinner.succeed(); spinner.stop(); diff --git a/packages/compiler/src/frameworks/vue.compile.ts b/packages/compiler/src/frameworks/vue.compile.ts index 9ee3da42..34b3c1e9 100644 --- a/packages/compiler/src/frameworks/vue.compile.ts +++ b/packages/compiler/src/frameworks/vue.compile.ts @@ -3,6 +3,7 @@ import { globSync } from "glob"; import * as compiler from "../base"; import log from "../log"; import type { CustomReplaceProps } from "../base"; +import { compileAllowList } from "../scaffold.config"; const DEFAULT_OPTIONS = { target: "vue", @@ -23,18 +24,29 @@ function customReplaceVue(props: CustomReplaceProps): void { log.info("\n ============== before edit index.ts =========== \n" + data); const result = data - // Add .vue to index + // Add .vue to index and filter by compileAllowList .replace( /(export)(.*)\/ui\/(?!.*(\.css|\.css\.ts)")(.+)";/g, - `$1$2/ui/$3/$3.vue";`, + (match, p1, p2, p3, p4) => { + const componentName = p4.split("/").pop(); + return compileAllowList["vue"]?.includes(componentName) + ? `${p1}${p2}/ui/${componentName}/${componentName}.vue";` + : ""; + }, ) .replace(/(extensions)\/(.*)\.vue/g, "$1/$2") .replace(/\/helpers\.vue/g, "") - // Add .vue and a subpath to each export + // Add .vue and a subpath to each export, and filter by compileAllowList .replace( /(export { default as (\w+) } from '\.\/ui\/)([^';]+)';/g, - `$1$3/$3.vue';`, - ); + (match, p1, p2, p3) => { + return compileAllowList["vue"]?.includes(p3) + ? `${p1}${p3}/${p3}.vue';` + : ""; + }, + ) + // Remove empty lines created by filtered out exports + .replace(/^\s*[\r\n]/gm, ""); log.warn("\n ============== after edit index.ts =========== \n" + result); diff --git a/packages/vue/package.json b/packages/vue/package.json index 83bbb2d8..3ea37344 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -67,6 +67,7 @@ "sb:build": "storybook build" }, "dependencies": { + "@ark-ui/vue": "^3.13.0", "@floating-ui/dom": "^1.6.10", "@formkit/auto-animate": "^0.8.2", "@vanilla-extract/css": "^1.15.5", diff --git a/packages/vue/scaffolds/hooks/use-theme/index.ts b/packages/vue/scaffolds/hooks/use-theme/index.ts new file mode 100644 index 00000000..de9786d3 --- /dev/null +++ b/packages/vue/scaffolds/hooks/use-theme/index.ts @@ -0,0 +1 @@ +export { default } from "./use-theme"; diff --git a/packages/vue/scaffolds/hooks/use-theme/use-theme.ts b/packages/vue/scaffolds/hooks/use-theme/use-theme.ts new file mode 100644 index 00000000..ce23b4b9 --- /dev/null +++ b/packages/vue/scaffolds/hooks/use-theme/use-theme.ts @@ -0,0 +1,101 @@ +import { ref, computed, onUnmounted } from "vue"; +import { ModePreference, ThemeVariant } from "@/models/system.model"; +import { store } from "@/models/store"; + +export default function useTheme() { + const theme = ref(store.getState().theme); + const themeMode = ref(store.getState().themeMode); + const hasHydrated = ref(store.getState()._hasHydrated); + const themeEvalMode = ref<"force" | "normal">("normal"); + const themeEvalRef = ref(null); + const forcedModeRef = ref(null); + + const cleanupStore = store.subscribe((state) => { + theme.value = state.theme; + themeMode.value = state.themeMode; + hasHydrated.value = state._hasHydrated; + }); + + onUnmounted(() => { + cleanupStore(); + }); + + const setTheme = (mode: ModePreference) => { + store.getState().setThemeMode(mode); + }; + + const toggleColorMode = () => { + setTheme(store.getState().theme === "light" ? "dark" : "light"); + }; + + function recursiveGetColorMode( + node: HTMLElement | null, + ): ThemeVariant | undefined { + if (!node) return; + + let parent = node.parentElement; + while (parent) { + if (parent.dataset.interchainColorMode) { + return parent.dataset.interchainColorMode as ThemeVariant; + } + parent = parent.parentElement; + } + } + + function getForceThemeMode(): ThemeVariant { + if (themeEvalMode.value === "normal" || !themeEvalRef.value) { + return theme.value; + } + + if (forcedModeRef.value) { + return forcedModeRef.value; + } + + const forcedMode = recursiveGetColorMode(themeEvalRef.value); + + if (!forcedMode) { + return theme.value; + } + + return forcedMode; + } + + const getThemeRef = (node: HTMLElement | null) => { + if (node === null) { + themeEvalRef.value = null; + return; + } + + const forcedMode = recursiveGetColorMode(node); + + if (forcedMode === "light" || forcedMode === "dark") { + themeEvalMode.value = "force"; + forcedModeRef.value = forcedMode; + } + + themeEvalRef.value = node; + }; + + const computedThemeClass = computed(() => + themeEvalMode.value === "force" + ? getForceThemeMode() === "light" + ? store.getState().themeClasses[0] + : store.getState().themeClasses[1] + : store.getState().themeClass, + ); + + const colorMode = computed(() => + themeEvalMode.value === "force" ? getForceThemeMode() : theme.value, + ); + + return { + hasHydrated, + theme, + themeClass: computedThemeClass, + setTheme, + colorMode, + setColorMode: setTheme, + toggleColorMode, + getThemeRef, + }; +} diff --git a/packages/vue/scaffolds/modal/index.ts b/packages/vue/scaffolds/modal/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/vue/scaffolds/modal/modal.css.ts b/packages/vue/scaffolds/modal/modal.css.ts new file mode 100644 index 00000000..b824da19 --- /dev/null +++ b/packages/vue/scaffolds/modal/modal.css.ts @@ -0,0 +1,65 @@ +import { style } from "@vanilla-extract/css"; +import { globalStyle } from "@vanilla-extract/css"; + +export const modalRoot = style({ + position: "fixed", + inset: 0, + display: "flex", + justifyContent: "center", + alignItems: "center", + zIndex: 0, +}); + +export const modalContainer = style({ + overflow: `hidden`, + display: `flex`, + alignItems: `center`, + justifyContent: `center`, + transition: `opacity 300ms ease-in-out`, + selectors: { + '&[data-modal-open="true"]': { + opacity: 1, + visibility: `visible`, + }, + '&[data-modal-open="false"]': { + opacity: 0, + visibility: `hidden`, + }, + }, +}); + +export const modalBackdrop = style({ + position: `fixed`, + top: 0, + left: 0, + bottom: 0, + right: 0, + width: `100%`, + height: `100%`, + backgroundColor: `rgba(17, 20, 24, .7)`, +}); + +export const modalContent = style({ + position: `relative`, + zIndex: 1, + overflow: "hidden", +}); + +export const modalHeader = style({ + position: "relative", + display: "flex", +}); + +export const modalCloseButton = style({ + position: "absolute", + right: 0, + top: "50%", + transform: "translateY(-50%)", +}); + +globalStyle( + `${modalContainer} *, ${modalContainer} *::before, ${modalContainer} *::after`, + { + boxSizing: `border-box`, + }, +); diff --git a/packages/vue/scaffolds/modal/modal.vue b/packages/vue/scaffolds/modal/modal.vue new file mode 100644 index 00000000..f35b6b75 --- /dev/null +++ b/packages/vue/scaffolds/modal/modal.vue @@ -0,0 +1,125 @@ + + + diff --git a/packages/vue/stories/Button.stories.ts b/packages/vue/stories/Button.stories.ts index 048975cf..5ade474f 100644 --- a/packages/vue/stories/Button.stories.ts +++ b/packages/vue/stories/Button.stories.ts @@ -51,6 +51,10 @@ export default meta; type Story = StoryObj; +const handleClick = () => { + alert("Button clicked"); +}; + export const Primary: Story = { args: { intent: "primary", @@ -59,12 +63,10 @@ export const Primary: Story = { render: (args) => ({ components: { Button }, setup() { - const handleClick = () => { - alert("Button clicked"); - }; return { args, handleClick }; }, - template: '', + template: + '', }), }; @@ -75,10 +77,78 @@ export const Secondary: Story = { render: (args) => ({ components: { Button }, setup() { - return { args }; + return { args, handleClick }; + }, + template: + '', + }), +}; + +export const Tertiary: Story = { + args: { + intent: "tertiary", + }, + render: (args) => ({ + components: { Button }, + setup() { + return { args, handleClick }; + }, + template: + '', + }), +}; + +export const Success: Story = { + args: { + intent: "success", + }, + render: (args) => ({ + components: { Button }, + setup() { + return { args, handleClick }; + }, + template: + '', + }), +}; + +export const Warning: Story = { + args: { + intent: "warning", + }, + render: (args) => ({ + components: { Button }, + setup() { + return { args, handleClick }; + }, + template: + '', + }), +}; + +export const Danger: Story = { + args: { + intent: "danger", + }, + render: (args) => ({ + components: { Button }, + setup() { + return { args, handleClick }; }, - template: '', + template: + '', }), }; -// Add more stories for other button variants and states... +export const Text: Story = { + args: { + intent: "text", + }, + render: (args) => ({ + components: { Button }, + setup() { + return { args, handleClick }; + }, + template: '', + }), +}; diff --git a/packages/vue/stories/Modal.stories.ts b/packages/vue/stories/Modal.stories.ts new file mode 100644 index 00000000..a5f0e38f --- /dev/null +++ b/packages/vue/stories/Modal.stories.ts @@ -0,0 +1,96 @@ +import type { Meta, StoryObj } from "@storybook/vue3"; +import { ref } from "vue"; +import Modal from "../src/ui/modal/modal.vue"; +import useTheme from "../src/ui/hooks/use-theme/use-theme"; + +const meta: Meta = { + title: "Modal", + component: Modal, + tags: ["autodocs"], + argTypes: { + isOpen: { control: "boolean" }, + initialOpen: { control: "boolean" }, + onOpen: { action: "opened" }, + onClose: { action: "closed" }, + closeOnClickaway: { control: "boolean" }, + preventScroll: { control: "boolean" }, + role: { control: "select", options: ["dialog", "alertdialog"] }, + className: { control: "text" }, + themeClassName: { control: "text" }, + contentClassName: { control: "text" }, + backdropClassName: { control: "text" }, + childrenClassName: { control: "text" }, + }, +}; + +export default meta; +type Story = StoryObj; + +const DefaultTemplate: Story = { + render: (args) => ({ + components: { Modal }, + setup() { + const isOpen = ref(false); + const { themeClass, toggleColorMode } = useTheme(); + return { args, isOpen, themeClass, toggleColorMode }; + }, + template: ` +
+ + + +

This is the modal content.

+ +
+
+ `, + }), +}; + +export const Default: Story = { + ...DefaultTemplate, + args: { + closeOnClickaway: true, + preventScroll: true, + role: "dialog", + }, +}; + +export const InitiallyOpen: Story = { + ...DefaultTemplate, + args: { + ...Default.args, + initialOpen: true, + }, +}; + +export const CustomStyles: Story = { + ...DefaultTemplate, + args: { + ...Default.args, + className: "custom-modal", + contentClassName: "custom-content", + backdropClassName: "custom-backdrop", + childrenClassName: "custom-children", + contentStyles: { + backgroundColor: "#f0f0f0", + padding: "20px", + borderRadius: "8px", + }, + }, +}; + +export const AlertDialog: Story = { + ...DefaultTemplate, + args: { + ...Default.args, + role: "alertdialog", + }, +}; diff --git a/packages/vue/tsconfig.json b/packages/vue/tsconfig.json index d9e2def3..bbfac11f 100644 --- a/packages/vue/tsconfig.json +++ b/packages/vue/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { // Enable latest features - "lib": ["ESNext", "DOM"], + "lib": ["ESNext", "DOM", "DOM.Iterable"], "target": "ESNext", "module": "ESNext", "moduleDetection": "force", @@ -21,11 +21,34 @@ "noUnusedLocals": true, "noUnusedParameters": true, "customConditions": ["source"], - "types": ["vite/client"], + "types": ["vite/client", "node"], + // Added from React tsconfig + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "isolatedModules": true, + + // Path aliases + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + }, + + // Vue specific "jsx": "preserve", "jsxImportSource": "vue" }, - "include": ["src"], + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "scaffolds/**/*.ts", + "scaffolds/**/*.d.ts", + "scaffolds/**/*.tsx", + "scaffolds/**/*.vue" + ], "exclude": ["node_modules", "dist"] } diff --git a/packages/vue/vite.config.mts b/packages/vue/vite.config.mts index 92dc0187..065eefb0 100644 --- a/packages/vue/vite.config.mts +++ b/packages/vue/vite.config.mts @@ -1,5 +1,6 @@ import { globbySync } from "globby"; import { copyFileSync } from "node:fs"; +import path from "node:path"; import { defineConfig } from "vite"; import dts from "vite-plugin-dts"; import vue from "@vitejs/plugin-vue"; @@ -7,6 +8,8 @@ import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; import ViteVueComplexTypes from "@vue.ts/complex-types/vite"; import pkg from "./package.json"; +const aliases = ["ui", "styles", "models", "helpers"]; + // https://vitejs.dev/config/ export default defineConfig({ plugins: [ @@ -63,5 +66,15 @@ export default defineConfig({ }, resolve: { conditions: ["source"], + alias: [ + ...aliases.map((alias) => ({ + find: `@/${alias}`, + replacement: path.resolve(__dirname, `src/${alias}`), + })), + { + find: "@ark-ui/vue", + replacement: "@ark-ui/vue/dist/index.mjs", + }, + ], }, }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df6b24ca..756451d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,7 +43,7 @@ importers: version: 3.4.31(typescript@5.5.3) zustand: specifier: ^4.5.4 - version: 4.5.4(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1) + version: 4.5.4(@types/react@18.3.6)(immer@10.1.1)(react@18.3.1) devDependencies: '@babel/core': specifier: ^7.24.7 @@ -119,7 +119,7 @@ importers: version: 20.14.9 '@types/react': specifier: latest - version: 18.3.5 + version: 18.3.6 '@typescript-eslint/eslint-plugin': specifier: ^7.15.0 version: 7.15.0(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@8.57.0)(typescript@5.5.3) @@ -245,7 +245,7 @@ importers: dependencies: '@interchain-ui/react': specifier: ^1.11.0 - version: 1.23.13(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.23.13(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next: specifier: ^14.1.2 version: 14.1.4(@babel/core@7.24.7)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -267,10 +267,10 @@ importers: devDependencies: '@types/node': specifier: latest - version: 22.5.4 + version: 22.5.5 '@types/react': specifier: latest - version: 18.3.5 + version: 18.3.6 '@types/react-dom': specifier: latest version: 18.3.0 @@ -447,7 +447,7 @@ importers: version: 1.8.27(typescript@5.4.2) zustand: specifier: ^4.5.2 - version: 4.5.2(@types/react@18.3.5)(immer@10.0.4)(react@18.3.1) + version: 4.5.2(@types/react@18.3.6)(immer@10.0.4)(react@18.3.1) packages/compiler: dependencies: @@ -640,7 +640,7 @@ importers: version: 3.32.2(react@18.3.1) zustand: specifier: ^4.5.5 - version: 4.5.5(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1) + version: 4.5.5(@types/react@18.3.6)(immer@10.1.1)(react@18.3.1) devDependencies: '@arethetypeswrong/cli': specifier: ^0.15.4 @@ -722,7 +722,7 @@ importers: version: 8.3.0(storybook@8.3.0) '@types/react': specifier: latest - version: 18.3.5 + version: 18.3.6 '@vanilla-extract/parcel-transformer': specifier: ^1.0.9 version: 1.0.9(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)(@types/node@22.5.5)(lightningcss@1.26.0)(stylus@0.57.0)(terser@5.31.6) @@ -841,6 +841,9 @@ importers: packages/vue: dependencies: + '@ark-ui/vue': + specifier: ^3.13.0 + version: 3.13.0(vue@3.4.31(typescript@5.5.4)) '@floating-ui/dom': specifier: ^1.6.10 version: 1.6.10 @@ -882,7 +885,7 @@ importers: version: 4.5.4(@vueuse/core@10.9.0(vue@3.4.31(typescript@5.5.4)))(@vueuse/integrations@10.9.0(axios@1.7.2)(change-case@4.1.2)(focus-trap@7.5.4)(vue@3.4.31(typescript@5.5.4)))(focus-trap@7.5.4)(vue@3.4.31(typescript@5.5.4)) zustand: specifier: ^4.5.5 - version: 4.5.5(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1) + version: 4.5.5(@types/react@18.3.6)(immer@10.1.1)(react@18.3.1) devDependencies: '@chromatic-com/storybook': specifier: ^2.0.2 @@ -1091,6 +1094,11 @@ packages: resolution: {integrity: sha512-FYp6GBAgsNz81BkfItRz8RLZO03w5+BaeiPma1uCfmxTnxbtuMrI/dbzGiOk8VghO108uFI0oJo0OkewdSHw7g==} engines: {node: '>=18'} + '@ark-ui/vue@3.13.0': + resolution: {integrity: sha512-Kcuqa4xTOILq9/Fv9psXAieQlX835scErqwcpXEIdn4s4VM4UBIL1fMqg+W2d87TkVybFrzyrrPYH/kGGOX/Tw==} + peerDependencies: + vue: '>=3.0.0' + '@babel/code-frame@7.24.7': resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} @@ -4881,9 +4889,6 @@ packages: '@types/node@20.16.5': resolution: {integrity: sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==} - '@types/node@22.5.4': - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} - '@types/node@22.5.5': resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} @@ -4929,8 +4934,8 @@ packages: '@types/react@18.3.3': resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - '@types/react@18.3.5': - resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} + '@types/react@18.3.6': + resolution: {integrity: sha512-CnGaRYNu2iZlkGXGrOYtdg5mLK8neySj0woZ4e2wF/eli2E6Sazmq5X+Nrj6OBrrFVQfJWTUFeqAzoRhWQXYvg==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -5678,6 +5683,217 @@ packages: resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} engines: {node: '>=14.15.0'} + '@zag-js/accordion@0.68.0': + resolution: {integrity: sha512-9hpNCyXYNy2mumM+bTb9R+dQw4thQoyNjB9VHH2CeIgHTRwlW62dZdfDQboPcvknkDEIKkiLTTPyS3Enp4BqUw==} + + '@zag-js/anatomy@0.68.0': + resolution: {integrity: sha512-8/DGqjNAlTgmRKqFrkcs2TDY71xEaLtdaTr+mFi25xW+3nTVpCNB/3bhORMs8MIIvXyOKZAnbIvPQOjJZDuKFQ==} + + '@zag-js/aria-hidden@0.68.0': + resolution: {integrity: sha512-ed8VB8l8wliMdmJO8t03NeZFILcH+HadeU1UeGyse6CAtdQiizrhBKPVVMCJ9bdTXyONJNpD71eWLhDcx1jRZA==} + + '@zag-js/auto-resize@0.68.0': + resolution: {integrity: sha512-HDo4UmKgAKtZX43JUaG0Nd/5fhU6NI894hqaR/uKJ3fN9nSmBPN6o3m3ic5jcg/ffjvyQfh330Lbm3Sn1njpEQ==} + + '@zag-js/avatar@0.68.0': + resolution: {integrity: sha512-T+Et4hFCqthVVgPsfAbApl0giMcg7+Pg7p9RNnSZi4LkBITX3bHPQpKdLkLILr/EAK6Sdhp5lCgOAJN66CmxPg==} + + '@zag-js/carousel@0.68.0': + resolution: {integrity: sha512-a2Nx/DDcW02H1jtwllA4xAqerAldkMBwwr4CuYdMHaupxxnJNyFxWyE/ShXOIXnefc6bnXkj6SaRxuOJu8Gx1g==} + + '@zag-js/checkbox@0.68.0': + resolution: {integrity: sha512-ZeMP0j66UHgbRAV1J6UhCpiZf00yUfxbXER2LflBafMnMmO6nY6LFn9Kvcn+Fd41vhuNWiNTeLazw+g/35bYVg==} + + '@zag-js/clipboard@0.68.0': + resolution: {integrity: sha512-szbBU+1zfu2TfKFVTAyrSVc6ppoSyEHmMa1qAcuok73r7w7ZFSv4+kWZzuG1Iqm8aWo5HDqhrUQWjmZLlsXRUQ==} + + '@zag-js/collapsible@0.68.0': + resolution: {integrity: sha512-CDanyfWjAQTfPJkkeTFjrZHTrqu6DcS1VJr2HckMjODJqxkBGFBtkIi2cJNz2hs7pPSktGBKB3Zfbi24X45ezw==} + + '@zag-js/collection@0.68.0': + resolution: {integrity: sha512-5yfXxiXzNa5acm7rhn1qSfOfe6hlTDzzMFvLiWQzheTowv6yusBdU0OZ/7633ym/tpyDURsQXWJrEzbW015Wgg==} + + '@zag-js/color-picker@0.68.0': + resolution: {integrity: sha512-ys6HBtzfNnWm5t2uNkjH13MiRPz8idOB/oYT022kJ91uHz9TTzbkeM4lx4cmuTPSXSjsU3u25Z5c9AZ5KLotDA==} + + '@zag-js/color-utils@0.68.0': + resolution: {integrity: sha512-xmWLBIGJEsQPcIbbP+fAxkr/FsFLasbfbUww5TWMAvYRzx3bjakU5zLBVfgC5egGlkeYYg90+I3FonCJIEnvqA==} + + '@zag-js/combobox@0.68.0': + resolution: {integrity: sha512-g4ErXk1L7xzQ2Web9p5kH2sNqywJxM1d4IWDbcX6FlpglW5EcSfRPQt9qCQ6Rv8g8/mff5hetcr8szcT5Ha+BA==} + + '@zag-js/core@0.68.0': + resolution: {integrity: sha512-80iiLDum3/3Dxv6/i3VGQ0/BbR7e4VTtXZoKhaTEx7PCG75M05HyAeFHYG3qhdWW1gDabDt4j3sMjoja7c+9xg==} + + '@zag-js/date-picker@0.68.0': + resolution: {integrity: sha512-lzelTebdr3wgLlCIFUmQMJ95hVzN2A318EiSQqem5EbSWqnBbBOEU14qGNU3LIzr1mSSCEE4lofkwhK/WNuWXA==} + + '@zag-js/date-utils@0.68.0': + resolution: {integrity: sha512-nEiG+BzQSSnMWaR5HYM1DldKgUpjnXL4z7bv6eR5xXvlqpHWD/nW73bvPDFTUnlZqLCsHpsh4dNiZYrFmZ5AkQ==} + peerDependencies: + '@internationalized/date': '>=3.0.0' + + '@zag-js/dialog@0.68.0': + resolution: {integrity: sha512-+UZQcZ/fCXGECWwsfor/zigLc0Y90aqq0gdo08rID/hpKVc8JTIMypnPahY0TrpfOlI1fi5wYfS4nK4CWBUGyw==} + + '@zag-js/dismissable@0.68.0': + resolution: {integrity: sha512-RAwTgSZA4EJcw0YlSwEOKEpf9WvwpIyC66dTIF+e36U572yoUk8/eL7IYrDkxN5GH4YWLqTX6CgWynmJdhLy7g==} + + '@zag-js/dom-event@0.68.0': + resolution: {integrity: sha512-06UGXJBzLDdnfaZM/APt4YJ5jOZ7VeFsMDYBhJZuaYNT4uTPLKbrdf5393HH/PmaIM7MGf+rCy2P79W3HaFj4g==} + + '@zag-js/dom-event@0.68.1': + resolution: {integrity: sha512-A/Oz7ywErOt1v/1EOq3QTQqVo3XHKpV3H4FDsKW6t/fEkE2nFyuDbo0tSeZdCnMmlRxEEzwkqdjDmudL/oAfDg==} + + '@zag-js/dom-query@0.68.0': + resolution: {integrity: sha512-kt+EYKgcmOF5Xsfc9Hx/6Y6e2ocVmUPzCdUdeO9hB1dPFoWLOvH3WS/KfAztPDeUWORM48YPZ31Q3QqyPuIjlQ==} + + '@zag-js/dom-query@0.68.1': + resolution: {integrity: sha512-Z/XvXQZw79w8FWF+zeeltD8cutZjmvOq5NnbCrFsh5aACZj74eoeJWBX/6bYDD/msk+sxANpgSdvlnguUAnSOw==} + + '@zag-js/editable@0.68.0': + resolution: {integrity: sha512-HlxP2gSGA8iHXu/mfm6BRrc8LCgCsZAf8OYgZWaUWQFi1T4gtGpkZE6u1U2/u8o+bKCtra2xCwg4x4UPaocQTw==} + + '@zag-js/element-rect@0.68.0': + resolution: {integrity: sha512-XHP3diCMfRlpmld81w0j32E2KPaJBEahgbQX/RDtSD5uFSh8rTJzBCLnYgGyHU2xQwBEsK9dyEr7VqmaBESXkA==} + + '@zag-js/element-size@0.68.0': + resolution: {integrity: sha512-5Vd0T4WPmjt6EgKNm+iVYcfBH64F9qfPKTYYOZnRjBXUSqHZMqYEJkgzPS/XWMI1XSIs2yEQmr0zMVyFC1hNcw==} + + '@zag-js/file-upload@0.68.0': + resolution: {integrity: sha512-8anzRj8bqUvJN6wiqHLTP8+uyxY/sYoh5s6TTF3AjtcksgIDtxITUvWBnKqaghymY+3ldQMkS0KCnALmjCnCIw==} + + '@zag-js/file-utils@0.68.0': + resolution: {integrity: sha512-H5Kc+vm5rfqCoOlWEvVL7mHVcYMud8faNP5ACacKxPQY8fUV09GMuHzwUuskb2ArvCpwx4aYQkJ5MjF+nkK97g==} + + '@zag-js/form-utils@0.68.0': + resolution: {integrity: sha512-zidEhGap+m4P9WNHIbSsJ8lDd4fT1+pFMhE12ierDSKvQN3dpjDJiqpxUO/Q45RDZfnXTXL9ddv18ZWwp7pUQg==} + + '@zag-js/highlight-word@0.68.0': + resolution: {integrity: sha512-piRd7mH4lonUh+Lz0vMTFnMDHfNO8xyslhI4Q8resRAlh8KG1CVmDXDi2IdMUcPLaM57qMcsPpzgu7YU7aqCVQ==} + + '@zag-js/hover-card@0.68.0': + resolution: {integrity: sha512-bMAnjMJ/d1/YKOiSjLSsgNt37fLB49Ke9H/Gy5gOIczZfhDekawrRVWLzg+LV55qzM9XRx8gs5k7nRcxeKdJTA==} + + '@zag-js/i18n-utils@0.68.0': + resolution: {integrity: sha512-wXQBiUJ+zJG20T4wgXQ5uFvMJ0z2JaykWPiM1sTNnhXYFGEWM/IfM5dmwMJVYZhB8xLSsE1P21+T9nKYl9pl8w==} + + '@zag-js/interact-outside@0.68.0': + resolution: {integrity: sha512-UAreOChnzUI2W2dL0tc4uNJgGhOt021NFWwpPJcahdZ65cllQsbgXm6JauEfo15mP9CwxIfCw1I1qNk+4aNRaQ==} + + '@zag-js/live-region@0.68.0': + resolution: {integrity: sha512-ED9munpHEiTqzisVHVIfQnyUWo0zXY/0Ly7bvtJjRlJrU3Z+h2Sd8uayjoM/uXv26pLfK+5JSaxCGy6ccCqByw==} + + '@zag-js/menu@0.68.0': + resolution: {integrity: sha512-mr5uhVH4Eq/jcTa0zd8JPaLUTZvxekDxCaIqYMFXCM/oiPbLfmjZjgOtbkbbo0dOIkQePuDeW5f7TecgZ7UGtg==} + + '@zag-js/number-input@0.68.0': + resolution: {integrity: sha512-6gE7tAUh/PJ4BPgVe+qLr8CFUiA5eXuWhrMr1W8R3h8adNyRsVer4cGdPWysV0/eFlnwnSKBNCRWhCPdYJRwsQ==} + + '@zag-js/number-utils@0.68.0': + resolution: {integrity: sha512-m+kGPRZ8eXAkVDB9KuDxCNIQ+1pQ46fn6nFnJaXET7Hf7FHtA/7BzVPNQJudvOhh9xiW0C8kkOGKlmuk24eCNg==} + + '@zag-js/numeric-range@0.68.0': + resolution: {integrity: sha512-2/70H0r4kfnut7JSWVse8qXEVY8ukv8LGyyqHHAjVFwl5+nTBOEKytH4u6eDScRFrwS6zwDZd5UJXqwPImEC/w==} + + '@zag-js/pagination@0.68.0': + resolution: {integrity: sha512-je0UguDcgRBSiG6GfSAky00485nZw4KyX+7FJx8iT/e3sUleX/3qKrlkQfHjIrm/toedB127xrL/pCKf5FzODg==} + + '@zag-js/pin-input@0.68.0': + resolution: {integrity: sha512-hyqZN+e8+0AlRPExAS2rIlup6LCRSqQ5/SXUL8J9EQUXpG+MfxcwDX8qE8pqG0DfRj44oYsO7yLwGk+N6ZCU2Q==} + + '@zag-js/popover@0.68.0': + resolution: {integrity: sha512-FR6KEV1L+AQfGpCrhXIDoxr/hgeWKX+AlSd+0Ht/i8XMVGxsvlaZFfCXXgiKw8etHbdFeuYgKoP+muP9xt13xg==} + + '@zag-js/popper@0.68.0': + resolution: {integrity: sha512-Lt0xtTegKntoQiDdeMVmW2n+SY/tk7mflUFY6ywUORLyVCQCNGZSaubOEEbBcXtSXGt53cRmmbj0oYcjbH0qww==} + + '@zag-js/presence@0.68.0': + resolution: {integrity: sha512-FADH+IZrGo9sbib8T6qrctWCZHUq99kfT9ohQMslb9CCOQATsTVhPaMQGc/HEsBCtdlXY7alrprnwYSngDQulw==} + + '@zag-js/progress@0.68.0': + resolution: {integrity: sha512-WHtsJWqKfONvzjz/MrARE3swRemMA3XGsKLsSaXiukVd3yzzUYBri7UQdnczHZ7T4C55Glh+O1YVdyL7A4c2KA==} + + '@zag-js/qr-code@0.68.0': + resolution: {integrity: sha512-ajooo4N9L+LPIxo4Ay2vDofQbJdHbuuPlFSNklfoNE3IhFm1ipMXb836Mg12W6pLhZPETWkdWXto+2N0seD3kQ==} + + '@zag-js/radio-group@0.68.0': + resolution: {integrity: sha512-bYRyndGVA2U8LMdCsrd8hLpP3hh2kgfTtxHUfKS+vInZvC/t9d9bPfuK97NOPQXDw480TXxzOBKApmea+qXljQ==} + + '@zag-js/rating-group@0.68.0': + resolution: {integrity: sha512-zHFNqoanpVFAPSvRaOFgXN6KYtRD9x0A50Y7gejKj6hTATqqIUZN94oQL/VZ3Yo8kVFyuzNE+EJgCw5+DoblHg==} + + '@zag-js/rect-utils@0.68.0': + resolution: {integrity: sha512-4cDm2oyG0iT8LapeMFt1E71BGHOLIFNY5ocNcs0iOiTghRZ1nzgY2tNy5MBHWCHTiqy0DacTfDG/2TPgmdW0xA==} + + '@zag-js/remove-scroll@0.68.0': + resolution: {integrity: sha512-ghnaV7Q+Z6StKO33vYu3lz67HPnGNXRMXME4bh5x4Db+lmpZFSQUACqP5upZinUd6WCBFCd+RHu30qTc2PJK+Q==} + + '@zag-js/select@0.68.0': + resolution: {integrity: sha512-84jhHO+MVhdW/GTINb9X2Vy/gnonO6b+3inM5R/iqhTXjlTs6AriDpWaWZAkZw7DXawDKgl20ywidrehUCER/Q==} + + '@zag-js/signature-pad@0.68.0': + resolution: {integrity: sha512-ScoxXNLliU4YRLXtDDNTVqe1xWnmVUeexvQkxWxlzOBDowb8VtG2/Fvny2ezab/KgNSTpGk7RTVm4gNWIvWR4Q==} + + '@zag-js/slider@0.68.0': + resolution: {integrity: sha512-gG6TwEZMY18sjDEZvAPFqj7PZrzu4gOcR9t41nfmo8f8jZLO+6g6z8xfRtooBO88gXN46v4oAbjB7WKk10p+Eg==} + + '@zag-js/splitter@0.68.0': + resolution: {integrity: sha512-xVgoSU+vy4a7EjmH+aEzPaId8MVKgJfB58BCyufnhh5rKrh98j1gisQbIuB39+uF4ZihMSZGM0tVCdg4XZ2NYA==} + + '@zag-js/steps@0.68.0': + resolution: {integrity: sha512-SzhJpdo3Gni4RX8sfxp8LM/jcR0DV36p2je3JvlQh0xVhQTrwpXGitSbO9IWEB2gmpJtdum6lKe/VW35i9LUPQ==} + + '@zag-js/store@0.68.0': + resolution: {integrity: sha512-AGaeGALFvvl276I4b6Dg7StmpHh5/fY3NbdnVeWyK68Nwtwwqq0kb+kxYCkA6/r4jWhZY5NfqSDZqJXQiu8W4A==} + + '@zag-js/switch@0.68.0': + resolution: {integrity: sha512-Hlikf23L0owd6rkRBqnGmMojp/E4d3GyBqCM3cTEytDmk2tTl85vyonwU4QQgHOzkosx/5GaJdL+3f2cvXJNJQ==} + + '@zag-js/tabs@0.68.0': + resolution: {integrity: sha512-2/IWzCAp5lmhCZG25O9ASAnnBZe+InZ7MCaOxwp42i/ePudOeVqNh8hk+EK+XWwFlunwYI54xYU+D25mqTmApA==} + + '@zag-js/tags-input@0.68.0': + resolution: {integrity: sha512-yaul6zETPlLTySWEkA7ZZavH76vPtTnqjI4kQExs/lg7La5ekxiQaOcofGKtyJMJ4VhRYHPVTTHQjb9kDQN5hw==} + + '@zag-js/text-selection@0.68.0': + resolution: {integrity: sha512-0Oc+HcHojnGsxqZ3DmwQd+sc0mJytDd/7vckm0aQ7zAe8zYpgDpvk/4Jf4A7WHulrer2xnPgdDzJVRY7IurXLQ==} + + '@zag-js/text-selection@0.68.1': + resolution: {integrity: sha512-L+xjgzpKPoaA8bhCP3o8N+gU57FcTr5tblP8Mx7v8jbs6ih2NWveQcHbVMV4BWacEVAOGHFGvLvPymb00fwumw==} + + '@zag-js/time-picker@0.68.0': + resolution: {integrity: sha512-sm+/QJ94dEaNhC8VMKZJkZIgEMG3UDq2bb3FQPZwuh/lVmu/DaTLRIoosdWaIosTsgrn/kFYcl2fw9rvNQ2WyQ==} + + '@zag-js/timer@0.68.0': + resolution: {integrity: sha512-tS2Ai5rSSl/A4Qjacx+/umlguQNoksrhj15Uu7fuLDSIzP9SMK9/l27Gll8Uc/twSr0q7U8/j3z9lggC68sExw==} + + '@zag-js/toast@0.68.0': + resolution: {integrity: sha512-2KBgbPcOreDmyNVzkIWiOi/6bgqXSBBHa+w6KiZ1BTbAMD0OMZNM/Vu/dP4h1nQMzT0bf0JT0i82qWfNrkSCgg==} + + '@zag-js/toggle-group@0.68.0': + resolution: {integrity: sha512-vaT/TW8Ns2PRGlGZREj3aqSNupz8XZpMt+Bxe0aakpIF7+dprH8G9XxGvxzhvPv6Zt7pu5AHQ/mjYiy/I0nA9Q==} + + '@zag-js/tooltip@0.68.0': + resolution: {integrity: sha512-SUSsakaJqTwXz5Pv+gbbiEjQeFMiJPm7hNUKxytaLUb6pl8e8iDN6VXxNXtL3RFknz5ncXnknJn6QEMQoCvpdQ==} + + '@zag-js/tree-view@0.68.0': + resolution: {integrity: sha512-k3MJhk+kAL/LTTdan0W2D9wEkQYRiQMZEqpmOLDySyT94YyO6fYPKX/BDJ+Q6n1YMnruM1O+UGNuSsep7EVMxw==} + + '@zag-js/types@0.68.0': + resolution: {integrity: sha512-TFsF9oQR/04NMvFaQR4EiDsaRHU9abajN2F59PxAmUCVNKJgEvv5645QOLBjB6aK2j47VHZODMF8vaWh8AVfUQ==} + + '@zag-js/types@0.68.1': + resolution: {integrity: sha512-VHfQ8TiiDsZdvwypGK2j8vXWILgpEfUMXr4PTPUW2qxB95s1Pb/xKvmoujm34RUjILWRQw0EElXYNFYB9J3XFQ==} + + '@zag-js/utils@0.68.0': + resolution: {integrity: sha512-i/OqFZVEqA6g1K0Mq7JwHmMglmm/vOAgceu5rfKO6z/+KzD0Re+oxDPEWCNQnZuBpJrDHgFgnuCQDMyrf/LHAQ==} + + '@zag-js/vue@0.68.0': + resolution: {integrity: sha512-+XynCZ0nLrIofavXv29GlOLFnTkvnuFFXsnJiwG3wBc9nwnQ9bL5XUYNoH79m2z5p39JUHgUOFP6z8aXBdW/MA==} + peerDependencies: + vue: '>=3.0.0' + '@zkochan/js-yaml@0.0.7': resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true @@ -5841,6 +6057,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -10595,6 +10815,9 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-freehand@1.2.2: + resolution: {integrity: sha512-eh31l019WICQ03pkF3FSzHxB8n07ItqIQ++G5UV8JX0zVOXzgTGCqnRR0jJ2h9U8/2uW4W4mtGJELt9kEV0CFQ==} + periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -10883,9 +11106,15 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + proxy-compare@3.0.0: + resolution: {integrity: sha512-y44MCkgtZUCT9tZGuE278fB7PWVf7fRYy0vbRXAts2o5F0EfC4fIQrvQQGBJo1WJbFcVLXzApOscyJuZqHQc1w==} + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-memoize@3.0.1: + resolution: {integrity: sha512-VDdG/VYtOgdGkWJx7y0o7p+zArSf2383Isci8C+BP3YXgMYDoPd3cCBjw0JdWb6YBb9sFiOPbAADDVTPJnh+9g==} + pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} @@ -12499,6 +12728,9 @@ packages: upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -13195,6 +13427,56 @@ snapshots: typescript: 5.3.3 validate-npm-package-name: 5.0.1 + '@ark-ui/vue@3.13.0(vue@3.4.31(typescript@5.5.4))': + dependencies: + '@internationalized/date': 3.5.5 + '@zag-js/accordion': 0.68.0 + '@zag-js/anatomy': 0.68.0 + '@zag-js/avatar': 0.68.0 + '@zag-js/carousel': 0.68.0 + '@zag-js/checkbox': 0.68.0 + '@zag-js/clipboard': 0.68.0 + '@zag-js/collapsible': 0.68.0 + '@zag-js/color-picker': 0.68.0 + '@zag-js/combobox': 0.68.0 + '@zag-js/date-picker': 0.68.0 + '@zag-js/dialog': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/editable': 0.68.0 + '@zag-js/file-upload': 0.68.0 + '@zag-js/file-utils': 0.68.0 + '@zag-js/highlight-word': 0.68.0 + '@zag-js/hover-card': 0.68.0 + '@zag-js/i18n-utils': 0.68.0 + '@zag-js/menu': 0.68.0 + '@zag-js/number-input': 0.68.0 + '@zag-js/pagination': 0.68.0 + '@zag-js/pin-input': 0.68.0 + '@zag-js/popover': 0.68.0 + '@zag-js/presence': 0.68.0 + '@zag-js/progress': 0.68.0 + '@zag-js/qr-code': 0.68.0 + '@zag-js/radio-group': 0.68.0 + '@zag-js/rating-group': 0.68.0 + '@zag-js/select': 0.68.0 + '@zag-js/signature-pad': 0.68.0 + '@zag-js/slider': 0.68.0 + '@zag-js/splitter': 0.68.0 + '@zag-js/steps': 0.68.0 + '@zag-js/switch': 0.68.0 + '@zag-js/tabs': 0.68.0 + '@zag-js/tags-input': 0.68.0 + '@zag-js/time-picker': 0.68.0 + '@zag-js/timer': 0.68.0 + '@zag-js/toast': 0.68.0 + '@zag-js/toggle-group': 0.68.0 + '@zag-js/tooltip': 0.68.0 + '@zag-js/tree-view': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + '@zag-js/vue': 0.68.0(vue@3.4.31(typescript@5.5.4)) + vue: 3.4.31(typescript@5.5.4) + '@babel/code-frame@7.24.7': dependencies: '@babel/highlight': 7.24.7 @@ -14926,7 +15208,7 @@ snapshots: '@iconify/types': 2.0.0 vue: 3.4.21(typescript@5.4.2) - '@interchain-ui/react@1.23.13(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@interchain-ui/react@1.23.13(@types/react@18.3.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/core': 1.6.7 '@floating-ui/dom': 1.6.10 @@ -14951,7 +15233,7 @@ snapshots: react-aria: 3.34.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-dom: 18.3.1(react@18.3.1) react-stately: 3.32.2(react@18.3.1) - zustand: 4.5.5(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1) + zustand: 4.5.5(@types/react@18.3.6)(immer@10.1.1)(react@18.3.1) transitivePeerDependencies: - '@types/react' - babel-plugin-macros @@ -15314,13 +15596,13 @@ snapshots: '@mdx-js/react@2.3.0(react@18.3.1)': dependencies: '@types/mdx': 2.0.11 - '@types/react': 18.3.5 + '@types/react': 18.3.6 react: 18.3.1 - '@mdx-js/react@3.0.1(@types/react@18.3.5)(react@18.3.1)': + '@mdx-js/react@3.0.1(@types/react@18.3.6)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.5 + '@types/react': 18.3.6 react: 18.3.1 '@microsoft/api-extractor-model@7.28.13(@types/node@20.16.2)': @@ -15793,34 +16075,28 @@ snapshots: - '@parcel/core' - '@swc/helpers' - '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12)': + '@parcel/cache@2.12.0': dependencies: - '@parcel/core': 2.12.0(@swc/helpers@0.5.12) - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + '@parcel/fs': 2.12.0(@swc/helpers@0.5.11) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 - transitivePeerDependencies: - - '@swc/helpers' - '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': + '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))': dependencies: - '@parcel/core': 2.12.0(@swc/helpers@0.5.3) - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/core': 2.12.0(@swc/helpers@0.5.12) + '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 - transitivePeerDependencies: - - '@swc/helpers' - '@parcel/cache@2.12.0(@swc/helpers@0.5.11)': + '@parcel/cache@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))': dependencies: - '@parcel/fs': 2.12.0(@swc/helpers@0.5.11) + '@parcel/core': 2.12.0(@swc/helpers@0.5.3) + '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/logger': 2.12.0 '@parcel/utils': 2.12.0 lmdb: 2.8.5 - transitivePeerDependencies: - - '@swc/helpers' '@parcel/codeframe@2.12.0': dependencies: @@ -15978,7 +16254,7 @@ snapshots: '@parcel/core@2.12.0(@swc/helpers@0.5.12)': dependencies: '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) '@parcel/diagnostic': 2.12.0 '@parcel/events': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) @@ -16008,7 +16284,7 @@ snapshots: '@parcel/core@2.12.0(@swc/helpers@0.5.3)': dependencies: '@mischnic/json-sourcemap': 0.1.1 - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) '@parcel/diagnostic': 2.12.0 '@parcel/events': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) @@ -16021,7 +16297,7 @@ snapshots: '@parcel/source-map': 2.1.1 '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) abortcontroller-polyfill: 1.7.5 base-x: 3.0.10 browserslist: 4.23.3 @@ -16060,7 +16336,7 @@ snapshots: '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/utils': 2.12.0 '@parcel/watcher': 2.4.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) transitivePeerDependencies: - '@swc/helpers' @@ -16070,7 +16346,7 @@ snapshots: '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 '@parcel/watcher': 2.4.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@swc/helpers@0.5.11) transitivePeerDependencies: - '@swc/helpers' @@ -16242,7 +16518,7 @@ snapshots: '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/rust': 2.12.0 '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) transitivePeerDependencies: - '@swc/helpers' @@ -16309,7 +16585,7 @@ snapshots: '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/logger': 2.12.0 '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) - '@parcel/types': 2.12.0(@swc/helpers@0.5.11) + '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/utils': 2.12.0 '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@swc/core': 1.7.18(@swc/helpers@0.5.12) @@ -16317,21 +16593,6 @@ snapshots: transitivePeerDependencies: - '@swc/helpers' - '@parcel/package-manager@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12)': - dependencies: - '@parcel/core': 2.12.0(@swc/helpers@0.5.3) - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) - '@parcel/logger': 2.12.0 - '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) - '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) - '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) - '@swc/core': 1.7.18(@swc/helpers@0.5.12) - semver: 7.6.3 - transitivePeerDependencies: - - '@swc/helpers' - '@parcel/package-manager@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: '@parcel/core': 2.12.0(@swc/helpers@0.5.3) @@ -16339,9 +16600,9 @@ snapshots: '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/logger': 2.12.0 '@parcel/node-resolver-core': 3.3.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) - '@parcel/types': 2.12.0(@swc/helpers@0.5.11) + '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@swc/core': 1.7.18(@swc/helpers@0.5.3) semver: 7.6.3 transitivePeerDependencies: @@ -16355,7 +16616,7 @@ snapshots: '@parcel/node-resolver-core': 3.3.0 '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@swc/helpers@0.5.11) '@swc/core': 1.7.18(@swc/helpers@0.5.11) semver: 7.6.3 transitivePeerDependencies: @@ -16497,13 +16758,6 @@ snapshots: - '@parcel/core' - '@swc/helpers' - '@parcel/plugin@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12)': - dependencies: - '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - '@parcel/plugin@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) @@ -16786,7 +17040,7 @@ snapshots: '@parcel/core': 2.12.0(@swc/helpers@0.5.3) '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) nullthrows: 1.1.1 transitivePeerDependencies: - '@swc/helpers' @@ -16810,11 +17064,11 @@ snapshots: dependencies: '@parcel/core': 2.12.0(@swc/helpers@0.5.3) '@parcel/diagnostic': 2.12.0 - '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) + '@parcel/plugin': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/rust': 2.12.0 '@parcel/source-map': 2.1.1 '@parcel/utils': 2.12.0 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@swc/helpers': 0.5.12 browserslist: 4.23.3 nullthrows: 1.1.1 @@ -17091,7 +17345,7 @@ snapshots: '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12)': dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12)) '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.12))(@swc/helpers@0.5.12) @@ -17102,27 +17356,14 @@ snapshots: - '@parcel/core' - '@swc/helpers' - '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12)': - dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) - '@parcel/diagnostic': 2.12.0 - '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) - '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.12) - '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) - utility-types: 3.11.0 - transitivePeerDependencies: - - '@parcel/core' - - '@swc/helpers' - '@parcel/types@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: - '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/cache': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/package-manager': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/core' @@ -17130,12 +17371,12 @@ snapshots: '@parcel/types@2.12.0(@swc/helpers@0.5.11)': dependencies: - '@parcel/cache': 2.12.0(@swc/helpers@0.5.11) + '@parcel/cache': 2.12.0 '@parcel/diagnostic': 2.12.0 '@parcel/fs': 2.12.0(@swc/helpers@0.5.11) '@parcel/package-manager': 2.12.0(@swc/helpers@0.5.11) '@parcel/source-map': 2.1.1 - '@parcel/workers': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3)) + '@parcel/workers': 2.12.0(@swc/helpers@0.5.11) utility-types: 3.11.0 transitivePeerDependencies: - '@parcel/core' @@ -17220,15 +17461,28 @@ snapshots: transitivePeerDependencies: - '@swc/helpers' - '@parcel/workers@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))': + '@parcel/workers@2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3)': dependencies: '@parcel/core': 2.12.0(@swc/helpers@0.5.3) + '@parcel/diagnostic': 2.12.0 + '@parcel/logger': 2.12.0 + '@parcel/profiler': 2.12.0 + '@parcel/types': 2.12.0(@parcel/core@2.12.0(@swc/helpers@0.5.3))(@swc/helpers@0.5.3) + '@parcel/utils': 2.12.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@swc/helpers' + + '@parcel/workers@2.12.0(@swc/helpers@0.5.11)': + dependencies: '@parcel/diagnostic': 2.12.0 '@parcel/logger': 2.12.0 '@parcel/profiler': 2.12.0 '@parcel/types': 2.12.0(@swc/helpers@0.5.11) '@parcel/utils': 2.12.0 nullthrows: 1.1.1 + transitivePeerDependencies: + - '@swc/helpers' '@pkgjs/parseargs@0.11.0': optional: true @@ -18511,12 +18765,12 @@ snapshots: '@storybook/addon-docs@8.3.0(storybook@8.3.0)': dependencies: - '@mdx-js/react': 3.0.1(@types/react@18.3.5)(react@18.3.1) + '@mdx-js/react': 3.0.1(@types/react@18.3.6)(react@18.3.1) '@storybook/blocks': 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) '@storybook/csf-plugin': 8.3.0(storybook@8.3.0) '@storybook/global': 5.0.0 '@storybook/react-dom-shim': 8.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.0) - '@types/react': 18.3.5 + '@types/react': 18.3.6 fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -19244,10 +19498,6 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.5.4': - dependencies: - undici-types: 6.19.8 - '@types/node@22.5.5': dependencies: undici-types: 6.19.8 @@ -19272,15 +19522,15 @@ snapshots: '@types/react-dom@18.2.22': dependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 '@types/react-dom@18.2.25': dependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 '@types/react@18.2.69': dependencies: @@ -19298,7 +19548,7 @@ snapshots: '@types/prop-types': 15.7.11 csstype: 3.1.3 - '@types/react@18.3.5': + '@types/react@18.3.6': dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 @@ -20687,6 +20937,504 @@ snapshots: js-yaml: 3.14.1 tslib: 2.7.0 + '@zag-js/accordion@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/anatomy@0.68.0': {} + + '@zag-js/aria-hidden@0.68.0': + dependencies: + aria-hidden: 1.2.4 + + '@zag-js/auto-resize@0.68.0': + dependencies: + '@zag-js/dom-query': 0.68.0 + + '@zag-js/avatar@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/carousel@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/checkbox@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/clipboard@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/collapsible@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/collection@0.68.0': + dependencies: + '@zag-js/utils': 0.68.0 + + '@zag-js/color-picker@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/color-utils': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/text-selection': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/color-utils@0.68.0': + dependencies: + '@zag-js/numeric-range': 0.68.0 + + '@zag-js/combobox@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/aria-hidden': 0.68.0 + '@zag-js/collection': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/core@0.68.0': + dependencies: + '@zag-js/store': 0.68.0 + klona: 2.0.6 + + '@zag-js/date-picker@0.68.0': + dependencies: + '@internationalized/date': 3.5.5 + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/date-utils': 0.68.0(@internationalized/date@3.5.5) + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/live-region': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/text-selection': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/date-utils@0.68.0(@internationalized/date@3.5.5)': + dependencies: + '@internationalized/date': 3.5.5 + + '@zag-js/dialog@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/aria-hidden': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/remove-scroll': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + focus-trap: 7.5.4 + + '@zag-js/dismissable@0.68.0': + dependencies: + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/interact-outside': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/dom-event@0.68.0': + dependencies: + '@zag-js/dom-query': 0.68.0 + '@zag-js/text-selection': 0.68.0 + '@zag-js/types': 0.68.0 + + '@zag-js/dom-event@0.68.1': + dependencies: + '@zag-js/dom-query': 0.68.1 + '@zag-js/text-selection': 0.68.1 + '@zag-js/types': 0.68.1 + + '@zag-js/dom-query@0.68.0': {} + + '@zag-js/dom-query@0.68.1': {} + + '@zag-js/editable@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/interact-outside': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/element-rect@0.68.0': {} + + '@zag-js/element-size@0.68.0': {} + + '@zag-js/file-upload@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/file-utils': 0.68.0 + '@zag-js/i18n-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/file-utils@0.68.0': + dependencies: + '@zag-js/i18n-utils': 0.68.0 + + '@zag-js/form-utils@0.68.0': {} + + '@zag-js/highlight-word@0.68.0': {} + + '@zag-js/hover-card@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/i18n-utils@0.68.0': + dependencies: + '@zag-js/dom-query': 0.68.0 + + '@zag-js/interact-outside@0.68.0': + dependencies: + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/live-region@0.68.0': {} + + '@zag-js/menu@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/rect-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/number-input@0.68.0': + dependencies: + '@internationalized/number': 3.5.3 + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/number-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/number-utils@0.68.0': {} + + '@zag-js/numeric-range@0.68.0': {} + + '@zag-js/pagination@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/pin-input@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/popover@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/aria-hidden': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/remove-scroll': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + focus-trap: 7.5.4 + + '@zag-js/popper@0.68.0': + dependencies: + '@floating-ui/dom': 1.6.10 + '@zag-js/dom-query': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/presence@0.68.0': + dependencies: + '@zag-js/core': 0.68.0 + '@zag-js/types': 0.68.0 + + '@zag-js/progress@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/qr-code@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + proxy-memoize: 3.0.1 + uqr: 0.1.2 + + '@zag-js/radio-group@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/element-rect': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/rating-group@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/rect-utils@0.68.0': {} + + '@zag-js/remove-scroll@0.68.0': + dependencies: + '@zag-js/dom-query': 0.68.0 + + '@zag-js/select@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/collection': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/signature-pad@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + perfect-freehand: 1.2.2 + + '@zag-js/slider@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/element-size': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/numeric-range': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/splitter@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/number-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/steps@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/store@0.68.0': + dependencies: + proxy-compare: 3.0.0 + + '@zag-js/switch@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/tabs@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/element-rect': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/tags-input@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/auto-resize': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/form-utils': 0.68.0 + '@zag-js/interact-outside': 0.68.0 + '@zag-js/live-region': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/text-selection@0.68.0': + dependencies: + '@zag-js/dom-query': 0.68.0 + + '@zag-js/text-selection@0.68.1': + dependencies: + '@zag-js/dom-query': 0.68.1 + + '@zag-js/time-picker@0.68.0': + dependencies: + '@internationalized/date': 3.5.5 + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.1 + '@zag-js/dom-query': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/timer@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/toast@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dismissable': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/toggle-group@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/tooltip@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/popper': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/tree-view@0.68.0': + dependencies: + '@zag-js/anatomy': 0.68.0 + '@zag-js/core': 0.68.0 + '@zag-js/dom-event': 0.68.0 + '@zag-js/dom-query': 0.68.0 + '@zag-js/types': 0.68.0 + '@zag-js/utils': 0.68.0 + + '@zag-js/types@0.68.0': + dependencies: + csstype: 3.1.3 + + '@zag-js/types@0.68.1': + dependencies: + csstype: 3.1.3 + + '@zag-js/utils@0.68.0': {} + + '@zag-js/vue@0.68.0(vue@3.4.31(typescript@5.5.4))': + dependencies: + '@zag-js/core': 0.68.0 + '@zag-js/store': 0.68.0 + '@zag-js/types': 0.68.0 + vue: 3.4.31(typescript@5.5.4) + '@zkochan/js-yaml@0.0.7': dependencies: argparse: 2.0.1 @@ -20840,6 +21588,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.4: + dependencies: + tslib: 2.7.0 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -22724,7 +23476,7 @@ snapshots: '@typescript-eslint/parser': 6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2) eslint: 9.10.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.10.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1)(eslint@9.10.0(jiti@1.21.6)) eslint-plugin-jsx-a11y: 6.8.0(eslint@9.10.0(jiti@1.21.6)) eslint-plugin-react: 7.34.3(eslint@9.10.0(jiti@1.21.6)) @@ -22782,12 +23534,12 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.10.0(jiti@1.21.6)): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)): dependencies: debug: 4.3.7 enhanced-resolve: 5.16.0 eslint: 9.10.0(jiti@1.21.6) - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)) eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-typescript@3.6.1)(eslint@9.10.0(jiti@1.21.6)) fast-glob: 3.3.2 get-tsconfig: 4.7.3 @@ -22827,14 +23579,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)): + eslint-module-utils@2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2) eslint: 9.10.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.10.0(jiti@1.21.6)) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)) transitivePeerDependencies: - supports-color @@ -22886,7 +23638,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.10.0(jiti@1.21.6) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@9.10.0(jiti@1.21.6))(typescript@5.4.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.15.0(eslint@8.57.0)(typescript@5.5.3))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)))(eslint@9.10.0(jiti@1.21.6)) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -27400,6 +28152,8 @@ snapshots: perfect-debounce@1.0.0: {} + perfect-freehand@1.2.2: {} + periscopic@3.1.0: dependencies: '@types/estree': 1.0.5 @@ -27648,8 +28402,14 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-compare@3.0.0: {} + proxy-from-env@1.1.0: {} + proxy-memoize@3.0.1: + dependencies: + proxy-compare: 3.0.0 + pseudomap@1.0.2: {} psl@1.9.0: {} @@ -29621,6 +30381,8 @@ snapshots: tslib: 2.7.0 optional: true + uqr@0.1.2: {} + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -30537,27 +31299,27 @@ snapshots: zod@3.22.4: {} - zustand@4.5.2(@types/react@18.3.5)(immer@10.0.4)(react@18.3.1): + zustand@4.5.2(@types/react@18.3.6)(immer@10.0.4)(react@18.3.1): dependencies: use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 immer: 10.0.4 react: 18.3.1 - zustand@4.5.4(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1): + zustand@4.5.4(@types/react@18.3.6)(immer@10.1.1)(react@18.3.1): dependencies: use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 immer: 10.1.1 react: 18.3.1 - zustand@4.5.5(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1): + zustand@4.5.5(@types/react@18.3.6)(immer@10.1.1)(react@18.3.1): dependencies: use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: - '@types/react': 18.3.5 + '@types/react': 18.3.6 immer: 10.1.1 react: 18.3.1 From b3b7546a666a102c14e28d1982b6d3bff7da2be2 Mon Sep 17 00:00:00 2001 From: yyyyaaa Date: Tue, 17 Sep 2024 18:00:56 +0700 Subject: [PATCH 05/14] fix double emit events --- .../vue-codemod/__tests__/vue-codemod.test.ts | 44 ++++- .../src/plugins/vue-mitosis.plugin.ts | 119 +++++++++---- packages/vue/package.json | 1 + packages/vue/scaffolds/modal/modal.css.ts | 156 ++++++++++++++---- packages/vue/scaffolds/modal/modal.vue | 126 ++++++++------ packages/vue/stories/AnimateLayout.stories.ts | 2 +- packages/vue/stories/Avatar.stories.ts | 2 +- packages/vue/stories/AvatarBadge.stories.ts | 2 +- packages/vue/stories/Box.stories.ts | 9 +- packages/vue/stories/Breadcrumb.stories.ts | 2 +- packages/vue/stories/Button.stories.ts | 4 +- packages/vue/stories/Callout.stories.ts | 2 +- packages/vue/stories/Center.stories.ts | 2 +- .../vue/stories/ClipboardCopyText.stories.ts | 2 +- packages/vue/stories/ConnectModal.stories.ts | 2 +- .../vue/stories/ConnectModalHead.stories.ts | 2 +- .../ConnectModalInstallButton.stories.ts | 2 +- .../vue/stories/ConnectModalQRCode.stories.ts | 2 +- .../ConnectModalQRCodeError.stories.ts | 2 +- .../ConnectModalQRCodeSkeleton.stories.ts | 2 +- .../vue/stories/ConnectModalStatus.stories.ts | 2 +- .../ConnectModalWalletButton.stories.ts | 2 +- .../stories/ConnectModalWalletList.stories.ts | 2 +- packages/vue/stories/Container.stories.ts | 2 +- packages/vue/stories/Divider.stories.ts | 2 +- packages/vue/stories/FadeIn.stories.ts | 2 +- packages/vue/stories/FieldLabel.stories.ts | 2 +- packages/vue/stories/Icon.stories.ts | 2 +- packages/vue/stories/IconButton.stories.ts | 2 +- packages/vue/stories/Link.stories.ts | 2 +- packages/vue/stories/Modal.stories.ts | 12 +- packages/vue/stories/QRCode.stories.ts | 2 +- packages/vue/stories/Reveal.stories.ts | 2 +- packages/vue/stories/Skeleton.stories.ts | 2 +- packages/vue/stories/Spinner.stories.ts | 2 +- packages/vue/stories/Stack.stories.ts | 2 +- packages/vue/stories/Text.stories.ts | 2 +- packages/vue/stories/ThemeProvider.stories.ts | 2 +- packages/vue/stories/Toast.stories.ts | 12 +- packages/vue/stories/Tooltip.stories.ts | 5 +- packages/vue/tsconfig.json | 38 ++--- packages/vue/vite.config.mts | 4 - pnpm-lock.yaml | 102 ++++++++++-- 43 files changed, 491 insertions(+), 201 deletions(-) diff --git a/packages/vue-codemod/__tests__/vue-codemod.test.ts b/packages/vue-codemod/__tests__/vue-codemod.test.ts index fbbeb507..bc040b35 100644 --- a/packages/vue-codemod/__tests__/vue-codemod.test.ts +++ b/packages/vue-codemod/__tests__/vue-codemod.test.ts @@ -456,8 +456,8 @@ const eventHandlers = computed(() => { "onTouchCancel", ]; eventProps.forEach((eventName) => { - if (props.eventName) { - handlers[eventName] = (event) => props.eventName(event); + if (props[eventName]) { + handlers[eventName] = (event) => props[eventName](event); } }); return handlers; @@ -559,7 +559,39 @@ const emit = defineEmits([ 'touchcancel', ]); - +const eventMappings = { + 'onClick': 'click', + 'onDoubleClick': 'dblclick', + 'onMouseDown': 'mousedown', + 'onMouseUp': 'mouseup', + 'onMouseEnter': 'mouseenter', + 'onMouseLeave': 'mouseleave', + 'onMouseMove': 'mousemove', + 'onMouseOver': 'mouseover', + 'onMouseOut': 'mouseout', + 'onKeyDown': 'keydown', + 'onKeyUp': 'keyup', + 'onKeyPress': 'keypress', + 'onFocus': 'focus', + 'onBlur': 'blur', + 'onInput': 'input', + 'onChange': 'change', + 'onSubmit': 'submit', + 'onReset': 'reset', + 'onScroll': 'scroll', + 'onWheel': 'wheel', + 'onDragStart': 'dragstart', + 'onDrag': 'drag', + 'onDragEnd': 'dragend', + 'onDragEnter': 'dragenter', + 'onDragLeave': 'dragleave', + 'onDragOver': 'dragover', + 'onDrop': 'drop', + 'onTouchStart': 'touchstart', + 'onTouchMove': 'touchmove', + 'onTouchEnd': 'touchend', + 'onTouchCancel': 'touchcancel', +}; import { computed, onMounted, onUnmounted, ref } from 'vue'; import { assignInlineVars } from '@vanilla-extract/dynamic'; @@ -682,7 +714,9 @@ const eventHandlers = computed(() => { ]; eventProps.forEach((eventName) => { if (props[eventName]) { - handlers[eventName] = (event) => props[eventName](event); + handlers[eventMappings[eventName]] = (event) => { + emit(eventMappings[eventName], event); + }; } }); return handlers; @@ -702,5 +736,7 @@ function getStoreState() { `; const result = transformCode(source); + // console.log(result); + // expect(result).toBe(expected); expect(trimWhitespace(result)).toBe(trimWhitespace(expected)); }); diff --git a/packages/vue-codemod/src/plugins/vue-mitosis.plugin.ts b/packages/vue-codemod/src/plugins/vue-mitosis.plugin.ts index 44611e56..d2955d7f 100644 --- a/packages/vue-codemod/src/plugins/vue-mitosis.plugin.ts +++ b/packages/vue-codemod/src/plugins/vue-mitosis.plugin.ts @@ -94,10 +94,8 @@ export const vueMitosisCodeMod: CodemodPlugin = { // Remove eventHandlers from the spread operator if (eventHandlersPropertyIndex !== -1) { - // Nothing left to spread, remove the v-bind if (isEmpty(restProperties)) { if (node.parent.type === "VStartTag") { - // Remove the v-bind let newAttributes = node.parent.attributes.filter( (attr) => { return !( @@ -174,39 +172,104 @@ export const vueMitosisCodeMod: CodemodPlugin = { } for (const scriptAST of scriptASTs) { + // Add eventMappings object to the script + const eventMappingsDeclaration = builders.variableDeclaration("const", [ + builders.variableDeclarator( + builders.identifier("eventMappings"), + builders.objectExpression( + Object.entries(eventMappings).map(([key, value]) => + builders.objectProperty( + builders.stringLiteral(key), + builders.stringLiteral(value), + ), + ), + ), + ), + ]); + + scriptAST.body.unshift(eventMappingsDeclaration); + transformCount++; + visit(scriptAST, { - visitCallExpression(path) { + visitVariableDeclaration(path) { const { node } = path; if ( - namedTypes.MemberExpression.check(node.callee) && - namedTypes.Identifier.check(node.callee.object) && - node.callee.object.name === "eventProps" && - namedTypes.Identifier.check(node.callee.property) && - node.callee.property.name === "forEach" + node.declarations.length === 1 && + namedTypes.VariableDeclarator.check(node.declarations[0]) && + namedTypes.Identifier.check(node.declarations[0].id) && + node.declarations[0].id.name === "eventHandlers" && + namedTypes.CallExpression.check(node.declarations[0].init) && + namedTypes.Identifier.check(node.declarations[0].init.callee) && + node.declarations[0].init.callee.name === "computed" ) { - const arrowFunction = node.arguments[0]; - if ( - namedTypes.ArrowFunctionExpression.check(arrowFunction) && - namedTypes.Identifier.check(arrowFunction.params[0]) - ) { - const paramName = arrowFunction.params[0].name; - visit(arrowFunction.body, { - visitMemberExpression(innerPath) { + const computedFunction = node.declarations[0].init.arguments[0]; + if (namedTypes.ArrowFunctionExpression.check(computedFunction)) { + visit(computedFunction.body, { + visitCallExpression(innerPath) { const { node: innerNode } = innerPath; if ( - namedTypes.Identifier.check(innerNode.object) && - innerNode.object.name === "props" && - namedTypes.Identifier.check(innerNode.property) && - innerNode.property.name === "eventName" + namedTypes.MemberExpression.check(innerNode.callee) && + namedTypes.Identifier.check(innerNode.callee.object) && + innerNode.callee.object.name === "eventProps" && + namedTypes.Identifier.check(innerNode.callee.property) && + innerNode.callee.property.name === "forEach" ) { - innerPath.replace( - builders.memberExpression( - builders.identifier("props"), - builders.identifier(paramName), - true, - ), - ); - transformCount++; + const forEachCallback = innerNode.arguments[0]; + if ( + namedTypes.ArrowFunctionExpression.check( + forEachCallback, + ) && + namedTypes.Identifier.check(forEachCallback.params[0]) + ) { + const eventNameParam = forEachCallback.params[0]; + forEachCallback.body = builders.blockStatement([ + builders.ifStatement( + builders.memberExpression( + builders.identifier("props"), + eventNameParam, + true, + ), + builders.blockStatement([ + builders.expressionStatement( + builders.assignmentExpression( + "=", + builders.memberExpression( + builders.identifier("handlers"), + builders.memberExpression( + builders.identifier("eventMappings"), + eventNameParam, + true, + ), + true, + ), + builders.arrowFunctionExpression( + [builders.identifier("event")], + builders.blockStatement([ + builders.expressionStatement( + builders.callExpression( + builders.identifier("emit"), + [ + builders.memberExpression( + builders.identifier( + "eventMappings", + ), + eventNameParam, + true, + ), + builders.identifier("event"), + ], + ), + ), + ]), + ), + ), + ), + ]), + ), + ]); + transformCount++; + didModEventHandlers = true; + } } this.traverse(innerPath); }, diff --git a/packages/vue/package.json b/packages/vue/package.json index 3ea37344..d813bb5a 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -70,6 +70,7 @@ "@ark-ui/vue": "^3.13.0", "@floating-ui/dom": "^1.6.10", "@formkit/auto-animate": "^0.8.2", + "@headlessui/vue": "^1.7.23", "@vanilla-extract/css": "^1.15.5", "@vanilla-extract/dynamic": "^2.1.2", "@vanilla-extract/recipes": "^0.5.5", diff --git a/packages/vue/scaffolds/modal/modal.css.ts b/packages/vue/scaffolds/modal/modal.css.ts index b824da19..b66382ae 100644 --- a/packages/vue/scaffolds/modal/modal.css.ts +++ b/packages/vue/scaffolds/modal/modal.css.ts @@ -1,53 +1,109 @@ -import { style } from "@vanilla-extract/css"; +import { style, keyframes } from "@vanilla-extract/css"; import { globalStyle } from "@vanilla-extract/css"; +const fadeIn = keyframes({ + from: { opacity: 0 }, + to: { opacity: 1 }, +}); + +const fadeOut = keyframes({ + from: { opacity: 1 }, + to: { opacity: 0 }, +}); + +const scaleIn = keyframes({ + from: { transform: "scale(0.95)" }, + to: { transform: "scale(1)" }, +}); + +const scaleOut = keyframes({ + from: { transform: "scale(1)" }, + to: { transform: "scale(0.95)" }, +}); + export const modalRoot = style({ position: "fixed", inset: 0, display: "flex", justifyContent: "center", alignItems: "center", - zIndex: 0, + zIndex: 50, }); export const modalContainer = style({ - overflow: `hidden`, - display: `flex`, - alignItems: `center`, - justifyContent: `center`, - transition: `opacity 300ms ease-in-out`, - selectors: { - '&[data-modal-open="true"]': { - opacity: 1, - visibility: `visible`, - }, - '&[data-modal-open="false"]': { - opacity: 0, - visibility: `hidden`, - }, - }, + position: "fixed", + inset: 0, + overflow: "hidden", + display: "flex", + alignItems: "center", + justifyContent: "center", }); export const modalBackdrop = style({ - position: `fixed`, - top: 0, - left: 0, - bottom: 0, - right: 0, - width: `100%`, - height: `100%`, - backgroundColor: `rgba(17, 20, 24, .7)`, + position: "fixed", + inset: 0, + backgroundColor: "rgba(0, 0, 0, 0.5)", }); -export const modalContent = style({ - position: `relative`, - zIndex: 1, +// New styles for backdrop transition +export const backdropTransitionEnter = style({ + transitionProperty: "opacity", + transitionDuration: "300ms", + transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)", +}); + +export const backdropTransitionEnterFrom = style({ + opacity: "0", +}); + +export const backdropTransitionEnterTo = style({ + opacity: "1", +}); + +export const backdropTransitionLeave = style({ + transitionProperty: "opacity", + transitionDuration: "200ms", + transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)", +}); + +export const backdropTransitionLeaveFrom = style({ + opacity: "1", +}); + +export const backdropTransitionLeaveTo = style({ + opacity: "0", +}); + +export const modalWrapper = style({ + position: "relative", + display: "flex", + alignItems: "center", + justifyContent: "center", + width: "100%", + height: "100%", +}); + +export const modalPanel = style({ + position: "relative", + backgroundColor: "white", + borderRadius: "0.5rem", + boxShadow: + "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", overflow: "hidden", + maxWidth: "28rem", + width: "100%", +}); + +export const modalContent = style({ + padding: "1.5rem", }); export const modalHeader = style({ position: "relative", display: "flex", + justifyContent: "space-between", + alignItems: "center", + marginBottom: "1rem", }); export const modalCloseButton = style({ @@ -55,11 +111,53 @@ export const modalCloseButton = style({ right: 0, top: "50%", transform: "translateY(-50%)", + padding: "0.5rem", + backgroundColor: "transparent", + border: "none", + cursor: "pointer", + fontSize: "1.5rem", + lineHeight: 1, +}); + +export const modalBody = style({ + marginTop: "1rem", +}); + +export const transitionEnter = style({ + transitionProperty: "opacity, transform", + transitionDuration: "300ms", + transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)", +}); + +export const transitionEnterFrom = style({ + opacity: "0", + transform: "scale(0.95)", +}); + +export const transitionEnterTo = style({ + opacity: "1", + transform: "scale(1)", +}); + +export const transitionLeave = style({ + transitionProperty: "opacity, transform", + transitionDuration: "200ms", + transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)", +}); + +export const transitionLeaveFrom = style({ + opacity: "1", + transform: "scale(1)", +}); + +export const transitionLeaveTo = style({ + opacity: "0", + transform: "scale(0.95)", }); globalStyle( `${modalContainer} *, ${modalContainer} *::before, ${modalContainer} *::after`, { - boxSizing: `border-box`, + boxSizing: "border-box", }, ); diff --git a/packages/vue/scaffolds/modal/modal.vue b/packages/vue/scaffolds/modal/modal.vue index f35b6b75..22ae0bce 100644 --- a/packages/vue/scaffolds/modal/modal.vue +++ b/packages/vue/scaffolds/modal/modal.vue @@ -1,6 +1,11 @@ diff --git a/packages/vue/stories/AnimateLayout.stories.ts b/packages/vue/stories/AnimateLayout.stories.ts index 76ce6975..908deafb 100644 --- a/packages/vue/stories/AnimateLayout.stories.ts +++ b/packages/vue/stories/AnimateLayout.stories.ts @@ -5,7 +5,7 @@ import { ref } from "vue"; const meta: Meta = { component: AnimateLayout, - title: "AnimateLayout", + title: "Core/AnimateLayout", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/Avatar.stories.ts b/packages/vue/stories/Avatar.stories.ts index 2fd460b8..5dccd5de 100644 --- a/packages/vue/stories/Avatar.stories.ts +++ b/packages/vue/stories/Avatar.stories.ts @@ -6,7 +6,7 @@ import Stack from "../src/ui/stack/stack.vue"; const meta: Meta = { component: Avatar, - title: "Avatar", + title: "Core/Avatar", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/AvatarBadge.stories.ts b/packages/vue/stories/AvatarBadge.stories.ts index c309fb73..522c6d2b 100644 --- a/packages/vue/stories/AvatarBadge.stories.ts +++ b/packages/vue/stories/AvatarBadge.stories.ts @@ -4,7 +4,7 @@ import Avatar from "../src/ui/avatar/avatar.vue"; const meta: Meta = { component: AvatarBadge, - title: "AvatarBadge", + title: "Core/AvatarBadge", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/Box.stories.ts b/packages/vue/stories/Box.stories.ts index 70148a42..0fb70b98 100644 --- a/packages/vue/stories/Box.stories.ts +++ b/packages/vue/stories/Box.stories.ts @@ -3,7 +3,7 @@ import Box from "../src/ui/box/box.vue"; const meta: Meta = { component: Box, - title: "Box", + title: "Core/Box", tags: ["autodocs"], argTypes: {}, }; @@ -25,10 +25,13 @@ export const Primary: Story = { render: (args) => ({ components: { Box }, setup() { - return { args }; + const handleClick = () => { + alert("Box clicked"); + }; + return { args, handleClick }; }, template: ` - + This is a Box component `, diff --git a/packages/vue/stories/Breadcrumb.stories.ts b/packages/vue/stories/Breadcrumb.stories.ts index ad1a7040..eb2832da 100644 --- a/packages/vue/stories/Breadcrumb.stories.ts +++ b/packages/vue/stories/Breadcrumb.stories.ts @@ -3,7 +3,7 @@ import Breadcrumb from "../src/ui/breadcrumb/breadcrumb.vue"; const meta: Meta = { component: Breadcrumb, - title: "Breadcrumb", + title: "Core/Breadcrumb", tags: ["autodocs"], argTypes: { children: { control: "object" }, diff --git a/packages/vue/stories/Button.stories.ts b/packages/vue/stories/Button.stories.ts index 5ade474f..851677d8 100644 --- a/packages/vue/stories/Button.stories.ts +++ b/packages/vue/stories/Button.stories.ts @@ -3,7 +3,7 @@ import Button from "../src/ui/button/button.vue"; const meta: Meta = { component: Button, - title: "Button", + title: "Core/Button", tags: ["autodocs"], argTypes: { intent: { @@ -66,7 +66,7 @@ export const Primary: Story = { return { args, handleClick }; }, template: - '', + '', }), }; diff --git a/packages/vue/stories/Callout.stories.ts b/packages/vue/stories/Callout.stories.ts index 814a48b6..40773301 100644 --- a/packages/vue/stories/Callout.stories.ts +++ b/packages/vue/stories/Callout.stories.ts @@ -3,7 +3,7 @@ import Callout from "../src/ui/callout/callout.vue"; const meta: Meta = { component: Callout, - title: "Callout", + title: "Core/Callout", tags: ["autodocs"], argTypes: { intent: { diff --git a/packages/vue/stories/Center.stories.ts b/packages/vue/stories/Center.stories.ts index dcb0f84f..591875fd 100644 --- a/packages/vue/stories/Center.stories.ts +++ b/packages/vue/stories/Center.stories.ts @@ -4,7 +4,7 @@ import Box from "../src/ui/box/box.vue"; const meta: Meta = { component: Center, - title: "Center", + title: "Core/Center", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/ClipboardCopyText.stories.ts b/packages/vue/stories/ClipboardCopyText.stories.ts index 4162e7a4..85180b0a 100644 --- a/packages/vue/stories/ClipboardCopyText.stories.ts +++ b/packages/vue/stories/ClipboardCopyText.stories.ts @@ -3,7 +3,7 @@ import ClipboardCopyText from "../src/ui/clipboard-copy-text/clipboard-copy-text const meta: Meta = { component: ClipboardCopyText, - title: "ClipboardCopyText", + title: "Core/ClipboardCopyText", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/ConnectModal.stories.ts b/packages/vue/stories/ConnectModal.stories.ts index ca7045d4..491da5ad 100644 --- a/packages/vue/stories/ConnectModal.stories.ts +++ b/packages/vue/stories/ConnectModal.stories.ts @@ -5,7 +5,7 @@ import { ref } from "vue"; const meta: Meta = { component: ConnectModal, - title: "ConnectModal", + title: "ConnectModal/ConnectModal", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/ConnectModalHead.stories.ts b/packages/vue/stories/ConnectModalHead.stories.ts index 65cab42a..8f5e7b4c 100644 --- a/packages/vue/stories/ConnectModalHead.stories.ts +++ b/packages/vue/stories/ConnectModalHead.stories.ts @@ -3,7 +3,7 @@ import ConnectModalHead from "../src/ui/connect-modal-head/connect-modal-head.vu const meta: Meta = { component: ConnectModalHead, - title: "ConnectModalHead", + title: "ConnectModal/ConnectModalHead", tags: ["autodocs"], argTypes: { title: { control: "text" }, diff --git a/packages/vue/stories/ConnectModalInstallButton.stories.ts b/packages/vue/stories/ConnectModalInstallButton.stories.ts index 77b24cfe..4ff34a4f 100644 --- a/packages/vue/stories/ConnectModalInstallButton.stories.ts +++ b/packages/vue/stories/ConnectModalInstallButton.stories.ts @@ -3,7 +3,7 @@ import ConnectModalInstallButton from "../src/ui/connect-modal-install-button/co const meta: Meta = { component: ConnectModalInstallButton, - title: "ConnectModalInstallButton", + title: "ConnectModal/ConnectModalInstallButton", tags: ["autodocs"], argTypes: { walletName: { control: "text" }, diff --git a/packages/vue/stories/ConnectModalQRCode.stories.ts b/packages/vue/stories/ConnectModalQRCode.stories.ts index 9635e965..9edbbd17 100644 --- a/packages/vue/stories/ConnectModalQRCode.stories.ts +++ b/packages/vue/stories/ConnectModalQRCode.stories.ts @@ -3,7 +3,7 @@ import ConnectModalQRCode from "../src/ui/connect-modal-qrcode/connect-modal-qrc const meta: Meta = { component: ConnectModalQRCode, - title: "ConnectModalQRCode", + title: "ConnectModal/ConnectModalQRCode", tags: ["autodocs"], argTypes: { uri: { control: "text" }, diff --git a/packages/vue/stories/ConnectModalQRCodeError.stories.ts b/packages/vue/stories/ConnectModalQRCodeError.stories.ts index 516fd226..4b311b26 100644 --- a/packages/vue/stories/ConnectModalQRCodeError.stories.ts +++ b/packages/vue/stories/ConnectModalQRCodeError.stories.ts @@ -3,7 +3,7 @@ import ConnectModalQRCodeError from "../src/ui/connect-modal-qrcode-error/connec const meta: Meta = { component: ConnectModalQRCodeError, - title: "ConnectModalQRCodeError", + title: "ConnectModal/ConnectModalQRCodeError", tags: ["autodocs"], argTypes: { errorTitle: { control: "text" }, diff --git a/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts b/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts index 2e998921..8ec1b077 100644 --- a/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts +++ b/packages/vue/stories/ConnectModalQRCodeSkeleton.stories.ts @@ -3,7 +3,7 @@ import ConnectModalQRCodeSkeleton from "../src/ui/connect-modal-qrcode-skeleton/ const meta: Meta = { component: ConnectModalQRCodeSkeleton, - title: "ConnectModalQRCodeSkeleton", + title: "ConnectModal/ConnectModalQRCodeSkeleton", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/ConnectModalStatus.stories.ts b/packages/vue/stories/ConnectModalStatus.stories.ts index cd1311e4..2f1186e3 100644 --- a/packages/vue/stories/ConnectModalStatus.stories.ts +++ b/packages/vue/stories/ConnectModalStatus.stories.ts @@ -3,7 +3,7 @@ import ConnectModalStatus from "../src/ui/connect-modal-status/connect-modal-sta const meta: Meta = { component: ConnectModalStatus, - title: "ConnectModalStatus", + title: "ConnectModal/ConnectModalStatus", tags: ["autodocs"], argTypes: { status: { diff --git a/packages/vue/stories/ConnectModalWalletButton.stories.ts b/packages/vue/stories/ConnectModalWalletButton.stories.ts index 16970e52..11b0bdea 100644 --- a/packages/vue/stories/ConnectModalWalletButton.stories.ts +++ b/packages/vue/stories/ConnectModalWalletButton.stories.ts @@ -3,7 +3,7 @@ import ConnectModalWalletButton from "../src/ui/connect-modal-wallet-button/conn const meta: Meta = { component: ConnectModalWalletButton, - title: "ConnectModalWalletButton", + title: "ConnectModal/ConnectModalWalletButton", tags: ["autodocs"], argTypes: { name: { control: "text" }, diff --git a/packages/vue/stories/ConnectModalWalletList.stories.ts b/packages/vue/stories/ConnectModalWalletList.stories.ts index 773951ec..b8b70254 100644 --- a/packages/vue/stories/ConnectModalWalletList.stories.ts +++ b/packages/vue/stories/ConnectModalWalletList.stories.ts @@ -4,7 +4,7 @@ import { Wallet } from "../src/ui/connect-modal-wallet-list/connect-modal-wallet const meta: Meta = { component: ConnectModalWalletList, - title: "ConnectModalWalletList", + title: "ConnectModal/ConnectModalWalletList", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/Container.stories.ts b/packages/vue/stories/Container.stories.ts index 279fea8b..a7011bf4 100644 --- a/packages/vue/stories/Container.stories.ts +++ b/packages/vue/stories/Container.stories.ts @@ -4,7 +4,7 @@ import Box from "../src/ui/box/box.vue"; const meta: Meta = { component: Container, - title: "Container", + title: "Core/Container", tags: ["autodocs"], argTypes: { maxWidth: { diff --git a/packages/vue/stories/Divider.stories.ts b/packages/vue/stories/Divider.stories.ts index abcc0a08..dea75aa2 100644 --- a/packages/vue/stories/Divider.stories.ts +++ b/packages/vue/stories/Divider.stories.ts @@ -4,7 +4,7 @@ import Box from "../src/ui/box/box.vue"; const meta: Meta = { component: Divider, - title: "Divider", + title: "Core/Divider", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/FadeIn.stories.ts b/packages/vue/stories/FadeIn.stories.ts index 1ddbb44e..7eddec8f 100644 --- a/packages/vue/stories/FadeIn.stories.ts +++ b/packages/vue/stories/FadeIn.stories.ts @@ -5,7 +5,7 @@ import { ref } from "vue"; const meta: Meta = { component: FadeIn, - title: "FadeIn", + title: "Core/FadeIn", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/FieldLabel.stories.ts b/packages/vue/stories/FieldLabel.stories.ts index 0f3929ee..77349a3b 100644 --- a/packages/vue/stories/FieldLabel.stories.ts +++ b/packages/vue/stories/FieldLabel.stories.ts @@ -3,7 +3,7 @@ import FieldLabel from "../src/ui/field-label/field-label.vue"; const meta: Meta = { component: FieldLabel, - title: "FieldLabel", + title: "Core/FieldLabel", tags: ["autodocs"], argTypes: {}, }; diff --git a/packages/vue/stories/Icon.stories.ts b/packages/vue/stories/Icon.stories.ts index 01a238a9..8caf16e7 100644 --- a/packages/vue/stories/Icon.stories.ts +++ b/packages/vue/stories/Icon.stories.ts @@ -3,7 +3,7 @@ import Icon from "../src/ui/icon/icon.vue"; const meta: Meta = { component: Icon, - title: "Icon", + title: "Core/Icon", tags: ["autodocs"], argTypes: { name: { diff --git a/packages/vue/stories/IconButton.stories.ts b/packages/vue/stories/IconButton.stories.ts index 5ec74e45..b4372bff 100644 --- a/packages/vue/stories/IconButton.stories.ts +++ b/packages/vue/stories/IconButton.stories.ts @@ -3,7 +3,7 @@ import IconButton from "../src/ui/icon-button/icon-button.vue"; const meta: Meta = { component: IconButton, - title: "IconButton", + title: "Core/IconButton", tags: ["autodocs"], argTypes: { icon: { diff --git a/packages/vue/stories/Link.stories.ts b/packages/vue/stories/Link.stories.ts index 79d6f868..b5d7b88e 100644 --- a/packages/vue/stories/Link.stories.ts +++ b/packages/vue/stories/Link.stories.ts @@ -3,7 +3,7 @@ import Link from "../src/ui/link/link.vue"; const meta: Meta = { component: Link, - title: "Link", + title: "Core/Link", tags: ["autodocs"], argTypes: { href: { control: "text" }, diff --git a/packages/vue/stories/Modal.stories.ts b/packages/vue/stories/Modal.stories.ts index a5f0e38f..af7dd50d 100644 --- a/packages/vue/stories/Modal.stories.ts +++ b/packages/vue/stories/Modal.stories.ts @@ -1,10 +1,10 @@ import type { Meta, StoryObj } from "@storybook/vue3"; import { ref } from "vue"; -import Modal from "../src/ui/modal/modal.vue"; +import Modal from "../scaffolds/modal/modal.vue"; import useTheme from "../src/ui/hooks/use-theme/use-theme"; const meta: Meta = { - title: "Modal", + title: "Core/Modal", component: Modal, tags: ["autodocs"], argTypes: { @@ -37,13 +37,13 @@ const DefaultTemplate: Story = { template: `
-