From 1b9f3ecba82dbee07bf91aa6a361d17c121b53a1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 2 Jul 2024 16:20:01 +0200 Subject: [PATCH 01/26] Add Storybook plugin --- packages/snaps-sdk/.storybook/main.ts | 17 + packages/snaps-sdk/.storybook/preview.ts | 7 + packages/snaps-sdk/package.json | 5 + packages/snaps-sdk/src/jsx/component.ts | 4 +- .../snaps-sdk/src/jsx/components/Heading.ts | 2 +- packages/snaps-sdk/src/jsx/validation.ts | 3 +- packages/snaps-sdk/tsconfig.build.json | 1 + packages/snaps-sdk/tsconfig.json | 5 + packages/snaps-storybook/.depcheckrc.json | 17 + packages/snaps-storybook/.eslintrc.js | 7 + packages/snaps-storybook/CHANGELOG.md | 9 + packages/snaps-storybook/LICENSE | 15 + packages/snaps-storybook/README.md | 17 + packages/snaps-storybook/jest.config.js | 59 + packages/snaps-storybook/package.json | 109 + .../fonts/Euclid-Circular-B-Bold-Italic.woff2 | Bin 0 -> 35616 bytes .../assets/fonts/Euclid-Circular-B-Bold.woff2 | Bin 0 -> 34088 bytes .../fonts/Euclid-Circular-B-Italic.woff2 | Bin 0 -> 36340 bytes .../Euclid-Circular-B-Light-Italic.woff2 | Bin 0 -> 32568 bytes .../fonts/Euclid-Circular-B-Light.woff2 | Bin 0 -> 31124 bytes .../Euclid-Circular-B-Medium-Italic.woff2 | Bin 0 -> 36700 bytes .../fonts/Euclid-Circular-B-Medium.woff2 | Bin 0 -> 35000 bytes .../fonts/Euclid-Circular-B-Regular.woff2 | Bin 0 -> 34528 bytes .../Euclid-Circular-B-SemiBold-Italic.woff2 | Bin 0 -> 36752 bytes .../fonts/Euclid-Circular-B-SemiBold.woff2 | Bin 0 -> 34948 bytes .../assets/fonts/IBM-Plex-Mono-Regular.woff2 | Bin 0 -> 45640 bytes .../src/assets/fonts/Inter-Bold.woff2 | Bin 0 -> 22904 bytes .../src/assets/fonts/Inter-Light.woff2 | Bin 0 -> 22444 bytes .../src/assets/fonts/Inter-Medium.woff2 | Bin 0 -> 22760 bytes .../src/assets/fonts/Inter-Regular.woff2 | Bin 0 -> 21564 bytes .../src/assets/fonts/Inter-SemiBold.woff2 | Bin 0 -> 22820 bytes .../src/assets/fonts/fonts.css | 111 + .../snaps-storybook/src/assets/global.css | 11 + packages/snaps-storybook/src/assets/logo.svg | 1 + .../src/components/ColorMode.tsx | 31 + .../src/components/Delineator.tsx | 43 + .../src/components/ErrorBoundary.tsx | 70 + .../snaps-storybook/src/components/Header.tsx | 27 + .../src/components/Jazzicon.tsx | 53 + .../src/components/Renderer.tsx | 70 + .../src/components/icons/DangerIcon.tsx | 11 + .../src/components/icons/QuestionIcon.tsx | 11 + .../src/components/icons/SnapIcon.tsx | 31 + .../src/components/icons/WarningIcon.tsx | 11 + .../src/components/icons/index.ts | 4 + .../snaps-storybook/src/components/index.ts | 3 + .../src/components/snaps/Address.tsx | 31 + .../src/components/snaps/Box.tsx | 64 + .../src/components/snaps/Button.tsx | 26 + .../src/components/snaps/Heading.tsx | 25 + .../src/components/snaps/Row.tsx | 86 + .../src/components/snaps/Text.tsx | 25 + .../src/components/snaps/custom/Extension.tsx | 44 + .../components/snaps/custom/ThemeProvider.tsx | 47 + .../src/components/snaps/custom/index.ts | 2 + .../src/components/snaps/index.ts | 13 + packages/snaps-storybook/src/constants.ts | 1 + packages/snaps-storybook/src/decorators.tsx | 52 + packages/snaps-storybook/src/docs.test.ts | 22 + packages/snaps-storybook/src/docs.ts | 256 + packages/snaps-storybook/src/globals.ts | 74 + packages/snaps-storybook/src/index.ts | 1 + packages/snaps-storybook/src/manager.ts | 8 + packages/snaps-storybook/src/preset.ts | 155 + packages/snaps-storybook/src/preview.ts | 1 + packages/snaps-storybook/src/render.tsx | 66 + packages/snaps-storybook/src/theme/borders.ts | 10 + .../src/theme/components/button.ts | 46 + .../src/theme/components/heading.ts | 19 + .../src/theme/components/index.ts | 4 + .../src/theme/components/row.ts | 29 + .../src/theme/components/text.ts | 8 + packages/snaps-storybook/src/theme/config.ts | 6 + packages/snaps-storybook/src/theme/index.ts | 24 + .../snaps-storybook/src/theme/storybook.ts | 59 + packages/snaps-storybook/src/theme/styles.ts | 16 + .../snaps-storybook/src/theme/utils.test.ts | 230 + packages/snaps-storybook/src/theme/utils.ts | 36 + packages/snaps-storybook/src/types.ts | 55 + .../snaps-storybook/src/types/jazzicon.d.ts | 7 + packages/snaps-storybook/tsconfig.build.json | 24 + packages/snaps-storybook/tsconfig.json | 14 + packages/snaps-storybook/tsup.config.ts | 15 + tsconfig.build.json | 1 + tsconfig.json | 1 + yarn.lock | 5730 ++++++++++++----- 86 files changed, 6500 insertions(+), 1598 deletions(-) create mode 100644 packages/snaps-sdk/.storybook/main.ts create mode 100644 packages/snaps-sdk/.storybook/preview.ts create mode 100644 packages/snaps-storybook/.depcheckrc.json create mode 100644 packages/snaps-storybook/.eslintrc.js create mode 100644 packages/snaps-storybook/CHANGELOG.md create mode 100644 packages/snaps-storybook/LICENSE create mode 100644 packages/snaps-storybook/README.md create mode 100644 packages/snaps-storybook/jest.config.js create mode 100644 packages/snaps-storybook/package.json create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Bold-Italic.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Bold.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Italic.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Light-Italic.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Light.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Medium-Italic.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Medium.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Regular.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-SemiBold-Italic.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-SemiBold.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/IBM-Plex-Mono-Regular.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Inter-Bold.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Inter-Light.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Inter-Medium.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Inter-Regular.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/Inter-SemiBold.woff2 create mode 100644 packages/snaps-storybook/src/assets/fonts/fonts.css create mode 100644 packages/snaps-storybook/src/assets/global.css create mode 100644 packages/snaps-storybook/src/assets/logo.svg create mode 100644 packages/snaps-storybook/src/components/ColorMode.tsx create mode 100644 packages/snaps-storybook/src/components/Delineator.tsx create mode 100644 packages/snaps-storybook/src/components/ErrorBoundary.tsx create mode 100644 packages/snaps-storybook/src/components/Header.tsx create mode 100644 packages/snaps-storybook/src/components/Jazzicon.tsx create mode 100644 packages/snaps-storybook/src/components/Renderer.tsx create mode 100644 packages/snaps-storybook/src/components/icons/DangerIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/QuestionIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/SnapIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/WarningIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/index.ts create mode 100644 packages/snaps-storybook/src/components/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/Address.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/Box.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/Button.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/Heading.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/Row.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/Text.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/custom/Extension.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/custom/ThemeProvider.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/custom/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/index.ts create mode 100644 packages/snaps-storybook/src/constants.ts create mode 100644 packages/snaps-storybook/src/decorators.tsx create mode 100644 packages/snaps-storybook/src/docs.test.ts create mode 100644 packages/snaps-storybook/src/docs.ts create mode 100644 packages/snaps-storybook/src/globals.ts create mode 100644 packages/snaps-storybook/src/index.ts create mode 100644 packages/snaps-storybook/src/manager.ts create mode 100644 packages/snaps-storybook/src/preset.ts create mode 100644 packages/snaps-storybook/src/preview.ts create mode 100644 packages/snaps-storybook/src/render.tsx create mode 100644 packages/snaps-storybook/src/theme/borders.ts create mode 100644 packages/snaps-storybook/src/theme/components/button.ts create mode 100644 packages/snaps-storybook/src/theme/components/heading.ts create mode 100644 packages/snaps-storybook/src/theme/components/index.ts create mode 100644 packages/snaps-storybook/src/theme/components/row.ts create mode 100644 packages/snaps-storybook/src/theme/components/text.ts create mode 100644 packages/snaps-storybook/src/theme/config.ts create mode 100644 packages/snaps-storybook/src/theme/index.ts create mode 100644 packages/snaps-storybook/src/theme/storybook.ts create mode 100644 packages/snaps-storybook/src/theme/styles.ts create mode 100644 packages/snaps-storybook/src/theme/utils.test.ts create mode 100644 packages/snaps-storybook/src/theme/utils.ts create mode 100644 packages/snaps-storybook/src/types.ts create mode 100644 packages/snaps-storybook/src/types/jazzicon.d.ts create mode 100644 packages/snaps-storybook/tsconfig.build.json create mode 100644 packages/snaps-storybook/tsconfig.json create mode 100644 packages/snaps-storybook/tsup.config.ts diff --git a/packages/snaps-sdk/.storybook/main.ts b/packages/snaps-sdk/.storybook/main.ts new file mode 100644 index 0000000000..6e24e2779a --- /dev/null +++ b/packages/snaps-sdk/.storybook/main.ts @@ -0,0 +1,17 @@ +import { StorybookConfig } from '@storybook/types'; + +const config: StorybookConfig = { + stories: ['../src/**/*.stories.tsx', '../src/**/*.mdx'], + framework: { + name: '@metamask/snaps-storybook', + options: {}, + }, + addons: [ + '@storybook/addon-controls', + ], + core: { + disableTelemetry: true, + } +}; + +export default config; diff --git a/packages/snaps-sdk/.storybook/preview.ts b/packages/snaps-sdk/.storybook/preview.ts new file mode 100644 index 0000000000..a3d9ef4164 --- /dev/null +++ b/packages/snaps-sdk/.storybook/preview.ts @@ -0,0 +1,7 @@ +import type { Preview, SnapsRenderer } from '@metamask/snaps-storybook'; + +const preview: Preview = { + tags: ['autodocs'], +}; + +export default preview; diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index 95bba09e87..616faa5da7 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -42,6 +42,7 @@ "jsx-runtime.d.ts" ], "scripts": { + "start": "storybook dev --port 7000 --no-open", "test": "jest && yarn posttest", "posttest": "jest-it-up --margin 0.25", "test:ci": "yarn test", @@ -72,6 +73,9 @@ "@metamask/eslint-config-jest": "^12.1.0", "@metamask/eslint-config-nodejs": "^12.1.0", "@metamask/eslint-config-typescript": "^12.1.0", + "@metamask/snaps-storybook": "workspace:^", + "@storybook/addon-controls": "^8.1.11", + "@storybook/blocks": "^8.1.11", "@swc/core": "1.3.78", "@types/jest": "^27.5.1", "@typescript-eslint/eslint-plugin": "^5.42.1", @@ -93,6 +97,7 @@ "prettier": "^2.7.1", "prettier-plugin-packagejson": "^2.2.11", "rimraf": "^4.1.2", + "storybook": "^8.0.0", "ts-jest": "^29.1.1", "tsup": "^8.0.1", "typescript": "~4.8.4" diff --git a/packages/snaps-sdk/src/jsx/component.ts b/packages/snaps-sdk/src/jsx/component.ts index 43ca510f4e..7315d0294b 100644 --- a/packages/snaps-sdk/src/jsx/component.ts +++ b/packages/snaps-sdk/src/jsx/component.ts @@ -1,9 +1,9 @@ import type { Json } from '@metamask/utils'; /** - * A key, which can be a string or a number. + * A key, i.e., a string value. */ -export type Key = string | number; +export type Key = string; /** * A JSON object. diff --git a/packages/snaps-sdk/src/jsx/components/Heading.ts b/packages/snaps-sdk/src/jsx/components/Heading.ts index ee3ff21067..4eb3803c22 100644 --- a/packages/snaps-sdk/src/jsx/components/Heading.ts +++ b/packages/snaps-sdk/src/jsx/components/Heading.ts @@ -6,7 +6,7 @@ import { createSnapComponent } from '../component'; * * @property children - The text to display in the heading. */ -type HeadingProps = { +export type HeadingProps = { children: StringElement; }; diff --git a/packages/snaps-sdk/src/jsx/validation.ts b/packages/snaps-sdk/src/jsx/validation.ts index bab3a1b0b9..73cfdf101e 100644 --- a/packages/snaps-sdk/src/jsx/validation.ts +++ b/packages/snaps-sdk/src/jsx/validation.ts @@ -12,7 +12,6 @@ import { array, lazy, nullable, - number, object, record, string, @@ -69,7 +68,7 @@ import type { /** * A struct for the {@link Key} type. */ -export const KeyStruct: Describe = nullUnion([string(), number()]); +export const KeyStruct: Describe = nullUnion([string()]); /** * A struct for the {@link StringElement} type. diff --git a/packages/snaps-sdk/tsconfig.build.json b/packages/snaps-sdk/tsconfig.build.json index c51cd58db5..b32f6c67a2 100644 --- a/packages/snaps-sdk/tsconfig.build.json +++ b/packages/snaps-sdk/tsconfig.build.json @@ -9,6 +9,7 @@ "exclude": [ "**/*.test.ts", "**/*.test.tsx", + "**/*.stories.tsx", "./src/**/test-utils", "./src/**/__mocks__", "./src/**/__snapshots__" diff --git a/packages/snaps-sdk/tsconfig.json b/packages/snaps-sdk/tsconfig.json index 13936c8364..d248b9be8f 100644 --- a/packages/snaps-sdk/tsconfig.json +++ b/packages/snaps-sdk/tsconfig.json @@ -12,5 +12,10 @@ "jsx.d.ts", "jsx-runtime.d.ts", "jsx-dev-runtime.d.ts" + ], + "references": [ + { + "path": "../snaps-storybook" + } ] } diff --git a/packages/snaps-storybook/.depcheckrc.json b/packages/snaps-storybook/.depcheckrc.json new file mode 100644 index 0000000000..15d64e734b --- /dev/null +++ b/packages/snaps-storybook/.depcheckrc.json @@ -0,0 +1,17 @@ +{ + "ignore-patterns": ["dist", "coverage"], + "ignores": [ + "@lavamoat/allow-scripts", + "@lavamoat/preinstall-always-fail", + "@metamask/auto-changelog", + "@metamask/eslint-*", + "@types/*", + "@typescript-eslint/*", + "eslint-config-*", + "eslint-plugin-*", + "prettier-plugin-packagejson", + "ts-node", + "typedoc", + "typescript" + ] +} diff --git a/packages/snaps-storybook/.eslintrc.js b/packages/snaps-storybook/.eslintrc.js new file mode 100644 index 0000000000..a47fd0b65d --- /dev/null +++ b/packages/snaps-storybook/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: ['../../.eslintrc.js'], + + parserOptions: { + tsconfigRootDir: __dirname, + }, +}; diff --git a/packages/snaps-storybook/CHANGELOG.md b/packages/snaps-storybook/CHANGELOG.md new file mode 100644 index 0000000000..aa399df1be --- /dev/null +++ b/packages/snaps-storybook/CHANGELOG.md @@ -0,0 +1,9 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +[Unreleased]: https://github.com/MetaMask/snaps/ diff --git a/packages/snaps-storybook/LICENSE b/packages/snaps-storybook/LICENSE new file mode 100644 index 0000000000..4a4c080fa7 --- /dev/null +++ b/packages/snaps-storybook/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2024 MetaMask + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/packages/snaps-storybook/README.md b/packages/snaps-storybook/README.md new file mode 100644 index 0000000000..55e427bf56 --- /dev/null +++ b/packages/snaps-storybook/README.md @@ -0,0 +1,17 @@ +# @metamask/snaps-storybook + +A Storybook plugin for the MetaMask Snaps SDK. + +## Installation + +Use Node.js `18.0.0` or later. We recommend using [nvm](https://github.com/nvm-sh/nvm) +for managing Node.js versions. + +Install a dependency in your snap project using `yarn` or `npm`: + +- `npm install @metamask/snaps-storybook` +- `yarn add @metamask/snaps-storybook` + +## Usage + +TODO. diff --git a/packages/snaps-storybook/jest.config.js b/packages/snaps-storybook/jest.config.js new file mode 100644 index 0000000000..17019b1bfa --- /dev/null +++ b/packages/snaps-storybook/jest.config.js @@ -0,0 +1,59 @@ +const deepmerge = require('deepmerge'); +const { resolve } = require('path'); + +const baseConfig = require('../../jest.config.base'); + +module.exports = deepmerge(baseConfig, { + collectCoverageFrom: [ + '!./src/**/index.ts', + '!./src/types/global.ts', + '!./src/types/images.ts', + ], + + coverageThreshold: { + global: { + branches: 100, + functions: 100, + lines: 100, + statements: 100, + }, + }, + + projects: [ + { + testMatch: [ + '/src/jsx/validation.test.tsx', + '/src/jsx/jsx-runtime.test.tsx', + ], + transform: { + '^.+\\.(t|j)sx?$': [ + 'ts-jest', + { + tsconfig: { + jsx: 'react-jsx', + jsxImportSource: resolve(__dirname, './src/jsx'), + }, + }, + ], + }, + }, + { + testMatch: ['/**/*.test.ts', '/**/*.test.tsx'], + testPathIgnorePatterns: [ + '/src/jsx/validation.test.tsx', + '/src/jsx/jsx-runtime.test.tsx', + ], + transform: { + '^.+\\.(t|j)sx?$': [ + 'ts-jest', + { + tsconfig: { + jsx: 'react-jsxdev', + jsxImportSource: resolve(__dirname, './src/jsx'), + }, + }, + ], + }, + }, + ], +}); diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json new file mode 100644 index 0000000000..f90d8a032b --- /dev/null +++ b/packages/snaps-storybook/package.json @@ -0,0 +1,109 @@ +{ + "name": "@metamask/snaps-storybook", + "version": "0.0.0", + "sideEffects": false, + "exports": { + ".": { + "types": "./dist/types/index.d.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./preset": { + "types": "./dist/types/preset.d.ts", + "import": "./dist/preset.mjs", + "require": "./dist/preset.js" + }, + "./manager": { + "types": "./dist/types/manager.d.ts", + "import": "./dist/manager.mjs", + "require": "./dist/manager.js" + }, + "./package.json": "./package.json" + }, + "main": "./dist/index.js", + "module": "./dist/index.mjs", + "types": "./dist/types/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "clean": "rimraf '*.tsbuildinfo' 'dist'", + "start": "storybook dev --port 7000 --no-open", + "build": "tsup --clean && yarn build:types", + "build:types": "tsc --project tsconfig.build.json", + "build:ci": "tsup --clean", + "lint:dependencies": "depcheck", + "lint:eslint": "eslint . --cache --ext js,ts,jsx,tsx", + "lint:misc": "prettier --no-error-on-unmatched-pattern --loglevel warn \"**/*.json\" \"**/*.md\" \"**/*.html\" \"!CHANGELOG.md\" --ignore-path ../../.gitignore", + "lint": "yarn lint:eslint && yarn lint:misc --check && yarn lint:changelog && yarn lint:dependencies", + "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", + "lint:changelog": "../../scripts/validate-changelog.sh @metamask/snaps-storybook", + "publish:preview": "yarn npm publish --tag preview", + "lint:ci": "yarn lint" + }, + "dependencies": { + "@babel/core": "^7.23.2", + "@babel/generator": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.23.0", + "@chakra-ui/react": "^2.6.1", + "@emotion/react": "^11.10.8", + "@emotion/styled": "^11.10.8", + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@esbuild-plugins/node-modules-polyfill": "^0.2.2", + "@metamask/design-tokens": "^4.0.0", + "@metamask/jazzicon": "^2.0.0", + "@metamask/snaps-sdk": "workspace:^", + "@metamask/utils": "^8.3.0", + "@storybook/addon-docs": "^8.1.11", + "@storybook/addon-themes": "^8.1.11", + "@storybook/addon-toolbars": "^8.1.11", + "@storybook/builder-vite": "^8.1.11", + "@storybook/components": "^8.1.11", + "@storybook/manager-api": "^8.1.11", + "@storybook/react-dom-shim": "^8.1.11", + "@storybook/theming": "^8.1.11", + "@storybook/types": "^8.1.11", + "prettier": "^2.7.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "swc-loader": "^0.2.3", + "ts-morph": "^23.0.0", + "webpack-merge": "^5.9.0" + }, + "devDependencies": { + "@metamask/auto-changelog": "^3.4.4", + "@metamask/eslint-config": "^12.1.0", + "@metamask/eslint-config-jest": "^12.1.0", + "@metamask/eslint-config-nodejs": "^12.1.0", + "@metamask/eslint-config-typescript": "^12.1.0", + "@typescript-eslint/eslint-plugin": "^5.42.1", + "@typescript-eslint/parser": "^5.42.1", + "deepmerge": "^4.2.2", + "depcheck": "^1.4.7", + "eslint": "^8.27.0", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jest": "^27.1.5", + "eslint-plugin-jsdoc": "^39.6.2", + "eslint-plugin-n": "^15.7.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.1.1", + "jest": "^29.0.2", + "jest-it-up": "^2.0.0", + "ts-jest": "^29.1.1", + "tsup": "^8.0.1", + "typescript": "~4.8.4" + }, + "peerDependencies": { + "storybook": "^8.0.0" + }, + "engines": { + "node": "^18.16 || >=20" + }, + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + } +} diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Bold-Italic.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Bold-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f33ca270802882a16309d6e2fbebbb21ddf45ba2 GIT binary patch literal 35616 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 QYHSu#fpSf~+zkK#0MSWVy#N3J literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Bold.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..aa32ab90ff7d64a0c89c6eaa2c19c2887e038e8e GIT binary patch literal 34088 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≫yN?YxG$dL#-^pEjYxXSG#dZ9pCys^R? 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 literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Italic.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ecdc43f13bd8c8ab127487ae805ea388cceb094a GIT binary patch literal 36340 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 MWt+5}HeX{C0416rGynhq literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Light-Italic.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Light-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3978f6a4cd7fcaef08f1c8da99e2d4650227e2ff GIT binary patch literal 32568 zcmV(|K+(TOY@A%AqR3+#NA{pzvDBmR5SiirdUacN#RRlWC9wHOPnmur2m&o~hBi zO7}xtojLajT%40Dk{=LH$gQiWPkUJ6!R{~SR=fs_U}jvIDuV{8pjs`hijPHne>O=~ z(q9#HHICoJzf#)FT3%r1inpXUBm>1b?~cz&V`K+ zjh**&M>czM6IZUuR|=$q{d43y&S2k#E^3!x6arS#WKFIK2i<|foGodPi;OI`S4`6~ zGWqILZ5fz~CIZN09T1Prp-My>D^B)lUxI4w-=5ifFF-6K6c8yy6%VY?#iEfwE)|8S zz6-+o&+qTQwf8w!=jrN6_k$itNr{d~P@Bm{f=Zka<>C3c^#+69M#ab)4A@|>$iFHW zE5^p?7!}eMAc#?jk=W?ziGki3d5IOLoPoz(d&2+!vnOuf^Ztz5Q58b61Vz{7s&;sK zxaZrMdH2g|9(hulNI)A>LMtf-$<9<;T8+OdVlOfJIwD%LcZI}fKfx#CX&ME(@DE?(m+mIcC$7g%M0dD&XzDn@S$gGJh zd8BoHp6S?{YW;-RUK!$>3BL{j5P=^6_oeC!NIz``E2hb`J6_;Ys@&V`4#=eiQKSVq z{M}79FJy89uI@!{r2|A-Ib3rK6?Ee4sRucccnvC5F2Te9`@2e(e7olzf@q?NCTS*g z^RHXqpMLxLSKaSd%x9jB%NxcC9xOnJ0P!2U7BRx^PFz!PJRtn)SfyC|ZWOhYwZ6d4L@;Y5@;PN78oXJ#+9M7&APDbH%_C6)B219>sK*(_nL66BtU>b z2$;G2x0VE>*#u$hbxZ2s-)-5gk*B3LYEbS0!4OCd zTFFCXdy%6flI0=t_;>*!qVO0(f^;*_MR(z4b3u0LrJG$mwLuyj#=*h!|ElWxuV~}| zsf4#|!X|CuusK;L;Db8y;}0am9fVu^qB_$crnR%D4_i)_MHJjR(-@`ErH-CcrwsF! zKIP>9%(P6WIoot=ad$Gt2PrLNoQ?KvCWro2Js;E6J-rx%SxS0r?yzMoE0-*_TLtR#1vLhHhmYQ)E7 z5Dw#jXH%iSr(AkNI|M0Gf&{-vmg(Qd{{K5uyxPwRibF(PB1A+)26qr~MTSAz&tG;g z{Qm!>eRg4&K5O-UUsYeNsH#yhV#J7u7A&+MykM_V=3?@cNN!0ii#&e+Kd|MiO}7 zKwUFZVZ(`|JH}K+{$1{iP*XgBU9$hJ&eb ze}avTR|f9-h9MK4>r zS)wiJmd8zX&C0e{C!Thyvc&FVN zyIK2Cd!jvLZ`!^eo%U<&kJ^7{KX3mAfky}syAbb?@yHxxEAoKBjf^~lyo`K~@<(A% z1*lHc4CUoQ9mvIL$g+ zIy*SWJL{e6oTsJON#{l9KV8CI23$53<6U;R>~RUjKf8)tOI*LW*}Ijw)d-k)lWddA z`_rw_ZQAXz+wbmV_Z;_O_nqz+JzSKR?Lqda@Yv$n=lQkgPhOB$j(48-dhdPSKbb$r zdC~i^{k-|>seS9^`$M~+F?Jj5iRfgs2(3hCqf5|LXcM{>-G?4VZ$j^|>p|~9U$iCK zme>0!dI1eWQ*uX2R-1Ex_kP`{0(SC-8M%-GMb2os-RCtv;gzLr4Wy2j>P7I z_!J1a+mII0z$X%!rpc)}o=K+|C8 zN&&o}LePCI72MM;%Vr+5&jDa=lmr#ll(F@69*z$RP!Wo2?|{{IU@kL*XlZh0m_iU) zam8tN>PzeuAfr|qBlU`{jxTA%(DaFUn7iz#fHDswr>6o)1oa5pQ!F8OXoAm1uN0EH?d zzKT$F-^SABqGw45m`j|yx7!~)H zZ*O%XXE=;=0GplRj>z8*QLWba2yO(;<#vQmt?w{x-D5r*3JnJ%z$i{UHvvusb3^%%v=Z}&=AZ?^`hg7&Bi+}}gd{>{ zR0|r7&Sp?p<~-~CzbJXEaF;p_(+RhTaucl*LyouWB^amb<~GU4IF5NT^A+@=$D0Ya zQ>zuA1xR_xR-I~`GmH_=kMbPN3J1$^J}VuPZ)V>v*r21`#zgM3f$`*bJ7ZX&kCjjSV$4Uu3l+e<>95{%AS?k^VAFZk3sARCte6GR$;a&K_=xJ;Q=uQ zobTvNK&gu`1hNX#(s?B_py$aI}*M--Wl?mqsU1A^bUoCX)cN>l@yXa)9!VML~ zt#4C(TK1Bw?dv?Xi*~b};ibc25EoHablK1)qeLur6qw8^;$-yLjLvk+CkPlqO=YHL zG={R87h%=&L;lYOCQGyx3JQqa@2jRHR+b&|pVA!(Bm8K9T(qWKaMCq;mi>JK(mtgU2KNZJgWhn%=$&c5=HT zh)4+K6wWEY0O&4`q(DX_W9FgY#nZ_#t)lbMExOqO4<{gTCK$1`l90RZ$ltaP(;6OVjP(xFBj24e*-PZL)n7B3~)RRpQ z&FdyRSj-Dp6hBUKV8q#xplwBH4BEf;9UIU~FAgDTGGxe9GvV%{$b`HX5{VY~0QGni zOn^+{tZaffb>3^uB1-2XQucR>oTMeLFQIP-#x6CxG4`n0OScc>hGTzR3C*$3WYiq8rxv}QvnpEpjipV&(TII0Ot6FPdCODR(!8!7QA$*JQ6%T!WsdVb4W z8!VKD7Mtf5-T^+Ipalgpt4?D^8B3S~y4`D%R_`pW z?BH7L2n#xl_@h0ia>-$djP_a+MEITb=A8jTqoj8|kO zD=kV$h=^ZoOxY&b93I2&sO^JPC^z($4`Dn?HcmDm6J#CqF6>=Q?R#kI$%wNuFR&#N z?|rj4p%O3DB+RSr`MT@ed1nx#JCR?u$#Okdj?EQo8k*MRpuQ@z>$Ey}feyw6r0IQ~ zK~+)%s`c@LpeUGiNhP$)fwYris#uU2-K@FJdgGbi)1iD$D!XZbLO#ZD9MBt(4>FTf zJZ8t^DpAeKZtDp~rQ0pTx&yx_dX;P~B}yh_*=&E51G$n{Nxn+~Qn;kpq!e3bzjBod z!~|{IMd$53mF`>ZYdarPohFsEfb+OetNZ0v zyLWXO*0=p1Hn~k84Nk>oOJcbA6!B{oF``^{9_3FH3we%GShbZ(L?6Kj15zesjoc{V z4tbFB)(1i+W=r~Z268AmTxe2Uvcpm&sVb0WU+wX@1U!YJb6L`(j6KabDOe>~O8ajM z6qUF$acCk`B2Ewx1yU7$0P2nkl010Kp~q#Ie>Y7@qgGOnB7U_ue1bvuJ%4y_0axt^_Japfl z``Te|+<#2dX-Fk4;JjT38dYwk%XYiE*8{`NC*?HObbCL8K+d=Q2@nZ_Xi;>w1jEIq zh+8vU9)6UNr<HS&kEy!cB7R^qDFLTOKE$>%2Jsd-#BlRg_@ZrC=WdO+1-a zadws%5)C>-d&aL*^_Knws;y%+4ipNwZr2xGRQHs+{h_ymw5bN}a4g&l^1jMWQk8tA zd@$=11Lg$@ET3hte3!%bjr}+E^1bq(U;NQ}4g7rt9w0WpZq>AqIi;1)*jSCP_C)v; z1GENng(pcGLUH+rJ;f`j4YjPrVs-c_k{6$LoETSv1r&(D9H=w|X8fn~9#&c@5-if< zsNmE%e!vpfK7FNPuZyl^wnt0#RAv>>i#azPI?>={5LP4(^3@w%r$?CI1n zhwa$I;l+6OlRs#q?P-$1Zvw!$<~HaU5KYF)5m(HlJ{?iPZn5RFYo7z`Fy zB8rE)2z80pG`m@`7RA~K+m-$r^rf>HehwptEWXzW@E*j~Q zv8MUW8g8CG3~F7e5sbDIVnUfVupl(xY zMw6`gi9o`Yw=1Q_dXp`HxM04}jW!Onjm+!Ov7|f%W%{;23vMMoJ7GB#Mn!uG%ewNc zf($p&xs7!D>(+*rsg{<64G6hzT@qbt7giLDNKMIU?Heqa-2`ykW1FkVccemU4L1T! zpm-khw=uE{zdw+Q&25}NeU|+kLP0^#OsVY-4Q}S132v}AC8HQ-BGsQhzgdN&#ntEA zQvsq(qcJgJFEd`UtWX!#e2VJDKmvW;f;rxQ=j3k524@q6Spy+ZSR5Vz2_!OwN~1HF zEVj6W6o)ILU58Fx1`HZ9%9B^HRna!S&|W)H(a-Qjq-R~xONuuxRZ zFoEquL~HBgT;U(S7wcT1O`jbYPLLGMu&(C^QJkbz-FE#jFP31n+3xm-j$HY4 z&DwS9W;nqTfY_P6fDCt?`fM`1AB8AQ5p`6~SHjATIFc&Gxn64*Iqy26D>>3vskgf- zOrl+x%o7oXy3=?C9nJ4%Y$4aQ^==XYC!aT0r9{o6MODLZE{Ece&}`3bS|8|?=NgF` z`0-~LD8(0vsg#Pid;2$(f+T9C32+Z@aY_O~sz1IoV}X`4sRmc3j-%dwUQy=Qh$R(J zQtw^!JC0SNN!sZc_$0YyMv8dvLwyQwO<=%mc=-gCwR-$WcQySMA*{M5<38-hTuB}v z6~~mkV@Q0Ss;AiXoHEPV{{c|jsZZF|vEMi&AHqiv!TuKtKfX7caKOh-s6JnNtyhha zL?eUzc@?A)(Rh+7bw;U{j{iE=YyIe{I`ZJ}+Ke#gxa3PBRYa}3fi*ChA2Bm_b~1iV zsju6OioXp5-P^7;j_}FQ4fEF?iUad@Hl4O%bavc&p%^(67HuHQVBdtZO$3NsQI=zt zK)kpX)t%aHXEym# z&L6fI@cAS#)eF$ew+PhwH$$-3mD8j-Yc&>g85%KeXqbowO4V9;>}lJ@AY|)>ZM*g1 z6tsG`lCb3};Vq$Hrha$WH;^-eWJ~`(U&|tBdQ-jp>p_WTcb?;n<3n=iYv0k z*d_gZ6&D=t75_W>FoWA&2Tdtxea`TMo6cjOKhMtx{qu$BlIh9|uqp;*bfTk-TCA&A z1EA&DWJ=_}-rY1jXsRguo0Tm1cGdjh#jC;6+d7jvZV!80`{lm zcv#+&sGC1a)WB3VMXul$WeyiMBrltDDx3)<(GNfOj5vb}z>|iO^BUysW6y1NU!PGZ z1@*Pb!RKPu*WzJUz}BsQ5t~_rx)8lejMf=ylbg8H@89ewkS-n4H$L7Oz*fcF=iS*C ztaRJxD+O;x(<^ojtC}UM&@3<`mym4`Z7z1!Kz~w2Z}QJ~C~Rm0N$3b}Pf5?C>NHN> zC{ahg+6U%gSt_$}v)7bbq!bOx@*bx!lW5vDeRx=D+d-J#0F)2)bly7bG$h6`7L(nIels3Sc;`GX#n~6 zx{#esy^~SeM2!Y805?3u-$Wcq6};q>s{VUg86-luy*7NVWRh#!XzfRpIDM9=z+snv zSX8|{Q%3~)-`q;nY*@qq4)vkZ=Tf1Mo${1o5;8ec9dGM^ukEXHK5k5+CO<|R%t*{o zA!Q9OU7NO067unF+bPIY%Pj!Bnm?Q!!sTAfoL%ywV6EZGlWCqT$RzCSfi0Iad!3g< ze=lac>}A7mw)WG5M$Da-j6gb#perhi)$3b7>qr?7-;nwn1@Q>WvbCdkTsmZtsC(#% zNE`%3%6!E=4{P)+5m573)P*+(OQUmi%b_e_)h3A)Rf)Ov8w7d!i8xi$Ib!^4d_{ON z7VC!q%w)6_!RX3LOD4uWZ)2b9s;$cMw)lU$Zg#xZ0U`5&2v1RmC|QH7gy>Y-wyUl$ zp0D4#7KwKr3mNpyjbbH?!upD>VN^dkBAGx}R#sd-le053bB~7gr{aYF#Wc=6n z0}@(#_79#iK-72XGk(?jAY16S=l5a5d!Jl~@G1iJ?8H#;s4dgv_*&F=j(l@H(N+mg=y?ssKTw ze}Oo zSlehlxtnK|n{>pKB|e0+$bl=Z1G>fCv5No052j1jd||2utPZfP^&n0O+^Em6uBE34 ziDi`kvE~MWMfQEgfHbX)-M^$(Vf#pD@xrGKrDN_A~Z z{x&5N{TM8kjVRZ7pC8hPo)?Uwb=Kg!*HOY`n^M`@4c2UF)T03SRJ(D_!Y?p)Me;p( zh2MQiW1LTE#+PJ^r+&s`O~{(Mb{6+E-UkxAm;g62n`c$vO+^CZWoY6w!}nRopPK$6 z>G>{xOqDf%11?$e>zBhciCZs5QE;N+^NZ)2XFAau08D4&{|f+rx$$SpfMp`aaRf%z zt$X7~O*YF54TkenYp^N%ReJDbU;M5gB}*lRU?w9usOxDjFc%8m$zNtD>F=H~1*X|f z+N}%&`MV70&yJ~RT0*2Z!fLTu!^TZ!_;DyhZ<0sY9OBL!&PV~bxsa^rU+-8R^^KA< z_~QPs3gmVdI0;@hVfiOB%1GQsaeAL2^k?n1oRPk2ds5#E-}sZG*v6RK?swbT?d)yf z-P%cC_53ECusVYRNB>m!QdcK)GZ!xNxRqe0F{-{cw|p?dl?jBy!-f7-k>{fR*By00WY!5q6_ z!6oE5f}oLRW8xB$67C^Zj&nfs^B1#=X7~TDJTnA@NOqM`nfUb4G>#HOhl_@iuz_lk&-iDQ*w5xa|K4k#-vkKBF6Rf1Oiy z%1?YydNuKHiep; z)Bd~a%K1C;#+z}#&GN`M{Hm>ENB?tb37K`3V88VyFR>3@ck_)n+`}y&y}d}Le>(37gVnP6380)x$S@kQ zxe@tbU@=icvrK%sU=ws?=<1?k;c$J*zwC1`#q2Fv!}`7{e2Lo;Q9sY}S0Ck+1a?qy z4%b0P6VSlZd4f3AD#L-~YjW?5XpMKK=ajy7ETU8S~kiW9?DyPv&0&{f>2lt}fzGt+8tCI z)NDdhaBOZQiRE#W=TUT`n@0>GfM=W@uPl4rI-=n5jL%T%=sKmK<=f7i_DEKKm6?z>W{Q(n;H7 zdyhuA(g-)m=hZN_7=GB;{g$Lw`|HT8VKuICuu5eoi?=qQ*9+mfgn65q9g>Er{4(OC z+LwO0B{l)yc+-`aP337l``lC+S|}+umb?o#0t*V80FpzF0;;3GQUvIQAzk!MDI3x~ zo$&&_|GA;4%1?G&Z8+RV?H-1!YL$(gl~@VHay7 zpSMouNOqCf+KyE9*BRpDvBtC*WvjMtG{>bmqDbj65!9%%E#`}>KTB*Di7939NA!-< zMa{Hc)0@@Zyg!2@icb|%Sf@)*UippASk1Au*(Hdo8Y{TMHp&ny<)EpCyS<+f54mfH z*5bOkZwcM7$&y>W0q3TvbRN@ih`kb$m<>1fjPL2UvI2juBV40nvNE37h{M%KXJRkT zssxS@%DGPp>TP;(w=>3_`04!mF>lNI^Cg!n8>>~5;`ByS*qJJi$~?qr06o0nMto0C zd=y7~r@b^YAMbQ&s4Dbna|4YBp}}Lfq30}k8c3?&!!ud=1$IHO7Nw=rv2u7Fxy;tZ z&ShELbkYp%3Lw9Hy)qE`~XhOh6h&>P?#vp4{$JH2#*0Xw*Tgf`&kV zFD6_>(6YGYw=%)2NLT}W#VZ_#vDVVh+1=$FdE;}5w!rzWx&wb_^C-v@HriF%C)%+) zXsMrC*xt=|sO!v`a~~-!eR#jt^G1mO8 zt&?E^N)Wt7k?Q+#nZp=m(mF_Aa7T)~7XwfP)cAdH+&CQprLhH5$cc9)Zxp3=rs>5P zF}h{}0O^F`E^=kjLRk}s4*@cD#wJlZ9suQ}s1BI7c(VCe4q`{;bHT2bFPkG!5#$^$ z?EWH>e4`xkA`)vDr`CAMRwfnJ^+rq+%EvSo<2gM}1uhRfJ;vab_NcdAW!g0~8N%Y; z48=b2mJ%DrKDss_+b-Ff)h*KXrqKSQTvcrgL7<}22o%X^3fI72De1?2EQ=oiw5}|g zo7q#)E8vm#`0I&XRw`y1%i@*X#((iDY^=p$A^9RbPmWv+e}A{_Rz9%jMCk< zG$%b%RuryF=9U94h%Iir>j}%05RbQ9GzGW5vkwwbYr5Cp3_OH_Y(MDazMTcgq|JR9k5v;}~sy-aFSeb}7S78BtXarK0SqXHh*P zmjc@ST|7t}^Jf`Z)(>m2SF|{*VbBOr9AOr;sK3Og={M9!%P*vA=gyH(2%V#U=cgydriv*PduJ#L08CoT8YHHOth+CbwVj$!V6wVYhXbra)EfC6%>#) ztUUDZjABS*C|r>kDhS}(*mG88Y=FMzE`HCZ#yHogy&Nh4aU`ynXr2GQmbWsuSBg<MvSerUijY3kzewSMV)s#{#Fhld;$7MBMckv9a9drAF?ZH;<0Kq<_x)x1F${oprpN zyEUVvayPK@mb^{JI10>!tU%2Z_+jNxu&NWehZ^z9dFr{m1CUQbDC&B z0{}cA?2R9IpXWSdOug3p`>z}`klItGBwc@DY*_cgyP(%8+qw5J+KTf%c%pQmE!gd~ zvob%hkSkvoT$*vf9bR1fnZ~Noa5|TLI*%pl2Y{J(OgPLb`b)I*ijIo?5M|E)${mVs z?Gn6BX4ZEbSZq~$a9FjgOLzGmm88i(2sb4y`|&rw3UX+}+e>&y2YAxoF=Uh_7K?S&z1&pcca#V{dw&qey-Ry z)Bh@%Ov3>PfuBPXd(G@Fp?k=x*3M30j(z^~UpMw99)F=HY^gOAK0eW*6JATZcXyW+ z@uYa7Wu#ndS47(N3F#|f-t8cTw@QE|ZuO1yXpzz*kL?5wQ7a7Dl zG@$B_4UNP(PuAX~Z;=&uIskBd`-yiN(p{yu8?eq8=)H!o>D(7xc;Dp39N zmIv%|x*3>XoGY{dFU}INiBsMHy{nKK*9;&9ylBk;=hh$tj{tJdsilAvf^?Z12LQ!~ z(u;gq?gL%qIz>|g)JpZFrFp8Wp}uppwn-uZ0HC8RND&OA4l0~rVhK03h^RVGvW_eO zD%HRkAg0TTRZ(IGw`a$ZNb)t zQrm68MhDSZKwkm}5L6GJY=F-96jUse&cdAmEH7fyFONWce1h!$De>!99iJcxC`5Su zOyr8{LKZ|u8ohuGrv9_l?LE!lAu67@m3K&?L}q&eL$JpdhAU%QY5EsuZy zBYg)zlb$<&puM8MkwxK@UkoF45UX@(X=2j09CzTdC}ymr)29(zjit-%8vtQr8JclYLX_xE7l_HYm9U61s5-uGm`%BOza^Z5%5bdAe>(+MJm@V&lYki*1u z1WD@yfX2$D+vNr0og(7i#k0u<-i5Bo;?d_f!pIrsK=+Dx7;j!uXOO>n%*A7k3#HyE z-Vmk#W1=wU@lNsZI*S}k~VgSm9Ux3fq+6b581Ob?>< zq|`{u1I}X&>zJ{`0-HF4(>RAixQI(wVFPC`cyXZGJPJC_*_c@WU%tkA+w3vzsW%q= z9YCF74)KV8!V{O|P{WHX>SU)VRcTCT1~Qxt*#QP3w9G+d9ZQhq?DHH9MET-K1A@cZ zQqnRRHQmfO`<|}wSqquPOUok5MY_o9rM1j@)+W%V+h*Q2&bHC^vYnY7)vn5Jr`N{MO)uvenh0OubU*E>3ds%iJz zaR(nRTH(%sI#lq9o;)4<%2!x1?$i0V+%p%M6zp9YVev&M)dw{uTy$gLiis1xF(O$aSACBh>075WMae^o*T6Yjo5AI2ldd@Yd zgr+pN6=0F9V4RFznPvml+vT{6?)bq&&%N=%@BR&-cJ~u7&FGuJgeEeW5o5$hCohTf zXN6Uk!P4He&Cg$DR?O1&GFy9qC$_e+pH~G8UWFqWoKSWh~=U^)1eSj6a&w@+{}#W-v=J7n~BVIHlZh%DCf{ z^T3(L6K6UvoC@AJGoXo7a!v%sN8(5VNg^pEjbxB4lEb`I%m|(wjIf0ZnhY#k(Y$drWhD6JseKpzJEl0b`*`wWT^P4UZtun z=2I6LqnV+gMg7Rk?H8j;KbsFmMe|$GM@CigoH>Bcg?(}DSrJmJ-JoeC)N+(DwL1)$ z0E}NlT)p)ay-)!Q6=2%^(CA9FG+Fl~5v6P;>a^D|pTX`x$wHKH>@EmC6HBFLy~YVB z=oP795rKDa4Sj(H-@V&w*QP+DZlie8mn86UmJd0SnfP@Lm1DfHHuTS>V+qa8MCa@jixCIRo-xM*SOsimldf=cyTOC-!BF8+uMO2A=e9JV|x-cVfXOfWL>3gKk- z-(n$UMi4^`fdK-Qcwt>V#EJ-a$E%;F8%EvioE) z25T|DMSkV>9_GEA)Qg!u28>NK{w&f$uhiZ^aV$8uUQ(QB8syau08Slyx$z2j&XC>A z;Q(-f*`c2RCV|nws^2d;z?A+io4x$}3Y3o6`@?yF_}VLg(ZZmB0)`_X_c2FcIGGZ_ zIqfXjj+nIHwB!B^Hc8>6HLL60geFzhv%T6!XAc*j_Oi}+wKsC(xA7+L*qyqsZuV~9 z&-dcq-qMo1W{oZnjA6Lg#KqO!(_6h2HrVgJ=UyxN7n0?my#8XuW%uTOyPG~Nn=e~F zV6-cy9CXx4eQ-kd&al{1|Yg};KC3OCOFZurw05W!mZP%>yte@wyapPU}WGZ zds#&r&D4>G5FU_xkh`?fD=Va29Mdn}vZ}5p8d*R3cG?0EaP1%XO-UU7r;@8+Fj)@- z)}5M(B@((dBb8UMdQNZ9s7dp$u~FLkH`BXx|LPf&F3yZmH1q~2W&Ns`b#rj>@CgWs ze$5w5!j$>zyy~?wi?U$=9R1ZfPuyOsjoM(VEwm<;61vZ(g*x*K~K-HN>{VUUV%|&7M7FhOMt52fYMBnnkg1hm=c1> z!QkCHRgy#i<7zC<4hD~+AQi)okmg1nS!@d({O6ZP{Qh~b}d?BGL zQA_5|L!;@bwCpg_UYgcJP>mK+iSn()zRd-il5vWkq`I>k8__?PN_ST@YMitlT9w=L zY7kl5VGulWnVBTR7Z83*_)u9*`h4efS1A679OXn%S*gTl&(_VWsTZlwH{nt7YzcqokN9+w1O7xROPSJ?ACy#Z)urBH1*(X|M}G_glf~ z8Bnd))@={8qz-ALnM{TAlY7R@`G|(?I_^;=kJXwQ!k#!TtlHDKl4;cSvuQk7mG*Gs zP#=lV&|`0?WEVXOju(%#J$)~|9L=n2FO|j*Oq1Z#orQoET4rVdhrddlKps(>OKQF4 zz9Pok%ABRTr~5TTp_0p3^X@$0=e|@IuV_@OV~t2KF@|%EvPx1jZRPdlIPr76QfyY; z;&2V48b!w{1tmtq%PW=%&acdi6hO{#HO?irA6EHg?K-;(&lLMWQHIQ=*|C7+#ds0! z<-bzbRD%@3%qw9ntuy0VBAE=(#aN2GyvA^DS3N;x_;aCO2x~@GP%g720ch5zKvdgQ zjPQ{Zq5Am9Wi9a%z(C3_WkW!crkGfw%f+8Rs&p(k#$D;O22}T_gC?icC8Og!dQYh8 zT0%>FfRtI^6l}NXiCi|D^D|x-E7P?om^Hc-1^25D!h03XNJ!;^fncDC;(0$b0FdmV zh~!$0@lZTYyO>!`FzA+f6&pM7c)Z&f8zKPG)yIL;qz-G(^h;q1)YSH(p zS_`5|>p7Mqc>vhV#i(=Qw%8Fbwi(mUUrytDV9S$z*dr2UK6_^%rO zoT{{mCK_mf0VWghX*2Z^14|_qLf}uh}3C-b9Afrp%_ZI z29!l5SD?oSdW}e{iqjOBfYC-$jnv4ck#9KX#Xv<*$X;UHjC}xishKN`ZZNQLBlOS} z8grm6m-WvTqEQ4AcO7a@wYiXv`B+@*2NX5T`2HB+6|=b%{Jt93VSXW#`La}0VXQg? zS7!t=8u@(}w8YYSG5bbB5DBg&HXdBRfNNCs+gJjDmIdVl<6^ip!kV+h_F&W)Qyn~{_`N0DRGM;H#U zkI6!VVvs5y6IBDYvR=lDkaaV!7ZhIELy~=C?cn&TgNjgsZV^6s9>BryOdn3ZAleYz z?Ma8ujy-j_Cq;@$yJ2{q+nn2fcNCZra8yL8z0ijJhU)@7kH8Pq=a#{KUw{8Bj0vfH&j315wd!GZVFyzNzyOK;r>RIf{E)cQ3hJnyj@ z1<_Idd#7ab@*nZFKSYX&vJ5V%29swmJR9jtX{v)R^tn3=;QOI_e6ysj8^jres{V5$ zmg@KP)AePS6&NOlXUr-J(LHwV-Fs%IVeaVZH&4hf{kG?g zaE6=5Iy--hwubQz?t6!=;2#1G9#R9}SOYR)p~d0#l|R*qM0=VSvr)d6^j z#nsQeBt`r#E)B+PPZ%Hzd>k>%f!Rqn{SC~HzNo(UZg3Bg)2CSv>a()TPo(d|#BriI zk>Q<6Q~?S<^}wQK*)&szfGG^GV6SqS(miSj$1_V4-JygZFk&JTDBu9g;&pezTb1~w zRg(1LBma?3QsAIMiFU3>IYo&bMx%*Rwt0%X&3v)wu+e7GywR<5Eg%E z;FpEXcnCBhCflSK15-PMq@h%FRyo&=Q4#W3VdSTpF=Fh$bZ!+Zo1z2-zjeYqy-OKx zVpe-FQhlz|m7_dja;81zBG_8ZPRf1@JPl-0R=NYR#;yjUD!@$T5H{zL6msc5P^zOn zo%2D<}7wvH&ueUl#E^mJ@GvO^; zFmcP+H|Z-MmJLW!*WA-|$apIxEv?m&4e?ba^+*tqQTY8DSx4AfFvs0l1)E#!89a~c z2wMtg+oVzq+ZZX+Ll)IEPYyxRKS6k#K^ZVB{Cp`9Iol9M{A|#g#K8@f>lO(%;35`NO`vWHTZEe4dU;O_88xB4 zu&k$7XIRs|Ms-#e#mF~YU#mYqLm=0*r@uZy;3k{N%7M4q%&xa|qG6y(Jp?2M4OA2O zGVK2j4XyMQlpSIxJ^n{Wj zA0?@{0c{7~@FDhR@$BXT@#~^50IABOq~_hwjR8R$Io-}G{3`pe_YF4;hVUl-C~`sbzOc-!)uHqNU+SAh#`{J2V)CI^VNc}9N<6Ye zrZ+k?Q{J7dB$e~c@&^Y$X`(GZpg@1W=1CqyrQ954ctt6iyqhC0K>z>^4k-n(SX=t;rI9|Z7w!Yc=rU|{< z#YC!v$CjOci2x17d-(bRBO-}i==WyqBnfl$MMMbq&2~|HSp>6T5Jvo*$^iR^ip>JI zzoso}mWbNQX$^ZOrD~40fFF?T6|hAjah6xUsP~9fl4{afvCPBcylWvaDai5oi?SV< zMWIIZx{X19XFGJ~1ZZ&MLTGv0Gz|eLmP+(OIZMe_2sPevJ-iFmf$=tKZl=~#pS%gN zi0AUmC-A|Y$~~lv02>ltZSWl_L(O|0A%NL0#5Z23_65MQ4d=1uRWslWlEDCnR}fKg zTTxK~{@d^$wm*9DrIw~a`ZNhKGYWbc*^jUijERVC3T{8-)siEhe1>;urH=DH`8f|9 z+;wc&N@7-yOO`A0+<+id!}w&mT5F7V)&*{oQV{8GNCu0kr@b4z*7d&&_hLS@_1eNb z-VxPhlhg|;ke+rlj4piNk}_fs87?8U;U2E@J6evf5!;{6hD?!o?-Ae0jDWu0Hd{F5 zupeE2Iip=tyqljSI-{R_i0-)6^_xRo$cm!6xXH1q`-{AMO_v3&!ImRLQ9#UAK#PPd z@y^6ipakU;U!-WfIoB0 zg1#6@`dQwP@-ketjD*X{P3-9`DyK$y`=k*w<^0H)*-DhcsNEE8i9=nij+j-MMx!{s zqz*kwr;W;2c-?#O@uT-W@{>R+`o!;W_q`ICVA319h;!A+lZ@NxKAFBu_f+_0Tlsj8 zciIO>*u~Q0$%NB45-f1iv{v1SfN5TRnA`(~QuX{Z&S{2QK6!B}u{0xbm6129WJJtj zP&CXW$h^G&LzagqFQQ44he}5^%$65A5;VE_8P+}{8^zH%Lecdq?qOE7BW&xgGUXTD z)~t?Dj`)zUP`lUTQ_+_9Auw=UGb%kKJ`5*)!krxd+0eb_OZBsu`&juz-Y

R!~55 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 literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Light.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Light.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..037b8fe7499e03104819fa15957bbc7a2da6354a GIT binary patch literal 31124 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

FEWXOskS%Nd{G@*pzIp$1g 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
N1ab^wK^j-q^-V*{w$B^l!O3v*z0a|%}o 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 I%?SVi076>*wEzGB literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Medium.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4be788fbe7a625228ae4f4b01d70922351079714 GIT binary patch literal 35000 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ˡ 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 literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Regular.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..702b7098f6b78be88337a7079e20a8e7e5559540 GIT binary patch literal 34528 zcmV)0K+eB+Pew8T0RR910EXZI4*&oF0w`<%0EU170RR9100000000000000000000 z0000#Mn+Uk92zzogX~lstu6*&0El)G2nvJC6oT6v3yTN<0X7081C|T~AO(>N2doEM z<>_$;-L{>C6b#avRdo{P%nwka=ykt9=dGB(e_ zbsKaHhk&V?T2=p`NQ9Y*ObnjOSR1-yGMVn2muboC9SsIDal?qsMiU!R3hJIkeiTvY zNy3oUur=Xm8i@)l>%8h@*bw7hcF%NAxEDP&9)0kw}9| zsvhn?)o!?`-{7v^WeTn#R8D06Gw5Wb6Q88Gww6evSe5^zlA%MihrkA01`NrxY&mk} z>3)eG#{Pe^d%uX|RYV&J8f4Wbp0rtV$)b&F$uw$%cm98xv%k+~JTjSy43iLs;1U94 z8cf~Fw=jp%KF zghZKyaZ>3CHWun(1=w-gXP#n!(L`x7=l1NxBmxNK*Gl~||L>+hSN0~ZF#W7KXUwFU z_kt9aG)tRGpk+{*J^w(KUWm~$zl5G+0T)XA>Q)|F%7Dk~4{tYQV^1X)10Nz7lecSaUfxMoCp zg46S+#DOX>QS038(y>rYV zX9CN#mSS?h1wmvM$Th&fK)~+zcm9urxn24iL57``fqB-r4DuL+fq5P*@gdcTxHWYS zY3B(nvyWPIPqw=r&zh9HNW_iJkfLBbXfXi+0{>5E*^Z8)5c{P%;Oed@Q`B6QGhgy* zH1gUbX~D1zV`+(O2asOB>1ljuAE7ryTwfRDqR&fHrm54kDcUOV{QuH_UCU_p$g}+9 zKDLvW^f&2t*9su-cj(GPKY-Gm(UXquo2Ose=q|bR>#>sPjoVnicl7<&3QA|KplB&g zE=}n#MlZcW#{dO&LJ~qlU=TJ6pb1A|Fo1;N{Jbr#(*7>jNb;Z-0Ky3}StIEfqucBV z)$jlAuj;R_vbxmWmfEszMrK(9(s*FCP@k%+tGYE(wCU_w7IMIRe2*<;}d!6ke z@3JE+EJlB7)_sJPd%m)i7PlH#$lT;Z%;w@ z@j8&BNC_ci5@hUiyS?>IBGld6QU>Q8We^b&5eXp#Dem5%L-)7~v2GJuxR4W7b)qVw z)>^S*tTDzIW31Kx|7*>ET^7XBU_tcRDUyEslT(f{8_r{5PDO$C390TF)9T&QOu6fy z%a$l2V2dbVfuU$TM(05E7+jP44(0Ry=6i0a7;p1b42d-a(JI;e&nOQ<(^>Y~@*Khs z&@#Ewef&Qb0ety<#S;L&KI1r}1($71L{_}60Ch^#Ev{JB9u0Al7)7))I{=?iqifhfo&?TRkZu{-+c9$S@lDnBhh zq1XLK*dmT%I@@U1?EN)Z^2+8y6~3GYmE8L{4q>g>SBurl}iSXddN? zcKx@wxL4;Gk0Yje-y{B)^R;#m3{H?O@=GXec8-$h(ceo zmmA$i#t`P#-|_Rk3w_*5JJYe=|61#^UfW?Qm*ZY|$XhRpc6jhh0@x7zL11OqI-d;6 zC*PX`76Rczl2)?+{aCDbGb#WFXVq+U(M1OY@MtJdUxlCnZ9#_ zbvQlvhTyp1GTR-%bRZiXA50NtznUJ*q8bADQF{eZCW_@L&&((1j@dUS7W<01SJts8 z7xU7#+*^Krdn#Ki?_NP#&h^!19^6&^kz+`xb0mi4wt{m(ZGGLJt_L?|S9h1(O~pJt zaGwwQ4!Fh2fTl~>@@wGV5BK+ihCu%b**Dk?wGGV;4(*{d%AtcQMmePXA7Qbno6&>B z8|+~rsKS4v-qUBEiLx8Vc|R-J&v*DWzvs_tpaI$vJs<6Z4nt$m6f|T~5jqK-Vu$6R zuVbi~-I&*y>45cEQ~stV_#DKp#13Jf;FLHWF7j={B%ULZ<>0NNSwoXIWz&EyDFxl@ zHX{RQTc;?L4-*lk3{0I-@v0@bOs6+Pv{;p8sC9|yj%<(;K~hP^zYj`4#UhXzm`YaB zRcAG9Eo`0C!{Tm|Z1TEAw53=f-OH@DnKqCK(zo z4Q_d-Y?`vAOQHR?MFc|ALzxkch%UodVg@KVaB^fIIgN@!%i)LxkENc2pl}tOo6pnm zS__VWM48JLEywenl^kuTVad`4H+*(lFA1U^IOUcdW~C+T&vgy*x92`IJx? zU&EQMjd4}k3*Pn#l=(8 zTH~6fST=JxTFWIb&tL`M3fTkXk?hgPG5E1s@(Yz04>p^%+3W<$*lEGyft*0u zzz|?4Fbv2`89g=OZoMF*=apGv<4Gm5n)MCnTt=7ETF4l}9;z6oh^GulowR_UCa3}H ztWDCkxCOuznNc??c1|v@vlntQaE<&-61av>Yqvm`1&a!GRZ&^dq~Zh#*zx9_!(7J9 zcGCjRN2#0bZa8|iwACRKDPz_R;<+WZBB5EdKkbGh+_@}}E_*Q=AT*3JCuTD@yV68Q z)6T3a3m&fTB2S8()ljcZvFu|xS+d#1x-Q;zK8DfBR6J}V-eU7I(h{eaC=j(wFoUA| zronNsd|HjjBq2%=dwiqfSrVy|K~APrz;wt=iEO6D@L7u3!}_k6h*e&BJ_S6i5U7|; zlEYaku}ZbZlBe4gGa}{j+ZJ${eC%@K=2RT5eSuico?ken#Zq0G&Nb7*IoNEx1=wO0 zONEx3%kf)DwW`9JHtR7qxa8H@)MHDP$Kw=4ykg>>dWyqakg-<0ze;) zNgP9&O+{%n1hRzk#7iWSI030nWCLc?E!MJ3ZlGAt?Pv<&{vJEZ$t%yd0N;oymAv5w zilZEhTgA(Nh16hrE`y6%!XgMGA_zMu7A6g<4r&f+4eE&085B>^RUuKTyPlpB$qG)9 z6u17c2!O$mp|HM?(U36!;{YZAOaj;mU>ATifT@t(0QQ7U1K0;(f7pD`!LUWxp`hCU z945*ZIz{A_N`8W$x{UuzC$4d=>s;>!H@02#PyWTfS>XxK0%Li>OJ4EX+<__Xaj!Rf zi?@24w`)~v`lgb~f%$<2frWuZ+72wyt}3c(Pqn~0jsqJw^^k}CigV6;giBp{!>vwiO(Hf@Kv2Q@i;L)%7(HmcTwyEvtyX8PZeLXHOE%h|%WJi%&z1&{ zZ?!_@8-pa!GD+JEr`9_ow3;Lb4q_-68^}Q+BoIGQt^0?k7{}u0y#uuc^AAxS92E0W znk-4;KvLbCE-;fW3z_ZOVqe<#mupi7h1Dsy-kr3lpmnZ|9tTN|sfAYf9u*+f-#ssmC)ExQe9t2?-g(#3|GPfkdHv zb}v`tB_K(pi2u$^%r>@MCa2gcW=+_7v@gfVbK6vJOSJ;x<&f<(89YstTq5HJQ1RCc zqc7cvT59h0R@~jc-Pdyu_PnTB>0xx+H4&d%?HBupFQxrTRbOZDi=Oxcf8$^G-pG?@ zR8DF zgAPCmfH*`Dl}>5_48dbyeC@sRn43hKD&3;m689)cLD0)VW{U+AqtyASrg6X|gQA!O zW|LDXn1X>30In!T5?t#T9-)gemZ?}4xNJliBuuIgM0u|;Ys%9rI#8-7N-r_5zKUIEzYPqv9D-s2RvP)NHH;jM?aQ;Y*}7a6H=tZ2`MtYD3g>dn)q6 z9O7Qx!iFa&sm3+A3*e~>(>=jc7Ed3v3AIZtnhw*Q4uV<+V?xSI;HvZ7rv3yo>bgYZ`S6>GZ4pmwNx}m;0gK5@saUl20UdDag%is14d;bA)_fd&JT8th zR!)A|{2`2?bV;LfrT*R8&P|=W;%$_GO_ViVufSc2BU^Fe zUyMqWjOirlq^PF~a10wD86z3To4`zx>?Fw=u|#q^>OO*;t1O#XcZbgreTBg{Np7&g zQ#`|Syx_d_6pM0INhwLlL3yR)1c;+^e4HeT;xTnYwPxpRcPvN0hjn-EfEFA%{~x!JHBQQqJ@ z9N-kjOyG)|_9gY&D^jU!N>C82zMMl2j^P9*QRo~2S;1W)bE+W%wN!tjYM3ZLCQXv2 z2vO}~lQ`-PV8*aofrG(lNSJSu8*B{E%X$jSvF0Vm2@prab4z3nB&*v&C|YQ0H!FrD zgAC$j55CD&aFc1FdV5gp@(k=b%q#cG3*{{h zlc*JbQM#KGTS5cJ01v+{(5qDs!CJ9UA029-gFwj(aVFWtR)U;C=L!tCDWJgaeDP(h+ zlJqn5p#;04;xI!H5|Rcru;t)rq>@2kuq-o&Oe~-G)E4eRgh6?lYMN;c`fC_uh~fSt zEsfT+s}pI;)GE7^J?zcHgZsK{e{=_spYEoE4VoDo8h%@~&gON#dKYSU@yfrd^WIA9 z1LT8zh!67-J{H`r(H-2$UEIw*!M%>UkNbIm2d4;;&xw3q_yS+#OME%_jz-_(2lj{4 z`q3&sPJY5q`58aw7xJrGexvd`$REI;_zQmv{ywdL@^9zAMg8jou+qR}5Q7=QP=?v{ zYMy|n_MNu(I{X`T-#TCaq_=sNn@<+7kVOa)v7H_4WLN2K^mIDYW5AfV=+BCqO&$9- zxVYRokjCO&33jccL_61B9>H#twt;)>>>RfxtJk&0Hl_ks3kvxJtOzkoq)oZ(9!thBiUwp76Cho`J46N3!W@=x5(1Lon=o@8V2y*u6T@+O z!c#&qWr|cXA8p%^hVH@MSg{lYr$CNER7123959@EO=#&*5P)L7!Eo9DZX`S!9xEOP zj)&`%0okRBVURSzcA~TB77-x#JlG2lU`9ftB7w-XCNx^f-+;B-Z#Q|V67)LjJ zq{^d}AFD!$Xkdj_PN*?xaRvz{&)=3pOvR^_AG7XiWgXrMipmB=Bc-DVEes?K!%>f@ zOwRT!w^_I8BD-nH$OG%U!$ybH{F#*{jR!d8f>N4AisG~rMUhBo3Z60XJ?$Kj$i}LH z0JUHwZn)9O2biS--e6Q@b75EQtPoOdu{^JiK_)v5QZN}=oJQS8vb(|rVb0;n5RjTI z3b&T45ab4|wGhS)SD0luV)0U`PSN7-s4vAP_OAX_>SU zFbVgzvn3I#*lpy

j*hsD)%py%9On-FR1;K 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 literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-SemiBold-Italic.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-SemiBold-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ad1b2411420719afd92c2c9188afe9b6253d818f GIT binary patch literal 36752 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 IS~vj!02X#D(f|Me literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-SemiBold.woff2 b/packages/snaps-storybook/src/assets/fonts/Euclid-Circular-B-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7db0055e61620660632572ca51174ec0e9029e23 GIT binary patch literal 34948 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 YSRmno{}@uzOM%N&CP+pp)@cU-0PL|6c>n+a literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/IBM-Plex-Mono-Regular.woff2 b/packages/snaps-storybook/src/assets/fonts/IBM-Plex-Mono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4297ee3a469ca5e69beade2d82613e7cf1dd3f6e GIT binary patch literal 45640 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�Uw}nv;@`&0mLyo z&eHf}#2;Z26iz{4XAYeB?$~4yfnS`PCbL2wAnSiy;;)0uWMr|2{RYf*{ zwOJD34RFijy@kPm`DjFudJzj_n+=^sfewJKobpPzDs7|(#i8_TRZpI_8Yeh zwEj>#D_9X|VEDz~gFPm+7|Ny_jf9@bijDFb9s?A{2?PQF-`;m&l(Z>=n`i;IHNq6o zNKt(<#H4)qLNaM#X~G1z=hU-+sCD63vBq&UQrkz|DwCU4d>|f{TmhwykbEawl{;=e ztKhEYE6bz&3d-x{7jDCb5Sybgl|PssB6$Pk_;`k(q?kw9JB1+Z?@K+6ZTqI@u_<46 zu;4X`GoST2WVk?Pp72zltWs!2!8E8%e}m{;K)}cF7>W(T@ryowZ`1X{FPxvYQKYB2!aCl$qhOgtjw4vx5DTLSJ)!e zV?Y?=$KGztFPiX$m?)WTA>CZS`6ZHgGS5&@P_7=3HU(T7O#Q|qRQuka>R4sjR zy5+q+>oa(l(I_&L=20~BS^m+8YbV&qqvd>0uDeDSnrSR7EFreImC4>sUG{lv$=eUB zSUK%j1aNNih-`NVcMK7B9He;m@(k%k6%RaBbAv2RFBqyS4=8_60G%dQv>FOU z^#TP#{-G|74#A@%X7af;yTS|~{uw!&g{+;h##L~$Al59Ck~@v{Wk_T1C{%>b@3JqF z%8umFmab^;BZs~GRrunIuNMlTgwa=qW0l=TgI_VydM8VRskjG10Vrv-3tW86q+sh* zhI`X=bEL(Cd+zIjsy9oTtQM7O-FYp`mF{Z?3KV9}ykM;Zq&TrI*C=q}4uK4N{-6Xf z!;*(4P0H7kKko}_F}+at`}gz5$`u~tv3?8}CSZ9sJ$SM32fmomf&1=0EI$Z=MnqUQ_;U`5Fkq;ldV$+Nx5&RESWZ_)a3e*3|VxJpxYrrKmrhCxyqA4C(XwVKr<`|2U;Nqm$91GEr@Ss&_+_r zEcYBS-jx(Zfw3rz1p`7`@SJ-IhD#0;SSb3w3fdq+8Fre3U z2*CMRC{+;cuD@O`_Vf^da-twK0d;Zvo@{voa7G2;%Q>z#x2ip%)yi6cWH4hB(ZbXe zt+srN`ngP!wvqH9)Pf^j;&V|#N61x|CbQ$4U}swL27Dc<(^giURoD;5DJxGyagZWS zLT`{J3yp}k-w;C7p_1@mM`uQy2SrbXqAiun4Ku)=$6Y8#*_I$%f?K#^c_4C}K5LIu z=m2tyE`o@IXSi^cTL!5EhiwFH2kR2VcLRB+GhPYn{ne>2coUt|4K4XTs#&|w`$ih*-tiN zLei6rN=RgiODJ!|T}%~ zxW@INYgOg0Tt3RsQ^ugZqms895OfBLqM2ul*1}`T zyAaSPiNcH|1NNi<0s+y2&7-}e7?K9>-QbZn4g%Rxkypcs3e`y!LIfm<;QI`@nxwL8 z@G?~yvcefA0ElEllN5RK#*)8^c3)Wns396y`BN$kN(4eZxK5EiOyEYtfg|q~-~qU!tG-b1%s6drhA_oD^Hst~amoUO~MvV^M3S1tVW#+J^Osd%E%q zy2w-_6b+fFrx6>qiXdybi{E<4D_YIJqCmlFG)Jb8j?CaB0|O{1V3J4;<>p23u{W#{ z5@#W8)HAWO8>43TZ*H{Wg#$%!)XMu*R$bX{B%G49I4f+!PtfYFVFFS3S(e&de;XT& zzA=@B7beJ^uisbIOgE|=lw*$Uba9M0)G?>iTb$q3Lgs_3NdGE}K%248R0lu)AGJ=u zXu>D2Gy;zMF4SyP>M8aaO>&fhyI!=A;|0ZI7evi8m7$HT1GFfIjKLwKfZJ^*gDDht&=WrWR;$*S>=Vh6d+p`|o zRh5lXE49^T-bCS(agpAgmv2u#=kr_A>g{~Gb_;XO)>7YyN_Fw6FDM0s|4Z%qyO3xk zXuT=EhX4sBg2Ln%kR%ap_Xdyu7dw6FPxDSxC^u!!c+aDevy3xJdRR&6rjzR83&c9q zAw6h__-zcIqmmP$68~p`}~!Js#!(*r_DlOgauJSz9|^J=4kO)tgsyJn+v6 z$DhbAY|V2^WG*KpX1KYFQH?&&CD&_)0#9e~8p%#9_DD*t1zvF!-)V&H+(dMv%FYG_ z9l&-jdKh`923u0<;Jj3?@8b~wmzK%%=TnLw=Cdq@`YV)7Xb`erbQSY1;4|}qx(iB@ zO0>d!9eU*CW0QJI?lFwW(($uXNbGPVpz?U|$}jRZYs7~RYzLL(DM8$et)TICMN)`j zV)U{06DL54UJkG%Sim=qhq|c|qk~tz1m4zebvUy|;L)fMWS?)&B2q+E2yN9M3Fw4EEufHs0?+m)Bjsu!{;$=#|;tV+*g1!^=N)Z}FfXe41H z%XcNGq(=_(i6hYphE`1{S7t0#G^8o{Ko_(<+0Qukh~Skyiz!b4VZz{YnuD%~_mF1n zaN>i6An0)d$mLblR-adE5tLzlqB>bW6%k4KALZTG_jz$A3aeMxrdb)_&j0BQp%J|j zhIv*yE;At$1anoxru|+PC_abFohWG)_{}Z;5Zs!j-v7#8GBv}jEVP%cd*g}EyYPNW z%Y_eR)&e@~YqT2?-H0Hq+UY?ngch=?gKe*f1RqOUEfaT^7Vyc-Vzad1fe{i6r4!zz zgQ*jZGdpNvTX$|TOABs5;h>?@lL5k6!sAU|&5fW0gvi%ic!tnoZgFb*F+!ldu~+Ms zN0W(^UXUZTdKpJ=W`Z5MZQd%3ird+VKLX&J*YAU^ezvSjt?(w##DWyy@@pK3k@_Ji zo*0E*#Hm{2Q_uA#RifTpCE~>z{jp+N+IaK6V0gP#FH!dpFr6Yp&{>;uGxa?B7D31I zKtS}xQA4;_?<5E0*O$%IhqYb^rL$b=9!_mbP&T&qwFQ~YqazV4i>Cf)F{?OyBBNm( zNXU(pa7HHYbq$L-wIu3q!IFwUk5PNpBnA9@qP;ne0Qsi{jee$my}GtG(6Ck4r4w*k z#EQ^CY2S2$PCFB3>Qm8Awpo#g#BGaH($54Sw0N@8+^!JryCR!bT0A-6UAMp(tzVbV z>G~OtTcqJ?3j1Yqh&eSumr{~#jJeD;4mZE-f5ATD|OQ#AKgqKQ|>x&&-de8BCz-fy)#?D|X$=1(A@XLbpKlB&f|{R27E~lLYGT zmbk>kx`Y)Ir69177Eep7oSC&*n;>Hc+bLeD`}=a4MG9)R=hc?=kV^{SR^xCb3|!~? z6&jjSaV`c??sKX$VjaGmHY=e-igGS88pT6JVGX+?ppo;?C} zmEmjTZWO~6E4Qx50fN`Ed1z>I(g;Q|emr&hQjc_Pa=Px?S@da`%$`79RU9lFdPRsc z&R|8J^-*Vze&L}&WnO#lkJ21^&PKI!w08e`ZK+q!D89zn+V!i^*TH=~g`*mu&V$NP z2-R_x6;J6ddh0tam0^Xc&Yw@QN=)@s+rgyvH5KrDZQ|v-)k8E>|Hl!4q#4p~z|?;j zskWAn@;K4zcU-j()iVkZi+us;`^G1Cg!h(vUJesVU23E0MLu=59q`o!yBsMT3ogh- zry{YV29$XAOmt227m6>g#%o-3W1YK419)N`I_$c2?h@dJPEALxZ)rnRx6y}9bF02{ zx%iYP&(t+z2Ulds)RO8_vY76~ae-+r5aW_ELy-kR?iSG`7Vd<3mj@TLu=quLQPFFl zPA^(5z^g*w)Y($^m#1&_U(;U%GXmq7n4l`8v;p(xaO1AnQ$hzc`k9xHJ8p}$br;S8yS%xwMZQU>FiqB^WKY4 zN#rSS^LgwXQZ<{cZXE-7OqzXfW~+qfWtFSfr!qfB_^L$tOPTQ^kOk}nAPD8|M0Kgb zEi9*K;qCrCuwX*5fCUTb$|=aI@An%xK|^Z|t(lkMb`^_NSeT;7WqPgPWMliLeyt*T z8z1s>DsR(pDx_GZsO2s%54gM*aC_g3oT|7*)2l6RlcsVMoU+p}tGDD}+vo6dc$Z^!kV1>pDjOL8jNAnpj8?x|f@AAj}`7ocGW~^TKNR?af z9}iv|Vd~|EXw{A*uzHR}Gm76K5~GYh%+#l%k4zS=mjMfGZ%|w>c)?TTO#f9f^_zS_ zAV;387n3LN1Y5}E3FK~9&zmfspP!$E6R-boStQ|_%PsY$I}sz9aYQKR{toC z3C8G?0RgcRSBP2?Jabn3jTC%!$v$Q+8G)(x{Mi;*ZI(C1;MMfIR9&Xv54+t}rrQPT zA$LdtVDGH?&gGk&G$#1Nh^IdAaOP?r4H50I!-dw^MdRP974gJM;Pazm5y7{r@cH#2dEFqnR(K1nY> z|CYen-{m_8l&2jB^|jWD^0+mK^8(i=fuh$euMpqLfj~+<=~;*b*6f)Aq2;x zwY%pqoJOF)zEOvJ$cA8Y&(I{O4IH^R%}BaXH!t7y4Fz-wneT@&Mh7T^T=Fn5rd780 zN(n8FDK=v)OPU8ydN$zTD|>Qi;M9d#p@Ne^E(GYI(VpQ9jn3Y4j@#Q9qtP@Po?u3Z z!buQC69oVJe+DyzW7|&mafrG-KT}22vr1$T9oD6L=_h-g(@hNz~PgLJZjEFAlfFmph*V4U=V`T%SfTH5pSRqj2mi0pT`2q%hR_ zTpucQ#SdiRCV7-Il5!{pq$J&EfgD@tP;GYA^15+hDE2O0xdg?F1Z6>xNz8I?XfJZLmI z)t!_#0dWy$7@39k3rqH*bJzUuNNV=>**>O1M_vX2Qo|g?{05ZeYiz z!eCiQm$VRWIs{Sd;~>Q9pSp?vOE2ph$e9D0)TX>|KNEfKSw7 z1R8%bf%C9|IB-ES$-0^>WQCLJ)iHgfm7ymth`)=7xqJ@Sg)!tYTK#C|mD<2rOs~Yx zy=UgTFTAf_;Eoy@lmC)71KH0Yk*mmIGFruKB}>xY`l&wN5(WdKLCjQ}!1XHMUwrQ@ z{Cy*7k=uO>+Ea>6)PexjWu^cZ^4&c8vA^A1rDx$s)J8wi9_`U?UK>}b#59F9o1!1~ zk9D6vB4-tiEJYby)8lTwo@-HS!g^~vS)FxFaQQIv`i?I-1|EMI%(s`np>^VMJP*wJaWKLZUV|4d~&< z^qVieo}+cP2wW*d5)Av5yBc@^hSMhXFKr zx&xm*XTvABzu$*?Q9;GmS;Q>so4gbkQwlLA!sWu089E3cxO13NgM$PFcZ!M%AA#B< zfNX{+29g^QMVCf*vU+P?WH-Y(BqGvx$_jk4jTTq(kQy54gW&~%&)-e(4b|t-+Il!x0tMnZ3$^LH{^|8Vl&ZIy& zblo)QU)6=QCS9@PSYXo52xvc#@;@+gSs9%$YErtNK_186s37i@ncE|*t3^;C+-sDhqQCnF6nnluAirO7v|lqOyfeke6YM{yQFG2s8m9Ip zcn$*53nS;%4~#HHkoZqGs2=3ES)$Mm@+v`vhn7?B__$6c{P(Gla9b-bi9Pp9bQP}Q znqHHzQXi?h-T5*KL_@k3g>G(L8-=bQ_vT@6IY_Cy-RJ_^uSDyx4%4E|-A32Sr`(h) zS13TqnZ1o+DZ5U0H_Z7)S^O64V7kve5$=V7t)kYLH1F^U{z=%0^wSxpBTf^8--a& zEOVglT~O7+-}~z`wpU)5bPqKMVG7kq(pOryLH?xY(6Vnah?-gKYk0R5=AbiZm3kyQ z2i-&#x>gu{SU13gk4nNpo0*Y02q?3nLTw~dH`V8wjB<&T5OHBPorgopq$ilKjlooP z3$Il2(q|;53Mrqd4vd=cL5UNuOz@nS=jc4(l-OtAL(!pX0j;AFVDhV!fS>3PeB-oF z;@dbz3W?B&rR0a~=ral7%A!Icx}7sE_w}oB(m0;W#HY9U=?2sHhs`OMUhfLAJ6dAk zgd;Ao=-?Vp!d*kTWMZVj`XGd9QxhB9MEgdKfyczs*iLk&FgDl>3bvxx)%5D(>Qw2H zF~9mCwd`z)#z42=x{~E>BoEo_R5T@j2W;=s7KD9D$L7n&Q+CFfXp9IjIw#4Oam<*#r&E5@gUl{H`H-}133!UOLK=~L1u9*1MY{o$ zKF0SHAx)k!CP&@^#oH)bkt3>I*5Z*-6Ij0I=LhJ&(!vO~2jn&=V^CZhQ(l2y65vcxXQqyQ3dtU8pk7uGgqrA3)-84eOi` z(1god=T_UID8h8}?KxCwGi1dy?8Av09}$9LStM9tjU6_{-pFx4v6GI*xu|i`b@$wg zu6XRpo5|}Y#+H9~@4D_6-;pFwN__~IlzkgYojT}ZF-{u@E@vJ>_(fF2NFubwI=gI% z40#SYt~5@ESe?u6X!5|F==uN9|3Sh0@+NIWRAr%C<^~bY4Nm&fe|J*nGvdk{WL*6N zRo{pQb&>`#Wc$>Ube-Xzy@MUx`c9wO4^chxb`I4JCE64?vFZ%Lt#5xFA|!M^u*`}s z2zJQn*1%o|x=qNFveOllb1rsA;a>mob?EY>yM^wZH`aX-lg9iq*_%CuO45@(Ok9$1 z>2lu8ShB?MkTj8>3_^Jmts{0w-9)8&T-HBPlW(5+(>*88y!QNG#0N<`nP*S+9LLU6 zAYZ-=qag8L=yled; zng7;M?lgse&u8iFoAksMzPR86T<1R#m4`HQq z+v)lX)$(p1*z!AXpYVjuE-#HiH3pR;C|rGb&AbPs;b)4Lkh@ccl9sLwbHA_1?~eqV z%e`(sJPzdG^JTn;(_uB_AS&-@e6Y9M?oD5k#ZeHj+AClud1SLBo zBZ$3+A$lrV+{wdw@Pc_{P9TZbCpHcWAvYV2ZYx!T_$^=~Ffn}Cq~;MhGFdtGuus?9 zM;!f{CkK2hb0~UDG$4TaWRg#KRFQEA}iS9{|OW} zc~;I=zKzkB%DMfD6}#3X(3Q=FYq9pSG_LgL3nJTW9tR)v^B=L9wbNVp;W(quJb2ZR zMr@uVu6?w5{y5kSUTKd8tN7-$wSR*$ootQ>Q9p`GW8(bzCc+-kPFXt?m>c3Yk>9F=(inV9$Xem$sljW$u`lF3LF zsD;}>G`+vDiI6gaN?e^pHiHant^LAS%2ne~um0p~09=c{rhuLM_u|7(Lkb zw?n=E8Mg?0DiM$#IkbPJ1yKQxx+R4Q0X@LBWr>L3MVCbau9;aiYND|>tRHOjZM{1F zHgD&<9cG~)sM1h7~$%f_tU;JaI~Y7H?xLczZev{z=W!^ z?Ytr60>96SWhK=1+ZNT}&GkG(IenY_-k21OS*r%DABa6;V{}^?tM(_U)wNT)wX@Qi z6;RULZvBOn##-SaW2fwA7Sg3*CDEy0Yd$9cgFK)`7slB$@g!qyR$9m0v%WDl)*Kd& zYUg`8utcEnD=}0?CDyFGRR2(*^2Z8|L8)57HzpI|lKdaF90Km`w{GYKa z?T3Z`7Aj|00Qd=*sR0n6w}mg@Zv|rxc7fkEpuex*XhCt?S~fi+9fd$536LfWg-Q)d z)q_*!(Pbc(wy10+GzgTWJc#_MugRiK9vG5l)tjI<%%d1yX835Ra1sdXyp1%q9tu-x z_L-aN0;Nb#9THn=ES1QhsyApTB80-Dg~s!Y!EJ0&C;xw&0xl>%n;iN9U+*iu4by(+QvixlNwp$WefbOCEIv} z$x54^UzNB;@a30=vm@|*@*ZCN_U)I#*nLJ15<=Bqfn9sN%m&> zPn4*7vEpiJ0+1k7sdFz3Van_yAjk)cvr*`bYMnwVa2@ADmIc-)D=98vu8B8t~&QE=QbryW+Dr*dbN?^H!Zm1=b<_J^0G*iO~xcI3A0%9NS0 zB%jNmj$5l)8biHikimp}f_m6}X|G(zC;!lsD9?I-21{OOX{}AIw6#T7w^Udd{YmjC zpRJ7F?z26=+pY_ArQRxY5K4>tU|TrfHqx?i)MBM(ZFq>OcKwjc^GW$jv(S^7MOV`o zWiFGrS?}9q#SOpQ_Ti60eur2-J8u@$oWT}^E`T@C4GniO`00aOt00w;u6bN9Kp?n+1Zf*K_ zLJCuc2uGp8`AxYSi7`MW&4eIZdi2t1ij_e#Q3=5;(LvL4+l2&?2V}12`EVA*WbwB{NJ(Wno+<*Xs(>N6990&|pA9`?LazuUv z@TLz3eRPG}akrY&tr5;9_g2RNzUw=*zdgZjygLv zZ~9RWlpio4L|fOb91tt_r@68+!d2=-@69Gl1TJ(}SS#Pn#Zz8&1sepnIRNBguI3KZ z8+O1?3m9f{CY3IcvHUZh+zPe=z{sDw1laIJXnd8uYIh9Y-~y2B*$Orn{w0(9aMkH< zXIbFZ?fHCE98)VE6~m3xf2#?X&5NI#dE?;CLt|`{Th8URRxNl=xZ*hpZWab?ruW5~ zAHw7G=SKAl!zpvXwoO|O0Ps2jQb9;#W#BLVN(g{P+e$11%c<#U0@_oV3OolQB~^~8 z7szZ2Y}&Nz1TQwJAnHa#z-KYv@>D(G38&W9BmZ0E+9l$=Ga?(pj#;+daVcVf9%PG@ zC>>yg4HJ<-O~^%g;tfJJuVU?Vf*j76@}hCbCCh2LE2|TXKsk@pmil8Gb9`0|RBGzGnkGm+o(?U!b-Hx1 zWcK1c8QdicM+nX=CYUEt*aJGWwUYRBHojxHQUOEplO6)B(U43AHT^-h;8_DzA(Fxm z%p~MK!^$26vjiHrTgvxW*+64*T*C_A*7J`2@}Pv42ZI@xv~=Mo_aR3Z4OWSeSq=YHvC1l8a8FRT2LSoZJEw;sgU9H*9NB znotxY%|uXY)z$psvPVTnq<>UNg1DPO;rN^w!GH&Y!yw4ajgU0P>jj0>o0=P@Z%U*V zUIAOdcG*FT3G%_0-q|<81AcL$--84oAppfSC~)J>gC{TE!5|KN`10c~K%gMOLWBwv zE<&Uz(Uw?hnKKi)mf7=I6apmDGH*5{NQM+hg)}GyrJ;-@b{QF6bQ|q|X>!TsC?O!L zhB_HEP{6t7x+|`_?}6LyxS-k@7?pHTq2Y*cxma?Xv_u&a?P9!_E!RHz_N#D0MpVQ= zigb4oq>8gR(tK0wyBoBK9imBFiPETXPfpZna@INSvhs>((4^IoZk0*9^JPV(j1FCT z^cgT@#F&Z2m`s^rF=xS&73*4SYXuv&2}@(wN^JHxt;TH?9tVz`@HrE3;mVCW51zbu z^Wn>nzW{-P1Pc)=Ot=Vvzu^)}dOlg+mDtc|wX*5RZ>s|i zw#^|0?P#aMwkuMsq|-{ouZDJObkQZ3U2)Yl*WJ*h*-b5Ox$TZtZSK0)XZLINK)Vi|x_YO(EB zJn~py3HqxyV9<~!o_c23h*4t|7;ioaSn}KpFHQ8JB$Hm%S-01w>hZ=~@4WZHN1uH5 z#n)zh^W6_W{i@e*e|p%X{+aHvzh=z(=f64g7Em7vkRb?yf>$sEM+hKUIOsz{$e_PK z6c|KBXowUjBn=wKAan^5B}tYdRho1ejWJ}(g74Cw1|kwN3MyLP_Vh726w2<%2n!nr z7Z0C+kVp=(vRdX+@*Z?=Jj!+)scC4t5fs-hE3H&ccdGTFIkbgv(oK4xFDy!yst=e@ zqt(eKx(T3>M;`0bZ@{1-Pdt5o*obQzGw!(;UYaoJmHd=9$h)`v;G<7I`(keD z?|%5{m*4)FzML6t>r1>1@7OuGX7v*zFI; z)7kmO<<<4g?cII!@c8un^7{7v@%dG&H=3<>r`yZ>gW+gAna<{m`9B&-eF#etGTj?fv8P>-*>T?-o=TCd?MA&F*lz+#WA7p{{MbgZ_8G$KfU$ zlNzW{6q=BuSR$3l6-pJY)@XG`#wL1GGjj_|gOxpN8(aGh96GXd?8K=v=Pq2ja>unB zobYxH^B59HA%h$W7_0Lfk>R8N>o@$sFCeI(h6XSYpum_vtcl1l^flhyh%y@wN}_6T-s52TUQ%`a=DTRNp6^LKPs=69 z*<4#*#;!^Za}{&oswWV_O3FFT&hz#?xAkt89-OO-H|}GW+uW1~NNa3uTXGq7#?YL{ zg|M!nCxUu*yd~^@A2`Hj2d$nR5DPYYGjg0pIM^f9s=e87ps-~x#jqB-|xov8&hSOg=*!HQLj_1j+X?9-mgl1KUn2NV~Jjud`y@%%ypWtz3SUxUcYDexG2El-D;2(p3 zcW68gM;SjDkAo>Z(!~&2hMypu1R{=j8UOe5?yywrAuU=i(obzndwkJ>zobh_5;TjD zhEQxP6e0FR$faD$i}=6Neo^CmPpJd?rm^C%iZxA7I`mR&5J|I?>usW4+UGWG+aDC@ zRoe!`^KhQY--6*6XIX#DFS1pVe!KbOe--|#`u_KDi%CmLrL5Gla%s6}g>0p2m2Pzn zwd(3c8*c~zlYYA|f=fy*p{!+Gw4%~$rD|0*rZv{Jt{#my5DX%m^4onilyOl>Rc)*K zDq9F4{DM!C03zH+Z4p9fL+41PjdgvNEgH+r7+=2IFPsZ{xsOvCuk_~U&vK0f(9NDx zlE=)Lql z-ptk>E?#v>*VEBXCEeaxi&8ws1&Y@5X7+Zfyx|%tQV{YER^N4gmPxAyT%M`U(e^y1 zrXDxg8APazCZvi_1 zU{=su00MSb(b#e*n}jkhqypMlH{rHME}FrkbKskE^!UIsvf z31wVJrHys*G65n?DC0sZZLE9ze!6mh_v01kvu|v|Lx1J$FNtn*nq3Y|xX=(FllJp@ zmffdHiA*FKo#dF=*^WxEqVp5G=72sdSsjmCA6D*6e9eMU3XENg5y0ZsrK=f07r=p4 z02pnH1oF!yjQAQ&^$RP49W(;mv|69F2XomWIXgSa3JLoV{4uP)yBfr!FyND)pgmAeQB?H>H3ZfnI0vF@Fwjv`RVPS=2)rs^CuxD|u&RnGX=)L3N=DF5svOf-X%&LWe$Jl8*SNt8yiuQ4uc5vXClSDFyuk;&NS{l$pUL~rc$~K+y*h|rTNFB)@Ie6p E07GUjqyPW_ literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Inter-Bold.woff2 b/packages/snaps-storybook/src/assets/fonts/Inter-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..775f7575e653614760dba82fd9dffaddb939770f GIT binary patch literal 22904 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

p9mvRq3FeHt~X*bZJ9} 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 J`~QD_kKOs6|ET}~ literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Inter-Light.woff2 b/packages/snaps-storybook/src/assets/fonts/Inter-Light.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2d99c5bcfaf327ac4a67968bbca97c89e8977611 GIT binary patch literal 22444 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§Mt#1X?;&M(!Vawl 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 Ri}|76S?|90zhJ^y003`caj*aY literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Inter-Medium.woff2 b/packages/snaps-storybook/src/assets/fonts/Inter-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..21db79416d8d50282a37c2a564aef73d4f80fe64 GIT binary patch literal 22760 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 literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/Inter-SemiBold.woff2 b/packages/snaps-storybook/src/assets/fonts/Inter-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..da1c039b755d138290ee1291ec4c42b9f0703f1b GIT binary patch literal 22820 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� zW%*PZ_16)M zlkTR`5Z$QZ>xQ~tCbLG8KeE|$xw*mMd0v+z$?%q|xINZRb_-27Qa@$8G|-r6)@H}* zl5Hltr%bgOEna0CJP5eyLNV&b$mcX>nq=AJI1G-dFxP=Q^Fg)riO7Y>>|Rd`<%d`2UI&{*CV+Pyi1Qn1z9B~tfv{Y%3 zgg=igxIx|(Nu&~#k(#{7dwE9ceXVLNYF`@?`#er3l1xh76)Y6hNYB8J1CLX)j50hT zCYM5}Wy9cV+Z`F4+wU~nxJj!<6-Vlw?zJ~d9_P?^$!rCuwYI%!e$rg`JhXxB@R zt2DxBUL2BSa5%Omx3BvqcP-NU1`e61b0ArLQBT%(Ixt1Tge+5~6wkZrCd}m% z8dly?WBJIIYoJ01i3%G56EON+Y9a_QXa#|E8fS>(exhZUK@>qHONiC21rkwJpXe_y ztn97mw7D@?3*+33kX=>Ox^Y=8*^=S$T`SvTqJza^bR=s-)d`-=EodOUyHha*WZIbL_x)V|>~JGM2Xtx=;B_SMp{0Km3&(5Zrq{q- z3uON!+R9yvMHngguRQ|r?=KMGCY`q*fH`Pb3uIoX)PASTvD=(Fzh5ui@dyziV6+ux4acKN;=>W?TKh~4`Xk_xp)c^R@coG4 zwbLMYqPoK;lGFGUg>6E8Crb5Ho8@)G8gEyQ!zxFa`a$7e`yqPT4^ESd*M5Q6EmkP}J)3a{ zq8uUN<`4>c5z!zax8XnjBflL;0RK=x01u#f+x>gM{Rh{6CZJeEfPUPS;A5NX3nEHC z&w|Cp=44;#AStS9Vwvm{Hu+v^0qa+ax?^Ph#FlSfVi562{?>BEMhC$SE`(+Z+(iw7 zs&@C3l0=bcj!WHo*-U-9{EEIjdLka`e6u~;=#b@9lI77Vi&1x5*Z&gGR%RcqF@VtcY560YBvn2KdSn$AC%-rm#u(Z#^? zPia?$u(Xf>nx2>UkC;~N{eAXWq3L#IHVEw723RN1ZHjB#r^oMj#Q4Y$=%oV+h9&FF zd(_XhJ#821>MqC@#c&?u*RrRb0JFhtNTGqvXa%>UbrCt)r$T@-JU@#yK3(yyZ_K-g z*0!vDn|@zBSc6!!nB<5mkJj1)6*9L)ASBimPWVs$@B)#y4ZPf0I*e$5hw8T z(uQ(^d$~}buWpzD_Q%OrVYaXBhLYKxTWOQ>J(CMk3W+PD&s`G=eCvf7>VKO8XB7JZ zFww=MB`X`4#(-2`Y+g((T}`3O@!S%T768eVolCEiDy*~CG`SBNfXB#B5phz`Dd+^UT^+cvR(8z#l>5bbYmOH%a zQ)~5H<0hzN9>u26NCX!uD=Wxis~sHD2wfIZnORH9=N2k=@(vgtITVjm!vipfkg!Q% z@k(W?mPoTg<)15K@fivDqbBMmg4sHWZG|`F6{WK+i>>_P;iZiCl3^F0N?ilWZa`y% z+mC^zA*_>z1!|G!^~z3xbvh*Zn_{wyS96ZeB^vMQW~Ai z;Z=7Cb_x2AYX<8$IQW!J3>*uO2LK_&Lx(LlAnIr~S@!F01?p8w7sQ3>;wvZa!Mg!h zAEc-X&6Q;-A&}2zBnsH@&MhpZOp&->j?~njkQJ^EL_zdj$n>9Ks#{=BKXO-@4#O*B z)Tbvx6w%by%ArApa&g<5dZe3+0`UzWzgbD0RA;R@izDDhLYhdX7%*5p*>fv`x2&WD z8jz?krZEI7Psj{g%+tl!X`l5W^)QUSZ|BQ~C zFZFJM))r%&j{1A|s z*`OyWuhj@${>nT+ZoWaTx-V1?l|@nAE^(uAScS_}MBngklPU0i zB}Nzj%W3qryDq41ZFwsse!4qDp%IvcXfI{{2ifa%<0hn9kBy9pL%)FxX^#hb4&*XF zg|6$0uSgAv+41Yl5!pp#XfQ>aFl=p4Cf+ILqhtG%$Ci-o%YyHIo$TD08~qv0xZT!P ztmcILsHV5ToB8=sswuOwtR3UWk9?+?Aa4YIC3e2WcF5#L*CFZPN>wj^ZP5nj-aiPM z%PGYeb;F#a4$TYHg~_Hyn!OdG+;AKS+>1$4YM?Y`V`bG2-iG`wk8)%I;ku90)5c6OPW&`w{t++5)kprxqTis*xVq>dClc6oup z^x}te%8jR5gpLXGym8~Tx_sI}O#Y0^#8-DlZ%q}Dl+Gtjwnk^<#$~t@1_4J>310Mb zwk0P$&bI`eN7TqPCUCmkr=#9rliED%(xr%PQ{`!!m9uvBV>oDXqL=|*#?}q9EpGx& zy68O%Nj~8;vu+(!uV!2c%4o7Dl_wX>_=!l`9PghW;Vt?7abybpQg6Iwh{N$mf5#N=4@QM1(!bFH0O`-dGP(be7?!T?5#dBQ8PwnUI_Z)~WJAFUY zB(YX1*%e{$MPwz^1PEm~9(i1{Ge@wVjcVQOGy6@<)uJDhi$u&ch7!{|31wU94=Lh9 zMh1N~pUuS+yMBcgvr|&LPD~4M`qSFcc|$CvBjgjwNL|8raA|H!RH_z-JlD!oOt zUJX?Jj2g*f_?^J}*WFVt`kct!UPdh&SCIXL5Z%K+7q4gQ7pKRMNJn=Xvm?s_2?0=v z+hj7(Tl|X@Y|v;m&Whaxyjv3c1z_+u`c~c^cmzv-gp%8)Je7D~7J$Q@N>lDrrasoK zE!gGyJft7|Qze&iiO@=4!+^>GW3%k>F0rADhKda5s`s5w(J0ig3}}6n0r0IA%!Q=7 zd3r}p)dID>QnC&K@H49&QNZL{0Abzyy;yIX>h~Jhwx>7C{%>8M@im6Ba?7J?YFKKk z-V9}DJTA^WT0m=w5V@dQgwdckDq*>3_V=RreYNP&U7YbLT8RJ| z3N)HDDW5fB73ukDt;F2ivV<86GU(??8Q747HTC${=h???UE-wmE-!UwyN|lXNA3EP z?ES*LgBwB)0Esk4&fAyAEXvpE;yR7E`C;*OlW=OSE^3;^vQ{HVe)U$$L?r~H<|o~= z2mogv2x&FyI#1huaKgaeTy`ZfI7IFumxmo12m8Dl0~Vjp0O(_#S29XiisEx43W=*? z^>&l&;rk1feT0XzRc|8>WCPl-)%EwoZsOtZdwQ=jc(7yE?_5rFvbRcQko#Z26o$b) z03`P-1h(t$XdZl?7?q_;QCw&ZuW*1fk#vjoQe7_ADoX1QFFLIH**l7sHNYOM4p@P^ zt<;?9k=$8nG*e|XA02O97oVX_LAxtRe8yBGz=&)5YD#Z4pmk@$G>FAOXil}T$0m&j zuy`30L25p&?JCGEXZ$IWYZy;;j{B8BCO8mCyPuBbUv2U7@6lDFR%kET)3z>J(O>G; zCVT4#9X$BQJ#R*qPU5iI_C&t{??vkiz257CkmDzVqV@Z|>+J5uO}CCpLTK*UkWMqe z#bV0oANG^AZr>yqzem%$FA#LyypLg0LH%jqI@dJ%169hWYR9A1#Js8+8KL6NXa85Sfa^iryY*ii~Ya4+`zn z0a~`}AxUmOjwCptdy>%b?17dZ&O2%kw1=OuB1x0u2W{zNbhk0v_~f)keM>(fqVZ`V zKxh!Z-+mzT))f4|66MzTc43~We_Q4^`T^0X#8XJ+C34P$+)VX>?ZYF>@)VbcD($)ZanBEt17cb% zA$e4!s{>-tYu3pi_V;%r1d$}~WwZ-3i4wj?Ktoj@Q&TW#6J5C0-uhR}@F%orNtv0& z%WraIKmX){=YOlD7%4t146)kshZ2`|(0S{t05yz$V8(0f08DtHC9kXQIv-FpfZx>w!&*>0>p^}ZhxG{Fv;!tmj2-n_N^b^u;0m90{x}U2toD3DsQ@5;8 zW32W}SNt`V%Ei_^&9&7R5lUl<<_b^rYZI%M^EF@YqX13p2o?wU&`=vPf?^)q9ig*X zw_}J0KhRm+q=c#^JcXCMQ+p0nU)(}#9v0#Yf>5Fvt50wr>bqFX#CGtJ;I*Vf!d=i2 zMMU>e#JZP0>9Tid#+6yGH_PzobZzd!%#|>J#dkc^%PQqbSn$qH!SQzKXXRsI1L0Trz`FA8rk~&qc1%FekuCckj8=qv%}}e1?iJt7}Sk9(PNxb#d=76wPp-tfzaKjo+{K zXQC=ZJt^cR@c^VXtP%qzbPN=u=+G*{eAz`(HG}k$bj393 zVao)-flX3M#d3&ycIl4x+-*87t5>s31N50Nr-$k>C;`*}H z1!6#H+g&?~vmxkR&@8sB!sm2lC#iX@Pvc3lSC`rR{@oqvng;`ISz|U7O_|9Xt#BF`(kG=j{ptESIMT^7mqsmmn)Oi8Tu&1Wun#dH*{QqsUv){A-DT{^r4 z9QoM~N^E~phRoXS!m-;>(bi^EBz3d}`-#1{+0*c04AokUo7D;`hbziX6ptsO1qn zmEk>S;-HGv$1!o{DVq5fQ)(=44jyZ<{nB2A6RYT2*q$(1?G$~rhI3mysE3i4Z-b8; zThU}j4>n?Yb(0U`)t8c&s7Pnu0}mR1*QuG7o4K7Bs0X-o1OO8*fXDhS5;<%Wz<&5k zEj;VTGwkTCWbQMQ&|>1`PT8yU;^PHqoe^Sl;zjJ`8gci_RoxX+LAA-^tu`>rJ-Llh z)8y%~a%A|s0J*OGuV6s%CrD-`3^o+|_FX~}R6Oe3=sT!UI^$>91=12J4t{F7&2Bq` zPyQ#D+V)jlm6FINiNL_U;uNDz89a^~!rM}$C&C9_myN-~<@$uY&SdoPquZ~q+Kqzg zxz1gis`=wv)&2fq0qU=@$3a#G^v{vpGJqxi>u3RK^ku>Emd;#z4n(0s$`X%p=zld6(43M#6GQ#uP{-9W?5V&KrcO^_|^eZN=n4U|%gV*{t! zyLIQ4vWtA`QkGvIQ-TIAjF6K%FpeKU-W;@O_kt*ss34~HnED=^kItX~nx%XoAeCA| zU&19vY&~^WdqZu9Pyu=;O|SJ@S!efG8j039j>-%-#IQG)gW$fZ-BC>==#t||=$oX1 zGTs&zh?xI;vULMErKoWcm%x!i>BZv!7iJSc7&wh#c_@~2$Umthtz)`Ab)6flq{7_7 zZ-wvUd3Kles6wi&W+xOdWLFjHa#~D|G0~vO`nch0>zPWF4of*Fd4m{k4{IxjuJeT$ z>pCSSd`yuPmnf8_YxA{VB%Le7mG8q|&V9{b6hT;!-6j7>zTIwjK**q6@E#D(rko0e zc=~9T(vOi0Ye2y16-2$(+Ur=4A=V!aL6j~Ieaue2b_w$jlt!NIex};qbh6q0Ud!j| zxDE^V*%gkj2}208pX5`3!zS2sWe0fO1ngp7c@Fp9qp1PcTV&DC>?vl#@n>!@)6 zKfJdPNt(U}<%kG~@ZG3MlBfUhwN+8xh*xuJ-^$-w`RC=v6SZsrcY#yBGpETr6--sZgJm|hlI`2Ft)F@RZ+p8*z z1nX1A8Ccwyr&F)z-I!y~HIbo(tFx6;W=POhLNKFP^^2%$?8A}bpU`1PeAi&&G}#?f zW@aw5BASw9WG)1`%a?lXuq2b-UbG{f=`fAw-h`068H4Qnbgr|Q2&{0(V)JZiD3razDeG4s*7v9e77!54{dX5R<|>^hEaqYNgkL?q*loCX&>(>rDFXf--&BH|Hk zwUd2#-l@#w)%FEurgFE(`~FsbnaoQyj9`QojXvcG!dfc@yyvGYKDQt zC3bs+-E=IU3r17ZonwSnyN##5Ac9cY`bYt3wKv?SKg}BKa5JBI(u{59So2%TFH|n! zXB?aS>K2as!o|(16MXbQzTL>$-G@Y!A1OF>4YpRF%MF{PuMbt5LS{rcV{tv|Hj0qa zMcH%_V#Ff!^d&NTMe5Np9SaZgvyf!L*Fp?%A1Re%Mj&P94oLDb`?KsTXPaVq}S#0@raBeXhRNyvyfR%r(o2< zeP{vGrIy$nx$hxwD0r!o)U+y~OAWLYW53d+NH$Y}Pp^|UvwxyNND67~PTq#Ze8jN@H zPxZSkZJ=oVR2au3J_JlgVvqJIel;~1HAx3i_g$$U@4fR+U5gFs4Ds?^VOeAVOdw~k zM!!w~Ae1y!I2X7IgJ^0HB!~nAlvO@}6+K26?+c;5M&t(9j#HYnA$7$&t~5lpM38|% z`Nh#Dtjk-HRngOvO+@}u)u{N~{`y|`ZVSDo;x`R?|CfeY#ZqGRHSZx9GY~vhM7*5- z^h}6F0`k&H>mJTYIS6un*qI^-fP;NMno(4}*3Q#Q^@B)V9UX@ewd(4hIo^i0nmhqf zND*=zFLhl&HVH(Cl95*M404pG{GCW@abQeqBuH!s%v8?@VC}hPVnHYp&^Lu}#M!Wh zU=+9tWL!tVnu-z?DwvoX1RdI_7xOq z6@6VsSSF`-+fx@QG3@!rRV7MWX8+&=(d6VHuy@srSpO%8Sd&cPKd6yr_}W zLrBY%sG+4;d)4o&+OjlVADle3xbg~tYvbZQ8JpDw#IpYXFRd6-=UuofPSMs$X})`} z&DGLrhGry~h(X;X3W0GKixZxXyncrwe${^Pp*|3;=pADutfe^4n|@cqB_5eKIlFC|8jtt~v! z1S_727e+_@xTbw`YEk=eXTj08;*X%PL)>20y?1{ZHZ^nY7mHoF1*$F=>CKtB?c00W&}X=wuX~gQ8Mm?dS$( zZbqgyL<+i0I8G0DWQEyOOCLgb<5GB7>P~Mb?*Ry{slNFqthQe%qw;+V1|rMj`I1B^ z^Z~rJEuMtp3D3ubJF&uTYhsYs|Hi;wm)1HFyCZV)mcAr4wtvq)@}I)vdsg~xUbX?W zek^|b0UteteK6ZsH=tA7Z=0P5Y(c=BobT9I^p)S20l5)oRtg6Q*u6eRUVI{n%A@+p zomO62EV{{z?F#jCDlIFG!Cz^XGhPE-#{06T6j6(0*cRJ#S1Lo~>*92T7%#XYV5DFj z?81DB6rs1FoCGJm=^pt=-Ze6}jviK?5uzerqEcVUYLdZzGMB+l{ke>{l05RCr_Yd+_lI&)d;5k`1|bB4l6yY1*TD?=uh(F=O71nk*a`?j zsKwahNpY^I1BtGOW6#DCqg<>ks2Hqgw4>TL6ckr7jZH~ChvnoE$$|v7l6LpilcdYC9r}_59tp+ zF*xA#=9Nal}uM2PTyu{lgtWX!tq3PwO;{!O2pGq&WN zCg^|d;s``k&_5Oqdu^h;gYSDXT~SsHcP}5RyA_J&3OWdUV6R19itj?@nPkLDPSxnk z^Xqf|e4<%6B?`JrY-r)VAH!pl(ZT!8yk#Yv6C&W8 zKN5cGkpN;5a4YS2)|q&(j^kJd_g?a=$uU80qiqv6{kZ)@dHqe7n{co-`*rH&%@5zu zyI~R?x~R7Z@-iB;3GRt`AFR>L+Xtl5`If+ZVC(cDrI66)snT0*B)MS?N@aSpE{Ak-JP2_m{lZ|>dI{$axLFJ^rt%-fgu(|cjT}0E#xoo>& z10M@d14Ao&0@yDhVesT+Cb$4?H^#!%z{Jb}2kQFs_xj$q(YY);s)6@15xCL}5@dga z9wG2x`~hg_-X$je6fOE4M>|fm{j>5&CCg5#WCbdv^CF<&Z`WI?MsBt>*zKUBIPzfO zk6tG>Nfm>JC7wRHsjdCkbyp4jrZ*~GI4ninCnp{IFA+KT|6djO5R^gjRsiGDqCSc1 z>kEe8TOxRYn|1U2)alBlkdVNBFknXza;OfDKbPap8utLauhMUZz5M&v@89UdJGBR* zKxZIE#z_rECk7I@LB|+nsfT)S<2Z5y_l8`PhKNRE>N(OI4S@Hz;lC!1Bs^ZO6CMRS zwaF$jI%Fevc&KlMN!tK42n`ADu*Ism=7W2hEG;vruwq9`bFNsL7clR3c}cjG0SV7% zJN*JRHEh)`9+Z0O$Kl~w@8@#U_R4l!m>#4Hq#u}DUcF*9ffZe1mf6Wepg%ON)eFp3 zxK=N0=C_QXOM9?D#gw& zD2RXyeFB#kOWcy#ueq|Ocr?cIt0(Mz6|U(MOz;V+zdwE-H1y(DCRgNK(ZRuZ96iw9 zfleY|gGu3NIETmMgDDR7v;Zug9svL3hWov_W@j~htU7#bHs|Uh;^g31x^1Aor>V!k z*DUO?%2$z)Upe^n+n2#b|5tORlc)7P2p0DV+ryI>tpL|Yv{~V5U1*3sVRiy^7c>5e&8D} zlZ3GTy0@eGIzA1aqv6z_F5nq&y&A}OHVO+*nJd2qXDOit7nj|DO_NNwP2aH%1Klor>1I!m1XCQf^aQxS10AkOXVkbg6dXS9Fa<3WFL zKdA~|b>~Y1y%en+$!|5Wx;{?KYNSJ|*YpPWTjJ^GN^a_<am_sB>up04ePJsSyNI^x zjsdOQ(2${tus$F9rYt90GS4FzGn6K?8OeoqC~WmUZ1C+~b05{rQAHRfQ^lovf1?$n zb5`Xp@1(q0UL$BSc>|3a{=E3kevvS2m6No*sBbp3CLd_FK9jAQS?7n_5dILWXX~A{ z9YLxX?aE>JkEm}>MAlDQN52g8tCoJ<89nPD_lcUdLzJMGjlAKfteGc_|Fn^vPFIHFkC#WJWMt@PpCBw06mm39uoCD5?Yt&z zNI3opSC%mA5*zuKcrGv-NdWv9xFE$98E)s~YtVannW#9mJ7a<5f~szzQFtj75t-xl z$RuDWtO$$uQB~8{hyMed4_{+eJ1Dk@O-W%W zou{9`!R-{03V?kwi{poBMv<0_{2NU<03L^2*K!dUi)M5#a@MnfQp)&*ayC-Irf7dW z>JGT`uGZDNgRX5t(0%bMKpWo01 zfMdR_X@(ytE9>HdMmszg>u=?B=k$$wO-ug)P{9>`;TqSu!A)*)TRk^vmP@ zd8UseQ-ZY8n#(?ln=OE*&2$nCVr~)4w&^6CKx<@hL%5b38nuH%ilPOWarc7N3do}4 z_L2aenkqmdu&<->zupZDfLga}S2G~ zsbVGi(HToR$CVpavV$IEkw#J`5)ERms4W8VwwcH6LbfI~E1eG&;;Dc=eP&T&mC}$0N;>}(XVt-VMYU>;Ri99;y;pZ!wN~4~S#ux*Hp~%p z5h5EGo=}?>Z3aM-5Z1Ido;huxi;&iuvV&4kD6`aUGm&UOpk(IR(xRDMZlYG{+1Nd^ zDk%b!mqY3JOCX8KU1fmmU^D9!z#gS0K%zBk9j9>`R*{|_(+1$18@J>(88_#uBi>z& zwEteiiTounN2r;hK{8qF0KRC`;(E^z98wo;1+d1ETCqm;VQ2|VBaK|uhz6}>Q6p$r zlN{TWhW3wBG@fI99=8mX0@dQE?_vgmZO@DhSfyPgaa-m0QLLBTrd4kL%-loN zx~dTks-zg`#7x?_5DjRtu%vUD_ffV7XL#nKLJdCI=P=5aSa*~x8pBYP4<_mrd)3CJ zO=}$otQsuoTvnLaz7_13rz9Ey%Z>x^2G9meaA~FcF|n;UEfZjXeNFuPmFg#U@Cpi{ zm7NxA)4(UEG(?Lb|DW#^28xy+C)L&M0&NS8p$Sme_@ph^jzs@qbGn$zqC5_OSnM$n-(N?o;Wb*tB)S*lS(d+EfE?P27OJeF%~uCw~vi*{0Npa&0Ouu(`a90YpvkN#craxKhF*`sA$ z6*V9~&|f_{KVO>@!O}O!bFR9I@ust>>YuMI4wgY!`mUTN2x9G}R?i?M!*l|sbKlSr~*U-XO$NLks4sSY}s{RvTacLQxpzO+Nj!3M%)bb2O1#|%8)B|o8 zIbb2m2{4JLbv}=G%gWE1o2A}<-JaSI3%R{$SWxnSjG9p7TLN(l-+o%L1=#kM++*Nz zv5>jNveaN^qZ>c3Syv`l=bfG>Y1KdgK&ZQ4(x2j9xF+)79OnZ70Q&#Yem?-f-8bRV zpW4&&0nSPQ02(j=03ZP7sips4QGm-3;bD13T+>+f>z^-awgY7hN9*qXzV^R#;W0_g+1KDZNy8P ziZ|*OJEi?y*$}Y==jVWz8w)*D%!yU<4xd7n^jfTOf>10TyQRMFW>E{2YTxdjVb#KY zqQ(6U%fcMSxo?!dUY|1VqAFX2p$`K2cjt@E_T0%gejqnH`dVv;vzpPgcNE#@QZ(AViC-G|wgLm}d*BtcZoh3LD=iEBxu{t! zFW*wLLKIXO5Q1iu$Umj~m|FL`eKRI-pRro1H@`9zX=PKmsKzGKrOGRS4V)y)5X77W zuCya_#OLRMsx{kJ9|EN8}pG~pG+6;5ssB7wDZe;p$7kJ)>lr#p8 zHjTa(s3k@$sGnQa&-k_%*ikAhsmHCTJ?7W9a_gtEiYI+ln^SY-RHO77Yw_4_dKna3 zXUjNGbOn#SHmtEOS3{d!;YhZqd)BMsCbYZIZw>VOw{o^5ubMHXY%cb7aY(1Ub^EJT zxY(3-HcL>1Ktp+_wwOW=J{$+5ufS+KhnrfCx9*Lue*mjPwgV{E2 z!2|73WG{MY9EIoX)zMtReF8?6ioZyLa;Ic0W`zB~`Se{Kh@ zTIaSGW*<{taC6Qlpkak*3bAH9CuWQf=g%O;t@EoxxDf)0cMPA!7aI{!YpqCa#DWkN zjNXZ_EOVpSj5d<|3(Lu;hAp)QT~8T1`3gT_h$km)+QJ$wtOj2M(E{flrNS zx5h^1TK$3^5XX{k@3|%gAWNtenqLfZy}?YeJl`k^(XwG;^o(lZ7vR#Ona{g@PUe`v zs9hzvC;%(Xetp4=lGcifixpaok+L%9fjC&H`VW6$;krXf%frRfRY*UnR9Gvu!;;-- z%atos8l7QqC8MF0Sgx?)(M_$<>b@k;7%%zy;rsewaZoAxV{EX2J%=hgab_5(ofj-c zgZc1hGHB<&HWIR}6^n&!D-#ZP4;3a{gvhVZ`|gjy#S<$|yab7o@Fh!;N*4wepH-WSXx=z*!p5+ zV+YX~EDjG5h$J!xCl@ylY}@7U=8{sYZJFe#kVH786mKSAJH*MDs<1{bpwjbwpKkpMT znJrcuv^$(Gx5w-ABa#XPL*WRH#^Q-&Doryi#|xq)D{3a2%NL5Ja-~|UH=3<>r`zkt zNs4Azju(I^$%?A!hH2SO0wz=GOg5J<6j7;Msn&44(QLIl-Cln%9E~T_*?h5FtvA~* ztIZB+hUIu9h?4AZy4)V@_4xxqB@~WCWAQ{XmCj^y`9iT&u2gGvevh_E<=;Pul=;7Y zA4MP-G&?cT!@ZY$iQhUQ(;=qH#dml=5Qb|W$ zGp9h5m*SNGY+zJ&4CNT-Z;pB5z4+e$N=v3b1bH&W?kMdQ&;gx!FlQT zH4Z?Un%#Gx*dr;VDHdDzS$Wm))-|8MRkYOXVfN=qGQSrNA)!#$EM;S zs$aF2vd28+8;Yny0H{w2M|CILzURORg83YZOUjj#b7xK1`*vOiDKRT#@-12w*%*=b zk=Vt<@a0A!!?jzt`NXijZy@61S#V|^V>4*%uV>KHRg zyI7isL-10ngDXZz`@9f*c_-Qc4t_2f0aTgmQ)=ZaFVN2+_9uC!;O6j`~dj0CBlzp?|ytM*e1UHb6;KE z6`ish^4)KPmz%jWP1&$2EElY|fXq-Z(K(O(B;*+{>%<0rjRmg>Vu$$}1>z zHZYvvkQB}26q+iz>z$1nfU>enBC`j_5g=nr2WKIMP!1Uq zI1#ATbNrJaTR-Nc>+$SEh2OC|pSM8xj#bM#*FhaIlrr-w-%KjqHaoC?Eq!MtRycJ1 zN~q}hNT|G!p4>{BAHm9-wi8&gr+{>TsM=~6%tczoXOuNqf^_s0Pss>EcZbR>)O_YE R7(LY+?A`bNhw0%N006DJ9@+o^ literal 0 HcmV?d00001 diff --git a/packages/snaps-storybook/src/assets/fonts/fonts.css b/packages/snaps-storybook/src/assets/fonts/fonts.css new file mode 100644 index 0000000000..140e0608e8 --- /dev/null +++ b/packages/snaps-storybook/src/assets/fonts/fonts.css @@ -0,0 +1,111 @@ +@font-face { + font-family: 'Euclid Circular B'; + font-style: normal; + font-weight: 300; + src: url('./Euclid-Circular-B-Light.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: italic; + font-weight: 300; + src: url('./Euclid-Circular-B-Light-Italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: normal; + font-weight: 400; + src: url('./Euclid-Circular-B-Regular.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: italic; + font-weight: 400; + src: url('./Euclid-Circular-B-Italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: normal; + font-weight: 500; + src: url('./Euclid-Circular-B-Medium.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: italic; + font-weight: 500; + src: url('./Euclid-Circular-B-Medium-Italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: normal; + font-weight: 600; + src: url('./Euclid-Circular-B-SemiBold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: italic; + font-weight: 600; + src: url('./Euclid-Circular-B-SemiBold-Italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: normal; + font-weight: 700; + src: url('./Euclid-Circular-B-Bold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Euclid Circular B'; + font-style: italic; + font-weight: 800; + src: url('./Euclid-Circular-B-Bold-Italic.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 300; + src: url('./Inter-Light.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 400; + src: url('./Inter-Regular.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 500; + src: url('./Inter-Medium.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 600; + src: url('./Inter-SemiBold.woff2') format('woff2'); +} + +@font-face { + font-family: 'Inter'; + font-style: normal; + font-weight: 700; + src: url('./Inter-Bold.woff2') format('woff2'); +} + +@font-face { + font-family: 'IBM Plex Mono'; + font-style: normal; + font-weight: 400; + src: url('./IBM-Plex-Mono-Regular.woff2') format('woff2'); +} diff --git a/packages/snaps-storybook/src/assets/global.css b/packages/snaps-storybook/src/assets/global.css new file mode 100644 index 0000000000..bcca944e1d --- /dev/null +++ b/packages/snaps-storybook/src/assets/global.css @@ -0,0 +1,11 @@ +.sidebar-item { + font-size: 14px; +} + +.sidebar-item[data-nodetype="component"], .sidebar-item[data-selected="true"] { + font-weight: 500 !important; +} + +.sb-bar button { + font-weight: 600 !important; +} diff --git a/packages/snaps-storybook/src/assets/logo.svg b/packages/snaps-storybook/src/assets/logo.svg new file mode 100644 index 0000000000..e443e894dd --- /dev/null +++ b/packages/snaps-storybook/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/packages/snaps-storybook/src/components/ColorMode.tsx b/packages/snaps-storybook/src/components/ColorMode.tsx new file mode 100644 index 0000000000..e3c0df343e --- /dev/null +++ b/packages/snaps-storybook/src/components/ColorMode.tsx @@ -0,0 +1,31 @@ +import { useColorMode } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; +import { useEffect } from 'react'; + +/** + * The props for the {@link ColorMode} component. + */ +export type ColorModeProps = { + /** + * The color mode to set. + */ + colorMode: 'light' | 'dark'; +}; + +/** + * A component to set the color mode of the application. This is used by the + * toolbar button to toggle the color mode. + * + * @param props - The props of the component. + * @param props.colorMode - The color mode to set. + * @returns A component to set the color mode. + */ +export const ColorMode: FunctionComponent = ({ colorMode }) => { + const { setColorMode } = useColorMode(); + + useEffect(() => { + setColorMode(colorMode); + }, [colorMode, setColorMode]); + + return null; +}; diff --git a/packages/snaps-storybook/src/components/Delineator.tsx b/packages/snaps-storybook/src/components/Delineator.tsx new file mode 100644 index 0000000000..97cf9828db --- /dev/null +++ b/packages/snaps-storybook/src/components/Delineator.tsx @@ -0,0 +1,43 @@ +import { Box, Flex, Text } from '@chakra-ui/react'; +import type { FunctionComponent, ReactNode } from 'react'; + +import { SnapIcon } from './icons'; + +/** + * The props for the {@link Delineator} component. + */ +export type DelineatorProps = { + /** + * The children to render in the delineator. + */ + children?: ReactNode; +}; + +/** + * The Snaps delineator component, shown in the extension window. + * + * @param props - The props of the component. + * @param props.children - The children of the component. + * @returns A delineator element. + */ +export const Delineator: FunctionComponent = ({ + children, +}) => ( + + + + + Content from{' '} + + Title + + + + {children} + +); diff --git a/packages/snaps-storybook/src/components/ErrorBoundary.tsx b/packages/snaps-storybook/src/components/ErrorBoundary.tsx new file mode 100644 index 0000000000..b050670e3f --- /dev/null +++ b/packages/snaps-storybook/src/components/ErrorBoundary.tsx @@ -0,0 +1,70 @@ +import type { ReactNode } from 'react'; +import { PureComponent } from 'react'; + +/** + * The props of the {@link ErrorBoundary} component. + */ +export type ErrorBoundaryProps = { + /** + * The children to render. + */ + children: ReactNode; + + /** + * A function that displays the main view. + */ + showMain: () => void; + + /** + * A function that displays an exception. + */ + showException: (error: Error) => void; +}; + +/** + * The state of the {@link ErrorBoundary} component. + */ +export type ErrorBoundaryState = { + /** + * Whether an error has occurred. + */ + hasError: boolean; +}; + +/** + * An error boundary component, which catches errors in its children and + * displays an error message. + * + * @param props - The props of the component. + * @param props.children - The children to render. + * @param props.showMain - A function that displays the main view. + * @param props.showException - A function that displays an exception. + */ +export class ErrorBoundary extends PureComponent< + ErrorBoundaryProps, + ErrorBoundaryState +> { + state: ErrorBoundaryState = { hasError: false }; + + static getDerivedStateFromError(): ErrorBoundaryState { + return { hasError: true }; + } + + componentDidMount() { + if (!this.state.hasError) { + this.props.showMain(); + } + } + + componentDidCatch(error: Error): void { + this.props.showException(error); + } + + render() { + if (this.state.hasError) { + return null; + } + + return this.props.children; + } +} diff --git a/packages/snaps-storybook/src/components/Header.tsx b/packages/snaps-storybook/src/components/Header.tsx new file mode 100644 index 0000000000..2684a63750 --- /dev/null +++ b/packages/snaps-storybook/src/components/Header.tsx @@ -0,0 +1,27 @@ +import { Box, Flex, Heading, SkeletonCircle } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; + +/** + * The header component for the extension window. + * + * @returns The header element. + */ +export const Header: FunctionComponent = () => ( + + + + + Title + + + @organization/lorem-ipsum + + + +); diff --git a/packages/snaps-storybook/src/components/Jazzicon.tsx b/packages/snaps-storybook/src/components/Jazzicon.tsx new file mode 100644 index 0000000000..36012d1b91 --- /dev/null +++ b/packages/snaps-storybook/src/components/Jazzicon.tsx @@ -0,0 +1,53 @@ +import type { BoxProps } from '@chakra-ui/react'; +import { Box } from '@chakra-ui/react'; +import jazzicon from '@metamask/jazzicon'; +import type { FunctionComponent } from 'react'; +import { useEffect, useRef } from 'react'; + +export type JazziconProps = BoxProps & { + size?: number; + address: string; +}; + +/** + * Get a seed from an Ethereum address for the Jazzicon. + * + * @param address - The address to get the seed from. + * @returns The seed for the Jazzicon. + */ +function getAddressSeed(address: string): number { + const value = address.slice(2, 10); + return parseInt(value, 16); +} + +/** + * A Jazzicon component, which is used to display a Jazzicon for an Ethereum + * address. + * + * @param props - The props of the component. + * @param props.size - The size of the Jazzicon. + * @param props.address - The Ethereum address to display the Jazzicon for. + * @param props.props - Props to forward to the {@link Box} component. + * @returns A Jazzicon element. + */ +export const Jazzicon: FunctionComponent = ({ + size = 32, + address, + ...props +}) => { + const ref = useRef(null); + + // eslint-disable-next-line consistent-return + useEffect(() => { + if (ref.current) { + const element = jazzicon(size, getAddressSeed(address)); + ref.current.appendChild(element); + + return () => { + ref.current?.removeChild(element); + }; + } + }, [ref, address]); + + return ; +}; diff --git a/packages/snaps-storybook/src/components/Renderer.tsx b/packages/snaps-storybook/src/components/Renderer.tsx new file mode 100644 index 0000000000..f8be6c3a62 --- /dev/null +++ b/packages/snaps-storybook/src/components/Renderer.tsx @@ -0,0 +1,70 @@ +import type { GenericSnapElement, Nestable } from '@metamask/snaps-sdk/jsx'; +import { assert } from '@metamask/utils'; +import type { FunctionComponent } from 'react'; + +import * as COMPONENT_MAP from './snaps'; + +/** + * The props that are passed to a rendered component. + * + * @template Type - The type of the props of the component itself. These will be + * merged with the render props. + */ +export type RenderProps = Type & { + /** + * The unique ID to use as key for the renderer. This is used to ensure that + * the rendered components have unique keys. + */ + id: string; +}; + +/** + * The props for the {@link Renderer} component. + */ +export type RendererProps = RenderProps<{ + /** + * The JSX element to render. + */ + element: Nestable; +}>; + +/** + * The renderer component that renders Snaps JSX elements. It supports rendering + * strings, JSX elements, booleans, null, and arrays thereof. + * + * @param props - The component props. + * @param props.id - The unique ID to use as key for the renderer. This is used + * to ensure that the rendered components have unique keys. + * @param props.element - The JSX element to render. + * @returns The rendered component. + */ +export const Renderer: FunctionComponent = ({ element, id }) => { + if (typeof element === 'string') { + return <>{element}; + } + + if (element === null || typeof element === 'boolean') { + return null; + } + + if (Array.isArray(element)) { + return ( + <> + {element.map((child, index) => ( + + ))} + + ); + } + + // eslint-disable-next-line import/namespace + const Component = COMPONENT_MAP[element.type as keyof typeof COMPONENT_MAP]; + assert(Component, `No component found for type: "${element.type}".`); + + // @ts-expect-error - TODO: Fix types. + return ; +}; diff --git a/packages/snaps-storybook/src/components/icons/DangerIcon.tsx b/packages/snaps-storybook/src/components/icons/DangerIcon.tsx new file mode 100644 index 0000000000..84eae10c82 --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/DangerIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const DangerIcon = createIcon({ + displayName: 'DangerIcon', + viewBox: '0 0 512 512', + d: 'm443 342l-126-241c-16-32-40-50-65-50-26 0-50 18-66 50l-126 241c-16 30-18 60-5 83 13 23 38 36 71 36l251 0c33 0 58-13 71-36 13-23 11-53-5-83z m-206-145c0-8 6-15 15-15 8 0 14 7 14 15l0 105c0 8-6 15-14 15-9 0-15-7-15-15z m28 182c-1 1-2 2-3 3-1 0-2 1-3 1-1 1-2 1-4 2-1 0-2 0-3 0-2 0-3 0-4 0-2-1-3-1-4-2-1 0-2-1-3-1-1-1-2-2-3-3-4-4-6-9-6-15 0-5 2-11 6-15 1 0 2-1 3-2 1-1 2-2 3-2 1-1 2-1 4-1 2-1 5-1 7 0 2 0 3 0 4 1 1 0 2 1 3 2 1 1 2 2 3 2 4 4 6 10 6 15 0 6-2 11-6 15z', + defaultProps: { + width: '12px', + height: '12px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/QuestionIcon.tsx b/packages/snaps-storybook/src/components/icons/QuestionIcon.tsx new file mode 100644 index 0000000000..93c006cf77 --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/QuestionIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const QuestionIcon = createIcon({ + displayName: 'QuestionIcon', + viewBox: '0 0 512 512', + d: 'm456 256c0 113-91 205-204 205-114 0-205-92-205-205 0-113 91-205 205-205 113 0 204 92 204 205z m-204-108c-33 0-63 24-63 58 0 9 8 17 17 17 9 0 17-8 17-17 0-12 11-24 29-24 17 0 28 12 28 24 0 6-4 11-14 17l0 0c-12 8-32 21-32 48l0 5c0 9 8 17 18 17 9 0 17-8 17-17l0-5c0-7 3-12 15-19 11-7 30-20 30-46 0-34-30-58-62-58z m-1 170c-9 0-17 7-17 17 0 9 8 17 17 17l1 0c9 0 17-8 17-17 0-10-8-17-17-17z', + defaultProps: { + width: '16px', + height: '16px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/SnapIcon.tsx b/packages/snaps-storybook/src/components/icons/SnapIcon.tsx new file mode 100644 index 0000000000..fa1aeb7762 --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/SnapIcon.tsx @@ -0,0 +1,31 @@ +import type { BoxProps } from '@chakra-ui/react'; +import { Box } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; + +export type SnapIconProps = BoxProps; + +export const SnapIcon: FunctionComponent = (props) => ( + + + + + + +); diff --git a/packages/snaps-storybook/src/components/icons/WarningIcon.tsx b/packages/snaps-storybook/src/components/icons/WarningIcon.tsx new file mode 100644 index 0000000000..af38b0c5c6 --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/WarningIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const WarningIcon = createIcon({ + displayName: 'WarningIcon', + viewBox: '0 0 512 512', + d: 'm252 51c-113 0-205 92-205 205 0 113 92 205 205 205 112 0 204-92 204-205 0-113-92-205-204-205z m-16 123c0-8 7-15 16-15 8 0 15 7 15 15l0 102c0 9-7 16-15 16-9 0-16-7-16-16z m34 172c-1 2-2 4-4 6-2 2-4 4-7 5-2 1-5 1-7 1-3 0-6 0-8-1-3-1-5-3-7-5-2-2-3-4-4-6-1-3-2-5-2-8 0-3 1-5 2-8 1-2 2-5 4-7 2-1 4-3 7-4 5-2 10-2 15 0 3 1 5 3 7 4 2 2 3 5 4 7 1 3 2 5 2 8 0 3-1 5-2 8z', + defaultProps: { + width: '16px', + height: '16px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/index.ts b/packages/snaps-storybook/src/components/icons/index.ts new file mode 100644 index 0000000000..8ebf1935fb --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/index.ts @@ -0,0 +1,4 @@ +export * from './DangerIcon'; +export * from './QuestionIcon'; +export * from './SnapIcon'; +export * from './WarningIcon'; diff --git a/packages/snaps-storybook/src/components/index.ts b/packages/snaps-storybook/src/components/index.ts new file mode 100644 index 0000000000..31f71acd1f --- /dev/null +++ b/packages/snaps-storybook/src/components/index.ts @@ -0,0 +1,3 @@ +export * from './ErrorBoundary'; +export * from './Renderer'; +export * from './snaps'; diff --git a/packages/snaps-storybook/src/components/snaps/Address.tsx b/packages/snaps-storybook/src/components/snaps/Address.tsx new file mode 100644 index 0000000000..e683dbcd8e --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/Address.tsx @@ -0,0 +1,31 @@ +import { Flex, Text } from '@chakra-ui/react'; +import type { AddressProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import { Jazzicon } from '../Jazzicon'; + +/** + * Get a truncated version of the address. + * + * @param address - The address to truncate. + * @returns The truncated address. + */ +function getTruncatedAddress(address: string): string { + return `${address.slice(0, 5)}...${address.slice(-3)}`; +} + +/** + * The address component. See {@link AddressProps} for the props. + * + * @param props - The address props. + * @param props.address - The address to display. + * @returns The rendered address. + */ +export const Address: FunctionComponent = ({ address }) => { + return ( + + + {getTruncatedAddress(address)} + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/Box.tsx b/packages/snaps-storybook/src/components/snaps/Box.tsx new file mode 100644 index 0000000000..729f06929f --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/Box.tsx @@ -0,0 +1,64 @@ +import type { FlexProps } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; +import type { BoxProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../Renderer'; +import { Renderer } from '../Renderer'; + +/** + * Get the flex props (direction and alignment) based on the Box props. + * + * @param props - The Box props. + * @param props.alignment - The Box alignment. + * @param props.direction - The Box direction. + * @returns The flex props. + * @example + * const props = { alignment: 'center', direction: 'vertical' }; + * const flexProps = getFlexProps(props); + * // => { direction: 'column', alignItems: 'center' } + * @example + * const props = { alignment: 'space-between', direction: 'horizontal' }; + * const flexProps = getFlexProps(props); + * // => { direction: 'row', justifyContent: 'space-between', alignItems: 'center' } + */ +function getFlexProps({ + alignment, + direction, +}: Pick): FlexProps { + if (direction === 'horizontal') { + return { + direction: 'row', + justifyContent: alignment, + alignItems: 'center', + }; + } + + return { + direction: 'column', + alignItems: alignment, + }; +} + +/** + * The box component. See {@link BoxProps} for the props. + * + * @param props - The box props. + * @param props.id - The unique ID to use as key for the renderer. + * @param props.direction - The box direction. + * @param props.alignment - The box alignment. + * @param props.children - The box content. + * @returns The rendered box. + */ +export const Box: FunctionComponent> = ({ + id, + direction, + alignment, + children, +}) => { + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/Button.tsx b/packages/snaps-storybook/src/components/snaps/Button.tsx new file mode 100644 index 0000000000..c9bd11576a --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/Button.tsx @@ -0,0 +1,26 @@ +import { Button as ChakraButton } from '@chakra-ui/react'; +import type { ButtonProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +/** + * The button component. See {@link ButtonProps} for the props. + * + * @param props - The button props. + * @param props.name - The button name. This is not displayed to the user. + * @param props.type - The button type. Defaults to `'button'`. + * @param props.variant - The button variant. + * @param props.disabled - Whether the button is disabled. + * @param props.children - The button label. + * @returns The rendered button. + */ +export const Button: FunctionComponent = ({ + name, + type = 'button', + variant, + disabled = false, + children, +}) => ( + + {children} + +); diff --git a/packages/snaps-storybook/src/components/snaps/Heading.tsx b/packages/snaps-storybook/src/components/snaps/Heading.tsx new file mode 100644 index 0000000000..4502d473ae --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/Heading.tsx @@ -0,0 +1,25 @@ +import { Heading as ChakraHeading } from '@chakra-ui/react'; +import type { HeadingProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../Renderer'; +import { Renderer } from '../Renderer'; + +/** + * The heading component. See {@link HeadingProps} for the props. + * + * @param props - The heading props. + * @param props.id - The unique ID to use as key for the renderer. + * @param props.children - The heading content. + * @returns The rendered heading. + */ +export const Heading: FunctionComponent> = ({ + id, + children, +}) => { + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/Row.tsx b/packages/snaps-storybook/src/components/snaps/Row.tsx new file mode 100644 index 0000000000..8aa937b70e --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/Row.tsx @@ -0,0 +1,86 @@ +import { + Box, + Flex, + Text, + Tooltip as ChakraTooltip, + useStyleConfig, +} from '@chakra-ui/react'; +import type { RowProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import { DangerIcon, QuestionIcon, WarningIcon } from '../icons'; +import type { RenderProps } from '../Renderer'; +import { Renderer } from '../Renderer'; + +/** + * Get the icon for the row variant. + * + * @param variant - The variant of the row. + * @returns The icon for the row variant. + */ +function getRowIcon(variant: RowProps['variant']) { + switch (variant) { + case 'warning': + return ; + case 'critical': + return ; + default: + return ; + } +} + +/** + * The props for the {@link Tooltip} component. + */ +type TooltipProps = Pick; + +/** + * The tooltip component, which is rendered in the row. + * + * @param props - The props of the component. + * @param props.tooltip - The tooltip content. + * @param props.variant - The variant of the tooltip. + * @returns The tooltip element. + */ +const Tooltip: FunctionComponent = ({ tooltip, variant }) => { + if (!tooltip) { + return null; + } + + return ( + + {getRowIcon(variant)} + + ); +}; + +/** + * The row component. See {@link RowProps} for the props. + * + * @param props - The props of the component. + * @param props.id - The unique ID to use as key for the renderer. + * @param props.label - The label of the row. + * @param props.variant - The variant of the row. + * @param props.tooltip - The tooltip content. + * @param props.children - The children of the row. + * @returns A row element. + */ +export const Row: FunctionComponent> = ({ + id, + label, + variant = 'default', + tooltip, + children, +}) => { + const styles = useStyleConfig('Row', { variant }); + + return ( + + + {label} + + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/Text.tsx b/packages/snaps-storybook/src/components/snaps/Text.tsx new file mode 100644 index 0000000000..36ad742854 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/Text.tsx @@ -0,0 +1,25 @@ +import { Text as ChakraText } from '@chakra-ui/react'; +import type { TextProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../Renderer'; +import { Renderer } from '../Renderer'; + +/** + * The text component. See {@link TextProps} for the props. + * + * @param props - The text props. + * @param props.id - The unique ID to use as key for the renderer. + * @param props.children - The text content. + * @returns The rendered text. + */ +export const Text: FunctionComponent> = ({ + id, + children, +}) => { + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/custom/Extension.tsx b/packages/snaps-storybook/src/components/snaps/custom/Extension.tsx new file mode 100644 index 0000000000..019dd9aae4 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/custom/Extension.tsx @@ -0,0 +1,44 @@ +import { Box } from '@chakra-ui/react'; +import type { JSXElement } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import { Delineator } from '../../Delineator'; +import { Header } from '../../Header'; +import type { RenderProps } from '../../Renderer'; +import { Renderer } from '../../Renderer'; + +/** + * The props for the {@link Extension} component. + */ +export type ExtensionProps = { + /** + * The JSX element to render in the extension. + */ + children: JSXElement; +}; + +/** + * The MetaMask extension window as a component. This renders the authorship + * header and the content of the Snap in the delineator. + * + * @param props - The component props. + * @param props.id - The unique ID to use as key for the renderer. + * @param props.children - The JSX element to render in the extension. + * @returns The rendered component. + */ +export const Extension: FunctionComponent> = ({ + id, + children, +}) => ( + +

+ + + + +); diff --git a/packages/snaps-storybook/src/components/snaps/custom/ThemeProvider.tsx b/packages/snaps-storybook/src/components/snaps/custom/ThemeProvider.tsx new file mode 100644 index 0000000000..411bb0eab3 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/custom/ThemeProvider.tsx @@ -0,0 +1,47 @@ +import { ChakraProvider } from '@chakra-ui/react'; +import type { JSXElement } from '@metamask/snaps-sdk/jsx'; +import { DecoratorHelpers } from '@storybook/addon-themes'; +import type { FunctionComponent } from 'react'; + +import { theme } from '../../../theme'; +import { ColorMode } from '../../ColorMode'; +import { Renderer } from '../../Renderer'; + +const { initializeThemeState } = DecoratorHelpers; + +/** + * The props for the {@link ThemeProvider} component. + */ +export type ThemeProviderProps = { + /** + * The JSX element to render. + */ + children: JSXElement; + + /** + * The theme to use. + */ + theme: 'light' | 'dark'; +}; + +/** + * The theme provider component. This provides the theme values to Chakra UI. + * + * @param props - The theme provider props. + * @param props.children - The JSX element to render. + * @param props.theme - The theme to use. + * @returns The rendered theme provider. + */ +export const ThemeProvider: FunctionComponent = ({ + children, + theme: selectedTheme, +}) => { + initializeThemeState(['light', 'dark'], 'light'); + + return ( + + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/custom/index.ts b/packages/snaps-storybook/src/components/snaps/custom/index.ts new file mode 100644 index 0000000000..48668fe955 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/custom/index.ts @@ -0,0 +1,2 @@ +export * from './Extension'; +export * from './ThemeProvider'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts new file mode 100644 index 0000000000..25b753603d --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -0,0 +1,13 @@ +// Components that are exported here can be used by Snaps to render JSX +// elements. There are some custom components that are not part the Snaps JSX +// components, but are used by the Storybook plugin to render the extension +// window and provide the necessary context for the Snap to render. + +export * from './custom'; + +export * from './Address'; +export * from './Box'; +export * from './Button'; +export * from './Heading'; +export * from './Row'; +export * from './Text'; diff --git a/packages/snaps-storybook/src/constants.ts b/packages/snaps-storybook/src/constants.ts new file mode 100644 index 0000000000..43732a5d6d --- /dev/null +++ b/packages/snaps-storybook/src/constants.ts @@ -0,0 +1 @@ +export const ADDON_ID = 'metamask/snaps-storybook'; diff --git a/packages/snaps-storybook/src/decorators.tsx b/packages/snaps-storybook/src/decorators.tsx new file mode 100644 index 0000000000..632f56b04e --- /dev/null +++ b/packages/snaps-storybook/src/decorators.tsx @@ -0,0 +1,52 @@ +import type { GenericSnapElement } from '@metamask/snaps-sdk/jsx'; + +import type { Decorator } from './types'; + +/** + * Wrap the story in a `ThemeProvider` with the theme from the global context. + * + * @param storyFn - The story function. + * @param context - The context. + * @returns The decorated story. + */ +const withThemeProvider: Decorator = (storyFn, context) => { + const element = storyFn() as GenericSnapElement; + const { theme } = context.globals; + + return { + type: 'ThemeProvider', + props: { + children: element, + theme, + }, + key: null, + }; +}; + +/** + * Wrap the story in the extension frame if the `extension` global is set. + * + * @param storyFn - The story function. + * @param context - The context. + * @returns The decorated story. + */ +const withExtension: Decorator = (storyFn, context) => { + const element = storyFn() as GenericSnapElement; + + if (context.globals.extension && element.type !== 'Extension') { + return { + type: 'Extension', + props: { + children: element, + }, + key: null, + }; + } + + return element; +}; + +// Note: The order here is important. The first decorator in the array is the +// innermost decorator. The last decorator in the array is the outermost +// decorator. +export const decorators: Decorator[] = [withExtension, withThemeProvider]; diff --git a/packages/snaps-storybook/src/docs.test.ts b/packages/snaps-storybook/src/docs.test.ts new file mode 100644 index 0000000000..80208f5fc1 --- /dev/null +++ b/packages/snaps-storybook/src/docs.test.ts @@ -0,0 +1,22 @@ +import { getSourceCode } from './docs'; + +describe('getSourceCode', () => { + it('returns the JSX source code from a Storybook story', async () => { + const code = ` + { + render: props => , + args: { + bar: 'baz', + children: , + } + } + `; + + expect(getSourceCode(code)).toMatchInlineSnapshot(` + " + + + " + `); + }); +}); diff --git a/packages/snaps-storybook/src/docs.ts b/packages/snaps-storybook/src/docs.ts new file mode 100644 index 0000000000..6d60b475c4 --- /dev/null +++ b/packages/snaps-storybook/src/docs.ts @@ -0,0 +1,256 @@ +import generate from '@babel/generator'; +import { parse } from '@babel/parser'; +import type { NodePath } from '@babel/traverse'; +import traverse from '@babel/traverse'; +import type { + Expression, + JSXAttribute, + JSXElement, + Node, + ObjectProperty, +} from '@babel/types'; +import { + isJSXElement, + jsxClosingElement, + isJSXOpeningElement, + isArrayExpression, + jsxText, + isExpression, + isStringLiteral, + jsxExpressionContainer, + isObjectProperty, + isIdentifier, + isObjectExpression, + isArrowFunctionExpression, + isFunctionExpression, + jsxAttribute, + jsxIdentifier, +} from '@babel/types'; +import parser from 'prettier/parser-babel'; +import { format } from 'prettier/standalone'; + +/** + * Find a node in the AST. + * + * @param ast - The AST to search. + * @param condition - The condition to match. + * @returns The node if found. + * @template Type - The type of node to find. This can be inferred from the + * condition. + * @example + * const property = find(ast, (path): path is NodePath => { + * return ( + * isObjectProperty(path.node) && + * isIdentifier(path.node.key, { name: 'render' }) + * ); + * }); + */ +function find( + ast: Node, + condition: (path: NodePath) => path is NodePath, +) { + let result: Type | undefined; + + traverse(ast, { + enter(path) { + if (condition(path)) { + path.stop(); + result = path.node; + + return null; + } + + return null; + }, + }); + + return result; +} + +/** + * Get the render function from an object expression. + * + * @param ast - The AST to search. + * @returns The render function. + */ +function getRenderFunction(ast: Node) { + const property = find(ast, (path): path is NodePath => { + return ( + isObjectProperty(path.node) && + isIdentifier(path.node.key, { name: 'render' }) + ); + }); + + if ( + property && + (isFunctionExpression(property.value) || + isArrowFunctionExpression(property.value)) + ) { + return property.value; + } + + return null; +} + +type Args = Record; + +/** + * Get the args object from an object expression. + * + * @param ast - The AST to search. + * @returns The args object. + */ +function getArgsObject(ast: Node): Args | null { + const args = find(ast, (path): path is NodePath => { + return ( + isObjectProperty(path.node) && + isIdentifier(path.node.key, { name: 'args' }) + ); + }); + + if (args && isObjectExpression(args.value)) { + return args.value.properties + .filter((property): property is ObjectProperty => + isObjectProperty(property), + ) + .reduce((accumulator, property) => { + if (!isIdentifier(property.key) || !isExpression(property.value)) { + return accumulator; + } + + return { + ...accumulator, + [property.key.name]: property.value, + }; + }, {}); + } + + return null; +} + +/** + * Get a JSX attribute (i.e., `key={value}`) from a name and expression. String + * literals are returned as is, while other expressions are wrapped in an + * expression container (`{}`). + * + * @param name - The name of the attribute. + * @param expression - The expression to use as the value. + * @returns The JSX attribute. + */ +function getJsxAttribute( + name: PropertyKey, + expression: Expression, +): JSXAttribute | null { + const identifier = jsxIdentifier(name.toString()); + if (isStringLiteral(expression)) { + return jsxAttribute(identifier, expression); + } + + return jsxAttribute(identifier, jsxExpressionContainer(expression)); +} + +/** + * Get all children from an expression. + * + * @param children - The children expression. + * @returns The children as JSX elements. + */ +function getChildren(children: Expression): JSXElement['children'] { + if (isArrayExpression(children)) { + return children.elements + .filter((element): element is Expression => isExpression(element)) + .flatMap(getChildren); + } + + if (isStringLiteral(children)) { + return [jsxText(children.value)]; + } + + if (isJSXElement(children)) { + return [children]; + } + + return [jsxExpressionContainer(children)]; +} + +/** + * Get the source code for a Storybook story. This assumes the story is an + * object with a render function and args object. Story functions are not + * supported at this time. + * + * @param code - The code to transform. + * @returns The transformed code. + * @example + * const code = ` + * { + * render: props => , + * args: { + * bar: 'baz', + * children: , + * }, + * } + * `; + * + * getSourceCode(code); // "" + */ +export function getSourceCode(code: string) { + const ast = parse(`(${code})`, { + plugins: ['jsx'], + }); + + const render = getRenderFunction(ast); + const name = isIdentifier(render?.params[0]) + ? render?.params[0].name + : 'props'; + + const args = getArgsObject(ast); + + // If the render function or args object are not found, return the original + // code. + if (!render || !args) { + return code; + } + + let currentElement: JSXElement | null = null; + + // Create the JSX element from the render function and args object. + traverse(ast, { + JSXElement(path) { + currentElement = path.node; + }, + + JSXSpreadAttribute(path) { + if ( + isIdentifier(path.node.argument) && + path.node.argument.name === name + ) { + path.replaceWithMultiple( + Object.entries(args) + .filter(([key]) => key !== 'children') + .map(([key, value]) => getJsxAttribute(key, value)) + .filter((value): value is JSXAttribute => value !== null), + ); + } + + if (args.children && currentElement) { + if (isJSXOpeningElement(path.parent)) { + path.parent.selfClosing = false; + currentElement.closingElement = jsxClosingElement(path.parent.name); + } + + currentElement.children = getChildren(args.children); + } + }, + }); + + // If we don't add a leading semicolon, Prettier will add one itself. Instead, + // we add a leading semicolon and remove it after formatting. + const output = `;${generate(render.body).code}`; + return format(output, { + parser: 'babel', + plugins: [parser], + singleQuote: true, + jsxSingleQuote: false, + semi: false, + }).slice(1); +} diff --git a/packages/snaps-storybook/src/globals.ts b/packages/snaps-storybook/src/globals.ts new file mode 100644 index 0000000000..f365cb6a84 --- /dev/null +++ b/packages/snaps-storybook/src/globals.ts @@ -0,0 +1,74 @@ +import type { GlobalTypes, Parameters, StoryContext } from '@storybook/types'; + +import { getSourceCode } from './docs'; +import { theme } from './theme/storybook'; +import type { SnapsRenderer } from './types'; + +/** + * Global types for the Storybook stories. This is mainly used to configure the + * toolbar. + * + * These types are automatically added to the toolbar by + * `@storybook/addon-toolbars`, which is loaded by this preset. + */ +export const globalTypes: GlobalTypes = { + extension: { + name: 'Extension', + description: 'Toggle the MetaMask extension window', + defaultValue: false, + toolbar: { + icon: 'browser', + items: [ + { + value: true, + title: 'Enable MetaMask', + }, + { + value: false, + title: 'Disable MetaMask', + }, + ], + dynamicTitle: true, + }, + }, + theme: { + name: 'Theme', + description: 'The theme of the UI', + defaultValue: 'light', + toolbar: { + icon: 'mirror', + items: [ + { + value: 'light', + right: '🌞', + title: 'Light theme', + }, + { + value: 'dark', + right: '🌚', + title: 'Dark theme', + }, + ], + dynamicTitle: true, + }, + }, +}; + +/** + * The parameters for the Storybook stories. This is mainly used to configure + * the documentation generation. + */ +export const parameters: Parameters = { + docs: { + story: { inline: true }, + source: { + transform: ( + code: string, + _context: StoryContext>, + ) => { + return getSourceCode(code); + }, + }, + theme, + }, +}; diff --git a/packages/snaps-storybook/src/index.ts b/packages/snaps-storybook/src/index.ts new file mode 100644 index 0000000000..fcb073fefc --- /dev/null +++ b/packages/snaps-storybook/src/index.ts @@ -0,0 +1 @@ +export * from './types'; diff --git a/packages/snaps-storybook/src/manager.ts b/packages/snaps-storybook/src/manager.ts new file mode 100644 index 0000000000..fe077b89b0 --- /dev/null +++ b/packages/snaps-storybook/src/manager.ts @@ -0,0 +1,8 @@ +import { addons } from '@storybook/manager-api'; + +import { theme } from './theme/storybook'; + +// Modify the Storybook theme to match MetaMask's theme. +addons.setConfig({ + theme, +}); diff --git a/packages/snaps-storybook/src/preset.ts b/packages/snaps-storybook/src/preset.ts new file mode 100644 index 0000000000..857e0280b0 --- /dev/null +++ b/packages/snaps-storybook/src/preset.ts @@ -0,0 +1,155 @@ +import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; +import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill'; +import type { ViteFinal } from '@storybook/builder-vite'; +import type { PresetProperty } from '@storybook/types'; +import { resolve, dirname, join } from 'path'; + +/** + * Get the absolute path of a file in an Node.js package. + * + * @param input - The package name. + * @param paths - The paths to join to the package directory. + * @returns The absolute path. + */ +const getAbsolutePath = (input: string, ...paths: string[]): string => + resolve(dirname(require.resolve(join(input, 'package.json'))), ...paths); + +/** + * The core preset for the Snaps Storybook package. This preset configures the + * Storybook builder and renderer to use the Webpack builder and Snaps renderer. + */ +export const core: PresetProperty<'core'> = { + builder: getAbsolutePath('@storybook/builder-vite'), + renderer: getAbsolutePath('@metamask/snaps-storybook'), +}; + +/** + * This function is called by Storybook to configure the static directories. It + * is used to add the `@metamask/snaps-storybook` package's assets to the static + * directories, so that they are copied to the output directory during the + * build. + * + * @param input - The original static directories. + * @returns The modified static directories. + */ +export const staticDirs: PresetProperty<'staticDirs'> = (input = []) => { + return [ + ...input, + { + from: getAbsolutePath('@metamask/snaps-storybook', 'src/assets'), + to: 'snaps', + }, + ]; +}; + +/** + * This function is called by Storybook to configure the preview. It is used to + * add the `preview.js` file to the preview configuration, which sets up the + * renderer for the Snaps components. + * + * @param input - The original preview configuration. + * @returns The modified preview configuration. + */ +export const previewAnnotations: PresetProperty<'previewAnnotations'> = ( + input = [], +) => { + return [ + ...input, + require.resolve('./preview.mjs'), + require.resolve('./globals.mjs'), + require.resolve('./decorators.mjs'), + ]; +}; + +/** + * This function is called by Storybook to configure the manager entries. It is + * used to add the `manager.js` file to the manager configuration, which sets up + * the Snaps addon. + * + * @param input - The original manager entries. + * @returns The modified manager entries. + */ +export const managerEntries = (input: string[] = []) => { + return [...input, require.resolve('./manager.mjs')]; +}; + +/** + * Extra addons to include in the Storybook configuration. + */ +export const addons: PresetProperty<'addons'> = [ + getAbsolutePath('@storybook/addon-docs'), + getAbsolutePath('@storybook/addon-toolbars'), +]; + +const CUSTOM_HEAD = ` + + + + + + + + + + + + + + + + + + + +`; + +/** + * This function is called by Storybook to configure the manager head. It is + * used to inject the custom fonts into the manager head. + * + * @param head - The original manager head. + * @returns The modified manager head. + */ +export const managerHead: PresetProperty<'managerHead'> = (head = '') => ` + ${head} + ${CUSTOM_HEAD} +`; + +/** + * This function is called by Storybook to configure the preview head. It is + * used to inject the custom fonts into the preview head. + * + * @param head - The original preview head. + * @returns The modified preview head. + */ +export const previewHead: PresetProperty<'previewHead'> = (head = '') => ` + ${head} + ${CUSTOM_HEAD} +`; + +/** + * Modify the Vite configuration to include the Node.js globals and modules + * polyfills. + * + * @param config - The Vite configuration. + * @returns The modified Vite configuration. + */ +export const viteFinal: ViteFinal = (config) => { + return { + ...config, + optimizeDeps: { + ...config.optimizeDeps, + esbuildOptions: { + ...config.optimizeDeps?.esbuildOptions, + plugins: [ + ...(config.optimizeDeps?.esbuildOptions?.plugins ?? []), + NodeGlobalsPolyfillPlugin({ + buffer: true, + process: true, + }), + NodeModulesPolyfillPlugin(), + ], + }, + }, + }; +}; diff --git a/packages/snaps-storybook/src/preview.ts b/packages/snaps-storybook/src/preview.ts new file mode 100644 index 0000000000..6d774e90ad --- /dev/null +++ b/packages/snaps-storybook/src/preview.ts @@ -0,0 +1 @@ +export { render, renderToCanvas } from './render'; diff --git a/packages/snaps-storybook/src/render.tsx b/packages/snaps-storybook/src/render.tsx new file mode 100644 index 0000000000..3c4e3ff956 --- /dev/null +++ b/packages/snaps-storybook/src/render.tsx @@ -0,0 +1,66 @@ +import type { JSXElement } from '@metamask/snaps-sdk/jsx'; +import { renderElement, unmountElement } from '@storybook/react-dom-shim'; +import type { ArgsStoryFn, RenderToCanvas } from '@storybook/types'; +import { StrictMode } from 'react'; + +import { ErrorBoundary, Renderer } from './components'; +import type { SnapsRenderer } from './types'; + +/** + * Render a story. + * + * @param args - The story arguments. + * @param context - The story context. + * @returns The rendered story. + */ +export const render: ArgsStoryFn = (args, context) => { + const { id, component: Component } = context; + if (!Component) { + throw new Error( + `Unable to render story ${id} as the component annotation is missing from the default export`, + ); + } + + return ; +}; + +/** + * Render a story to a "canvas" (i.e., a DOM element, not a literal canvas). + * This renders `@metamask/snaps-sdk` JSX elements to the DOM, by creating a + * React root and rendering a template renderer which renders the JSX elements + * to the DOM. + * + * @param context - The context of the story. + * @param context.storyFn - The story function. + * @param context.showMain - A function that displays the main view. + * @param context.showException - A function that displays an exception. + * @param context.forceRemount - Whether to force remount the component. + * @param canvas - The DOM element to render the story to. + * @returns A cleanup function. + */ +export const renderToCanvas: RenderToCanvas = async ( + { storyFn, showMain, showException, forceRemount }, + canvas, +) => { + const storyElement = storyFn() as JSXElement; + + const element = ( + + + + + + ); + + if (forceRemount) { + unmountElement(canvas); + } + + // We render the element using `@storybook/react-dom-shim`, since it handles + // multiple renderers and contexts. + await renderElement(element, canvas); + + return () => { + unmountElement(canvas); + }; +}; diff --git a/packages/snaps-storybook/src/theme/borders.ts b/packages/snaps-storybook/src/theme/borders.ts new file mode 100644 index 0000000000..4fbfd703c2 --- /dev/null +++ b/packages/snaps-storybook/src/theme/borders.ts @@ -0,0 +1,10 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import { getDesignTokens } from './utils'; + +export const borders = { + muted: { + default: `1px solid ${getDesignTokens('colors').border.muted.default}`, + _dark: `1px solid ${getDesignTokens('colors').border.muted._dark}`, + }, +}; diff --git a/packages/snaps-storybook/src/theme/components/button.ts b/packages/snaps-storybook/src/theme/components/button.ts new file mode 100644 index 0000000000..309d1e3280 --- /dev/null +++ b/packages/snaps-storybook/src/theme/components/button.ts @@ -0,0 +1,46 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const Button = defineStyleConfig({ + baseStyle: defineStyle({ + background: 'none', + maxWidth: 'fit-content', + _disabled: { + opacity: 1, + }, + }), + + variants: { + primary: defineStyle({ + color: 'info.default', + _disabled: { + color: 'text.muted', + }, + }), + + destructive: defineStyle({ + color: 'error.default', + _disabled: { + color: 'text.muted', + }, + }), + }, + + sizes: { + text: defineStyle({ + lineHeight: 'short', + fontSize: 'sm', + fontWeight: '500', + margin: 0, + padding: 0, + paddingInlineStart: 0, + paddingInlineEnd: 0, + }), + }, + + defaultProps: { + variant: 'primary', + size: 'text', + }, +}); diff --git a/packages/snaps-storybook/src/theme/components/heading.ts b/packages/snaps-storybook/src/theme/components/heading.ts new file mode 100644 index 0000000000..507a5cc839 --- /dev/null +++ b/packages/snaps-storybook/src/theme/components/heading.ts @@ -0,0 +1,19 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const Heading = defineStyleConfig({ + baseStyle: defineStyle({ + color: 'text.default', + fontWeight: '700', + }), + + sizes: { + md: { + fontSize: 'md', + lineHeight: 'base', + }, + }, + + defaultProps: { + size: 'md', + }, +}); diff --git a/packages/snaps-storybook/src/theme/components/index.ts b/packages/snaps-storybook/src/theme/components/index.ts new file mode 100644 index 0000000000..f56024d2ad --- /dev/null +++ b/packages/snaps-storybook/src/theme/components/index.ts @@ -0,0 +1,4 @@ +export * from './button'; +export * from './heading'; +export * from './row'; +export * from './text'; diff --git a/packages/snaps-storybook/src/theme/components/row.ts b/packages/snaps-storybook/src/theme/components/row.ts new file mode 100644 index 0000000000..e27a43deed --- /dev/null +++ b/packages/snaps-storybook/src/theme/components/row.ts @@ -0,0 +1,29 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const Row = defineStyleConfig({ + baseStyle: defineStyle({ + display: 'flex', + gap: '1', + justifyContent: 'space-between', + borderRadius: 'lg', + paddingY: 'px', + }), + + variants: { + default: defineStyle({ + flexDirection: 'row', + }), + + warning: defineStyle({ + color: 'warning.default', + background: 'warning.muted', + paddingX: '2', + }), + + critical: defineStyle({ + color: 'error.default', + background: 'error.muted', + paddingX: '2', + }), + }, +}); diff --git a/packages/snaps-storybook/src/theme/components/text.ts b/packages/snaps-storybook/src/theme/components/text.ts new file mode 100644 index 0000000000..2a75b643c5 --- /dev/null +++ b/packages/snaps-storybook/src/theme/components/text.ts @@ -0,0 +1,8 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const Text = defineStyleConfig({ + baseStyle: defineStyle({ + fontSize: 'sm', + lineHeight: 'short', + }), +}); diff --git a/packages/snaps-storybook/src/theme/config.ts b/packages/snaps-storybook/src/theme/config.ts new file mode 100644 index 0000000000..7dc3d3c3aa --- /dev/null +++ b/packages/snaps-storybook/src/theme/config.ts @@ -0,0 +1,6 @@ +import type { ThemeConfig } from '@chakra-ui/react'; + +export const config: ThemeConfig = { + initialColorMode: 'light', + useSystemColorMode: false, +}; diff --git a/packages/snaps-storybook/src/theme/index.ts b/packages/snaps-storybook/src/theme/index.ts new file mode 100644 index 0000000000..87b377088e --- /dev/null +++ b/packages/snaps-storybook/src/theme/index.ts @@ -0,0 +1,24 @@ +import { extendTheme } from '@chakra-ui/react'; + +import { borders } from './borders'; +import * as components from './components'; +import { config } from './config'; +import { styles } from './styles'; +import { getDesignTokens } from './utils'; + +export const theme = extendTheme({ + config, + components, + + semanticTokens: { + borders, + colors: getDesignTokens('colors'), + }, + + fonts: { + heading: `"Euclid Circular B", sans-serif`, + body: `"Euclid Circular B", sans-serif`, + }, + + styles, +}); diff --git a/packages/snaps-storybook/src/theme/storybook.ts b/packages/snaps-storybook/src/theme/storybook.ts new file mode 100644 index 0000000000..677fafb7fb --- /dev/null +++ b/packages/snaps-storybook/src/theme/storybook.ts @@ -0,0 +1,59 @@ +import { colors as tokens } from '@metamask/design-tokens'; +import { create } from '@storybook/theming'; + +const colors = tokens.light; + +/** + * The theme for the Storybook UI itself. + */ +export const theme = create( + { + brandTitle: 'MetaMask Snaps Storybook', + brandUrl: 'https://metamask.io', + brandImage: './snaps/logo.svg', + brandTarget: '_self', + + base: 'light', + + // Storybook-specific color palette + colorPrimary: colors.primary.default, + colorSecondary: colors.primary.alternative, + + // UI + appBg: colors.background.alternative, + appContentBg: colors.background.default, + appPreviewBg: colors.background.default, + appBorderColor: colors.border.muted, + appBorderRadius: 4, + + // Fonts + fontBase: '"Inter", sans-serif', + fontCode: '"IBM Plex Mono", monospace', + + // Text colors + textColor: colors.text.default, + textInverseColor: colors.background.default, + textMutedColor: colors.text.muted, + + // Toolbar default and active colors + barTextColor: colors.text.alternative, + barHoverColor: colors.info.default, + barSelectedColor: colors.info.default, + barBg: colors.background.default, + + // Form colors + buttonBg: colors.primary.muted, + buttonBorder: colors.primary.muted, + booleanBg: colors.background.alternativePressed, + booleanSelectedBg: colors.background.alternativePressed, + inputBg: colors.background.default, + inputBorder: colors.border.muted, + inputTextColor: colors.text.default, + inputBorderRadius: 4, + }, + { + background: { + content: '#fff', + }, + }, +); diff --git a/packages/snaps-storybook/src/theme/styles.ts b/packages/snaps-storybook/src/theme/styles.ts new file mode 100644 index 0000000000..e937732b67 --- /dev/null +++ b/packages/snaps-storybook/src/theme/styles.ts @@ -0,0 +1,16 @@ +import type { Styles } from '@chakra-ui/theme-tools'; + +export const styles: Styles = { + global: { + body: { + background: 'background.default', + color: 'text.default', + }, + + // The Storybook docs container. + '.docs-story': { + background: 'background.default', + color: 'text.default', + }, + }, +}; diff --git a/packages/snaps-storybook/src/theme/utils.test.ts b/packages/snaps-storybook/src/theme/utils.test.ts new file mode 100644 index 0000000000..1c237849d6 --- /dev/null +++ b/packages/snaps-storybook/src/theme/utils.test.ts @@ -0,0 +1,230 @@ +import { getDesignTokens } from './utils'; + +describe('getDesignTokens', () => { + it('returns design tokens', () => { + expect(getDesignTokens('colors')).toMatchInlineSnapshot(` + { + "background": { + "alternative": { + "_dark": "#141618", + "default": "#f2f4f6", + }, + "alternativeHover": { + "_dark": "#1f2123", + "default": "#e7ebee", + }, + "alternativePressed": { + "_dark": "#2e3033", + "default": "#dbe0e6", + }, + "default": { + "_dark": "#24272a", + "default": "#ffffff", + }, + "defaultHover": { + "_dark": "#313235", + "default": "#f5f5f5", + }, + "defaultPressed": { + "_dark": "#3f4145", + "default": "#ebebeb", + }, + "hover": { + "_dark": "#ffffff0a", + "default": "#0000000a", + }, + "pressed": { + "_dark": "#ffffff14", + "default": "#00000014", + }, + }, + "border": { + "default": { + "_dark": "#848c96", + "default": "#bbc0c5", + }, + "muted": { + "_dark": "#848c9629", + "default": "#bbc0c566", + }, + }, + "error": { + "alternative": { + "_dark": "#f1b9be", + "default": "#8e1d28", + }, + "default": { + "_dark": "#e88f97", + "default": "#d73847", + }, + "defaultHover": { + "_dark": "#e47782", + "default": "#d02a3a", + }, + "defaultPressed": { + "_dark": "#e78891", + "default": "#bf2635", + }, + "inverse": { + "_dark": "#141618", + "default": "#ffffff", + }, + "muted": { + "_dark": "#e88f9726", + "default": "#d738471a", + }, + }, + "flask": { + "default": { + "_dark": "#d27dff", + "default": "#8b45b6", + }, + "inverse": { + "_dark": "#141618", + "default": "#ffffff", + }, + }, + "icon": { + "alternative": { + "_dark": "#bbc0c5", + "default": "#6a737d", + }, + "default": { + "_dark": "#ffffff", + "default": "#141618", + }, + "muted": { + "_dark": "#848c96", + "default": "#9fa6ae", + }, + }, + "info": { + "default": { + "_dark": "#43aefc", + "default": "#0376c9", + }, + "inverse": { + "_dark": "#141618", + "default": "#ffffff", + }, + "muted": { + "_dark": "#43aefc26", + "default": "#0376c91a", + }, + }, + "overlay": { + "alternative": { + "_dark": "#000000cc", + "default": "#000000cc", + }, + "default": { + "_dark": "#00000099", + "default": "#00000099", + }, + "inverse": { + "_dark": "#ffffff", + "default": "#ffffff", + }, + }, + "primary": { + "alternative": { + "_dark": "#75c4fd", + "default": "#0260a4", + }, + "default": { + "_dark": "#43aefc", + "default": "#0376c9", + }, + "defaultHover": { + "_dark": "#26a2fc", + "default": "#036ab5", + }, + "defaultPressed": { + "_dark": "#3baafd", + "default": "#025ea1", + }, + "inverse": { + "_dark": "#141618", + "default": "#ffffff", + }, + "muted": { + "_dark": "#43aefc26", + "default": "#0376c91a", + }, + }, + "shadow": { + "default": { + "_dark": "#00000066", + "default": "#0000001a", + }, + "error": { + "_dark": "#ff758466", + "default": "#ca354266", + }, + "primary": { + "_dark": "#43aefc33", + "default": "#0376c933", + }, + }, + "success": { + "default": { + "_dark": "#28a745", + "default": "#1c8234", + }, + "defaultHover": { + "_dark": "#2cb94c", + "default": "#18712d", + }, + "defaultPressed": { + "_dark": "#30ca53", + "default": "#156127", + }, + "inverse": { + "_dark": "#141618", + "default": "#ffffff", + }, + "muted": { + "_dark": "#28a74526", + "default": "#1c82341a", + }, + }, + "text": { + "alternative": { + "_dark": "#bbc0c5", + "default": "#6a737d", + }, + "default": { + "_dark": "#ffffff", + "default": "#141618", + }, + "muted": { + "_dark": "#848c96", + "default": "#9fa6ae", + }, + }, + "warning": { + "default": { + "_dark": "#ffdf70", + "default": "#bf5208", + }, + "defaultHover": { + "_dark": "#ffe485", + "default": "#ac4a07", + }, + "defaultPressed": { + "_dark": "#ffe899", + "default": "#984106", + }, + "inverse": { + "_dark": "#141618", + "default": "#ffffff", + }, + "muted": { + "_dark": "#ffdf7026", + "default": "#bf52081a", + }, + }, + } + `); + }); +}); diff --git a/packages/snaps-storybook/src/theme/utils.ts b/packages/snaps-storybook/src/theme/utils.ts new file mode 100644 index 0000000000..94184a26ac --- /dev/null +++ b/packages/snaps-storybook/src/theme/utils.ts @@ -0,0 +1,36 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +import type { Theme } from '@metamask/design-tokens'; +import { darkTheme, lightTheme } from '@metamask/design-tokens'; + +export type DesignTokens = Record< + string, + Record +>; + +/** + * Create a Chakra-compatible design tokens object from the design tokens + * provided by the `@metamask/design-tokens` package. + * + * @param themeValue - The theme value to extract from the design tokens. + * @returns The design tokens for the specified theme value. + */ +export function getDesignTokens(themeValue: keyof Theme): DesignTokens { + return Object.fromEntries( + Object.entries(lightTheme[themeValue]).map(([themeKey, themeObject]) => [ + themeKey, + Object.fromEntries( + Object.entries(themeObject).map(([key, value]) => [ + key, + { + default: value as string, + _dark: + darkTheme[themeValue][themeKey as keyof Theme[typeof themeValue]][ + key + ], + }, + ]), + ), + ]), + ); +} diff --git a/packages/snaps-storybook/src/types.ts b/packages/snaps-storybook/src/types.ts new file mode 100644 index 0000000000..9b75c19af5 --- /dev/null +++ b/packages/snaps-storybook/src/types.ts @@ -0,0 +1,55 @@ +import type { JsonObject, SnapComponent } from '@metamask/snaps-sdk/jsx'; +import type { + Args, + ComponentAnnotations, + DecoratorFunction, + ProjectAnnotations, + StoryAnnotations, + StrictArgs, + WebRenderer, + ArgsStoryFn, +} from '@storybook/types'; + +/** + * The renderer for the component stories. + * + * @template Props - The props type for the component that is being rendered. + */ +export type SnapsRenderer> = + WebRenderer & { + component: SnapComponent; + }; + +/** + * Decorator function for the component story. + */ +export type Decorator = DecoratorFunction< + SnapsRenderer, + DecoratorArgs +>; + +/** + * Meta data for the component story. + */ +export type Meta = [ComponentOrArgs] extends [ + SnapComponent, +] + ? ComponentAnnotations, Props> + : ComponentAnnotations, ComponentOrArgs>; + +/** + * Story object for the component story. + */ +export type Story = StoryAnnotations; + +/** + * Story function for the component story. Note that this is not supported by + * the documentation source code generation, so using {@link Story} is + * recommended. + */ +export type StoryFunction = ArgsStoryFn; + +/** + * Preview config for the project. + */ +export type Preview = ProjectAnnotations; diff --git a/packages/snaps-storybook/src/types/jazzicon.d.ts b/packages/snaps-storybook/src/types/jazzicon.d.ts new file mode 100644 index 0000000000..887bf8c850 --- /dev/null +++ b/packages/snaps-storybook/src/types/jazzicon.d.ts @@ -0,0 +1,7 @@ +// eslint-disable-next-line import/unambiguous +declare module '@metamask/jazzicon' { + export default function createIcon( + diameter: number, + seed: number, + ): HTMLElement; +} diff --git a/packages/snaps-storybook/tsconfig.build.json b/packages/snaps-storybook/tsconfig.build.json new file mode 100644 index 0000000000..6103aa6dfa --- /dev/null +++ b/packages/snaps-storybook/tsconfig.build.json @@ -0,0 +1,24 @@ +{ + "extends": "../../tsconfig.packages.build.json", + "compilerOptions": { + "jsx": "react-jsx", + "baseUrl": "./", + "outDir": "./dist/types", + "rootDir": "./", + "skipLibCheck": true, + "resolveJsonModule": true + }, + "include": ["./src"], + "exclude": [ + "**/*.test.ts", + "**/*.test.tsx", + "./src/**/test-utils", + "./src/**/__mocks__", + "./src/**/__snapshots__" + ], + "references": [ + { + "path": "../snaps-sdk/tsconfig.build.json" + } + ] +} diff --git a/packages/snaps-storybook/tsconfig.json b/packages/snaps-storybook/tsconfig.json new file mode 100644 index 0000000000..9927c977ab --- /dev/null +++ b/packages/snaps-storybook/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.packages.json", + "compilerOptions": { + "baseUrl": "./", + "jsx": "react-jsx", + "jsxImportSource": "react" + }, + "include": ["./src", "tsup.config.ts"], + "references": [ + { + "path": "../snaps-sdk" + } + ] +} diff --git a/packages/snaps-storybook/tsup.config.ts b/packages/snaps-storybook/tsup.config.ts new file mode 100644 index 0000000000..301ea6c988 --- /dev/null +++ b/packages/snaps-storybook/tsup.config.ts @@ -0,0 +1,15 @@ +import deepmerge from 'deepmerge'; +import type { Options } from 'tsup'; + +import packageJson from './package.json'; + +// `tsup.config.ts` is not under `rootDir`, so we need to use `require` instead. +// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires +const { default: baseConfig } = require('../../tsup.config'); + +const config: Options = { + name: packageJson.name, + external: ['@storybook/manager-api'], +}; + +export default deepmerge(baseConfig, config); diff --git a/tsconfig.build.json b/tsconfig.build.json index 99ddb4f587..ef784ab5ff 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -11,6 +11,7 @@ { "path": "./packages/snaps-rpc-methods/tsconfig.build.json" }, { "path": "./packages/snaps-sdk/tsconfig.build.json" }, { "path": "./packages/snaps-simulator/tsconfig.build.json" }, + { "path": "./packages/snaps-storybook/tsconfig.build.json" }, { "path": "./packages/snaps-utils/tsconfig.build.json" }, { "path": "./packages/snaps-webpack-plugin/tsconfig.build.json" } ] diff --git a/tsconfig.json b/tsconfig.json index 39d06b3601..c9e9abc4cf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ { "path": "./packages/snaps-rpc-methods" }, { "path": "./packages/snaps-sdk" }, { "path": "./packages/snaps-simulator" }, + { "path": "./packages/snaps-storybook" }, { "path": "./packages/snaps-utils" }, { "path": "./packages/snaps-webpack-plugin" } ], diff --git a/yarn.lock b/yarn.lock index 2c52d7f368..aebfaa0cce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,7 +22,18 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:7.23.5, @babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": +"@aw-web-design/x-default-browser@npm:1.4.126": + version: 1.4.126 + resolution: "@aw-web-design/x-default-browser@npm:1.4.126" + dependencies: + default-browser-id: 3.0.0 + bin: + x-default-browser: bin/x-default-browser.js + checksum: f63b68a0ff41c8fe478b1b4822e169cac0d26c61b123c0400d5e16a8a5987732b85795aff16d6b21936f9c955f0d32bffbfc166890d3446f74a72a7a2c9633ea + languageName: node + linkType: hard + +"@babel/code-frame@npm:7.23.5": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -32,10 +43,20 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/compat-data@npm:7.23.2" - checksum: d8dc27437d40907b271161d4c88ffe72ccecb034c730deb1960a417b59a14d7c5ebca8cd80dd458a01cd396a7a329eb48cddcc3791b5a84da33d7f278f7bec6a +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": ^7.24.7 + picocolors: ^1.0.0 + checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/compat-data@npm:7.24.7" + checksum: 1fc276825dd434fe044877367dfac84171328e75a8483a6976aa28bf833b32367e90ee6df25bdd97c287d1aa8019757adcccac9153de70b1932c0d243a978ae9 languageName: node linkType: hard @@ -85,78 +106,79 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": - version: 7.23.6 - resolution: "@babel/generator@npm:7.23.6" +"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.24.4, @babel/generator@npm:^7.24.7, @babel/generator@npm:^7.7.2": + version: 7.24.7 + resolution: "@babel/generator@npm:7.24.7" dependencies: - "@babel/types": ^7.23.6 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 + "@babel/types": ^7.24.7 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 jsesc: ^2.5.1 - checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c + checksum: 0ff31a73b15429f1287e4d57b439bba4a266f8c673bb445fe313b82f6d110f586776997eb723a777cd7adad9d340edd162aea4973a90112c5d0cfcaf6686844b languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" +"@babel/helper-annotate-as-pure@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" dependencies: - "@babel/types": ^7.22.5 - checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + "@babel/types": ^7.24.7 + checksum: 6178566099a6a0657db7a7fa601a54fb4731ca0b8614fbdccfd8e523c210c13963649bc8fdfd53ce7dd14d05e3dda2fb22dea5b30113c488b9eb1a906d60212e languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" dependencies: - "@babel/types": ^7.22.15 - checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 71a6158a9fdebffb82fdc400d5555ba8f2e370cea81a0d578155877bdc4db7d5252b75c43b2fdf3f72b3f68348891f99bd35ae315542daad1b7ace8322b1abcb languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-compilation-targets@npm:7.24.7" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.15 - browserslist: ^4.21.9 + "@babel/compat-data": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + browserslist: ^4.22.2 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: ce85196769e091ae54dd39e4a80c2a9df1793da8588e335c383d536d54f06baf648d0a08fc873044f226398c4ded15c4ae9120ee18e7dfd7c639a68e3cdc9980 + checksum: dfc88bc35e223ade796c7267901728217c665adc5bc2e158f7b0ae850de14f1b7941bec4fe5950ae46236023cfbdeddd9c747c276acf9b39ca31f8dd97dc6cc6 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.15 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.9 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 + "@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/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 52c500d8d164abb3a360b1b7c4b8fff77bc4a5920d3a2b41ae6e1d30617b0dc0b972c1f5db35b1752007e04a748908b4a99bc872b73549ae837e87dcdde005a3 + checksum: 371a181a1717a9b0cebc97727c8ea9ca6afa34029476a684b6030f9d1ad94dcdafd7de175da10b63ae3ba79e4e82404db8ed968ebf264b768f097e5d64faab71 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 + "@babel/helper-annotate-as-pure": ^7.24.7 regexpu-core: ^5.3.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 + checksum: 17c59fa222af50f643946eca940ce1d474ff2da1f4afed2312687ab9d708ebbb8c9372754ddbdf44b6e21ead88b8fc144644f3a7b63ccb886de002458cef3974 languageName: node linkType: hard @@ -175,163 +197,185 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 +"@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" + dependencies: + "@babel/helper-compilation-targets": ^7.22.6 + "@babel/helper-plugin-utils": ^7.22.5 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" +"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-environment-visitor@npm:7.24.7" dependencies: - "@babel/template": ^7.22.15 - "@babel/types": ^7.23.0 - checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 + "@babel/types": ^7.24.7 + checksum: 079d86e65701b29ebc10baf6ed548d17c19b808a07aa6885cc141b690a78581b180ee92b580d755361dc3b16adf975b2d2058b8ce6c86675fcaf43cf22f2f7c6 languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" +"@babel/helper-function-name@npm:^7.23.0, @babel/helper-function-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-function-name@npm:7.24.7" dependencies: - "@babel/types": ^7.22.5 - checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + "@babel/template": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 142ee08922074dfdc0ff358e09ef9f07adf3671ab6eef4fca74dcf7a551f1a43717e7efa358c9e28d7eea84c28d7f177b7a58c70452fc312ae3b1893c5dab2a4 languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15": - version: 7.23.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" +"@babel/helper-hoist-variables@npm:^7.22.5, @babel/helper-hoist-variables@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-hoist-variables@npm:7.24.7" dependencies: - "@babel/types": ^7.23.0 - checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + "@babel/types": ^7.24.7 + checksum: 6cfdcf2289cd12185dcdbdf2435fa8d3447b797ac75851166de9fc8503e2fd0021db6baf8dfbecad3753e582c08e6a3f805c8d00cbed756060a877d705bd8d8d languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-module-imports@npm:7.22.15" +"@babel/helper-member-expression-to-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7" dependencies: - "@babel/types": ^7.22.15 - checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 9fecf412f85fa23b7cf55d19eb69de39f8240426a028b141c9df2aed8cfedf20b3ec3318d40312eb7a3dec9eea792828ce0d590e0ff62da3da532482f537192c languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-module-transforms@npm:7.23.0" +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.23.0, @babel/helper-module-transforms@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-transforms@npm:7.24.7" + dependencies: + "@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 peerDependencies: "@babel/core": ^7.0.0 - checksum: 6e2afffb058cf3f8ce92f5116f710dda4341c81cfcd872f9a0197ea594f7ce0ab3cb940b0590af2fe99e60d2e5448bfba6bca8156ed70a2ed4be2adc8586c891 + checksum: ddff3b41c2667876b4e4e73d961168f48a5ec9560c95c8c2d109e6221f9ca36c6f90c6317eb7a47f2a3c99419c356e529a86b79174cad0d4f7a61960866b88ca languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" +"@babel/helper-optimise-call-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" dependencies: - "@babel/types": ^7.22.5 - checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + "@babel/types": ^7.24.7 + checksum: 280654eaf90e92bf383d7eed49019573fb35a98c9e992668f701ad099957246721044be2068cf6840cb2299e0ad393705a1981c88c23a1048096a8d59e5f79a3 languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.22.5 - resolution: "@babel/helper-plugin-utils@npm:7.22.5" - checksum: c0fc7227076b6041acd2f0e818145d2e8c41968cc52fb5ca70eed48e21b8fe6dd88a0a91cbddf4951e33647336eb5ae184747ca706817ca3bef5e9e905151ff5 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.24.7 + resolution: "@babel/helper-plugin-utils@npm:7.24.7" + checksum: 81f2a15751d892e4a8fce25390f973363a5b27596167861d2d6eab0f61856eb2ba389b031a9f19f669c0bd4dd601185828d3cebafd25431be7a1696f2ce3ef68 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.20, @babel/helper-remap-async-to-generator@npm:^7.22.5": - version: 7.22.20 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" +"@babel/helper-remap-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-wrap-function": ^7.22.20 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-wrap-function": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + checksum: bab7be178f875350f22a2cb9248f67fe3a8a8128db77a25607096ca7599fd972bc7049fb11ed9e95b45a3f1dd1fac3846a3279f9cbac16f337ecb0e6ca76e1fc languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": - version: 7.22.20 - resolution: "@babel/helper-replace-supers@npm:7.22.20" +"@babel/helper-replace-supers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-replace-supers@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-member-expression-to-functions": ^7.22.15 - "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-member-expression-to-functions": ^7.24.7 + "@babel/helper-optimise-call-expression": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: a0008332e24daedea2e9498733e3c39b389d6d4512637e000f96f62b797e702ee24a407ccbcd7a236a551590a38f31282829a8ef35c50a3c0457d88218cae639 + checksum: 2bf0d113355c60d86a04e930812d36f5691f26c82d4ec1739e5ec0a4c982c9113dad3167f7c74f888a96328bd5e696372232406d8200e5979e6e0dc2af5e7c76 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" +"@babel/helper-simple-access@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-simple-access@npm:7.24.7" dependencies: - "@babel/types": ^7.22.5 - checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" dependencies: - "@babel/types": ^7.22.5 - checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 11b28fe534ce2b1a67c4d8e51a7b5711a2a0a0cae802f74614eee54cca58c744d9a62f6f60103c41759e81c537d270bfd665bf368a6bea214c6052f2094f8407 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" +"@babel/helper-split-export-declaration@npm:^7.22.6, @babel/helper-split-export-declaration@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-split-export-declaration@npm:7.24.7" dependencies: - "@babel/types": ^7.22.5 - checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 + "@babel/types": ^7.24.7 + checksum: e3ddc91273e5da67c6953f4aa34154d005a00791dc7afa6f41894e768748540f6ebcac5d16e72541aea0c89bee4b89b4da6a3d65972a0ea8bfd2352eda5b7e22 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/helper-string-parser@npm:7.23.4" - checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 +"@babel/helper-string-parser@npm:^7.23.4, @babel/helper-string-parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-string-parser@npm:7.24.7" + checksum: 09568193044a578743dd44bf7397940c27ea693f9812d24acb700890636b376847a611cdd0393a928544e79d7ad5b8b916bd8e6e772bc8a10c48a647a96e7b1a languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc +"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-validator-option@npm:7.22.15" - checksum: 68da52b1e10002a543161494c4bc0f4d0398c8fdf361d5f7f4272e95c45d5b32d974896d44f6a0ea7378c9204988879d73613ca683e13bd1304e46d25ff67a8d +"@babel/helper-validator-option@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-option@npm:7.24.7" + checksum: 9689166bf3f777dd424c026841c8cd651e41b21242dbfd4569a53086179a3e744c8eddd56e9d10b54142270141c91581b53af0d7c00c82d552d2540e2a919f7e languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-wrap-function@npm:7.22.20" +"@babel/helper-wrap-function@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-wrap-function@npm:7.24.7" dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.15 - "@babel/types": ^7.22.19 - checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + "@babel/helper-function-name": ^7.24.7 + "@babel/template": ^7.24.7 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: 085bf130ed08670336e3976f5841ae44e3e10001131632e22ef234659341978d2fd37e65785f59b6cb1745481347fc3bce84b33a685cacb0a297afbe1d2b03af languageName: node linkType: hard @@ -346,7 +390,7 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:7.23.4, @babel/highlight@npm:^7.23.4": +"@babel/highlight@npm:7.23.4": version: 7.23.4 resolution: "@babel/highlight@npm:7.23.4" dependencies: @@ -357,7 +401,19 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:7.23.9, @babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9": +"@babel/highlight@npm:^7.23.4, @babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": ^7.24.7 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + picocolors: ^1.0.0 + checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 + languageName: node + linkType: hard + +"@babel/parser@npm:7.23.9": version: 7.23.9 resolution: "@babel/parser@npm:7.23.9" bin: @@ -366,27 +422,60 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.15" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/parser@npm:7.24.7" + bin: + parser: ./bin/babel-parser.js + checksum: fc9d2c4c8712f89672edc55c0dc5cf640dcec715b56480f111f85c2bc1d507e251596e4110d65796690a96ac37a4b60432af90b3e97bb47e69d4ef83872dbbd6 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 8910ca21a7ec7c06f7b247d4b86c97c5aa15ef321518f44f6f490c5912fdf82c605aaa02b90892e375d82ccbedeadfdeadd922c1b836c9dd4c596871bf654753 + checksum: 68d315642b53af143aa17a71eb976cf431b51339aee584e29514a462b81c998636dd54219c2713b5f13e1df89eaf130dfab59683f9116825608708c81696b96c languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.15" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 7eb4e7ce5e3d6db4b0fdbdfaaa301c2e58f38a7ee39d5a4259a1fda61a612e83d3e4bc90fc36fb0345baf57e1e1a071e0caffeb80218623ad163f2fdc2e53a54 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.7 peerDependencies: "@babel/core": ^7.13.0 - checksum: fbefedc0da014c37f1a50a8094ce7dbbf2181ae93243f23d6ecba2499b5b20196c2124d6a4dfe3e9e0125798e80593103e456352a4beb4e5c6f7c75efb80fdac + checksum: 07b92878ac58a98ea1fdf6a8b4ec3413ba4fa66924e28b694d63ec5b84463123fbf4d7153b56cf3cedfef4a3482c082fe3243c04f8fb2c041b32b0e29b4a9e21 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" + dependencies: + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 8324d458db57060590942c7c2e9603880d07718ccb6450ec935105b8bd3c4393c4b8ada88e178c232258d91f33ffdcf2b1043d54e07a86989e50667ee100a32e languageName: node linkType: hard @@ -477,25 +566,36 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.22.5" +"@babel/plugin-syntax-flow@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-flow@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2b8b5572db04a7bef1e6cd20debf447e4eef7cb012616f5eceb8fa3e23ce469b8f76ee74fd6d1e158ba17a8f58b0aec579d092fb67c5a30e83ccfbc5754916c1 + checksum: 43b78b5fcdedb2a6d80c3d02a1a564fbfde86b73b442d616a8f318f673caa6ce0151513af5a00fcae42a512f144e70ef259d368b9537ee35d40336a6c895a7d4 languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.5" +"@babel/plugin-syntax-import-assertions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 197b3c5ea2a9649347f033342cb222ab47f4645633695205c0250c6bf2af29e643753b8bb24a2db39948bef08e7c540babfd365591eb57fc110cb30b425ffc47 + checksum: c4d67be4eb1d4637e361477dbe01f5b392b037d17c1f861cfa0faa120030e137aab90a9237931b8040fd31d1e5d159e11866fa1165f78beef7a3be876a391a17 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 590dbb5d1a15264f74670b427b8d18527672c3d6c91d7bae7e65f80fd810edbc83d90e68065088644cbad3f2457ed265a54a9956fb789fcb9a5b521822b3a275 languageName: node linkType: hard @@ -521,14 +621,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.22.5 - resolution: "@babel/plugin-syntax-jsx@npm:7.22.5" +"@babel/plugin-syntax-jsx@npm:^7.24.7, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.24.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8829d30c2617ab31393d99cec2978e41f014f4ac6f01a1cecf4c4dd8320c3ec12fdc3ce121126b2d8d32f6887e99ca1a0bad53dedb1e6ad165640b92b24980ce + checksum: 7a5ca629d8ca1e1ee78705a78e58c12920d07ed8006d7e7232b31296a384ff5e41d7b649bde5561196041037bbb9f9715be1d1c20975df87ca204f34ad15b965 languageName: node linkType: hard @@ -620,14 +720,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.22.5, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.22.5 - resolution: "@babel/plugin-syntax-typescript@npm:7.22.5" +"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.24.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8ab7718fbb026d64da93681a57797d60326097fd7cb930380c8bffd9eb101689e90142c760a14b51e8e69c88a73ba3da956cb4520a3b0c65743aee5c71ef360a + checksum: 56fe84f3044ecbf038977281648db6b63bd1301f2fff6595820dc10ee276c1d1586919d48d52a8d497ecae32c958be38f42c1c8d174dc58aad856c516dc5b35a languageName: node linkType: hard @@ -643,480 +743,491 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.22.5" +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 35abb6c57062802c7ce8bd96b2ef2883e3124370c688bbd67609f7d2453802fb73944df8808f893b6c67de978eb2bcf87bbfe325e46d6f39b5fcb09ece11d01a + checksum: 707c209b5331c7dc79bd326128c6a6640dbd62a78da1653c844db20c4f36bf7b68454f1bc4d2d051b3fde9136fa291f276ec03a071bb00ee653069ff82f91010 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.2" +"@babel/plugin-transform-async-generator-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-remap-async-to-generator": ^7.24.7 "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e1abae0edcda7304d7c17702ac25a127578791b89c4f767d60589249fa3e50ec33f8c9ff39d3d8d41f00b29947654eaddd4fd586e04c4d598122db745fab2868 + checksum: 112e3b18f9c496ebc01209fc27f0b41a3669c479c7bc44f7249383172b432ebaae1e523caa7c6ecbd2d0d7adcb7e5769fe2798f8cb01c08cd57232d1bb6d8ad4 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.22.5" +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-module-imports": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-remap-async-to-generator": ^7.22.5 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-remap-async-to-generator": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b95f23f99dcb379a9f0a1c2a3bbea3f8dc0e1b16dc1ac8b484fe378370169290a7a63d520959a9ba1232837cf74a80e23f6facbe14fd42a3cda6d3c2d7168e62 + checksum: 13704fb3b83effc868db2b71bfb2c77b895c56cb891954fc362e95e200afd523313b0e7cf04ce02f45b05e76017c5b5fa8070c92613727a35131bb542c253a36 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.22.5" +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 416b1341858e8ca4e524dee66044735956ced5f478b2c3b9bc11ec2285b0c25d7dbb96d79887169eb938084c95d0a89338c8b2fe70d473bd9dc92e5d9db1732c + checksum: 249cdcbff4e778b177245f9652b014ea4f3cd245d83297f10a7bf6d97790074089aa62bcde8c08eb299c5e68f2faed346b587d3ebac44d625ba9a83a4ee27028 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.0" +"@babel/plugin-transform-block-scoping@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0cfe925cc3b5a3ad407e2253fab3ceeaa117a4b291c9cb245578880872999bca91bd83ffa0128ae9ca356330702e1ef1dcb26804f28d2cef678239caf629f73e + checksum: 039206155533600f079f3a455f85888dd7d4970ff7ffa85ef44760f4f5acb9f19c9d848cc1fec1b9bdbc0dfec9e8a080b90d0ab66ad2bdc7138b5ca4ba96e61c languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-class-properties@npm:7.22.5" +"@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b830152dfc2ff2f647f0abe76e6251babdfbef54d18c4b2c73a6bf76b1a00050a5d998dac80dc901a48514e95604324943a9dd39317073fe0928b559e0e0c579 + checksum: 1348d7ce74da38ba52ea85b3b4289a6a86913748569ef92ef0cff30702a9eb849e5eaf59f1c6f3517059aa68115fb3067e389735dccacca39add4e2b0c67e291 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-class-static-block@npm:7.22.11" +"@babel/plugin-transform-class-static-block@npm:^7.22.11, @babel/plugin-transform-class-static-block@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.11 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: "@babel/core": ^7.12.0 - checksum: 69f040506fad66f1c6918d288d0e0edbc5c8a07c8b4462c1184ad2f9f08995d68b057126c213871c0853ae0c72afc60ec87492049dfacb20902e32346a448bcb + checksum: 324049263504f18416f1c3e24033baebfafd05480fdd885c8ebe6f2b415b0fc8e0b98d719360f9e30743cc78ac387fabc0b3c6606d2b54135756ffb92963b382 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-classes@npm:7.22.15" +"@babel/plugin-transform-classes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-classes@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.9 - "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-replace-supers": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d3f4d0c107dd8a3557ea3575cc777fab27efa92958b41e4a9822f7499725c1f554beae58855de16ddec0a7b694e45f59a26cea8fbde4275563f72f09c6e039a0 + checksum: f01cb31143730d425681e9816020cbb519c7ddb3b6ca308dfaf2821eda5699a746637fc6bf19811e2fb42cfdf8b00a21b31c754da83771a5c280077925677354 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-computed-properties@npm:7.22.5" +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/template": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/template": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c2a77a0f94ec71efbc569109ec14ea2aa925b333289272ced8b33c6108bdbb02caf01830ffc7e49486b62dec51911924d13f3a76f1149f40daace1898009e131 + checksum: 0cf8c1b1e4ea57dec8d4612460d84fd4cdbf71a7499bb61ee34632cf89018a59eee818ffca88a8d99ee7057c20a4257044d7d463fda6daef9bf1db9fa81563cb languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-destructuring@npm:7.23.0" +"@babel/plugin-transform-destructuring@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cd6dd454ccc2766be551e4f8a04b1acc2aa539fa19e5c7501c56cc2f8cc921dd41a7ffb78455b4c4b2f954fcab8ca4561ba7c9c7bd5af9f19465243603d18cc3 + checksum: b9637b27faf9d24a8119bc5a1f98a2f47c69e6441bd8fc71163500be316253a72173308a93122bcf27d8d314ace43344c976f7291cf6376767f408350c8149d4 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.22.5" +"@babel/plugin-transform-dotall-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 409b658d11e3082c8f69e9cdef2d96e4d6d11256f005772425fb230cc48fd05945edbfbcb709dab293a1a2f01f9c8a5bb7b4131e632b23264039d9f95864b453 + checksum: 67b10fc6abb1f61f0e765288eb4c6d63d1d0f9fc0660e69f6f2170c56fa16bc74e49857afc644beda112b41771cd90cf52df0940d11e97e52617c77c7dcff171 languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.22.5" +"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bb1280fbabaab6fab2ede585df34900712698210a3bd413f4df5bae6d8c24be36b496c92722ae676a7a67d060a4624f4d6c23b923485f906bfba8773c69f55b4 + checksum: d1da2ff85ecb56a63f4ccfd9dc9ae69400d85f0dadf44ecddd9e71c6e5c7a9178e74e3a9637555f415a2bb14551e563f09f98534ab54f53d25e8439fdde6ba2d languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.11" +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-dynamic-import": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 78fc9c532210bf9e8f231747f542318568ac360ee6c27e80853962c984283c73da3f8f8aebe83c2096090a435b356b092ed85de617a156cbe0729d847632be45 + checksum: 776509ff62ab40c12be814a342fc56a5cc09b91fb63032b2633414b635875fd7da03734657be0f6db2891fe6e3033b75d5ddb6f2baabd1a02e4443754a785002 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.22.5" +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2d660c1b1d51ad5fec1cd5ad426a52187204068c4158f8c4aa977b31535c61b66898d532603eef21c15756827be8277f724c869b888d560f26d7fe848bb5eae + checksum: 23c84a23eb56589fdd35a3540f9a1190615be069110a2270865223c03aee3ba4e0fc68fe14850800cf36f0712b26e4964d3026235261f58f0405a29fe8dac9b1 languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.11" +"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 73af5883a321ed56a4bfd43c8a7de0164faebe619287706896fc6ee2f7a4e69042adaa1338c0b8b4bdb9f7e5fdceb016fb1d40694cb43ca3b8827429e8aac4bf + checksum: 3bd3a10038f10ae0dea1ee42137f3edcf7036b5e9e570a0d1cbd0865f03658990c6c2d84fa2475f87a754e7dc5b46766c16f7ce5c9b32c3040150b6a21233a80 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-for-of@npm:7.22.15" +"@babel/plugin-transform-flow-strip-types@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-flow": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f395ae7bce31e14961460f56cf751b5d6e37dd27d7df5b1f4e49fec1c11b6f9cf71991c7ffbe6549878591e87df0d66af798cf26edfa4bfa6b4c3dba1fb2f73a + checksum: 260bd95b1a90ff4af11bf8e21e6dd35b1b7863daffb12a5b2018e2806fec033a7883114dc5f0b67d594ca93fe6f2c9894944c865dd2c51affb7da0f9a6473872 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-function-name@npm:7.22.5" +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-for-of@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: cff3b876357999cb8ae30e439c3ec6b0491a53b0aa6f722920a4675a6dd5b53af97a833051df4b34791fe5b3dd326ccf769d5c8e45b322aa50ee11a660b17845 + checksum: a53b42dc93ab4b7d1ebd3c695b52be22b3d592f6a3dbdb3dc2fea2c8e0a7e1508fe919864c455cde552aec44ce7518625fccbb70c7063373ca228d884f4f49ea languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-json-strings@npm:7.22.11" +"@babel/plugin-transform-function-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-function-name@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8eb1a67894a124910b5a67630bed4307757504381f39f0fb5cf82afc7ae8647dbc03b256d13865b73a749b9071b68e9fb8a28cef2369917b4299ebb93fd66146 + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-json-strings": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 50665e5979e66358c50e90a26db53c55917f78175127ac2fa05c7888d156d418ffb930ec0a109353db0a7c5f57c756ce01bfc9825d24cbfd2b3ec453f2ed8cba + checksum: 88874d0b7a1ddea66c097fc0abb68801ffae194468aa44b828dde9a0e20ac5d8647943793de86092eabaa2911c96f67a6b373793d4bb9c932ef81b2711c06c2e languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-literals@npm:7.22.5" +"@babel/plugin-transform-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ec37cc2ffb32667af935ab32fe28f00920ec8a1eb999aa6dc6602f2bebd8ba205a558aeedcdccdebf334381d5c57106c61f52332045730393e73410892a9735b + checksum: 3c075cc093a3dd9e294b8b7d6656e65f889e7ca2179ca27978dcd65b4dc4885ebbfb327408d7d8f483c55547deed00ba840956196f3ac8a3c3d2308a330a8c23 languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.11" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c664e9798e85afa7f92f07b867682dee7392046181d82f5d21bae6f2ca26dfe9c8375cdc52b7483c3fc09a983c1989f60eff9fbc4f373b0c0a74090553d05739 + checksum: 3367ce0be243704dc6fce23e86a592c4380f01998ee5dd9f94c54b1ef7b971ac6f8a002901eb51599ac6cbdc0d067af8d1a720224fca1c40fde8bb8aab804aac languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.22.5" +"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ec4b0e07915ddd4fda0142fd104ee61015c208608a84cfa13643a95d18760b1dc1ceb6c6e0548898b8c49e5959a994e46367260176dbabc4467f729b21868504 + checksum: 2720c57aa3bf70576146ba7d6ea03227f4611852122d76d237924f7b008dafc952e6ae61a19e5024f26c665f44384bbd378466f01b6bd1305b3564a3b7fb1a5d languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-modules-amd@npm:7.23.0" +"@babel/plugin-transform-modules-amd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5d92875170a37b8282d4bcd805f55829b8fab0f9c8d08b53d32a7a0bfdc62b868e489b52d329ae768ecafc0c993eed0ad7a387baa673ac33211390a9f833ab5d + checksum: f1dd0fb2f46c0f8f21076b8c7ccd5b33a85ce6dcb31518ea4c648d9a5bb2474cd4bd87c9b1b752e68591e24b022e334ba0d07631fef2b6b4d8a4b85cf3d581f5 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.0" +"@babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-simple-access": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7fb25997194053e167c4207c319ff05362392da841bd9f42ddb3caf9c8798a5d203bd926d23ddf5830fdf05eddc82c2810f40d1287e3a4f80b07eff13d1024b5 + checksum: bfda2a0297197ed342e2a02e5f9847a489a3ae40a4a7d7f00f4aeb8544a85e9006e0c5271c8f61f39bc97975ef2717b5594cf9486694377a53433162909d64c1 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.0" +"@babel/plugin-transform-modules-systemjs@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" dependencies: - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.23.0 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/helper-hoist-variables": ^7.24.7 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2d481458b22605046badea2317d5cc5c94ac3031c2293e34c96f02063f5b02af0979c4da6a8fbc67cc249541575dc9c6d710db6b919ede70b7337a22d9fd57a7 + checksum: 8af7a9db2929991d82cfdf41fb175dee344274d39b39122f8c35f24b5d682f98368e3d8f5130401298bd21412df21d416a7d8b33b59c334fae3d3c762118b1d8 languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-umd@npm:7.22.5" +"@babel/plugin-transform-modules-umd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-module-transforms": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 46622834c54c551b231963b867adbc80854881b3e516ff29984a8da989bd81665bd70e8cba6710345248e97166689310f544aee1a5773e262845a8f1b3e5b8b4 + checksum: 9ff1c464892efe042952ba778468bda6131b196a2729615bdcc3f24cdc94014f016a4616ee5643c5845bade6ba698f386833e61056d7201314b13a7fd69fac88 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + checksum: f1c6c7b5d60a86b6d7e4dd098798e1d393d55e993a0b57a73b53640c7a94985b601a96bdacee063f809a9a700bcea3a2ff18e98fa561554484ac56b761d774bd languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-new-target@npm:7.22.5" +"@babel/plugin-transform-new-target@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-new-target@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b72112773487a881a1d6ffa680afde08bad699252020e86122180ee7a88854d5da3f15d9bca3331cf2e025df045604494a8208a2e63b486266b07c14e2ffbf3 + checksum: 3cb94cd1076b270f768f91fdcf9dd2f6d487f8dbfff3df7ca8d07b915900b86d02769a35ba1407d16fe49499012c8f055e1741299e2c880798b953d942a8fa1b languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.11" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 167babecc8b8fe70796a7b7d34af667ebbf43da166c21689502e5e8cc93180b7a85979c77c9f64b7cce431b36718bd0a6df9e5e0ffea4ae22afb22cfef886372 + checksum: 4a9221356401d87762afbc37a9e8e764afc2daf09c421117537820f8cfbed6876888372ad3a7bcfae2d45c95f026651f050ab4020b777be31d3ffb00908dbdd3 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.11" +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: af064d06a4a041767ec396a5f258103f64785df290e038bba9f0ef454e6c914f2ac45d862bbdad8fac2c7ad47fa4e95356f29053c60c100a0160b02a995fe2a3 + checksum: 561b5f1d08b2c3f92ce849f092751558b5e6cfeb7eb55c79e7375c34dd9c3066dce5e630bb439affef6adcf202b6cbcaaa23870070276fa5bb429c8f5b8c7514 languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.15" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.22.15 + "@babel/plugin-transform-parameters": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 62197a6f12289c1c1bd57f3bed9f0f765ca32390bfe91e0b5561dd94dd9770f4480c4162dec98da094bc0ba99d2c2ebba68de47c019454041b0b7a68ba2ec66d + checksum: 169d257b9800c13e1feb4c37fb05dae84f702e58b342bb76e19e82e6692b7b5337c9923ee89e3916a97c0dd04a3375bdeca14f5e126f110bbacbeb46d1886ca2 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-object-super@npm:7.22.5" +"@babel/plugin-transform-object-super@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-super@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-replace-supers": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b71887877d74cb64dbccb5c0324fa67e31171e6a5311991f626650e44a4083e5436a1eaa89da78c0474fb095d4ec322d63ee778b202d33aa2e4194e1ed8e62d7 + checksum: f71e607a830ee50a22fa1a2686524d3339440cf9dea63032f6efbd865cfe4e35000e1e3f3492459e5c986f7c0c07dc36938bf3ce61fc9ba5f8ab732d0b64ab37 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.11" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f17abd90e1de67c84d63afea29c8021c74abb2794d3a6eeafb0bbe7372d3db32aefca386e392116ec63884537a4a2815d090d26264d259bacc08f6e3ed05294c + checksum: 7229f3a5a4facaab40f4fdfc7faabc157dc38a67d66bed7936599f4bc509e0bff636f847ac2aa45294881fce9cf8a0a460b85d2a465b7b977de9739fce9b18f6 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.22.15, @babel/plugin-transform-optional-chaining@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.0" +"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f702634f2b97e5260dbec0d4bde05ccb6f4d96d7bfa946481aeacfa205ca846cb6e096a38312f9d51fdbdac1f258f211138c5f7075952e46a5bf8574de6a1329 + checksum: 877e7ce9097d475132c7f4d1244de50bb2fd37993dc4580c735f18f8cbc49282f6e77752821bcad5ca9d3528412d2c8a7ee0aa7ca71bb680ff82648e7a5fed25 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-parameters@npm:7.22.15" +"@babel/plugin-transform-parameters@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-parameters@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 541188bb7d1876cad87687b5c7daf90f63d8208ae83df24acb1e2b05020ad1c78786b2723ca4054a83fcb74fb6509f30c4cacc5b538ee684224261ad5fb047c1 + checksum: ab534b03ac2eff94bc79342b8f39a4584666f5305a6c63c1964afda0b1b004e6b861e49d1683548030defe248e3590d3ff6338ee0552cb90c064f7e1479968c3 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-private-methods@npm:7.22.5" +"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 321479b4fcb6d3b3ef622ab22fd24001e43d46e680e8e41324c033d5810c84646e470f81b44cbcbef5c22e99030784f7cac92f1829974da7a47a60a7139082c3 + checksum: c151548e34909be2adcceb224d8fdd70bafa393bc1559a600906f3f647317575bf40db670470934a360e90ee8084ef36dffa34ec25d387d414afd841e74cf3fe languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.11": - version: 7.22.11 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.11" +"@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.11 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4d029d84901e53c46dead7a46e2990a7bc62470f4e4ca58a0d063394f86652fd58fe4eea1eb941da3669cd536b559b9d058b342b59300026346b7a2a51badac8 + checksum: 8cee9473095305cc787bb653fd681719b49363281feabf677db8a552e8e41c94441408055d7e5fd5c7d41b315e634fa70b145ad0c7c54456216049df4ed57350 languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-property-literals@npm:7.22.5" +"@babel/plugin-transform-property-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 796176a3176106f77fcb8cd04eb34a8475ce82d6d03a88db089531b8f0453a2fb8b0c6ec9a52c27948bc0ea478becec449893741fc546dfc3930ab927e3f9f2e + checksum: 9aeefc3aab6c6bf9d1fae1cf3a2d38c7d886fd3c6c81b7c608c477f5758aee2e7abf52f32724310fe861da61af934ee2508b78a5b5f234b9740c9134e1c14437 languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 regenerator-transform: ^0.15.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e13678d62d6fa96f11cb8b863f00e8693491e7adc88bfca3f2820f80cbac8336e7dec3a596eee6a1c4663b7ececc3564f2cd7fb44ed6d4ce84ac2bb7f39ecc6e + checksum: 20c6c3fb6fc9f407829087316653388d311e8c1816b007609bb09aeef254092a7157adace8b3aaa8f34be752503717cb85c88a5fe482180a9b11bcbd676063be languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-reserved-words@npm:7.22.5" +"@babel/plugin-transform-reserved-words@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3ffd7dbc425fe8132bfec118b9817572799cab1473113a635d25ab606c1f5a2341a636c04cf6b22df3813320365ed5a965b5eeb3192320a10e4cc2c137bd8bfc + checksum: 3d5876954d5914d7270819479504f30c4bf5452a65c677f44e2dab2db50b3c9d4b47793c45dfad7abf4f377035dd79e4b3f554ae350df9f422201d370ce9f8dd languageName: node linkType: hard @@ -1136,141 +1247,143 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.22.5" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a5ac902c56ea8effa99f681340ee61bac21094588f7aef0bc01dff98246651702e677552fa6d10e548c4ac22a3ffad047dd2f8c8f0540b68316c2c203e56818b + checksum: 7b524245814607188212b8eb86d8c850e5974203328455a30881b4a92c364b93353fae14bc2af5b614ef16300b75b8c1d3b8f3a08355985b4794a7feb240adc3 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-spread@npm:7.22.5" +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-spread@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5587f0deb60b3dfc9b274e269031cc45ec75facccf1933ea2ea71ced9fd3ce98ed91bb36d6cd26817c14474b90ed998c5078415f0eab531caf301496ce24c95c + checksum: 4c4254c8b9cceb1a8f975fa9b92257ddb08380a35c0a3721b8f4b9e13a3d82e403af2e0fba577b9f2452dd8f06bc3dea71cc53b1e2c6af595af5db52a13429d6 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.22.5" +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 63b2c575e3e7f96c32d52ed45ee098fb7d354b35c2223b8c8e76840b32cc529ee0c0ceb5742fd082e56e91e3d82842a367ce177e82b05039af3d602c9627a729 + checksum: 118fc7a7ebf7c20411b670c8a030535fdfe4a88bc5643bb625a584dbc4c8a468da46430a20e6bf78914246962b0f18f1b9d6a62561a7762c4f34a038a5a77179 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-template-literals@npm:7.22.5" +"@babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 27e9bb030654cb425381c69754be4abe6a7c75b45cd7f962cd8d604b841b2f0fb7b024f2efc1c25cc53f5b16d79d5e8cfc47cacbdaa983895b3aeefa3e7e24ff + checksum: ad44e5826f5a98c1575832dbdbd033adfe683cdff195e178528ead62507564bf02f479b282976cfd3caebad8b06d5fd7349c1cdb880dec3c56daea4f1f179619 languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.22.5" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 82a53a63ffc3010b689ca9a54e5f53b2718b9f4b4a9818f36f9b7dba234f38a01876680553d2716a645a61920b5e6e4aaf8d4a0064add379b27ca0b403049512 + checksum: 6bd16b9347614d44187d8f8ee23ebd7be30dabf3632eed5ff0415f35a482e827de220527089eae9cdfb75e85aa72db0e141ebc2247c4b1187c1abcdacdc34895 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/plugin-transform-typescript@npm:7.22.15" +"@babel/plugin-transform-typescript@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-typescript@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-typescript": ^7.22.5 + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-typescript": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c5d96cdbf0e1512707aa1c1e3ac6b370a25fd9c545d26008ce44eb13a47bd7fd67a1eb799c98b5ccc82e33a345fda55c0055e1fe3ed97646ed405dd13020b226 + checksum: 6b367d1e3d6bdbe438878a76436fc6903e2b4fd7c31fa036d43865570d282679ec3f7c0306399851f2866a9b36686a0ea8c343df3750f70d427f1fe20ca54310 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" +"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 807f40ed1324c8cb107c45358f1903384ca3f0ef1d01c5a3c5c9b271c8d8eec66936a3dcc8d75ddfceea9421420368c2e77ae3adef0a50557e778dfe296bf382 + checksum: 4af0a193e1ddea6ff82b2b15cc2501b872728050bd625740b813c8062fec917d32d530ff6b41de56c15e7296becdf3336a58db81f5ca8e7c445c1306c52f3e01 languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2495e5f663cb388e3d888b4ba3df419ac436a5012144ac170b622ddfc221f9ea9bdba839fa2bc0185cb776b578030666406452ec7791cbf0e7a3d4c88ae9574c + checksum: aae13350c50973f5802ca7906d022a6a0cc0e3aebac9122d0450bbd51e78252d4c2032ad69385e2759fcbdd3aac5d571bd7e26258907f51f8e1a51b53be626c2 languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b5d1404c8c623b0ec9bd436c00d885a17d6a34f3f2597996343ddb9d94f6379705b21582dfd4cec2c47fd34068872e74ab6b9580116c0566b3f9447e2a7fa06 + checksum: 1cb4e70678906e431da0a05ac3f8350025fee290304ad7482d9cfaa1ca67b2e898654de537c9268efbdad5b80d3ebadf42b4a88ea84609bd8a4cce7b11b48afd languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.5" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 peerDependencies: "@babel/core": ^7.0.0 - checksum: c042070f980b139547f8b0179efbc049ac5930abec7fc26ed7a41d89a048d8ab17d362200e204b6f71c3c20d6991a0e74415e1a412a49adc8131c2a40c04822e + checksum: 08a2844914f33dacd2ce1ab021ce8c1cc35dc6568521a746d8bf29c21571ee5be78787b454231c4bb3526cbbe280f1893223c82726cec5df2be5dae0a3b51837 languageName: node linkType: hard -"@babel/preset-env@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/preset-env@npm:7.23.2" +"@babel/preset-env@npm:^7.23.2, @babel/preset-env@npm:^7.24.4": + version: 7.24.7 + resolution: "@babel/preset-env@npm:7.24.7" dependencies: - "@babel/compat-data": ^7.23.2 - "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.22.15 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.15 + "@babel/compat-data": ^7.24.7 + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.7 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.7 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.7 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.7 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.22.5 - "@babel/plugin-syntax-import-attributes": ^7.22.5 + "@babel/plugin-syntax-import-assertions": ^7.24.7 + "@babel/plugin-syntax-import-attributes": ^7.24.7 "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 @@ -1282,64 +1395,76 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.22.5 - "@babel/plugin-transform-async-generator-functions": ^7.23.2 - "@babel/plugin-transform-async-to-generator": ^7.22.5 - "@babel/plugin-transform-block-scoped-functions": ^7.22.5 - "@babel/plugin-transform-block-scoping": ^7.23.0 - "@babel/plugin-transform-class-properties": ^7.22.5 - "@babel/plugin-transform-class-static-block": ^7.22.11 - "@babel/plugin-transform-classes": ^7.22.15 - "@babel/plugin-transform-computed-properties": ^7.22.5 - "@babel/plugin-transform-destructuring": ^7.23.0 - "@babel/plugin-transform-dotall-regex": ^7.22.5 - "@babel/plugin-transform-duplicate-keys": ^7.22.5 - "@babel/plugin-transform-dynamic-import": ^7.22.11 - "@babel/plugin-transform-exponentiation-operator": ^7.22.5 - "@babel/plugin-transform-export-namespace-from": ^7.22.11 - "@babel/plugin-transform-for-of": ^7.22.15 - "@babel/plugin-transform-function-name": ^7.22.5 - "@babel/plugin-transform-json-strings": ^7.22.11 - "@babel/plugin-transform-literals": ^7.22.5 - "@babel/plugin-transform-logical-assignment-operators": ^7.22.11 - "@babel/plugin-transform-member-expression-literals": ^7.22.5 - "@babel/plugin-transform-modules-amd": ^7.23.0 - "@babel/plugin-transform-modules-commonjs": ^7.23.0 - "@babel/plugin-transform-modules-systemjs": ^7.23.0 - "@babel/plugin-transform-modules-umd": ^7.22.5 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.22.5 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 - "@babel/plugin-transform-numeric-separator": ^7.22.11 - "@babel/plugin-transform-object-rest-spread": ^7.22.15 - "@babel/plugin-transform-object-super": ^7.22.5 - "@babel/plugin-transform-optional-catch-binding": ^7.22.11 - "@babel/plugin-transform-optional-chaining": ^7.23.0 - "@babel/plugin-transform-parameters": ^7.22.15 - "@babel/plugin-transform-private-methods": ^7.22.5 - "@babel/plugin-transform-private-property-in-object": ^7.22.11 - "@babel/plugin-transform-property-literals": ^7.22.5 - "@babel/plugin-transform-regenerator": ^7.22.10 - "@babel/plugin-transform-reserved-words": ^7.22.5 - "@babel/plugin-transform-shorthand-properties": ^7.22.5 - "@babel/plugin-transform-spread": ^7.22.5 - "@babel/plugin-transform-sticky-regex": ^7.22.5 - "@babel/plugin-transform-template-literals": ^7.22.5 - "@babel/plugin-transform-typeof-symbol": ^7.22.5 - "@babel/plugin-transform-unicode-escapes": ^7.22.10 - "@babel/plugin-transform-unicode-property-regex": ^7.22.5 - "@babel/plugin-transform-unicode-regex": ^7.22.5 - "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 + "@babel/plugin-transform-arrow-functions": ^7.24.7 + "@babel/plugin-transform-async-generator-functions": ^7.24.7 + "@babel/plugin-transform-async-to-generator": ^7.24.7 + "@babel/plugin-transform-block-scoped-functions": ^7.24.7 + "@babel/plugin-transform-block-scoping": ^7.24.7 + "@babel/plugin-transform-class-properties": ^7.24.7 + "@babel/plugin-transform-class-static-block": ^7.24.7 + "@babel/plugin-transform-classes": ^7.24.7 + "@babel/plugin-transform-computed-properties": ^7.24.7 + "@babel/plugin-transform-destructuring": ^7.24.7 + "@babel/plugin-transform-dotall-regex": ^7.24.7 + "@babel/plugin-transform-duplicate-keys": ^7.24.7 + "@babel/plugin-transform-dynamic-import": ^7.24.7 + "@babel/plugin-transform-exponentiation-operator": ^7.24.7 + "@babel/plugin-transform-export-namespace-from": ^7.24.7 + "@babel/plugin-transform-for-of": ^7.24.7 + "@babel/plugin-transform-function-name": ^7.24.7 + "@babel/plugin-transform-json-strings": ^7.24.7 + "@babel/plugin-transform-literals": ^7.24.7 + "@babel/plugin-transform-logical-assignment-operators": ^7.24.7 + "@babel/plugin-transform-member-expression-literals": ^7.24.7 + "@babel/plugin-transform-modules-amd": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-modules-systemjs": ^7.24.7 + "@babel/plugin-transform-modules-umd": ^7.24.7 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.24.7 + "@babel/plugin-transform-new-target": ^7.24.7 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.7 + "@babel/plugin-transform-numeric-separator": ^7.24.7 + "@babel/plugin-transform-object-rest-spread": ^7.24.7 + "@babel/plugin-transform-object-super": ^7.24.7 + "@babel/plugin-transform-optional-catch-binding": ^7.24.7 + "@babel/plugin-transform-optional-chaining": ^7.24.7 + "@babel/plugin-transform-parameters": ^7.24.7 + "@babel/plugin-transform-private-methods": ^7.24.7 + "@babel/plugin-transform-private-property-in-object": ^7.24.7 + "@babel/plugin-transform-property-literals": ^7.24.7 + "@babel/plugin-transform-regenerator": ^7.24.7 + "@babel/plugin-transform-reserved-words": ^7.24.7 + "@babel/plugin-transform-shorthand-properties": ^7.24.7 + "@babel/plugin-transform-spread": ^7.24.7 + "@babel/plugin-transform-sticky-regex": ^7.24.7 + "@babel/plugin-transform-template-literals": ^7.24.7 + "@babel/plugin-transform-typeof-symbol": ^7.24.7 + "@babel/plugin-transform-unicode-escapes": ^7.24.7 + "@babel/plugin-transform-unicode-property-regex": ^7.24.7 + "@babel/plugin-transform-unicode-regex": ^7.24.7 + "@babel/plugin-transform-unicode-sets-regex": ^7.24.7 "@babel/preset-modules": 0.1.6-no-external-plugins - "@babel/types": ^7.23.0 - babel-plugin-polyfill-corejs2: ^0.4.6 - babel-plugin-polyfill-corejs3: ^0.8.5 - babel-plugin-polyfill-regenerator: ^0.5.3 + babel-plugin-polyfill-corejs2: ^0.4.10 + babel-plugin-polyfill-corejs3: ^0.10.4 + babel-plugin-polyfill-regenerator: ^0.6.1 core-js-compat: ^3.31.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 49327ef584b529b56aedd6577937b80c0d89603c68b23795495a13af04b5aa008db9ad04cd280423600cdc0d3cce13ae9d0d9a977db5c8193697b20ced8a10b2 + checksum: 1a82c883c7404359b19b7436d0aab05f8dd4e89e8b1f7de127cc65d0ff6a9b1c345211d9c038f5b6e8f93d26f091fa9c73812d82851026ab4ec93f5ed0f0d675 + languageName: node + linkType: hard + +"@babel/preset-flow@npm:^7.22.15": + version: 7.24.7 + resolution: "@babel/preset-flow@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-transform-flow-strip-types": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4caca02a6e0a477eb22994d686a1fbf65b5ab0240ae77530696434dba7efff4c5dcbf9186a774168dd4c492423141a22af3f2874c356aa22429f3c83eaf34419 languageName: node linkType: hard @@ -1356,18 +1481,33 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.23.2": - version: 7.23.2 - resolution: "@babel/preset-typescript@npm:7.23.2" +"@babel/preset-typescript@npm:^7.23.0, @babel/preset-typescript@npm:^7.23.2": + version: 7.24.7 + resolution: "@babel/preset-typescript@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-option": ^7.22.15 - "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.23.0 - "@babel/plugin-transform-typescript": ^7.22.15 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-syntax-jsx": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-typescript": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 12929b24757f3bd6548103475f86478eda4c872bc7cefd920b29591eee8f4a4f350561d888e133d632d0c9402b8615fdcec9138e5127a6567dcb22f804ff207f + languageName: node + linkType: hard + +"@babel/register@npm:^7.22.15": + version: 7.24.6 + resolution: "@babel/register@npm:7.24.6" + dependencies: + clone-deep: ^4.0.1 + find-cache-dir: ^2.0.0 + make-dir: ^2.1.0 + pirates: ^4.0.6 + source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c4b065c90e7f085dd7a0e57032983ac230c7ffd1d616e4c2b66581e765d5befc9271495f33250bf1cf9b4d436239c8ca3b19ada9f6c419c70bdab2cf6c868f9f + checksum: 446316c80969df89ad3515576937ddf746cd4927810f226101a8d7f476b399c14c26847e77637e09355399c645fbf413d6e53ac6987b8cf240de7932a9372cb5 languageName: node linkType: hard @@ -1378,27 +1518,27 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.22.5 - resolution: "@babel/runtime@npm:7.22.5" +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.24.7 + resolution: "@babel/runtime@npm:7.24.7" dependencies: - regenerator-runtime: ^0.13.11 - checksum: 12a50b7de2531beef38840d17af50c55a094253697600cee255311222390c68eed704829308d4fd305e1b3dfbce113272e428e9d9d45b1730e0fede997eaceb1 + regenerator-runtime: ^0.14.0 + checksum: d17f29eed6f848ac15cdf4202a910b741facfb0419a9d79e5c7fa37df6362fc3227f1cc2e248cc6db5e53ddffb4caa6686c488e6e80ce3d29c36a4e74c8734ea languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": - version: 7.22.15 - resolution: "@babel/template@npm:7.22.15" +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.7, @babel/template@npm:^7.3.3": + version: 7.24.7 + resolution: "@babel/template@npm:7.24.7" dependencies: - "@babel/code-frame": ^7.22.13 - "@babel/parser": ^7.22.15 - "@babel/types": ^7.22.15 - checksum: 1f3e7dcd6c44f5904c184b3f7fe280394b191f2fed819919ffa1e529c259d5b197da8981b6ca491c235aee8dbad4a50b7e31304aa531271cb823a4a24a0dd8fd + "@babel/code-frame": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/types": ^7.24.7 + checksum: ea90792fae708ddf1632e54c25fe1a86643d8c0132311f81265d2bdbdd42f9f4fac65457056c1b6ca87f7aa0d6a795b549566774bba064bdcea2034ab3960ee9 languageName: node linkType: hard -"@babel/traverse@npm:7.23.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.7.2": +"@babel/traverse@npm:7.23.9": version: 7.23.9 resolution: "@babel/traverse@npm:7.23.9" dependencies: @@ -1416,7 +1556,25 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:7.23.9, @babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": +"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.24.1, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.7.2": + version: 7.24.7 + resolution: "@babel/traverse@npm:7.24.7" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.24.7 + "@babel/helper-environment-visitor": ^7.24.7 + "@babel/helper-function-name": ^7.24.7 + "@babel/helper-hoist-variables": ^7.24.7 + "@babel/helper-split-export-declaration": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/types": ^7.24.7 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 7cd366afe9e7ee77e493779fdf24f67bf5595247289364f4689e29688572505eaeb886d7a8f20ebb9c29fc2de7d0895e4ff9e203e78e39ac67239724d45aa83b + languageName: node + linkType: hard + +"@babel/types@npm:7.23.9": version: 7.23.9 resolution: "@babel/types@npm:7.23.9" dependencies: @@ -1427,6 +1585,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.9, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.24.7 + resolution: "@babel/types@npm:7.24.7" + dependencies: + "@babel/helper-string-parser": ^7.24.7 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: 3e4437fced97e02982972ce5bebd318c47d42c9be2152c0fd28c6f786cc74086cc0a8fb83b602b846e41df37f22c36254338eada1a47ef9d8a1ec92332ca3ea8 + languageName: node + linkType: hard + "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -1434,73 +1603,73 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/accordion@npm:2.1.11": - version: 2.1.11 - resolution: "@chakra-ui/accordion@npm:2.1.11" +"@chakra-ui/accordion@npm:2.3.1": + version: 2.3.1 + resolution: "@chakra-ui/accordion@npm:2.3.1" dependencies: - "@chakra-ui/descendant": 3.0.14 - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/descendant": 3.1.0 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/transition": 2.0.16 + "@chakra-ui/transition": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 7b042e9e1a87a85ff275b84b932ca8456d5ea95a24e896a518754e116857d8987a0ca38867b75ad62d386145a27aed5670ffba4b6b332776599109b5884e5eee + checksum: 3839a77ad235cc4fd322e3118457eb12433df7b5937e5145570277ee54f4d8ce0a7a4f0a02474524d3c7fa8dab9f7d083d21a097e5bed9d5a5d15e345c5d1f49 languageName: node linkType: hard -"@chakra-ui/alert@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/alert@npm:2.1.0" +"@chakra-ui/alert@npm:2.2.2": + version: 2.2.2 + resolution: "@chakra-ui/alert@npm:2.2.2" dependencies: - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/spinner": 2.0.13 + "@chakra-ui/spinner": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 312549a7f1413e8854fc094fdd21b33aa4e0ed50280077c607dc24bb8dfc94bdb9c98f2a209800aac7f8f939a4641e22317c7ac3f7d69e35ef8d0c7155c42ac0 + checksum: f13a7b3c128447b915d8481105bb994fd382edb45273f0c59733c02cec4d891561db8462d5b4b0148f405ec3228b7e78dddb1dc03c2905dc4a0ec21e2c915822 languageName: node linkType: hard -"@chakra-ui/anatomy@npm:2.1.2, @chakra-ui/anatomy@npm:^2.1.1": - version: 2.1.2 - resolution: "@chakra-ui/anatomy@npm:2.1.2" - checksum: 87519672ae028ef3af44ecc7d87fa18dc7ec8d46958a3490cb312ebc6b857bc227e908ffe0b12eb1e2a11c860656c38c3160ebc20bf1e9522b0ae0ef7b31e28d +"@chakra-ui/anatomy@npm:2.2.2, @chakra-ui/anatomy@npm:^2.1.1": + version: 2.2.2 + resolution: "@chakra-ui/anatomy@npm:2.2.2" + checksum: 0f760fae4a145305ef20bbff119bfbc92a54a477cd0916450dc4f88923e00856b582392ff35cfad93ee7cc9ab59a60fecbc9dd8bab9287bdd9cbe6d87031bce1 languageName: node linkType: hard -"@chakra-ui/avatar@npm:2.2.10": - version: 2.2.10 - resolution: "@chakra-ui/avatar@npm:2.2.10" +"@chakra-ui/avatar@npm:2.3.0": + version: 2.3.0 + resolution: "@chakra-ui/avatar@npm:2.3.0" dependencies: - "@chakra-ui/image": 2.0.16 + "@chakra-ui/image": 2.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 4f1d80c9f0498c27aeaf615f8a42b4e9913f329f03d44e058d20fc292ac6b21d19cf6339f9ef296bd091f13dc7c9bc02faa6e5d08cbc2a9d458710a0e3f89023 + checksum: a54120d7bf2096c09c19248050e511b379e93ac4d541cb6882ebc3690552b026bd4e7a2da1fa6cf486938bc438c7e3fd1aad5c5d77c247ddc81832b02d4016d9 languageName: node linkType: hard -"@chakra-ui/breadcrumb@npm:2.1.5": - version: 2.1.5 - resolution: "@chakra-ui/breadcrumb@npm:2.1.5" +"@chakra-ui/breadcrumb@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/breadcrumb@npm:2.2.0" dependencies: "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 3052b1bfeb5526810904bf51b7d491ff91e906308b08f2742db3b125d41a0bc92890d354b41a71a8b0cdb9e24bb93e437eefa5c31b03aa50fae1251a0d5ded52 + checksum: 27ff90194166a34a33c7d39bc18920e3a379d476afabed80e806328ac18c6e0d3c66ab912f23fa68fc07033b1fd0cfd80564fb7fc1e5ff1986c6693a6d8b4fc2 languageName: node linkType: hard @@ -1513,159 +1682,159 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/button@npm:2.0.18": - version: 2.0.18 - resolution: "@chakra-ui/button@npm:2.0.18" +"@chakra-ui/button@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/button@npm:2.1.0" dependencies: - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/spinner": 2.0.13 + "@chakra-ui/spinner": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: db841acf26ef46dde4578981f4e5876905e596017fe6e381c86a91f67df150f01b5a16e49d282a9fca41c6f2f25c7e4095c0a4128fe9f71e4aac873ae88f733c + checksum: 749f11334d7d5bf7257d40fdebb0e0156ce64a53b21d56016d9fb9431a2c934db33f78b2e092872aa5f19e1de4745af1cc893aa70d75092b9f07020c07224e7f languageName: node linkType: hard -"@chakra-ui/card@npm:2.1.6": - version: 2.1.6 - resolution: "@chakra-ui/card@npm:2.1.6" +"@chakra-ui/card@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/card@npm:2.2.0" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: c054220041dc32db3c59a3424ed1a316137d9f57ddb754e5c29f4129d9a26184268b5da85314a45ca10d464ff07a171faaebf4309fd0e3dea159558b046bfce3 + checksum: e8333b521cba8be8193dfb4784697942efc820890f8c89aa1484fab3fa7b69ababffea24eaecc331b1c901407b94f4a465113bf115ab965be1f87b913f31d53d languageName: node linkType: hard -"@chakra-ui/checkbox@npm:2.2.15": - version: 2.2.15 - resolution: "@chakra-ui/checkbox@npm:2.2.15" +"@chakra-ui/checkbox@npm:2.3.2": + version: 2.3.2 + resolution: "@chakra-ui/checkbox@npm:2.3.2" dependencies: - "@chakra-ui/form-control": 2.0.18 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.0.7 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-merge-refs": 2.0.7 - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 - "@chakra-ui/react-use-update-effect": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/visually-hidden": 2.0.15 - "@zag-js/focus-visible": 0.2.2 + "@chakra-ui/visually-hidden": 2.2.0 + "@zag-js/focus-visible": 0.16.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: f1a76b8b2ec0b8af02a55ca2cd6eadde10ac797fc36d03b43438132128ca1c38d544a6a359db8fb3dc59f39456e95605665b022fe0c8fbac8ba9d0743ea1646e + checksum: b3dcf8b8e5530fd51df2b761a1721c554f01aa7d3e02fed6d8e12697715c73f6d42c9f80d116f4fc7b757f82f89bea876f1bc0c59cd4d64480c3f7536b0208ac languageName: node linkType: hard -"@chakra-ui/clickable@npm:2.0.14": - version: 2.0.14 - resolution: "@chakra-ui/clickable@npm:2.0.14" +"@chakra-ui/clickable@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/clickable@npm:2.1.0" dependencies: - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: react: ">=18" - checksum: bbb3314de60720102a664a64fdb3c898f4c2185beaf5547e3aef59dceca721e1f409605a208327331a4d06306f8985ece8e387df2de704947b6b9f9c269300df + checksum: 8f5da4b8e1e19a7752e10fb04a5c0afe6b7332415837272388c5249b11f70caf5d2654050c61d81a4d2a24e43ff47933a4096671af26b57aa0d72ab9025f86a1 languageName: node linkType: hard -"@chakra-ui/close-button@npm:2.0.17": - version: 2.0.17 - resolution: "@chakra-ui/close-button@npm:2.0.17" +"@chakra-ui/close-button@npm:2.1.1": + version: 2.1.1 + resolution: "@chakra-ui/close-button@npm:2.1.1" dependencies: - "@chakra-ui/icon": 3.0.16 + "@chakra-ui/icon": 3.2.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 203f3b0064d07e1f8a1631e7828722314f81fe1291eda267f552fa75551a96493fe810f6f2edf362892ecb10d9e101b647cb366f5196d4b0c79b1f3bf07f872d + checksum: 7b81bb592b19a81aea5f616b3d244a0e54b8a90a7beae56253bf18d29351b3b14bf934473ed940244340fef6066d3e1001d970c3692f02ce984e4a6d926cedd4 languageName: node linkType: hard -"@chakra-ui/color-mode@npm:2.1.12": - version: 2.1.12 - resolution: "@chakra-ui/color-mode@npm:2.1.12" +"@chakra-ui/color-mode@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/color-mode@npm:2.2.0" dependencies: - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 peerDependencies: react: ">=18" - checksum: 1bbe9ef3d9f2fb655de9c99fef3b631cc319c8283e2346d95824c7b3db783527abaf01eb0b395e0dfd5ce0d7e82ec070278157f65f10aee92ac507a5d44ee4b9 + checksum: ccba3ebb0131094f4844ea9b61333128ebd33eb70b16cc9117dd078f2df888d48573e47a9ac73ebc03283b2f49008cd56758aa7c15c159de3eb184a3819cb7e2 languageName: node linkType: hard -"@chakra-ui/control-box@npm:2.0.13": - version: 2.0.13 - resolution: "@chakra-ui/control-box@npm:2.0.13" +"@chakra-ui/control-box@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/control-box@npm:2.1.0" peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: e0cc5d4ca804751b507ec4acf9605c44df18522117bcd02684513689ad64bf8a44853153977c976aed386e210c6dc94c386296fbed7da4ee4430c63a293106dc + checksum: c52ff6ba03fae9818372a7a11ef22b2389ed5e7c046355eb3f6ae6d348db4c32058a841d502c759ee30a6efdd18c831274b31fc79a3f67ac1f1ca60bcc67e608 languageName: node linkType: hard -"@chakra-ui/counter@npm:2.0.14": - version: 2.0.14 - resolution: "@chakra-ui/counter@npm:2.0.14" +"@chakra-ui/counter@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/counter@npm:2.1.0" dependencies: "@chakra-ui/number-utils": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: react: ">=18" - checksum: 37149108c7c3a6d8adca5ce42a1fb16829e37e8fc7fa44b8941fa9810480d2f386f8a95bdf44955066f599b472a410259e22331ebf8501fb0280675d5ff6a345 + checksum: d955281ef594a26b31116c1323ae4231b809957048d0fa414f46d759f038a8d193227486f4b2a76320c83deff0a69078e850d83a10c10797ba986e458779dbb8 languageName: node linkType: hard -"@chakra-ui/css-reset@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/css-reset@npm:2.1.1" +"@chakra-ui/css-reset@npm:2.3.0": + version: 2.3.0 + resolution: "@chakra-ui/css-reset@npm:2.3.0" peerDependencies: "@emotion/react": ">=10.0.35" react: ">=18" - checksum: 56cb70f1276482af27a1ee301459fabc9022012659330f568358e8a8dda6d55a95e3ead9f3fedd2e5bdec74605d94974163c3660395c637d323fbd3170fafe57 + checksum: 1c760c7475c4b781c73a5174c265e05cd0f8cdca5420910fd53a29c565555863eeeb5967eb2deeb0c5219600a9dae4d14cbe0d4817db9c83e43f41963988df4e languageName: node linkType: hard -"@chakra-ui/descendant@npm:3.0.14": - version: 3.0.14 - resolution: "@chakra-ui/descendant@npm:3.0.14" +"@chakra-ui/descendant@npm:3.1.0": + version: 3.1.0 + resolution: "@chakra-ui/descendant@npm:3.1.0" dependencies: - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 peerDependencies: react: ">=18" - checksum: 6561544dfa75027d7fb7ef8eab7b9b375d6f94461cfe3a63ed72324dc3fa8b4e0d882bae8bad728b0a1dfe8729c85a7d91b12fa3f363f5e799c491722d64f2a9 + checksum: 9d0031df94b668a11805c01ce80e4945fb957132a7f5cc880a2496f2ad6952cbeefdc462ddad0a0b4ba0907332bceb6838a43054303d7735ff26242bd8e6e21c languageName: node linkType: hard -"@chakra-ui/dom-utils@npm:2.0.6": - version: 2.0.6 - resolution: "@chakra-ui/dom-utils@npm:2.0.6" - checksum: 0bfdb514059bbbcaa2090516f016a067f163abc3eb83a94a7c36606d69eb61b717d07dd298634227828f63561c177b5f9106d6575875fd57acc5f6bce8884f32 +"@chakra-ui/dom-utils@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/dom-utils@npm:2.1.0" + checksum: 935f5b4d3fb9af6030ae4beba14ae745c9ca9ca6c5476f5ebd72dc50934fb5ee7683bbad8172994dd029f59b3dfdd79e2be1e21b38156b6b9a70166341f5db07 languageName: node linkType: hard -"@chakra-ui/editable@npm:3.0.0": - version: 3.0.0 - resolution: "@chakra-ui/editable@npm:3.0.0" +"@chakra-ui/editable@npm:3.1.0": + version: 3.1.0 + resolution: "@chakra-ui/editable@npm:3.1.0" dependencies: - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.0.7 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-focus-on-pointer-down": 2.0.6 - "@chakra-ui/react-use-merge-refs": 2.0.7 - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 - "@chakra-ui/react-use-update-effect": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-focus-on-pointer-down": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 31f84fcab322d53653de96bbf262e2436f86e3126e2761191eb10a5b8b1d2870d3ae87e2f850ba56e3f522655787594038f4af16181d10e0756461b6a21614be + checksum: f9ee2ab959371607662b6a3c23c95aeead810f3da3a2469ec2e5ca9effe176b74e1a742d0e10584978129c4174cca24f5c096f74cb8ed1996b1e1a190ff9b18b languageName: node linkType: hard @@ -1676,103 +1845,103 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/focus-lock@npm:2.0.16": - version: 2.0.16 - resolution: "@chakra-ui/focus-lock@npm:2.0.16" +"@chakra-ui/focus-lock@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/focus-lock@npm:2.1.0" dependencies: - "@chakra-ui/dom-utils": 2.0.6 - react-focus-lock: ^2.9.2 + "@chakra-ui/dom-utils": 2.1.0 + react-focus-lock: ^2.9.4 peerDependencies: react: ">=18" - checksum: 960096aa31fae1391c910a223828c2ef19aaf0870121298e5391b5a779fab0a429d06d5907676c52c1be0602becbab1030a359bbd2b7a1a5e3360ab91836421d + checksum: 741671f132f4a772b0a65441ec50e96e8d718875aa634d1847285b4be0aa4ed1f0dbd7fe5eae0f50742454f8aa047d536ec1398de742f1269d25545f5b7b4871 languageName: node linkType: hard -"@chakra-ui/form-control@npm:2.0.18": - version: 2.0.18 - resolution: "@chakra-ui/form-control@npm:2.0.18" +"@chakra-ui/form-control@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/form-control@npm:2.2.0" dependencies: - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 2624e8c3ccd6ad06a22d4233303b91bf287970fad2fa13aa2e7c6e41fde2e1eb635e488f2d2fd1e88a8bf89a55ce0141445f7ee1a258ea26e2d74f50c966da3b + checksum: 3ac04664c4a063c83329a51f2ece019c866d5d08cf2c896beb29643205d258d74a9bed8072d00d37ff236b799b0a870b37cba29e295305fbce4b457906e7c025 languageName: node linkType: hard -"@chakra-ui/hooks@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/hooks@npm:2.2.0" +"@chakra-ui/hooks@npm:2.2.1": + version: 2.2.1 + resolution: "@chakra-ui/hooks@npm:2.2.1" dependencies: "@chakra-ui/react-utils": 2.0.12 "@chakra-ui/utils": 2.0.15 - compute-scroll-into-view: 1.0.20 + compute-scroll-into-view: 3.0.3 copy-to-clipboard: 3.3.3 peerDependencies: react: ">=18" - checksum: 778313f236f3bbb7f303487f974305ab0656b40fbd1e0b3561e69ada8519d30eed67fb6289a18dcaa6880355e150d4e8e4066e3f08814a4b2fd378557d4b18a6 + checksum: d0700e06c316d158c98a9a70448ee2a80379346c1ba0becafe968ebd1e1c81ecf4d5e4ebe07d58d1b5c81c62d9d90ff8fc7dd4f2b610937a4901bbc4ac6296ab languageName: node linkType: hard -"@chakra-ui/icon@npm:3.0.16": - version: 3.0.16 - resolution: "@chakra-ui/icon@npm:3.0.16" +"@chakra-ui/icon@npm:3.2.0": + version: 3.2.0 + resolution: "@chakra-ui/icon@npm:3.2.0" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: c0ac66946fe8950e7daaa2462f00f2f7d4ce41878b9f26451c0c94c75887f4ae49f86883c4d7c2728243e5c182b9530e752ec9817c7672e0f852bde8353b2039 + checksum: d417e2b343837d6862eb37739e3d02b8e8bbeeefa4c7e4f1d4a7fcfcdf1c7a4401de9094d7a08ba1419f73465ab30456427f8dbf2f2ffe29b77a14ad4b341b00 languageName: node linkType: hard -"@chakra-ui/image@npm:2.0.16": - version: 2.0.16 - resolution: "@chakra-ui/image@npm:2.0.16" +"@chakra-ui/image@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/image@npm:2.1.0" dependencies: - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 68cab8553fadb22f860c298e1863c874980b6b41d05af6ecced7a1d108e1fcbfa15b16e9c30607a2c9a9b534def4ee05700dc18d39082212d26c835e6658fc81 + checksum: 83bd16de9780e64e05ada5ddcccc0048228cdb9af73ca5dc75514fdbf14aed4fecee9c976cea768755b3ea3aae2d8f90d2bf63909c16d238331c9c9b31f5a31f languageName: node linkType: hard -"@chakra-ui/input@npm:2.0.22": - version: 2.0.22 - resolution: "@chakra-ui/input@npm:2.0.22" +"@chakra-ui/input@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/input@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 9ec02f5c20a6f2a584ae641c8e238d25bcd355df7eed9c263b908a72a1c106fe5f3c1eaef8f2fffe9c131d18320c9cb0916c92a01f24409b7f08535fdb439d73 + checksum: 0db226c07d0b4c726632036d08dada467c7676e3b4fe2b0881d8885f8b6903563d20d106c9052d60e1a56b67f498e30155fd47e4efe2dbd35cefdee427c740d8 languageName: node linkType: hard -"@chakra-ui/layout@npm:2.1.19": - version: 2.1.19 - resolution: "@chakra-ui/layout@npm:2.1.19" +"@chakra-ui/layout@npm:2.3.1": + version: 2.3.1 + resolution: "@chakra-ui/layout@npm:2.3.1" dependencies: "@chakra-ui/breakpoint-utils": 2.0.8 - "@chakra-ui/icon": 3.0.16 + "@chakra-ui/icon": 3.2.0 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 3b3e1c92361bda66ec67a2a6023cb137a5b0d7fbf17f5960f48a11c41d8a092044043a7d6be96d63658486630f8b8f3493ac1ba160572c366c624928da174695 + checksum: 388f150b1b7d2d55a2a8a1dbeec706bf82f56eefe867b670d6d7036e8715479e59b999e962c35c4bfef7f9196a6130a1a2436f20db0253a1b0cf6332fff1848c languageName: node linkType: hard @@ -1783,99 +1952,99 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/live-region@npm:2.0.13": - version: 2.0.13 - resolution: "@chakra-ui/live-region@npm:2.0.13" +"@chakra-ui/live-region@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/live-region@npm:2.1.0" peerDependencies: react: ">=18" - checksum: 776b6c9d803d10f61cca2716f7555fbb64709ffe2d9ebdf3555a858a261bb00d2a5e07aa99e19e6182fd4bf8fd93f65dfd5a36c816a245d0483a993413ad64f0 + checksum: 5a89dd76febf090f0b1f8ead616d4af6233276ab12df4b42c1dc48d329aeb4672732dd755613038f64cb92d02c32bb4a8e56922610de4e7d1f9df34e1087b01f languageName: node linkType: hard -"@chakra-ui/media-query@npm:3.2.12": - version: 3.2.12 - resolution: "@chakra-ui/media-query@npm:3.2.12" +"@chakra-ui/media-query@npm:3.3.0": + version: 3.3.0 + resolution: "@chakra-ui/media-query@npm:3.3.0" dependencies: "@chakra-ui/breakpoint-utils": 2.0.8 - "@chakra-ui/react-env": 3.0.0 + "@chakra-ui/react-env": 3.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 3d18c4a909d9ff528d8e29ebe417ebdec59d9970e126210b35eb97d7550a17ae89921e4cd2efcd118b3c8032df44c8c99b3c8d7adbd1e042f0014174318a2010 + checksum: 44ea1532ead0214256d157edc904ab14836c00197e163d441111dfdc47307a46dfca6020401507f8398ecf8bc1690e0589f9e7dcfdf0fd2adc56e9ec8cfbd27a languageName: node linkType: hard -"@chakra-ui/menu@npm:2.1.14": - version: 2.1.14 - resolution: "@chakra-ui/menu@npm:2.1.14" +"@chakra-ui/menu@npm:2.2.1": + version: 2.2.1 + resolution: "@chakra-ui/menu@npm:2.2.1" dependencies: - "@chakra-ui/clickable": 2.0.14 - "@chakra-ui/descendant": 3.0.14 + "@chakra-ui/clickable": 2.1.0 + "@chakra-ui/descendant": 3.1.0 "@chakra-ui/lazy-utils": 2.0.5 - "@chakra-ui/popper": 3.0.14 + "@chakra-ui/popper": 3.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-animation-state": 2.0.8 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-disclosure": 2.0.8 - "@chakra-ui/react-use-focus-effect": 2.0.10 - "@chakra-ui/react-use-merge-refs": 2.0.7 - "@chakra-ui/react-use-outside-click": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.0.7 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-animation-state": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-disclosure": 2.1.0 + "@chakra-ui/react-use-focus-effect": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-outside-click": 2.2.0 + "@chakra-ui/react-use-update-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/transition": 2.0.16 + "@chakra-ui/transition": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 682ee33b2db0748880c3f8eb81f19d4c00967a558d63d03e756964fe60337dc09343682821c6d3caa51d1ea06da9351d10f03112a3c87b700ae08f0ea0e9a76a + checksum: 883dfefcd11297f1a4771186fb0cc1976ef0fa8e537f38bdbfed2a7195e8387d4ea41da47b01677eb3188927d49724676a567289dfdb58e00746a46ea283de4f languageName: node linkType: hard -"@chakra-ui/modal@npm:2.2.11": - version: 2.2.11 - resolution: "@chakra-ui/modal@npm:2.2.11" +"@chakra-ui/modal@npm:2.3.1": + version: 2.3.1 + resolution: "@chakra-ui/modal@npm:2.3.1" dependencies: - "@chakra-ui/close-button": 2.0.17 - "@chakra-ui/focus-lock": 2.0.16 - "@chakra-ui/portal": 2.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/close-button": 2.1.1 + "@chakra-ui/focus-lock": 2.1.0 + "@chakra-ui/portal": 2.1.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/transition": 2.0.16 - aria-hidden: ^1.2.2 - react-remove-scroll: ^2.5.5 + "@chakra-ui/transition": 2.1.0 + aria-hidden: ^1.2.3 + react-remove-scroll: ^2.5.6 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: fe0ffbd9dbd112c00610ca98b31390386e579a22b4c3ffa3bf9eb21e732bf3258741f5ecd1f59832b867e0bfdae69ef4a99f900505edd84df405e7dcc3bd82fa + checksum: 2f2e3965199a3fa8f867f2fcb6c125763ac5c982b15f29cf1e462e2e49b5466a675b5a41f24fcf0ba40c25bf70fc401cee600ddb7642d250469a15df3352924e languageName: node linkType: hard -"@chakra-ui/number-input@npm:2.0.19": - version: 2.0.19 - resolution: "@chakra-ui/number-input@npm:2.0.19" +"@chakra-ui/number-input@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/number-input@npm:2.1.2" dependencies: - "@chakra-ui/counter": 2.0.14 - "@chakra-ui/form-control": 2.0.18 - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/counter": 2.1.0 + "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.0.7 - "@chakra-ui/react-use-event-listener": 2.0.7 - "@chakra-ui/react-use-interval": 2.0.5 - "@chakra-ui/react-use-merge-refs": 2.0.7 - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 - "@chakra-ui/react-use-update-effect": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-event-listener": 2.1.0 + "@chakra-ui/react-use-interval": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: daabf598dd2e2de145987eae6c4af4a69d2b6c106ec9f3d2df8662ee2393a2077254272c5a1a65b62c89559fb0c3ff1e585b02378ea8181a0f48abd0589fe067 + checksum: fcce1dedfb50a0246dc2d87e96b0faa472e43c47ae9c9821bd6bf94457737d954024ecbf2dc9cf05437169cf12c84cb3af59733d8e38dc5df5295931b9573a26 languageName: node linkType: hard @@ -1893,116 +2062,116 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/pin-input@npm:2.0.20": - version: 2.0.20 - resolution: "@chakra-ui/pin-input@npm:2.0.20" +"@chakra-ui/pin-input@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/pin-input@npm:2.1.0" dependencies: - "@chakra-ui/descendant": 3.0.14 + "@chakra-ui/descendant": 3.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 8db6d261471f23de4f0a72b0b03e60d35d40da0e0cf4d138f5aa441c1b9e24026b342b9ff3e71c1eba327415c5378213d2279655f39276d392c12ac5d281fbf4 + checksum: fc1cbeb1646fe6466086b578f3375f453457fab6cda59e36390dad7999689d4ccd64392bc49a92dfa5bf1a5929ee56931eab523190d43698977bd5e1cdd70334 languageName: node linkType: hard -"@chakra-ui/popover@npm:2.1.11": - version: 2.1.11 - resolution: "@chakra-ui/popover@npm:2.1.11" +"@chakra-ui/popover@npm:2.2.1": + version: 2.2.1 + resolution: "@chakra-ui/popover@npm:2.2.1" dependencies: - "@chakra-ui/close-button": 2.0.17 + "@chakra-ui/close-button": 2.1.1 "@chakra-ui/lazy-utils": 2.0.5 - "@chakra-ui/popper": 3.0.14 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/popper": 3.1.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-animation-state": 2.0.8 - "@chakra-ui/react-use-disclosure": 2.0.8 - "@chakra-ui/react-use-focus-effect": 2.0.10 - "@chakra-ui/react-use-focus-on-pointer-down": 2.0.6 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-animation-state": 2.1.0 + "@chakra-ui/react-use-disclosure": 2.1.0 + "@chakra-ui/react-use-focus-effect": 2.1.0 + "@chakra-ui/react-use-focus-on-pointer-down": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 35dc02f155516fa083210fd936a02e27555ae3c5b2b5869a6cffba0338a22e82726f7b18c89c696f9a0113716dc65130a5addca022a3511ccb032af8fca2fa3b + checksum: 5034e2b156180da2875c75b8828bf2d83a21d814101ab27db8f057e601f1cdf109568360db229f9a73c67e029d88f9f25670e42eb80eea21a908d3f7f91274fa languageName: node linkType: hard -"@chakra-ui/popper@npm:3.0.14": - version: 3.0.14 - resolution: "@chakra-ui/popper@npm:3.0.14" +"@chakra-ui/popper@npm:3.1.0": + version: 3.1.0 + resolution: "@chakra-ui/popper@npm:3.1.0" dependencies: "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@popperjs/core": ^2.9.3 peerDependencies: react: ">=18" - checksum: 3a3a54d79b00f4feb8865f4eb15a9b906f287bbf1e920613724b953922f904c6425d1c51df0396dae2030ffb5225fa0b4c617d1b64421539fdcf486654ab31e4 + checksum: 4e2797a16ca2f1d6071790489e7a9811b791a51437ca8a44c6aed8b04f3192d2159b2b033fe1c9fa2dd79fb28977668e1721ae922af43807be1bb9901c39b618 languageName: node linkType: hard -"@chakra-ui/portal@npm:2.0.16": - version: 2.0.16 - resolution: "@chakra-ui/portal@npm:2.0.16" +"@chakra-ui/portal@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/portal@npm:2.1.0" dependencies: - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 peerDependencies: react: ">=18" react-dom: ">=18" - checksum: fbb6799b1e82c4f35cdff82f17a64373b4b36d4f9067aef310cd7ef32119c0f1a1fd1e10e29acdcafa90016164d54405ecdd9f29e6130d290fc546a72e0ccdbb + checksum: fa9799f99614943f17e32797e2daf7fe7d96da6d2ccd8bb96b817ffac8a1301b29d398d96c1c0c1ba72ab8f6c2e4e6835eeb11cb1f56968ff3934c611068900c languageName: node linkType: hard -"@chakra-ui/progress@npm:2.1.6": - version: 2.1.6 - resolution: "@chakra-ui/progress@npm:2.1.6" +"@chakra-ui/progress@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/progress@npm:2.2.0" dependencies: - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 9c705955b55a2dd622b954066aa14d62ccb4f24b31b76ef9d278719dac3aaaacce220c38a85abc101fd1743e04112bf8db3916e7f87f4b5a25f175b65f759d7a + checksum: 4936959f3bfe645d4a715808c273eb8da74238bff35da26ae62cf03b709233852a22563a571160637cd509082208008220421ca887efee6b7f73e0d8401b50c8 languageName: node linkType: hard -"@chakra-ui/provider@npm:2.2.4": - version: 2.2.4 - resolution: "@chakra-ui/provider@npm:2.2.4" +"@chakra-ui/provider@npm:2.4.2": + version: 2.4.2 + resolution: "@chakra-ui/provider@npm:2.4.2" dependencies: - "@chakra-ui/css-reset": 2.1.1 - "@chakra-ui/portal": 2.0.16 - "@chakra-ui/react-env": 3.0.0 - "@chakra-ui/system": 2.5.7 + "@chakra-ui/css-reset": 2.3.0 + "@chakra-ui/portal": 2.1.0 + "@chakra-ui/react-env": 3.1.0 + "@chakra-ui/system": 2.6.2 "@chakra-ui/utils": 2.0.15 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" react-dom: ">=18" - checksum: f3e27402fba9eed881d872b172d55a4e60d4c885b7456f03037db7d35ecebbdce043ccf53928b58a176736f8a9a4e906a6435815d3c2e04af129bbcf89559d0c + checksum: 8ecb657ca2c15ba975e01b1f127f774a10f7ea8eed032cec84e0c82e223eb66dce6834da8f6c8f0ab8aa3cde1867c1e10e77bb4cb6488f1e009ca97bc4d9be6f languageName: node linkType: hard -"@chakra-ui/radio@npm:2.0.22": - version: 2.0.22 - resolution: "@chakra-ui/radio@npm:2.0.22" +"@chakra-ui/radio@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/radio@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.0.18 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@zag-js/focus-visible": 0.2.2 + "@zag-js/focus-visible": 0.16.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: b48d20dd15f6f540a287d16243261651b124647c7f33fc48ded9856945a5edeab221ec9b147be25474769883e59358669dff54f16385596f0c99d1e02b04a61a + checksum: 44b99b830bd3b5e5e0e2332c2c38908abd2740fd0dc695fcd899a06f5f76cfed318f85dce66d9eb12a982daf4797a1945eb2653d1ca1ac3bc34295dce7ab147c languageName: node linkType: hard @@ -2015,23 +2184,23 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/react-context@npm:2.0.8": - version: 2.0.8 - resolution: "@chakra-ui/react-context@npm:2.0.8" +"@chakra-ui/react-context@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-context@npm:2.1.0" peerDependencies: react: ">=18" - checksum: 4513f6cc218c45665398fd60b688c5966c84433f33248703a16ac4efc4291a95427bf66581adeb0b5d8c4301ecd48582c4a1ad81a6b1cbfe006dc97580ac5b04 + checksum: 2e9c0f4e011a5a05cc811478d61db4b8d06cc2a4cc484ce44ef1f95aa6e9bb9df5407a92d74f840a1fea6e680b704909af9a1744308d6da4c8f939feb81b75b0 languageName: node linkType: hard -"@chakra-ui/react-env@npm:3.0.0": - version: 3.0.0 - resolution: "@chakra-ui/react-env@npm:3.0.0" +"@chakra-ui/react-env@npm:3.1.0": + version: 3.1.0 + resolution: "@chakra-ui/react-env@npm:3.1.0" dependencies: - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 peerDependencies: react: ">=18" - checksum: 2de31bfb876a47be07a0f51c4a141f1e3aeefe68319f8b455909a7332135b5ef849890dc3a85a160cd933eb5c48e7e64187c95b47d3361e96352428fd3ad118e + checksum: 54edb02ffdb9109bdc6d7f48dc88e5a8fd994b0d1d278920fd6c8cfc52f4ea676e6ef37ba07fbcb01f21c7aaa0bbae5a8de6c8ab3747c9391753bd26914f6e51 languageName: node linkType: hard @@ -2044,184 +2213,184 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/react-use-animation-state@npm:2.0.8": - version: 2.0.8 - resolution: "@chakra-ui/react-use-animation-state@npm:2.0.8" +"@chakra-ui/react-use-animation-state@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-animation-state@npm:2.1.0" dependencies: - "@chakra-ui/dom-utils": 2.0.6 - "@chakra-ui/react-use-event-listener": 2.0.7 + "@chakra-ui/dom-utils": 2.1.0 + "@chakra-ui/react-use-event-listener": 2.1.0 peerDependencies: react: ">=18" - checksum: fee6f4690c75c0a262d83eb9b50109e6ffc16ab43f17ea34e6dca493db09ef1b36e7e443f34db9b101cece4c6db354581009816a70b18ab98c0de4f35ad39dc9 + checksum: 9bea609a07e9a0c04a14169a3c72bc99b03972cdddd790faadb549ed7f3354024ca6aa20fba5a498182bb8666af6a0dac764dac68104051cff98170a78795914 languageName: node linkType: hard -"@chakra-ui/react-use-callback-ref@npm:2.0.7": - version: 2.0.7 - resolution: "@chakra-ui/react-use-callback-ref@npm:2.0.7" +"@chakra-ui/react-use-callback-ref@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-callback-ref@npm:2.1.0" peerDependencies: react: ">=18" - checksum: 96c7eb3b62e57cecef724db9c5551e3721ec3d625e540efac3ce087a82a80e9a9e8b5322c51dffd6a2c2c69b989c9a29107239efada077b63208a25732ba6b06 + checksum: 2f1aa7803663ec211628b4a1a20d66df89c1d83bf0c2a8f0508682ca47cb2cb76b48296fe9166d2ea47caa0161c19b1eb99cd6307a4d285871a1f8d913cc40c6 languageName: node linkType: hard -"@chakra-ui/react-use-controllable-state@npm:2.0.8": - version: 2.0.8 - resolution: "@chakra-ui/react-use-controllable-state@npm:2.0.8" +"@chakra-ui/react-use-controllable-state@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-controllable-state@npm:2.1.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 peerDependencies: react: ">=18" - checksum: 528e6a49641badd5cbb88403ee5beab10879c25fe5cc48f77d7591ae1ae135dbe4385b6b2e6726815180b6de7368f70fda5c522d2222ab1f5a651aff8fc26c8d + checksum: e19a5994f4ec1d726a98cada72e234aa55c7de2619afcf19209f945f596f8224d4b727a2941a42b879f7bc2442d60d1aa807a3f2af5bf6e8f0ec6191c75c70cf languageName: node linkType: hard -"@chakra-ui/react-use-disclosure@npm:2.0.8": - version: 2.0.8 - resolution: "@chakra-ui/react-use-disclosure@npm:2.0.8" +"@chakra-ui/react-use-disclosure@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-disclosure@npm:2.1.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 peerDependencies: react: ">=18" - checksum: 4fde5e8be5523d19fa057c36cefd9feb703ad8f14c32479a2d54e4fe69e9644b8719b74bb00cee2145f8e8164d8a059aa7ca7bcfbf7ab9e749bbda50bb595b04 + checksum: 97f2b51aca023deadbd5538482eb89a9d5ae5248146dfa275ae69ea97ade300e732af02a377cad243f6f02665aabeadc9d79f7ee754a079da7dcd73eb3929469 languageName: node linkType: hard -"@chakra-ui/react-use-event-listener@npm:2.0.7": - version: 2.0.7 - resolution: "@chakra-ui/react-use-event-listener@npm:2.0.7" +"@chakra-ui/react-use-event-listener@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-event-listener@npm:2.1.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 peerDependencies: react: ">=18" - checksum: 8b77ad7ac602ac20e975ff8b76ffba337cb0bd6f3cd398a09193f7a8cff99677deddc8157f3f33bb245eaa8ff14db66a867fa993de8af90f723c4ddaebb94538 + checksum: dac679bf7eb611a3ee336a884ba87a055a0bc3a224dba14ea0760f7b149b624f2eb77bb00e3786cb4ce172b6473d6e7a2d11f1e38b456cc6f599861213fedafb languageName: node linkType: hard -"@chakra-ui/react-use-focus-effect@npm:2.0.10": - version: 2.0.10 - resolution: "@chakra-ui/react-use-focus-effect@npm:2.0.10" +"@chakra-ui/react-use-focus-effect@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-focus-effect@npm:2.1.0" dependencies: - "@chakra-ui/dom-utils": 2.0.6 - "@chakra-ui/react-use-event-listener": 2.0.7 - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 - "@chakra-ui/react-use-update-effect": 2.0.7 + "@chakra-ui/dom-utils": 2.1.0 + "@chakra-ui/react-use-event-listener": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.1.0 peerDependencies: react: ">=18" - checksum: 6145ca543f340c4c92796cbd7b6a5ac757c41e54be2a252efc74a23102528db45faf86dd26219252b4cadb456b09c1dc6fa6f3982eb1213e23d1a83d8ca8c65c + checksum: b8cf78842d5a614fd2c3fb2b9f97888a4968a50ba84ba77a2585dae3cce7458863c4e2cb0f9d62f8188ada79222cc09afa692da2a291d96ecbeb857c65f874ca languageName: node linkType: hard -"@chakra-ui/react-use-focus-on-pointer-down@npm:2.0.6": - version: 2.0.6 - resolution: "@chakra-ui/react-use-focus-on-pointer-down@npm:2.0.6" +"@chakra-ui/react-use-focus-on-pointer-down@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-focus-on-pointer-down@npm:2.1.0" dependencies: - "@chakra-ui/react-use-event-listener": 2.0.7 + "@chakra-ui/react-use-event-listener": 2.1.0 peerDependencies: react: ">=18" - checksum: a10c2f7abb33fa15f1315e42d97192edc6eeadcef3631f576ccf1303d009671d06737392422c7241a93da561c7cda1ada5a9187e6fd54b2c53472314684c5b5e + checksum: 02a3e2c49ddf8d36dacba7107bb93e26cd5fc9dbb0f1739e11f25daa3430efe4978d3cd590b1280d2ec70c8f03be90998c7f8398a8e8001f1ad1e3d00a1a1f30 languageName: node linkType: hard -"@chakra-ui/react-use-interval@npm:2.0.5": - version: 2.0.5 - resolution: "@chakra-ui/react-use-interval@npm:2.0.5" +"@chakra-ui/react-use-interval@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-interval@npm:2.1.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 peerDependencies: react: ">=18" - checksum: 1b93e54e0f51b42d3411948ecd0d7e5b41311931cbc670e7b0e6cf70b15997f1e039353a75402b7607a4d322807fedc974508486a281bbdf9e7304370d1b85b6 + checksum: 1e6336eb9bfbef0884550943d3cc4538ce7f333f21b3a5ec7696e3f5ebe6d44366fc2447c554a502337a2593d2a4ee83da49970b95f769a1fefff4fae9c2d9e6 languageName: node linkType: hard -"@chakra-ui/react-use-latest-ref@npm:2.0.5": - version: 2.0.5 - resolution: "@chakra-ui/react-use-latest-ref@npm:2.0.5" +"@chakra-ui/react-use-latest-ref@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-latest-ref@npm:2.1.0" peerDependencies: react: ">=18" - checksum: c9648e5f8edc801e1fe6512a8979acbd9c2ef067570ac2de218be4c1be5bb520f97486d387832e1c7fa70dedd86718f6b70f5e5ec403d746f8f8c937d2b49d14 + checksum: 0384389bf695407122b6eda6e4c7c54b70100605280e69f4903c0ee4e57849c80361b24948fb63062566a5021190508fc652e64a3b3de05cff1232fdcca89986 languageName: node linkType: hard -"@chakra-ui/react-use-merge-refs@npm:2.0.7": - version: 2.0.7 - resolution: "@chakra-ui/react-use-merge-refs@npm:2.0.7" +"@chakra-ui/react-use-merge-refs@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-merge-refs@npm:2.1.0" peerDependencies: react: ">=18" - checksum: b77d05f53cbecf697c2e936618830969dddbcb69c49b486f2c6420a876b9667b61d20bf34d97534e64abab68c687faa85739722d752609b8f8b0818bb4d09129 + checksum: e5a6e689b706f401de4dcb66191c476430e8215b56d7391568ebdabc0fee871405837619deb7f0d5ebc961f8952936a17726ebd42ccf9ec236348675afbe4cba languageName: node linkType: hard -"@chakra-ui/react-use-outside-click@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-outside-click@npm:2.1.0" +"@chakra-ui/react-use-outside-click@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/react-use-outside-click@npm:2.2.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 peerDependencies: react: ">=18" - checksum: 08106bbbca812cac8ece79a21ede2ad7e953ed252773ae19df73a0d58f32fb3dbc73408ae90a20f4d105ed5a33626005cb9b34bc3c8a86640b6abb8874edc97c + checksum: 4ef77e83b04b635f969746d2051a5e896a9e8380f08f6930538fc8ce85f13ebe94e42ca866d1882f8c51f4d9f0457994b94a7abf78606edba627c645c4d66568 languageName: node linkType: hard -"@chakra-ui/react-use-pan-event@npm:2.0.9": - version: 2.0.9 - resolution: "@chakra-ui/react-use-pan-event@npm:2.0.9" +"@chakra-ui/react-use-pan-event@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-pan-event@npm:2.1.0" dependencies: "@chakra-ui/event-utils": 2.0.8 - "@chakra-ui/react-use-latest-ref": 2.0.5 + "@chakra-ui/react-use-latest-ref": 2.1.0 framesync: 6.1.2 peerDependencies: react: ">=18" - checksum: c494699f17582c04a15e2a071623718390a44f7ef0579f44e82c63e741d0bc9ec13bd3e5030ee3081cac52487a66121f95cfe78d42c2a332c996b44dd27c523e + checksum: a084bfd8ace81079b46cb5825a7863cc6db7f4ee329e660ada74ad4343a37bb2b5af30215323787e3e94461a5812516740a28631747584c0f3c6de6823726b76 languageName: node linkType: hard -"@chakra-ui/react-use-previous@npm:2.0.5": - version: 2.0.5 - resolution: "@chakra-ui/react-use-previous@npm:2.0.5" +"@chakra-ui/react-use-previous@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-previous@npm:2.1.0" peerDependencies: react: ">=18" - checksum: a94021667fd3e0ce8992f2f6fc5c04830b29644632b2ceb776612e37581bddea7c57628e99ce17406a62acc493b7d974fb94e43106083f737ed50ad7e383ccd2 + checksum: d868160842c271877c8d363e7a9626c7ff5f3f64b30d224418d5752abd39df0855fc98580f9f698e6e9fbf043b3a3e4bfdc9cb4964e972bf709be329752f4443 languageName: node linkType: hard -"@chakra-ui/react-use-safe-layout-effect@npm:2.0.5": - version: 2.0.5 - resolution: "@chakra-ui/react-use-safe-layout-effect@npm:2.0.5" +"@chakra-ui/react-use-safe-layout-effect@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-safe-layout-effect@npm:2.1.0" peerDependencies: react: ">=18" - checksum: ce4ad1a764415ca72892868ccd24024ecd74ee865a4ef8dad84a1fa50ea71fd7142f76f54b733d518417a281c43d2b70068ced63a0324be09908e1f7e58e542b + checksum: 83a3e905664dc1eba4a4c532d85b8d789a2c6596bac33dd8d6993433a0f344169b72e937d0eeb6337cb4d8bf85f39ab17039e40dc0626ec7090ce3f05ea378b7 languageName: node linkType: hard -"@chakra-ui/react-use-size@npm:2.0.10": - version: 2.0.10 - resolution: "@chakra-ui/react-use-size@npm:2.0.10" +"@chakra-ui/react-use-size@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-size@npm:2.1.0" dependencies: - "@zag-js/element-size": 0.3.2 + "@zag-js/element-size": 0.10.5 peerDependencies: react: ">=18" - checksum: 3d460a2b35335de38eaa4510d951a04304521bca9c78dce28aec57211983ca781c6bf6facfc722404de53a67a1190bcfc0a11e94a0bb63a5ab504f674d178fe8 + checksum: cf0bfbcacfbfffdb7e13532300ff2df013d98a221b31af3248324976cd115fbd3ae76a4917c3e40ab44372bea66b709cb22550ab7d53a7d500624c1fefeb19b6 languageName: node linkType: hard -"@chakra-ui/react-use-timeout@npm:2.0.5": - version: 2.0.5 - resolution: "@chakra-ui/react-use-timeout@npm:2.0.5" +"@chakra-ui/react-use-timeout@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-timeout@npm:2.1.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 peerDependencies: react: ">=18" - checksum: 51b3135f85bcc4687baa46c01908f01b1930fc07ad78b37cdba79da84dcd47447588df076fd77faed46bccdc115fa08c2d7f6fad2511d79c1461f952279fb3c0 + checksum: c23b6ec5a4a02465cdf01cf5a268dbe11d597e47ad922b6120dbf3ffa98e8dfddf59f7661ee41ecdb21d67aee5eb98067351a5e33b92798d7bc1c5b4fb532710 languageName: node linkType: hard -"@chakra-ui/react-use-update-effect@npm:2.0.7": - version: 2.0.7 - resolution: "@chakra-ui/react-use-update-effect@npm:2.0.7" +"@chakra-ui/react-use-update-effect@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-update-effect@npm:2.1.0" peerDependencies: react: ">=18" - checksum: 1a6ace0509d6c7a0022cc359c925f513c6fab4d979bf36d8cd98e81a39bc470398a88e799252275ce712297e26bd3d944a349d288d052e8640175e447e5236d8 + checksum: 14ab86a6c487101033e7f3252a98488fc45667d9c7cfd4b76219deeafe8b22f3026b3384b7c2a895ff73831eaa239c598b44d0741bb05ffcf264b57bd8a71f0c languageName: node linkType: hard @@ -2237,81 +2406,82 @@ __metadata: linkType: hard "@chakra-ui/react@npm:^2.6.1": - version: 2.6.1 - resolution: "@chakra-ui/react@npm:2.6.1" - dependencies: - "@chakra-ui/accordion": 2.1.11 - "@chakra-ui/alert": 2.1.0 - "@chakra-ui/avatar": 2.2.10 - "@chakra-ui/breadcrumb": 2.1.5 - "@chakra-ui/button": 2.0.18 - "@chakra-ui/card": 2.1.6 - "@chakra-ui/checkbox": 2.2.15 - "@chakra-ui/close-button": 2.0.17 - "@chakra-ui/control-box": 2.0.13 - "@chakra-ui/counter": 2.0.14 - "@chakra-ui/css-reset": 2.1.1 - "@chakra-ui/editable": 3.0.0 - "@chakra-ui/focus-lock": 2.0.16 - "@chakra-ui/form-control": 2.0.18 - "@chakra-ui/hooks": 2.2.0 - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/image": 2.0.16 - "@chakra-ui/input": 2.0.22 - "@chakra-ui/layout": 2.1.19 - "@chakra-ui/live-region": 2.0.13 - "@chakra-ui/media-query": 3.2.12 - "@chakra-ui/menu": 2.1.14 - "@chakra-ui/modal": 2.2.11 - "@chakra-ui/number-input": 2.0.19 - "@chakra-ui/pin-input": 2.0.20 - "@chakra-ui/popover": 2.1.11 - "@chakra-ui/popper": 3.0.14 - "@chakra-ui/portal": 2.0.16 - "@chakra-ui/progress": 2.1.6 - "@chakra-ui/provider": 2.2.4 - "@chakra-ui/radio": 2.0.22 - "@chakra-ui/react-env": 3.0.0 - "@chakra-ui/select": 2.0.19 - "@chakra-ui/skeleton": 2.0.24 - "@chakra-ui/slider": 2.0.24 - "@chakra-ui/spinner": 2.0.13 - "@chakra-ui/stat": 2.0.18 - "@chakra-ui/stepper": 2.2.0 - "@chakra-ui/styled-system": 2.9.0 - "@chakra-ui/switch": 2.0.27 - "@chakra-ui/system": 2.5.7 - "@chakra-ui/table": 2.0.17 - "@chakra-ui/tabs": 2.1.9 - "@chakra-ui/tag": 3.0.0 - "@chakra-ui/textarea": 2.0.19 - "@chakra-ui/theme": 3.1.1 - "@chakra-ui/theme-utils": 2.0.17 - "@chakra-ui/toast": 6.1.3 - "@chakra-ui/tooltip": 2.2.8 - "@chakra-ui/transition": 2.0.16 + version: 2.8.2 + resolution: "@chakra-ui/react@npm:2.8.2" + dependencies: + "@chakra-ui/accordion": 2.3.1 + "@chakra-ui/alert": 2.2.2 + "@chakra-ui/avatar": 2.3.0 + "@chakra-ui/breadcrumb": 2.2.0 + "@chakra-ui/button": 2.1.0 + "@chakra-ui/card": 2.2.0 + "@chakra-ui/checkbox": 2.3.2 + "@chakra-ui/close-button": 2.1.1 + "@chakra-ui/control-box": 2.1.0 + "@chakra-ui/counter": 2.1.0 + "@chakra-ui/css-reset": 2.3.0 + "@chakra-ui/editable": 3.1.0 + "@chakra-ui/focus-lock": 2.1.0 + "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/hooks": 2.2.1 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/image": 2.1.0 + "@chakra-ui/input": 2.1.2 + "@chakra-ui/layout": 2.3.1 + "@chakra-ui/live-region": 2.1.0 + "@chakra-ui/media-query": 3.3.0 + "@chakra-ui/menu": 2.2.1 + "@chakra-ui/modal": 2.3.1 + "@chakra-ui/number-input": 2.1.2 + "@chakra-ui/pin-input": 2.1.0 + "@chakra-ui/popover": 2.2.1 + "@chakra-ui/popper": 3.1.0 + "@chakra-ui/portal": 2.1.0 + "@chakra-ui/progress": 2.2.0 + "@chakra-ui/provider": 2.4.2 + "@chakra-ui/radio": 2.1.2 + "@chakra-ui/react-env": 3.1.0 + "@chakra-ui/select": 2.1.2 + "@chakra-ui/skeleton": 2.1.0 + "@chakra-ui/skip-nav": 2.1.0 + "@chakra-ui/slider": 2.1.0 + "@chakra-ui/spinner": 2.1.0 + "@chakra-ui/stat": 2.1.1 + "@chakra-ui/stepper": 2.3.1 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/switch": 2.1.2 + "@chakra-ui/system": 2.6.2 + "@chakra-ui/table": 2.1.0 + "@chakra-ui/tabs": 3.0.0 + "@chakra-ui/tag": 3.1.1 + "@chakra-ui/textarea": 2.1.2 + "@chakra-ui/theme": 3.3.1 + "@chakra-ui/theme-utils": 2.0.21 + "@chakra-ui/toast": 7.0.2 + "@chakra-ui/tooltip": 2.3.1 + "@chakra-ui/transition": 2.1.0 "@chakra-ui/utils": 2.0.15 - "@chakra-ui/visually-hidden": 2.0.15 + "@chakra-ui/visually-hidden": 2.2.0 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: ed7cd1547a29dbc9e632d5042c433c8ef2bc0a9cd794c77b57fcfd7eb224604ae8fa5150da84ddc903a59750edffc24ebcb297fde31eaf2bfc6b640ad929a485 + checksum: f7af6ec5f248e7995030a4f61c6f815bef7bb9fbebd652a4f2eff9b313db007124e8f636727a50f4d40f6f4550249c5920bb47f024cc34a3e97286a02666ea98 languageName: node linkType: hard -"@chakra-ui/select@npm:2.0.19": - version: 2.0.19 - resolution: "@chakra-ui/select@npm:2.0.19" +"@chakra-ui/select@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/select@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 8bb7406bfb8914c051c1aa71f7f3351df8ac91fe4cea62d9026dafbfee62b415c40525bdbdda0b43f423317495376fc4c42c35e5474605392e2e3769673400c9 + checksum: d98ea14cc9146bfad976c5f230970adf7012251c6895d8e0f24ad36ae478351717cc99cc12f1e3ce8b1b314b6712a5481d9e2a9364bb7cd0f05d55d06a27bf32 languageName: node linkType: hard @@ -2322,273 +2492,284 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/skeleton@npm:2.0.24": - version: 2.0.24 - resolution: "@chakra-ui/skeleton@npm:2.0.24" +"@chakra-ui/skeleton@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/skeleton@npm:2.1.0" dependencies: - "@chakra-ui/media-query": 3.2.12 - "@chakra-ui/react-use-previous": 2.0.5 + "@chakra-ui/media-query": 3.3.0 + "@chakra-ui/react-use-previous": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 0ac5dfe1ada7de5312c480afeb496be8be479659195f1b7d5842ea99d16a9f92e7598493a167a4516967b1d58e5e5478a6f6914505d7b3b0988899f247595116 + checksum: f153cfd46453a167fd1d93e26326f5ae11a4ce7b80e8847ce117e2c2d930e908dcdff1faa1f8768675596daa9a1aaef2304da1528975924178e97ed9e589ca24 languageName: node linkType: hard -"@chakra-ui/slider@npm:2.0.24": - version: 2.0.24 - resolution: "@chakra-ui/slider@npm:2.0.24" +"@chakra-ui/skip-nav@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/skip-nav@npm:2.1.0" + peerDependencies: + "@chakra-ui/system": ">=2.0.0" + react: ">=18" + checksum: 3a7ea19d7414b3ad91a01685d47ec5eed59d74d58853fef18445b6e15d94e3fbc4a8fed43951d6e5542d33549275ed13093e0df5b9b449fd7b872fd85db2d319 + languageName: node + linkType: hard + +"@chakra-ui/slider@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/slider@npm:2.1.0" dependencies: "@chakra-ui/number-utils": 2.0.7 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.0.7 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-latest-ref": 2.0.5 - "@chakra-ui/react-use-merge-refs": 2.0.7 - "@chakra-ui/react-use-pan-event": 2.0.9 - "@chakra-ui/react-use-size": 2.0.10 - "@chakra-ui/react-use-update-effect": 2.0.7 + "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-latest-ref": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-pan-event": 2.1.0 + "@chakra-ui/react-use-size": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: b10f3a89c63c9658c51a1a755d54a7ea0e82baccc884e670dbb09c2c4fd75937698b0a7e8d0a11957f462ccf83aac56d95df95ea3b26f26d4be6a86a8d389305 + checksum: 8e11468e0ef7d07cf8784b8034e4d6fad867d0fe06723f02fd8cf3427524ba29fb64f3ebf56aaf91cb0f11f3bf0af96e18ea732a0dfd0d734e1a609567014bb4 languageName: node linkType: hard -"@chakra-ui/spinner@npm:2.0.13": - version: 2.0.13 - resolution: "@chakra-ui/spinner@npm:2.0.13" +"@chakra-ui/spinner@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/spinner@npm:2.1.0" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: cd6cb560d5178cde6004088c0e35f99da7dcd3ecdaf771ce185141f751ac2eee9c7849593a4a889f5e3d48aefb55f3914f5fc5f53c0bfefc003b55c73d98da75 + checksum: f1aa36799e0cc5d791f11cb70deaaff85bef0af3fa4d51919f56fb9457a06e58be6ec1a7f98d8054eba62308d4e44bba719e3c820b29b6c2ae2e807d705971c0 languageName: node linkType: hard -"@chakra-ui/stat@npm:2.0.18": - version: 2.0.18 - resolution: "@chakra-ui/stat@npm:2.0.18" +"@chakra-ui/stat@npm:2.1.1": + version: 2.1.1 + resolution: "@chakra-ui/stat@npm:2.1.1" dependencies: - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 49abd0d8a4bea7f542e20044f463ac6c74407974cbd17acf2d5e7277a72ede9df1076bdd54b0dec775286944bf6c2a44f2c6c424c8e0f7f8f1f7546175f879f0 + checksum: f7fa51912a313a7cf0ddd1f1a71c32cb4cd01c2da11b43f232cba2b0ef772bf401fba81dd7469c354c43b718ce1a13c01feef62fcae45bdd66c33698a6fb5fab languageName: node linkType: hard -"@chakra-ui/stepper@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/stepper@npm:2.2.0" +"@chakra-ui/stepper@npm:2.3.1": + version: 2.3.1 + resolution: "@chakra-ui/stepper@npm:2.3.1" dependencies: - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: b999cd21152c463f3d42b2e67e2c1c2c3d320734332227c9c66c5bf3a3e1f31bf1137a64047ee23668e46887bc55c6c444d892571da9f7da5331241f5969faa5 + checksum: a638ffb2a5132dd79f6e0a27b2716115610f7370877b28985bb2618208c84bd76921431659a98cf6afa56f46aeb9f42f78cee9ed73692c5d1cba2412f37921c1 languageName: node linkType: hard -"@chakra-ui/styled-system@npm:2.9.0": - version: 2.9.0 - resolution: "@chakra-ui/styled-system@npm:2.9.0" +"@chakra-ui/styled-system@npm:2.9.2": + version: 2.9.2 + resolution: "@chakra-ui/styled-system@npm:2.9.2" dependencies: "@chakra-ui/shared-utils": 2.0.5 - csstype: ^3.0.11 + csstype: ^3.1.2 lodash.mergewith: 4.6.2 - checksum: 4f8863cf684ce274be4f5247c8ff8880ecb90e4373e581f2ac26e925d3958a1db057597a9485acd59cfd69412d26939cf9a4e498f13beb0513dd5200fe6a2143 + checksum: 05202a86f1d8c6f37b5a95a56d7aed6b24fe12ac17f54690d46fcc7715e5e78e34a2aa0a15dc83e26396c4d7bc8188e761ddc2938e65cd782b11576a66a73519 languageName: node linkType: hard -"@chakra-ui/switch@npm:2.0.27": - version: 2.0.27 - resolution: "@chakra-ui/switch@npm:2.0.27" +"@chakra-ui/switch@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/switch@npm:2.1.2" dependencies: - "@chakra-ui/checkbox": 2.2.15 + "@chakra-ui/checkbox": 2.3.2 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 82c4d279cce2cf1d45f4c89cc544f55767852fb227a8872ce663664dc74dc2a8cf1b551bc171bb949d2b003537695aec0763a3713f10919d39ee59afeda85707 + checksum: 3a4e61b2e6215468e685651b7cfc118d93570210aa0b3529f2aa9eea69be3935e1b00eeb0306050edef4840f6a8920d72ff5353ffb815ef65d7d720f7b33fe82 languageName: node linkType: hard -"@chakra-ui/system@npm:2.5.7": - version: 2.5.7 - resolution: "@chakra-ui/system@npm:2.5.7" +"@chakra-ui/system@npm:2.6.2": + version: 2.6.2 + resolution: "@chakra-ui/system@npm:2.6.2" dependencies: - "@chakra-ui/color-mode": 2.1.12 + "@chakra-ui/color-mode": 2.2.0 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-utils": 2.0.12 - "@chakra-ui/styled-system": 2.9.0 - "@chakra-ui/theme-utils": 2.0.17 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/theme-utils": 2.0.21 "@chakra-ui/utils": 2.0.15 - react-fast-compare: 3.2.1 + react-fast-compare: 3.2.2 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" - checksum: 134635219a40dab9b92ae2188f695560bd28ee3e4ba0402687890498a7a94b13123c26d05e62ce39ab47dd361c4ab87bcb93eeb7f39e8d35481102dad50fe34b + checksum: 45ac01d0d9adb9391ec5ece3ad1ef7cc09e73720c0222df02f5a45a37bb120cfbf994b15c08b72e7018a866d9475c5c57f61638774d8d7c5c0c40da8714a347c languageName: node linkType: hard -"@chakra-ui/table@npm:2.0.17": - version: 2.0.17 - resolution: "@chakra-ui/table@npm:2.0.17" +"@chakra-ui/table@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/table@npm:2.1.0" dependencies: - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-context": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 32ac6b61e562b2a228f97eed000b572861dd488510c8058eab4ab69a37eadfb01fd3ab353fff2ef90054d996ed7c79685bd53dbeb08cf4d681033911e646adc2 + checksum: c82cfc78f2312777ab51c872640549c8d3f3ac9b40eb312ceb61c7651547ebced194729bfb228b5b191e7e965a0371f521c171c60f02d1c09edbe296a37aa09e languageName: node linkType: hard -"@chakra-ui/tabs@npm:2.1.9": - version: 2.1.9 - resolution: "@chakra-ui/tabs@npm:2.1.9" +"@chakra-ui/tabs@npm:3.0.0": + version: 3.0.0 + resolution: "@chakra-ui/tabs@npm:3.0.0" dependencies: - "@chakra-ui/clickable": 2.0.14 - "@chakra-ui/descendant": 3.0.14 + "@chakra-ui/clickable": 2.1.0 + "@chakra-ui/descendant": 3.1.0 "@chakra-ui/lazy-utils": 2.0.5 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-controllable-state": 2.0.8 - "@chakra-ui/react-use-merge-refs": 2.0.7 - "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-controllable-state": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 6bbaa3b25d48744453bb9300d6e66379204c8595f4187a1833b2b5e412e249b6af30dd23aab03775d9245d7ed14c745e7ff1597aa6397708a460c8a4a4d145ba + checksum: 6c030d8f437c7311159a17c76082487524b0f990572f27e9ef7f7ee2c48e0b246d8e5e1454fe903e6451493f40fc2f865f15d6bc6e26efe88bbf04b5f748b18d languageName: node linkType: hard -"@chakra-ui/tag@npm:3.0.0": - version: 3.0.0 - resolution: "@chakra-ui/tag@npm:3.0.0" +"@chakra-ui/tag@npm:3.1.1": + version: 3.1.1 + resolution: "@chakra-ui/tag@npm:3.1.1" dependencies: - "@chakra-ui/icon": 3.0.16 - "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/icon": 3.2.0 + "@chakra-ui/react-context": 2.1.0 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: daba36da1ec7c50e126c19d775304a55df07ae5909c766ab1e7cce88da9d93e5eb860c5846f321ccf472dcb5790fc4dc16a1080bc8d2449c2e2b8a54b2845ec2 + checksum: c22abdb6bef8994481ec28266df197d89900688716820b842018b6352eff2df9cbd937d945905e12c1393613d6a1e1f6360e394d29d7dbcf424239787faaef0b languageName: node linkType: hard -"@chakra-ui/textarea@npm:2.0.19": - version: 2.0.19 - resolution: "@chakra-ui/textarea@npm:2.0.19" +"@chakra-ui/textarea@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/textarea@npm:2.1.2" dependencies: - "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/form-control": 2.2.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: d42b6a47620b05b31b2858b40825245a8ef0366e702926cc34101d300a828b993fed0baaf9b64b1b97b98f8f2b8f83865678fb55d4b6b7ec05319f66931eb1bf + checksum: 35d483cf1d5e87dea1157624129bff651b6595be85ea25797465c1b44ccae617db81cacfb3f35ecefe2db0700a06710db77397ddfdbfec9157a1e920da5f6739 languageName: node linkType: hard -"@chakra-ui/theme-tools@npm:2.0.17": - version: 2.0.17 - resolution: "@chakra-ui/theme-tools@npm:2.0.17" +"@chakra-ui/theme-tools@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/theme-tools@npm:2.1.2" dependencies: - "@chakra-ui/anatomy": 2.1.2 + "@chakra-ui/anatomy": 2.2.2 "@chakra-ui/shared-utils": 2.0.5 - color2k: ^2.0.0 + color2k: ^2.0.2 peerDependencies: "@chakra-ui/styled-system": ">=2.0.0" - checksum: 8c57988bcd29d9d8f8c51f45af36bab95930460e3dab460b4841084eb587e7ad2b34e4e246dc75e84e91a1c7eb2b47cac187528d2145677479de3b966c01d734 + checksum: aa628824a9485d7bc28b468f7395b1ebfd2fee88e656b9d9626f4521c0f9b28bba656db1f5b74c34ae7ce2dc6d25d1789b3e227dd1fd2d36c230f8a97330e529 languageName: node linkType: hard -"@chakra-ui/theme-utils@npm:2.0.17": - version: 2.0.17 - resolution: "@chakra-ui/theme-utils@npm:2.0.17" +"@chakra-ui/theme-utils@npm:2.0.21": + version: 2.0.21 + resolution: "@chakra-ui/theme-utils@npm:2.0.21" dependencies: "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/styled-system": 2.9.0 - "@chakra-ui/theme": 3.1.1 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/theme": 3.3.1 lodash.mergewith: 4.6.2 - checksum: 5e6dd5aae7365cbd96afe51cd13afcd408198d9cfbdb2acfd5fb1601194cdc685004bbb237b337f70e287aebb4eb022f7590d9292619967483806b2e234289e5 + checksum: d43f15d2c264cb96cfee0acf64681308763d27940b42f6de76eb8f297623dd4236c80ccf845b06851ca15f1c53a7ca9af69dce1c6d6467bb17612d1c60629197 languageName: node linkType: hard -"@chakra-ui/theme@npm:3.1.1": - version: 3.1.1 - resolution: "@chakra-ui/theme@npm:3.1.1" +"@chakra-ui/theme@npm:3.3.1": + version: 3.3.1 + resolution: "@chakra-ui/theme@npm:3.3.1" dependencies: - "@chakra-ui/anatomy": 2.1.2 + "@chakra-ui/anatomy": 2.2.2 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/theme-tools": 2.0.17 + "@chakra-ui/theme-tools": 2.1.2 peerDependencies: "@chakra-ui/styled-system": ">=2.8.0" - checksum: 6f77079e1a92b5cd83872b4e29e2066c5862fd96bd4d7e03fa4721034300f830905009642fbd234e879029249affd43f5bc1d595ea671d7d19723f5c5c8f1fba + checksum: 0232cb4a5674dd7252b7070ecc890dee9fc4fe51527005aa47009342edcf8f13fef7f3b8c70b74c0b73ba86cdeabe892b2ab8469cecfc19ae3350a66bccb43eb languageName: node linkType: hard -"@chakra-ui/toast@npm:6.1.3": - version: 6.1.3 - resolution: "@chakra-ui/toast@npm:6.1.3" - dependencies: - "@chakra-ui/alert": 2.1.0 - "@chakra-ui/close-button": 2.0.17 - "@chakra-ui/portal": 2.0.16 - "@chakra-ui/react-context": 2.0.8 - "@chakra-ui/react-use-timeout": 2.0.5 - "@chakra-ui/react-use-update-effect": 2.0.7 +"@chakra-ui/toast@npm:7.0.2": + version: 7.0.2 + resolution: "@chakra-ui/toast@npm:7.0.2" + dependencies: + "@chakra-ui/alert": 2.2.2 + "@chakra-ui/close-button": 2.1.1 + "@chakra-ui/portal": 2.1.0 + "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-use-timeout": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/styled-system": 2.9.0 - "@chakra-ui/theme": 3.1.1 + "@chakra-ui/styled-system": 2.9.2 + "@chakra-ui/theme": 3.3.1 peerDependencies: - "@chakra-ui/system": 2.5.7 + "@chakra-ui/system": 2.6.2 framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 9bca766bac57f8b59eb62053821271212e2fa5980b6f1d88e7d82c9083ad1236486ef79acbca180d7fd0f8c6807f2d2724a80cde3c2cc8aef4a237ac71aa2212 + checksum: 5e996a53b82628c90e11054d900ab4c714bb6b1a9b74198fbbfc49692175278fc482820578090d0eb27180d3772937ed9fb54ba8f3acfdbbbc20e859c1b55338 languageName: node linkType: hard -"@chakra-ui/tooltip@npm:2.2.8": - version: 2.2.8 - resolution: "@chakra-ui/tooltip@npm:2.2.8" +"@chakra-ui/tooltip@npm:2.3.1": + version: 2.3.1 + resolution: "@chakra-ui/tooltip@npm:2.3.1" dependencies: - "@chakra-ui/popper": 3.0.14 - "@chakra-ui/portal": 2.0.16 + "@chakra-ui/dom-utils": 2.1.0 + "@chakra-ui/popper": 3.1.0 + "@chakra-ui/portal": 2.1.0 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-disclosure": 2.0.8 - "@chakra-ui/react-use-event-listener": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-disclosure": 2.1.0 + "@chakra-ui/react-use-event-listener": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.1.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 8197445437a001a27ac6c9eb1c85b058c12844415da4b3ac8f5a6dc5f13049dc9ec6cb559aacbe158d137b49faf3aa12e72f72dccc53ada5c4f6c3c7c3b34a75 + checksum: 047bb349fd80382d4f2ee4086119ca80a584b879c4525891e0fb602db0e857dfead4a35c1eb27d4b0c4ce0ac9c0324e63b9fb5f984389297eee2cd1a684f8e1a languageName: node linkType: hard -"@chakra-ui/transition@npm:2.0.16": - version: 2.0.16 - resolution: "@chakra-ui/transition@npm:2.0.16" +"@chakra-ui/transition@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/transition@npm:2.1.0" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: framer-motion: ">=4.0.0" react: ">=18" - checksum: 04ca812775b425a7aae1e066b81f803264b47759bde690ecbb0ddaf5269876d0b23567ca8e8a5303bbac999166e34a5506d20c68233d6615756e7c5db8d19d25 + checksum: 502b6136f6e1583935ac5b204981c6bd78f7a4699a98ab8876bccfd6cbbc6e26308098b2f3d4dc81ff9ccc638463dfd2e188e4f380e3852c89b9cbaa5c572cb6 languageName: node linkType: hard @@ -2604,13 +2785,20 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/visually-hidden@npm:2.0.15": - version: 2.0.15 - resolution: "@chakra-ui/visually-hidden@npm:2.0.15" +"@chakra-ui/visually-hidden@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/visually-hidden@npm:2.2.0" peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 6f484ee04aa2ca9d9234c8fd6bceec89f0307ab517f639aedf20c06cf1316892f3d9ab909338e51f0b4dd3b447bd6c402724dffba4218a93793fc4b9c5e3a254 + checksum: 47d6ceb0e26c0d272d1fa19b385d0a16bc8467d8f942d0f6447cc8b86f81c3f479340f4c27a4270667fd36aad32ebf903c6f05b355d106d88086858290761c4a + languageName: node + linkType: hard + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 languageName: node linkType: hard @@ -2623,10 +2811,10 @@ __metadata: languageName: node linkType: hard -"@discoveryjs/json-ext@npm:^0.5.0": - version: 0.5.6 - resolution: "@discoveryjs/json-ext@npm:0.5.6" - checksum: e97df618511fb202dffa2eb0d23e17dfb02943a70e5bc38f6b9603ad1cb1d6b525aa2b07ff9fb00b041abe425b341146ddd9e487f1e35ddadc8c6b8c56358ae0 +"@discoveryjs/json-ext@npm:^0.5.0, @discoveryjs/json-ext@npm:^0.5.3": + version: 0.5.7 + resolution: "@discoveryjs/json-ext@npm:0.5.7" + checksum: 2176d301cc258ea5c2324402997cf8134ebb212469c0d397591636cea8d3c02f2b3cf9fd58dcb748c7a0dade77ebdc1b10284fa63e608c033a1db52fddc69918 languageName: node linkType: hard @@ -2678,12 +2866,12 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/is-prop-valid@npm:1.2.1" +"@emotion/is-prop-valid@npm:^1.2.2": + version: 1.2.2 + resolution: "@emotion/is-prop-valid@npm:1.2.2" dependencies: "@emotion/memoize": ^0.8.1 - checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a + checksum: 61f6b128ea62b9f76b47955057d5d86fcbe2a6989d2cd1e583daac592901a950475a37d049b9f7a7c6aa8758a33b408735db759fdedfd1f629df0f85ab60ea25 languageName: node linkType: hard @@ -2702,13 +2890,13 @@ __metadata: linkType: hard "@emotion/react@npm:^11.10.8": - version: 11.11.0 - resolution: "@emotion/react@npm:11.11.0" + version: 11.11.4 + resolution: "@emotion/react@npm:11.11.4" dependencies: "@babel/runtime": ^7.18.3 "@emotion/babel-plugin": ^11.11.0 "@emotion/cache": ^11.11.0 - "@emotion/serialize": ^1.1.2 + "@emotion/serialize": ^1.1.3 "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 "@emotion/utils": ^1.2.1 "@emotion/weak-memoize": ^0.3.1 @@ -2718,20 +2906,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 2653e7c3de7b6fd5b0e18dea15621a9886104cc7c8cd5522ca69e52bd547ef6f13644193f8e0a906eea1e29a4f1d8167cdfa4667572fb7fafe0c62ab30fbaab6 + checksum: 6abaa7a05c5e1db31bffca7ac79169f5456990022cbb3794e6903221536609a60420f2b4888dd3f84e9634a304e394130cb88dc32c243a1dedc263e50da329f8 languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.2": - version: 1.1.2 - resolution: "@emotion/serialize@npm:1.1.2" +"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3, @emotion/serialize@npm:^1.1.4": + version: 1.1.4 + resolution: "@emotion/serialize@npm:1.1.4" dependencies: "@emotion/hash": ^0.9.1 "@emotion/memoize": ^0.8.1 "@emotion/unitless": ^0.8.1 "@emotion/utils": ^1.2.1 csstype: ^3.0.2 - checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986 + checksum: 71b99f816a9c1d61a87c62cf4928da3894bb62213f3aff38b1ea9790b3368f084af98a3e5453b5055c2f36a7d70318d2fa9955b7b5676c2065b868062375df39 languageName: node linkType: hard @@ -2743,13 +2931,13 @@ __metadata: linkType: hard "@emotion/styled@npm:^11.10.8": - version: 11.11.0 - resolution: "@emotion/styled@npm:11.11.0" + version: 11.11.5 + resolution: "@emotion/styled@npm:11.11.5" dependencies: "@babel/runtime": ^7.18.3 "@emotion/babel-plugin": ^11.11.0 - "@emotion/is-prop-valid": ^1.2.1 - "@emotion/serialize": ^1.1.2 + "@emotion/is-prop-valid": ^1.2.2 + "@emotion/serialize": ^1.1.4 "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 "@emotion/utils": ^1.2.1 peerDependencies: @@ -2758,7 +2946,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 904f641aad3892c65d7d6c0808b036dae1e6d6dad4861c1c7dc0baa59977047c6cad220691206eba7b4059f1a1c6e6c1ef4ebb8c829089e280fa0f2164a01e6b + checksum: ad5fc42d00e8aa9597f6d9665986036d5ebe0e8f8155af6d95831c5e8fb2319fb837724e6c5cd59e5346f14c3263711b7ce7271d34688e974d1f32ffeecb37ba languageName: node linkType: hard @@ -2850,6 +3038,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/aix-ppc64@npm:0.20.2" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm64@npm:0.18.20" @@ -2864,6 +3059,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-arm64@npm:0.20.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm@npm:0.18.20" @@ -2878,6 +3080,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-arm@npm:0.20.2" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-x64@npm:0.18.20" @@ -2892,6 +3101,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/android-x64@npm:0.20.2" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-arm64@npm:0.18.20" @@ -2906,6 +3122,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/darwin-arm64@npm:0.20.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-x64@npm:0.18.20" @@ -2920,6 +3143,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/darwin-x64@npm:0.20.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-arm64@npm:0.18.20" @@ -2934,6 +3164,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/freebsd-arm64@npm:0.20.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-x64@npm:0.18.20" @@ -2948,6 +3185,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/freebsd-x64@npm:0.20.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm64@npm:0.18.20" @@ -2962,6 +3206,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-arm64@npm:0.20.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm@npm:0.18.20" @@ -2976,6 +3227,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-arm@npm:0.20.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ia32@npm:0.18.20" @@ -2990,6 +3248,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-ia32@npm:0.20.2" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.14.54": version: 0.14.54 resolution: "@esbuild/linux-loong64@npm:0.14.54" @@ -3011,6 +3276,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-loong64@npm:0.20.2" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-mips64el@npm:0.18.20" @@ -3025,6 +3297,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-mips64el@npm:0.20.2" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ppc64@npm:0.18.20" @@ -3039,6 +3318,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-ppc64@npm:0.20.2" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-riscv64@npm:0.18.20" @@ -3053,6 +3339,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-riscv64@npm:0.20.2" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-s390x@npm:0.18.20" @@ -3067,6 +3360,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-s390x@npm:0.20.2" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-x64@npm:0.18.20" @@ -3081,6 +3381,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/linux-x64@npm:0.20.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/netbsd-x64@npm:0.18.20" @@ -3095,6 +3402,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/netbsd-x64@npm:0.20.2" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/openbsd-x64@npm:0.18.20" @@ -3109,6 +3423,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/openbsd-x64@npm:0.20.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/sunos-x64@npm:0.18.20" @@ -3123,6 +3444,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/sunos-x64@npm:0.20.2" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-arm64@npm:0.18.20" @@ -3137,6 +3465,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-arm64@npm:0.20.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-ia32@npm:0.18.20" @@ -3151,6 +3486,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-ia32@npm:0.20.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-x64@npm:0.18.20" @@ -3165,6 +3507,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.20.2": + version: 0.20.2 + resolution: "@esbuild/win32-x64@npm:0.20.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.3.3": version: 1.3.3 resolution: "@eslint/eslintrc@npm:1.3.3" @@ -3271,6 +3620,13 @@ __metadata: languageName: node linkType: hard +"@fal-works/esbuild-plugin-global-externals@npm:^2.1.2": + version: 2.1.2 + resolution: "@fal-works/esbuild-plugin-global-externals@npm:2.1.2" + checksum: c59715902b9062aa7ff38973f298b509499fd146dbf564dc338b3f9e896da5bffb4ca676c27587fde79b3586003e24d65960acb62f009bca43dca34c76f8cbf7 + languageName: node + linkType: hard + "@gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -3637,28 +3993,28 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.3 - resolution: "@jridgewell/gen-mapping@npm:0.3.3" +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: - "@jridgewell/set-array": ^1.0.1 + "@jridgewell/set-array": ^1.2.1 "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab + "@jridgewell/trace-mapping": ^0.3.24 + checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0, @jridgewell/resolve-uri@npm:^3.0.3": - version: 3.1.0 - resolution: "@jridgewell/resolve-uri@npm:3.1.0" - checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e +"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 languageName: node linkType: hard @@ -3672,14 +4028,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14": - version: 1.4.14 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" - checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.15": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 @@ -3696,13 +4045,13 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: - "@jridgewell/resolve-uri": 3.1.0 - "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 + "@jridgewell/resolve-uri": ^3.1.0 + "@jridgewell/sourcemap-codec": ^1.4.14 + checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 languageName: node linkType: hard @@ -3801,6 +4150,18 @@ __metadata: languageName: node linkType: hard +"@mdx-js/react@npm:^3.0.0": + version: 3.0.1 + resolution: "@mdx-js/react@npm:3.0.1" + dependencies: + "@types/mdx": ^2.0.0 + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 1063a597264f6a8840aa13274a99beef8983a88dd45b0c5b8e48e6216bc23d33e247da8e2d95d6e1874483f8b4e0903b166ce5046874aa7ffa2b1333057dcddf + languageName: node + linkType: hard + "@metamask/abi-utils@npm:^2.0.2": version: 2.0.2 resolution: "@metamask/abi-utils@npm:2.0.2" @@ -4277,6 +4638,13 @@ __metadata: languageName: unknown linkType: soft +"@metamask/design-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "@metamask/design-tokens@npm:4.0.0" + checksum: 519e12da825ae5f8e265fbab1755e2e665ca6efb72ae5693985b35ef577d233c615255faa6b11622b552382e310a368c5c323d9f18fcb308ce28561f65077814 + languageName: node + linkType: hard + "@metamask/dialog-example-snap@workspace:^, @metamask/dialog-example-snap@workspace:packages/examples/packages/dialogs": version: 0.0.0-use.local resolution: "@metamask/dialog-example-snap@workspace:packages/examples/packages/dialogs" @@ -4877,6 +5245,16 @@ __metadata: languageName: unknown linkType: soft +"@metamask/jazzicon@npm:^2.0.0": + version: 2.0.0 + resolution: "@metamask/jazzicon@npm:2.0.0" + dependencies: + color: ^0.11.3 + mersenne-twister: ^1.1.0 + checksum: 0b5add49e8d28270e4f8ca6159aa4ea0848f70cbb1cb217de2b0c13799a45fb27b8a6f0b3f72b6a76cbb55446764f79daf71e7d2a830a14b8e5e54d5e57bf7d1 + languageName: node + linkType: hard + "@metamask/json-rpc-engine@npm:^8.0.1, @metamask/json-rpc-engine@npm:^8.0.2": version: 8.0.2 resolution: "@metamask/json-rpc-engine@npm:8.0.2" @@ -5908,7 +6286,10 @@ __metadata: "@metamask/key-tree": ^9.1.1 "@metamask/providers": ^17.0.0 "@metamask/rpc-errors": ^6.2.1 + "@metamask/snaps-storybook": "workspace:^" "@metamask/utils": ^8.3.0 + "@storybook/addon-controls": ^8.1.11 + "@storybook/blocks": ^8.1.11 "@swc/core": 1.3.78 "@types/jest": ^27.5.1 "@typescript-eslint/eslint-plugin": ^5.42.1 @@ -5930,6 +6311,7 @@ __metadata: prettier: ^2.7.1 prettier-plugin-packagejson: ^2.2.11 rimraf: ^4.1.2 + storybook: ^8.0.0 superstruct: ^1.0.3 ts-jest: ^29.1.1 tsup: ^8.0.1 @@ -6048,6 +6430,66 @@ __metadata: languageName: unknown linkType: soft +"@metamask/snaps-storybook@workspace:^, @metamask/snaps-storybook@workspace:packages/snaps-storybook": + version: 0.0.0-use.local + resolution: "@metamask/snaps-storybook@workspace:packages/snaps-storybook" + dependencies: + "@babel/core": ^7.23.2 + "@babel/generator": ^7.24.7 + "@babel/parser": ^7.24.7 + "@babel/traverse": ^7.24.7 + "@babel/types": ^7.23.0 + "@chakra-ui/react": ^2.6.1 + "@emotion/react": ^11.10.8 + "@emotion/styled": ^11.10.8 + "@esbuild-plugins/node-globals-polyfill": ^0.2.3 + "@esbuild-plugins/node-modules-polyfill": ^0.2.2 + "@metamask/auto-changelog": ^3.4.4 + "@metamask/design-tokens": ^4.0.0 + "@metamask/eslint-config": ^12.1.0 + "@metamask/eslint-config-jest": ^12.1.0 + "@metamask/eslint-config-nodejs": ^12.1.0 + "@metamask/eslint-config-typescript": ^12.1.0 + "@metamask/jazzicon": ^2.0.0 + "@metamask/snaps-sdk": "workspace:^" + "@metamask/utils": ^8.3.0 + "@storybook/addon-docs": ^8.1.11 + "@storybook/addon-themes": ^8.1.11 + "@storybook/addon-toolbars": ^8.1.11 + "@storybook/builder-vite": ^8.1.11 + "@storybook/components": ^8.1.11 + "@storybook/manager-api": ^8.1.11 + "@storybook/react-dom-shim": ^8.1.11 + "@storybook/theming": ^8.1.11 + "@storybook/types": ^8.1.11 + "@typescript-eslint/eslint-plugin": ^5.42.1 + "@typescript-eslint/parser": ^5.42.1 + deepmerge: ^4.2.2 + depcheck: ^1.4.7 + eslint: ^8.27.0 + eslint-config-prettier: ^8.5.0 + eslint-plugin-import: ^2.26.0 + eslint-plugin-jest: ^27.1.5 + eslint-plugin-jsdoc: ^39.6.2 + eslint-plugin-n: ^15.7.0 + eslint-plugin-prettier: ^4.2.1 + eslint-plugin-promise: ^6.1.1 + jest: ^29.0.2 + jest-it-up: ^2.0.0 + prettier: ^2.7.1 + react: ^18.2.0 + react-dom: ^18.2.0 + swc-loader: ^0.2.3 + ts-jest: ^29.1.1 + ts-morph: ^23.0.0 + tsup: ^8.0.1 + typescript: ~4.8.4 + webpack-merge: ^5.9.0 + peerDependencies: + storybook: ^8.0.0 + languageName: unknown + linkType: soft + "@metamask/snaps-utils@workspace:^, @metamask/snaps-utils@workspace:packages/snaps-utils": version: 0.0.0-use.local resolution: "@metamask/snaps-utils@workspace:packages/snaps-utils" @@ -6444,6 +6886,17 @@ __metadata: languageName: node linkType: hard +"@ndelangen/get-tarball@npm:^3.0.7": + version: 3.0.9 + resolution: "@ndelangen/get-tarball@npm:3.0.9" + dependencies: + gunzip-maybe: ^1.4.2 + pump: ^3.0.0 + tar-fs: ^2.1.1 + checksum: 7fa8ac40b4e85738a4ee6bf891bc27fce2445b65b4477e0ec86aed0fa62ab18bdf5d193ce04553ad9bfa639e1eef33b8b30da4ef3e7218f12bf95f24c8786e5b + languageName: node + linkType: hard + "@noble/bls12-381@npm:^1.2.0": version: 1.4.0 resolution: "@noble/bls12-381@npm:1.4.0" @@ -6736,6 +7189,273 @@ __metadata: languageName: node linkType: hard +"@radix-ui/primitive@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/primitive@npm:1.1.0" + checksum: 7cbf70bfd4b2200972dbd52a9366801b5a43dd844743dc97eb673b3ec8e64f5dd547538faaf9939abbfe8bb275773767ecf5a87295d90ba09c15cba2b5528c89 + languageName: node + linkType: hard + +"@radix-ui/react-compose-refs@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-compose-refs@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 047a4ed5f87cb848be475507cd62836cf5af5761484681f521ea543ea7c9d59d61d42806d6208863d5e2380bf38cdf4cff73c2bbe5f52dbbe50fb04e1a13ac72 + languageName: node + linkType: hard + +"@radix-ui/react-context@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-context@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: d48df5e5193a1d963a1ff7a58f08497c60ddc364216c59090c8267985bd478447dd617847ea277afe10e67c4e0c528894c8d7407082325e0650038625140558a + languageName: node + linkType: hard + +"@radix-ui/react-dialog@npm:^1.0.5": + version: 1.1.1 + resolution: "@radix-ui/react-dialog@npm:1.1.1" + dependencies: + "@radix-ui/primitive": 1.1.0 + "@radix-ui/react-compose-refs": 1.1.0 + "@radix-ui/react-context": 1.1.0 + "@radix-ui/react-dismissable-layer": 1.1.0 + "@radix-ui/react-focus-guards": 1.1.0 + "@radix-ui/react-focus-scope": 1.1.0 + "@radix-ui/react-id": 1.1.0 + "@radix-ui/react-portal": 1.1.1 + "@radix-ui/react-presence": 1.1.0 + "@radix-ui/react-primitive": 2.0.0 + "@radix-ui/react-slot": 1.1.0 + "@radix-ui/react-use-controllable-state": 1.1.0 + aria-hidden: ^1.1.1 + react-remove-scroll: 2.5.7 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 5f270518b61e0b570a321f1db09ed95939969e9bff71fad02bce02126f047f5305d74ff79bb4e763677062db881b1e4ecd297b1556a917fed3d7a77cc0a7c235 + languageName: node + linkType: hard + +"@radix-ui/react-dismissable-layer@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.0" + dependencies: + "@radix-ui/primitive": 1.1.0 + "@radix-ui/react-compose-refs": 1.1.0 + "@radix-ui/react-primitive": 2.0.0 + "@radix-ui/react-use-callback-ref": 1.1.0 + "@radix-ui/react-use-escape-keydown": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 857feab2d5184a72df4e6dd9430c8e4b9fe7304790ef69512733346eee5fc33a6527256fc135d4bee6d94e8cc9c1b83c3d91da96cb4bf8300f88e9c660b71b08 + languageName: node + linkType: hard + +"@radix-ui/react-focus-guards@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-focus-guards@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 199717e7da1ba9b3fa74b04f6a245aaebf6bdb8ae7d6f4b5f21f95f4086414a3587beebc77399a99be7d3a4b2499eaa52bf72bef660f8e69856b0fd0593b074f + languageName: node + linkType: hard + +"@radix-ui/react-focus-scope@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-focus-scope@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": 1.1.0 + "@radix-ui/react-primitive": 2.0.0 + "@radix-ui/react-use-callback-ref": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: bea6c993752780c46c69f0c21a0fd96f11b9ed7edac23deb0953fbd8524d90938bf4c8060ccac7cad14caba3eb493f2642be7f8933910f4b6fa184666b7fcb40 + languageName: node + linkType: hard + +"@radix-ui/react-id@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-id@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6fbc9d1739b3b082412da10359e63967b4f3a60383ebda4c9e56b07a722d29bee53b203b3b1418f88854a29315a7715867133bb149e6e22a027a048cdd20d970 + languageName: node + linkType: hard + +"@radix-ui/react-portal@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-portal@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": 2.0.0 + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 84dab64ce9c9f4ed7d75df6d1d82877dc7976a98cc192287d39ba2ea512415ed7bf34caf02d579a18fe21766403fa9ae41d2482a14dee5514179ee1b09cc333c + languageName: node + linkType: hard + +"@radix-ui/react-presence@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-presence@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": 1.1.0 + "@radix-ui/react-use-layout-effect": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 7f482268aa5bb5a4214dcf39d20ad93cac96585f1f248931be897ed8a9f99965b7f9b2e8bd4f4140c64eb243b471c471bf148e107f49578cc582faa773d3e83a + languageName: node + linkType: hard + +"@radix-ui/react-primitive@npm:2.0.0": + version: 2.0.0 + resolution: "@radix-ui/react-primitive@npm:2.0.0" + dependencies: + "@radix-ui/react-slot": 1.1.0 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 04afc0f3a5ccf1de6e4861f755a89f31640d5a07237c5ac5bffe47bcd8fdf318257961fa56fedc823af49281800ee755752a371561c36fd92f008536a0553748 + languageName: node + linkType: hard + +"@radix-ui/react-slot@npm:1.1.0, @radix-ui/react-slot@npm:^1.0.2": + version: 1.1.0 + resolution: "@radix-ui/react-slot@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 3c9cd90aabf08f541e20dbecb581744be01c552a0cd16e90d7c218381bcc5307aa8a6013d045864e692ba89d3d8c17bfae08df18ed18be6d223d9330ab0302fa + languageName: node + linkType: hard + +"@radix-ui/react-use-callback-ref@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 2ec7903c67e3034b646005556f44fd975dc5204db6885fc58403e3584f27d95f0b573bc161de3d14fab9fda25150bf3b91f718d299fdfc701c736bd0bd2281fa + languageName: node + linkType: hard + +"@radix-ui/react-use-controllable-state@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0" + dependencies: + "@radix-ui/react-use-callback-ref": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6c167cf8eb0744effbeab1f92ea6c0ad71838b222670c0488599f28eecd941d87ac1eed4b5d3b10df6dc7b7b2edb88a54e99d92c2942ce3b21f81d5c188f32d + languageName: node + linkType: hard + +"@radix-ui/react-use-escape-keydown@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0" + dependencies: + "@radix-ui/react-use-callback-ref": 1.1.0 + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 9bf88ea272b32ea0f292afd336780a59c5646f795036b7e6105df2d224d73c54399ee5265f61d571eb545d28382491a8b02dc436e3088de8dae415d58b959b71 + languageName: node + linkType: hard + +"@radix-ui/react-use-layout-effect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 271ea0bf1cd74718895a68414a6e95537737f36e02ad08eeb61a82b229d6abda9cff3135a479e134e1f0ce2c3ff97bb85babbdce751985fb755a39b231d7ccf2 + languageName: node + linkType: hard + "@react-aria/ssr@npm:^3.5.0": version: 3.7.0 resolution: "@react-aria/ssr@npm:3.7.0" @@ -7125,6 +7845,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/merge-streams@npm:^2.1.0": + version: 2.3.0 + resolution: "@sindresorhus/merge-streams@npm:2.3.0" + checksum: e989d53dee68d7e49b4ac02ae49178d561c461144cea83f66fa91ff012d981ad0ad2340cbd13f2fdb57989197f5c987ca22a74eb56478626f04e79df84291159 + languageName: node + linkType: hard + "@sinonjs/commons@npm:^3.0.0": version: 3.0.0 resolution: "@sinonjs/commons@npm:3.0.0" @@ -7155,6 +7882,589 @@ __metadata: languageName: node linkType: hard +"@storybook/addon-controls@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/addon-controls@npm:8.1.11" + dependencies: + "@storybook/blocks": 8.1.11 + dequal: ^2.0.2 + lodash: ^4.17.21 + ts-dedent: ^2.0.0 + checksum: 30ab59fc333c7d715196a817f2e0ed911899771453a24e42c33604949207a5ab7b8abb5574006cb3159ed07accebe37b1f797c06c3fa3339f46f73f4013baa3a + languageName: node + linkType: hard + +"@storybook/addon-docs@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/addon-docs@npm:8.1.11" + dependencies: + "@babel/core": ^7.24.4 + "@mdx-js/react": ^3.0.0 + "@storybook/blocks": 8.1.11 + "@storybook/client-logger": 8.1.11 + "@storybook/components": 8.1.11 + "@storybook/csf-plugin": 8.1.11 + "@storybook/csf-tools": 8.1.11 + "@storybook/global": ^5.0.0 + "@storybook/node-logger": 8.1.11 + "@storybook/preview-api": 8.1.11 + "@storybook/react-dom-shim": 8.1.11 + "@storybook/theming": 8.1.11 + "@storybook/types": 8.1.11 + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + fs-extra: ^11.1.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + rehype-external-links: ^3.0.0 + rehype-slug: ^6.0.0 + ts-dedent: ^2.0.0 + checksum: 045de28fec454e2fa6dda826ccb1a02c3d463c59704824e69083c108838dc21d298a7c4a4d8ae7d9d673e8c12c60e3fbec045a70d5b8037c3ee7a7626a1830f4 + languageName: node + linkType: hard + +"@storybook/addon-themes@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/addon-themes@npm:8.1.11" + dependencies: + ts-dedent: ^2.0.0 + checksum: 829af7e7c722ce8e4c7a34339dbbcb8304377101975227004fc9a70c46cf4d5961d9eeef8ddcbec5a7cfeda52eb3db1f4cb20c20dc93e210e3e42db1462a9670 + languageName: node + linkType: hard + +"@storybook/addon-toolbars@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/addon-toolbars@npm:8.1.11" + checksum: 0c837aae6a99058a1585db8ec68cfae7f87de0b1cafcc7bcf54e1926f1b6de86205ae0b2b707783e7773098c437848be1841f7c9fb107199b1438517e22ed26e + languageName: node + linkType: hard + +"@storybook/blocks@npm:8.1.11, @storybook/blocks@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/blocks@npm:8.1.11" + dependencies: + "@storybook/channels": 8.1.11 + "@storybook/client-logger": 8.1.11 + "@storybook/components": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/csf": ^0.1.7 + "@storybook/docs-tools": 8.1.11 + "@storybook/global": ^5.0.0 + "@storybook/icons": ^1.2.5 + "@storybook/manager-api": 8.1.11 + "@storybook/preview-api": 8.1.11 + "@storybook/theming": 8.1.11 + "@storybook/types": 8.1.11 + "@types/lodash": ^4.14.167 + color-convert: ^2.0.1 + dequal: ^2.0.2 + lodash: ^4.17.21 + markdown-to-jsx: 7.3.2 + memoizerific: ^1.11.3 + polished: ^4.2.2 + react-colorful: ^5.1.2 + telejson: ^7.2.0 + tocbot: ^4.20.1 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + 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 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: f5ae54dcea624f515c973f066818964871b93f8e6a77c9286058b08bfda5286cc08ea69abf6e52111e1d382f54d6488df724cac093baa8ded13a1f7aa014d9a8 + languageName: node + linkType: hard + +"@storybook/builder-manager@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/builder-manager@npm:8.1.11" + dependencies: + "@fal-works/esbuild-plugin-global-externals": ^2.1.2 + "@storybook/core-common": 8.1.11 + "@storybook/manager": 8.1.11 + "@storybook/node-logger": 8.1.11 + "@types/ejs": ^3.1.1 + "@yarnpkg/esbuild-plugin-pnp": ^3.0.0-rc.10 + browser-assert: ^1.2.1 + ejs: ^3.1.10 + esbuild: ^0.18.0 || ^0.19.0 || ^0.20.0 + esbuild-plugin-alias: ^0.2.1 + express: ^4.17.3 + fs-extra: ^11.1.0 + process: ^0.11.10 + util: ^0.12.4 + checksum: 2dceef509c3f8650b56d28709535148bc21bc661f2f2f8bcef8458d80b36c737108baa32733a3084937e6a53b20dc6a200038080c3aac59012a29f4b0fe29f8e + languageName: node + linkType: hard + +"@storybook/builder-vite@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/builder-vite@npm:8.1.11" + dependencies: + "@storybook/channels": 8.1.11 + "@storybook/client-logger": 8.1.11 + "@storybook/core-common": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/csf-plugin": 8.1.11 + "@storybook/node-logger": 8.1.11 + "@storybook/preview": 8.1.11 + "@storybook/preview-api": 8.1.11 + "@storybook/types": 8.1.11 + "@types/find-cache-dir": ^3.2.1 + browser-assert: ^1.2.1 + es-module-lexer: ^1.5.0 + express: ^4.17.3 + find-cache-dir: ^3.0.0 + fs-extra: ^11.1.0 + magic-string: ^0.30.0 + ts-dedent: ^2.0.0 + peerDependencies: + "@preact/preset-vite": "*" + typescript: ">= 4.3.x" + vite: ^4.0.0 || ^5.0.0 + vite-plugin-glimmerx: "*" + peerDependenciesMeta: + "@preact/preset-vite": + optional: true + typescript: + optional: true + vite-plugin-glimmerx: + optional: true + checksum: 72fcc273a2aee7076e83f83808a07bee0a24ea8bbf7ea48cd3dec506311bb0e4c254a9b28114b519af3df7807d2f76a8d939bb4acd9d4e46aec656661595b8e2 + languageName: node + linkType: hard + +"@storybook/channels@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/channels@npm:8.1.11" + dependencies: + "@storybook/client-logger": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/global": ^5.0.0 + telejson: ^7.2.0 + tiny-invariant: ^1.3.1 + checksum: 9f4840c8f6737fe1357344400d0fd6ab85dbff4f3b3329e02dea9ebaa003f20c5a45711074aadcfc82f7e8976466196935def308e0f389c11d5bad48ab3362e5 + languageName: node + linkType: hard + +"@storybook/cli@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/cli@npm:8.1.11" + dependencies: + "@babel/core": ^7.24.4 + "@babel/types": ^7.24.0 + "@ndelangen/get-tarball": ^3.0.7 + "@storybook/codemod": 8.1.11 + "@storybook/core-common": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/core-server": 8.1.11 + "@storybook/csf-tools": 8.1.11 + "@storybook/node-logger": 8.1.11 + "@storybook/telemetry": 8.1.11 + "@storybook/types": 8.1.11 + "@types/semver": ^7.3.4 + "@yarnpkg/fslib": 2.10.3 + "@yarnpkg/libzip": 2.3.0 + chalk: ^4.1.0 + commander: ^6.2.1 + cross-spawn: ^7.0.3 + detect-indent: ^6.1.0 + envinfo: ^7.7.3 + execa: ^5.0.0 + find-up: ^5.0.0 + fs-extra: ^11.1.0 + get-npm-tarball-url: ^2.0.3 + giget: ^1.0.0 + globby: ^14.0.1 + jscodeshift: ^0.15.1 + leven: ^3.1.0 + ora: ^5.4.1 + prettier: ^3.1.1 + prompts: ^2.4.0 + read-pkg-up: ^7.0.1 + semver: ^7.3.7 + strip-json-comments: ^3.0.1 + tempy: ^3.1.0 + tiny-invariant: ^1.3.1 + ts-dedent: ^2.0.0 + bin: + getstorybook: ./bin/index.js + sb: ./bin/index.js + checksum: 8ef6b3f25b954b7626ca216a69b72a3481f9e068777f887fd6fa4e32d60756baf490d64112f6d64b78939a82dd88bc80f5aaab1a6d6b87ddf9c977641b1f8e4e + languageName: node + linkType: hard + +"@storybook/client-logger@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/client-logger@npm:8.1.11" + dependencies: + "@storybook/global": ^5.0.0 + checksum: c1dac97b3bd138daed0018825ca7b36d1dff108c9c5134182b4b1bbad633b627436da7c7d557c4d5ecd9e78ccda0b2ce74d22bf8b7e59b30efe799eea05b7a15 + languageName: node + linkType: hard + +"@storybook/codemod@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/codemod@npm:8.1.11" + dependencies: + "@babel/core": ^7.24.4 + "@babel/preset-env": ^7.24.4 + "@babel/types": ^7.24.0 + "@storybook/csf": ^0.1.7 + "@storybook/csf-tools": 8.1.11 + "@storybook/node-logger": 8.1.11 + "@storybook/types": 8.1.11 + "@types/cross-spawn": ^6.0.2 + cross-spawn: ^7.0.3 + globby: ^14.0.1 + jscodeshift: ^0.15.1 + lodash: ^4.17.21 + prettier: ^3.1.1 + recast: ^0.23.5 + tiny-invariant: ^1.3.1 + checksum: 50cd142e0cf8eef38846505218007cc9d9d0146321e69c0a68a6e9bb69a751bddbc5b5ae66c658cd3740f0220fae3cb4e9af79bd00095873312ee6195c021238 + languageName: node + linkType: hard + +"@storybook/components@npm:8.1.11, @storybook/components@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/components@npm:8.1.11" + dependencies: + "@radix-ui/react-dialog": ^1.0.5 + "@radix-ui/react-slot": ^1.0.2 + "@storybook/client-logger": 8.1.11 + "@storybook/csf": ^0.1.7 + "@storybook/global": ^5.0.0 + "@storybook/icons": ^1.2.5 + "@storybook/theming": 8.1.11 + "@storybook/types": 8.1.11 + memoizerific: ^1.11.3 + util-deprecate: ^1.0.2 + 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 + checksum: d3a3ea535bdd2e59e4ce6f86dfec974d20cdb113e9656394c0b8495625c23f2921539d4d27a1877ec4af675fededa0292ff91bab69620997b39302b145b814ef + languageName: node + linkType: hard + +"@storybook/core-common@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/core-common@npm:8.1.11" + dependencies: + "@storybook/core-events": 8.1.11 + "@storybook/csf-tools": 8.1.11 + "@storybook/node-logger": 8.1.11 + "@storybook/types": 8.1.11 + "@yarnpkg/fslib": 2.10.3 + "@yarnpkg/libzip": 2.3.0 + chalk: ^4.1.0 + cross-spawn: ^7.0.3 + esbuild: ^0.18.0 || ^0.19.0 || ^0.20.0 + esbuild-register: ^3.5.0 + execa: ^5.0.0 + file-system-cache: 2.3.0 + find-cache-dir: ^3.0.0 + find-up: ^5.0.0 + fs-extra: ^11.1.0 + glob: ^10.0.0 + handlebars: ^4.7.7 + lazy-universal-dotenv: ^4.0.0 + node-fetch: ^2.0.0 + picomatch: ^2.3.0 + pkg-dir: ^5.0.0 + prettier-fallback: "npm:prettier@^3" + pretty-hrtime: ^1.0.3 + resolve-from: ^5.0.0 + semver: ^7.3.7 + tempy: ^3.1.0 + tiny-invariant: ^1.3.1 + ts-dedent: ^2.0.0 + util: ^0.12.4 + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true + checksum: a404dda8784319a1e00cc02e0855a27e8da28ae2fbf07b9b066651477e048c577548a08622875afea3d35f74ff87b5ba38f7d5ecf81e9b5c282501c69859903e + languageName: node + linkType: hard + +"@storybook/core-events@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/core-events@npm:8.1.11" + dependencies: + "@storybook/csf": ^0.1.7 + ts-dedent: ^2.0.0 + checksum: 3b3231b299367def8d6d9ee8dc939ad145473bbd561d495f0dac3e5cd3adb93b7e87f1d0a6787917275f8dfae8193959c872336530930ad90207b6df5de37910 + languageName: node + linkType: hard + +"@storybook/core-server@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/core-server@npm:8.1.11" + dependencies: + "@aw-web-design/x-default-browser": 1.4.126 + "@babel/core": ^7.24.4 + "@babel/parser": ^7.24.4 + "@discoveryjs/json-ext": ^0.5.3 + "@storybook/builder-manager": 8.1.11 + "@storybook/channels": 8.1.11 + "@storybook/core-common": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/csf": ^0.1.7 + "@storybook/csf-tools": 8.1.11 + "@storybook/docs-mdx": 3.1.0-next.0 + "@storybook/global": ^5.0.0 + "@storybook/manager": 8.1.11 + "@storybook/manager-api": 8.1.11 + "@storybook/node-logger": 8.1.11 + "@storybook/preview-api": 8.1.11 + "@storybook/telemetry": 8.1.11 + "@storybook/types": 8.1.11 + "@types/detect-port": ^1.3.0 + "@types/diff": ^5.0.9 + "@types/node": ^18.0.0 + "@types/pretty-hrtime": ^1.0.0 + "@types/semver": ^7.3.4 + better-opn: ^3.0.2 + chalk: ^4.1.0 + cli-table3: ^0.6.1 + compression: ^1.7.4 + detect-port: ^1.3.0 + diff: ^5.2.0 + express: ^4.17.3 + fs-extra: ^11.1.0 + globby: ^14.0.1 + lodash: ^4.17.21 + open: ^8.4.0 + pretty-hrtime: ^1.0.3 + prompts: ^2.4.0 + read-pkg-up: ^7.0.1 + semver: ^7.3.7 + telejson: ^7.2.0 + tiny-invariant: ^1.3.1 + ts-dedent: ^2.0.0 + util: ^0.12.4 + util-deprecate: ^1.0.2 + watchpack: ^2.2.0 + ws: ^8.2.3 + checksum: 195762d1b177124ac1adb118616d54977a890be26026c2e58d944ebef3c65e5fd8db5f2412b02e29be28c2a7ebd5e88ca28d4bea7378d080553af6f0833cfdcd + languageName: node + linkType: hard + +"@storybook/csf-plugin@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/csf-plugin@npm:8.1.11" + dependencies: + "@storybook/csf-tools": 8.1.11 + unplugin: ^1.3.1 + checksum: cb41f58b57f453ad3d896a98789852e0b9f0aa2b1e0bf10e95794136954a5c9badb044913a15634f562b27a24d35833da5378de2848e7c9f55a6eb487261b13f + languageName: node + linkType: hard + +"@storybook/csf-tools@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/csf-tools@npm:8.1.11" + dependencies: + "@babel/generator": ^7.24.4 + "@babel/parser": ^7.24.4 + "@babel/traverse": ^7.24.1 + "@babel/types": ^7.24.0 + "@storybook/csf": ^0.1.7 + "@storybook/types": 8.1.11 + fs-extra: ^11.1.0 + recast: ^0.23.5 + ts-dedent: ^2.0.0 + checksum: b4eb8eef3f62528e5486ea206b53d674203f48cef0d7dac47579bd0698f69dc8071d624abecfe1f0031c80d3526fac647db1019582a8ae40a923515468ee1aac + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.7": + version: 0.1.9 + resolution: "@storybook/csf@npm:0.1.9" + dependencies: + type-fest: ^2.19.0 + checksum: a0023f103d613b00acb3fd96004d30ef1eaea3b1ca6349e9fb33c269aa889ed2f6e3d91037fcfe99bf581865068e6cd0f567558644599e6619c2cb280f0512a2 + languageName: node + linkType: hard + +"@storybook/docs-mdx@npm:3.1.0-next.0": + version: 3.1.0-next.0 + resolution: "@storybook/docs-mdx@npm:3.1.0-next.0" + checksum: 9425906910c37be3ef66d9b0b674edb9871905e68ae507b40f07ecf1a7a78f67dafa8565d95ef69c082e02f9767585bcef27b29cee77c11614c5977f62d90f50 + languageName: node + linkType: hard + +"@storybook/docs-tools@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/docs-tools@npm:8.1.11" + dependencies: + "@storybook/core-common": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/preview-api": 8.1.11 + "@storybook/types": 8.1.11 + "@types/doctrine": ^0.0.3 + assert: ^2.1.0 + doctrine: ^3.0.0 + lodash: ^4.17.21 + checksum: efd319d391f7c7ee68fab60747f5a112c0d129b420b5592559fc92838ae1d85be374a8a2c901d076237ac4b6041589f0689b941efee32bf8d28e993c9b1b465e + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: ede0ad35ec411fe31c61150dbd118fef344d1d0e72bf5d3502368e35cf68126f6b7ae4a0ab5e2ffe2f0baa3b4286f03ad069ba3e098e1725449ef08b7e154ba8 + languageName: node + linkType: hard + +"@storybook/icons@npm:^1.2.5": + version: 1.2.9 + resolution: "@storybook/icons@npm:1.2.9" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: ecb70017f2c7cdf0e9589b52b4c2fa5756b617c6c5ac42cfc71a9920a52ff3bc337ed932a9eb174d584d2121b5157995e0cc055e404c777b3af3cc85015ec2cc + languageName: node + linkType: hard + +"@storybook/manager-api@npm:8.1.11, @storybook/manager-api@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/manager-api@npm:8.1.11" + dependencies: + "@storybook/channels": 8.1.11 + "@storybook/client-logger": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/csf": ^0.1.7 + "@storybook/global": ^5.0.0 + "@storybook/icons": ^1.2.5 + "@storybook/router": 8.1.11 + "@storybook/theming": 8.1.11 + "@storybook/types": 8.1.11 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + store2: ^2.14.2 + telejson: ^7.2.0 + ts-dedent: ^2.0.0 + checksum: 71875933b282ab63078349a820624cc6e45691ed9b0ca5db02c2ce86b8db66376ed6c612cd6d9cf84415edd159c645c6cc26501fb2cbe8fdb755580521dd3ee9 + languageName: node + linkType: hard + +"@storybook/manager@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/manager@npm:8.1.11" + checksum: 261fdd86dd21524a89552efebfc54106f02d17beaa8fd8f122ff70f82fe56169b69b5044249289896089c318af3a618ad2dff928c0847d4f86fbbdffe77933e2 + languageName: node + linkType: hard + +"@storybook/node-logger@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/node-logger@npm:8.1.11" + checksum: 7bca235fa65dadce0a736874e88fb8f1f19c6f932f4a847cd35a48b14e7e09bb9ba6e0780407459e39f8902ccf19e3657877ddace6ae7de8679632d8489bb245 + languageName: node + linkType: hard + +"@storybook/preview-api@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/preview-api@npm:8.1.11" + dependencies: + "@storybook/channels": 8.1.11 + "@storybook/client-logger": 8.1.11 + "@storybook/core-events": 8.1.11 + "@storybook/csf": ^0.1.7 + "@storybook/global": ^5.0.0 + "@storybook/types": 8.1.11 + "@types/qs": ^6.9.5 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + qs: ^6.10.0 + tiny-invariant: ^1.3.1 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + checksum: d070af119e2375d0bfe78af903853df13dbcc7004fe9da29019f0f861f27730e64ff95b8fd8c4ef1f16b3fb65cb6716579d9019536d4e06dec9b59c22cc85ebe + languageName: node + linkType: hard + +"@storybook/preview@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/preview@npm:8.1.11" + checksum: 898beda9fc8362a1b65455bbba4f8a9403728336553851609d7111cffbdf75ca58a609b23d32f86bf9a68621fd03f3052d6770ea063bba8c4f0d6f0c99af153d + languageName: node + linkType: hard + +"@storybook/react-dom-shim@npm:8.1.11, @storybook/react-dom-shim@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/react-dom-shim@npm:8.1.11" + 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 + checksum: 35ac408faeb605bf5a78a91abd5199a316cf7bf0ddfe1354316168a166eed1ede651d9a115ff64ab86f4cf565d78b6cf2884adefba4249d9787f182a99332064 + languageName: node + linkType: hard + +"@storybook/router@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/router@npm:8.1.11" + dependencies: + "@storybook/client-logger": 8.1.11 + memoizerific: ^1.11.3 + qs: ^6.10.0 + checksum: 1b3589cbe1dfc712501f1a8a668babaa0baf55f9e5eb6842df1d4a8c2bcff5eac8ab92018e0becbd6a50215bcfb367f91343732c12eeec54ce76ad409c53d3fe + languageName: node + linkType: hard + +"@storybook/telemetry@npm:8.1.11": + version: 8.1.11 + resolution: "@storybook/telemetry@npm:8.1.11" + dependencies: + "@storybook/client-logger": 8.1.11 + "@storybook/core-common": 8.1.11 + "@storybook/csf-tools": 8.1.11 + chalk: ^4.1.0 + detect-package-manager: ^2.0.1 + fetch-retry: ^5.0.2 + fs-extra: ^11.1.0 + read-pkg-up: ^7.0.1 + checksum: 4f7d448e98a3a0b5520de85f6cdf6364119383695273eaf6a539e3a3ad64929becf0874c4b3bfe9aba31c7e8088a731e5e33f44aa236e1941cd8db7a99e36e94 + languageName: node + linkType: hard + +"@storybook/theming@npm:8.1.11, @storybook/theming@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/theming@npm:8.1.11" + dependencies: + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@storybook/client-logger": 8.1.11 + "@storybook/global": ^5.0.0 + memoizerific: ^1.11.3 + 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 + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: 11430fba26d987b4ebcaf18b86b354c149add7e06f0108ae31befd56397399b7e3721864e61db5bcee5f087b6a5d25f06e6d25f0effeb1b6504e7f78409478df + languageName: node + linkType: hard + +"@storybook/types@npm:8.1.11, @storybook/types@npm:^8.1.11": + version: 8.1.11 + resolution: "@storybook/types@npm:8.1.11" + dependencies: + "@storybook/channels": 8.1.11 + "@types/express": ^4.7.0 + file-system-cache: 2.3.0 + checksum: 99215c9dc8ffcdfd9e54182cf2fe2f6f84cc94bdfe853096876d4715c1cc926317cdb8314ebc4ee78f2b98c65de718f9350d5545d579a08ba08da01864d1291b + languageName: node + linkType: hard + "@swc/core-darwin-arm64@npm:1.3.78": version: 1.3.78 resolution: "@swc/core-darwin-arm64@npm:1.3.78" @@ -7269,6 +8579,13 @@ __metadata: languageName: node linkType: hard +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 + languageName: node + linkType: hard + "@swc/helpers@npm:^0.5.0": version: 0.5.1 resolution: "@swc/helpers@npm:0.5.1" @@ -7350,6 +8667,18 @@ __metadata: languageName: node linkType: hard +"@ts-morph/common@npm:~0.24.0": + version: 0.24.0 + resolution: "@ts-morph/common@npm:0.24.0" + dependencies: + fast-glob: ^3.3.2 + minimatch: ^9.0.4 + mkdirp: ^3.0.1 + path-browserify: ^1.0.1 + checksum: 793bc8a47c93ab55c6c036f94480d3b0e948661aef4bb7dbc29279b1dda2fc4fce809a88e221537867a313541842e12d1ecbd32b4769688abe1303807ec09db6 + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.8 resolution: "@tsconfig/node10@npm:1.0.8" @@ -7509,6 +8838,15 @@ __metadata: languageName: node linkType: hard +"@types/cross-spawn@npm:^6.0.2": + version: 6.0.6 + resolution: "@types/cross-spawn@npm:6.0.6" + dependencies: + "@types/node": "*" + checksum: b4172927cd1387cf037c3ade785ef46c87537b7bc2803d7f6663b4904d0c5d6f726415d1adb2fee4fecb21746738f11336076449265d46be4ce110cc3a8c8436 + languageName: node + linkType: hard + "@types/debug@npm:^4.1.7": version: 4.1.7 resolution: "@types/debug@npm:4.1.7" @@ -7525,6 +8863,41 @@ __metadata: languageName: node linkType: hard +"@types/detect-port@npm:^1.3.0": + version: 1.3.5 + resolution: "@types/detect-port@npm:1.3.5" + checksum: 923cf04c6a05af59090743baeb9948f1938ceb98c1f7ea93db7ac310210426b385aa00005d23039ebb8019a9d13e141f5246e9c733b290885018d722a4787921 + languageName: node + linkType: hard + +"@types/diff@npm:^5.0.9": + version: 5.2.1 + resolution: "@types/diff@npm:5.2.1" + checksum: 5983a323177bd691cb2194f5d55b960cd20a9c8fec653b4b038760c5809627cc9ea3578fdf10119ccbefefef193ea925f2817136eb97b17388f66b16c8480a8a + languageName: node + linkType: hard + +"@types/doctrine@npm:^0.0.3": + version: 0.0.3 + resolution: "@types/doctrine@npm:0.0.3" + checksum: 7ca9c8ff4d2da437785151c9eef0dd80b8fa12e0ff0fcb988458a78de4b6f0fc92727ba5bbee446e1df615a91f03053c5783b30b7c21ab6ceab6a42557e93e50 + languageName: node + linkType: hard + +"@types/ejs@npm:^3.1.1": + version: 3.1.5 + resolution: "@types/ejs@npm:3.1.5" + checksum: e142266283051f27a7f79329871b311687dede19ae20268d882e4de218c65e1311d28a300b85579ca67157a8d601b7234daa50c2f99b252b121d27b4e5b21468 + languageName: node + linkType: hard + +"@types/emscripten@npm:^1.39.6": + version: 1.39.13 + resolution: "@types/emscripten@npm:1.39.13" + checksum: 6a50f43a90db981e088c76219578a8e9eea0add3ed99d2daed3dfe8f8b755557b89ea5aea0166db2e9399882e109971f1724636101850a46cee51dc4c9337b1f + languageName: node + linkType: hard + "@types/eslint-scope@npm:^3.7.3": version: 3.7.3 resolution: "@types/eslint-scope@npm:3.7.3" @@ -7545,7 +8918,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": +"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a @@ -7564,15 +8937,15 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^4.17.13, @types/express@npm:^4.17.17": - version: 4.17.17 - resolution: "@types/express@npm:4.17.17" +"@types/express@npm:*, @types/express@npm:^4.17.13, @types/express@npm:^4.17.17, @types/express@npm:^4.7.0": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^4.17.33 "@types/qs": "*" "@types/serve-static": "*" - checksum: 0196dacc275ac3ce89d7364885cb08e7fb61f53ca101f65886dbf1daf9b7eb05c0943e2e4bbd01b0cc5e50f37e0eea7e4cbe97d0304094411ac73e1b7998f4da + checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 languageName: node linkType: hard @@ -7592,6 +8965,13 @@ __metadata: languageName: node linkType: hard +"@types/find-cache-dir@npm:^3.2.1": + version: 3.2.1 + resolution: "@types/find-cache-dir@npm:3.2.1" + checksum: bf5c4e96da40247cd9e6327f54dfccda961a0fb2d70e3c71bd05def94de4c2e6fb310fe8ecb0f04ecf5dbc52214e184b55a2337b0f87250d4ae1e2e7d58321e4 + languageName: node + linkType: hard + "@types/glob@npm:7.1.4": version: 7.1.4 resolution: "@types/glob@npm:7.1.4" @@ -7637,6 +9017,15 @@ __metadata: languageName: node linkType: hard +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "*" + checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 + languageName: node + linkType: hard + "@types/he@npm:^1.2.3": version: 1.2.3 resolution: "@types/he@npm:1.2.3" @@ -7792,10 +9181,17 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:*": - version: 4.14.194 - resolution: "@types/lodash@npm:4.14.194" - checksum: 113f34831c461469d91feca2dde737f88487732898b4d25e9eb23b087bb193985f864d1e1e0f3b777edc5022e460443588b6000a3b2348c966f72d17eedc35ea +"@types/lodash@npm:*, @types/lodash@npm:^4.14.167": + version: 4.17.5 + resolution: "@types/lodash@npm:4.17.5" + checksum: 3c9bb15772509f0ecb40428531863dbc3f064f2bf34bbccc2ce2b2923c69fb0868aec7e357b1d97fd0d7f7e435a014ea5c1adef8a64715529887179c97a5a823 + languageName: node + linkType: hard + +"@types/mdx@npm:^2.0.0": + version: 2.0.13 + resolution: "@types/mdx@npm:2.0.13" + checksum: 195137b548e75a85f0558bb1ca5088aff1c01ae0fc64454da06085b7513a043356d0bb51ed559d3cbc7ad724ccd8cef2a7d07d014b89a47a74dff8875ceb3b15 languageName: node linkType: hard @@ -7855,10 +9251,19 @@ __metadata: languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.1": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: e87bccbf11f95035c89a132b52b79ce69a1e3652fe55962363063c9c0dae0fe2477ebc585e03a9652adc6f381d24ba5589cc5e51849df4ced3d3e004a7d40ed5 +"@types/node@npm:^18.0.0": + version: 18.19.39 + resolution: "@types/node@npm:18.19.39" + dependencies: + undici-types: ~5.26.4 + checksum: d1de755983127b405458c427ae2cf77c89d120a617ca70999086a75fb0b6c6dbc1bdddfe1a8a7374c9ae55ed0589a2bd023ffb3b09ee25440c013afc6502dfe6 + languageName: node + linkType: hard + +"@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.1": + version: 2.4.4 + resolution: "@types/normalize-package-data@npm:2.4.4" + checksum: 65dff72b543997b7be8b0265eca7ace0e34b75c3e5fee31de11179d08fa7124a7a5587265d53d0409532ecb7f7fba662c2012807963e1f9b059653ec2c83ee05 languageName: node linkType: hard @@ -7876,6 +9281,13 @@ __metadata: languageName: node linkType: hard +"@types/pretty-hrtime@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/pretty-hrtime@npm:1.0.3" + checksum: 288061dff992c8107d5c7b5a1277bbb0a314a27eb10087dea628a08fa37694a655191a69e25a212c95e61e498363c48ad9e281d23964a448f6c14100a6be0910 + languageName: node + linkType: hard + "@types/prop-types@npm:*": version: 15.7.5 resolution: "@types/prop-types@npm:15.7.5" @@ -7890,10 +9302,10 @@ __metadata: languageName: node linkType: hard -"@types/qs@npm:*": - version: 6.9.7 - resolution: "@types/qs@npm:6.9.7" - checksum: 7fd6f9c25053e9b5bb6bc9f9f76c1d89e6c04f7707a7ba0e44cc01f17ef5284adb82f230f542c2d5557d69407c9a40f0f3515e8319afd14e1e16b5543ac6cdba +"@types/qs@npm:*, @types/qs@npm:^6.9.5": + version: 6.9.15 + resolution: "@types/qs@npm:6.9.15" + checksum: 97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2 languageName: node linkType: hard @@ -7922,14 +9334,13 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:>=16.9.11, @types/react@npm:^18.2.5": - version: 18.2.14 - resolution: "@types/react@npm:18.2.14" +"@types/react@npm:*, @types/react@npm:>=16.9.11, @types/react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, @types/react@npm:^18.2.5": + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" dependencies: "@types/prop-types": "*" - "@types/scheduler": "*" csstype: ^3.0.2 - checksum: a6a5e8cc78f486b9020d1ad009aa6c56943c68c7c6376e0f8399e9cbcd950b7b8f5d73f00200f5379f5e58d31d57d8aed24357f301d8e86108cd438ce6c8b3dd + checksum: c63d6a78163244e2022b01ef79b0baec4fe4da3475dc4a90bb8accefad35ef0c43560fd0312e5974f92a0f1108aa4d669ac72d73d66396aa060ea03b5d2e3873 languageName: node linkType: hard @@ -7967,17 +9378,10 @@ __metadata: languageName: node linkType: hard -"@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 - languageName: node - linkType: hard - -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.6, @types/semver@npm:^7.5.0": - version: 7.5.0 - resolution: "@types/semver@npm:7.5.0" - checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.3.6, @types/semver@npm:^7.5.0": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 languageName: node linkType: hard @@ -8058,6 +9462,13 @@ __metadata: languageName: node linkType: hard +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/unist@npm:3.0.2" + checksum: 3d04d0be69316e5f14599a0d993a208606c12818cf631fd399243d1dc7a9bd8a3917d6066baa6abc290814afbd744621484756803c80cba892c39cd4b4a85616 + languageName: node + linkType: hard + "@types/use-sync-external-store@npm:^0.0.3": version: 0.0.3 resolution: "@types/use-sync-external-store@npm:0.0.3" @@ -8267,6 +9678,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.0.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + languageName: node + linkType: hard + "@vitest/spy@npm:^0.34.1": version: 0.34.3 resolution: "@vitest/spy@npm:0.34.3" @@ -8598,13 +10016,13 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/ast@npm:1.11.6" +"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/ast@npm:1.12.1" dependencies: "@webassemblyjs/helper-numbers": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf + checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 languageName: node linkType: hard @@ -8622,10 +10040,10 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" - checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 +"@webassemblyjs/helper-buffer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" + checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca languageName: node linkType: hard @@ -8647,15 +10065,15 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" +"@webassemblyjs/helper-wasm-section@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 - "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/wasm-gen": 1.11.6 - checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 + "@webassemblyjs/wasm-gen": 1.12.1 + checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f languageName: node linkType: hard @@ -8684,68 +10102,68 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" +"@webassemblyjs/wasm-edit@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 - "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/helper-wasm-section": 1.11.6 - "@webassemblyjs/wasm-gen": 1.11.6 - "@webassemblyjs/wasm-opt": 1.11.6 - "@webassemblyjs/wasm-parser": 1.11.6 - "@webassemblyjs/wast-printer": 1.11.6 - checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 + "@webassemblyjs/helper-wasm-section": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-opt": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + "@webassemblyjs/wast-printer": 1.12.1 + checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" +"@webassemblyjs/wasm-gen@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.12.1 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 "@webassemblyjs/ieee754": 1.11.6 "@webassemblyjs/leb128": 1.11.6 "@webassemblyjs/utf8": 1.11.6 - checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a + checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" +"@webassemblyjs/wasm-opt@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 - "@webassemblyjs/helper-buffer": 1.11.6 - "@webassemblyjs/wasm-gen": 1.11.6 - "@webassemblyjs/wasm-parser": 1.11.6 - checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 + "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/wasm-gen": 1.12.1 + "@webassemblyjs/wasm-parser": 1.12.1 + checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": - version: 1.11.6 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" +"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.12.1 "@webassemblyjs/helper-api-error": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 "@webassemblyjs/ieee754": 1.11.6 "@webassemblyjs/leb128": 1.11.6 "@webassemblyjs/utf8": 1.11.6 - checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a + checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/wast-printer@npm:1.11.6" +"@webassemblyjs/wast-printer@npm:1.12.1": + version: 1.12.1 + resolution: "@webassemblyjs/wast-printer@npm:1.12.1" dependencies: - "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/ast": 1.12.1 "@xtuc/long": 4.2.2 - checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 + checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 languageName: node linkType: hard @@ -8803,17 +10221,57 @@ __metadata: languageName: node linkType: hard -"@zag-js/element-size@npm:0.3.2": - version: 0.3.2 - resolution: "@zag-js/element-size@npm:0.3.2" - checksum: ee76f0b49e13e55f6adfe5b2e4d2c7b4207a9bc3d453497e90f206f8579e9f4f8bfc038c3f6eec42dac09476d767ddddb73e7697a26e96852249652adb0a35e0 +"@yarnpkg/esbuild-plugin-pnp@npm:^3.0.0-rc.10": + version: 3.0.0-rc.15 + resolution: "@yarnpkg/esbuild-plugin-pnp@npm:3.0.0-rc.15" + dependencies: + tslib: ^2.4.0 + peerDependencies: + esbuild: ">=0.10.0" + checksum: 04da15355a99773b441742814ba4d0f3453a83df47aa07e215f167e156f109ab8e971489c8b1a4ddf3c79d568d35213f496ad52e97298228597e1aacc22680aa languageName: node linkType: hard -"@zag-js/focus-visible@npm:0.2.2": - version: 0.2.2 - resolution: "@zag-js/focus-visible@npm:0.2.2" - checksum: 4cfb41479d82ced942476acfe17dd19f0c40bcceb28733ab8f716a53b893790b20e279461345ee03a7ac1273452f6a33882120b6b55d4e220179956fdd7ec4be +"@yarnpkg/fslib@npm:2.10.3": + version: 2.10.3 + resolution: "@yarnpkg/fslib@npm:2.10.3" + dependencies: + "@yarnpkg/libzip": ^2.3.0 + tslib: ^1.13.0 + checksum: 0ca693f61d47bcf165411a121ed9123f512b1b5bfa5e1c6c8f280b4ffdbea9bf2a6db418f99ecfc9624587fdc695b2b64eb0fe7b4028e44095914b25ca99655e + languageName: node + linkType: hard + +"@yarnpkg/libzip@npm:2.3.0, @yarnpkg/libzip@npm:^2.3.0": + version: 2.3.0 + resolution: "@yarnpkg/libzip@npm:2.3.0" + dependencies: + "@types/emscripten": ^1.39.6 + tslib: ^1.13.0 + checksum: 533a4883f69bb013f955d80dc19719881697e6849ea5f0cbe6d87ef1d582b05cbae8a453802f92ad0c852f976296cac3ff7834be79a7e415b65cdf213e448110 + languageName: node + linkType: hard + +"@zag-js/dom-query@npm:0.16.0": + version: 0.16.0 + resolution: "@zag-js/dom-query@npm:0.16.0" + checksum: a207018be1215716487b789c50056c6e28ebf067db26e31147bdef6f4ae1a20fb74b6a7f1a1334210c92295479761df7da2fb60a9cef9aaf64ea376dead3a1f7 + languageName: node + linkType: hard + +"@zag-js/element-size@npm:0.10.5": + version: 0.10.5 + resolution: "@zag-js/element-size@npm:0.10.5" + checksum: 1a269fbe5124b430008617e705049c929301fae98af4f4ad9da9e533784c883ba899083242a9b7b2a15e503f94dcc7958e8489e98dbd0e098d2d968fb1b41355 + languageName: node + linkType: hard + +"@zag-js/focus-visible@npm:0.16.0": + version: 0.16.0 + resolution: "@zag-js/focus-visible@npm:0.16.0" + dependencies: + "@zag-js/dom-query": 0.16.0 + checksum: 4bf4530a865200c175d04a70169929defce865a69e7c068a365106cb0b19dbae5ed56163f02cbf543f4b26e60449e150e4aec67dbd819a9d1b3eba9fc667f488 languageName: node linkType: hard @@ -8879,12 +10337,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.9.0": - version: 1.9.0 - resolution: "acorn-import-assertions@npm:1.9.0" +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" peerDependencies: acorn: ^8 - checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c + checksum: 1c0c49b6a244503964ae46ae850baccf306e84caf99bc2010ed6103c69a423987b07b520a6c619f075d215388bd4923eccac995886a54309eda049ab78a4be95 languageName: node linkType: hard @@ -8931,12 +10389,19 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": - version: 8.10.0 - resolution: "acorn@npm:8.10.0" +"acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.12.0 + resolution: "acorn@npm:8.12.0" bin: acorn: bin/acorn - checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d + checksum: ae142de8739ef15a5d936c550c1d267fc4dedcdbe62ad1aa2c0009afed1de84dd0a584684a5d200bb55d8db14f3e09a95c6e92a5303973c04b9a7413c36d1df0 + languageName: node + linkType: hard + +"address@npm:^1.0.1": + version: 1.2.2 + resolution: "address@npm:1.2.2" + checksum: ace439960c1e3564d8f523aff23a841904bf33a2a7c2e064f7f60a064194075758b9690e65bd9785692a4ef698a998c57eb74d145881a1cecab8ba658ddb1607 languageName: node linkType: hard @@ -9160,6 +10625,13 @@ __metadata: languageName: node linkType: hard +"app-root-dir@npm:^1.0.2": + version: 1.0.2 + resolution: "app-root-dir@npm:1.0.2" + checksum: d4b1653fc60b6465b982bf5a88b12051ed2d807d70609386a809306e1c636496f53522d61fa30f9f98c71aaae34f34e1651889cf17d81a44e3dafd2859d495ad + languageName: node + linkType: hard + "aproba@npm:^1.0.3 || ^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" @@ -9229,12 +10701,12 @@ __metadata: languageName: node linkType: hard -"aria-hidden@npm:^1.2.2": - version: 1.2.3 - resolution: "aria-hidden@npm:1.2.3" +"aria-hidden@npm:^1.1.1, aria-hidden@npm:^1.2.3": + version: 1.2.4 + resolution: "aria-hidden@npm:1.2.4" dependencies: tslib: ^2.0.0 - checksum: 7d7d211629eef315e94ed3b064c6823d13617e609d3f9afab1c2ed86399bb8e90405f9bdd358a85506802766f3ecb468af985c67c846045a34b973bcc0289db9 + checksum: 2ac90b70d29c6349d86d90e022cf01f4885f9be193932d943a14127cf28560dd0baf068a6625f084163437a4be0578f513cf7892f4cc63bfe91aa41dce27c6b2 languageName: node linkType: hard @@ -9374,15 +10846,16 @@ __metadata: languageName: node linkType: hard -"assert@npm:^2.0.0": - version: 2.0.0 - resolution: "assert@npm:2.0.0" +"assert@npm:^2.0.0, assert@npm:^2.1.0": + version: 2.1.0 + resolution: "assert@npm:2.1.0" dependencies: - es6-object-assign: ^1.1.0 - is-nan: ^1.2.1 - object-is: ^1.0.1 - util: ^0.12.0 - checksum: bb91f181a86d10588ee16c5e09c280f9811373974c29974cbe401987ea34e966699d7989a812b0e19377b511ea0bc627f5905647ce569311824848ede382cae8 + call-bind: ^1.0.2 + is-nan: ^1.3.2 + object-is: ^1.1.5 + object.assign: ^4.1.4 + util: ^0.12.5 + checksum: 1ed1cabba9abe55f4109b3f7292b4e4f3cf2953aad8dc148c0b3c3bd676675c31b1abb32ef563b7d5a19d1715bf90d1e5f09fad2a4ee655199468902da80f7c2 languageName: node linkType: hard @@ -9482,6 +10955,15 @@ __metadata: languageName: node linkType: hard +"babel-core@npm:^7.0.0-bridge.0": + version: 7.0.0-bridge.0 + resolution: "babel-core@npm:7.0.0-bridge.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb + languageName: node + linkType: hard + "babel-jest@npm:^29.5.0": version: 29.5.0 resolution: "babel-jest@npm:29.5.0" @@ -9548,16 +11030,28 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.6": - version: 0.4.6 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" +"babel-plugin-polyfill-corejs2@npm:^0.4.10, babel-plugin-polyfill-corejs2@npm:^0.4.6": + version: 0.4.11 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" dependencies: "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.4.3 + "@babel/helper-define-polyfill-provider": ^0.6.2 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 08896811df31530be6a9bcdd630cb9fd4b5ae5181039d18db3796efbc54e38d57a42af460845c10a04434e1bc45c0d47743c7e6c860383cc6b141083cde22030 + checksum: f098353ce7c7dde1a1d2710858e01b471e85689110c9e37813e009072347eb8c55d5f84d20d3bf1cab31755f20078ba90f8855fdc4686a9daa826a95ff280bd7 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.10.4": + version: 0.10.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.1 + core-js-compat: ^3.36.1 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: b96a54495f7cc8b3797251c8c15f5ed015edddc3110fc122f6b32c94bec33af1e8bc56fa99091808f500bde0cccaaa266889cdc5935d9e6e9cf09898214f02dd languageName: node linkType: hard @@ -9584,6 +11078,17 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.6.2 + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + languageName: node + linkType: hard + "babel-plugin-tsconfig-paths-module-resolver@npm:^1.0.4": version: 1.0.4 resolution: "babel-plugin-tsconfig-paths-module-resolver@npm:1.0.4" @@ -9674,10 +11179,19 @@ __metadata: languageName: node linkType: hard -"big-integer@npm:^1.6.17": - version: 1.6.51 - resolution: "big-integer@npm:1.6.51" - checksum: 3d444173d1b2e20747e2c175568bedeebd8315b0637ea95d75fd27830d3b8e8ba36c6af40374f36bdaea7b5de376dcada1b07587cb2a79a928fccdb6e6e3c518 +"better-opn@npm:^3.0.2": + version: 3.0.2 + resolution: "better-opn@npm:3.0.2" + dependencies: + open: ^8.0.4 + checksum: 1471552fa7f733561e7f49e812be074b421153006ca744de985fb6d38939807959fc5fe9cb819cf09f864782e294704fd3b31711ea14c115baf3330a2f1135de + languageName: node + linkType: hard + +"big-integer@npm:^1.6.17, big-integer@npm:^1.6.44": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b languageName: node linkType: hard @@ -9816,6 +11330,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: ^1.6.44 + checksum: d5339dd16afc51de6c88f88f58a45b72ed6a06aa31f5557d09877575f220b7c1d3fbe375da0b62e6a10d4b8ed80523567e351f24014f5bc886ad523758142cdd + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -9851,6 +11374,13 @@ __metadata: languageName: node linkType: hard +"browser-assert@npm:^1.2.1": + version: 1.2.1 + resolution: "browser-assert@npm:1.2.1" + checksum: 8b2407cd04c1ed592cf892dec35942b7d72635829221e0788c9a16c4d2afa8b7156bc9705b1c4b32c30d88136c576fda3cbcb8f494d6f865264c706ea8798d92 + languageName: node + linkType: hard + "browser-pack@npm:^6.0.1": version: 6.1.0 resolution: "browser-pack@npm:6.1.0" @@ -9947,6 +11477,15 @@ __metadata: languageName: node linkType: hard +"browserify-zlib@npm:^0.1.4": + version: 0.1.4 + resolution: "browserify-zlib@npm:0.1.4" + dependencies: + pako: ~0.2.0 + checksum: abee4cb4349e8a21391fd874564f41b113fe691372913980e6fa06a777e4ea2aad4e942af14ab99bce190d5ac8f5328201432f4ef0eae48c6d02208bc212976f + languageName: node + linkType: hard + "browserify-zlib@npm:^0.2.0, browserify-zlib@npm:~0.2.0": version: 0.2.0 resolution: "browserify-zlib@npm:0.2.0" @@ -10014,17 +11553,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": - version: 4.22.1 - resolution: "browserslist@npm:4.22.1" +"browserslist@npm:^4.21.10, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": + version: 4.23.1 + resolution: "browserslist@npm:4.23.1" dependencies: - caniuse-lite: ^1.0.30001541 - electron-to-chromium: ^1.4.535 - node-releases: ^2.0.13 - update-browserslist-db: ^1.0.13 + caniuse-lite: ^1.0.30001629 + electron-to-chromium: ^1.4.796 + node-releases: ^2.0.14 + update-browserslist-db: ^1.0.16 bin: browserslist: cli.js - checksum: 7e6b10c53f7dd5d83fd2b95b00518889096382539fed6403829d447e05df4744088de46a571071afb447046abc3c66ad06fbc790e70234ec2517452e32ffd862 + checksum: 06189e2d6666a203ce097cc0e713a40477d08420927b79af139211e5712f3cf676fdc4dd6af3aa493d47c09206a344b3420a8315577dbe88c58903132de9b0f5 languageName: node linkType: hard @@ -10256,15 +11795,16 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5": - version: 1.0.6 - resolution: "call-bind@npm:1.0.6" +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" dependencies: + es-define-property: ^1.0.0 es-errors: ^1.3.0 function-bind: ^1.1.2 - get-intrinsic: ^1.2.3 - set-function-length: ^1.2.0 - checksum: 9e75989b60124df0fee40c129b2f8f401efb54e40451e18f112b64654c7d6d0dd7b6195e990edaeb3fdb447911926a19ffe1635858de00d68826ced6eeab24a9 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.1 + checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 languageName: node linkType: hard @@ -10323,10 +11863,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001541": - version: 1.0.30001550 - resolution: "caniuse-lite@npm:1.0.30001550" - checksum: b48d5a0bd25d634d61f410e0130c5e6c328724285c3c6065644eb41f86a227f5db0eb77da25d0fe3c6c9b04bbd040c9c164bf8dc50dd75cb30fc578aaae562f1 +"caniuse-lite@npm:^1.0.30001629": + version: 1.0.30001637 + resolution: "caniuse-lite@npm:1.0.30001637" + checksum: cb8b194b8576c73d287274cf3028541c218da7f2e1871b737e4829796521f45dbb4745fa466e0e56a241693cfe8d00d20ac3e55337f3923e914995d1d5a639a6 languageName: node linkType: hard @@ -10394,7 +11934,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:3.5.3, chokidar@npm:^3.5.1, chokidar@npm:^3.5.3": +"chokidar@npm:3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -10413,6 +11953,25 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^3.5.1, chokidar@npm:^3.5.3, chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: ~3.1.2 + braces: ~3.0.2 + fsevents: ~2.3.2 + glob-parent: ~5.1.2 + is-binary-path: ~2.1.0 + is-glob: ~4.0.1 + normalize-path: ~3.0.0 + readdirp: ~3.6.0 + dependenciesMeta: + fsevents: + optional: true + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d + languageName: node + linkType: hard + "chownr@npm:^1.1.1": version: 1.1.4 resolution: "chownr@npm:1.1.4" @@ -10479,10 +12038,19 @@ __metadata: languageName: node linkType: hard +"citty@npm:^0.1.6": + version: 0.1.6 + resolution: "citty@npm:0.1.6" + dependencies: + consola: ^3.2.3 + checksum: 3fbcaaea92d328deddb5aba7d629d9076d4f1aa0338f59db7ea647a8f51eedc14b7f6218c87ad03c9e3c126213ba87d13d7774f9c30d64209f4b074aa83bd6ab + languageName: node + linkType: hard + "cjs-module-lexer@npm:^1.0.0": - version: 1.2.2 - resolution: "cjs-module-lexer@npm:1.2.2" - checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 + version: 1.3.1 + resolution: "cjs-module-lexer@npm:1.3.1" + checksum: 75f20ac264a397ea5c63f9c2343a51ab878043666468f275e94862f7180ec1d764a400ec0c09085dcf0db3193c74a8b571519abd2bf4be0d2be510d1377c8d4b languageName: node linkType: hard @@ -10525,6 +12093,19 @@ __metadata: languageName: node linkType: hard +"cli-table3@npm:^0.6.1": + version: 0.6.5 + resolution: "cli-table3@npm:0.6.5" + dependencies: + "@colors/colors": 1.5.0 + string-width: ^4.2.0 + dependenciesMeta: + "@colors/colors": + optional: true + checksum: ab7afbf4f8597f1c631f3ee6bb3481d0bfeac8a3b81cffb5a578f145df5c88003b6cfff46046a7acae86596fdd03db382bfa67f20973b6b57425505abc47e42c + languageName: node + linkType: hard + "cli-truncate@npm:^2.1.0": version: 2.1.0 resolution: "cli-truncate@npm:2.1.0" @@ -10626,6 +12207,13 @@ __metadata: languageName: node linkType: hard +"code-block-writer@npm:^13.0.1": + version: 13.0.1 + resolution: "code-block-writer@npm:13.0.1" + checksum: 678b740d1723c7cc3c5addcbc1a91d9a7a3f033510eb8e0639154fcaae456c80630dbd40d16aefdffaf3edb5ffb352d7d46f195f69c8be692c4d7debb1dc7933 + languageName: node + linkType: hard + "collect-v8-coverage@npm:^1.0.0": version: 1.0.1 resolution: "collect-v8-coverage@npm:1.0.1" @@ -10633,7 +12221,7 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": +"color-convert@npm:^1.3.0, color-convert@npm:^1.9.0": version: 1.9.3 resolution: "color-convert@npm:1.9.3" dependencies: @@ -10665,6 +12253,15 @@ __metadata: languageName: node linkType: hard +"color-string@npm:^0.3.0": + version: 0.3.0 + resolution: "color-string@npm:0.3.0" + dependencies: + color-name: ^1.0.0 + checksum: cc65013a94d399ddcb81b3b4b6e0d2166cbaa77311260ff6271f215a286d3db58ab3a217bdb175f8b9dd95f9ea7ac94f71a595af6bcd3b6a02fea6e75ddaf5fb + languageName: node + linkType: hard + "color-string@npm:^1.9.0": version: 1.9.1 resolution: "color-string@npm:1.9.1" @@ -10684,10 +12281,21 @@ __metadata: languageName: node linkType: hard -"color2k@npm:^2.0.0": - version: 2.0.2 - resolution: "color2k@npm:2.0.2" - checksum: a024d05c0eb24c6cf4f50b73fc948734ebd8cd0ce1fcfd17f4a17e6965c29764fa4b528161de4e65939d6fc32b3063d496c327eb0f48c084b4d79707ddb5965f +"color2k@npm:^2.0.2": + version: 2.0.3 + resolution: "color2k@npm:2.0.3" + checksum: 0748e16e43c1740045af61f44de5d181f3f7a2a9cb0d5cccdccee23d04e3f107f02aaafebb7ca3335cca1d11849c6321aba702eb2f893e993a77f65761de7661 + languageName: node + linkType: hard + +"color@npm:^0.11.3": + version: 0.11.4 + resolution: "color@npm:0.11.4" + dependencies: + clone: ^1.0.2 + color-convert: ^1.3.0 + color-string: ^0.3.0 + checksum: a6f624fd159e9311a6c1c86ac05b5b550c98e2d1e5646e032b8481e5e113127c06a84678b91c89c96b11b58c1c723dd9766b1b02cb2d441c6212a0f7cb3dad73 languageName: node linkType: hard @@ -10750,6 +12358,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^6.2.1": + version: 6.2.1 + resolution: "commander@npm:6.2.1" + checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742 + languageName: node + linkType: hard + "commander@npm:^8.3.0": version: 8.3.0 resolution: "commander@npm:8.3.0" @@ -10828,10 +12443,10 @@ __metadata: languageName: node linkType: hard -"compute-scroll-into-view@npm:1.0.20": - version: 1.0.20 - resolution: "compute-scroll-into-view@npm:1.0.20" - checksum: f15fab29221953620735393ac1866541aab0d27d28078bedbba071a291ee9c8cc1a72bee302cf0bc06ed83c5e55afb74ebcbd634a63671ba33cf1fb1c51d3308 +"compute-scroll-into-view@npm:3.0.3": + version: 3.0.3 + resolution: "compute-scroll-into-view@npm:3.0.3" + checksum: 7143869648d4de8ff2cb60eb8e96a21b47948c3210d15d1bfaa7e88de722c7f83f06676b97ebff94831dde0c03e42458ecfbde466747945187ee5c7667c68395 languageName: node linkType: hard @@ -10873,6 +12488,13 @@ __metadata: languageName: node linkType: hard +"consola@npm:^3.2.3": + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 32ec70e177dd2385c42e38078958cc7397be91db21af90c6f9faa0b16168b49b1c61d689338604bbb2d64370b9347a35f42a9197663a913d3a405bb0ce728499 + languageName: node + linkType: hard + "console-browserify@npm:^1.1.0, console-browserify@npm:^1.2.0": version: 1.2.0 resolution: "console-browserify@npm:1.2.0" @@ -10977,12 +12599,12 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": - version: 3.33.0 - resolution: "core-js-compat@npm:3.33.0" +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2, core-js-compat@npm:^3.36.1": + version: 3.37.1 + resolution: "core-js-compat@npm:3.37.1" dependencies: - browserslist: ^4.22.1 - checksum: 83ae54008c09b8e0ae3c59457039866c342c7e28b0d30eebb638a5b51c01432e63fe97695c90645cbc6a8b073a4f9a8b0e75f0818bbf8b4b054e01f4c17d3181 + browserslist: ^4.23.0 + checksum: 5e7430329358bced08c30950512d2081aea0a5652b4c5892cbb3c4a6db05b0d3893a191a955162a07fdb5f4fe74e61b6429fdb503f54e062336d76e43c9555d9 languageName: node linkType: hard @@ -11155,6 +12777,15 @@ __metadata: languageName: node linkType: hard +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: ^1.0.1 + checksum: 91f148f27bcc8582798f0fb3e75a09d9174557f39c3c40a89dd1bd70fb5a14a02548245aa26fa7d663c426ac5026f4729841231c84f9e30e8c8ece5e38656741 + languageName: node + linkType: hard + "css-box-model@npm:1.2.1": version: 1.2.1 resolution: "css-box-model@npm:1.2.1" @@ -11165,20 +12796,26 @@ __metadata: linkType: hard "css-loader@npm:^6.7.3": - version: 6.7.4 - resolution: "css-loader@npm:6.7.4" + version: 6.11.0 + resolution: "css-loader@npm:6.11.0" dependencies: icss-utils: ^5.1.0 - postcss: ^8.4.21 - postcss-modules-extract-imports: ^3.0.0 - postcss-modules-local-by-default: ^4.0.1 - postcss-modules-scope: ^3.0.0 + postcss: ^8.4.33 + postcss-modules-extract-imports: ^3.1.0 + postcss-modules-local-by-default: ^4.0.5 + postcss-modules-scope: ^3.2.0 postcss-modules-values: ^4.0.0 postcss-value-parser: ^4.2.0 - semver: ^7.3.8 + semver: ^7.5.4 peerDependencies: + "@rspack/core": 0.x || 1.x webpack: ^5.0.0 - checksum: 6021fa9e375d767b9675e295c1513f2ee4ae04f76d9de69a75b8446e05f6e02b2170407ea72939925b788dcd5aa308527f6b41be3870dc1f4b0bfff8d2532c6e + peerDependenciesMeta: + "@rspack/core": + optional: true + webpack: + optional: true + checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 languageName: node linkType: hard @@ -11248,10 +12885,10 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.11, csstype@npm:^3.0.2": - version: 3.1.2 - resolution: "csstype@npm:3.1.2" - checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 +"csstype@npm:^3.0.2, csstype@npm:^3.1.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 languageName: node linkType: hard @@ -11442,6 +13079,16 @@ __metadata: languageName: node linkType: hard +"default-browser-id@npm:3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: ^0.2.0 + untildify: ^4.0.0 + checksum: 279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 + languageName: node + linkType: hard + "default-gateway@npm:^6.0.3": version: 6.0.3 resolution: "default-gateway@npm:6.0.3" @@ -11467,15 +13114,14 @@ __metadata: languageName: node linkType: hard -"define-data-property@npm:^1.1.2": - version: 1.1.2 - resolution: "define-data-property@npm:1.1.2" +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" dependencies: + es-define-property: ^1.0.0 es-errors: ^1.3.0 - get-intrinsic: ^1.2.2 gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: a903d932c83ede85d47d7764fff23435e038e8d7c2ed09a5461d59a0279bf590ed7459ac9ab468e550e24d81aa91e4de1714df155ecce4c925e94bc5ea94f9f3 + checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b languageName: node linkType: hard @@ -11503,6 +13149,13 @@ __metadata: languageName: node linkType: hard +"defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 40e3af6338f195ac1564f53d1887fa2d0429ac7e8c081204bc4d29191180059d3952b5f4e08fe5df8d59eb873aa26e9c88b56d4fac699673d4a372c93620b229 + languageName: node + linkType: hard + "degenerator@npm:^5.0.0": version: 5.0.1 resolution: "degenerator@npm:5.0.1" @@ -11634,7 +13287,7 @@ __metadata: languageName: node linkType: hard -"detect-indent@npm:^6.0.0": +"detect-indent@npm:^6.0.0, detect-indent@npm:^6.1.0": version: 6.1.0 resolution: "detect-indent@npm:6.1.0" checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d @@ -11669,6 +13322,28 @@ __metadata: languageName: node linkType: hard +"detect-package-manager@npm:^2.0.1": + version: 2.0.1 + resolution: "detect-package-manager@npm:2.0.1" + dependencies: + execa: ^5.1.1 + checksum: e72b910182d5ad479198d4235be206ac64a479257b32201bb06f3c842cc34c65ea851d46f72cc1d4bf535bcc6c4b44b5b86bb29fe1192b8c9c07b46883672f28 + languageName: node + linkType: hard + +"detect-port@npm:^1.3.0": + version: 1.6.1 + resolution: "detect-port@npm:1.6.1" + dependencies: + address: ^1.0.1 + debug: 4 + bin: + detect: bin/detect-port.js + detect-port: bin/detect-port.js + checksum: 0429fa423abb15fc453face64e6ffa406e375f51f5b4421a7886962e680dc05824eae9b6ee4594ba273685c3add415ad00982b5da54802ac3de6f846173284c3 + languageName: node + linkType: hard + "detective@npm:^5.2.0": version: 5.2.0 resolution: "detective@npm:5.2.0" @@ -11710,7 +13385,7 @@ __metadata: languageName: node linkType: hard -"diff@npm:5.0.0, diff@npm:^5.0.0": +"diff@npm:5.0.0": version: 5.0.0 resolution: "diff@npm:5.0.0" checksum: f19fe29284b633afdb2725c2a8bb7d25761ea54d321d8e67987ac851c5294be4afeab532bd84531e02583a3fe7f4014aa314a3eda84f5590e7a9e6b371ef3b46 @@ -11724,6 +13399,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^5.0.0, diff@npm:^5.2.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 12b63ca9c36c72bafa3effa77121f0581b4015df18bc16bac1f8e263597735649f1a173c26f7eba17fb4162b073fee61788abe49610e6c70a2641fe1895443fd + languageName: node + linkType: hard + "diffie-hellman@npm:^5.0.0": version: 5.0.3 resolution: "diffie-hellman@npm:5.0.3" @@ -11893,10 +13575,17 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:^16.3.1": - version: 16.3.1 - resolution: "dotenv@npm:16.3.1" - checksum: 15d75e7279018f4bafd0ee9706593dd14455ddb71b3bcba9c52574460b7ccaf67d5cf8b2c08a5af1a9da6db36c956a04a1192b101ee102a3e0cf8817bbcf3dfd +"dotenv-expand@npm:^10.0.0": + version: 10.0.0 + resolution: "dotenv-expand@npm:10.0.0" + checksum: 2a38b470efe0abcb1ac8490421a55e1d764dc9440fd220942bce40965074f3fb00b585f4346020cb0f0f219966ee6b4ee5023458b3e2953fe5b3214de1b314ee + languageName: node + linkType: hard + +"dotenv@npm:^16.0.0, dotenv@npm:^16.3.1": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 301a12c3d44fd49888b74eb9ccf9f07a1f5df43f489e7fcb89647a2edcd84c42d6bc349dc8df099cd18f07c35c7b04685c1a4f3e6a6a9e6b30f8d48c15b7f49c languageName: node linkType: hard @@ -11928,6 +13617,18 @@ __metadata: languageName: node linkType: hard +"duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": + version: 3.7.1 + resolution: "duplexify@npm:3.7.1" + dependencies: + end-of-stream: ^1.0.0 + inherits: ^2.0.1 + readable-stream: ^2.0.0 + stream-shift: ^1.0.0 + checksum: 3c2ed2223d956a5da713dae12ba8295acb61d9acd966ccbba938090d04f4574ca4dca75cca089b5077c2d7e66101f32e6ea9b36a78ca213eff574e7a8b8accf2 + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -11981,7 +13682,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.9": +"ejs@npm:^3.1.10, ejs@npm:^3.1.9": version: 3.1.10 resolution: "ejs@npm:3.1.10" dependencies: @@ -11992,10 +13693,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.535": - version: 1.4.557 - resolution: "electron-to-chromium@npm:1.4.557" - checksum: 16f24e8d648489f0bfe7c2ffd4ada282bd68465862779f1f2e0afff5357e96536b075731c4b721dd27e2eae72008dc66d79e7bce6315e1c8f02947d41d988b78 +"electron-to-chromium@npm:^1.4.796": + version: 1.4.812 + resolution: "electron-to-chromium@npm:1.4.812" + checksum: 0205fcb6db3a719873398f46cd3341188d4a54e056567453819532c5fd1fadda43f501c252bc8d05eeaaeb1497f58d9875c46c4f9ecfbe713b9efe71cd879b13 languageName: node linkType: hard @@ -12058,7 +13759,7 @@ __metadata: languageName: node linkType: hard -"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": +"end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: @@ -12067,13 +13768,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": - version: 5.15.0 - resolution: "enhanced-resolve@npm:5.15.0" +"enhanced-resolve@npm:^5.17.0, enhanced-resolve@npm:^5.7.0": + version: 5.17.0 + resolution: "enhanced-resolve@npm:5.17.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 + checksum: 1066000454da6a7aeabdbe1f433d912d1e39e6892142a78a37b6577aab27e0436091fa1399d857ad87085b1c3b73a0f811c8874da3dbdc40fbd5ebe89a5568e6 languageName: node linkType: hard @@ -12164,6 +13865,15 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: ^1.2.4 + checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + languageName: node + linkType: hard + "es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" @@ -12188,10 +13898,10 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": - version: 1.2.1 - resolution: "es-module-lexer@npm:1.2.1" - checksum: c4145b853e1491eaa5d591e4580926d242978c38071ad3d09165c3b6d50314cc0ae3bf6e1dec81a9e53768b9299df2063d2e4a67d7742a5029ddeae6c4fc26f0 +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: a0cf04fb92d052647ac7d818d1913b98d3d3d0f5b9d88f0eafb993436e4c3e2c958599db68839d57f2dfa281fdf0f60e18d448eb78fc292c33c0f25635b6854f languageName: node linkType: hard @@ -12215,13 +13925,6 @@ __metadata: languageName: node linkType: hard -"es6-object-assign@npm:^1.1.0": - version: 1.1.0 - resolution: "es6-object-assign@npm:1.1.0" - checksum: 8d4fdf63484d78b5c64cacc2c2e1165bc7b6a64b739d2a9db6a4dc8641d99cc9efb433cdd4dc3d3d6b00bfa6ce959694e4665e3255190339945c5f33b692b5d8 - languageName: node - linkType: hard - "esbuild-android-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-android-64@npm:0.14.54" @@ -12334,6 +14037,24 @@ __metadata: languageName: node linkType: hard +"esbuild-plugin-alias@npm:^0.2.1": + version: 0.2.1 + resolution: "esbuild-plugin-alias@npm:0.2.1" + checksum: afe2d2c8b5f09d5321cb8d9c0825e8a9f6e03c2d50df92f953a291d4620cc29eddb3da9e33b238f6d8f77738e0277bdcb831f127399449fecf78fb84c04e5da9 + languageName: node + linkType: hard + +"esbuild-register@npm:^3.5.0": + version: 3.5.0 + resolution: "esbuild-register@npm:3.5.0" + dependencies: + debug: ^4.3.4 + peerDependencies: + esbuild: ">=0.12 <1" + checksum: f4307753c9672a2c901d04a1165031594a854f0a4c6f4c1db08aa393b68a193d38f2df483dc8ca0513e89f7b8998415e7e26fb9830989fb8cdccc5fb5f181c6b + languageName: node + linkType: hard + "esbuild-sunos-64@npm:0.14.54": version: 0.14.54 resolution: "esbuild-sunos-64@npm:0.14.54" @@ -12388,51 +14109,131 @@ __metadata: esbuild-windows-64: 0.14.54 esbuild-windows-arm64: 0.14.54 dependenciesMeta: - "@esbuild/linux-loong64": + "@esbuild/linux-loong64": + optional: true + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: 49e360b1185c797f5ca3a7f5f0a75121494d97ddf691f65ed1796e6257d318f928342a97f559bb8eced6a90cf604dd22db4a30e0dbbf15edd9dbf22459b639af + languageName: node + linkType: hard + +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0": + version: 0.20.2 + resolution: "esbuild@npm:0.20.2" + dependencies: + "@esbuild/aix-ppc64": 0.20.2 + "@esbuild/android-arm": 0.20.2 + "@esbuild/android-arm64": 0.20.2 + "@esbuild/android-x64": 0.20.2 + "@esbuild/darwin-arm64": 0.20.2 + "@esbuild/darwin-x64": 0.20.2 + "@esbuild/freebsd-arm64": 0.20.2 + "@esbuild/freebsd-x64": 0.20.2 + "@esbuild/linux-arm": 0.20.2 + "@esbuild/linux-arm64": 0.20.2 + "@esbuild/linux-ia32": 0.20.2 + "@esbuild/linux-loong64": 0.20.2 + "@esbuild/linux-mips64el": 0.20.2 + "@esbuild/linux-ppc64": 0.20.2 + "@esbuild/linux-riscv64": 0.20.2 + "@esbuild/linux-s390x": 0.20.2 + "@esbuild/linux-x64": 0.20.2 + "@esbuild/netbsd-x64": 0.20.2 + "@esbuild/openbsd-x64": 0.20.2 + "@esbuild/sunos-x64": 0.20.2 + "@esbuild/win32-arm64": 0.20.2 + "@esbuild/win32-ia32": 0.20.2 + "@esbuild/win32-x64": 0.20.2 + dependenciesMeta: + "@esbuild/aix-ppc64": optional: true - esbuild-android-64: + "@esbuild/android-arm": optional: true - esbuild-android-arm64: + "@esbuild/android-arm64": optional: true - esbuild-darwin-64: + "@esbuild/android-x64": optional: true - esbuild-darwin-arm64: + "@esbuild/darwin-arm64": optional: true - esbuild-freebsd-64: + "@esbuild/darwin-x64": optional: true - esbuild-freebsd-arm64: + "@esbuild/freebsd-arm64": optional: true - esbuild-linux-32: + "@esbuild/freebsd-x64": optional: true - esbuild-linux-64: + "@esbuild/linux-arm": optional: true - esbuild-linux-arm: + "@esbuild/linux-arm64": optional: true - esbuild-linux-arm64: + "@esbuild/linux-ia32": optional: true - esbuild-linux-mips64le: + "@esbuild/linux-loong64": optional: true - esbuild-linux-ppc64le: + "@esbuild/linux-mips64el": optional: true - esbuild-linux-riscv64: + "@esbuild/linux-ppc64": optional: true - esbuild-linux-s390x: + "@esbuild/linux-riscv64": optional: true - esbuild-netbsd-64: + "@esbuild/linux-s390x": optional: true - esbuild-openbsd-64: + "@esbuild/linux-x64": optional: true - esbuild-sunos-64: + "@esbuild/netbsd-x64": optional: true - esbuild-windows-32: + "@esbuild/openbsd-x64": optional: true - esbuild-windows-64: + "@esbuild/sunos-x64": optional: true - esbuild-windows-arm64: + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": optional: true bin: esbuild: bin/esbuild - checksum: 49e360b1185c797f5ca3a7f5f0a75121494d97ddf691f65ed1796e6257d318f928342a97f559bb8eced6a90cf604dd22db4a30e0dbbf15edd9dbf22459b639af + checksum: bc88050fc1ca5c1bd03648f9979e514bdefb956a63aa3974373bb7b9cbac0b3aac9b9da1b5bdca0b3490e39d6b451c72815dbd6b7d7f978c91fbe9c9e9aa4e4c languageName: node linkType: hard @@ -12593,10 +14394,10 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 +"escalade@npm:^3.1.1, escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 languageName: node linkType: hard @@ -13321,16 +15122,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9": - version: 3.2.12 - resolution: "fast-glob@npm:3.2.12" +"fast-glob@npm:^3.0.3, fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard @@ -13457,6 +15258,13 @@ __metadata: languageName: node linkType: hard +"fetch-retry@npm:^5.0.2": + version: 5.0.6 + resolution: "fetch-retry@npm:5.0.6" + checksum: 4ad8bca6ec7a7b1212e636bb422a9ae8bb9dce38df0b441c9eb77a29af99b368029d6248ff69427da67e3d43c53808b121135ea395e7fe4f8f383e0ad65b4f27 + languageName: node + linkType: hard + "figures@npm:^5.0.0": version: 5.0.0 resolution: "figures@npm:5.0.0" @@ -13476,6 +15284,16 @@ __metadata: languageName: node linkType: hard +"file-system-cache@npm:2.3.0": + version: 2.3.0 + resolution: "file-system-cache@npm:2.3.0" + dependencies: + fs-extra: 11.1.1 + ramda: 0.29.0 + checksum: 74afa2870a062500643d41e02d1fbd47a3f30100f9e153dec5233d59f05545f4c8ada6085629d624e043479ac28c0cafc31824f7b49a3f997efab8cc5d05bfee + languageName: node + linkType: hard + "file-uri-to-path@npm:1.0.0": version: 1.0.0 resolution: "file-uri-to-path@npm:1.0.0" @@ -13526,6 +15344,28 @@ __metadata: languageName: node linkType: hard +"find-cache-dir@npm:^2.0.0": + version: 2.1.0 + resolution: "find-cache-dir@npm:2.1.0" + dependencies: + commondir: ^1.0.1 + make-dir: ^2.0.0 + pkg-dir: ^3.0.0 + checksum: 60ad475a6da9f257df4e81900f78986ab367d4f65d33cf802c5b91e969c28a8762f098693d7a571b6e4dd4c15166c2da32ae2d18b6766a18e2071079448fdce4 + languageName: node + linkType: hard + +"find-cache-dir@npm:^3.0.0": + version: 3.3.2 + resolution: "find-cache-dir@npm:3.3.2" + dependencies: + commondir: ^1.0.1 + make-dir: ^3.0.2 + pkg-dir: ^4.1.0 + checksum: 1e61c2e64f5c0b1c535bd85939ae73b0e5773142713273818cc0b393ee3555fb0fd44e1a5b161b8b6c3e03e98c2fcc9c227d784850a13a90a8ab576869576817 + languageName: node + linkType: hard + "find-root@npm:^1.1.0": version: 1.1.0 resolution: "find-root@npm:1.1.0" @@ -13620,12 +15460,19 @@ __metadata: languageName: node linkType: hard -"focus-lock@npm:^0.11.6": - version: 0.11.6 - resolution: "focus-lock@npm:0.11.6" +"flow-parser@npm:0.*": + version: 0.238.2 + resolution: "flow-parser@npm:0.238.2" + checksum: ff8cdcec5f91573478f017db3b33ad38f4f5b80c331bf07da6b10348e73a806fb66a4d5f57a4392514dc5f94df2c65ad1f0c4ed5a9383733d0d8478bd0a41b34 + languageName: node + linkType: hard + +"focus-lock@npm:^1.3.5": + version: 1.3.5 + resolution: "focus-lock@npm:1.3.5" dependencies: tslib: ^2.0.3 - checksum: 6a407c4c45f05f8258f92565541fc5f8043f576643a7603eb999e1a790173e08712056766ed034ccd31c6d6deed259dea558002712fa5ef2432fc6930b9c7a05 + checksum: 09fb0e4402694aabafa8f7d49a656f683bbf39c94efc0c0240934d880792ef86d8c11bb7d77ef6f5d68ccfdfb7f191ecc2b38a259182a6791bcf96860a408d1c languageName: node linkType: hard @@ -13796,7 +15643,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1": +"fs-extra@npm:11.1.1, fs-extra@npm:^11.1.0, fs-extra@npm:^11.1.1": version: 11.1.1 resolution: "fs-extra@npm:11.1.1" dependencies: @@ -13836,10 +15683,10 @@ __metadata: languageName: node linkType: hard -"fs-monkey@npm:^1.0.3": - version: 1.0.3 - resolution: "fs-monkey@npm:1.0.3" - checksum: cf50804833f9b88a476911ae911fe50f61a98d986df52f890bd97e7262796d023698cb2309fa9b74fdd8974f04315b648748a0a8ee059e7d5257b293bfc409c0 +"fs-monkey@npm:^1.0.4": + version: 1.0.6 + resolution: "fs-monkey@npm:1.0.6" + checksum: 4e9986acf197581b10b79d3e63e74252681ca215ef82d4afbd98dcfe86b3f09189ac1d7e8064bc433e4e53cdb5c14fdb38773277d41bba18b1ff8bbdcab01a3a languageName: node linkType: hard @@ -13978,7 +15825,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3": +"get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.4": version: 1.2.4 resolution: "get-intrinsic@npm:1.2.4" dependencies: @@ -14064,6 +15911,24 @@ __metadata: languageName: node linkType: hard +"giget@npm:^1.0.0": + version: 1.2.3 + resolution: "giget@npm:1.2.3" + dependencies: + citty: ^0.1.6 + consola: ^3.2.3 + defu: ^6.1.4 + node-fetch-native: ^1.6.3 + nypm: ^0.3.8 + ohash: ^1.1.3 + pathe: ^1.1.2 + tar: ^6.2.0 + bin: + giget: dist/cli.mjs + checksum: ec6e9126cb210377b952c090338dee5df0f58f724666318a14a505f1d2c961b91fd1b364b86a038b24a21a5ef44702c9d6841f8726b09aeb88a74720b6b682dd + languageName: node + linkType: hard + "git-hooks-list@npm:1.0.3": version: 1.0.3 resolution: "git-hooks-list@npm:1.0.3" @@ -14078,6 +15943,13 @@ __metadata: languageName: node linkType: hard +"github-slugger@npm:^2.0.0": + version: 2.0.0 + resolution: "github-slugger@npm:2.0.0" + checksum: 250375cde2058f21454872c2c79f72c4637340c30c51ff158ca4ec71cbc478f33d54477d787a662f9207aeb095a2060f155bc01f15329ba8a5fb6698e0fc81f8 + languageName: node + linkType: hard + "gl-matrix@npm:^3.4.3": version: 3.4.3 resolution: "gl-matrix@npm:3.4.3" @@ -14124,18 +15996,19 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.3.10 - resolution: "glob@npm:10.3.10" +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.2 + resolution: "glob@npm:10.4.2" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + checksum: bd7c0e30701136e936f414e5f6f82c7f04503f01df77408f177aa584927412f0bde0338e6ec541618cd21eacc57dde33e7b3c6c0a779cc1c6e6a0e14f3d15d9b languageName: node linkType: hard @@ -14263,6 +16136,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:^14.0.1": + version: 14.0.1 + resolution: "globby@npm:14.0.1" + dependencies: + "@sindresorhus/merge-streams": ^2.1.0 + fast-glob: ^3.3.2 + ignore: ^5.2.4 + path-type: ^5.0.0 + slash: ^5.1.0 + unicorn-magic: ^0.1.0 + checksum: 33568444289afb1135ad62d52d5e8412900cec620e3b6ece533afa46d004066f14b97052b643833d7cf4ee03e7fac571430130cde44c333df91a45d313105170 + languageName: node + linkType: hard + "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" @@ -14309,7 +16196,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -14323,6 +16210,22 @@ __metadata: languageName: node linkType: hard +"gunzip-maybe@npm:^1.4.2": + version: 1.4.2 + resolution: "gunzip-maybe@npm:1.4.2" + dependencies: + browserify-zlib: ^0.1.4 + is-deflate: ^1.0.0 + is-gzip: ^1.0.0 + peek-stream: ^1.1.0 + pumpify: ^1.3.3 + through2: ^2.0.3 + bin: + gunzip-maybe: bin.js + checksum: bc4d4977c24a2860238df271de75d53dd72a359d19f1248d1c613807dc221d3b8ae09624e3085c8106663e3e1b59db62a85b261d1138c2cc24efad9df577d4e1 + languageName: node + linkType: hard + "handle-thing@npm:^2.0.0": version: 2.0.1 resolution: "handle-thing@npm:2.0.1" @@ -14330,6 +16233,24 @@ __metadata: languageName: node linkType: hard +"handlebars@npm:^4.7.7": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: ^1.2.5 + neo-async: ^2.6.2 + source-map: ^0.6.1 + uglify-js: ^3.1.4 + wordwrap: ^1.0.0 + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 00e68bb5c183fd7b8b63322e6234b5ac8fbb960d712cb3f25587d559c2951d9642df83c04a1172c918c41bcfc81bfbd7a7718bbce93b893e0135fc99edea93ff + languageName: node + linkType: hard + "has-ansi@npm:^2.0.0": version: 2.0.0 resolution: "has-ansi@npm:2.0.0" @@ -14360,12 +16281,12 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" dependencies: - get-intrinsic: ^1.2.2 - checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 + es-define-property: ^1.0.0 + checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 languageName: node linkType: hard @@ -14438,6 +16359,33 @@ __metadata: languageName: node linkType: hard +"hast-util-heading-rank@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-heading-rank@npm:3.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: e5ce4ec9e8017b24ab72702fa0dd401ec6eaf32574120d71c2aa4e8e0f43829dba2e291f49d305a47e8d65b82a9c5adad7985385dc5bc8370f8cec7c8f9313d3 + languageName: node + linkType: hard + +"hast-util-is-element@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-is-element@npm:3.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 82569a420eda5877c52fdbbdbe26675f012c02d70813dfd19acffdee328e42e4bd0b7ae34454cfcbcb932b2bedbd7ddc119f943a0cfb234120f9456d6c0c4331 + languageName: node + linkType: hard + +"hast-util-to-string@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-to-string@npm:3.0.0" + dependencies: + "@types/hast": ^3.0.0 + checksum: 64f7f4f2b7a69b2ebddd1c87a29eae5f718d593d2154a46de2fa21f6ca8bfbda50ad71a5794f5952ae450f4da23a8bc811db348098b09916b9553cd933aefe9a + languageName: node + linkType: hard + "he@npm:1.2.0, he@npm:^1.2.0": version: 1.2.0 resolution: "he@npm:1.2.0" @@ -15012,6 +16960,13 @@ __metadata: languageName: node linkType: hard +"is-absolute-url@npm:^4.0.0": + version: 4.0.1 + resolution: "is-absolute-url@npm:4.0.1" + checksum: de172a718439982a54477fdae55f21be69ec0e6a4b205db5484975d2f4ee749851fd46c28f3790dfc51a274c2ed1d0f8457b6d1fff02ab829069fd9cc761e48c + languageName: node + linkType: hard + "is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" @@ -15113,6 +17068,13 @@ __metadata: languageName: node linkType: hard +"is-deflate@npm:^1.0.0": + version: 1.0.0 + resolution: "is-deflate@npm:1.0.0" + checksum: c2f9f2d3db79ac50c5586697d1e69a55282a2b0cc5e437b3c470dd47f24e40b6216dcd7e024511e21381607bf57afa019343e3bd0e08a119032818b596004262 + languageName: node + linkType: hard + "is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" @@ -15175,6 +17137,13 @@ __metadata: languageName: node linkType: hard +"is-gzip@npm:^1.0.0": + version: 1.0.0 + resolution: "is-gzip@npm:1.0.0" + checksum: 0d28931c1f445fa29c900cf9f48e06e9d1d477a3bf7bd7332e7ce68f1333ccd8cb381de2f0f62a9a262d9c0912608a9a71b4a40e788e201b3dbd67072bb20d86 + languageName: node + linkType: hard + "is-hex-prefixed@npm:1.0.0": version: 1.0.0 resolution: "is-hex-prefixed@npm:1.0.0" @@ -15210,7 +17179,7 @@ __metadata: languageName: node linkType: hard -"is-nan@npm:^1.2.1": +"is-nan@npm:^1.3.2": version: 1.3.2 resolution: "is-nan@npm:1.3.2" dependencies: @@ -15533,16 +17502,16 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" +"jackspeak@npm:^3.1.2": + version: 3.4.0 + resolution: "jackspeak@npm:3.4.0" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + checksum: 350f6f311018bb175ffbe736b19c26ac0b134bb5a17a638169e89594eb0c24ab1c658ab3a2fda24ff63b3b19292e1a5ec19d2255bc526df704e8168d392bef85 languageName: node linkType: hard @@ -16184,6 +18153,41 @@ __metadata: languageName: node linkType: hard +"jscodeshift@npm:^0.15.1": + version: 0.15.2 + resolution: "jscodeshift@npm:0.15.2" + dependencies: + "@babel/core": ^7.23.0 + "@babel/parser": ^7.23.0 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-modules-commonjs": ^7.23.0 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.11 + "@babel/plugin-transform-optional-chaining": ^7.23.0 + "@babel/plugin-transform-private-methods": ^7.22.5 + "@babel/preset-flow": ^7.22.15 + "@babel/preset-typescript": ^7.23.0 + "@babel/register": ^7.22.15 + babel-core: ^7.0.0-bridge.0 + chalk: ^4.1.2 + flow-parser: 0.* + graceful-fs: ^4.2.4 + micromatch: ^4.0.4 + neo-async: ^2.5.0 + node-dir: ^0.1.17 + recast: ^0.23.3 + temp: ^0.8.4 + write-file-atomic: ^2.3.0 + peerDependencies: + "@babel/preset-env": ^7.1.6 + peerDependenciesMeta: + "@babel/preset-env": + optional: true + bin: + jscodeshift: bin/jscodeshift.js + checksum: e3fa018bfd0ee5b65da1b98797a2536ae8ff0185f0c0d11f9be11e27e1f25ab33a4e17cecc8b73ef520e5d9d8dade98abc49bc0835c024a0f1ff14b48288528b + languageName: node + linkType: hard + "jsdoc-type-pratt-parser@npm:~3.1.0": version: 3.1.0 resolution: "jsdoc-type-pratt-parser@npm:3.1.0" @@ -16564,6 +18568,17 @@ __metadata: languageName: node linkType: hard +"lazy-universal-dotenv@npm:^4.0.0": + version: 4.0.0 + resolution: "lazy-universal-dotenv@npm:4.0.0" + dependencies: + app-root-dir: ^1.0.2 + dotenv: ^16.0.0 + dotenv-expand: ^10.0.0 + checksum: 196e0d701100144fbfe078d604a477573413ebf38dfe8d543748605e6a7074978508a3bb9f8135acd319db4fa947eef78836497163617d15a22163c59a00996b + languageName: node + linkType: hard + "lazystream@npm:^1.0.0": version: 1.0.1 resolution: "lazystream@npm:1.0.1" @@ -16938,10 +18953,10 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.1.0 - resolution: "lru-cache@npm:10.1.0" - checksum: 58056d33e2500fbedce92f8c542e7c11b50d7d086578f14b7074d8c241422004af0718e08a6eaae8705cee09c77e39a61c1c79e9370ba689b7010c152e6a76ab +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.2.2 + resolution: "lru-cache@npm:10.2.2" + checksum: 98e8fc93691c546f719a76103ef2bee5a3ac823955c755a47641ec41f8c7fafa1baeaba466937cc1cbfa9cfd47e03536d10e2db3158a64ad91ff3a58a32c893e languageName: node linkType: hard @@ -17022,15 +19037,25 @@ __metadata: linkType: hard "magic-string@npm:^0.30.0": - version: 0.30.3 - resolution: "magic-string@npm:0.30.3" + version: 0.30.10 + resolution: "magic-string@npm:0.30.10" dependencies: "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: a5a9ddf9bd3bf49a2de1048bf358464f1bda7b3cc1311550f4a0ba8f81a4070e25445d53a5ee28850161336f1bff3cf28aa3320c6b4aeff45ce3e689f300b2f3 + checksum: 456fd47c39b296c47dff967e1965121ace35417eab7f45a99e681e725b8661b48e1573c366ee67a27715025b3740773c46b088f115421c7365ea4ea6fa10d399 + languageName: node + linkType: hard + +"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": + version: 2.1.0 + resolution: "make-dir@npm:2.1.0" + dependencies: + pify: ^4.0.1 + semver: ^5.6.0 + checksum: 043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab languageName: node linkType: hard -"make-dir@npm:^3.0.0": +"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -17105,6 +19130,13 @@ __metadata: languageName: node linkType: hard +"map-or-similar@npm:^1.5.0": + version: 1.5.0 + resolution: "map-or-similar@npm:1.5.0" + checksum: f65c0d420e272d0fce4e24db35f6a08109218480bca1d61eaa442cbe6cf46270b840218d3b5e94e4bfcc2595f1d0a1fa5885df750b52aac9ab1d437b29dcce38 + languageName: node + linkType: hard + "map-stream@npm:~0.1.0": version: 0.1.0 resolution: "map-stream@npm:0.1.0" @@ -17112,6 +19144,15 @@ __metadata: languageName: node linkType: hard +"markdown-to-jsx@npm:7.3.2": + version: 7.3.2 + resolution: "markdown-to-jsx@npm:7.3.2" + peerDependencies: + react: ">= 0.14.0" + checksum: 8885c6343b71570b0a7ec16cd85a49b853a830234790ee7430e2517ea5d8d361ff138bd52147f650790f3e7b3a28a15c755fc16f8856dd01ddf09a6161782e06 + languageName: node + linkType: hard + "marked@npm:^12.0.1": version: 12.0.1 resolution: "marked@npm:12.0.1" @@ -17140,11 +19181,20 @@ __metadata: linkType: hard "memfs@npm:^3.4.13, memfs@npm:^3.4.3": - version: 3.5.1 - resolution: "memfs@npm:3.5.1" + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: ^1.0.4 + checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 + languageName: node + linkType: hard + +"memoizerific@npm:^1.11.3": + version: 1.11.3 + resolution: "memoizerific@npm:1.11.3" dependencies: - fs-monkey: ^1.0.3 - checksum: fcd037566a4bbb00d61dc991858395ccc06267ab5fe9471aeff28433f2a210bf5dd999e64e8b5473f8244f00dfb7ff3221b5c2fe41ff98af1439e5e2168fc410 + map-or-similar: ^1.5.0 + checksum: d51bdc3ed8c39b4b73845c90eb62d243ddf21899914352d0c303f5e1d477abcb192f4c605e008caa4a31d823225eeb22a99ba5ee825fb88d0c33382db3aee95a languageName: node linkType: hard @@ -17180,6 +19230,13 @@ __metadata: languageName: node linkType: hard +"mersenne-twister@npm:^1.1.0": + version: 1.1.0 + resolution: "mersenne-twister@npm:1.1.0" + checksum: 7de1940ded117f2aad9320ae4d21d647b0ecf0667abbadcfe6a2835c669feb674ef46cb7a72da7af69a56d8b19e50e95e2fb7ef6d780efab7a6acd4d87f4cb2d + languageName: node + linkType: hard + "methods@npm:~1.1.2": version: 1.1.2 resolution: "methods@npm:1.1.2" @@ -17308,7 +19365,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:3.1.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": +"minimatch@npm:3.1.2, minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: @@ -17344,12 +19401,12 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.0, minimatch@npm:^9.0.1": - version: 9.0.1 - resolution: "minimatch@npm:9.0.1" +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: 97f5f5284bb57dc65b9415dec7f17a0f6531a33572193991c60ff18450dcfad5c2dad24ffeaf60b5261dccd63aae58cc3306e2209d57e7f88c51295a532d8ec3 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard @@ -17362,7 +19419,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.1.0, minimist@npm:^1.1.1, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6": +"minimist@npm:^1.1.0, minimist@npm:^1.1.1, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -17460,10 +19517,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 languageName: node linkType: hard @@ -17521,6 +19578,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + languageName: node + linkType: hard + "mlly@npm:^1.2.0, mlly@npm:^1.4.0": version: 1.4.1 resolution: "mlly@npm:1.4.1" @@ -17722,12 +19788,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.1.31, nanoid@npm:^3.3.6": - version: 3.3.6 - resolution: "nanoid@npm:3.3.6" +"nanoid@npm:^3.1.31, nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" bin: nanoid: bin/nanoid.cjs - checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 + checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 languageName: node linkType: hard @@ -17759,7 +19825,7 @@ __metadata: languageName: node linkType: hard -"neo-async@npm:^2.6.2": +"neo-async@npm:^2.5.0, neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" checksum: deac9f8d00eda7b2e5cd1b2549e26e10a0faa70adaa6fdadca701cc55f49ee9018e427f424bac0c790b7c7e2d3068db97f3093f1093975f2acb8f8818b936ed9 @@ -17808,6 +19874,15 @@ __metadata: languageName: node linkType: hard +"node-dir@npm:^0.1.17": + version: 0.1.17 + resolution: "node-dir@npm:0.1.17" + dependencies: + minimatch: ^3.0.2 + checksum: 29de9560e52cdac8d3f794d38d782f6799e13d4d11aaf96d3da8c28458e1c5e33bb5f8edfb42dc34172ec5516c50c5b8850c9e1526542616757a969267263328 + languageName: node + linkType: hard + "node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" @@ -17815,7 +19890,14 @@ __metadata: languageName: node linkType: hard -"node-fetch@npm:^2.6.11, node-fetch@npm:^2.6.12": +"node-fetch-native@npm:^1.6.3": + version: 1.6.4 + resolution: "node-fetch-native@npm:1.6.4" + checksum: 7b159f610e037e8813750096a6616ec6771e9abf868aa6e75e5b790bfc2ba2d92cf2abcce33c18fd01f2e5e5cc72de09c78bd4381e7f8c0887f7de21bd96f045 + languageName: node + linkType: hard + +"node-fetch@npm:^2.0.0, node-fetch@npm:^2.6.11, node-fetch@npm:^2.6.12": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -17905,10 +19987,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 17ec8f315dba62710cae71a8dad3cd0288ba943d2ece43504b3b1aa8625bf138637798ab470b1d9035b0545996f63000a8a926e0f6d35d0996424f8b6d36dda3 +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 languageName: node linkType: hard @@ -17934,7 +20016,7 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2": +"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": version: 2.5.0 resolution: "normalize-package-data@npm:2.5.0" dependencies: @@ -18058,6 +20140,21 @@ __metadata: languageName: node linkType: hard +"nypm@npm:^0.3.8": + version: 0.3.8 + resolution: "nypm@npm:0.3.8" + dependencies: + citty: ^0.1.6 + consola: ^3.2.3 + execa: ^8.0.1 + pathe: ^1.1.2 + ufo: ^1.4.0 + bin: + nypm: dist/cli.mjs + checksum: 98a46c72511e2462a67fbd9c2cae412d1532606a9de82903e5a52005ee7b6513fe9d557ef58960f7735af4c069ddb8d92f606e9e83094f357eb5cb991d157717 + languageName: node + linkType: hard + "object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -18065,14 +20162,14 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.0, object-inspect@npm:^1.12.2, object-inspect@npm:^1.9.0": - version: 1.12.2 - resolution: "object-inspect@npm:1.12.2" - checksum: a534fc1b8534284ed71f25ce3a496013b7ea030f3d1b77118f6b7b1713829262be9e6243acbcb3ef8c626e2b64186112cb7f6db74e37b2789b9c789ca23048b2 +"object-inspect@npm:^1.12.0, object-inspect@npm:^1.12.2, object-inspect@npm:^1.13.1": + version: 1.13.2 + resolution: "object-inspect@npm:1.13.2" + checksum: 9f850b3c045db60e0e97746e809ee4090d6ce62195af17dd1e9438ac761394a7d8ec4f7906559aea5424eaf61e35d3e53feded2ccd5f62fcc7d9670d3c8eb353 languageName: node linkType: hard -"object-is@npm:^1.0.1, object-is@npm:^1.1.5": +"object-is@npm:^1.1.5": version: 1.1.5 resolution: "object-is@npm:1.1.5" dependencies: @@ -18151,6 +20248,13 @@ __metadata: languageName: node linkType: hard +"ohash@npm:^1.1.3": + version: 1.1.3 + resolution: "ohash@npm:1.1.3" + checksum: 44c7321cb950ce6e87d46584fd5cc8dd3dd15fcd4ade0ac2995d0497dc6b6b1ae9bd844c59af185d63923da5cfe9b37ae37a9dbd9ac455f3ad0cdfb5a73d5ef6 + languageName: node + linkType: hard + "on-finished@npm:2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" @@ -18203,7 +20307,7 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.0.9": +"open@npm:^8.0.4, open@npm:^8.0.9, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -18381,6 +20485,20 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea + languageName: node + linkType: hard + +"pako@npm:~0.2.0": + version: 0.2.9 + resolution: "pako@npm:0.2.9" + checksum: 055f9487cd57fbb78df84315873bbdd089ba286f3499daed47d2effdc6253e981f5db6898c23486de76d4a781559f890d643bd3a49f70f1b4a18019c98aa5125 + languageName: node + linkType: hard + "pako@npm:~1.0.5": version: 1.0.11 resolution: "pako@npm:1.0.11" @@ -18591,13 +20709,13 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.1": - version: 1.10.1 - resolution: "path-scurry@npm:1.10.1" +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" dependencies: - lru-cache: ^9.1.1 || ^10.0.0 + lru-cache: ^10.2.0 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard @@ -18633,10 +20751,17 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.0, pathe@npm:^1.1.1": - version: 1.1.1 - resolution: "pathe@npm:1.1.1" - checksum: 34ab3da2e5aa832ebc6a330ffe3f73d7ba8aec6e899b53b8ec4f4018de08e40742802deb12cf5add9c73b7bf719b62c0778246bd376ca62b0fb23e0dde44b759 +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 + languageName: node + linkType: hard + +"pathe@npm:^1.1.0, pathe@npm:^1.1.1, pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 languageName: node linkType: hard @@ -18662,6 +20787,17 @@ __metadata: languageName: node linkType: hard +"peek-stream@npm:^1.1.0": + version: 1.1.3 + resolution: "peek-stream@npm:1.1.3" + dependencies: + buffer-from: ^1.0.0 + duplexify: ^3.5.0 + through2: ^2.0.3 + checksum: a0e09d6d1a8a01158a3334f20d6b1cdd91747eba24eb06a1d742eefb620385593121a76d4378cc81f77cdce6a66df0575a41041b1189c510254aec91878afc99 + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -18669,14 +20805,14 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -18706,6 +20842,13 @@ __metadata: languageName: node linkType: hard +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 9c4e34278cb09987685fa5ef81499c82546c033713518f6441778fbec623fc708777fe8ac633097c72d88470d5963094076c7305cafc7ad340aae27cfacd856b + languageName: node + linkType: hard + "pinkie-promise@npm:^2.0.0": version: 2.0.1 resolution: "pinkie-promise@npm:2.0.1" @@ -18722,19 +20865,37 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.1, pirates@npm:^4.0.4": +"pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.6": version: 4.0.6 resolution: "pirates@npm:4.0.6" checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 languageName: node linkType: hard -"pkg-dir@npm:^4.2.0": +"pkg-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "pkg-dir@npm:3.0.0" + dependencies: + find-up: ^3.0.0 + checksum: 70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808 + languageName: node + linkType: hard + +"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + find-up: ^4.0.0 + checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + +"pkg-dir@npm:^5.0.0": + version: 5.0.0 + resolution: "pkg-dir@npm:5.0.0" + dependencies: + find-up: ^5.0.0 + checksum: b167bb8dac7bbf22b1d5e30ec223e6b064b84b63010c9d49384619a36734caf95ed23ad23d4f9bd975e8e8082b60a83395f43a89bb192df53a7c25a38ecb57d9 languageName: node linkType: hard @@ -18767,6 +20928,15 @@ __metadata: languageName: node linkType: hard +"polished@npm:^4.2.2": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": ^7.17.8 + checksum: a6f863c23f1d2f3f5cda3427b5885c9fb9e83b036d681e24820b143c7df40d2685bebb01c0939767120a28e1183671ae17c93db82ac30b3c20942180bb153bc7 + languageName: node + linkType: hard + "pony-cause@npm:^2.1.10, pony-cause@npm:^2.1.9": version: 2.1.10 resolution: "pony-cause@npm:2.1.10" @@ -18804,36 +20974,36 @@ __metadata: languageName: node linkType: hard -"postcss-modules-extract-imports@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-extract-imports@npm:3.0.0" +"postcss-modules-extract-imports@npm:^3.1.0": + version: 3.1.0 + resolution: "postcss-modules-extract-imports@npm:3.1.0" peerDependencies: postcss: ^8.1.0 - checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 + checksum: b9192e0f4fb3d19431558be6f8af7ca45fc92baaad9b2778d1732a5880cd25c3df2074ce5484ae491e224f0d21345ffc2d419bd51c25b019af76d7a7af88c17f languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^4.0.1": - version: 4.0.1 - resolution: "postcss-modules-local-by-default@npm:4.0.1" +"postcss-modules-local-by-default@npm:^4.0.5": + version: 4.0.5 + resolution: "postcss-modules-local-by-default@npm:4.0.5" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^6.0.2 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: 1a95eb8bc54a363a77dbd77a0a88f500e7937ecbed5903becef9362eace28de406e6fdf62640126c22964678370e87eb10481eea2703702772935b4515603bfd + checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 languageName: node linkType: hard -"postcss-modules-scope@npm:^3.0.0": - version: 3.0.0 - resolution: "postcss-modules-scope@npm:3.0.0" +"postcss-modules-scope@npm:^3.2.0": + version: 3.2.0 + resolution: "postcss-modules-scope@npm:3.2.0" dependencies: postcss-selector-parser: ^6.0.4 peerDependencies: postcss: ^8.1.0 - checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 + checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae languageName: node linkType: hard @@ -18865,14 +21035,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.4.21, postcss@npm:^8.4.27": - version: 8.4.31 - resolution: "postcss@npm:8.4.31" +"postcss@npm:^8.1.10, postcss@npm:^8.4.27, postcss@npm:^8.4.33": + version: 8.4.38 + resolution: "postcss@npm:8.4.38" dependencies: - nanoid: ^3.3.6 + nanoid: ^3.3.7 picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + source-map-js: ^1.2.0 + checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 languageName: node linkType: hard @@ -18905,6 +21075,15 @@ __metadata: languageName: node linkType: hard +"prettier-fallback@npm:prettier@^3, prettier@npm:^3.1.1": + version: 3.3.2 + resolution: "prettier@npm:3.3.2" + bin: + prettier: bin/prettier.cjs + checksum: 5557d8caed0b182f68123c2e1e370ef105251d1dd75800fadaece3d061daf96b1389141634febf776050f9d732c7ae8fd444ff0b4a61b20535e7610552f32c69 + languageName: node + linkType: hard + "prettier-linter-helpers@npm:^1.0.0": version: 1.0.0 resolution: "prettier-linter-helpers@npm:1.0.0" @@ -18966,6 +21145,13 @@ __metadata: languageName: node linkType: hard +"pretty-hrtime@npm:^1.0.3": + version: 1.0.3 + resolution: "pretty-hrtime@npm:1.0.3" + checksum: bae0e6832fe13c3de43d1a3d43df52bf6090499d74dc65a17f5552cb1a94f1f8019a23284ddf988c3c408a09678d743901e1d8f5b7a71bec31eeeac445bef371 + languageName: node + linkType: hard + "pretty-ms@npm:^7.0.0": version: 7.0.1 resolution: "pretty-ms@npm:7.0.1" @@ -19027,13 +21213,13 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1": - version: 2.4.1 - resolution: "prompts@npm:2.4.1" +"prompts@npm:^2.0.1, prompts@npm:^2.4.0": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" dependencies: kleur: ^3.0.3 sisteransi: ^1.0.5 - checksum: 05bf4865870665067b14fc54ced6c96e353f58f57658351e16bb8c12c017402582696fb42d97306b7c98efc0e2cc1ebf27ab573448d5a5da2ac18991cc9e4cad + checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d languageName: node linkType: hard @@ -19148,6 +21334,16 @@ __metadata: languageName: node linkType: hard +"pump@npm:^2.0.0": + version: 2.0.1 + resolution: "pump@npm:2.0.1" + dependencies: + end-of-stream: ^1.1.0 + once: ^1.3.1 + checksum: e9f26a17be00810bff37ad0171edb35f58b242487b0444f92fb7d78bc7d61442fa9b9c5bd93a43fd8fd8ddd3cc75f1221f5e04c790f42907e5baab7cf5e2b931 + languageName: node + linkType: hard + "pump@npm:^3.0.0": version: 3.0.0 resolution: "pump@npm:3.0.0" @@ -19158,6 +21354,17 @@ __metadata: languageName: node linkType: hard +"pumpify@npm:^1.3.3": + version: 1.5.1 + resolution: "pumpify@npm:1.5.1" + dependencies: + duplexify: ^3.6.0 + inherits: ^2.0.3 + pump: ^2.0.0 + checksum: 26ca412ec8d665bd0d5e185c1b8f627728eff603440d75d22a58e421e3c66eaf86ec6fc6a6efc54808ecef65979279fa8e99b109a23ec1fa8d79f37e6978c9bd + languageName: node + linkType: hard + "punycode@npm:2.1.0": version: 2.1.0 resolution: "punycode@npm:2.1.0" @@ -19214,12 +21421,12 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.11.0": - version: 6.11.2 - resolution: "qs@npm:6.11.2" +"qs@npm:^6.10.0, qs@npm:^6.11.2": + version: 6.12.1 + resolution: "qs@npm:6.12.1" dependencies: - side-channel: ^1.0.4 - checksum: e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b + side-channel: ^1.0.6 + checksum: aa761d99e65b6936ba2dd2187f2d9976afbcda38deb3ff1b3fe331d09b0c578ed79ca2abdde1271164b5be619c521ec7db9b34c23f49a074e5921372d16242d5 languageName: node linkType: hard @@ -19258,6 +21465,13 @@ __metadata: languageName: node linkType: hard +"ramda@npm:0.29.0": + version: 0.29.0 + resolution: "ramda@npm:0.29.0" + checksum: 9ab26c06eb7545cbb7eebcf75526d6ee2fcaae19e338f165b2bf32772121e7b28192d6664d1ba222ff76188ba26ab307342d66e805dbb02c860560adc4d5dd57 + languageName: node + linkType: hard + "randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -19355,6 +21569,16 @@ __metadata: languageName: node linkType: hard +"react-colorful@npm:^5.1.2": + version: 5.6.1 + resolution: "react-colorful@npm:5.6.1" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: e432b7cb0df57e8f0bcdc3b012d2e93fcbcb6092c9e0f85654788d5ebfc4442536d8cc35b2418061ba3c4afb8b7788cc101c606d86a1732407921de7a9244c8d + languageName: node + linkType: hard + "react-dnd-html5-backend@npm:^16.0.1": version: 16.0.1 resolution: "react-dnd-html5-backend@npm:16.0.1" @@ -19399,34 +21623,34 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:^18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" +"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react-dom@npm:^18.2.0": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - scheduler: ^0.23.0 + scheduler: ^0.23.2 peerDependencies: - react: ^18.2.0 - checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + react: ^18.3.1 + checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 languageName: node linkType: hard -"react-fast-compare@npm:3.2.1": - version: 3.2.1 - resolution: "react-fast-compare@npm:3.2.1" - checksum: 209b4dc3a9cc79c074a26ec020459efd8be279accaca612db2edb8ada2a28849ea51cf3d246fc0fafb344949b93a63a43798b6c1787559b0a128571883fe6859 +"react-fast-compare@npm:3.2.2": + version: 3.2.2 + resolution: "react-fast-compare@npm:3.2.2" + checksum: 2071415b4f76a3e6b55c84611c4d24dcb12ffc85811a2840b5a3f1ff2d1a99be1020d9437ee7c6e024c9f4cbb84ceb35e48cf84f28fcb00265ad2dfdd3947704 languageName: node linkType: hard -"react-focus-lock@npm:^2.9.2": - version: 2.9.4 - resolution: "react-focus-lock@npm:2.9.4" +"react-focus-lock@npm:^2.9.4": + version: 2.12.1 + resolution: "react-focus-lock@npm:2.12.1" dependencies: "@babel/runtime": ^7.0.0 - focus-lock: ^0.11.6 + focus-lock: ^1.3.5 prop-types: ^15.6.2 react-clientside-effect: ^1.2.6 - use-callback-ref: ^1.3.0 + use-callback-ref: ^1.3.2 use-sidecar: ^1.1.2 peerDependencies: "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -19434,7 +21658,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: f4c696bdbde5008560388622b994c00502d1faeeabff32b02964770c8c020208872f5f6b914b249a8bf3e97cc12e58bb0d227cd33460093654156b7b7f4c8d76 + checksum: f95c575a904a4ccf0c856c0fdbb8614dd99edd6bd124932a25c62285c6e5374586d762f5ba9ac3b1a1b865e93e6c32ca7dee273a0b336ad112becf91150391c6 languageName: node linkType: hard @@ -19527,9 +21751,9 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll-bar@npm:^2.3.4": - version: 2.3.4 - resolution: "react-remove-scroll-bar@npm:2.3.4" +"react-remove-scroll-bar@npm:^2.3.4, react-remove-scroll-bar@npm:^2.3.6": + version: 2.3.6 + resolution: "react-remove-scroll-bar@npm:2.3.6" dependencies: react-style-singleton: ^2.2.1 tslib: ^2.0.0 @@ -19539,13 +21763,13 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: b5ce5f2f98d65c97a3e975823ae4043a4ba2a3b63b5ba284b887e7853f051b5cd6afb74abde6d57b421931c52f2e1fdbb625dc858b1cb5a32c27c14ab85649d4 + checksum: e793fe110e2ea60d5724d0b60f09de1f6cd1b080df00df9e68bb9a1b985895830e703194647059fdc22402a67a89b7673a5260773b89bcd98031fd99bc91aefa languageName: node linkType: hard -"react-remove-scroll@npm:^2.5.5": - version: 2.5.6 - resolution: "react-remove-scroll@npm:2.5.6" +"react-remove-scroll@npm:2.5.7": + version: 2.5.7 + resolution: "react-remove-scroll@npm:2.5.7" dependencies: react-remove-scroll-bar: ^2.3.4 react-style-singleton: ^2.2.1 @@ -19558,7 +21782,26 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 0a31f822136f4d4cde0c34264b68dd3a0432d36e2ca5162cd2df0f205980debb9a5e107843120220a599275af02df7805f0d5f44e54f2bd8b0c39a7fdd304036 + checksum: e0dbb6856beaed2cff4996d9ca62d775686ff72e3e9de34043034d932223b588993b2fc7a18644750dd3d73eb19bd3f2cedb8d91f0e424c1ef8403010da24b1d + languageName: node + linkType: hard + +"react-remove-scroll@npm:^2.5.6": + version: 2.5.10 + resolution: "react-remove-scroll@npm:2.5.10" + dependencies: + react-remove-scroll-bar: ^2.3.6 + react-style-singleton: ^2.2.1 + tslib: ^2.1.0 + use-callback-ref: ^1.3.0 + use-sidecar: ^1.1.2 + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 2a926718b93e783732a2b369fec1349beaa187e8110ff6fa41940668a2826e59de1ee617dfc2bb5bbf5ad3a186d06b388baf56f9f0553fcac76cf9cec4b83eb0 languageName: node linkType: hard @@ -19630,12 +21873,12 @@ __metadata: languageName: node linkType: hard -"react@npm:^18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" +"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.2.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" dependencies: loose-envify: ^1.1.0 - checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 languageName: node linkType: hard @@ -19676,6 +21919,17 @@ __metadata: languageName: node linkType: hard +"read-pkg-up@npm:^7.0.1": + version: 7.0.1 + resolution: "read-pkg-up@npm:7.0.1" + dependencies: + find-up: ^4.1.0 + read-pkg: ^5.2.0 + type-fest: ^0.8.1 + checksum: e4e93ce70e5905b490ca8f883eb9e48b5d3cebc6cd4527c25a0d8f3ae2903bd4121c5ab9c5a3e217ada0141098eeb661313c86fa008524b089b8ed0b7f165e44 + languageName: node + linkType: hard + "read-pkg@npm:^1.0.0": version: 1.1.0 resolution: "read-pkg@npm:1.1.0" @@ -19687,6 +21941,18 @@ __metadata: languageName: node linkType: hard +"read-pkg@npm:^5.2.0": + version: 5.2.0 + resolution: "read-pkg@npm:5.2.0" + dependencies: + "@types/normalize-package-data": ^2.4.0 + normalize-package-data: ^2.5.0 + parse-json: ^5.0.0 + type-fest: ^0.6.0 + checksum: eb696e60528b29aebe10e499ba93f44991908c57d70f2d26f369e46b8b9afc208ef11b4ba64f67630f31df8b6872129e0a8933c8c53b7b4daf0eace536901222 + languageName: node + linkType: hard + "read-pkg@npm:^8.1.0": version: 8.1.0 resolution: "read-pkg@npm:8.1.0" @@ -19710,9 +21976,9 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" +"readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.1, readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.2.2, readable-stream@npm:~2.3.6": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" dependencies: core-util-is: ~1.0.0 inherits: ~2.0.3 @@ -19721,7 +21987,7 @@ __metadata: safe-buffer: ~5.1.1 string_decoder: ~1.1.1 util-deprecate: ~1.0.1 - checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 languageName: node linkType: hard @@ -19765,16 +22031,16 @@ __metadata: languageName: node linkType: hard -"recast@npm:^0.23.2": - version: 0.23.4 - resolution: "recast@npm:0.23.4" +"recast@npm:^0.23.2, recast@npm:^0.23.3, recast@npm:^0.23.5": + version: 0.23.9 + resolution: "recast@npm:0.23.9" dependencies: - assert: ^2.0.0 ast-types: ^0.16.1 esprima: ~4.0.0 source-map: ~0.6.1 + tiny-invariant: ^1.3.3 tslib: ^2.0.1 - checksum: edb63bbe0457e68c0f4892f55413000e92aa7c5c53f9e109ab975d1c801cd299a62511ea72734435791f4aea6f0edf560f6a275761f66b2b6069ff6d72686029 + checksum: be8e896a46b24e30fbeafcd111ff3beaf2b5532d241c199f833fe1c18e89f695b2704cf83f3006fa96a785851019031de0de50bd3e0fd7bb114be18bf2cad900 languageName: node linkType: hard @@ -19854,10 +22120,10 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.13.11": - version: 0.13.11 - resolution: "regenerator-runtime@npm:0.13.11" - checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 languageName: node linkType: hard @@ -19913,6 +22179,33 @@ __metadata: languageName: node linkType: hard +"rehype-external-links@npm:^3.0.0": + version: 3.0.0 + resolution: "rehype-external-links@npm:3.0.0" + dependencies: + "@types/hast": ^3.0.0 + "@ungap/structured-clone": ^1.0.0 + hast-util-is-element: ^3.0.0 + is-absolute-url: ^4.0.0 + space-separated-tokens: ^2.0.0 + unist-util-visit: ^5.0.0 + checksum: f776f306a2698a67b03665280fcc00448a5bf59b997d83fbb70fc3d71acff2c3025c70ee1840f48ca7dff209217ebe9adad085dc7caf9e5907badf8b104898b6 + languageName: node + linkType: hard + +"rehype-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "rehype-slug@npm:6.0.0" + dependencies: + "@types/hast": ^3.0.0 + github-slugger: ^2.0.0 + hast-util-heading-rank: ^3.0.0 + hast-util-to-string: ^3.0.0 + unist-util-visit: ^5.0.0 + checksum: 0e13ec558eb142d14a6daeab21bbef7c9230bfabec45987e15a24283650226eae3898ad162b8cb29ee39a8bce536bcc013eeab7dc6faa0295b0e91612a8c9f6e + languageName: node + linkType: hard + "relateurl@npm:^0.2.7": version: 0.2.7 resolution: "relateurl@npm:0.2.7" @@ -20161,6 +22454,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:~2.6.2": + version: 2.6.3 + resolution: "rimraf@npm:2.6.3" + dependencies: + glob: ^7.1.3 + bin: + rimraf: ./bin.js + checksum: 3ea587b981a19016297edb96d1ffe48af7e6af69660e3b371dbfc73722a73a0b0e9be5c88089fbeeb866c389c1098e07f64929c7414290504b855f54f901ab10 + languageName: node + linkType: hard + "ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -20418,12 +22722,12 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:^0.23.0": - version: 0.23.0 - resolution: "scheduler@npm:0.23.0" +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" dependencies: loose-envify: ^1.1.0 - checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 languageName: node linkType: hard @@ -20473,7 +22777,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5": +"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.6.0": version: 5.7.2 resolution: "semver@npm:5.7.2" bin: @@ -20609,17 +22913,17 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.0": - version: 1.2.1 - resolution: "set-function-length@npm:1.2.1" +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" dependencies: - define-data-property: ^1.1.2 + define-data-property: ^1.1.4 es-errors: ^1.3.0 function-bind: ^1.1.2 - get-intrinsic: ^1.2.3 + get-intrinsic: ^1.2.4 gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: 23742476d695f2eae86348c069bd164d4f25fa7c26546a46a2b5f370f1f84b98ec64366d2cd17785d5b41bbf16b95855da4b7eb188e7056fe3b0248d61f6afda + has-property-descriptors: ^1.0.2 + checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 languageName: node linkType: hard @@ -20726,14 +23030,15 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + call-bind: ^1.0.7 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.4 + object-inspect: ^1.13.1 + checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 languageName: node linkType: hard @@ -20815,6 +23120,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 70434b34c50eb21b741d37d455110258c42d2cf18c01e6518aeb7299f3c6e626330c889c0c552b5ca2ef54a8f5a74213ab48895f0640717cacefeef6830a1ba4 + languageName: node + linkType: hard + "slice-ansi@npm:^3.0.0": version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" @@ -20927,10 +23239,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c +"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 languageName: node linkType: hard @@ -20944,7 +23256,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.20": +"source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -20991,6 +23303,13 @@ __metadata: languageName: node linkType: hard +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + languageName: node + linkType: hard + "spdx-correct@npm:^3.0.0": version: 3.1.1 resolution: "spdx-correct@npm:3.1.1" @@ -21139,6 +23458,25 @@ __metadata: languageName: node linkType: hard +"store2@npm:^2.14.2": + version: 2.14.3 + resolution: "store2@npm:2.14.3" + checksum: 971a47aa479ff5491f89ee3fcbaf4ddafe0cfb55ac2f4cf4b4fc7b21d349fa3a761f79368d1573b9f65af08b3cf0f6973eed56a213b8bb4cb7e820ac048d1613 + languageName: node + linkType: hard + +"storybook@npm:^8.0.0": + version: 8.1.11 + resolution: "storybook@npm:8.1.11" + dependencies: + "@storybook/cli": 8.1.11 + bin: + sb: ./index.js + storybook: ./index.js + checksum: b3fdf0bd980759a347bb19e34f06a954f09250bbde2ae6411d77b3154973f177d231e1a870a8111dae67886e4eb2ca4c9b763356510f07574d7ad378c5de6e82 + languageName: node + linkType: hard + "stream-browserify@npm:^3.0.0": version: 3.0.0 resolution: "stream-browserify@npm:3.0.0" @@ -21389,7 +23727,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:3.1.1, strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -21411,11 +23749,11 @@ __metadata: linkType: hard "style-loader@npm:^3.3.2": - version: 3.3.3 - resolution: "style-loader@npm:3.3.3" + version: 3.3.4 + resolution: "style-loader@npm:3.3.4" peerDependencies: webpack: ^5.0.0 - checksum: f59c953f56f6a935bd6a1dfa409f1128fed2b66b48ce4a7a75b85862a7156e5e90ab163878962762f528ec4d510903d828da645e143fbffd26f055dc1c094078 + checksum: caac3f2fe2c3c89e49b7a2a9329e1cfa515ecf5f36b9c4885f9b218019fda207a9029939b2c35821dec177a264a007e7c391ccdd3ff7401881ce6287b9c8f38b languageName: node linkType: hard @@ -21526,12 +23864,14 @@ __metadata: linkType: hard "swc-loader@npm:^0.2.3": - version: 0.2.3 - resolution: "swc-loader@npm:0.2.3" + version: 0.2.6 + resolution: "swc-loader@npm:0.2.6" + dependencies: + "@swc/counter": ^0.1.3 peerDependencies: "@swc/core": ^1.2.147 webpack: ">=2" - checksum: 010d84d399525c0185d36d62c86c55ae017e7a90046bc8a39be4b7e07526924037868049f6037bc966da98151cb2600934b96a66279b742d3c413a718b427251 + checksum: fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb languageName: node linkType: hard @@ -21569,7 +23909,7 @@ __metadata: languageName: node linkType: hard -"tar-fs@npm:^2.0.0": +"tar-fs@npm:^2.0.0, tar-fs@npm:^2.1.1": version: 2.1.1 resolution: "tar-fs@npm:2.1.1" dependencies: @@ -21605,7 +23945,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": +"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -21629,15 +23969,52 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.7, terser-webpack-plugin@npm:^5.3.9": - version: 5.3.9 - resolution: "terser-webpack-plugin@npm:5.3.9" +"telejson@npm:^7.2.0": + version: 7.2.0 + resolution: "telejson@npm:7.2.0" + dependencies: + memoizerific: ^1.11.3 + checksum: 55a3380c9ff3c5ad84581bb6bda28fc33c6b7c4a0c466894637da687639b8db0d21b0ff4c1bc1a7a92ae6b70662549d09e7b9e8b1ec334b2ef93078762ecdfb9 + languageName: node + linkType: hard + +"temp-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "temp-dir@npm:3.0.0" + checksum: 577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b + languageName: node + linkType: hard + +"temp@npm:^0.8.4": + version: 0.8.4 + resolution: "temp@npm:0.8.4" + dependencies: + rimraf: ~2.6.2 + checksum: f35bed78565355dfdf95f730b7b489728bd6b7e35071bcc6497af7c827fb6c111fbe9063afc7b8cbc19522a072c278679f9a0ee81e684aa2c8617cc0f2e9c191 + languageName: node + linkType: hard + +"tempy@npm:^3.1.0": + version: 3.1.0 + resolution: "tempy@npm:3.1.0" + dependencies: + is-stream: ^3.0.0 + temp-dir: ^3.0.0 + type-fest: ^2.12.2 + unique-string: ^3.0.0 + checksum: c4ee8ce7700c6d0652f0828f15f7628e599e57f34352a7fe82abf8f1ebc36f10a5f83861b6c60cce55c321d8f7861d1fecbd9fb4c00de55bf460390bea42f7da + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.9": + version: 5.3.10 + resolution: "terser-webpack-plugin@npm:5.3.10" dependencies: - "@jridgewell/trace-mapping": ^0.3.17 + "@jridgewell/trace-mapping": ^0.3.20 jest-worker: ^27.4.5 schema-utils: ^3.1.1 serialize-javascript: ^6.0.1 - terser: ^5.16.8 + terser: ^5.26.0 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -21647,13 +24024,13 @@ __metadata: optional: true uglify-js: optional: true - checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f + checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.16.8, terser@npm:^5.17.4, terser@npm:^5.17.7": - version: 5.18.0 - resolution: "terser@npm:5.18.0" +"terser@npm:^5.10.0, terser@npm:^5.17.4, terser@npm:^5.17.7, terser@npm:^5.26.0": + version: 5.31.1 + resolution: "terser@npm:5.31.1" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -21661,7 +24038,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: d01eb9805a978b3338b68fd2d9e35c1cd4cad78ea093dc92c7b3c38965232f0af0f95e0c6d90920ecf600a74135c608aebae26302c036c01393a590e1918bb90 + checksum: 6ab57e62e9cd690dc99b3d0ee2e07289cd3408109a950c7118bf39e32851a5bf08b67fe19e0ac43a5a98813792ac78101bf25e5aa524f05ae8bb4e0131d0feef languageName: node linkType: hard @@ -21710,7 +24087,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.0": +"through2@npm:^2.0.0, through2@npm:^2.0.3": version: 2.0.5 resolution: "through2@npm:2.0.5" dependencies: @@ -21752,10 +24129,10 @@ __metadata: languageName: node linkType: hard -"tiny-invariant@npm:^1.0.6": - version: 1.3.1 - resolution: "tiny-invariant@npm:1.3.1" - checksum: 872dbd1ff20a21303a2fd20ce3a15602cfa7fcf9b228bd694a52e2938224313b5385a1078cb667ed7375d1612194feaca81c4ecbe93121ca1baebe344de4f84c +"tiny-invariant@npm:^1.0.6, tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3": + version: 1.3.3 + resolution: "tiny-invariant@npm:1.3.3" + checksum: 5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe languageName: node linkType: hard @@ -21798,6 +24175,13 @@ __metadata: languageName: node linkType: hard +"tocbot@npm:^4.20.1": + version: 4.28.2 + resolution: "tocbot@npm:4.28.2" + checksum: 19754bf787090117680ded8f815ac57a167dd0706a976522341e47777dec3f91c44cb5dc29bc119f0884388638941f2dc31b99c93268721e332db10a3fdfbf91 + languageName: node + linkType: hard + "toggle-selection@npm:^1.0.6": version: 1.0.6 resolution: "toggle-selection@npm:1.0.6" @@ -21865,6 +24249,13 @@ __metadata: languageName: node linkType: hard +"ts-dedent@npm:^2.0.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af + languageName: node + linkType: hard + "ts-interface-checker@npm:^0.1.9": version: 0.1.13 resolution: "ts-interface-checker@npm:0.1.13" @@ -21905,6 +24296,16 @@ __metadata: languageName: node linkType: hard +"ts-morph@npm:^23.0.0": + version: 23.0.0 + resolution: "ts-morph@npm:23.0.0" + dependencies: + "@ts-morph/common": ~0.24.0 + code-block-writer: ^13.0.1 + checksum: 3282eb0f8bd4577770874736c3259b97501da9a86137160b5d68f106b7848ea7b1fbccf9e198a3d930ec40c993e9951d4bfae31e2562dac8f3de0d7bb0e23615 + languageName: node + linkType: hard + "ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" @@ -22016,7 +24417,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.8.1": +"tslib@npm:^1.13.0, tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd @@ -22186,7 +24587,28 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^2.12.2": +"type-fest@npm:^0.6.0": + version: 0.6.0 + resolution: "type-fest@npm:0.6.0" + checksum: b2188e6e4b21557f6e92960ec496d28a51d68658018cba8b597bd3ef757721d1db309f120ae987abeeda874511d14b776157ff809f23c6d1ce8f83b9b2b7d60f + languageName: node + linkType: hard + +"type-fest@npm:^0.8.1": + version: 0.8.1 + resolution: "type-fest@npm:0.8.1" + checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 + languageName: node + linkType: hard + +"type-fest@npm:^1.0.1": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: b011c3388665b097ae6a109a437a04d6f61d81b7357f74cbcb02246f2f5bd72b888ae33631b99871388122ba0a87f4ff1c94078e7119ff22c70e52c0ff828201 + languageName: node + linkType: hard + +"type-fest@npm:^2.12.2, type-fest@npm:^2.19.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 @@ -22262,10 +24684,19 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.3.0": - version: 1.3.0 - resolution: "ufo@npm:1.3.0" - checksum: 01f0be86cd5c205ad1b49ebea985e000a4542c503ee75398302b0f5e4b9a6d9cd8e77af2dc614ab7bea08805fdfd9a85191fb3b5ee3df383cb936cf65e9db30d +"ufo@npm:^1.3.0, ufo@npm:^1.4.0": + version: 1.5.3 + resolution: "ufo@npm:1.5.3" + checksum: 2f54fa543b2e689cc4ab341fe2194937afe37c5ee43cd782e6ecc184e36859e84d4197a43ae4cd6e9a56f793ca7c5b950dfff3f16fadaeef9b6b88b05c88c8ef + languageName: node + linkType: hard + +"uglify-js@npm:^3.1.4": + version: 3.18.0 + resolution: "uglify-js@npm:3.18.0" + bin: + uglifyjs: bin/uglifyjs + checksum: 887733d05d4139a94dffd04a5f07ee7d8be70201c016ea48cb82703778b5c48fadbe6e5e7ac956425522f72e657d3eade23f06ae8a0e2eeed2d684bf6cc25e36 languageName: node linkType: hard @@ -22338,6 +24769,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -22369,6 +24807,13 @@ __metadata: languageName: node linkType: hard +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 + languageName: node + linkType: hard + "unique-filename@npm:^1.1.1": version: 1.1.1 resolution: "unique-filename@npm:1.1.1" @@ -22405,6 +24850,45 @@ __metadata: languageName: node linkType: hard +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" + dependencies: + crypto-random-string: ^4.0.0 + checksum: 1a1e2e7d02eab1bb10f720475da735e1990c8a5ff34edd1a3b6bc31590cb4210b7a1233d779360cc622ce11c211e43afa1628dd658f35d3e6a89964b622940df + languageName: node + linkType: hard + +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": ^3.0.0 + checksum: f630a925126594af9993b091cf807b86811371e465b5049a6283e08537d3e6ba0f7e248e1e7dab52cfe33f9002606acef093441137181b327f6fe504884b20e2 + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": ^3.0.0 + unist-util-is: ^6.0.0 + checksum: 08927647c579f63b91aafcbec9966dc4a7d0af1e5e26fc69f4e3e6a01215084835a2321b06f3cbe7bf7914a852830fc1439f0fc3d7153d8804ac3ef851ddfa20 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": ^3.0.0 + unist-util-is: ^6.0.0 + unist-util-visit-parents: ^6.0.0 + checksum: 9ec42e618e7e5d0202f3c191cd30791b51641285732767ee2e6bcd035931032e3c1b29093f4d7fd0c79175bbc1f26f24f26ee49770d32be76f8730a652a857e6 + languageName: node + linkType: hard + "universalify@npm:^0.1.0": version: 0.1.2 resolution: "universalify@npm:0.1.2" @@ -22433,6 +24917,25 @@ __metadata: languageName: node linkType: hard +"unplugin@npm:^1.3.1": + version: 1.10.1 + resolution: "unplugin@npm:1.10.1" + dependencies: + acorn: ^8.11.3 + chokidar: ^3.6.0 + webpack-sources: ^3.2.3 + webpack-virtual-modules: ^0.6.1 + checksum: cc9b0814a30775e8ac6555ace396562fbafca2c5dbf51cdaf6c008a3ae14080ce0434695525c3dc13ddfc468b539e936815fed15f8e818a573b0af3b0462457d + languageName: node + linkType: hard + +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + "unzipper@npm:^0.10.14": version: 0.10.14 resolution: "unzipper@npm:0.10.14" @@ -22451,17 +24954,17 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.13": - version: 1.0.13 - resolution: "update-browserslist-db@npm:1.0.13" +"update-browserslist-db@npm:^1.0.16": + version: 1.0.16 + resolution: "update-browserslist-db@npm:1.0.16" dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 + escalade: ^3.1.2 + picocolors: ^1.0.1 peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + checksum: 51b1f7189c9ea5925c80154b0a6fd3ec36106d07858d8f69826427d8edb4735d1801512c69eade38ba0814d7407d11f400d74440bbf3da0309f3d788017f35b2 languageName: node linkType: hard @@ -22492,18 +24995,18 @@ __metadata: linkType: hard "url@npm:^0.11.1, url@npm:~0.11.0": - version: 0.11.1 - resolution: "url@npm:0.11.1" + version: 0.11.3 + resolution: "url@npm:0.11.3" dependencies: punycode: ^1.4.1 - qs: ^6.11.0 - checksum: a7de4b37bbcbe60ef199acda4ce437ef843c0ef3a4b34ec3e3d97e0446a5f50dc7bfeafbe33ad118cf4e5aa04805e1328f0d0126e254f2b77bb8498fa395c596 + qs: ^6.11.2 + checksum: f9e7886f46a16f96d2e42fbcc5d682c231c55ef5442c1ff66150c0f6556f6e3a97d094a84f51be15ec2432711d212eb60426659ce418f5fcadeaa3f601532c4e languageName: node linkType: hard -"use-callback-ref@npm:^1.3.0": - version: 1.3.0 - resolution: "use-callback-ref@npm:1.3.0" +"use-callback-ref@npm:^1.3.0, use-callback-ref@npm:^1.3.2": + version: 1.3.2 + resolution: "use-callback-ref@npm:1.3.2" dependencies: tslib: ^2.0.0 peerDependencies: @@ -22512,7 +25015,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 7913df383a5a6fcb399212eedefaac2e0c6f843555202d4e3010bac3848afe38ecaa3d0d6500ad1d936fbeffd637e6c517e68edb024af5e6beca7f27f3ce7b21 + checksum: df690f2032d56aabcea0400313a04621429f45bceb4d65d38829b3680cae3856470ce72958cb7224b332189d8faef54662a283c0867dd7c769f9a5beff61787d languageName: node linkType: hard @@ -22564,7 +25067,7 @@ __metadata: languageName: node linkType: hard -"util@npm:^0.12.0, util@npm:^0.12.5, util@npm:~0.12.0": +"util@npm:^0.12.4, util@npm:^0.12.5, util@npm:~0.12.0": version: 0.12.5 resolution: "util@npm:0.12.5" dependencies: @@ -22786,13 +25289,13 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.4.0": - version: 2.4.0 - resolution: "watchpack@npm:2.4.0" +"watchpack@npm:^2.2.0, watchpack@npm:^2.4.1": + version: 2.4.1 + resolution: "watchpack@npm:2.4.1" dependencies: glob-to-regexp: ^0.4.1 graceful-fs: ^4.1.2 - checksum: 23d4bc58634dbe13b86093e01c6a68d8096028b664ab7139d58f0c37d962d549a940e98f2f201cecdabd6f9c340338dc73ef8bf094a2249ef582f35183d1a131 + checksum: 5b0179348655dcdf19cac7cb4ff923fdc024d630650c0bf6bec8899cf47c60e19d4f810a88dba692ed0e7f684cf0fcffea86efdbf6c35d81f031e328043b7fab languageName: node linkType: hard @@ -23044,12 +25547,13 @@ __metadata: linkType: hard "webpack-merge@npm:^5.7.3, webpack-merge@npm:^5.9.0": - version: 5.9.0 - resolution: "webpack-merge@npm:5.9.0" + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" dependencies: clone-deep: ^4.0.1 + flat: ^5.0.2 wildcard: ^2.0.0 - checksum: 64fe2c23aacc5f19684452a0e84ec02c46b990423aee6fcc5c18d7d471155bd14e9a6adb02bd3656eb3e0ac2532c8e97d69412ad14c97eeafe32fa6d10050872 + checksum: 1fe8bf5309add7298e1ac72fb3f2090e1dfa80c48c7e79fa48aa60b5961332c7d0d61efa8851acb805e6b91a4584537a347bc106e05e9aec87fa4f7088c62f2f languageName: node linkType: hard @@ -23060,40 +25564,47 @@ __metadata: languageName: node linkType: hard +"webpack-virtual-modules@npm:^0.6.1": + version: 0.6.2 + resolution: "webpack-virtual-modules@npm:0.6.2" + checksum: 7e8e1d63f35864c815420cc2f27da8561a1e028255040698a352717de0ba46d3b3faf16f06c1a1965217054c4c2894eb9af53a85451870e919b5707ce9c5822d + languageName: node + linkType: hard + "webpack@npm:^5.88.0": - version: 5.88.0 - resolution: "webpack@npm:5.88.0" + version: 5.92.1 + resolution: "webpack@npm:5.92.1" dependencies: "@types/eslint-scope": ^3.7.3 - "@types/estree": ^1.0.0 - "@webassemblyjs/ast": ^1.11.5 - "@webassemblyjs/wasm-edit": ^1.11.5 - "@webassemblyjs/wasm-parser": ^1.11.5 + "@types/estree": ^1.0.5 + "@webassemblyjs/ast": ^1.12.1 + "@webassemblyjs/wasm-edit": ^1.12.1 + "@webassemblyjs/wasm-parser": ^1.12.1 acorn: ^8.7.1 - acorn-import-assertions: ^1.9.0 - browserslist: ^4.14.5 + acorn-import-attributes: ^1.9.5 + browserslist: ^4.21.10 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.15.0 + enhanced-resolve: ^5.17.0 es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.9 + graceful-fs: ^4.2.11 json-parse-even-better-errors: ^2.3.1 loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.3.7 - watchpack: ^2.4.0 + terser-webpack-plugin: ^5.3.10 + watchpack: ^2.4.1 webpack-sources: ^3.2.3 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 9fd1568b34ec2e99ba97c8509a15ab2576ec80c396e7015551ec814b24cfc11de173acba3e114dafe95f1a6d460781b09d6201e6a1fb15110e1d01a09f61a283 + checksum: 11bec781260c4180883e98a4a15a08df297aca654ded45e70598f688881dd722f992d680addafe6f6342debede345cddcce2b781c50f5cde29d6c0bc33a82452 languageName: node linkType: hard @@ -23268,6 +25779,13 @@ __metadata: languageName: node linkType: hard +"wordwrap@npm:^1.0.0": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 2a44b2788165d0a3de71fd517d4880a8e20ea3a82c080ce46e294f0b68b69a2e49cff5f99c600e275c698a90d12c5ea32aff06c311f0db2eb3f1201f3e7b2a04 + languageName: node + linkType: hard + "workerpool@npm:6.2.1": version: 6.2.1 resolution: "workerpool@npm:6.2.1" @@ -23315,6 +25833,17 @@ __metadata: languageName: node linkType: hard +"write-file-atomic@npm:^2.3.0": + version: 2.4.3 + resolution: "write-file-atomic@npm:2.4.3" + dependencies: + graceful-fs: ^4.1.11 + imurmurhash: ^0.1.4 + signal-exit: ^3.0.2 + checksum: 2db81f92ae974fd87ab4a5e7932feacaca626679a7c98fcc73ad8fcea5a1950eab32fa831f79e9391ac99b562ca091ad49be37a79045bd65f595efbb8f4596ae + languageName: node + linkType: hard + "write-file-atomic@npm:^4.0.2": version: 4.0.2 resolution: "write-file-atomic@npm:4.0.2" @@ -23335,7 +25864,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:8.13.0, ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.8.0": +"ws@npm:8.13.0": version: 8.13.0 resolution: "ws@npm:8.13.0" peerDependencies: @@ -23365,6 +25894,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3, ws@npm:^8.8.0": + version: 8.17.1 + resolution: "ws@npm:8.17.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 442badcce1f1178ec87a0b5372ae2e9771e07c4929a3180321901f226127f252441e8689d765aa5cfba5f50ac60dd830954afc5aeae81609aefa11d3ddf5cecf + languageName: node + linkType: hard + "xml-name-validator@npm:^4.0.0": version: 4.0.0 resolution: "xml-name-validator@npm:4.0.0" From 8280cd353e335dbe5a220e6365ea6571392c7dd0 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 2 Jul 2024 16:29:45 +0200 Subject: [PATCH 02/26] Publish Storybook for PRs --- .github/workflows/main.yml | 14 ++++++++++++++ .github/workflows/publish-storybook.yml | 19 +++++++++++++++++++ .gitignore | 3 +++ packages/snaps-sdk/package.json | 1 + 4 files changed, 37 insertions(+) create mode 100644 .github/workflows/publish-storybook.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6f0f670b58..60b121efd7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,6 +27,20 @@ jobs: secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + publish-storybook-pr: + name: Publish Storybook to `pr/${{ github.event.number }}` folder + needs: lint-build-test + if: ${{ github.event_name == 'pull_request' }} + permissions: + contents: write + uses: ./.github/workflows/publish-github-pages.yml + with: + build_script: yarn workspace @metamask/snaps-sdk build && yarn workspace @metamask/snaps-storybook build && yarn workspace @metamask/snaps-sdk build:storybook + publish_dir: ./packages/snaps-sdk/storybook-static + destination_dir: storybook/pr/${{ github.event.number }} + secrets: + PUBLISH_PAGES_TOKEN: ${{ secrets.PUBLISH_PAGES_TOKEN }} + publish-staging-simulator: name: Publish Snaps Simulator to `staging` folder needs: lint-build-test diff --git a/.github/workflows/publish-storybook.yml b/.github/workflows/publish-storybook.yml new file mode 100644 index 0000000000..043f32d70f --- /dev/null +++ b/.github/workflows/publish-storybook.yml @@ -0,0 +1,19 @@ +on: + workflow_call: + secrets: + PUBLISH_PAGES_TOKEN: + required: true + +jobs: + publish-storybook-pr: + name: Publish Storybook to `pr` folder + needs: lint-build-test + permissions: + contents: write + uses: ./.github/workflows/publish-github-pages.yml + with: + build_script: yarn workspace @metamask/snaps-simulator build + publish_dir: ./packages/snaps-simulator/dist/webpack/main + destination_dir: snaps-simulator/staging + secrets: + PUBLISH_PAGES_TOKEN: ${{ secrets.PUBLISH_PAGES_TOKEN }} diff --git a/.gitignore b/.gitignore index a55eda1e97..a749f98688 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,6 @@ packages/examples/examples/webpack/index.html # Ubuntu package files .deb + +# Storybook +storybook-static diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index 616faa5da7..39448540cf 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -52,6 +52,7 @@ "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", "lint:changelog": "../../scripts/validate-changelog.sh @metamask/snaps-sdk", "build": "tsup --clean && yarn build:types", + "build:storybook": "storybook build", "build:types": "tsc --project tsconfig.build.json", "clean": "rimraf '*.tsbuildinfo' 'dist'", "publish:preview": "yarn npm publish --tag preview", From 3631f81181250c048b5764f1b3c6ca9f2a388722 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 2 Jul 2024 16:34:04 +0200 Subject: [PATCH 03/26] Remove unnecessary workflow file --- .github/workflows/publish-storybook.yml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .github/workflows/publish-storybook.yml diff --git a/.github/workflows/publish-storybook.yml b/.github/workflows/publish-storybook.yml deleted file mode 100644 index 043f32d70f..0000000000 --- a/.github/workflows/publish-storybook.yml +++ /dev/null @@ -1,19 +0,0 @@ -on: - workflow_call: - secrets: - PUBLISH_PAGES_TOKEN: - required: true - -jobs: - publish-storybook-pr: - name: Publish Storybook to `pr` folder - needs: lint-build-test - permissions: - contents: write - uses: ./.github/workflows/publish-github-pages.yml - with: - build_script: yarn workspace @metamask/snaps-simulator build - publish_dir: ./packages/snaps-simulator/dist/webpack/main - destination_dir: snaps-simulator/staging - secrets: - PUBLISH_PAGES_TOKEN: ${{ secrets.PUBLISH_PAGES_TOKEN }} From 652cb80e1c549d8f1f7de40b381bb8ece5142eeb Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 2 Jul 2024 16:43:12 +0200 Subject: [PATCH 04/26] Temporarily remove needs --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 60b121efd7..ce6200e9b7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -29,7 +29,7 @@ jobs: publish-storybook-pr: name: Publish Storybook to `pr/${{ github.event.number }}` folder - needs: lint-build-test + # needs: lint-build-test if: ${{ github.event_name == 'pull_request' }} permissions: contents: write From da3d7ed56a50d7367794c57d0fdf187b0259a59f Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 2 Jul 2024 17:44:20 +0200 Subject: [PATCH 05/26] Fix Node.js polyfills in production --- packages/snaps-sdk/.storybook/preview.ts | 2 +- packages/snaps-sdk/package.json | 4 +- packages/snaps-storybook/package.json | 6 +- packages/snaps-storybook/src/preset.ts | 27 +++--- packages/snaps-storybook/tsconfig.build.json | 2 +- yarn.lock | 93 +++++++++++++++++--- 6 files changed, 99 insertions(+), 35 deletions(-) diff --git a/packages/snaps-sdk/.storybook/preview.ts b/packages/snaps-sdk/.storybook/preview.ts index a3d9ef4164..c8c7589ead 100644 --- a/packages/snaps-sdk/.storybook/preview.ts +++ b/packages/snaps-sdk/.storybook/preview.ts @@ -1,4 +1,4 @@ -import type { Preview, SnapsRenderer } from '@metamask/snaps-storybook'; +import type { Preview } from '@metamask/snaps-storybook'; const preview: Preview = { tags: ['autodocs'], diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index 39448540cf..7ffddd2aea 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -52,7 +52,7 @@ "lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write", "lint:changelog": "../../scripts/validate-changelog.sh @metamask/snaps-sdk", "build": "tsup --clean && yarn build:types", - "build:storybook": "storybook build", + "build:storybook": "storybook build --quiet", "build:types": "tsc --project tsconfig.build.json", "clean": "rimraf '*.tsbuildinfo' 'dist'", "publish:preview": "yarn npm publish --tag preview", @@ -98,7 +98,7 @@ "prettier": "^2.7.1", "prettier-plugin-packagejson": "^2.2.11", "rimraf": "^4.1.2", - "storybook": "^8.0.0", + "storybook": "^8.1.11", "ts-jest": "^29.1.1", "tsup": "^8.0.1", "typescript": "~4.8.4" diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index f90d8a032b..d17bf325b9 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -24,7 +24,8 @@ "module": "./dist/index.mjs", "types": "./dist/types/index.d.ts", "files": [ - "dist" + "dist", + "preset.js" ], "scripts": { "clean": "rimraf '*.tsbuildinfo' 'dist'", @@ -50,8 +51,6 @@ "@chakra-ui/react": "^2.6.1", "@emotion/react": "^11.10.8", "@emotion/styled": "^11.10.8", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", "@metamask/design-tokens": "^4.0.0", "@metamask/jazzicon": "^2.0.0", "@metamask/snaps-sdk": "workspace:^", @@ -70,6 +69,7 @@ "react-dom": "^18.2.0", "swc-loader": "^0.2.3", "ts-morph": "^23.0.0", + "vite-plugin-node-polyfills": "^0.22.0", "webpack-merge": "^5.9.0" }, "devDependencies": { diff --git a/packages/snaps-storybook/src/preset.ts b/packages/snaps-storybook/src/preset.ts index 857e0280b0..92fadf5305 100644 --- a/packages/snaps-storybook/src/preset.ts +++ b/packages/snaps-storybook/src/preset.ts @@ -1,8 +1,8 @@ -import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; -import { NodeModulesPolyfillPlugin } from '@esbuild-plugins/node-modules-polyfill'; import type { ViteFinal } from '@storybook/builder-vite'; import type { PresetProperty } from '@storybook/types'; import { resolve, dirname, join } from 'path'; +import type { PluginOption } from 'vite'; +import { nodePolyfills } from 'vite-plugin-node-polyfills'; /** * Get the absolute path of a file in an Node.js package. @@ -137,19 +137,14 @@ export const previewHead: PresetProperty<'previewHead'> = (head = '') => ` export const viteFinal: ViteFinal = (config) => { return { ...config, - optimizeDeps: { - ...config.optimizeDeps, - esbuildOptions: { - ...config.optimizeDeps?.esbuildOptions, - plugins: [ - ...(config.optimizeDeps?.esbuildOptions?.plugins ?? []), - NodeGlobalsPolyfillPlugin({ - buffer: true, - process: true, - }), - NodeModulesPolyfillPlugin(), - ], - }, - }, + plugins: [ + ...(config.plugins as PluginOption[]), + nodePolyfills({ + globals: { + Buffer: true, + process: true, + }, + }), + ], }; }; diff --git a/packages/snaps-storybook/tsconfig.build.json b/packages/snaps-storybook/tsconfig.build.json index 6103aa6dfa..b7032803d0 100644 --- a/packages/snaps-storybook/tsconfig.build.json +++ b/packages/snaps-storybook/tsconfig.build.json @@ -4,7 +4,7 @@ "jsx": "react-jsx", "baseUrl": "./", "outDir": "./dist/types", - "rootDir": "./", + "rootDir": "./src", "skipLibCheck": true, "resolveJsonModule": true }, diff --git a/yarn.lock b/yarn.lock index aebfaa0cce..3ada9642b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6311,7 +6311,7 @@ __metadata: prettier: ^2.7.1 prettier-plugin-packagejson: ^2.2.11 rimraf: ^4.1.2 - storybook: ^8.0.0 + storybook: ^8.1.11 superstruct: ^1.0.3 ts-jest: ^29.1.1 tsup: ^8.0.1 @@ -6442,8 +6442,6 @@ __metadata: "@chakra-ui/react": ^2.6.1 "@emotion/react": ^11.10.8 "@emotion/styled": ^11.10.8 - "@esbuild-plugins/node-globals-polyfill": ^0.2.3 - "@esbuild-plugins/node-modules-polyfill": ^0.2.2 "@metamask/auto-changelog": ^3.4.4 "@metamask/design-tokens": ^4.0.0 "@metamask/eslint-config": ^12.1.0 @@ -6484,6 +6482,7 @@ __metadata: ts-morph: ^23.0.0 tsup: ^8.0.1 typescript: ~4.8.4 + vite-plugin-node-polyfills: ^0.22.0 webpack-merge: ^5.9.0 peerDependencies: storybook: ^8.0.0 @@ -7640,6 +7639,22 @@ __metadata: languageName: node linkType: hard +"@rollup/plugin-inject@npm:^5.0.5": + version: 5.0.5 + resolution: "@rollup/plugin-inject@npm:5.0.5" + dependencies: + "@rollup/pluginutils": ^5.0.1 + estree-walker: ^2.0.2 + magic-string: ^0.30.3 + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 22cb772fd6f7178308b2ece95cdde5f8615f6257197832166294552a7e4c0d3976dc996cbfa6470af3151d8b86c00091aa93da5f4db6ec563f11b6db29fd1b63 + languageName: node + linkType: hard + "@rollup/plugin-node-resolve@npm:^15.1.0": version: 15.1.0 resolution: "@rollup/plugin-node-resolve@npm:15.1.0" @@ -11613,7 +11628,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.2.1, buffer@npm:^5.5.0": +"buffer@npm:^5.2.1, buffer@npm:^5.5.0, buffer@npm:^5.7.1": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -12691,7 +12706,7 @@ __metadata: languageName: node linkType: hard -"create-require@npm:^1.1.0": +"create-require@npm:^1.1.0, create-require@npm:^1.1.1": version: 1.1.1 resolution: "create-require@npm:1.1.1" checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff @@ -12758,7 +12773,7 @@ __metadata: languageName: node linkType: hard -"crypto-browserify@npm:^3.0.0, crypto-browserify@npm:^3.12.0": +"crypto-browserify@npm:^3.0.0, crypto-browserify@npm:^3.11.0, crypto-browserify@npm:^3.12.0": version: 3.12.0 resolution: "crypto-browserify@npm:3.12.0" dependencies: @@ -17450,6 +17465,13 @@ __metadata: languageName: node linkType: hard +"isomorphic-timers-promises@npm:^1.0.1": + version: 1.0.1 + resolution: "isomorphic-timers-promises@npm:1.0.1" + checksum: 16ef59f0fbcceba1a037c74b5f7195d252ae058724ccd3e53b37ad034e8498f5532084e8ab18e7940ba3fa8fca2f21403d00eed15802ab1f7cab7c099cba62a8 + languageName: node + linkType: hard + "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": version: 3.2.0 resolution: "istanbul-lib-coverage@npm:3.2.0" @@ -19036,7 +19058,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0": +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3": version: 0.30.10 resolution: "magic-string@npm:0.30.10" dependencies: @@ -19994,6 +20016,41 @@ __metadata: languageName: node linkType: hard +"node-stdlib-browser@npm:^1.2.0": + version: 1.2.0 + resolution: "node-stdlib-browser@npm:1.2.0" + dependencies: + assert: ^2.0.0 + browser-resolve: ^2.0.0 + browserify-zlib: ^0.2.0 + buffer: ^5.7.1 + console-browserify: ^1.1.0 + constants-browserify: ^1.0.0 + create-require: ^1.1.1 + crypto-browserify: ^3.11.0 + domain-browser: ^4.22.0 + events: ^3.0.0 + https-browserify: ^1.0.0 + isomorphic-timers-promises: ^1.0.1 + os-browserify: ^0.3.0 + path-browserify: ^1.0.1 + pkg-dir: ^5.0.0 + process: ^0.11.10 + punycode: ^1.4.1 + querystring-es3: ^0.2.1 + readable-stream: ^3.6.0 + stream-browserify: ^3.0.0 + stream-http: ^3.2.0 + string_decoder: ^1.0.0 + timers-browserify: ^2.0.4 + tty-browserify: 0.0.1 + url: ^0.11.0 + util: ^0.12.4 + vm-browserify: ^1.0.1 + checksum: fe491f0839319fd9bb95964c6f7da81fc7fde4c3ac9062aa367f19bc5a6060d0d9e423d3de4196cb51f8259d6aaf6cf380048c48a86eb3721c6223dd0dcc5bfd + languageName: node + linkType: hard + "nopt@npm:^5.0.0": version: 5.0.0 resolution: "nopt@npm:5.0.0" @@ -23465,7 +23522,7 @@ __metadata: languageName: node linkType: hard -"storybook@npm:^8.0.0": +"storybook@npm:^8.1.11": version: 8.1.11 resolution: "storybook@npm:8.1.11" dependencies: @@ -23636,7 +23693,7 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": +"string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" dependencies: @@ -24120,7 +24177,7 @@ __metadata: languageName: node linkType: hard -"timers-browserify@npm:^2.0.12": +"timers-browserify@npm:^2.0.12, timers-browserify@npm:^2.0.4": version: 2.0.12 resolution: "timers-browserify@npm:2.0.12" dependencies: @@ -24994,7 +25051,7 @@ __metadata: languageName: node linkType: hard -"url@npm:^0.11.1, url@npm:~0.11.0": +"url@npm:^0.11.0, url@npm:^0.11.1, url@npm:~0.11.0": version: 0.11.3 resolution: "url@npm:0.11.3" dependencies: @@ -25178,6 +25235,18 @@ __metadata: languageName: node linkType: hard +"vite-plugin-node-polyfills@npm:^0.22.0": + version: 0.22.0 + resolution: "vite-plugin-node-polyfills@npm:0.22.0" + dependencies: + "@rollup/plugin-inject": ^5.0.5 + node-stdlib-browser: ^1.2.0 + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + checksum: c08d3df0d5cc3102280483d3f7b216f92a18e0708fcb9f67f78f01ab865474254756bacee17caa90b3f46afe5834cb9d8de0dd0e58c1bbbdae1b949edc1e6b57 + languageName: node + linkType: hard + "vite-plugin-top-level-await@npm:^1.3.0": version: 1.3.1 resolution: "vite-plugin-top-level-await@npm:1.3.1" @@ -25242,7 +25311,7 @@ __metadata: languageName: node linkType: hard -"vm-browserify@npm:^1.0.0, vm-browserify@npm:^1.1.2": +"vm-browserify@npm:^1.0.0, vm-browserify@npm:^1.0.1, vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" checksum: 10a1c50aab54ff8b4c9042c15fc64aefccce8d2fb90c0640403242db0ee7fb269f9b102bdb69cfb435d7ef3180d61fd4fb004a043a12709abaf9056cfd7e039d From c98c8b44a7c8715b53386bd0422c7dd10d4d813d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Wed, 3 Jul 2024 11:58:15 +0200 Subject: [PATCH 06/26] Refactor theme to be in the same place as the components and add Copyable component --- .../packages/bip32/snap.manifest.json | 2 +- .../packages/bip44/snap.manifest.json | 2 +- .../browserify-plugin/snap.manifest.json | 2 +- .../packages/browserify/snap.manifest.json | 2 +- .../packages/client-status/snap.manifest.json | 2 +- .../packages/cronjobs/snap.manifest.json | 2 +- .../packages/dialogs/snap.manifest.json | 2 +- .../ethereum-provider/snap.manifest.json | 2 +- .../packages/ethers-js/snap.manifest.json | 2 +- .../packages/file-upload/snap.manifest.json | 2 +- .../packages/get-entropy/snap.manifest.json | 2 +- .../packages/get-file/snap.manifest.json | 2 +- .../packages/home-page/snap.manifest.json | 2 +- .../packages/images/snap.manifest.json | 2 +- .../interactive-ui/snap.manifest.json | 2 +- .../consumer-signer/snap.manifest.json | 2 +- .../packages/core-signer/snap.manifest.json | 2 +- .../packages/json-rpc/snap.manifest.json | 2 +- .../examples/packages/jsx/snap.manifest.json | 4 +- .../packages/jsx/src/components/Counter.tsx | 10 ++- .../lifecycle-hooks/snap.manifest.json | 2 +- .../packages/localization/snap.manifest.json | 2 +- .../packages/manage-state/snap.manifest.json | 2 +- .../network-access/snap.manifest.json | 2 +- .../packages/notifications/snap.manifest.json | 2 +- .../packages/rollup-plugin/snap.manifest.json | 2 +- .../signature-insights/snap.manifest.json | 2 +- .../transaction-insights/snap.manifest.json | 2 +- .../examples/packages/wasm/snap.manifest.json | 2 +- .../webpack-plugin/snap.manifest.json | 2 +- .../src/components/Renderer.tsx | 34 +++++-- .../{snaps => }/custom/Extension.tsx | 10 ++- .../{snaps => }/custom/ThemeProvider.tsx | 6 +- .../src/components/custom/index.ts | 13 +++ .../src/components/icons/CopyIcon.tsx | 11 +++ .../src/components/icons/CopySuccessIcon.tsx | 11 +++ .../src/components/icons/EyeIcon.tsx | 11 +++ .../src/components/icons/EyeSlashIcon.tsx | 11 +++ .../src/components/icons/index.ts | 4 + .../snaps/{ => address}/Address.tsx | 2 +- .../address/components}/Jazzicon.tsx | 12 +++ .../snaps/address/components/index.ts | 1 + .../src/components/snaps/address/index.ts | 1 + .../src/components/snaps/{ => box}/Box.tsx | 6 +- .../src/components/snaps/box/index.ts | 1 + .../snaps/button/Button.styles.tsx} | 3 +- .../components/snaps/{ => button}/Button.tsx | 0 .../src/components/snaps/button/index.ts | 2 + .../snaps/copyable/Copyable.styles.ts | 22 +++++ .../components/snaps/copyable/Copyable.tsx | 71 +++++++++++++++ .../snaps/copyable/components/Copy.tsx | 54 ++++++++++++ .../snaps/copyable/components/More.tsx | 88 +++++++++++++++++++ .../snaps/copyable/components/Sensitive.tsx | 46 ++++++++++ .../snaps/copyable/components/index.ts | 3 + .../components/snaps/copyable/hooks/index.ts | 1 + .../snaps/copyable/hooks/useOverflow.ts | 50 +++++++++++ .../src/components/snaps/copyable/index.ts | 2 + .../src/components/snaps/custom/index.ts | 2 - .../snaps/heading/Heading.styles.ts} | 2 +- .../snaps/{ => heading}/Heading.tsx | 6 +- .../src/components/snaps/heading/index.ts | 2 + .../src/components/snaps/index.ts | 27 ++++-- .../snaps/row/Row.styles.ts} | 2 +- .../src/components/snaps/{ => row}/Row.tsx | 8 +- .../src/components/snaps/row/index.ts | 2 + .../snaps/text/Text.styles.ts} | 2 +- .../src/components/snaps/{ => text}/Text.tsx | 6 +- .../src/components/snaps/text/index.ts | 2 + .../src/components/snaps/types.ts | 19 ++++ .../src/theme/components/index.ts | 4 - packages/snaps-storybook/src/theme/index.ts | 8 +- .../snaps-storybook/src/theme/line-heights.ts | 3 + packages/snaps-storybook/src/theme/utils.ts | 22 +++++ 73 files changed, 588 insertions(+), 75 deletions(-) rename packages/snaps-storybook/src/components/{snaps => }/custom/Extension.tsx (81%) rename packages/snaps-storybook/src/components/{snaps => }/custom/ThemeProvider.tsx (89%) create mode 100644 packages/snaps-storybook/src/components/custom/index.ts create mode 100644 packages/snaps-storybook/src/components/icons/CopyIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/CopySuccessIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/EyeIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/EyeSlashIcon.tsx rename packages/snaps-storybook/src/components/snaps/{ => address}/Address.tsx (95%) rename packages/snaps-storybook/src/components/{ => snaps/address/components}/Jazzicon.tsx (88%) create mode 100644 packages/snaps-storybook/src/components/snaps/address/components/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/address/index.ts rename packages/snaps-storybook/src/components/snaps/{ => box}/Box.tsx (92%) create mode 100644 packages/snaps-storybook/src/components/snaps/box/index.ts rename packages/snaps-storybook/src/{theme/components/button.ts => components/snaps/button/Button.styles.tsx} (92%) rename packages/snaps-storybook/src/components/snaps/{ => button}/Button.tsx (100%) create mode 100644 packages/snaps-storybook/src/components/snaps/button/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/Copyable.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/Copyable.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/components/Copy.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/components/More.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/components/Sensitive.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/components/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/hooks/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/hooks/useOverflow.ts create mode 100644 packages/snaps-storybook/src/components/snaps/copyable/index.ts delete mode 100644 packages/snaps-storybook/src/components/snaps/custom/index.ts rename packages/snaps-storybook/src/{theme/components/heading.ts => components/snaps/heading/Heading.styles.ts} (86%) rename packages/snaps-storybook/src/components/snaps/{ => heading}/Heading.tsx (81%) create mode 100644 packages/snaps-storybook/src/components/snaps/heading/index.ts rename packages/snaps-storybook/src/{theme/components/row.ts => components/snaps/row/Row.styles.ts} (92%) rename packages/snaps-storybook/src/components/snaps/{ => row}/Row.tsx (90%) create mode 100644 packages/snaps-storybook/src/components/snaps/row/index.ts rename packages/snaps-storybook/src/{theme/components/text.ts => components/snaps/text/Text.styles.ts} (78%) rename packages/snaps-storybook/src/components/snaps/{ => text}/Text.tsx (80%) create mode 100644 packages/snaps-storybook/src/components/snaps/text/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/types.ts delete mode 100644 packages/snaps-storybook/src/theme/components/index.ts create mode 100644 packages/snaps-storybook/src/theme/line-heights.ts diff --git a/packages/examples/packages/bip32/snap.manifest.json b/packages/examples/packages/bip32/snap.manifest.json index 50e29b8f16..01bb717540 100644 --- a/packages/examples/packages/bip32/snap.manifest.json +++ b/packages/examples/packages/bip32/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "cG78m4B2d8yHgKq1rKrZsbGZApWbJyd3MNoBPGcjKUQ=", + "shasum": "WfupwVnHUswiO0x/o2coJ0oj85v1x0j7wx1c5lYxP+o=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/bip44/snap.manifest.json b/packages/examples/packages/bip44/snap.manifest.json index 0edcccd845..9227bb7049 100644 --- a/packages/examples/packages/bip44/snap.manifest.json +++ b/packages/examples/packages/bip44/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "YvyYRUgAVoeYPTzZRjxKRYNAjJe5usTDyqQkKbGTFTo=", + "shasum": "+WhZ7cQ8dqA46bL5kzblh/1+GRShg87VtAS5N8N8+bU=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/browserify-plugin/snap.manifest.json b/packages/examples/packages/browserify-plugin/snap.manifest.json index 0b81df8052..9375e7acb6 100644 --- a/packages/examples/packages/browserify-plugin/snap.manifest.json +++ b/packages/examples/packages/browserify-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "FQwKp8UTAOjE30njzUvGS2OElCud9Hyj2+xkfRGeqIk=", + "shasum": "cvVZ8a8g9/b3tXhh9d1zf1GU11WvqcwVnR90ilpGSGw=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/browserify/snap.manifest.json b/packages/examples/packages/browserify/snap.manifest.json index 8a1474a74b..8036034a6d 100644 --- a/packages/examples/packages/browserify/snap.manifest.json +++ b/packages/examples/packages/browserify/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "VglMoBJGhWpq4P+2P0DXMHVL3oF5+W2D4tlJtH8kdvw=", + "shasum": "fuKiL65m1QakTuad3sCbK8YzRLNgVb9o/gSg80FK4RE=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/client-status/snap.manifest.json b/packages/examples/packages/client-status/snap.manifest.json index 5a1fd660dc..72b5268f16 100644 --- a/packages/examples/packages/client-status/snap.manifest.json +++ b/packages/examples/packages/client-status/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "FHyz1K8TqeKyGniGR77kZFwRcm7IkjBuQ1zBifDPHvo=", + "shasum": "I8VkGGWoxhalUw5IIncvCY/InJ15yst1MTnICJ6jUZ4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/cronjobs/snap.manifest.json b/packages/examples/packages/cronjobs/snap.manifest.json index 2b571e309e..43edc28bdf 100644 --- a/packages/examples/packages/cronjobs/snap.manifest.json +++ b/packages/examples/packages/cronjobs/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "9bT28snShrLQ7/OHDWJT6qDXdlc/asYH7x8o6zqfuUo=", + "shasum": "bt0ymBAUIDJC0ksow6/BO2+TCm8l5f4I7myCg/tXJfc=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/dialogs/snap.manifest.json b/packages/examples/packages/dialogs/snap.manifest.json index d65a4cf207..b075fc627a 100644 --- a/packages/examples/packages/dialogs/snap.manifest.json +++ b/packages/examples/packages/dialogs/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "bozHl8e7Md1GuWvLOXtPbKGejiE2gBOGV0cIg6M7zFc=", + "shasum": "P87ZOtKfVhN78E9zEw5fTGWhgKG0assHA1MZQNAZ0Xk=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/ethereum-provider/snap.manifest.json b/packages/examples/packages/ethereum-provider/snap.manifest.json index 6ddcc0cbeb..fa8141d3db 100644 --- a/packages/examples/packages/ethereum-provider/snap.manifest.json +++ b/packages/examples/packages/ethereum-provider/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "AKvlBnNv0PrE8VfPCdxMmbTMq451QKo9ggsERIMPEZc=", + "shasum": "sNKcZWHKrpSkWmsHD9nw4SNjuYehxTTXI+PhF0PAyP4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/ethers-js/snap.manifest.json b/packages/examples/packages/ethers-js/snap.manifest.json index ee235d0c31..1d47aba947 100644 --- a/packages/examples/packages/ethers-js/snap.manifest.json +++ b/packages/examples/packages/ethers-js/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "60LZXNvbDxyYnWy5qP43Tj8UZTfnmUsjItCOpnLTju0=", + "shasum": "y9N2+eSpLMWFxoH+gmVT9u7oR95EP8QaYnlFNowAdZE=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/file-upload/snap.manifest.json b/packages/examples/packages/file-upload/snap.manifest.json index 49e5585e57..42c5c2c58a 100644 --- a/packages/examples/packages/file-upload/snap.manifest.json +++ b/packages/examples/packages/file-upload/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "E6A+dO1EcNp9XYm9M0yEUafFXRM0W72ylmOhbA9FFio=", + "shasum": "GeSSonGmFmVw2NPGOhmX2JQWzexQ/sLlCpXZzoNACIM=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/get-entropy/snap.manifest.json b/packages/examples/packages/get-entropy/snap.manifest.json index 591f066658..ed2353e8d1 100644 --- a/packages/examples/packages/get-entropy/snap.manifest.json +++ b/packages/examples/packages/get-entropy/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "GFAjUWW8q9iX+2J/wKFlVRjq1oJ377NW5qSVTbkYtIQ=", + "shasum": "+Dq7vWhymZkiKZPixpzPOac9GYNFd3NXZmThe+RP5Rk=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/get-file/snap.manifest.json b/packages/examples/packages/get-file/snap.manifest.json index 2903902c62..6b5d699162 100644 --- a/packages/examples/packages/get-file/snap.manifest.json +++ b/packages/examples/packages/get-file/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "37wMtBqKrmWF3CUdyQHZ3Ey86NpGnffqIq6GnqTf+Ro=", + "shasum": "YONnSNnY1QXI799OnXcq7pOJ9mB2mf0TKA+hwrXei0M=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/home-page/snap.manifest.json b/packages/examples/packages/home-page/snap.manifest.json index 44d22d2841..c73b1a2ac8 100644 --- a/packages/examples/packages/home-page/snap.manifest.json +++ b/packages/examples/packages/home-page/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "9eJQJL4e2McSiHzayvby/1zLdHvf7Uc9ppUUw7v+rHQ=", + "shasum": "A9oCcxfQ/Ze21a+qSjmFEMjpyJDZTXBEUF/eEtzr00g=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/images/snap.manifest.json b/packages/examples/packages/images/snap.manifest.json index bf2054eeb4..add7df61c4 100644 --- a/packages/examples/packages/images/snap.manifest.json +++ b/packages/examples/packages/images/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "oyaKZ7cbZisTYS6p9+ol9+tbjfq2Yly3G5UDvIwDLOQ=", + "shasum": "QpOZlqHNXUWxJEkcks0CEg15OO3HSximP79r+3hronM=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/interactive-ui/snap.manifest.json b/packages/examples/packages/interactive-ui/snap.manifest.json index f0440bb7ec..5c8f02d5e1 100644 --- a/packages/examples/packages/interactive-ui/snap.manifest.json +++ b/packages/examples/packages/interactive-ui/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "LfydCMo1VRRXKdciizK7HPLso/tVufqM0JGpWSts/os=", + "shasum": "Ko9xBAU/AMTQmdJHIKVaXEvIMRKil4LMaFj+3gS3eZo=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json b/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json index 5f9b25affd..db046d352f 100644 --- a/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json +++ b/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "8MoLqit0ldP9dXby0k6nOsNPcfTVhHFwD+NDkGTLWpE=", + "shasum": "cRsMxa73YE9a7rrLfAvqWkL7LtqDCt1KQifgF4bA/YA=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json b/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json index 3afeb23165..4ad17151e9 100644 --- a/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json +++ b/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "dd2RRHpmyhOtK2A1mWqgzYz+AI/UG2gyFWUsuCjW/QY=", + "shasum": "o4UgAxX2mrxEIUbi2og85R/dECjjg+q51X0t1x8KXb4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/json-rpc/snap.manifest.json b/packages/examples/packages/json-rpc/snap.manifest.json index cb70769db2..47371a682b 100644 --- a/packages/examples/packages/json-rpc/snap.manifest.json +++ b/packages/examples/packages/json-rpc/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "wXoG3PQ8lhJu5MCXOoFXPd/eEzrkMzdCYNL5YKCzOXg=", + "shasum": "3F5KdhaTzO0rYEAOJ9Y7Q0COWJqXOqcyTkG0FqdZ05s=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/jsx/snap.manifest.json b/packages/examples/packages/jsx/snap.manifest.json index 52164100bc..4d175f99e6 100644 --- a/packages/examples/packages/jsx/snap.manifest.json +++ b/packages/examples/packages/jsx/snap.manifest.json @@ -1,5 +1,5 @@ { - "version": "1.1.1", + "version": "1.1.0", "description": "MetaMask example snap demonstrating the use of JSX for UI components.", "proposedName": "JSX Example Snap", "repository": { @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "8CWhVcRMrN0tSMtxV0UXNvvS6kwVVJ+xJxADZ1AMkxY=", + "shasum": "21SHurFxkqSSML7EDePnsByVZitSpvYweBaNv4IrpjQ=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/jsx/src/components/Counter.tsx b/packages/examples/packages/jsx/src/components/Counter.tsx index a8d5e3fd76..4309a9fd3d 100644 --- a/packages/examples/packages/jsx/src/components/Counter.tsx +++ b/packages/examples/packages/jsx/src/components/Counter.tsx @@ -1,5 +1,12 @@ import type { SnapComponent } from '@metamask/snaps-sdk/jsx'; -import { Bold, Button, Box, Text, Tooltip } from '@metamask/snaps-sdk/jsx'; +import { + Copyable, + Bold, + Button, + Box, + Text, + Tooltip, +} from '@metamask/snaps-sdk/jsx'; /** * The props for the {@link Counter} component. @@ -39,6 +46,7 @@ export const Counter: SnapComponent = ({ count }) => { + ); }; diff --git a/packages/examples/packages/lifecycle-hooks/snap.manifest.json b/packages/examples/packages/lifecycle-hooks/snap.manifest.json index 05842992da..053f42c014 100644 --- a/packages/examples/packages/lifecycle-hooks/snap.manifest.json +++ b/packages/examples/packages/lifecycle-hooks/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "+bfsURFNxni7MV/98u6zHjp9QgzWIAXI2wud9ClfejM=", + "shasum": "Hpmj/t7F9hsI52wGOdI+ak3W8yYLsQAKDrwT5tVhnYg=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/localization/snap.manifest.json b/packages/examples/packages/localization/snap.manifest.json index 4d51936f4f..6509b6bf1f 100644 --- a/packages/examples/packages/localization/snap.manifest.json +++ b/packages/examples/packages/localization/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "U5POJ0kzznk+u1A4xxgFQX3LIU8QoVUqYYUylOUmUhs=", + "shasum": "wtOoGYeD+m/9PFLtyVgAEOLeJaZbmScyb5ovC1S4AWA=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/manage-state/snap.manifest.json b/packages/examples/packages/manage-state/snap.manifest.json index 5c670ce520..620898c380 100644 --- a/packages/examples/packages/manage-state/snap.manifest.json +++ b/packages/examples/packages/manage-state/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "nP0QOJ+vurTLPgKtiYq2zWMxoBBfgZ4VkcQ8svyU1Sk=", + "shasum": "3CUmmQR8Rm9YPrR2vYdg97SGUzUndQf3OgYrUzlvLI4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/network-access/snap.manifest.json b/packages/examples/packages/network-access/snap.manifest.json index 592b6d22ac..febf56b2b8 100644 --- a/packages/examples/packages/network-access/snap.manifest.json +++ b/packages/examples/packages/network-access/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "VSXdhOsUAKupm4JXWCZcQ4HFKNrmxD3LySAmJlRQkGQ=", + "shasum": "VDkYGW0UgbTFLVuhnjjbYCJvHlMaFRfklmdUK3wyl4w=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/notifications/snap.manifest.json b/packages/examples/packages/notifications/snap.manifest.json index 249d61be3f..6b5d15498a 100644 --- a/packages/examples/packages/notifications/snap.manifest.json +++ b/packages/examples/packages/notifications/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "AP1xFEuyMDWaiey+kkUzjlMl1tt4ey26cntnHHNix/s=", + "shasum": "6os9tFCmhv3HTapJ6Mzr5eG04r28c+hjgD/cLSDraEY=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/rollup-plugin/snap.manifest.json b/packages/examples/packages/rollup-plugin/snap.manifest.json index b2e96e7812..db64fce1ce 100644 --- a/packages/examples/packages/rollup-plugin/snap.manifest.json +++ b/packages/examples/packages/rollup-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "R6xONAf4IA5HXDU2oyL732pa5T+Nhc6idkEr9Zo/fDo=", + "shasum": "rG0w/CpDp7pUUEYz6z6LB/t2UtOnLPq3tXNC0ZuI5p4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/signature-insights/snap.manifest.json b/packages/examples/packages/signature-insights/snap.manifest.json index 3b9b2464fb..4be49df722 100644 --- a/packages/examples/packages/signature-insights/snap.manifest.json +++ b/packages/examples/packages/signature-insights/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "nOHygj95R/T+NtgyXLdS5YNxom7bflJoLGaSqAiLZNU=", + "shasum": "3sWzEjRApKpX8lrHwPjB4f0kuvwx7o1ZiuPxqTrEl3s=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/transaction-insights/snap.manifest.json b/packages/examples/packages/transaction-insights/snap.manifest.json index d5c487b6ef..e9b59740d1 100644 --- a/packages/examples/packages/transaction-insights/snap.manifest.json +++ b/packages/examples/packages/transaction-insights/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "z18RzBaiNCS+tdOltE3CD6s/S+nTZTVHjLotmaVgKN8=", + "shasum": "h6yDf1EBo4mpSb1qqHGQiutSvuExPmtthseHyuXhsvQ=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/wasm/snap.manifest.json b/packages/examples/packages/wasm/snap.manifest.json index 3498ce2b03..118c2f6141 100644 --- a/packages/examples/packages/wasm/snap.manifest.json +++ b/packages/examples/packages/wasm/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "ZQJV6BNeSLTrnxxnbT+P+I1O9/novFlZcKVJuTxnRRM=", + "shasum": "VWTxqVgjWnanv5fmejkDm5Gz+yiKveFROceWqIg6vi0=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/webpack-plugin/snap.manifest.json b/packages/examples/packages/webpack-plugin/snap.manifest.json index 2498e0f7bd..d0db864731 100644 --- a/packages/examples/packages/webpack-plugin/snap.manifest.json +++ b/packages/examples/packages/webpack-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "nXyQsrdxb0igyATQImUC4UyAw598ldkJCRuu/OZTvss=", + "shasum": "0PQHPzqWuahbPrh5XviC7NnEnRhA185kaAIdCZcOfqs=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/snaps-storybook/src/components/Renderer.tsx b/packages/snaps-storybook/src/components/Renderer.tsx index f8be6c3a62..36a2fea696 100644 --- a/packages/snaps-storybook/src/components/Renderer.tsx +++ b/packages/snaps-storybook/src/components/Renderer.tsx @@ -2,7 +2,8 @@ import type { GenericSnapElement, Nestable } from '@metamask/snaps-sdk/jsx'; import { assert } from '@metamask/utils'; import type { FunctionComponent } from 'react'; -import * as COMPONENT_MAP from './snaps'; +import { CUSTOM_COMPONENTS } from './custom'; +import { SNAPS_COMPONENTS } from './snaps'; /** * The props that are passed to a rendered component. @@ -16,17 +17,29 @@ export type RenderProps = Type & { * the rendered components have unique keys. */ id: string; + + /** + * The Renderer component to use to render nested elements. + */ + // eslint-disable-next-line @typescript-eslint/naming-convention + Renderer: FunctionComponent; }; /** * The props for the {@link Renderer} component. */ -export type RendererProps = RenderProps<{ +export type RendererProps = { + /** + * The unique ID to use as key for the renderer. This is used to ensure that + * the rendered components have unique keys. + */ + id: string; + /** * The JSX element to render. */ element: Nestable; -}>; +}; /** * The renderer component that renders Snaps JSX elements. It supports rendering @@ -61,10 +74,17 @@ export const Renderer: FunctionComponent = ({ element, id }) => { ); } + if (CUSTOM_COMPONENTS[element.type as keyof typeof CUSTOM_COMPONENTS]) { + const Component = + CUSTOM_COMPONENTS[element.type as keyof typeof CUSTOM_COMPONENTS]; + + // @ts-expect-error - TODO: Fix types. + return ; + } + // eslint-disable-next-line import/namespace - const Component = COMPONENT_MAP[element.type as keyof typeof COMPONENT_MAP]; - assert(Component, `No component found for type: "${element.type}".`); + const item = SNAPS_COMPONENTS[element.type]; + assert(item, `No component found for type: "${element.type}".`); - // @ts-expect-error - TODO: Fix types. - return ; + return ; }; diff --git a/packages/snaps-storybook/src/components/snaps/custom/Extension.tsx b/packages/snaps-storybook/src/components/custom/Extension.tsx similarity index 81% rename from packages/snaps-storybook/src/components/snaps/custom/Extension.tsx rename to packages/snaps-storybook/src/components/custom/Extension.tsx index 019dd9aae4..001e04019a 100644 --- a/packages/snaps-storybook/src/components/snaps/custom/Extension.tsx +++ b/packages/snaps-storybook/src/components/custom/Extension.tsx @@ -2,10 +2,9 @@ import { Box } from '@chakra-ui/react'; import type { JSXElement } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import { Delineator } from '../../Delineator'; -import { Header } from '../../Header'; -import type { RenderProps } from '../../Renderer'; -import { Renderer } from '../../Renderer'; +import { Delineator } from '../Delineator'; +import { Header } from '../Header'; +import type { RenderProps } from '../Renderer'; /** * The props for the {@link Extension} component. @@ -24,11 +23,14 @@ export type ExtensionProps = { * @param props - The component props. * @param props.id - The unique ID to use as key for the renderer. * @param props.children - The JSX element to render in the extension. + * @param props.Renderer - The Renderer component to use to render nested + * elements. * @returns The rendered component. */ export const Extension: FunctionComponent> = ({ id, children, + Renderer, }) => ( > = ({ @@ -55,6 +56,7 @@ export const Box: FunctionComponent> = ({ direction, alignment, children, + Renderer, }) => { return ( diff --git a/packages/snaps-storybook/src/components/snaps/box/index.ts b/packages/snaps-storybook/src/components/snaps/box/index.ts new file mode 100644 index 0000000000..87e6c428ab --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/box/index.ts @@ -0,0 +1 @@ +export { Box as Component } from './Box'; diff --git a/packages/snaps-storybook/src/theme/components/button.ts b/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx similarity index 92% rename from packages/snaps-storybook/src/theme/components/button.ts rename to packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx index 309d1e3280..fcc3b8b100 100644 --- a/packages/snaps-storybook/src/theme/components/button.ts +++ b/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx @@ -2,9 +2,10 @@ import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -export const Button = defineStyleConfig({ +export const styles = defineStyleConfig({ baseStyle: defineStyle({ background: 'none', + borderRadius: '0', maxWidth: 'fit-content', _disabled: { opacity: 1, diff --git a/packages/snaps-storybook/src/components/snaps/Button.tsx b/packages/snaps-storybook/src/components/snaps/button/Button.tsx similarity index 100% rename from packages/snaps-storybook/src/components/snaps/Button.tsx rename to packages/snaps-storybook/src/components/snaps/button/Button.tsx diff --git a/packages/snaps-storybook/src/components/snaps/button/index.ts b/packages/snaps-storybook/src/components/snaps/button/index.ts new file mode 100644 index 0000000000..3afa3a1062 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/button/index.ts @@ -0,0 +1,2 @@ +export { Button as Component } from './Button'; +export { styles } from './Button.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/Copyable.styles.ts b/packages/snaps-storybook/src/components/snaps/copyable/Copyable.styles.ts new file mode 100644 index 0000000000..c73d2520cc --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/Copyable.styles.ts @@ -0,0 +1,22 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const styles = defineStyleConfig({ + baseStyle: defineStyle({ + display: 'flex', + gap: '2', + justifyContent: 'space-between', + borderRadius: 'lg', + padding: '2', + fontSize: 'sm', + color: 'text.alternative', + background: 'background.alternative', + overflowY: 'hidden', + }), + + variants: { + sensitive: defineStyle({ + color: 'error.default', + background: 'error.muted', + }), + }, +}); diff --git a/packages/snaps-storybook/src/components/snaps/copyable/Copyable.tsx b/packages/snaps-storybook/src/components/snaps/copyable/Copyable.tsx new file mode 100644 index 0000000000..845f944008 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/Copyable.tsx @@ -0,0 +1,71 @@ +import { Box, Text, useStyleConfig } from '@chakra-ui/react'; +import type { CopyableProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; +import { useState } from 'react'; + +import type { RenderProps } from '../../Renderer'; +import { More, Copy, Sensitive } from './components'; + +/** + * A copyable element, which shows a value that can be copied to the clipboard. + * If the value is sensitive, it can be revealed by the user. + * + * See {@link CopyableProps} for the props. + * + * @param props - The component props. + * @param props.sensitive - Whether the value is sensitive and should be + * obscured. + * @param props.value - The value to display. + * @returns The copyable element. + */ +export const Copyable: FunctionComponent> = ({ + sensitive, + value, +}) => { + const [isExpanded, setExpanded] = useState(false); + const [isRevealed, setRevealed] = useState(false); + + const styles = useStyleConfig('Copyable', { + variant: isRevealed && sensitive ? 'sensitive' : 'default', + }); + + const handleExpand = () => { + setExpanded(true); + }; + + const handleReveal = () => { + setRevealed(true); + }; + + const handleHide = () => { + setExpanded(false); + setRevealed(false); + }; + + if (sensitive && !isRevealed) { + return ( + + + Reveal sensitive content + + ); + } + + return ( + + {sensitive && } + + + + {value} + + + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/components/Copy.tsx b/packages/snaps-storybook/src/components/snaps/copyable/components/Copy.tsx new file mode 100644 index 0000000000..2643e3f2aa --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/components/Copy.tsx @@ -0,0 +1,54 @@ +import { Box } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; +import { useEffect, useState } from 'react'; + +import { CopyIcon, CopySuccessIcon } from '../../../icons'; + +/** + * The props for the {@link Copy} component. + */ +export type CopyProps = { + /** + * The value to write to the clipboard. + */ + value: string; +}; + +/** + * A copy icon, that writes the value to the clipboard when clicked. + * + * @param props - The component props. + * @param props.value - The value to write to the clipboard. + * @returns The copy element. + */ +export const Copy: FunctionComponent = ({ value }) => { + const [isCopied, setCopied] = useState(false); + + // eslint-disable-next-line consistent-return + useEffect(() => { + if (isCopied) { + const timeout = setTimeout(() => { + setCopied(false); + }, 2000); + + return () => clearTimeout(timeout); + } + }, [isCopied]); + + const handleCopy = () => { + navigator.clipboard + .writeText(value) + .then(() => { + setCopied(true); + }) + .catch(() => { + // noop + }); + }; + + return ( + + {isCopied ? : } + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/components/More.tsx b/packages/snaps-storybook/src/components/snaps/copyable/components/More.tsx new file mode 100644 index 0000000000..95b959fcbc --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/components/More.tsx @@ -0,0 +1,88 @@ +import type { ButtonProps } from '@chakra-ui/react'; +import { Box, Button } from '@chakra-ui/react'; +import type { FunctionComponent, ReactNode } from 'react'; + +import { useOverflow } from '../hooks'; + +/** + * The props for the {@link More} component. + * + * @see ButtonProps + */ +export type MoreProps = ButtonProps & { + /** + * The content to render. + */ + children: ReactNode; + + /** + * Whether the content is expanded. + */ + isExpanded: boolean; + + /** + * Whether the content is sensitive. + */ + sensitive?: boolean; +}; + +/** + * Get the gradient for the more button. + * + * @param sensitive - Whether the content is sensitive. + * @returns The gradient for the more button. + */ +function getGradient(sensitive: boolean) { + return sensitive + ? 'linear(to right, transparent 0%, error.muted 33%)' + : 'linear(to right, transparent 0%, background.alternative 33%)'; +} + +/** + * The more component. This renders the content and a more button if the content + * is overflowing (i.e., the content is taller than the container). + * + * @param props - The component props. + * @param props.children - The content to render. + * @param props.isExpanded - Whether the content is expanded. + * @param props.sensitive - Whether the content is sensitive. + * @returns The more element. + */ +export const More: FunctionComponent = ({ + children, + isExpanded, + sensitive = false, + ...props +}) => { + const { contentRef, isOverflow } = useOverflow(); + + return ( + + {children} + {isOverflow && !isExpanded && ( + + + + )} + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/components/Sensitive.tsx b/packages/snaps-storybook/src/components/snaps/copyable/components/Sensitive.tsx new file mode 100644 index 0000000000..48394fbb13 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/components/Sensitive.tsx @@ -0,0 +1,46 @@ +import { Tooltip } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; + +import { EyeIcon, EyeSlashIcon } from '../../../icons'; + +/** + * The props for the {@link Sensitive} component. + */ +export type SensitiveProps = { + /** + * Whether the sensitive content is revealed. + */ + isRevealed: boolean; + + /** + * A callback to hide the sensitive content. + */ + onHide?: () => void; +}; + +/** + * A sensitive content icon, that reveals and hides the content when clicked. + * + * @param props - The component props. + * @param props.isRevealed - Whether the sensitive content is revealed. + * @param props.onHide - A callback to hide the sensitive content. + * @returns The sensitive element. + */ +export const Sensitive: FunctionComponent = ({ + isRevealed, + onHide, +}) => { + if (isRevealed) { + return ( + + + + ); + } + + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/components/index.ts b/packages/snaps-storybook/src/components/snaps/copyable/components/index.ts new file mode 100644 index 0000000000..5d3ce256f6 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/components/index.ts @@ -0,0 +1,3 @@ +export * from './Copy'; +export * from './More'; +export * from './Sensitive'; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/hooks/index.ts b/packages/snaps-storybook/src/components/snaps/copyable/hooks/index.ts new file mode 100644 index 0000000000..f0fe5a395c --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/hooks/index.ts @@ -0,0 +1 @@ +export * from './useOverflow'; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/hooks/useOverflow.ts b/packages/snaps-storybook/src/components/snaps/copyable/hooks/useOverflow.ts new file mode 100644 index 0000000000..700fcad980 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/hooks/useOverflow.ts @@ -0,0 +1,50 @@ +import type { RefObject } from 'react'; +import { useEffect, useRef, useState } from 'react'; + +/** + * The overflow state. + */ +export type Overflow = { + /** + * The reference to the content container. This should be attached to the + * content container with `overflow: hidden`. + */ + contentRef: RefObject; + + /** + * Whether the content is overflowing. + */ + isOverflow: boolean; +}; + +/** + * A hook to determine if the content is overflowing. + * + * Note: The `contentRef` should be attached to the content container with + * `overflow: hidden`. + * + * @returns The overflow state. + * @example + * const { contentRef, isOverflow } = useOverflow(); + * + * return ( + * + * ... + * {isOverflow && } + * + * ); + */ +export const useOverflow = (): Overflow => { + const contentRef = useRef(null); + const [isOverflow, setOverflow] = useState(false); + + useEffect(() => { + if (contentRef.current) { + setOverflow( + contentRef.current.offsetHeight < contentRef.current.scrollHeight, + ); + } + }, [contentRef]); + + return { contentRef, isOverflow }; +}; diff --git a/packages/snaps-storybook/src/components/snaps/copyable/index.ts b/packages/snaps-storybook/src/components/snaps/copyable/index.ts new file mode 100644 index 0000000000..63a9b5fa52 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/copyable/index.ts @@ -0,0 +1,2 @@ +export { Copyable as Component } from './Copyable'; +export { styles } from './Copyable.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/custom/index.ts b/packages/snaps-storybook/src/components/snaps/custom/index.ts deleted file mode 100644 index 48668fe955..0000000000 --- a/packages/snaps-storybook/src/components/snaps/custom/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './Extension'; -export * from './ThemeProvider'; diff --git a/packages/snaps-storybook/src/theme/components/heading.ts b/packages/snaps-storybook/src/components/snaps/heading/Heading.styles.ts similarity index 86% rename from packages/snaps-storybook/src/theme/components/heading.ts rename to packages/snaps-storybook/src/components/snaps/heading/Heading.styles.ts index 507a5cc839..5401274e86 100644 --- a/packages/snaps-storybook/src/theme/components/heading.ts +++ b/packages/snaps-storybook/src/components/snaps/heading/Heading.styles.ts @@ -1,6 +1,6 @@ import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -export const Heading = defineStyleConfig({ +export const styles = defineStyleConfig({ baseStyle: defineStyle({ color: 'text.default', fontWeight: '700', diff --git a/packages/snaps-storybook/src/components/snaps/Heading.tsx b/packages/snaps-storybook/src/components/snaps/heading/Heading.tsx similarity index 81% rename from packages/snaps-storybook/src/components/snaps/Heading.tsx rename to packages/snaps-storybook/src/components/snaps/heading/Heading.tsx index 4502d473ae..ff4aea1397 100644 --- a/packages/snaps-storybook/src/components/snaps/Heading.tsx +++ b/packages/snaps-storybook/src/components/snaps/heading/Heading.tsx @@ -2,8 +2,7 @@ import { Heading as ChakraHeading } from '@chakra-ui/react'; import type { HeadingProps } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import type { RenderProps } from '../Renderer'; -import { Renderer } from '../Renderer'; +import type { RenderProps } from '../../Renderer'; /** * The heading component. See {@link HeadingProps} for the props. @@ -11,11 +10,14 @@ import { Renderer } from '../Renderer'; * @param props - The heading props. * @param props.id - The unique ID to use as key for the renderer. * @param props.children - The heading content. + * @param props.Renderer - The Renderer component to use to render nested + * elements. * @returns The rendered heading. */ export const Heading: FunctionComponent> = ({ id, children, + Renderer, }) => { return ( diff --git a/packages/snaps-storybook/src/components/snaps/heading/index.ts b/packages/snaps-storybook/src/components/snaps/heading/index.ts new file mode 100644 index 0000000000..ec8c1ae504 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/heading/index.ts @@ -0,0 +1,2 @@ +export { Heading as Component } from './Heading'; +export { styles } from './Heading.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index 25b753603d..57e4571c05 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -3,11 +3,24 @@ // components, but are used by the Storybook plugin to render the extension // window and provide the necessary context for the Snap to render. -export * from './custom'; +import * as Address from './address'; +import * as Box from './box'; +import * as Button from './button'; +import * as Copyable from './copyable'; +import * as Heading from './heading'; +import * as Row from './row'; +import * as Text from './text'; +import type { Component } from './types'; -export * from './Address'; -export * from './Box'; -export * from './Button'; -export * from './Heading'; -export * from './Row'; -export * from './Text'; +// TODO: Change `string` to `JSXElement['type']`. +export const SNAPS_COMPONENTS: Record = { + Address, + Box, + Button, + Copyable, + Heading, + Row, + Text, +}; + +export * from './types'; diff --git a/packages/snaps-storybook/src/theme/components/row.ts b/packages/snaps-storybook/src/components/snaps/row/Row.styles.ts similarity index 92% rename from packages/snaps-storybook/src/theme/components/row.ts rename to packages/snaps-storybook/src/components/snaps/row/Row.styles.ts index e27a43deed..a5a3d5f408 100644 --- a/packages/snaps-storybook/src/theme/components/row.ts +++ b/packages/snaps-storybook/src/components/snaps/row/Row.styles.ts @@ -1,6 +1,6 @@ import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -export const Row = defineStyleConfig({ +export const styles = defineStyleConfig({ baseStyle: defineStyle({ display: 'flex', gap: '1', diff --git a/packages/snaps-storybook/src/components/snaps/Row.tsx b/packages/snaps-storybook/src/components/snaps/row/Row.tsx similarity index 90% rename from packages/snaps-storybook/src/components/snaps/Row.tsx rename to packages/snaps-storybook/src/components/snaps/row/Row.tsx index 8aa937b70e..bd351c8e9f 100644 --- a/packages/snaps-storybook/src/components/snaps/Row.tsx +++ b/packages/snaps-storybook/src/components/snaps/row/Row.tsx @@ -8,9 +8,8 @@ import { import type { RowProps } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import { DangerIcon, QuestionIcon, WarningIcon } from '../icons'; -import type { RenderProps } from '../Renderer'; -import { Renderer } from '../Renderer'; +import { DangerIcon, QuestionIcon, WarningIcon } from '../../icons'; +import type { RenderProps } from '../../Renderer'; /** * Get the icon for the row variant. @@ -63,6 +62,8 @@ const Tooltip: FunctionComponent = ({ tooltip, variant }) => { * @param props.variant - The variant of the row. * @param props.tooltip - The tooltip content. * @param props.children - The children of the row. + * @param props.Renderer - The Renderer component to use to render nested + * elements. * @returns A row element. */ export const Row: FunctionComponent> = ({ @@ -71,6 +72,7 @@ export const Row: FunctionComponent> = ({ variant = 'default', tooltip, children, + Renderer, }) => { const styles = useStyleConfig('Row', { variant }); diff --git a/packages/snaps-storybook/src/components/snaps/row/index.ts b/packages/snaps-storybook/src/components/snaps/row/index.ts new file mode 100644 index 0000000000..47c9fc75be --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/row/index.ts @@ -0,0 +1,2 @@ +export { Row as Component } from './Row'; +export { styles } from './Row.styles'; diff --git a/packages/snaps-storybook/src/theme/components/text.ts b/packages/snaps-storybook/src/components/snaps/text/Text.styles.ts similarity index 78% rename from packages/snaps-storybook/src/theme/components/text.ts rename to packages/snaps-storybook/src/components/snaps/text/Text.styles.ts index 2a75b643c5..aecdacb557 100644 --- a/packages/snaps-storybook/src/theme/components/text.ts +++ b/packages/snaps-storybook/src/components/snaps/text/Text.styles.ts @@ -1,6 +1,6 @@ import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; -export const Text = defineStyleConfig({ +export const styles = defineStyleConfig({ baseStyle: defineStyle({ fontSize: 'sm', lineHeight: 'short', diff --git a/packages/snaps-storybook/src/components/snaps/Text.tsx b/packages/snaps-storybook/src/components/snaps/text/Text.tsx similarity index 80% rename from packages/snaps-storybook/src/components/snaps/Text.tsx rename to packages/snaps-storybook/src/components/snaps/text/Text.tsx index 36ad742854..cb80bf229e 100644 --- a/packages/snaps-storybook/src/components/snaps/Text.tsx +++ b/packages/snaps-storybook/src/components/snaps/text/Text.tsx @@ -2,8 +2,7 @@ import { Text as ChakraText } from '@chakra-ui/react'; import type { TextProps } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; -import type { RenderProps } from '../Renderer'; -import { Renderer } from '../Renderer'; +import type { RenderProps } from '../../Renderer'; /** * The text component. See {@link TextProps} for the props. @@ -11,11 +10,14 @@ import { Renderer } from '../Renderer'; * @param props - The text props. * @param props.id - The unique ID to use as key for the renderer. * @param props.children - The text content. + * @param props.Renderer - The Renderer component to use to render nested + * elements. * @returns The rendered text. */ export const Text: FunctionComponent> = ({ id, children, + Renderer, }) => { return ( diff --git a/packages/snaps-storybook/src/components/snaps/text/index.ts b/packages/snaps-storybook/src/components/snaps/text/index.ts new file mode 100644 index 0000000000..9fd6642f0c --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/text/index.ts @@ -0,0 +1,2 @@ +export { Text as Component } from './Text'; +export { styles } from './Text.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/types.ts b/packages/snaps-storybook/src/components/snaps/types.ts new file mode 100644 index 0000000000..ecc5ec65e3 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/types.ts @@ -0,0 +1,19 @@ +import type { ComponentType } from 'react'; + +import type { Styles } from '../../theme/utils'; + +/** + * A component that can be rendered in Storybook. + */ +export type Component = { + /** + * The React component to render. + */ + // eslint-disable-next-line @typescript-eslint/naming-convention + Component: ComponentType; + + /** + * The optional Chakra UI styles for the component. + */ + styles?: Styles; +}; diff --git a/packages/snaps-storybook/src/theme/components/index.ts b/packages/snaps-storybook/src/theme/components/index.ts deleted file mode 100644 index f56024d2ad..0000000000 --- a/packages/snaps-storybook/src/theme/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './button'; -export * from './heading'; -export * from './row'; -export * from './text'; diff --git a/packages/snaps-storybook/src/theme/index.ts b/packages/snaps-storybook/src/theme/index.ts index 87b377088e..30af6376e0 100644 --- a/packages/snaps-storybook/src/theme/index.ts +++ b/packages/snaps-storybook/src/theme/index.ts @@ -1,14 +1,16 @@ import { extendTheme } from '@chakra-ui/react'; +import { SNAPS_COMPONENTS } from '../components'; import { borders } from './borders'; -import * as components from './components'; import { config } from './config'; +import { lineHeights } from './line-heights'; import { styles } from './styles'; -import { getDesignTokens } from './utils'; +import { getComponents, getDesignTokens } from './utils'; export const theme = extendTheme({ config, - components, + components: getComponents(SNAPS_COMPONENTS), + lineHeights, semanticTokens: { borders, diff --git a/packages/snaps-storybook/src/theme/line-heights.ts b/packages/snaps-storybook/src/theme/line-heights.ts new file mode 100644 index 0000000000..bdb83e4879 --- /dev/null +++ b/packages/snaps-storybook/src/theme/line-heights.ts @@ -0,0 +1,3 @@ +export const lineHeights = { + short: '1.375rem', +}; diff --git a/packages/snaps-storybook/src/theme/utils.ts b/packages/snaps-storybook/src/theme/utils.ts index 94184a26ac..dc52fa2e01 100644 --- a/packages/snaps-storybook/src/theme/utils.ts +++ b/packages/snaps-storybook/src/theme/utils.ts @@ -1,8 +1,11 @@ /* eslint-disable @typescript-eslint/naming-convention */ +import type { defineStyleConfig } from '@chakra-ui/styled-system'; import type { Theme } from '@metamask/design-tokens'; import { darkTheme, lightTheme } from '@metamask/design-tokens'; +import type { Component } from '../components'; + export type DesignTokens = Record< string, Record @@ -34,3 +37,22 @@ export function getDesignTokens(themeValue: keyof Theme): DesignTokens { ]), ); } + +export type Styles = ReturnType; + +/** + * Extract the styles from the components provided. + * + * @param components - The components to extract styles from. + * @returns The styles extracted from the components. + */ +export function getComponents(components: Record) { + return Object.fromEntries( + Object.entries(components) + .filter(([, component]) => component.styles !== undefined) + .map(([componentName, component]) => [ + componentName, + component.styles as Styles, + ]), + ); +} From a38fb5e0f003872a10c86834a413e90cd5ea026e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Wed, 3 Jul 2024 12:18:10 +0200 Subject: [PATCH 07/26] Add divider component --- .../examples/packages/jsx/src/components/Counter.tsx | 10 +--------- .../src/components/snaps/divider/Divider.styles.ts | 7 +++++++ .../src/components/snaps/divider/Divider.tsx | 12 ++++++++++++ .../src/components/snaps/divider/index.ts | 2 ++ .../snaps-storybook/src/components/snaps/index.ts | 2 ++ 5 files changed, 24 insertions(+), 9 deletions(-) create mode 100644 packages/snaps-storybook/src/components/snaps/divider/Divider.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/divider/Divider.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/divider/index.ts diff --git a/packages/examples/packages/jsx/src/components/Counter.tsx b/packages/examples/packages/jsx/src/components/Counter.tsx index 4309a9fd3d..a8d5e3fd76 100644 --- a/packages/examples/packages/jsx/src/components/Counter.tsx +++ b/packages/examples/packages/jsx/src/components/Counter.tsx @@ -1,12 +1,5 @@ import type { SnapComponent } from '@metamask/snaps-sdk/jsx'; -import { - Copyable, - Bold, - Button, - Box, - Text, - Tooltip, -} from '@metamask/snaps-sdk/jsx'; +import { Bold, Button, Box, Text, Tooltip } from '@metamask/snaps-sdk/jsx'; /** * The props for the {@link Counter} component. @@ -46,7 +39,6 @@ export const Counter: SnapComponent = ({ count }) => { - ); }; diff --git a/packages/snaps-storybook/src/components/snaps/divider/Divider.styles.ts b/packages/snaps-storybook/src/components/snaps/divider/Divider.styles.ts new file mode 100644 index 0000000000..2be86906ba --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/divider/Divider.styles.ts @@ -0,0 +1,7 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const styles = defineStyleConfig({ + baseStyle: defineStyle({ + borderColor: 'border.default', + }), +}); diff --git a/packages/snaps-storybook/src/components/snaps/divider/Divider.tsx b/packages/snaps-storybook/src/components/snaps/divider/Divider.tsx new file mode 100644 index 0000000000..cec06670d0 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/divider/Divider.tsx @@ -0,0 +1,12 @@ +import { Divider as ChakraDivider } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; + +/** + * A divider component, which is used to create a horizontal line between + * elements. + * + * This component does not have any props. + * + * @returns A divider element. + */ +export const Divider: FunctionComponent = () => ; diff --git a/packages/snaps-storybook/src/components/snaps/divider/index.ts b/packages/snaps-storybook/src/components/snaps/divider/index.ts new file mode 100644 index 0000000000..96aa6ac3ba --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/divider/index.ts @@ -0,0 +1,2 @@ +export { Divider as Component } from './Divider'; +export { styles } from './Divider.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index 57e4571c05..d2bf984855 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -7,6 +7,7 @@ import * as Address from './address'; import * as Box from './box'; import * as Button from './button'; import * as Copyable from './copyable'; +import * as Divider from './divider'; import * as Heading from './heading'; import * as Row from './row'; import * as Text from './text'; @@ -18,6 +19,7 @@ export const SNAPS_COMPONENTS: Record = { Box, Button, Copyable, + Divider, Heading, Row, Text, From f2e8e75bc14adc2037d161ad7d74627730805cd5 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Wed, 3 Jul 2024 14:46:04 +0200 Subject: [PATCH 08/26] Add footer component --- .../snaps-storybook/src/components/Header.tsx | 9 +- .../src/components/Renderer.tsx | 94 ++++++++++++--- .../src/components/custom/Extension.tsx | 43 ++++--- .../src/components/custom/utils.ts | 114 ++++++++++++++++++ .../src/components/snaps/box/Box.tsx | 4 +- .../components/snaps/button/Button.styles.tsx | 26 ++++ .../src/components/snaps/footer/Footer.tsx | 31 +++++ .../snaps/footer/components/Button.tsx | 30 +++++ .../snaps/footer/components/Buttons.tsx | 31 +++++ .../snaps/footer/components/CancelButton.tsx | 20 +++ .../snaps/footer/components/index.ts | 3 + .../src/components/snaps/footer/index.ts | 1 + .../src/components/snaps/heading/Heading.tsx | 4 +- .../src/components/snaps/index.ts | 2 + .../src/components/snaps/row/Row.tsx | 4 +- .../src/components/snaps/text/Text.tsx | 4 +- packages/snaps-storybook/src/render.tsx | 7 +- packages/snaps-storybook/src/theme/index.ts | 13 +- packages/snaps-storybook/src/theme/shadows.ts | 3 + packages/snaps-storybook/src/theme/utils.ts | 35 ++++++ 20 files changed, 424 insertions(+), 54 deletions(-) create mode 100644 packages/snaps-storybook/src/components/custom/utils.ts create mode 100644 packages/snaps-storybook/src/components/snaps/footer/Footer.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/footer/components/Button.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/footer/components/Buttons.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/footer/components/CancelButton.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/footer/components/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/footer/index.ts create mode 100644 packages/snaps-storybook/src/theme/shadows.ts diff --git a/packages/snaps-storybook/src/components/Header.tsx b/packages/snaps-storybook/src/components/Header.tsx index 2684a63750..598ee101a9 100644 --- a/packages/snaps-storybook/src/components/Header.tsx +++ b/packages/snaps-storybook/src/components/Header.tsx @@ -7,7 +7,14 @@ import type { FunctionComponent } from 'react'; * @returns The header element. */ export const Header: FunctionComponent = () => ( - + diff --git a/packages/snaps-storybook/src/components/Renderer.tsx b/packages/snaps-storybook/src/components/Renderer.tsx index 36a2fea696..4adb027b94 100644 --- a/packages/snaps-storybook/src/components/Renderer.tsx +++ b/packages/snaps-storybook/src/components/Renderer.tsx @@ -5,6 +5,11 @@ import type { FunctionComponent } from 'react'; import { CUSTOM_COMPONENTS } from './custom'; import { SNAPS_COMPONENTS } from './snaps'; +/** + * Custom component overrides. + */ +export type Overrides = Record>>; + /** * The props that are passed to a rendered component. * @@ -12,12 +17,6 @@ import { SNAPS_COMPONENTS } from './snaps'; * merged with the render props. */ export type RenderProps = Type & { - /** - * The unique ID to use as key for the renderer. This is used to ensure that - * the rendered components have unique keys. - */ - id: string; - /** * The Renderer component to use to render nested elements. */ @@ -39,8 +38,36 @@ export type RendererProps = { * The JSX element to render. */ element: Nestable; + + /** + * Custom component overrides. + */ + overrides?: Overrides; }; +/** + * Get the components to use for rendering JSX elements. + * + * @param overrides - Custom component overrides. + * @returns The components to use for rendering JSX elements. + */ +function getComponents( + overrides: Overrides, +): Record>> { + const snapsComponents = Object.fromEntries( + Object.entries(SNAPS_COMPONENTS).map(([key, value]) => [ + key, + value.Component, + ]), + ); + + return { + ...CUSTOM_COMPONENTS, + ...snapsComponents, + ...overrides, + }; +} + /** * The renderer component that renders Snaps JSX elements. It supports rendering * strings, JSX elements, booleans, null, and arrays thereof. @@ -49,9 +76,16 @@ export type RendererProps = { * @param props.id - The unique ID to use as key for the renderer. This is used * to ensure that the rendered components have unique keys. * @param props.element - The JSX element to render. + * @param props.overrides - Custom component overrides. * @returns The rendered component. */ -export const Renderer: FunctionComponent = ({ element, id }) => { +export const Renderer: FunctionComponent = ({ + element, + id, + overrides = {}, +}) => { + const components = getComponents(overrides); + if (typeof element === 'string') { return <>{element}; } @@ -68,23 +102,45 @@ export const Renderer: FunctionComponent = ({ element, id }) => { id={`${id}-${index}`} key={`${id}-${index}`} element={child} + overrides={overrides} /> ))} ); } - if (CUSTOM_COMPONENTS[element.type as keyof typeof CUSTOM_COMPONENTS]) { - const Component = - CUSTOM_COMPONENTS[element.type as keyof typeof CUSTOM_COMPONENTS]; - - // @ts-expect-error - TODO: Fix types. - return ; - } - - // eslint-disable-next-line import/namespace - const item = SNAPS_COMPONENTS[element.type]; - assert(item, `No component found for type: "${element.type}".`); + const Component = components[element.type]; + assert(Component, `No component found for type: "${element.type}".`); - return ; + return ( + + ); }; + +/** + * Create a renderer component that renders JSX elements with the given base ID + * and overrides. + * + * @param baseId - The base ID to use for the renderer. + * @param baseOverrides - The base custom component overrides. + * @returns The renderer component. + */ +function createRenderer(baseId: string, baseOverrides: Overrides) { + // eslint-disable-next-line @typescript-eslint/naming-convention + return function ChildRenderer({ id, element, overrides }: RendererProps) { + return ( + + ); + }; +} diff --git a/packages/snaps-storybook/src/components/custom/Extension.tsx b/packages/snaps-storybook/src/components/custom/Extension.tsx index 001e04019a..79580db037 100644 --- a/packages/snaps-storybook/src/components/custom/Extension.tsx +++ b/packages/snaps-storybook/src/components/custom/Extension.tsx @@ -1,10 +1,11 @@ -import { Box } from '@chakra-ui/react'; +import { Flex } from '@chakra-ui/react'; import type { JSXElement } from '@metamask/snaps-sdk/jsx'; import type { FunctionComponent } from 'react'; import { Delineator } from '../Delineator'; import { Header } from '../Header'; import type { RenderProps } from '../Renderer'; +import { getFooter } from './utils'; /** * The props for the {@link Extension} component. @@ -21,26 +22,36 @@ export type ExtensionProps = { * header and the content of the Snap in the delineator. * * @param props - The component props. - * @param props.id - The unique ID to use as key for the renderer. * @param props.children - The JSX element to render in the extension. * @param props.Renderer - The Renderer component to use to render nested * elements. * @returns The rendered component. */ export const Extension: FunctionComponent> = ({ - id, children, Renderer, -}) => ( - -
- - - - -); +}) => { + const footer = getFooter(children); + + return ( + +
+ + null, + }} + /> + + {footer && } + + ); +}; diff --git a/packages/snaps-storybook/src/components/custom/utils.ts b/packages/snaps-storybook/src/components/custom/utils.ts new file mode 100644 index 0000000000..0ceb9e486a --- /dev/null +++ b/packages/snaps-storybook/src/components/custom/utils.ts @@ -0,0 +1,114 @@ +// TODO: Move to `snaps-sdk`? + +import type { JSXElement, Nestable } from '@metamask/snaps-sdk/jsx'; +import { hasProperty, isPlainObject } from '@metamask/utils'; + +/** + * Check if a JSX element has children. + * + * @param element - A JSX element. + * @returns `true` if the element has children, `false` otherwise. + */ +export function hasChildren( + element: Element, +): element is Element & { + props: { children: Nestable }; +} { + return hasProperty(element.props, 'children'); +} + +/** + * Filter a JSX child to remove `null`, `undefined`, plain booleans, and empty + * strings. + * + * @param child - The JSX child to filter. + * @returns `true` if the child is not `null`, `undefined`, a plain boolean, or + * an empty string, `false` otherwise. + */ +function filterJsxChild(child: JSXElement | string | boolean | null): boolean { + return Boolean(child) && child !== true; +} + +/** + * Get the children of a JSX element as an array. If the element has only one + * child, the child is returned as an array. + * + * @param element - A JSX element. + * @returns The children of the element. + */ +export function getJsxChildren(element: JSXElement): (JSXElement | string)[] { + if (hasChildren(element)) { + if (Array.isArray(element.props.children)) { + // @ts-expect-error - Each member of the union type has signatures, but + // none of those signatures are compatible with each other. + return element.props.children.filter(filterJsxChild).flat(Infinity); + } + + if (element.props.children) { + return [element.props.children]; + } + } + + return []; +} + +/** + * Walk a JSX tree and call a callback on each node. + * + * @param node - The JSX node to walk. + * @param callback - The callback to call on each node. + * @param depth - The current depth in the JSX tree for a walk. + * @returns The result of the callback, if any. + */ +export function walkJsx( + node: JSXElement | JSXElement[], + callback: (node: JSXElement, depth: number) => Value | undefined, + depth = 0, +): Value | undefined { + if (Array.isArray(node)) { + for (const child of node) { + const childResult = walkJsx(child as JSXElement, callback, depth); + if (childResult !== undefined) { + return childResult; + } + } + + return undefined; + } + + const result = callback(node, depth); + if (result !== undefined) { + return result; + } + + if (hasChildren(node)) { + const children = getJsxChildren(node); + for (const child of children) { + if (isPlainObject(child)) { + const childResult = walkJsx(child, callback, depth + 1); + if (childResult !== undefined) { + return childResult; + } + } + } + } + + return undefined; +} + +/** + * Get the footer element from the JSX element tree. + * + * @param element - The JSX element to search for the footer. + * @returns The footer element. + */ +export function getFooter(element: JSXElement) { + // eslint-disable-next-line consistent-return + const footer = walkJsx(element, (node) => { + if (node.type === 'Footer') { + return node; + } + }); + + return footer; +} diff --git a/packages/snaps-storybook/src/components/snaps/box/Box.tsx b/packages/snaps-storybook/src/components/snaps/box/Box.tsx index 4c469a5ff8..f1a32fea08 100644 --- a/packages/snaps-storybook/src/components/snaps/box/Box.tsx +++ b/packages/snaps-storybook/src/components/snaps/box/Box.tsx @@ -43,7 +43,6 @@ function getFlexProps({ * The box component. See {@link BoxProps} for the props. * * @param props - The box props. - * @param props.id - The unique ID to use as key for the renderer. * @param props.direction - The box direction. * @param props.alignment - The box alignment. * @param props.children - The box content. @@ -52,7 +51,6 @@ function getFlexProps({ * @returns The rendered box. */ export const Box: FunctionComponent> = ({ - id, direction, alignment, children, @@ -60,7 +58,7 @@ export const Box: FunctionComponent> = ({ }) => { return ( - + ); }; diff --git a/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx b/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx index fcc3b8b100..d2efdf587f 100644 --- a/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx +++ b/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx @@ -26,6 +26,18 @@ export const styles = defineStyleConfig({ color: 'text.muted', }, }), + + solid: defineStyle({ + color: 'background.default', + backgroundColor: 'text.default', + _disabled: { + backgroundColor: 'text.muted', + }, + + _hover: { + backgroundColor: 'text.alternative', + }, + }), }, sizes: { @@ -38,6 +50,20 @@ export const styles = defineStyleConfig({ paddingInlineStart: 0, paddingInlineEnd: 0, }), + + large: defineStyle({ + lineHeight: 'short', + fontSize: 'sm', + fontWeight: '500', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + paddingX: '4', + height: '48px', + borderRadius: 'full', + border: '1px solid', + borderColor: 'currentColor', + }), }, defaultProps: { diff --git a/packages/snaps-storybook/src/components/snaps/footer/Footer.tsx b/packages/snaps-storybook/src/components/snaps/footer/Footer.tsx new file mode 100644 index 0000000000..061737c232 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/footer/Footer.tsx @@ -0,0 +1,31 @@ +import { Box } from '@chakra-ui/react'; +import type { FooterProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; +import { Buttons } from './components'; + +/** + * The footer component. See {@link FooterProps} for the props. + * + * @param props - The component props. + * @param props.children - The footer buttons. + * @param props.Renderer - The Renderer component to use to render nested + * elements. + * @returns The rendered footer. + */ +export const Footer: FunctionComponent> = (props) => { + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/footer/components/Button.tsx b/packages/snaps-storybook/src/components/snaps/footer/components/Button.tsx new file mode 100644 index 0000000000..f2817d9176 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/footer/components/Button.tsx @@ -0,0 +1,30 @@ +import { Button as ChakraButton } from '@chakra-ui/react'; +import type { ButtonProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../../Renderer'; + +/** + * A footer button. + * + * @param props - The button props. + * @param props.children - The button label. + * @param props.Renderer - The Renderer component to use to render nested elements. + * @returns The button element. + */ +export const Button: FunctionComponent> = ({ + children, + Renderer, +}) => { + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/footer/components/Buttons.tsx b/packages/snaps-storybook/src/components/snaps/footer/components/Buttons.tsx new file mode 100644 index 0000000000..848cff48c2 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/footer/components/Buttons.tsx @@ -0,0 +1,31 @@ +import type { FooterProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../../Renderer'; +import { Button } from './Button'; +import { CancelButton } from './CancelButton'; + +/** + * The footer buttons. + * + * @param props - The component props. + * @param props.children - The footer buttons. + * @param props.Renderer - The Renderer component to use to render nested + * elements. + * @returns The footer buttons element. + */ +export const Buttons: FunctionComponent> = ({ + children, + Renderer, +}) => { + if (Array.isArray(children)) { + return ; + } + + return ( + <> + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/footer/components/CancelButton.tsx b/packages/snaps-storybook/src/components/snaps/footer/components/CancelButton.tsx new file mode 100644 index 0000000000..84c8592efd --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/footer/components/CancelButton.tsx @@ -0,0 +1,20 @@ +import type { ButtonProps } from '@chakra-ui/react'; +import { Button } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; + +export type CancelButtonProps = ButtonProps; + +/** + * A cancel button. + * + * @param props - The button props. + * @param props.children - The button label. + * @returns The cancel button element. + */ +export const CancelButton: FunctionComponent = (props) => { + return ( + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/footer/components/index.ts b/packages/snaps-storybook/src/components/snaps/footer/components/index.ts new file mode 100644 index 0000000000..45edde9237 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/footer/components/index.ts @@ -0,0 +1,3 @@ +export * from './Button'; +export * from './Buttons'; +export * from './CancelButton'; diff --git a/packages/snaps-storybook/src/components/snaps/footer/index.ts b/packages/snaps-storybook/src/components/snaps/footer/index.ts new file mode 100644 index 0000000000..397a4d29e9 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/footer/index.ts @@ -0,0 +1 @@ +export { Footer as Component } from './Footer'; diff --git a/packages/snaps-storybook/src/components/snaps/heading/Heading.tsx b/packages/snaps-storybook/src/components/snaps/heading/Heading.tsx index ff4aea1397..c3a7a729b3 100644 --- a/packages/snaps-storybook/src/components/snaps/heading/Heading.tsx +++ b/packages/snaps-storybook/src/components/snaps/heading/Heading.tsx @@ -8,20 +8,18 @@ import type { RenderProps } from '../../Renderer'; * The heading component. See {@link HeadingProps} for the props. * * @param props - The heading props. - * @param props.id - The unique ID to use as key for the renderer. * @param props.children - The heading content. * @param props.Renderer - The Renderer component to use to render nested * elements. * @returns The rendered heading. */ export const Heading: FunctionComponent> = ({ - id, children, Renderer, }) => { return ( - + ); }; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index d2bf984855..edddee87ec 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -8,6 +8,7 @@ import * as Box from './box'; import * as Button from './button'; import * as Copyable from './copyable'; import * as Divider from './divider'; +import * as Footer from './footer'; import * as Heading from './heading'; import * as Row from './row'; import * as Text from './text'; @@ -20,6 +21,7 @@ export const SNAPS_COMPONENTS: Record = { Button, Copyable, Divider, + Footer, Heading, Row, Text, diff --git a/packages/snaps-storybook/src/components/snaps/row/Row.tsx b/packages/snaps-storybook/src/components/snaps/row/Row.tsx index bd351c8e9f..301a0134e6 100644 --- a/packages/snaps-storybook/src/components/snaps/row/Row.tsx +++ b/packages/snaps-storybook/src/components/snaps/row/Row.tsx @@ -57,7 +57,6 @@ const Tooltip: FunctionComponent = ({ tooltip, variant }) => { * The row component. See {@link RowProps} for the props. * * @param props - The props of the component. - * @param props.id - The unique ID to use as key for the renderer. * @param props.label - The label of the row. * @param props.variant - The variant of the row. * @param props.tooltip - The tooltip content. @@ -67,7 +66,6 @@ const Tooltip: FunctionComponent = ({ tooltip, variant }) => { * @returns A row element. */ export const Row: FunctionComponent> = ({ - id, label, variant = 'default', tooltip, @@ -82,7 +80,7 @@ export const Row: FunctionComponent> = ({ {label} - + ); }; diff --git a/packages/snaps-storybook/src/components/snaps/text/Text.tsx b/packages/snaps-storybook/src/components/snaps/text/Text.tsx index cb80bf229e..7b33cf0df7 100644 --- a/packages/snaps-storybook/src/components/snaps/text/Text.tsx +++ b/packages/snaps-storybook/src/components/snaps/text/Text.tsx @@ -8,20 +8,18 @@ import type { RenderProps } from '../../Renderer'; * The text component. See {@link TextProps} for the props. * * @param props - The text props. - * @param props.id - The unique ID to use as key for the renderer. * @param props.children - The text content. * @param props.Renderer - The Renderer component to use to render nested * elements. * @returns The rendered text. */ export const Text: FunctionComponent> = ({ - id, children, Renderer, }) => { return ( - + ); }; diff --git a/packages/snaps-storybook/src/render.tsx b/packages/snaps-storybook/src/render.tsx index 3c4e3ff956..b4fbab553a 100644 --- a/packages/snaps-storybook/src/render.tsx +++ b/packages/snaps-storybook/src/render.tsx @@ -4,6 +4,7 @@ import type { ArgsStoryFn, RenderToCanvas } from '@storybook/types'; import { StrictMode } from 'react'; import { ErrorBoundary, Renderer } from './components'; +import { CUSTOM_COMPONENTS } from './components/custom'; import type { SnapsRenderer } from './types'; /** @@ -47,7 +48,11 @@ export const renderToCanvas: RenderToCanvas = async ( const element = ( - + ); diff --git a/packages/snaps-storybook/src/theme/index.ts b/packages/snaps-storybook/src/theme/index.ts index 30af6376e0..089425913c 100644 --- a/packages/snaps-storybook/src/theme/index.ts +++ b/packages/snaps-storybook/src/theme/index.ts @@ -4,22 +4,25 @@ import { SNAPS_COMPONENTS } from '../components'; import { borders } from './borders'; import { config } from './config'; import { lineHeights } from './line-heights'; +import { shadows } from './shadows'; import { styles } from './styles'; import { getComponents, getDesignTokens } from './utils'; export const theme = extendTheme({ config, components: getComponents(SNAPS_COMPONENTS), + + fonts: { + heading: `"Euclid Circular B", sans-serif`, + body: `"Euclid Circular B", sans-serif`, + }, + lineHeights, semanticTokens: { borders, colors: getDesignTokens('colors'), - }, - - fonts: { - heading: `"Euclid Circular B", sans-serif`, - body: `"Euclid Circular B", sans-serif`, + shadows, }, styles, diff --git a/packages/snaps-storybook/src/theme/shadows.ts b/packages/snaps-storybook/src/theme/shadows.ts new file mode 100644 index 0000000000..2f447fb23d --- /dev/null +++ b/packages/snaps-storybook/src/theme/shadows.ts @@ -0,0 +1,3 @@ +import { getShadows } from './utils'; + +export const shadows = getShadows(); diff --git a/packages/snaps-storybook/src/theme/utils.ts b/packages/snaps-storybook/src/theme/utils.ts index dc52fa2e01..8130808e83 100644 --- a/packages/snaps-storybook/src/theme/utils.ts +++ b/packages/snaps-storybook/src/theme/utils.ts @@ -38,6 +38,41 @@ export function getDesignTokens(themeValue: keyof Theme): DesignTokens { ); } +/** + * The shadow shape type from `@metamask/design-tokens`. It's not exported from + * the package, so we need to define it here. + */ +type ShadowShape = Theme['shadows']['size']['xs']; + +/** + * Get a shadow string from a {@link ShadowShape} object. + * + * @param shape - The shadow shape to get the string for. + * @returns The shadow string. + */ +function getShadow(shape: ShadowShape) { + return `${shape.shadowOffset.width}px ${shape.shadowOffset.height}px ${shape.shadowRadius}px 0px ${shape.shadowColor}`; +} + +/** + * Get the shadows from the design tokens. + * + * @returns The shadows extracted from the design tokens. + */ +export function getShadows() { + return Object.fromEntries( + Object.entries(lightTheme.shadows.size).map(([key, value]) => [ + key, + { + default: getShadow(value), + _dark: getShadow( + darkTheme.shadows.size[key as keyof Theme['shadows']['size']], + ), + }, + ]), + ); +} + export type Styles = ReturnType; /** From 4c380cb28185b690ca9285782080091dd01319a2 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Wed, 3 Jul 2024 16:09:17 +0200 Subject: [PATCH 09/26] Hide module level directive warnings --- packages/snaps-storybook/src/preset.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/snaps-storybook/src/preset.ts b/packages/snaps-storybook/src/preset.ts index 92fadf5305..5d12ff13c2 100644 --- a/packages/snaps-storybook/src/preset.ts +++ b/packages/snaps-storybook/src/preset.ts @@ -137,6 +137,19 @@ export const previewHead: PresetProperty<'previewHead'> = (head = '') => ` export const viteFinal: ViteFinal = (config) => { return { ...config, + build: { + ...config.build, + rollupOptions: { + ...config.build?.rollupOptions, + onwarn: (warning, warn) => { + if (warning.code === 'MODULE_LEVEL_DIRECTIVE') { + return; + } + + warn(warning); + }, + }, + }, plugins: [ ...(config.plugins as PluginOption[]), nodePolyfills({ From a0c1faf4690eef065507ff9b391c7d4284d3565d Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 09:39:49 +0200 Subject: [PATCH 10/26] Add bold, italic, link, text, tooltip components --- .../src/components/icons/ExportIcon.tsx | 11 +++++++ .../src/components/icons/index.ts | 1 + .../src/components/snaps/bold/Bold.tsx | 13 ++++++++ .../src/components/snaps/bold/index.ts | 1 + .../src/components/snaps/index.ts | 8 +++++ .../src/components/snaps/italic/Italic.tsx | 13 ++++++++ .../src/components/snaps/italic/index.ts | 1 + .../src/components/snaps/link/Link.styles.ts | 10 ++++++ .../src/components/snaps/link/Link.tsx | 17 ++++++++++ .../src/components/snaps/link/index.ts | 2 ++ .../src/components/snaps/text/Text.styles.ts | 2 +- .../snaps/tooltip/Tooltip.styles.ts | 24 ++++++++++++++ .../src/components/snaps/tooltip/Tooltip.tsx | 33 +++++++++++++++++++ .../src/components/snaps/tooltip/index.ts | 2 ++ packages/snaps-storybook/src/theme/styles.ts | 1 + 15 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 packages/snaps-storybook/src/components/icons/ExportIcon.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/bold/Bold.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/bold/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/italic/Italic.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/italic/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/link/Link.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/link/Link.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/link/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/tooltip/index.ts diff --git a/packages/snaps-storybook/src/components/icons/ExportIcon.tsx b/packages/snaps-storybook/src/components/icons/ExportIcon.tsx new file mode 100644 index 0000000000..ceadd59491 --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/ExportIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const ExportIcon = createIcon({ + displayName: 'ExportIcon', + viewBox: '0 0 512 512', + d: 'm313 469l-114 0c-108 0-156-48-156-156l0-114c0-108 48-156 156-156l39 0c13 0 23 9 23 23 0 13-10 23-23 23l-39 0c-83 0-110 27-110 110l0 114c0 83 27 110 110 110l114 0c83 0 110-27 110-110l0-39c0-13 10-23 23-23 14 0 23 10 23 23l0 39c0 108-48 156-156 156z m-39-208c-7 0-11-3-16-7-9-9-9-23 0-32l133-133-36 0c-14 0-23-10-23-23 0-14 9-23 23-23l91 0c14 0 23 9 23 23l0 91c0 14-9 23-23 23-13 0-23-9-23-23l0-36-133 133c-4 4-9 7-16 7z', + defaultProps: { + width: '14px', + height: '14px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/index.ts b/packages/snaps-storybook/src/components/icons/index.ts index 4407bea4db..7cdc782005 100644 --- a/packages/snaps-storybook/src/components/icons/index.ts +++ b/packages/snaps-storybook/src/components/icons/index.ts @@ -1,6 +1,7 @@ export * from './CopyIcon'; export * from './CopySuccessIcon'; export * from './DangerIcon'; +export * from './ExportIcon'; export * from './EyeIcon'; export * from './EyeSlashIcon'; export * from './QuestionIcon'; diff --git a/packages/snaps-storybook/src/components/snaps/bold/Bold.tsx b/packages/snaps-storybook/src/components/snaps/bold/Bold.tsx new file mode 100644 index 0000000000..d57421c71a --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/bold/Bold.tsx @@ -0,0 +1,13 @@ +import type { BoldProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +export const Bold: FunctionComponent> = ({ + children, + Renderer, +}) => ( + + + +); diff --git a/packages/snaps-storybook/src/components/snaps/bold/index.ts b/packages/snaps-storybook/src/components/snaps/bold/index.ts new file mode 100644 index 0000000000..1f712b0d75 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/bold/index.ts @@ -0,0 +1 @@ +export { Bold as Component } from './Bold'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index edddee87ec..4ffcbcb382 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -4,27 +4,35 @@ // window and provide the necessary context for the Snap to render. import * as Address from './address'; +import * as Bold from './bold'; import * as Box from './box'; import * as Button from './button'; import * as Copyable from './copyable'; import * as Divider from './divider'; import * as Footer from './footer'; import * as Heading from './heading'; +import * as Italic from './italic'; +import * as Link from './link'; import * as Row from './row'; import * as Text from './text'; +import * as Tooltip from './tooltip'; import type { Component } from './types'; // TODO: Change `string` to `JSXElement['type']`. export const SNAPS_COMPONENTS: Record = { Address, + Bold, Box, Button, Copyable, Divider, Footer, Heading, + Italic, + Link, Row, Text, + Tooltip, }; export * from './types'; diff --git a/packages/snaps-storybook/src/components/snaps/italic/Italic.tsx b/packages/snaps-storybook/src/components/snaps/italic/Italic.tsx new file mode 100644 index 0000000000..2134b3edb9 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/italic/Italic.tsx @@ -0,0 +1,13 @@ +import type { ItalicProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +export const Italic: FunctionComponent> = ({ + children, + Renderer, +}) => ( + + + +); diff --git a/packages/snaps-storybook/src/components/snaps/italic/index.ts b/packages/snaps-storybook/src/components/snaps/italic/index.ts new file mode 100644 index 0000000000..e8c24b5526 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/italic/index.ts @@ -0,0 +1 @@ +export { Italic as Component } from './Italic'; diff --git a/packages/snaps-storybook/src/components/snaps/link/Link.styles.ts b/packages/snaps-storybook/src/components/snaps/link/Link.styles.ts new file mode 100644 index 0000000000..ff16add004 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/link/Link.styles.ts @@ -0,0 +1,10 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const styles = defineStyleConfig({ + baseStyle: defineStyle({ + color: 'primary.default', + display: 'inline-flex', + alignItems: 'center', + gap: '1', + }), +}); diff --git a/packages/snaps-storybook/src/components/snaps/link/Link.tsx b/packages/snaps-storybook/src/components/snaps/link/Link.tsx new file mode 100644 index 0000000000..3ae338f9c8 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/link/Link.tsx @@ -0,0 +1,17 @@ +import { Link as ChakraLink } from '@chakra-ui/react'; +import type { LinkProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import { ExportIcon } from '../../icons'; +import type { RenderProps } from '../../Renderer'; + +export const Link: FunctionComponent> = ({ + href, + children, + Renderer, +}) => ( + + + + +); diff --git a/packages/snaps-storybook/src/components/snaps/link/index.ts b/packages/snaps-storybook/src/components/snaps/link/index.ts new file mode 100644 index 0000000000..e13346d6d5 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/link/index.ts @@ -0,0 +1,2 @@ +export { Link as Component } from './Link'; +export { styles } from './Link.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/text/Text.styles.ts b/packages/snaps-storybook/src/components/snaps/text/Text.styles.ts index aecdacb557..1988f65db2 100644 --- a/packages/snaps-storybook/src/components/snaps/text/Text.styles.ts +++ b/packages/snaps-storybook/src/components/snaps/text/Text.styles.ts @@ -2,7 +2,7 @@ import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; export const styles = defineStyleConfig({ baseStyle: defineStyle({ - fontSize: 'sm', + fontSize: 'inherit', lineHeight: 'short', }), }); diff --git a/packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.styles.ts b/packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.styles.ts new file mode 100644 index 0000000000..e5a9c98025 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.styles.ts @@ -0,0 +1,24 @@ +import { cssVar, defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +const background = cssVar('popper-arrow-bg'); + +export const styles = defineStyleConfig({ + baseStyle: defineStyle({ + background: 'background.default', + color: 'text.default', + boxShadow: 'md', + [background.variable]: 'colors.background.default', + }), + + sizes: { + sm: defineStyle({ + fontSize: 'xs', + fontWeight: 'normal', + lineHeight: 'short', + }), + }, + + defaultProps: { + size: 'sm', + }, +}); diff --git a/packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.tsx b/packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.tsx new file mode 100644 index 0000000000..10d63c32c8 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/tooltip/Tooltip.tsx @@ -0,0 +1,33 @@ +import { Box, Tooltip as ChakraTooltip } from '@chakra-ui/react'; +import type { TooltipProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +/** + * The text component. See {@link TooltipProps} for the props. + * + * @param props - The tooltip props. + * @param props.content - The text to display in the tooltip. + * @param props.children - The children to render outside the tooltip, which + * will trigger the tooltip to display. + * @param props.Renderer - The Renderer component to use to render nested + * elements. + * @returns The rendered text. + */ +export const Tooltip: FunctionComponent> = ({ + content, + children, + Renderer, +}) => { + return ( + } + > + + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/tooltip/index.ts b/packages/snaps-storybook/src/components/snaps/tooltip/index.ts new file mode 100644 index 0000000000..288cdc62ff --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/tooltip/index.ts @@ -0,0 +1,2 @@ +export { Tooltip as Component } from './Tooltip'; +export { styles } from './Tooltip.styles'; diff --git a/packages/snaps-storybook/src/theme/styles.ts b/packages/snaps-storybook/src/theme/styles.ts index e937732b67..21ca2934d1 100644 --- a/packages/snaps-storybook/src/theme/styles.ts +++ b/packages/snaps-storybook/src/theme/styles.ts @@ -5,6 +5,7 @@ export const styles: Styles = { body: { background: 'background.default', color: 'text.default', + fontSize: 'sm', }, // The Storybook docs container. From 3bcd3b81a213015181c191faa4f8acdd0704d04e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 11:53:14 +0200 Subject: [PATCH 11/26] Add input and field components --- packages/snaps-storybook/.eslintrc.js | 10 +++ packages/snaps-storybook/jest.config.js | 2 +- packages/snaps-storybook/package.json | 1 + .../{Button.styles.tsx => Button.styles.ts} | 2 - .../components/snaps/field/Field.styles.ts | 43 +++++++++++++ .../src/components/snaps/field/Field.tsx | 30 +++++++++ .../snaps/field/components/Input.tsx | 62 +++++++++++++++++++ .../snaps/field/components/index.ts | 1 + .../src/components/snaps/field/index.ts | 2 + .../src/components/snaps/index.ts | 4 ++ .../components/snaps/input/Input.styles.ts | 44 +++++++++++++ .../src/components/snaps/input/Input.tsx | 32 ++++++++++ .../src/components/snaps/input/index.ts | 2 + .../src/components/snaps/types.ts | 4 +- packages/snaps-storybook/src/theme/utils.ts | 45 +++++++++++--- yarn.lock | 1 + 16 files changed, 272 insertions(+), 13 deletions(-) rename packages/snaps-storybook/src/components/snaps/button/{Button.styles.tsx => Button.styles.ts} (95%) create mode 100644 packages/snaps-storybook/src/components/snaps/field/Field.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/field/Field.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/field/components/Input.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/field/components/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/field/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/input/Input.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/input/Input.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/input/index.ts diff --git a/packages/snaps-storybook/.eslintrc.js b/packages/snaps-storybook/.eslintrc.js index a47fd0b65d..7a42669cc7 100644 --- a/packages/snaps-storybook/.eslintrc.js +++ b/packages/snaps-storybook/.eslintrc.js @@ -4,4 +4,14 @@ module.exports = { parserOptions: { tsconfigRootDir: __dirname, }, + + overrides: [ + { + files: ['**/theme/**/*.ts', '**/components/snaps/**/*.styles.ts'], + rules: { + '@typescript-eslint/naming-convention': 'off', + '@typescript-eslint/unbound-method': 'off', + }, + }, + ], }; diff --git a/packages/snaps-storybook/jest.config.js b/packages/snaps-storybook/jest.config.js index 17019b1bfa..cde979cb23 100644 --- a/packages/snaps-storybook/jest.config.js +++ b/packages/snaps-storybook/jest.config.js @@ -31,7 +31,7 @@ module.exports = deepmerge(baseConfig, { { tsconfig: { jsx: 'react-jsx', - jsxImportSource: resolve(__dirname, './src/jsx'), + jsxImportSource: 'react', }, }, ], diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index d17bf325b9..4b852ee185 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -48,6 +48,7 @@ "@babel/parser": "^7.24.7", "@babel/traverse": "^7.24.7", "@babel/types": "^7.23.0", + "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/react": "^2.6.1", "@emotion/react": "^11.10.8", "@emotion/styled": "^11.10.8", diff --git a/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx b/packages/snaps-storybook/src/components/snaps/button/Button.styles.ts similarity index 95% rename from packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx rename to packages/snaps-storybook/src/components/snaps/button/Button.styles.ts index d2efdf587f..6b437ad162 100644 --- a/packages/snaps-storybook/src/components/snaps/button/Button.styles.tsx +++ b/packages/snaps-storybook/src/components/snaps/button/Button.styles.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/naming-convention */ - import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; export const styles = defineStyleConfig({ diff --git a/packages/snaps-storybook/src/components/snaps/field/Field.styles.ts b/packages/snaps-storybook/src/components/snaps/field/Field.styles.ts new file mode 100644 index 0000000000..148f13ca0b --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/field/Field.styles.ts @@ -0,0 +1,43 @@ +import { formAnatomy, formErrorAnatomy } from '@chakra-ui/anatomy'; +import { + createMultiStyleConfigHelpers, + defineStyleConfig, +} from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(formAnatomy.keys); + +const { + definePartsStyle: defineErrorPartsStyle, + defineMultiStyleConfig: defineErrorMultiStyleConfig, +} = createMultiStyleConfigHelpers(formErrorAnatomy.keys); + +export const styles = { + FormControl: defineMultiStyleConfig({ + baseStyle: definePartsStyle({ + helperText: { + color: 'error.default', + marginTop: '1', + fontSize: '2xs', + }, + }), + }), + + FormError: defineErrorMultiStyleConfig({ + baseStyle: defineErrorPartsStyle({ + text: { + color: 'error.default', + fontSize: '2xs', + marginTop: '1', + }, + }), + }), + + FormLabel: defineStyleConfig({ + baseStyle: { + color: 'text.default', + fontSize: 'sm', + marginBottom: '0', + }, + }), +}; diff --git a/packages/snaps-storybook/src/components/snaps/field/Field.tsx b/packages/snaps-storybook/src/components/snaps/field/Field.tsx new file mode 100644 index 0000000000..ad68b63e79 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/field/Field.tsx @@ -0,0 +1,30 @@ +import { FormControl, FormErrorMessage, FormLabel } from '@chakra-ui/react'; +import type { FieldProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; +import { Input } from './components'; + +/** + * The field component, which wraps an input element with a label and optional + * error message. See the {@link FieldProps} type for the props. + * + * @param props - The props of the component. + * @param props.label - The label of the field. + * @param props.error - The error message of the field. + * @param props.children - The input field to render inside the field. + * @param props.Renderer - The renderer to use for the input field. + * @returns The field element. + */ +export const Field: FunctionComponent> = ({ + label, + error, + children, + Renderer, +}) => ( + + {label} + + {error && {error}} + +); diff --git a/packages/snaps-storybook/src/components/snaps/field/components/Input.tsx b/packages/snaps-storybook/src/components/snaps/field/components/Input.tsx new file mode 100644 index 0000000000..d02e8b8d42 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/field/components/Input.tsx @@ -0,0 +1,62 @@ +import { InputGroup, InputRightElement } from '@chakra-ui/react'; +import type { FieldProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; +import { useEffect, useState, useRef } from 'react'; + +import type { RendererProps } from '../../../Renderer'; + +/** + * The props for the {@link Input} component. + */ +export type InputProps = { + /** + * The input element to render. + */ + element: FieldProps['children']; + + /** + * The renderer to use for the input field. + */ + // eslint-disable-next-line @typescript-eslint/naming-convention + Renderer: FunctionComponent; +}; + +/** + * This is a wrapper of the input component, which allows for rendering + * different types of input fields. + * + * @param props - The component props. + * @param props.element - The input element to render. + * @param props.Renderer - The renderer to use for the input field. + * @returns The rendered input component. + */ +export const Input: FunctionComponent = ({ element, Renderer }) => { + const ref = useRef(null); + const [width, setWidth] = useState(0); + + useEffect(() => { + if (ref.current) { + setWidth(ref.current.offsetWidth); + } + }, [element, ref]); + + if (Array.isArray(element)) { + const [input, button] = element; + return ( + + + + + + + ); + } + + return ; +}; diff --git a/packages/snaps-storybook/src/components/snaps/field/components/index.ts b/packages/snaps-storybook/src/components/snaps/field/components/index.ts new file mode 100644 index 0000000000..ba9fe7ebc6 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/field/components/index.ts @@ -0,0 +1 @@ +export * from './Input'; diff --git a/packages/snaps-storybook/src/components/snaps/field/index.ts b/packages/snaps-storybook/src/components/snaps/field/index.ts new file mode 100644 index 0000000000..2c0bdd061d --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/field/index.ts @@ -0,0 +1,2 @@ +export { Field as Component } from './Field'; +export { styles } from './Field.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index 4ffcbcb382..eb3e3eafdc 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -9,8 +9,10 @@ import * as Box from './box'; import * as Button from './button'; import * as Copyable from './copyable'; import * as Divider from './divider'; +import * as Field from './field'; import * as Footer from './footer'; import * as Heading from './heading'; +import * as Input from './input'; import * as Italic from './italic'; import * as Link from './link'; import * as Row from './row'; @@ -26,8 +28,10 @@ export const SNAPS_COMPONENTS: Record = { Button, Copyable, Divider, + Field, Footer, Heading, + Input, Italic, Link, Row, diff --git a/packages/snaps-storybook/src/components/snaps/input/Input.styles.ts b/packages/snaps-storybook/src/components/snaps/input/Input.styles.ts new file mode 100644 index 0000000000..4aa97c6b3a --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/input/Input.styles.ts @@ -0,0 +1,44 @@ +import { inputAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(inputAnatomy.keys); + +export const styles = defineMultiStyleConfig({ + baseStyle: definePartsStyle({ + field: { + color: 'text.default', + fontSize: 'sm', + paddingX: '4', + paddingY: '2', + }, + }), + + variants: { + outline: definePartsStyle({ + field: { + background: 'background.default', + borderWidth: '1px', + borderStyle: 'solid', + borderColor: 'border.default', + borderRadius: 'base', + _focus: { + outline: '5px auto', + outlineColor: 'primary.default', + outlineOffset: '0', + }, + _placeholder: { + color: 'text.alternative', + }, + _invalid: { + borderColor: 'error.default', + boxShadow: 'none', + }, + }, + }), + }, + + defaultProps: { + variant: 'outline', + }, +}); diff --git a/packages/snaps-storybook/src/components/snaps/input/Input.tsx b/packages/snaps-storybook/src/components/snaps/input/Input.tsx new file mode 100644 index 0000000000..c756d39165 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/input/Input.tsx @@ -0,0 +1,32 @@ +import { Input as ChakraInput } from '@chakra-ui/react'; +import type { InputProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +/** + * The input component renders an input field. See the {@link InputProps} type + * for the props. + * + * @param props - The props of the component. + * @param props.name - The name of the input field. + * @param props.type - The type of the input field. + * @param props.value - The default value of the input field. + * @param props.placeholder - The placeholder text of the input field. + * @returns The input element. + */ +export const Input: FunctionComponent> = ({ + name, + type, + value, + placeholder, +}) => { + return ( + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/input/index.ts b/packages/snaps-storybook/src/components/snaps/input/index.ts new file mode 100644 index 0000000000..7d09aa5c21 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/input/index.ts @@ -0,0 +1,2 @@ +export { Input as Component } from './Input'; +export { styles } from './Input.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/types.ts b/packages/snaps-storybook/src/components/snaps/types.ts index ecc5ec65e3..65114c9a00 100644 --- a/packages/snaps-storybook/src/components/snaps/types.ts +++ b/packages/snaps-storybook/src/components/snaps/types.ts @@ -1,6 +1,6 @@ import type { ComponentType } from 'react'; -import type { Styles } from '../../theme/utils'; +import type { MultiStyles, Styles } from '../../theme/utils'; /** * A component that can be rendered in Storybook. @@ -15,5 +15,5 @@ export type Component = { /** * The optional Chakra UI styles for the component. */ - styles?: Styles; + styles?: Styles | MultiStyles | Record; }; diff --git a/packages/snaps-storybook/src/theme/utils.ts b/packages/snaps-storybook/src/theme/utils.ts index 8130808e83..a2f12e7c72 100644 --- a/packages/snaps-storybook/src/theme/utils.ts +++ b/packages/snaps-storybook/src/theme/utils.ts @@ -1,8 +1,10 @@ /* eslint-disable @typescript-eslint/naming-convention */ +import type { createMultiStyleConfigHelpers } from '@chakra-ui/react'; import type { defineStyleConfig } from '@chakra-ui/styled-system'; import type { Theme } from '@metamask/design-tokens'; import { darkTheme, lightTheme } from '@metamask/design-tokens'; +import { hasProperty } from '@metamask/utils'; import type { Component } from '../components'; @@ -73,8 +75,28 @@ export function getShadows() { ); } +export type MultiStyles = ReturnType< + ReturnType['defineMultiStyleConfig'] +>; + export type Styles = ReturnType; +/** + * Check if the styles provided are a record of styles. + * + * @param styles - The styles to check. + * @returns Whether the styles are a record of styles. + */ +export function isStylesRecord( + styles?: Styles | MultiStyles | Record, +): styles is Record { + return ( + styles !== undefined && + !hasProperty(styles, 'baseStyle') && + !hasProperty(styles, 'variants') + ); +} + /** * Extract the styles from the components provided. * @@ -82,12 +104,19 @@ export type Styles = ReturnType; * @returns The styles extracted from the components. */ export function getComponents(components: Record) { - return Object.fromEntries( - Object.entries(components) - .filter(([, component]) => component.styles !== undefined) - .map(([componentName, component]) => [ - componentName, - component.styles as Styles, - ]), - ); + return Object.entries(components) + .filter(([, component]) => component.styles !== undefined) + .reduce((accumulator, [componentName, component]) => { + if (isStylesRecord(component.styles)) { + return { + ...accumulator, + ...component.styles, + }; + } + + return { + ...accumulator, + [componentName]: component.styles, + }; + }, {}); } diff --git a/yarn.lock b/yarn.lock index 3ada9642b7..46848dd2d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6439,6 +6439,7 @@ __metadata: "@babel/parser": ^7.24.7 "@babel/traverse": ^7.24.7 "@babel/types": ^7.23.0 + "@chakra-ui/anatomy": ^2.1.1 "@chakra-ui/react": ^2.6.1 "@emotion/react": ^11.10.8 "@emotion/styled": ^11.10.8 From 358ff0d2fc88cbb029160fd5e214ef6b7c472264 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 15:22:24 +0200 Subject: [PATCH 12/26] Add remaining form components --- .../src/jsx/components/form/Option.ts | 2 +- packages/snaps-storybook/package.json | 1 + .../src/components/icons/ArrowDownIcon.tsx | 11 ++ .../src/components/icons/CheckBoldIcon.tsx | 11 ++ .../src/components/icons/ImportIcon.tsx | 11 ++ .../src/components/icons/index.ts | 3 + .../snaps/checkbox/Checkbox.styles.ts | 104 ++++++++++++++++++ .../components/snaps/checkbox/Checkbox.tsx | 43 ++++++++ .../src/components/snaps/checkbox/index.ts | 2 + .../snaps/dropdown/Dropdown.styles.ts | 44 ++++++++ .../components/snaps/dropdown/Dropdown.tsx | 33 ++++++ .../src/components/snaps/dropdown/index.ts | 2 + .../snaps/file-input/FileInput.styles.ts | 41 +++++++ .../components/snaps/file-input/FileInput.tsx | 90 +++++++++++++++ .../src/components/snaps/file-input/index.ts | 2 + .../src/components/snaps/form/Form.tsx | 24 ++++ .../src/components/snaps/form/index.ts | 1 + .../src/components/snaps/index.ts | 10 ++ .../src/components/snaps/option/Option.tsx | 19 ++++ .../src/components/snaps/option/index.ts | 1 + yarn.lock | 3 +- 21 files changed, 456 insertions(+), 2 deletions(-) create mode 100644 packages/snaps-storybook/src/components/icons/ArrowDownIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/CheckBoldIcon.tsx create mode 100644 packages/snaps-storybook/src/components/icons/ImportIcon.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/checkbox/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/dropdown/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/file-input/FileInput.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/file-input/FileInput.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/file-input/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/form/Form.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/form/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/option/Option.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/option/index.ts diff --git a/packages/snaps-sdk/src/jsx/components/form/Option.ts b/packages/snaps-sdk/src/jsx/components/form/Option.ts index 6466ce068c..290e3e2f57 100644 --- a/packages/snaps-sdk/src/jsx/components/form/Option.ts +++ b/packages/snaps-sdk/src/jsx/components/form/Option.ts @@ -9,7 +9,7 @@ import { Dropdown } from './Dropdown'; * state in the form data. * @property children - The text to display. */ -type OptionProps = { +export type OptionProps = { value: string; children: string; }; diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index 4b852ee185..f931e60bf8 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -50,6 +50,7 @@ "@babel/types": "^7.23.0", "@chakra-ui/anatomy": "^2.1.1", "@chakra-ui/react": "^2.6.1", + "@chakra-ui/utils": "^2.0.15", "@emotion/react": "^11.10.8", "@emotion/styled": "^11.10.8", "@metamask/design-tokens": "^4.0.0", diff --git a/packages/snaps-storybook/src/components/icons/ArrowDownIcon.tsx b/packages/snaps-storybook/src/components/icons/ArrowDownIcon.tsx new file mode 100644 index 0000000000..e188441f79 --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/ArrowDownIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const ArrowDownIcon = createIcon({ + displayName: 'ArrowDown', + viewBox: '0 0 512 512', + d: 'm256 363c-17 0-32-7-45-21l-141-150c-8-10-8-26 0-36 9-9 22-9 31 0l140 153c9 9 21 9 30 0l140-153c9-9 22-9 31 0 8 10 8 24 0 33l-141 153c-13 14-28 21-45 21z', + defaultProps: { + width: '16px', + height: '16px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/CheckBoldIcon.tsx b/packages/snaps-storybook/src/components/icons/CheckBoldIcon.tsx new file mode 100644 index 0000000000..8cdf44a70a --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/CheckBoldIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const CheckBoldIcon = createIcon({ + displayName: 'CheckBoldIcon', + viewBox: '0 0 512 512', + d: 'm412 145c12 12 12 32 0 45l-185 183c-12 12-32 12-45 0l-81-80c-13-13-13-33 0-46 12-12 32-12 45 0l59 58 161-161c13-12 33-12 46 1z', + defaultProps: { + width: '20px', + height: '20px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/ImportIcon.tsx b/packages/snaps-storybook/src/components/icons/ImportIcon.tsx new file mode 100644 index 0000000000..39b45aac8f --- /dev/null +++ b/packages/snaps-storybook/src/components/icons/ImportIcon.tsx @@ -0,0 +1,11 @@ +import { createIcon } from '@chakra-ui/react'; + +export const ImportIcon = createIcon({ + displayName: 'ImportIcon', + viewBox: '0 0 512 512', + d: 'm256 64c10 0 18 8 18 18l0 207 30-30c7-7 19-7 26 0 7 7 7 19 0 26l-61 60c-7 7-19 7-26 0l-61-60c-7-7-7-19 0-26 7-7 19-7 26 0l30 30 0-207c0-10 8-18 18-18z m63 140c1-10 10-18 20-17 35 3 64 14 83 37 19 23 26 54 26 92l0 2c0 42-8 76-32 99-23 23-58 31-101 31l-118 0c-43 0-78-8-101-31-24-23-32-57-32-99l0-2c0-38 7-69 25-91 19-23 48-34 83-38 10 0 19 7 20 17 0 9-7 18-17 19-29 3-47 11-57 24-11 13-17 35-17 69l0 2c0 38 7 61 21 74 13 13 36 20 75 20l118 0c39 0 62-7 75-20 14-13 21-36 21-74l0-2c0-35-6-56-17-69-11-13-28-22-58-24-10-1-18-10-17-19z', + defaultProps: { + width: '20px', + height: '20px', + }, +}); diff --git a/packages/snaps-storybook/src/components/icons/index.ts b/packages/snaps-storybook/src/components/icons/index.ts index 7cdc782005..9532e8506c 100644 --- a/packages/snaps-storybook/src/components/icons/index.ts +++ b/packages/snaps-storybook/src/components/icons/index.ts @@ -1,9 +1,12 @@ +export * from './ArrowDownIcon'; +export * from './CheckBoldIcon'; export * from './CopyIcon'; export * from './CopySuccessIcon'; export * from './DangerIcon'; export * from './ExportIcon'; export * from './EyeIcon'; export * from './EyeSlashIcon'; +export * from './ImportIcon'; export * from './QuestionIcon'; export * from './SnapIcon'; export * from './WarningIcon'; diff --git a/packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.styles.ts b/packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.styles.ts new file mode 100644 index 0000000000..b9da91cb5e --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.styles.ts @@ -0,0 +1,104 @@ +import { checkboxAnatomy, switchAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers, cssVar } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(checkboxAnatomy.keys); + +const { + definePartsStyle: defineSwitchPartsStyle, + defineMultiStyleConfig: defineSwitchMultiStyleConfig, +} = createMultiStyleConfigHelpers(switchAnatomy.keys); + +const width = cssVar('switch-track-width'); +const height = cssVar('switch-track-height'); + +export const styles = { + Checkbox: defineMultiStyleConfig({ + baseStyle: definePartsStyle({ + control: { + borderColor: 'border.default', + borderRadius: 'base', + + _hover: { + background: 'background.defaultHover', + color: 'background.defaultHover', + }, + + _focus: { + borderColor: 'primary.default', + }, + + _checked: { + background: 'primary.default', + borderColor: 'primary.default', + _hover: { + background: 'primary.alternative', + borderColor: 'primary.alternative', + }, + }, + }, + + label: { + fontSize: 'sm', + }, + }), + + sizes: { + md: definePartsStyle({ + control: { + width: '20px', + height: '20px', + }, + + label: { + fontSize: 'sm', + }, + }), + }, + + defaultProps: { + size: 'md', + }, + }), + + Switch: defineSwitchMultiStyleConfig({ + baseStyle: defineSwitchPartsStyle({ + container: { + display: 'flex', + alignItems: 'center', + }, + + track: { + _checked: { + background: 'primary.default', + }, + }, + }), + + sizes: { + md: defineSwitchPartsStyle({ + container: { + [width.variable]: '32px', + [height.variable]: '18px', + }, + + track: { + padding: '1', + }, + + thumb: { + width: '18px', + height: '18px', + }, + + label: { + fontSize: 'sm', + }, + }), + }, + + defaultProps: { + size: 'md', + }, + }), +}; diff --git a/packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.tsx b/packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.tsx new file mode 100644 index 0000000000..f8da719737 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/checkbox/Checkbox.tsx @@ -0,0 +1,43 @@ +import { Checkbox as ChakraCheckbox, Switch } from '@chakra-ui/react'; +import type { CheckboxProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import { CheckBoldIcon } from '../../icons'; +import type { RenderProps } from '../../Renderer'; + +/** + * A checkbox element, which renders a checkbox input field. + * + * @param props - The props of the component. + * @param props.name - The name of the checkbox input field. This is used to + * populate the state in the form data. + * @param props.checked - Whether the checkbox is checked or not. + * @param props.label - The label of the checkbox. + * @param props.variant - The variant of the checkbox. + * @returns A checkbox element. + */ +export const Checkbox: FunctionComponent> = ({ + name, + checked, + label, + variant, +}) => { + if (variant === 'toggle') { + return ( + + {label} + + ); + } + + return ( + } + iconSize="20px" + > + {label} + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/checkbox/index.ts b/packages/snaps-storybook/src/components/snaps/checkbox/index.ts new file mode 100644 index 0000000000..09beb45b24 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/checkbox/index.ts @@ -0,0 +1,2 @@ +export { Checkbox as Component } from './Checkbox'; +export { styles } from './Checkbox.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.styles.ts b/packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.styles.ts new file mode 100644 index 0000000000..0dde1c590e --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.styles.ts @@ -0,0 +1,44 @@ +import { selectAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(selectAnatomy.keys); + +export const styles = { + Select: defineMultiStyleConfig({ + baseStyle: definePartsStyle({ + field: { + color: 'text.default', + fontSize: 'sm', + paddingX: '4', + paddingY: '2', + }, + }), + + variants: { + outline: definePartsStyle({ + field: { + background: 'background.default', + border: '1px solid', + borderColor: 'border.default', + _focus: { + outline: '5px auto', + outlineColor: 'primary.default', + outlineOffset: '0', + }, + _placeholder: { + color: 'text.alternative', + }, + _invalid: { + borderColor: 'error.default', + boxShadow: 'none', + }, + }, + }), + }, + }), + + defaultProps: { + variant: 'outline', + }, +}; diff --git a/packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.tsx b/packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.tsx new file mode 100644 index 0000000000..6281931364 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/dropdown/Dropdown.tsx @@ -0,0 +1,33 @@ +import { Select } from '@chakra-ui/react'; +import type { DropdownProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import { ArrowDownIcon } from '../../icons'; +import type { RenderProps } from '../../Renderer'; + +/** + * A dropdown element, which renders a dropdown input field. + * + * @param props - The props of the component. + * @param props.name - The name of the dropdown input field. This is used to + * populate the state in the form data. + * @param props.value - The selected value of the dropdown. + * @param props.children - The dropdown options. + * @param props.Renderer - The renderer component to render the children. + * @returns A dropdown element. + */ +export const Dropdown: FunctionComponent> = ({ + name, + value, + children, + Renderer, +}) => ( + +); diff --git a/packages/snaps-storybook/src/components/snaps/dropdown/index.ts b/packages/snaps-storybook/src/components/snaps/dropdown/index.ts new file mode 100644 index 0000000000..7bf9a2cb3e --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/dropdown/index.ts @@ -0,0 +1,2 @@ +export { Dropdown as Component } from './Dropdown'; +export { styles } from './Dropdown.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/file-input/FileInput.styles.ts b/packages/snaps-storybook/src/components/snaps/file-input/FileInput.styles.ts new file mode 100644 index 0000000000..6aee8032b8 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/file-input/FileInput.styles.ts @@ -0,0 +1,41 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const styles = defineStyleConfig({ + baseStyle: defineStyle({ + cursor: 'pointer', + background: 'background.alternative', + borderRadius: 'lg', + border: '1px solid', + borderColor: 'border.default', + display: 'flex', + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + padding: '4', + gap: '1', + textAlign: 'center', + color: 'icon.alternative', + fontWeight: '500', + + _active: { + backgroundColor: 'background.alternativeHover', + color: 'primary.default', + }, + + _selected: { + color: 'text.default', + }, + }), + + variants: { + compact: { + width: 'fit-content', + height: 'fit-content', + padding: '1', + + _selected: { + color: 'icon.alternative', + }, + }, + }, +}); diff --git a/packages/snaps-storybook/src/components/snaps/file-input/FileInput.tsx b/packages/snaps-storybook/src/components/snaps/file-input/FileInput.tsx new file mode 100644 index 0000000000..6f0d90d792 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/file-input/FileInput.tsx @@ -0,0 +1,90 @@ +import { Box, Text, useStyleConfig } from '@chakra-ui/react'; +import { dataAttr } from '@chakra-ui/utils'; +import type { FileInputProps } from '@metamask/snaps-sdk/jsx'; +import type { ChangeEvent, FunctionComponent, DragEvent } from 'react'; +import { useRef, useState } from 'react'; + +import { ImportIcon } from '../../icons'; +import type { RenderProps } from '../../Renderer'; + +/** + * The file input component renders a drop zone for users to upload files. It + * can also be clicked to open a file picker dialog. + * + * @param props - The props of the component. + * @param props.name - The name of the file input field. This is used to + * identify the state in the form data. + * @param props.accept - The types of files that the file input can accept. This is + * used to filter the files that the user can select when the input field is + * clicked. + * @param props.compact - Whether to render the file input in compact mode. + * @returns The file input element. + */ +export const FileInput: FunctionComponent> = ({ + name, + accept, + compact, +}) => { + const styles = useStyleConfig('FileInput', { + variant: compact ? 'compact' : 'default', + }); + + const ref = useRef(null); + const [isActive, setActive] = useState(false); + const [fileName, setFileName] = useState(null); + + const handleClick = () => { + ref.current?.click(); + }; + + const handleChange = (event: ChangeEvent) => { + const file = event.target.files?.[0] ?? null; + setFileName(file?.name ?? null); + }; + + const handleDragOver = (event: DragEvent) => { + event.preventDefault(); + setActive(true); + }; + + const handleDragLeave = (event: DragEvent) => { + event.preventDefault(); + setActive(false); + }; + + const handleDrop = (event: DragEvent) => { + event.preventDefault(); + setActive(false); + + const file = event.dataTransfer?.files?.[0] ?? null; + setFileName(file?.name ?? null); + }; + + return ( + + + + {!compact && + (fileName ? ( + {fileName} + ) : ( + Drop your file here + ))} + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/file-input/index.ts b/packages/snaps-storybook/src/components/snaps/file-input/index.ts new file mode 100644 index 0000000000..b1ebf0cecb --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/file-input/index.ts @@ -0,0 +1,2 @@ +export { FileInput as Component } from './FileInput'; +export { styles } from './FileInput.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/form/Form.tsx b/packages/snaps-storybook/src/components/snaps/form/Form.tsx new file mode 100644 index 0000000000..3c0403f06d --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/form/Form.tsx @@ -0,0 +1,24 @@ +import { Flex } from '@chakra-ui/react'; +import type { FormProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +/** + * The form component renders a form element. + * + * @param props - The component props. + * @param props.name - The name of the form. + * @param props.children - The children of the form. + * @param props.Renderer - The renderer to use for rendering the children. + * @returns The form element. + */ +export const Form: FunctionComponent> = ({ + name, + children, + Renderer, +}) => ( + + + +); diff --git a/packages/snaps-storybook/src/components/snaps/form/index.ts b/packages/snaps-storybook/src/components/snaps/form/index.ts new file mode 100644 index 0000000000..3215e0ee77 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/form/index.ts @@ -0,0 +1 @@ +export { Form as Component } from './Form'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index eb3e3eafdc..6354b73272 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -7,14 +7,19 @@ import * as Address from './address'; import * as Bold from './bold'; import * as Box from './box'; import * as Button from './button'; +import * as Checkbox from './checkbox'; import * as Copyable from './copyable'; import * as Divider from './divider'; +import * as Dropdown from './dropdown'; import * as Field from './field'; +import * as FileInput from './file-input'; import * as Footer from './footer'; +import * as Form from './form'; import * as Heading from './heading'; import * as Input from './input'; import * as Italic from './italic'; import * as Link from './link'; +import * as Option from './option'; import * as Row from './row'; import * as Text from './text'; import * as Tooltip from './tooltip'; @@ -26,14 +31,19 @@ export const SNAPS_COMPONENTS: Record = { Bold, Box, Button, + Checkbox, Copyable, Divider, + Dropdown, Field, + FileInput, Footer, + Form, Heading, Input, Italic, Link, + Option, Row, Text, Tooltip, diff --git a/packages/snaps-storybook/src/components/snaps/option/Option.tsx b/packages/snaps-storybook/src/components/snaps/option/Option.tsx new file mode 100644 index 0000000000..2dcec7ab29 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/option/Option.tsx @@ -0,0 +1,19 @@ +import type { OptionProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +/** + * A dropdown option element. + * + * @param props - The props of the component. + * @param props.value - The value of the dropdown option. This is used to + * populate the state in the form data. + * @param props.children - The text to display. + * @returns A dropdown option element. + * @see OptionProps + */ +export const Option: FunctionComponent> = ({ + value, + children, +}) => ; diff --git a/packages/snaps-storybook/src/components/snaps/option/index.ts b/packages/snaps-storybook/src/components/snaps/option/index.ts new file mode 100644 index 0000000000..c334cff8e6 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/option/index.ts @@ -0,0 +1 @@ +export { Option as Component } from './Option'; diff --git a/yarn.lock b/yarn.lock index 46848dd2d3..a0a77fdded 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2773,7 +2773,7 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/utils@npm:2.0.15": +"@chakra-ui/utils@npm:2.0.15, @chakra-ui/utils@npm:^2.0.15": version: 2.0.15 resolution: "@chakra-ui/utils@npm:2.0.15" dependencies: @@ -6441,6 +6441,7 @@ __metadata: "@babel/types": ^7.23.0 "@chakra-ui/anatomy": ^2.1.1 "@chakra-ui/react": ^2.6.1 + "@chakra-ui/utils": ^2.0.15 "@emotion/react": ^11.10.8 "@emotion/styled": ^11.10.8 "@metamask/auto-changelog": ^3.4.4 From 09659fe0f39b96507be27a5da3a30a2decb6c620 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 17:52:50 +0200 Subject: [PATCH 13/26] Add container component and reorganise other components --- .../src/components/snaps/container/Container.tsx | 16 ++++++++++++++++ .../src/components/snaps/container/index.ts | 1 + .../src/components/snaps/index.ts | 2 ++ 3 files changed, 19 insertions(+) create mode 100644 packages/snaps-storybook/src/components/snaps/container/Container.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/container/index.ts diff --git a/packages/snaps-storybook/src/components/snaps/container/Container.tsx b/packages/snaps-storybook/src/components/snaps/container/Container.tsx new file mode 100644 index 0000000000..8739908ea8 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/container/Container.tsx @@ -0,0 +1,16 @@ +import { Box } from '@chakra-ui/react'; +import type { ContainerProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +export const Container: FunctionComponent> = ({ + children, + Renderer, +}) => { + return ( + + + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/container/index.ts b/packages/snaps-storybook/src/components/snaps/container/index.ts new file mode 100644 index 0000000000..700c5b7d9f --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/container/index.ts @@ -0,0 +1 @@ +export { Container as Component } from './Container'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index 6354b73272..f238ec37c2 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -8,6 +8,7 @@ import * as Bold from './bold'; import * as Box from './box'; import * as Button from './button'; import * as Checkbox from './checkbox'; +import * as Container from './container'; import * as Copyable from './copyable'; import * as Divider from './divider'; import * as Dropdown from './dropdown'; @@ -32,6 +33,7 @@ export const SNAPS_COMPONENTS: Record = { Box, Button, Checkbox, + Container, Copyable, Divider, Dropdown, From c72babf5b4a58f7a221a8b0b19aacd9114e8feb7 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 18:32:43 +0200 Subject: [PATCH 14/26] Add card component --- .../src/components/snaps/card/Card.styles.ts | 42 ++++++++++++++ .../src/components/snaps/card/Card.tsx | 56 +++++++++++++++++++ .../src/components/snaps/card/index.ts | 2 + .../components/snaps/container/Container.tsx | 8 +++ .../src/components/snaps/index.ts | 2 + 5 files changed, 110 insertions(+) create mode 100644 packages/snaps-storybook/src/components/snaps/card/Card.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/card/Card.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/card/index.ts diff --git a/packages/snaps-storybook/src/components/snaps/card/Card.styles.ts b/packages/snaps-storybook/src/components/snaps/card/Card.styles.ts new file mode 100644 index 0000000000..84e151aacb --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/card/Card.styles.ts @@ -0,0 +1,42 @@ +import { cardAnatomy } from '@chakra-ui/anatomy'; +import { createMultiStyleConfigHelpers } from '@chakra-ui/react'; + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(cardAnatomy.keys); + +export const styles = defineMultiStyleConfig({ + baseStyle: definePartsStyle({ + container: { + gap: '2', + }, + + header: { + display: 'flex', + justifyContent: 'space-between', + gap: '2', + padding: '0', + color: 'text.default', + fontSize: 'sm', + fontWeight: '500', + }, + + body: { + padding: '0', + color: 'text.alternative', + fontSize: 'sm', + }, + }), + + variants: { + clear: definePartsStyle({ + container: { + background: 'transparent', + boxShadow: 'none', + }, + }), + }, + + defaultProps: { + variant: 'clear', + }, +}); diff --git a/packages/snaps-storybook/src/components/snaps/card/Card.tsx b/packages/snaps-storybook/src/components/snaps/card/Card.tsx new file mode 100644 index 0000000000..8d2314524e --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/card/Card.tsx @@ -0,0 +1,56 @@ +import { + Card as ChakraCard, + CardBody, + CardHeader, + Flex, + Image, + Text, +} from '@chakra-ui/react'; +import type { CardProps } from '@metamask/snaps-sdk/jsx'; +import { bytesToBase64, stringToBytes } from '@metamask/utils'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +/** + * The card component renders a card with a title, description, and value. + * + * @param props - The props of the component. + * @param props.image - The image to show as part of the card. If provided, this + * must be an SVG string. + * @param props.title - The title of the card. + * @param props.description - The description to show below the title. + * @param props.value - The value to show on the right side. + * @param props.extra - An additional value to show below the value. + * @returns The card element. + * @see CardProps + */ +export const Card: FunctionComponent> = ({ + image, + title, + description, + value, + extra, +}) => ( + + {image && ( + {title} + )} + + + {title} + {value} + + + {description ? {description} : } + {extra ? {extra} : } + + + +); diff --git a/packages/snaps-storybook/src/components/snaps/card/index.ts b/packages/snaps-storybook/src/components/snaps/card/index.ts new file mode 100644 index 0000000000..6b19a02615 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/card/index.ts @@ -0,0 +1,2 @@ +export { Card as Component } from './Card'; +export { styles } from './Card.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/container/Container.tsx b/packages/snaps-storybook/src/components/snaps/container/Container.tsx index 8739908ea8..3a992196b4 100644 --- a/packages/snaps-storybook/src/components/snaps/container/Container.tsx +++ b/packages/snaps-storybook/src/components/snaps/container/Container.tsx @@ -4,6 +4,14 @@ import type { FunctionComponent } from 'react'; import type { RenderProps } from '../../Renderer'; +/** + * The container component. It simply renders the children in a box. + * + * @param props - The component props. + * @param props.children - The children to render in the container. + * @param props.Renderer - The renderer to use for rendering the children. + * @returns The container element. + */ export const Container: FunctionComponent> = ({ children, Renderer, diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index f238ec37c2..e771c40aa0 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -7,6 +7,7 @@ import * as Address from './address'; import * as Bold from './bold'; import * as Box from './box'; import * as Button from './button'; +import * as Card from './card'; import * as Checkbox from './checkbox'; import * as Container from './container'; import * as Copyable from './copyable'; @@ -32,6 +33,7 @@ export const SNAPS_COMPONENTS: Record = { Bold, Box, Button, + Card, Checkbox, Container, Copyable, From 39385232c7e91fec48903b4e04aec309a919f541 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 19:18:28 +0200 Subject: [PATCH 15/26] Add image component --- .../snaps-sdk/src/jsx/components/Image.ts | 2 +- .../src/components/snaps/image/Image.tsx | 21 +++++++++++++++++++ .../src/components/snaps/image/index.ts | 1 + .../src/components/snaps/index.ts | 2 ++ .../src/components/snaps/utils.ts | 11 ++++++++++ 5 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 packages/snaps-storybook/src/components/snaps/image/Image.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/image/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/utils.ts diff --git a/packages/snaps-sdk/src/jsx/components/Image.ts b/packages/snaps-sdk/src/jsx/components/Image.ts index 7786dce45b..a4555932f8 100644 --- a/packages/snaps-sdk/src/jsx/components/Image.ts +++ b/packages/snaps-sdk/src/jsx/components/Image.ts @@ -9,7 +9,7 @@ import { createSnapComponent } from '../component'; * @property alt - The alternative text of the image, which describes the image * for users who cannot see it. */ -type ImageProps = { +export type ImageProps = { src: string; alt?: string | undefined; }; diff --git a/packages/snaps-storybook/src/components/snaps/image/Image.tsx b/packages/snaps-storybook/src/components/snaps/image/Image.tsx new file mode 100644 index 0000000000..f60a9c31b8 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/image/Image.tsx @@ -0,0 +1,21 @@ +import { Image as ChakraImage } from '@chakra-ui/react'; +import type { ImageProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; +import { getImage } from '../utils'; + +/** + * The image component, which is used to display SVG images. + * + * @param props - The props of the component. + * @param props.src - The image to display. This must be an SVG string. + * @param props.alt - The alternative text for the image. + * @returns The image element. + */ +export const Image: FunctionComponent> = ({ + src, + alt, +}) => { + return ; +}; diff --git a/packages/snaps-storybook/src/components/snaps/image/index.ts b/packages/snaps-storybook/src/components/snaps/image/index.ts new file mode 100644 index 0000000000..e90be76c22 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/image/index.ts @@ -0,0 +1 @@ +export { Image as Component } from './Image'; diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index e771c40aa0..dcc4de9988 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -18,6 +18,7 @@ import * as FileInput from './file-input'; import * as Footer from './footer'; import * as Form from './form'; import * as Heading from './heading'; +import * as Image from './image'; import * as Input from './input'; import * as Italic from './italic'; import * as Link from './link'; @@ -44,6 +45,7 @@ export const SNAPS_COMPONENTS: Record = { Footer, Form, Heading, + Image, Input, Italic, Link, diff --git a/packages/snaps-storybook/src/components/snaps/utils.ts b/packages/snaps-storybook/src/components/snaps/utils.ts new file mode 100644 index 0000000000..7bd34a3693 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/utils.ts @@ -0,0 +1,11 @@ +import { bytesToBase64, stringToBytes } from '@metamask/utils'; + +/** + * Get the image data URL for an SVG string. + * + * @param svg - The SVG string to convert to a data URL. + * @returns The data URL for the SVG image. + */ +export function getImage(svg: string) { + return `data:image/svg+xml;base64,${bytesToBase64(stringToBytes(svg))}`; +} From 36054dacc4a2f1575bc6ca05d2e542279cf6298e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 19:46:43 +0200 Subject: [PATCH 16/26] Add remaining components --- .../src/components/snaps/index.ts | 9 +++++-- .../snaps/spinner/Spinner.styles.ts | 7 ++++++ .../src/components/snaps/spinner/Spinner.tsx | 11 ++++++++ .../src/components/snaps/spinner/index.ts | 2 ++ .../src/components/snaps/value/Value.tsx | 25 +++++++++++++++++++ .../src/components/snaps/value/index.ts | 1 + 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 packages/snaps-storybook/src/components/snaps/spinner/Spinner.styles.ts create mode 100644 packages/snaps-storybook/src/components/snaps/spinner/Spinner.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/spinner/index.ts create mode 100644 packages/snaps-storybook/src/components/snaps/value/Value.tsx create mode 100644 packages/snaps-storybook/src/components/snaps/value/index.ts diff --git a/packages/snaps-storybook/src/components/snaps/index.ts b/packages/snaps-storybook/src/components/snaps/index.ts index dcc4de9988..38e9cc4d04 100644 --- a/packages/snaps-storybook/src/components/snaps/index.ts +++ b/packages/snaps-storybook/src/components/snaps/index.ts @@ -3,6 +3,8 @@ // components, but are used by the Storybook plugin to render the extension // window and provide the necessary context for the Snap to render. +import type { JSXElement } from '@metamask/snaps-sdk/jsx'; + import * as Address from './address'; import * as Bold from './bold'; import * as Box from './box'; @@ -24,12 +26,13 @@ import * as Italic from './italic'; import * as Link from './link'; import * as Option from './option'; import * as Row from './row'; +import * as Spinner from './spinner'; import * as Text from './text'; import * as Tooltip from './tooltip'; import type { Component } from './types'; +import * as Value from './value'; -// TODO: Change `string` to `JSXElement['type']`. -export const SNAPS_COMPONENTS: Record = { +export const SNAPS_COMPONENTS: Record = { Address, Bold, Box, @@ -51,8 +54,10 @@ export const SNAPS_COMPONENTS: Record = { Link, Option, Row, + Spinner, Text, Tooltip, + Value, }; export * from './types'; diff --git a/packages/snaps-storybook/src/components/snaps/spinner/Spinner.styles.ts b/packages/snaps-storybook/src/components/snaps/spinner/Spinner.styles.ts new file mode 100644 index 0000000000..1a8a3f0a1b --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/spinner/Spinner.styles.ts @@ -0,0 +1,7 @@ +import { defineStyle, defineStyleConfig } from '@chakra-ui/react'; + +export const styles = defineStyleConfig({ + baseStyle: defineStyle({ + color: 'primary.default', + }), +}); diff --git a/packages/snaps-storybook/src/components/snaps/spinner/Spinner.tsx b/packages/snaps-storybook/src/components/snaps/spinner/Spinner.tsx new file mode 100644 index 0000000000..e0b8eba1e3 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/spinner/Spinner.tsx @@ -0,0 +1,11 @@ +import { Spinner as ChakraSpinner } from '@chakra-ui/react'; +import type { FunctionComponent } from 'react'; + +/** + * A spinner component, which is used to indicate that a process is in progress. + * + * @returns The spinner element. + */ +export const Spinner: FunctionComponent = () => ( + +); diff --git a/packages/snaps-storybook/src/components/snaps/spinner/index.ts b/packages/snaps-storybook/src/components/snaps/spinner/index.ts new file mode 100644 index 0000000000..8a171152bb --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/spinner/index.ts @@ -0,0 +1,2 @@ +export { Spinner as Component } from './Spinner'; +export { styles } from './Spinner.styles'; diff --git a/packages/snaps-storybook/src/components/snaps/value/Value.tsx b/packages/snaps-storybook/src/components/snaps/value/Value.tsx new file mode 100644 index 0000000000..4beee8749f --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/value/Value.tsx @@ -0,0 +1,25 @@ +import { Flex, Text } from '@chakra-ui/react'; +import type { ValueProps } from '@metamask/snaps-sdk/jsx'; +import type { FunctionComponent } from 'react'; + +import type { RenderProps } from '../../Renderer'; + +/** + * The value component renders a value with an extra description. + * + * @param props - The component props. + * @param props.value - The value to render. + * @param props.extra - The extra description to render. + * @returns The value element. + */ +export const Value: FunctionComponent> = ({ + value, + extra, +}) => { + return ( + + {extra} + {value} + + ); +}; diff --git a/packages/snaps-storybook/src/components/snaps/value/index.ts b/packages/snaps-storybook/src/components/snaps/value/index.ts new file mode 100644 index 0000000000..28f851b355 --- /dev/null +++ b/packages/snaps-storybook/src/components/snaps/value/index.ts @@ -0,0 +1 @@ +export { Value as Component } from './Value'; From 434a446b3deed2a3123ff4e4216f5f79871b047e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 23:47:51 +0200 Subject: [PATCH 17/26] Add README --- packages/snaps-storybook/README.md | 54 +++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/packages/snaps-storybook/README.md b/packages/snaps-storybook/README.md index 55e427bf56..9b80824a82 100644 --- a/packages/snaps-storybook/README.md +++ b/packages/snaps-storybook/README.md @@ -14,4 +14,56 @@ Install a dependency in your snap project using `yarn` or `npm`: ## Usage -TODO. +`snaps-storybook` is a framework rather than an addon. To use it, add the +following to your `.storybook/main.[tj]s`: + +```js +module.exports = { + framework: { + name: '@metamask/snaps-storybook', + options: { + // Add options here + }, + }, +}; +``` + +In addition to supporting the Snaps SDK components, `snaps-storybook` also +loads some additional addons that are useful for developing Snaps: + +- `@storybook/addon-docs` for automatically generating documentation for your + components. +- `@storybook/addon-toolbar` for adding a toolbar to the Storybook UI. + +Other addons may or may not work with `snaps-storybook`. If you encounter +issues, please file a bug report. + +### Example + +After installing `snaps-storybook`, you can create a new story as usual: + +```js +import { Meta, Story } from '@metamask/snaps-storybook'; +import { Text, TextProps } from './Text'; + +const meta: Meta = { + title: 'Text/Text', + component: Text, + argTypes: { + // ... + }, +}; + +export default meta; + +/** + * The text component renders text. It can be used in combination with other + * formatting components to create rich text. + */ +export const Default: Story = { + render: (props) => , + args: { + children: 'This is some text.', + }, +}; +``` From e3c66d979ae33df92fea42a4529fcf0694dcfb54 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 23:48:50 +0200 Subject: [PATCH 18/26] Update LavaMoat policy --- .../lavamoat/build-system/policy.json | 291 +++++++++--------- 1 file changed, 153 insertions(+), 138 deletions(-) diff --git a/packages/snaps-execution-environments/lavamoat/build-system/policy.json b/packages/snaps-execution-environments/lavamoat/build-system/policy.json index f0cf64f764..e58d79bf87 100644 --- a/packages/snaps-execution-environments/lavamoat/build-system/policy.json +++ b/packages/snaps-execution-environments/lavamoat/build-system/policy.json @@ -22,6 +22,7 @@ }, "packages": { "@babel/core>@ampproject/remapping": true, + "@babel/core>@babel/code-frame": true, "@babel/core>@babel/generator": true, "@babel/core>@babel/helper-compilation-targets": true, "@babel/core>@babel/helper-module-transforms": true, @@ -35,7 +36,6 @@ "depcheck>@babel/parser": true, "depcheck>@babel/traverse": true, "depcheck>json5": true, - "lavamoat>@babel/code-frame": true, "tsup>debug": true } }, @@ -57,6 +57,68 @@ "tsup>sucrase>@jridgewell/gen-mapping>@jridgewell/sourcemap-codec": true } }, + "@babel/core>@babel/code-frame": { + "globals": { + "console.warn": true, + "process": true + }, + "packages": { + "@babel/core>@babel/code-frame>@babel/highlight": true, + "tsup>postcss>picocolors": true + } + }, + "@babel/core>@babel/code-frame>@babel/highlight": { + "globals": { + "process": true + }, + "packages": { + "@babel/core>@babel/code-frame>@babel/highlight>chalk": true, + "lavamoat>@babel/highlight>@babel/helper-validator-identifier": true, + "lavamoat>@babel/highlight>js-tokens": true, + "tsup>postcss>picocolors": true + } + }, + "@babel/core>@babel/code-frame>@babel/highlight>chalk": { + "globals": { + "process.env.TERM": true, + "process.platform": true + }, + "packages": { + "@babel/core>@babel/code-frame>@babel/highlight>chalk>ansi-styles": true, + "@babel/core>@babel/code-frame>@babel/highlight>chalk>escape-string-regexp": true, + "@babel/core>@babel/code-frame>@babel/highlight>chalk>supports-color": true + } + }, + "@babel/core>@babel/code-frame>@babel/highlight>chalk>ansi-styles": { + "packages": { + "@babel/core>@babel/code-frame>@babel/highlight>chalk>ansi-styles>color-convert": true + } + }, + "@babel/core>@babel/code-frame>@babel/highlight>chalk>ansi-styles>color-convert": { + "packages": { + "@babel/core>@babel/code-frame>@babel/highlight>chalk>ansi-styles>color-convert>color-name": true + } + }, + "@babel/core>@babel/code-frame>@babel/highlight>chalk>supports-color": { + "builtin": { + "os.release": true + }, + "globals": { + "process.env": true, + "process.platform": true, + "process.stderr": true, + "process.stdout": true, + "process.versions.node.split": true + }, + "packages": { + "@babel/core>@babel/code-frame>@babel/highlight>chalk>supports-color>has-flag": true + } + }, + "@babel/core>@babel/code-frame>@babel/highlight>chalk>supports-color>has-flag": { + "globals": { + "process.argv": true + } + }, "@babel/core>@babel/generator": { "globals": { "console.error": true, @@ -95,6 +157,7 @@ "path.basename": true, "path.dirname": true, "path.join": true, + "path.relative": true, "path.resolve": true }, "globals": { @@ -156,9 +219,9 @@ }, "@babel/core>@babel/template": { "packages": { + "@babel/core>@babel/code-frame": true, "@babel/core>@babel/types": true, - "depcheck>@babel/parser": true, - "lavamoat>@babel/code-frame": true + "depcheck>@babel/parser": true } }, "@babel/core>@babel/types": { @@ -187,6 +250,9 @@ } }, "@babel/preset-env": { + "builtin": { + "fs.readFileSync": true + }, "globals": { "console.log": true, "console.warn": true, @@ -195,12 +261,13 @@ }, "packages": { "@babel/core>@babel/helper-compilation-targets": true, - "@babel/core>@babel/types": true, "@babel/preset-env>@babel/compat-data": true, "@babel/preset-env>@babel/helper-plugin-utils": true, "@babel/preset-env>@babel/helper-validator-option": true, + "@babel/preset-env>@babel/plugin-bugfix-firefox-class-in-computed-class-key": true, "@babel/preset-env>@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": true, "@babel/preset-env>@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": true, + "@babel/preset-env>@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": true, "@babel/preset-env>@babel/plugin-syntax-async-generators": true, "@babel/preset-env>@babel/plugin-syntax-class-properties": true, "@babel/preset-env>@babel/plugin-syntax-class-static-block": true, @@ -271,10 +338,15 @@ "@babel/preset-env>babel-plugin-polyfill-corejs2": true, "@babel/preset-env>babel-plugin-polyfill-corejs3": true, "@babel/preset-env>babel-plugin-polyfill-regenerator": true, - "@babel/preset-env>core-js-compat": true, "@babel/preset-env>semver": true } }, + "@babel/preset-env>@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "packages": { + "@babel/preset-env>@babel/helper-plugin-utils": true, + "depcheck>@babel/traverse>@babel/helper-environment-visitor": true + } + }, "@babel/preset-env>@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "packages": { "@babel/preset-env>@babel/helper-plugin-utils": true @@ -284,8 +356,15 @@ "packages": { "@babel/core": true, "@babel/preset-env>@babel/helper-plugin-utils": true, - "@babel/preset-env>@babel/plugin-transform-optional-chaining": true, - "@babel/preset-env>@babel/plugin-transform-spread>@babel/helper-skip-transparent-expression-wrappers": true + "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": true, + "@babel/preset-env>@babel/plugin-transform-optional-chaining": true + } + }, + "@babel/preset-env>@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "packages": { + "@babel/core": true, + "@babel/preset-env>@babel/helper-plugin-utils": true, + "depcheck>@babel/traverse>@babel/helper-environment-visitor": true } }, "@babel/preset-env>@babel/plugin-syntax-async-generators": { @@ -447,7 +526,6 @@ "@babel/core>@babel/helper-compilation-targets": true, "@babel/preset-env>@babel/helper-plugin-utils": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-annotate-as-pure": true, - "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-optimise-call-expression": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": true, "depcheck>@babel/traverse>@babel/helper-environment-visitor": true, "depcheck>@babel/traverse>@babel/helper-function-name": true, @@ -460,16 +538,11 @@ "@babel/core>@babel/types": true } }, - "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-optimise-call-expression": { - "packages": { - "@babel/core>@babel/types": true - } - }, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": { "packages": { "@babel/core": true, - "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-optimise-call-expression": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-member-expression-to-functions": true, + "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-optimise-call-expression": true, "depcheck>@babel/traverse>@babel/helper-environment-visitor": true } }, @@ -478,6 +551,11 @@ "@babel/core>@babel/types": true } }, + "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-optimise-call-expression": { + "packages": { + "@babel/core>@babel/types": true + } + }, "@babel/preset-env>@babel/plugin-transform-computed-properties": { "packages": { "@babel/core": true, @@ -578,7 +656,13 @@ "@babel/preset-env>@babel/plugin-transform-for-of": { "packages": { "@babel/core": true, - "@babel/preset-env>@babel/helper-plugin-utils": true + "@babel/preset-env>@babel/helper-plugin-utils": true, + "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": true + } + }, + "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": { + "packages": { + "@babel/core>@babel/types": true } }, "@babel/preset-env>@babel/plugin-transform-function-name": { @@ -679,7 +763,6 @@ "packages": { "@babel/core": true, "@babel/core>@babel/helper-compilation-targets": true, - "@babel/preset-env>@babel/compat-data": true, "@babel/preset-env>@babel/helper-plugin-utils": true, "@babel/preset-env>@babel/plugin-syntax-object-rest-spread": true, "@babel/preset-env>@babel/plugin-transform-parameters": true @@ -703,7 +786,7 @@ "@babel/core": true, "@babel/preset-env>@babel/helper-plugin-utils": true, "@babel/preset-env>@babel/plugin-syntax-optional-chaining": true, - "@babel/preset-env>@babel/plugin-transform-spread>@babel/helper-skip-transparent-expression-wrappers": true + "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": true } }, "@babel/preset-env>@babel/plugin-transform-parameters": { @@ -725,11 +808,11 @@ "packages": { "@babel/core": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-annotate-as-pure": true, - "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-optimise-call-expression": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers": true, "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-member-expression-to-functions": true, + "@babel/preset-env>@babel/plugin-transform-classes>@babel/helper-replace-supers>@babel/helper-optimise-call-expression": true, + "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": true, "@babel/preset-env>@babel/plugin-transform-private-methods>@babel/helper-create-class-features-plugin>semver": true, - "@babel/preset-env>@babel/plugin-transform-spread>@babel/helper-skip-transparent-expression-wrappers": true, "depcheck>@babel/traverse>@babel/helper-environment-visitor": true, "depcheck>@babel/traverse>@babel/helper-function-name": true, "depcheck>@babel/traverse>@babel/helper-split-export-declaration": true @@ -786,12 +869,7 @@ "packages": { "@babel/core": true, "@babel/preset-env>@babel/helper-plugin-utils": true, - "@babel/preset-env>@babel/plugin-transform-spread>@babel/helper-skip-transparent-expression-wrappers": true - } - }, - "@babel/preset-env>@babel/plugin-transform-spread>@babel/helper-skip-transparent-expression-wrappers": { - "packages": { - "@babel/core>@babel/types": true + "@babel/preset-env>@babel/plugin-transform-for-of>@babel/helper-skip-transparent-expression-wrappers": true } }, "@babel/preset-env>@babel/plugin-transform-sticky-regex": { @@ -1815,6 +1893,7 @@ "console.log": true }, "packages": { + "@babel/core>@babel/code-frame": true, "@babel/core>@babel/generator": true, "@babel/core>@babel/types": true, "depcheck>@babel/parser": true, @@ -1823,7 +1902,6 @@ "depcheck>@babel/traverse>@babel/helper-hoist-variables": true, "depcheck>@babel/traverse>@babel/helper-split-export-declaration": true, "depcheck>@babel/traverse>globals": true, - "lavamoat>@babel/code-frame": true, "tsup>debug": true } }, @@ -1930,7 +2008,7 @@ }, "eslint-plugin-import>object.values>es-abstract>has-property-descriptors": { "packages": { - "eslint-plugin-import>array-includes>get-intrinsic": true + "lavamoat>json-stable-stringify>call-bind>es-define-property": true } }, "eslint-plugin-import>tsconfig-paths": { @@ -2070,105 +2148,6 @@ "readable-stream": true } }, - "lavamoat>@babel/code-frame": { - "globals": { - "console.warn": true, - "process.emitWarning": true - }, - "packages": { - "lavamoat>@babel/code-frame>chalk": true, - "lavamoat>@babel/highlight": true - } - }, - "lavamoat>@babel/code-frame>chalk": { - "globals": { - "process.env.TERM": true, - "process.platform": true - }, - "packages": { - "lavamoat>@babel/code-frame>chalk>ansi-styles": true, - "lavamoat>@babel/code-frame>chalk>escape-string-regexp": true, - "lavamoat>@babel/code-frame>chalk>supports-color": true - } - }, - "lavamoat>@babel/code-frame>chalk>ansi-styles": { - "packages": { - "lavamoat>@babel/code-frame>chalk>ansi-styles>color-convert": true - } - }, - "lavamoat>@babel/code-frame>chalk>ansi-styles>color-convert": { - "packages": { - "lavamoat>@babel/code-frame>chalk>ansi-styles>color-convert>color-name": true - } - }, - "lavamoat>@babel/code-frame>chalk>supports-color": { - "builtin": { - "os.release": true - }, - "globals": { - "process.env": true, - "process.platform": true, - "process.stderr": true, - "process.stdout": true, - "process.versions.node.split": true - }, - "packages": { - "lavamoat>@babel/code-frame>chalk>supports-color>has-flag": true - } - }, - "lavamoat>@babel/code-frame>chalk>supports-color>has-flag": { - "globals": { - "process.argv": true - } - }, - "lavamoat>@babel/highlight": { - "packages": { - "lavamoat>@babel/highlight>@babel/helper-validator-identifier": true, - "lavamoat>@babel/highlight>chalk": true, - "lavamoat>@babel/highlight>js-tokens": true - } - }, - "lavamoat>@babel/highlight>chalk": { - "globals": { - "process.env.TERM": true, - "process.platform": true - }, - "packages": { - "lavamoat>@babel/highlight>chalk>ansi-styles": true, - "lavamoat>@babel/highlight>chalk>escape-string-regexp": true, - "lavamoat>@babel/highlight>chalk>supports-color": true - } - }, - "lavamoat>@babel/highlight>chalk>ansi-styles": { - "packages": { - "lavamoat>@babel/highlight>chalk>ansi-styles>color-convert": true - } - }, - "lavamoat>@babel/highlight>chalk>ansi-styles>color-convert": { - "packages": { - "lavamoat>@babel/highlight>chalk>ansi-styles>color-convert>color-name": true - } - }, - "lavamoat>@babel/highlight>chalk>supports-color": { - "builtin": { - "os.release": true - }, - "globals": { - "process.env": true, - "process.platform": true, - "process.stderr": true, - "process.stdout": true, - "process.versions.node.split": true - }, - "packages": { - "lavamoat>@babel/highlight>chalk>supports-color>has-flag": true - } - }, - "lavamoat>@babel/highlight>chalk>supports-color>has-flag": { - "globals": { - "process.argv": true - } - }, "lavamoat>@lavamoat/aa": { "builtin": { "node:fs.lstatSync": true, @@ -2194,10 +2173,16 @@ "packages": { "browserify>has>function-bind": true, "eslint-plugin-import>array-includes>get-intrinsic": true, + "lavamoat>json-stable-stringify>call-bind>es-define-property": true, "lavamoat>json-stable-stringify>call-bind>es-errors": true, "lavamoat>json-stable-stringify>call-bind>set-function-length": true } }, + "lavamoat>json-stable-stringify>call-bind>es-define-property": { + "packages": { + "eslint-plugin-import>array-includes>get-intrinsic": true + } + }, "lavamoat>json-stable-stringify>call-bind>set-function-length": { "packages": { "browserify>util>is-typed-array>gopd": true, @@ -2210,8 +2195,7 @@ "lavamoat>json-stable-stringify>call-bind>set-function-length>define-data-property": { "packages": { "browserify>util>is-typed-array>gopd": true, - "eslint-plugin-import>array-includes>get-intrinsic": true, - "eslint-plugin-import>object.values>es-abstract>has-property-descriptors": true, + "lavamoat>json-stable-stringify>call-bind>es-define-property": true, "lavamoat>json-stable-stringify>call-bind>es-errors": true } }, @@ -2313,8 +2297,36 @@ "console.log": true }, "packages": { - "depcheck>@babel/parser": true, - "depcheck>@babel/traverse": true + "lavamoat>lavamoat-tofu>@babel/parser": true, + "lavamoat>lavamoat-tofu>@babel/traverse": true + } + }, + "lavamoat>lavamoat-tofu>@babel/traverse": { + "globals": { + "console.log": true + }, + "packages": { + "@babel/core>@babel/code-frame": true, + "@babel/core>@babel/generator": true, + "depcheck>@babel/traverse>@babel/helper-environment-visitor": true, + "depcheck>@babel/traverse>@babel/helper-function-name": true, + "depcheck>@babel/traverse>@babel/helper-hoist-variables": true, + "depcheck>@babel/traverse>@babel/helper-split-export-declaration": true, + "depcheck>@babel/traverse>globals": true, + "lavamoat>lavamoat-tofu>@babel/traverse>@babel/parser": true, + "lavamoat>lavamoat-tofu>@babel/traverse>@babel/types": true, + "tsup>debug": true + } + }, + "lavamoat>lavamoat-tofu>@babel/traverse>@babel/types": { + "globals": { + "console.warn": true, + "process.env.BABEL_TYPES_8_BREAKING": true + }, + "packages": { + "@babel/core>@babel/types>@babel/helper-string-parser": true, + "@babel/core>@babel/types>to-fast-properties": true, + "lavamoat>@babel/highlight>@babel/helper-validator-identifier": true } }, "readable-stream": { @@ -2375,7 +2387,7 @@ }, "packages": { "terser>@jridgewell/source-map>@jridgewell/trace-mapping>@jridgewell/resolve-uri": true, - "terser>@jridgewell/source-map>@jridgewell/trace-mapping>@jridgewell/sourcemap-codec": true + "tsup>sucrase>@jridgewell/gen-mapping>@jridgewell/sourcemap-codec": true } }, "terser>@jridgewell/source-map>@jridgewell/trace-mapping>@jridgewell/resolve-uri": { @@ -2383,13 +2395,6 @@ "define": true } }, - "terser>@jridgewell/source-map>@jridgewell/trace-mapping>@jridgewell/sourcemap-codec": { - "globals": { - "Buffer": true, - "TextDecoder": true, - "define": true - } - }, "terser>acorn": { "globals": { "console": true, @@ -2420,6 +2425,16 @@ "tsup>debug>ms": true } }, + "tsup>postcss>picocolors": { + "builtin": { + "tty.isatty": true + }, + "globals": { + "process.argv": true, + "process.env": true, + "process.platform": true + } + }, "tsup>sucrase>@jridgewell/gen-mapping": { "globals": { "define": true From 007d3696840fd6e288ae491c77f6c979c85bcff8 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Thu, 4 Jul 2024 23:56:15 +0200 Subject: [PATCH 19/26] Fix dependency issues --- packages/snaps-storybook/.depcheckrc.json | 2 + packages/snaps-storybook/package.json | 12 +- packages/snaps-storybook/src/theme/utils.ts | 6 +- yarn.lock | 499 +++++++++++++++----- 4 files changed, 397 insertions(+), 122 deletions(-) diff --git a/packages/snaps-storybook/.depcheckrc.json b/packages/snaps-storybook/.depcheckrc.json index 15d64e734b..fd94a9a21d 100644 --- a/packages/snaps-storybook/.depcheckrc.json +++ b/packages/snaps-storybook/.depcheckrc.json @@ -5,6 +5,8 @@ "@lavamoat/preinstall-always-fail", "@metamask/auto-changelog", "@metamask/eslint-*", + "@storybook/addon-docs", + "@storybook/addon-toolbars", "@types/*", "@typescript-eslint/*", "eslint-config-*", diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index f931e60bf8..4305ccffb5 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -28,6 +28,8 @@ "preset.js" ], "scripts": { + "test": "jest && yarn posttest", + "posttest": "jest-it-up --margin 0.25", "clean": "rimraf '*.tsbuildinfo' 'dist'", "start": "storybook dev --port 7000 --no-open", "build": "tsup --clean && yarn build:types", @@ -61,7 +63,6 @@ "@storybook/addon-themes": "^8.1.11", "@storybook/addon-toolbars": "^8.1.11", "@storybook/builder-vite": "^8.1.11", - "@storybook/components": "^8.1.11", "@storybook/manager-api": "^8.1.11", "@storybook/react-dom-shim": "^8.1.11", "@storybook/theming": "^8.1.11", @@ -69,12 +70,10 @@ "prettier": "^2.7.1", "react": "^18.2.0", "react-dom": "^18.2.0", - "swc-loader": "^0.2.3", - "ts-morph": "^23.0.0", - "vite-plugin-node-polyfills": "^0.22.0", - "webpack-merge": "^5.9.0" + "vite-plugin-node-polyfills": "^0.22.0" }, "devDependencies": { + "@chakra-ui/theme-tools": "^2.1.2", "@metamask/auto-changelog": "^3.4.4", "@metamask/eslint-config": "^12.1.0", "@metamask/eslint-config-jest": "^12.1.0", @@ -96,7 +95,8 @@ "jest-it-up": "^2.0.0", "ts-jest": "^29.1.1", "tsup": "^8.0.1", - "typescript": "~4.8.4" + "typescript": "~4.8.4", + "vite": "^5.3.3" }, "peerDependencies": { "storybook": "^8.0.0" diff --git a/packages/snaps-storybook/src/theme/utils.ts b/packages/snaps-storybook/src/theme/utils.ts index a2f12e7c72..34c32b27bf 100644 --- a/packages/snaps-storybook/src/theme/utils.ts +++ b/packages/snaps-storybook/src/theme/utils.ts @@ -1,7 +1,9 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import type { createMultiStyleConfigHelpers } from '@chakra-ui/react'; -import type { defineStyleConfig } from '@chakra-ui/styled-system'; +import type { + createMultiStyleConfigHelpers, + defineStyleConfig, +} from '@chakra-ui/react'; import type { Theme } from '@metamask/design-tokens'; import { darkTheme, lightTheme } from '@metamask/design-tokens'; import { hasProperty } from '@metamask/utils'; diff --git a/yarn.lock b/yarn.lock index a0a77fdded..e4f6ebc6a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2680,7 +2680,7 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/theme-tools@npm:2.1.2": +"@chakra-ui/theme-tools@npm:2.1.2, @chakra-ui/theme-tools@npm:^2.1.2": version: 2.1.2 resolution: "@chakra-ui/theme-tools@npm:2.1.2" dependencies: @@ -3045,6 +3045,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm64@npm:0.18.20" @@ -3066,6 +3073,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm@npm:0.18.20" @@ -3087,6 +3101,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-x64@npm:0.18.20" @@ -3108,6 +3129,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-arm64@npm:0.18.20" @@ -3129,6 +3157,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-x64@npm:0.18.20" @@ -3150,6 +3185,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-arm64@npm:0.18.20" @@ -3171,6 +3213,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-x64@npm:0.18.20" @@ -3192,6 +3241,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm64@npm:0.18.20" @@ -3213,6 +3269,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm@npm:0.18.20" @@ -3234,6 +3297,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ia32@npm:0.18.20" @@ -3255,6 +3325,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.14.54": version: 0.14.54 resolution: "@esbuild/linux-loong64@npm:0.14.54" @@ -3283,6 +3360,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-mips64el@npm:0.18.20" @@ -3304,6 +3388,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + "@esbuild/linux-ppc64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ppc64@npm:0.18.20" @@ -3325,6 +3416,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/linux-riscv64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-riscv64@npm:0.18.20" @@ -3346,6 +3444,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-s390x@npm:0.18.20" @@ -3367,6 +3472,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-x64@npm:0.18.20" @@ -3388,6 +3500,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/netbsd-x64@npm:0.18.20" @@ -3409,6 +3528,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/openbsd-x64@npm:0.18.20" @@ -3430,6 +3556,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/sunos-x64@npm:0.18.20" @@ -3451,6 +3584,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-arm64@npm:0.18.20" @@ -3472,6 +3612,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-ia32@npm:0.18.20" @@ -3493,6 +3640,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-x64@npm:0.18.20" @@ -3514,6 +3668,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.3.3": version: 1.3.3 resolution: "@eslint/eslintrc@npm:1.3.3" @@ -6441,6 +6602,7 @@ __metadata: "@babel/types": ^7.23.0 "@chakra-ui/anatomy": ^2.1.1 "@chakra-ui/react": ^2.6.1 + "@chakra-ui/theme-tools": ^2.1.2 "@chakra-ui/utils": ^2.0.15 "@emotion/react": ^11.10.8 "@emotion/styled": ^11.10.8 @@ -6457,7 +6619,6 @@ __metadata: "@storybook/addon-themes": ^8.1.11 "@storybook/addon-toolbars": ^8.1.11 "@storybook/builder-vite": ^8.1.11 - "@storybook/components": ^8.1.11 "@storybook/manager-api": ^8.1.11 "@storybook/react-dom-shim": ^8.1.11 "@storybook/theming": ^8.1.11 @@ -6479,13 +6640,11 @@ __metadata: prettier: ^2.7.1 react: ^18.2.0 react-dom: ^18.2.0 - swc-loader: ^0.2.3 ts-jest: ^29.1.1 - ts-morph: ^23.0.0 tsup: ^8.0.1 typescript: ~4.8.4 + vite: ^5.3.3 vite-plugin-node-polyfills: ^0.22.0 - webpack-merge: ^5.9.0 peerDependencies: storybook: ^8.0.0 languageName: unknown @@ -7729,93 +7888,114 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.6" +"@rollup/rollup-android-arm-eabi@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm64@npm:4.9.6" +"@rollup/rollup-android-arm64@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-android-arm64@npm:4.18.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-arm64@npm:4.9.6" +"@rollup/rollup-darwin-arm64@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-x64@npm:4.9.6" +"@rollup/rollup-darwin-x64@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6" - conditions: os=linux & cpu=arm +"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.6" +"@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.6" +"@rollup/rollup-linux-arm64-musl@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.6" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.6" +"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.6" +"@rollup/rollup-linux-x64-musl@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.6" +"@rollup/rollup-win32-arm64-msvc@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.6" +"@rollup/rollup-win32-ia32-msvc@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.6" +"@rollup/rollup-win32-x64-msvc@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -8146,7 +8326,7 @@ __metadata: languageName: node linkType: hard -"@storybook/components@npm:8.1.11, @storybook/components@npm:^8.1.11": +"@storybook/components@npm:8.1.11": version: 8.1.11 resolution: "@storybook/components@npm:8.1.11" dependencies: @@ -8684,18 +8864,6 @@ __metadata: languageName: node linkType: hard -"@ts-morph/common@npm:~0.24.0": - version: 0.24.0 - resolution: "@ts-morph/common@npm:0.24.0" - dependencies: - fast-glob: ^3.3.2 - minimatch: ^9.0.4 - mkdirp: ^3.0.1 - path-browserify: ^1.0.1 - checksum: 793bc8a47c93ab55c6c036f94480d3b0e948661aef4bb7dbc29279b1dda2fc4fce809a88e221537867a313541842e12d1ecbd32b4769688abe1303807ec09db6 - languageName: node - linkType: hard - "@tsconfig/node10@npm:^1.0.7": version: 1.0.8 resolution: "@tsconfig/node10@npm:1.0.8" @@ -12224,13 +12392,6 @@ __metadata: languageName: node linkType: hard -"code-block-writer@npm:^13.0.1": - version: 13.0.1 - resolution: "code-block-writer@npm:13.0.1" - checksum: 678b740d1723c7cc3c5addcbc1a91d9a7a3f033510eb8e0639154fcaae456c80630dbd40d16aefdffaf3edb5ffb352d7d46f195f69c8be692c4d7debb1dc7933 - languageName: node - linkType: hard - "collect-v8-coverage@npm:^1.0.0": version: 1.0.1 resolution: "collect-v8-coverage@npm:1.0.1" @@ -14411,6 +14572,86 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": 0.21.5 + "@esbuild/android-arm": 0.21.5 + "@esbuild/android-arm64": 0.21.5 + "@esbuild/android-x64": 0.21.5 + "@esbuild/darwin-arm64": 0.21.5 + "@esbuild/darwin-x64": 0.21.5 + "@esbuild/freebsd-arm64": 0.21.5 + "@esbuild/freebsd-x64": 0.21.5 + "@esbuild/linux-arm": 0.21.5 + "@esbuild/linux-arm64": 0.21.5 + "@esbuild/linux-ia32": 0.21.5 + "@esbuild/linux-loong64": 0.21.5 + "@esbuild/linux-mips64el": 0.21.5 + "@esbuild/linux-ppc64": 0.21.5 + "@esbuild/linux-riscv64": 0.21.5 + "@esbuild/linux-s390x": 0.21.5 + "@esbuild/linux-x64": 0.21.5 + "@esbuild/netbsd-x64": 0.21.5 + "@esbuild/openbsd-x64": 0.21.5 + "@esbuild/sunos-x64": 0.21.5 + "@esbuild/win32-arm64": 0.21.5 + "@esbuild/win32-ia32": 0.21.5 + "@esbuild/win32-x64": 0.21.5 + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -15714,19 +15955,19 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin @@ -19602,15 +19843,6 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^3.0.1": - version: 3.0.1 - resolution: "mkdirp@npm:3.0.1" - bin: - mkdirp: dist/cjs/src/bin.js - checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d - languageName: node - linkType: hard - "mlly@npm:^1.2.0, mlly@npm:^1.4.0": version: 1.4.1 resolution: "mlly@npm:1.4.1" @@ -21094,14 +21326,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.4.27, postcss@npm:^8.4.33": - version: 8.4.38 - resolution: "postcss@npm:8.4.38" +"postcss@npm:^8.1.10, postcss@npm:^8.4.27, postcss@npm:^8.4.33, postcss@npm:^8.4.39": + version: 8.4.39 + resolution: "postcss@npm:8.4.39" dependencies: nanoid: ^3.3.7 - picocolors: ^1.0.0 + picocolors: ^1.0.1 source-map-js: ^1.2.0 - checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 + checksum: 14b130c90f165961772bdaf99c67f907f3d16494adf0868e57ef68baa67e0d1f6762db9d41ab0f4d09bab6fb7888588dba3596afd1a235fd5c2d43fba7006ac6 languageName: node linkType: hard @@ -22591,23 +22823,26 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.0.2": - version: 4.9.6 - resolution: "rollup@npm:4.9.6" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.9.6 - "@rollup/rollup-android-arm64": 4.9.6 - "@rollup/rollup-darwin-arm64": 4.9.6 - "@rollup/rollup-darwin-x64": 4.9.6 - "@rollup/rollup-linux-arm-gnueabihf": 4.9.6 - "@rollup/rollup-linux-arm64-gnu": 4.9.6 - "@rollup/rollup-linux-arm64-musl": 4.9.6 - "@rollup/rollup-linux-riscv64-gnu": 4.9.6 - "@rollup/rollup-linux-x64-gnu": 4.9.6 - "@rollup/rollup-linux-x64-musl": 4.9.6 - "@rollup/rollup-win32-arm64-msvc": 4.9.6 - "@rollup/rollup-win32-ia32-msvc": 4.9.6 - "@rollup/rollup-win32-x64-msvc": 4.9.6 +"rollup@npm:^4.0.2, rollup@npm:^4.13.0": + version: 4.18.0 + resolution: "rollup@npm:4.18.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.18.0 + "@rollup/rollup-android-arm64": 4.18.0 + "@rollup/rollup-darwin-arm64": 4.18.0 + "@rollup/rollup-darwin-x64": 4.18.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.18.0 + "@rollup/rollup-linux-arm-musleabihf": 4.18.0 + "@rollup/rollup-linux-arm64-gnu": 4.18.0 + "@rollup/rollup-linux-arm64-musl": 4.18.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.18.0 + "@rollup/rollup-linux-riscv64-gnu": 4.18.0 + "@rollup/rollup-linux-s390x-gnu": 4.18.0 + "@rollup/rollup-linux-x64-gnu": 4.18.0 + "@rollup/rollup-linux-x64-musl": 4.18.0 + "@rollup/rollup-win32-arm64-msvc": 4.18.0 + "@rollup/rollup-win32-ia32-msvc": 4.18.0 + "@rollup/rollup-win32-x64-msvc": 4.18.0 "@types/estree": 1.0.5 fsevents: ~2.3.2 dependenciesMeta: @@ -22621,12 +22856,18 @@ __metadata: optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true "@rollup/rollup-linux-arm64-gnu": optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true "@rollup/rollup-linux-x64-gnu": optional: true "@rollup/rollup-linux-x64-musl": @@ -22641,7 +22882,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: cdc0bdd41ee2d3fe7f01df26f5a85921caf46ffe0ae118b2f3deebdf569e8b1c1800b8eee04960425e67aecbd9ccdd37bcdb92595866adb3968d223a07e9b7e6 + checksum: 54cde921e763017ce952ba76ec77d58dd9c01e3536c3be628d4af8c59d9b2f0e1e6a11b30fda44845c7b74098646cd972feb3bcd2f4a35d3293366f2eeb0a39e languageName: node linkType: hard @@ -24355,16 +24596,6 @@ __metadata: languageName: node linkType: hard -"ts-morph@npm:^23.0.0": - version: 23.0.0 - resolution: "ts-morph@npm:23.0.0" - dependencies: - "@ts-morph/common": ~0.24.0 - code-block-writer: ^13.0.1 - checksum: 3282eb0f8bd4577770874736c3259b97501da9a86137160b5d68f106b7848ea7b1fbccf9e198a3d930ec40c993e9951d4bfae31e2562dac8f3de0d7bb0e23615 - languageName: node - linkType: hard - "ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" @@ -25313,6 +25544,46 @@ __metadata: languageName: node linkType: hard +"vite@npm:^5.3.3": + version: 5.3.3 + resolution: "vite@npm:5.3.3" + dependencies: + esbuild: ^0.21.3 + fsevents: ~2.3.3 + postcss: ^8.4.39 + rollup: ^4.13.0 + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 1a54b678c03b52be934b0db95295aa573819063fad9e13f148936cfc4006d081a6790fdd2dbe111b09b75b9a8d49f15e0788c58b86156d238ab3a0c1cc1a941f + languageName: node + linkType: hard + "vm-browserify@npm:^1.0.0, vm-browserify@npm:^1.0.1, vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" From 98c05872fd5e242713a95f7c4a493f456e96c10a Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Fri, 5 Jul 2024 00:02:10 +0200 Subject: [PATCH 20/26] Fix more dependency issues --- packages/snaps-storybook/package.json | 8 +- yarn.lock | 2078 +++++++++++-------------- 2 files changed, 874 insertions(+), 1212 deletions(-) diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index 4305ccffb5..425ab27600 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -24,8 +24,7 @@ "module": "./dist/index.mjs", "types": "./dist/types/index.d.ts", "files": [ - "dist", - "preset.js" + "dist" ], "scripts": { "test": "jest && yarn posttest", @@ -70,6 +69,7 @@ "prettier": "^2.7.1", "react": "^18.2.0", "react-dom": "^18.2.0", + "storybook": "^8.1.11", "vite-plugin-node-polyfills": "^0.22.0" }, "devDependencies": { @@ -96,10 +96,10 @@ "ts-jest": "^29.1.1", "tsup": "^8.0.1", "typescript": "~4.8.4", - "vite": "^5.3.3" + "vite": "^4.3.9" }, "peerDependencies": { - "storybook": "^8.0.0" + "storybook": "^8.1.11" }, "engines": { "node": "^18.16 || >=20" diff --git a/yarn.lock b/yarn.lock index e4f6ebc6a0..d39ae5d587 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1603,37 +1603,44 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/accordion@npm:2.3.1": - version: 2.3.1 - resolution: "@chakra-ui/accordion@npm:2.3.1" - dependencies: - "@chakra-ui/descendant": 3.1.0 - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 +"@chakra-ui/accordion@npm:2.1.11": + version: 2.1.11 + resolution: "@chakra-ui/accordion@npm:2.1.11" + dependencies: + "@chakra-ui/descendant": 3.0.14 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/transition": 2.1.0 + "@chakra-ui/transition": 2.0.16 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 3839a77ad235cc4fd322e3118457eb12433df7b5937e5145570277ee54f4d8ce0a7a4f0a02474524d3c7fa8dab9f7d083d21a097e5bed9d5a5d15e345c5d1f49 + checksum: 7b042e9e1a87a85ff275b84b932ca8456d5ea95a24e896a518754e116857d8987a0ca38867b75ad62d386145a27aed5670ffba4b6b332776599109b5884e5eee languageName: node linkType: hard -"@chakra-ui/alert@npm:2.2.2": - version: 2.2.2 - resolution: "@chakra-ui/alert@npm:2.2.2" +"@chakra-ui/alert@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/alert@npm:2.1.0" dependencies: - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/spinner": 2.1.0 + "@chakra-ui/spinner": 2.0.13 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: f13a7b3c128447b915d8481105bb994fd382edb45273f0c59733c02cec4d891561db8462d5b4b0148f405ec3228b7e78dddb1dc03c2905dc4a0ec21e2c915822 + checksum: 312549a7f1413e8854fc094fdd21b33aa4e0ed50280077c607dc24bb8dfc94bdb9c98f2a209800aac7f8f939a4641e22317c7ac3f7d69e35ef8d0c7155c42ac0 + languageName: node + linkType: hard + +"@chakra-ui/anatomy@npm:2.1.2": + version: 2.1.2 + resolution: "@chakra-ui/anatomy@npm:2.1.2" + checksum: 87519672ae028ef3af44ecc7d87fa18dc7ec8d46958a3490cb312ebc6b857bc227e908ffe0b12eb1e2a11c860656c38c3160ebc20bf1e9522b0ae0ef7b31e28d languageName: node linkType: hard @@ -1644,32 +1651,32 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/avatar@npm:2.3.0": - version: 2.3.0 - resolution: "@chakra-ui/avatar@npm:2.3.0" +"@chakra-ui/avatar@npm:2.2.10": + version: 2.2.10 + resolution: "@chakra-ui/avatar@npm:2.2.10" dependencies: - "@chakra-ui/image": 2.1.0 + "@chakra-ui/image": 2.0.16 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: a54120d7bf2096c09c19248050e511b379e93ac4d541cb6882ebc3690552b026bd4e7a2da1fa6cf486938bc438c7e3fd1aad5c5d77c247ddc81832b02d4016d9 + checksum: 4f1d80c9f0498c27aeaf615f8a42b4e9913f329f03d44e058d20fc292ac6b21d19cf6339f9ef296bd091f13dc7c9bc02faa6e5d08cbc2a9d458710a0e3f89023 languageName: node linkType: hard -"@chakra-ui/breadcrumb@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/breadcrumb@npm:2.2.0" +"@chakra-ui/breadcrumb@npm:2.1.5": + version: 2.1.5 + resolution: "@chakra-ui/breadcrumb@npm:2.1.5" dependencies: "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 27ff90194166a34a33c7d39bc18920e3a379d476afabed80e806328ac18c6e0d3c66ab912f23fa68fc07033b1fd0cfd80564fb7fc1e5ff1986c6693a6d8b4fc2 + checksum: 3052b1bfeb5526810904bf51b7d491ff91e906308b08f2742db3b125d41a0bc92890d354b41a71a8b0cdb9e24bb93e437eefa5c31b03aa50fae1251a0d5ded52 languageName: node linkType: hard @@ -1682,159 +1689,159 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/button@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/button@npm:2.1.0" +"@chakra-ui/button@npm:2.0.18": + version: 2.0.18 + resolution: "@chakra-ui/button@npm:2.0.18" dependencies: - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/spinner": 2.1.0 + "@chakra-ui/spinner": 2.0.13 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 749f11334d7d5bf7257d40fdebb0e0156ce64a53b21d56016d9fb9431a2c934db33f78b2e092872aa5f19e1de4745af1cc893aa70d75092b9f07020c07224e7f + checksum: db841acf26ef46dde4578981f4e5876905e596017fe6e381c86a91f67df150f01b5a16e49d282a9fca41c6f2f25c7e4095c0a4128fe9f71e4aac873ae88f733c languageName: node linkType: hard -"@chakra-ui/card@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/card@npm:2.2.0" +"@chakra-ui/card@npm:2.1.6": + version: 2.1.6 + resolution: "@chakra-ui/card@npm:2.1.6" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: e8333b521cba8be8193dfb4784697942efc820890f8c89aa1484fab3fa7b69ababffea24eaecc331b1c901407b94f4a465113bf115ab965be1f87b913f31d53d + checksum: c054220041dc32db3c59a3424ed1a316137d9f57ddb754e5c29f4129d9a26184268b5da85314a45ca10d464ff07a171faaebf4309fd0e3dea159558b046bfce3 languageName: node linkType: hard -"@chakra-ui/checkbox@npm:2.3.2": - version: 2.3.2 - resolution: "@chakra-ui/checkbox@npm:2.3.2" +"@chakra-ui/checkbox@npm:2.2.15": + version: 2.2.15 + resolution: "@chakra-ui/checkbox@npm:2.2.15" dependencies: - "@chakra-ui/form-control": 2.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-update-effect": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/visually-hidden": 2.2.0 - "@zag-js/focus-visible": 0.16.0 + "@chakra-ui/visually-hidden": 2.0.15 + "@zag-js/focus-visible": 0.2.2 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: b3dcf8b8e5530fd51df2b761a1721c554f01aa7d3e02fed6d8e12697715c73f6d42c9f80d116f4fc7b757f82f89bea876f1bc0c59cd4d64480c3f7536b0208ac + checksum: f1a76b8b2ec0b8af02a55ca2cd6eadde10ac797fc36d03b43438132128ca1c38d544a6a359db8fb3dc59f39456e95605665b022fe0c8fbac8ba9d0743ea1646e languageName: node linkType: hard -"@chakra-ui/clickable@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/clickable@npm:2.1.0" +"@chakra-ui/clickable@npm:2.0.14": + version: 2.0.14 + resolution: "@chakra-ui/clickable@npm:2.0.14" dependencies: - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: react: ">=18" - checksum: 8f5da4b8e1e19a7752e10fb04a5c0afe6b7332415837272388c5249b11f70caf5d2654050c61d81a4d2a24e43ff47933a4096671af26b57aa0d72ab9025f86a1 + checksum: bbb3314de60720102a664a64fdb3c898f4c2185beaf5547e3aef59dceca721e1f409605a208327331a4d06306f8985ece8e387df2de704947b6b9f9c269300df languageName: node linkType: hard -"@chakra-ui/close-button@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/close-button@npm:2.1.1" +"@chakra-ui/close-button@npm:2.0.17": + version: 2.0.17 + resolution: "@chakra-ui/close-button@npm:2.0.17" dependencies: - "@chakra-ui/icon": 3.2.0 + "@chakra-ui/icon": 3.0.16 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 7b81bb592b19a81aea5f616b3d244a0e54b8a90a7beae56253bf18d29351b3b14bf934473ed940244340fef6066d3e1001d970c3692f02ce984e4a6d926cedd4 + checksum: 203f3b0064d07e1f8a1631e7828722314f81fe1291eda267f552fa75551a96493fe810f6f2edf362892ecb10d9e101b647cb366f5196d4b0c79b1f3bf07f872d languageName: node linkType: hard -"@chakra-ui/color-mode@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/color-mode@npm:2.2.0" +"@chakra-ui/color-mode@npm:2.1.12": + version: 2.1.12 + resolution: "@chakra-ui/color-mode@npm:2.1.12" dependencies: - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 peerDependencies: react: ">=18" - checksum: ccba3ebb0131094f4844ea9b61333128ebd33eb70b16cc9117dd078f2df888d48573e47a9ac73ebc03283b2f49008cd56758aa7c15c159de3eb184a3819cb7e2 + checksum: 1bbe9ef3d9f2fb655de9c99fef3b631cc319c8283e2346d95824c7b3db783527abaf01eb0b395e0dfd5ce0d7e82ec070278157f65f10aee92ac507a5d44ee4b9 languageName: node linkType: hard -"@chakra-ui/control-box@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/control-box@npm:2.1.0" +"@chakra-ui/control-box@npm:2.0.13": + version: 2.0.13 + resolution: "@chakra-ui/control-box@npm:2.0.13" peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: c52ff6ba03fae9818372a7a11ef22b2389ed5e7c046355eb3f6ae6d348db4c32058a841d502c759ee30a6efdd18c831274b31fc79a3f67ac1f1ca60bcc67e608 + checksum: e0cc5d4ca804751b507ec4acf9605c44df18522117bcd02684513689ad64bf8a44853153977c976aed386e210c6dc94c386296fbed7da4ee4430c63a293106dc languageName: node linkType: hard -"@chakra-ui/counter@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/counter@npm:2.1.0" +"@chakra-ui/counter@npm:2.0.14": + version: 2.0.14 + resolution: "@chakra-ui/counter@npm:2.0.14" dependencies: "@chakra-ui/number-utils": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: react: ">=18" - checksum: d955281ef594a26b31116c1323ae4231b809957048d0fa414f46d759f038a8d193227486f4b2a76320c83deff0a69078e850d83a10c10797ba986e458779dbb8 + checksum: 37149108c7c3a6d8adca5ce42a1fb16829e37e8fc7fa44b8941fa9810480d2f386f8a95bdf44955066f599b472a410259e22331ebf8501fb0280675d5ff6a345 languageName: node linkType: hard -"@chakra-ui/css-reset@npm:2.3.0": - version: 2.3.0 - resolution: "@chakra-ui/css-reset@npm:2.3.0" +"@chakra-ui/css-reset@npm:2.1.1": + version: 2.1.1 + resolution: "@chakra-ui/css-reset@npm:2.1.1" peerDependencies: "@emotion/react": ">=10.0.35" react: ">=18" - checksum: 1c760c7475c4b781c73a5174c265e05cd0f8cdca5420910fd53a29c565555863eeeb5967eb2deeb0c5219600a9dae4d14cbe0d4817db9c83e43f41963988df4e + checksum: 56cb70f1276482af27a1ee301459fabc9022012659330f568358e8a8dda6d55a95e3ead9f3fedd2e5bdec74605d94974163c3660395c637d323fbd3170fafe57 languageName: node linkType: hard -"@chakra-ui/descendant@npm:3.1.0": - version: 3.1.0 - resolution: "@chakra-ui/descendant@npm:3.1.0" +"@chakra-ui/descendant@npm:3.0.14": + version: 3.0.14 + resolution: "@chakra-ui/descendant@npm:3.0.14" dependencies: - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-merge-refs": 2.0.7 peerDependencies: react: ">=18" - checksum: 9d0031df94b668a11805c01ce80e4945fb957132a7f5cc880a2496f2ad6952cbeefdc462ddad0a0b4ba0907332bceb6838a43054303d7735ff26242bd8e6e21c + checksum: 6561544dfa75027d7fb7ef8eab7b9b375d6f94461cfe3a63ed72324dc3fa8b4e0d882bae8bad728b0a1dfe8729c85a7d91b12fa3f363f5e799c491722d64f2a9 languageName: node linkType: hard -"@chakra-ui/dom-utils@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/dom-utils@npm:2.1.0" - checksum: 935f5b4d3fb9af6030ae4beba14ae745c9ca9ca6c5476f5ebd72dc50934fb5ee7683bbad8172994dd029f59b3dfdd79e2be1e21b38156b6b9a70166341f5db07 +"@chakra-ui/dom-utils@npm:2.0.6": + version: 2.0.6 + resolution: "@chakra-ui/dom-utils@npm:2.0.6" + checksum: 0bfdb514059bbbcaa2090516f016a067f163abc3eb83a94a7c36606d69eb61b717d07dd298634227828f63561c177b5f9106d6575875fd57acc5f6bce8884f32 languageName: node linkType: hard -"@chakra-ui/editable@npm:3.1.0": - version: 3.1.0 - resolution: "@chakra-ui/editable@npm:3.1.0" +"@chakra-ui/editable@npm:3.0.0": + version: 3.0.0 + resolution: "@chakra-ui/editable@npm:3.0.0" dependencies: - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-focus-on-pointer-down": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-focus-on-pointer-down": 2.0.6 + "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-update-effect": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: f9ee2ab959371607662b6a3c23c95aeead810f3da3a2469ec2e5ca9effe176b74e1a742d0e10584978129c4174cca24f5c096f74cb8ed1996b1e1a190ff9b18b + checksum: 31f84fcab322d53653de96bbf262e2436f86e3126e2761191eb10a5b8b1d2870d3ae87e2f850ba56e3f522655787594038f4af16181d10e0756461b6a21614be languageName: node linkType: hard @@ -1845,103 +1852,103 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/focus-lock@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/focus-lock@npm:2.1.0" +"@chakra-ui/focus-lock@npm:2.0.16": + version: 2.0.16 + resolution: "@chakra-ui/focus-lock@npm:2.0.16" dependencies: - "@chakra-ui/dom-utils": 2.1.0 - react-focus-lock: ^2.9.4 + "@chakra-ui/dom-utils": 2.0.6 + react-focus-lock: ^2.9.2 peerDependencies: react: ">=18" - checksum: 741671f132f4a772b0a65441ec50e96e8d718875aa634d1847285b4be0aa4ed1f0dbd7fe5eae0f50742454f8aa047d536ec1398de742f1269d25545f5b7b4871 + checksum: 960096aa31fae1391c910a223828c2ef19aaf0870121298e5391b5a779fab0a429d06d5907676c52c1be0602becbab1030a359bbd2b7a1a5e3360ab91836421d languageName: node linkType: hard -"@chakra-ui/form-control@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/form-control@npm:2.2.0" +"@chakra-ui/form-control@npm:2.0.18": + version: 2.0.18 + resolution: "@chakra-ui/form-control@npm:2.0.18" dependencies: - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 3ac04664c4a063c83329a51f2ece019c866d5d08cf2c896beb29643205d258d74a9bed8072d00d37ff236b799b0a870b37cba29e295305fbce4b457906e7c025 + checksum: 2624e8c3ccd6ad06a22d4233303b91bf287970fad2fa13aa2e7c6e41fde2e1eb635e488f2d2fd1e88a8bf89a55ce0141445f7ee1a258ea26e2d74f50c966da3b languageName: node linkType: hard -"@chakra-ui/hooks@npm:2.2.1": - version: 2.2.1 - resolution: "@chakra-ui/hooks@npm:2.2.1" +"@chakra-ui/hooks@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/hooks@npm:2.2.0" dependencies: "@chakra-ui/react-utils": 2.0.12 "@chakra-ui/utils": 2.0.15 - compute-scroll-into-view: 3.0.3 + compute-scroll-into-view: 1.0.20 copy-to-clipboard: 3.3.3 peerDependencies: react: ">=18" - checksum: d0700e06c316d158c98a9a70448ee2a80379346c1ba0becafe968ebd1e1c81ecf4d5e4ebe07d58d1b5c81c62d9d90ff8fc7dd4f2b610937a4901bbc4ac6296ab + checksum: 778313f236f3bbb7f303487f974305ab0656b40fbd1e0b3561e69ada8519d30eed67fb6289a18dcaa6880355e150d4e8e4066e3f08814a4b2fd378557d4b18a6 languageName: node linkType: hard -"@chakra-ui/icon@npm:3.2.0": - version: 3.2.0 - resolution: "@chakra-ui/icon@npm:3.2.0" +"@chakra-ui/icon@npm:3.0.16": + version: 3.0.16 + resolution: "@chakra-ui/icon@npm:3.0.16" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: d417e2b343837d6862eb37739e3d02b8e8bbeeefa4c7e4f1d4a7fcfcdf1c7a4401de9094d7a08ba1419f73465ab30456427f8dbf2f2ffe29b77a14ad4b341b00 + checksum: c0ac66946fe8950e7daaa2462f00f2f7d4ce41878b9f26451c0c94c75887f4ae49f86883c4d7c2728243e5c182b9530e752ec9817c7672e0f852bde8353b2039 languageName: node linkType: hard -"@chakra-ui/image@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/image@npm:2.1.0" +"@chakra-ui/image@npm:2.0.16": + version: 2.0.16 + resolution: "@chakra-ui/image@npm:2.0.16" dependencies: - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 83bd16de9780e64e05ada5ddcccc0048228cdb9af73ca5dc75514fdbf14aed4fecee9c976cea768755b3ea3aae2d8f90d2bf63909c16d238331c9c9b31f5a31f + checksum: 68cab8553fadb22f860c298e1863c874980b6b41d05af6ecced7a1d108e1fcbfa15b16e9c30607a2c9a9b534def4ee05700dc18d39082212d26c835e6658fc81 languageName: node linkType: hard -"@chakra-ui/input@npm:2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/input@npm:2.1.2" +"@chakra-ui/input@npm:2.0.22": + version: 2.0.22 + resolution: "@chakra-ui/input@npm:2.0.22" dependencies: - "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/form-control": 2.0.18 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 0db226c07d0b4c726632036d08dada467c7676e3b4fe2b0881d8885f8b6903563d20d106c9052d60e1a56b67f498e30155fd47e4efe2dbd35cefdee427c740d8 + checksum: 9ec02f5c20a6f2a584ae641c8e238d25bcd355df7eed9c263b908a72a1c106fe5f3c1eaef8f2fffe9c131d18320c9cb0916c92a01f24409b7f08535fdb439d73 languageName: node linkType: hard -"@chakra-ui/layout@npm:2.3.1": - version: 2.3.1 - resolution: "@chakra-ui/layout@npm:2.3.1" +"@chakra-ui/layout@npm:2.1.19": + version: 2.1.19 + resolution: "@chakra-ui/layout@npm:2.1.19" dependencies: "@chakra-ui/breakpoint-utils": 2.0.8 - "@chakra-ui/icon": 3.2.0 + "@chakra-ui/icon": 3.0.16 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 388f150b1b7d2d55a2a8a1dbeec706bf82f56eefe867b670d6d7036e8715479e59b999e962c35c4bfef7f9196a6130a1a2436f20db0253a1b0cf6332fff1848c + checksum: 3b3e1c92361bda66ec67a2a6023cb137a5b0d7fbf17f5960f48a11c41d8a092044043a7d6be96d63658486630f8b8f3493ac1ba160572c366c624928da174695 languageName: node linkType: hard @@ -1952,99 +1959,99 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/live-region@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/live-region@npm:2.1.0" +"@chakra-ui/live-region@npm:2.0.13": + version: 2.0.13 + resolution: "@chakra-ui/live-region@npm:2.0.13" peerDependencies: react: ">=18" - checksum: 5a89dd76febf090f0b1f8ead616d4af6233276ab12df4b42c1dc48d329aeb4672732dd755613038f64cb92d02c32bb4a8e56922610de4e7d1f9df34e1087b01f + checksum: 776b6c9d803d10f61cca2716f7555fbb64709ffe2d9ebdf3555a858a261bb00d2a5e07aa99e19e6182fd4bf8fd93f65dfd5a36c816a245d0483a993413ad64f0 languageName: node linkType: hard -"@chakra-ui/media-query@npm:3.3.0": - version: 3.3.0 - resolution: "@chakra-ui/media-query@npm:3.3.0" +"@chakra-ui/media-query@npm:3.2.12": + version: 3.2.12 + resolution: "@chakra-ui/media-query@npm:3.2.12" dependencies: "@chakra-ui/breakpoint-utils": 2.0.8 - "@chakra-ui/react-env": 3.1.0 + "@chakra-ui/react-env": 3.0.0 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 44ea1532ead0214256d157edc904ab14836c00197e163d441111dfdc47307a46dfca6020401507f8398ecf8bc1690e0589f9e7dcfdf0fd2adc56e9ec8cfbd27a + checksum: 3d18c4a909d9ff528d8e29ebe417ebdec59d9970e126210b35eb97d7550a17ae89921e4cd2efcd118b3c8032df44c8c99b3c8d7adbd1e042f0014174318a2010 languageName: node linkType: hard -"@chakra-ui/menu@npm:2.2.1": - version: 2.2.1 - resolution: "@chakra-ui/menu@npm:2.2.1" +"@chakra-ui/menu@npm:2.1.14": + version: 2.1.14 + resolution: "@chakra-ui/menu@npm:2.1.14" dependencies: - "@chakra-ui/clickable": 2.1.0 - "@chakra-ui/descendant": 3.1.0 + "@chakra-ui/clickable": 2.0.14 + "@chakra-ui/descendant": 3.0.14 "@chakra-ui/lazy-utils": 2.0.5 - "@chakra-ui/popper": 3.1.0 + "@chakra-ui/popper": 3.0.14 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-animation-state": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-disclosure": 2.1.0 - "@chakra-ui/react-use-focus-effect": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 - "@chakra-ui/react-use-outside-click": 2.2.0 - "@chakra-ui/react-use-update-effect": 2.1.0 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-animation-state": 2.0.8 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-disclosure": 2.0.8 + "@chakra-ui/react-use-focus-effect": 2.0.10 + "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-outside-click": 2.1.0 + "@chakra-ui/react-use-update-effect": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/transition": 2.1.0 + "@chakra-ui/transition": 2.0.16 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 883dfefcd11297f1a4771186fb0cc1976ef0fa8e537f38bdbfed2a7195e8387d4ea41da47b01677eb3188927d49724676a567289dfdb58e00746a46ea283de4f + checksum: 682ee33b2db0748880c3f8eb81f19d4c00967a558d63d03e756964fe60337dc09343682821c6d3caa51d1ea06da9351d10f03112a3c87b700ae08f0ea0e9a76a languageName: node linkType: hard -"@chakra-ui/modal@npm:2.3.1": - version: 2.3.1 - resolution: "@chakra-ui/modal@npm:2.3.1" +"@chakra-ui/modal@npm:2.2.11": + version: 2.2.11 + resolution: "@chakra-ui/modal@npm:2.2.11" dependencies: - "@chakra-ui/close-button": 2.1.1 - "@chakra-ui/focus-lock": 2.1.0 - "@chakra-ui/portal": 2.1.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/close-button": 2.0.17 + "@chakra-ui/focus-lock": 2.0.16 + "@chakra-ui/portal": 2.0.16 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/transition": 2.1.0 - aria-hidden: ^1.2.3 - react-remove-scroll: ^2.5.6 + "@chakra-ui/transition": 2.0.16 + aria-hidden: ^1.2.2 + react-remove-scroll: ^2.5.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 2f2e3965199a3fa8f867f2fcb6c125763ac5c982b15f29cf1e462e2e49b5466a675b5a41f24fcf0ba40c25bf70fc401cee600ddb7642d250469a15df3352924e + checksum: fe0ffbd9dbd112c00610ca98b31390386e579a22b4c3ffa3bf9eb21e732bf3258741f5ecd1f59832b867e0bfdae69ef4a99f900505edd84df405e7dcc3bd82fa languageName: node linkType: hard -"@chakra-ui/number-input@npm:2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/number-input@npm:2.1.2" +"@chakra-ui/number-input@npm:2.0.19": + version: 2.0.19 + resolution: "@chakra-ui/number-input@npm:2.0.19" dependencies: - "@chakra-ui/counter": 2.1.0 - "@chakra-ui/form-control": 2.2.0 - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/counter": 2.0.14 + "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.1.0 - "@chakra-ui/react-use-event-listener": 2.1.0 - "@chakra-ui/react-use-interval": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-event-listener": 2.0.7 + "@chakra-ui/react-use-interval": 2.0.5 + "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-update-effect": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: fcce1dedfb50a0246dc2d87e96b0faa472e43c47ae9c9821bd6bf94457737d954024ecbf2dc9cf05437169cf12c84cb3af59733d8e38dc5df5295931b9573a26 + checksum: daabf598dd2e2de145987eae6c4af4a69d2b6c106ec9f3d2df8662ee2393a2077254272c5a1a65b62c89559fb0c3ff1e585b02378ea8181a0f48abd0589fe067 languageName: node linkType: hard @@ -2062,116 +2069,116 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/pin-input@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/pin-input@npm:2.1.0" +"@chakra-ui/pin-input@npm:2.0.20": + version: 2.0.20 + resolution: "@chakra-ui/pin-input@npm:2.0.20" dependencies: - "@chakra-ui/descendant": 3.1.0 + "@chakra-ui/descendant": 3.0.14 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: fc1cbeb1646fe6466086b578f3375f453457fab6cda59e36390dad7999689d4ccd64392bc49a92dfa5bf1a5929ee56931eab523190d43698977bd5e1cdd70334 + checksum: 8db6d261471f23de4f0a72b0b03e60d35d40da0e0cf4d138f5aa441c1b9e24026b342b9ff3e71c1eba327415c5378213d2279655f39276d392c12ac5d281fbf4 languageName: node linkType: hard -"@chakra-ui/popover@npm:2.2.1": - version: 2.2.1 - resolution: "@chakra-ui/popover@npm:2.2.1" +"@chakra-ui/popover@npm:2.1.11": + version: 2.1.11 + resolution: "@chakra-ui/popover@npm:2.1.11" dependencies: - "@chakra-ui/close-button": 2.1.1 + "@chakra-ui/close-button": 2.0.17 "@chakra-ui/lazy-utils": 2.0.5 - "@chakra-ui/popper": 3.1.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/popper": 3.0.14 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-animation-state": 2.1.0 - "@chakra-ui/react-use-disclosure": 2.1.0 - "@chakra-ui/react-use-focus-effect": 2.1.0 - "@chakra-ui/react-use-focus-on-pointer-down": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-animation-state": 2.0.8 + "@chakra-ui/react-use-disclosure": 2.0.8 + "@chakra-ui/react-use-focus-effect": 2.0.10 + "@chakra-ui/react-use-focus-on-pointer-down": 2.0.6 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 5034e2b156180da2875c75b8828bf2d83a21d814101ab27db8f057e601f1cdf109568360db229f9a73c67e029d88f9f25670e42eb80eea21a908d3f7f91274fa + checksum: 35dc02f155516fa083210fd936a02e27555ae3c5b2b5869a6cffba0338a22e82726f7b18c89c696f9a0113716dc65130a5addca022a3511ccb032af8fca2fa3b languageName: node linkType: hard -"@chakra-ui/popper@npm:3.1.0": - version: 3.1.0 - resolution: "@chakra-ui/popper@npm:3.1.0" +"@chakra-ui/popper@npm:3.0.14": + version: 3.0.14 + resolution: "@chakra-ui/popper@npm:3.0.14" dependencies: "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@popperjs/core": ^2.9.3 peerDependencies: react: ">=18" - checksum: 4e2797a16ca2f1d6071790489e7a9811b791a51437ca8a44c6aed8b04f3192d2159b2b033fe1c9fa2dd79fb28977668e1721ae922af43807be1bb9901c39b618 + checksum: 3a3a54d79b00f4feb8865f4eb15a9b906f287bbf1e920613724b953922f904c6425d1c51df0396dae2030ffb5225fa0b4c617d1b64421539fdcf486654ab31e4 languageName: node linkType: hard -"@chakra-ui/portal@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/portal@npm:2.1.0" +"@chakra-ui/portal@npm:2.0.16": + version: 2.0.16 + resolution: "@chakra-ui/portal@npm:2.0.16" dependencies: - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 peerDependencies: react: ">=18" react-dom: ">=18" - checksum: fa9799f99614943f17e32797e2daf7fe7d96da6d2ccd8bb96b817ffac8a1301b29d398d96c1c0c1ba72ab8f6c2e4e6835eeb11cb1f56968ff3934c611068900c + checksum: fbb6799b1e82c4f35cdff82f17a64373b4b36d4f9067aef310cd7ef32119c0f1a1fd1e10e29acdcafa90016164d54405ecdd9f29e6130d290fc546a72e0ccdbb languageName: node linkType: hard -"@chakra-ui/progress@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/progress@npm:2.2.0" +"@chakra-ui/progress@npm:2.1.6": + version: 2.1.6 + resolution: "@chakra-ui/progress@npm:2.1.6" dependencies: - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 4936959f3bfe645d4a715808c273eb8da74238bff35da26ae62cf03b709233852a22563a571160637cd509082208008220421ca887efee6b7f73e0d8401b50c8 + checksum: 9c705955b55a2dd622b954066aa14d62ccb4f24b31b76ef9d278719dac3aaaacce220c38a85abc101fd1743e04112bf8db3916e7f87f4b5a25f175b65f759d7a languageName: node linkType: hard -"@chakra-ui/provider@npm:2.4.2": - version: 2.4.2 - resolution: "@chakra-ui/provider@npm:2.4.2" +"@chakra-ui/provider@npm:2.2.4": + version: 2.2.4 + resolution: "@chakra-ui/provider@npm:2.2.4" dependencies: - "@chakra-ui/css-reset": 2.3.0 - "@chakra-ui/portal": 2.1.0 - "@chakra-ui/react-env": 3.1.0 - "@chakra-ui/system": 2.6.2 + "@chakra-ui/css-reset": 2.1.1 + "@chakra-ui/portal": 2.0.16 + "@chakra-ui/react-env": 3.0.0 + "@chakra-ui/system": 2.5.7 "@chakra-ui/utils": 2.0.15 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" react-dom: ">=18" - checksum: 8ecb657ca2c15ba975e01b1f127f774a10f7ea8eed032cec84e0c82e223eb66dce6834da8f6c8f0ab8aa3cde1867c1e10e77bb4cb6488f1e009ca97bc4d9be6f + checksum: f3e27402fba9eed881d872b172d55a4e60d4c885b7456f03037db7d35ecebbdce043ccf53928b58a176736f8a9a4e906a6435815d3c2e04af129bbcf89559d0c languageName: node linkType: hard -"@chakra-ui/radio@npm:2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/radio@npm:2.1.2" +"@chakra-ui/radio@npm:2.0.22": + version: 2.0.22 + resolution: "@chakra-ui/radio@npm:2.0.22" dependencies: - "@chakra-ui/form-control": 2.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@zag-js/focus-visible": 0.16.0 + "@zag-js/focus-visible": 0.2.2 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 44b99b830bd3b5e5e0e2332c2c38908abd2740fd0dc695fcd899a06f5f76cfed318f85dce66d9eb12a982daf4797a1945eb2653d1ca1ac3bc34295dce7ab147c + checksum: b48d20dd15f6f540a287d16243261651b124647c7f33fc48ded9856945a5edeab221ec9b147be25474769883e59358669dff54f16385596f0c99d1e02b04a61a languageName: node linkType: hard @@ -2184,23 +2191,23 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/react-context@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-context@npm:2.1.0" +"@chakra-ui/react-context@npm:2.0.8": + version: 2.0.8 + resolution: "@chakra-ui/react-context@npm:2.0.8" peerDependencies: react: ">=18" - checksum: 2e9c0f4e011a5a05cc811478d61db4b8d06cc2a4cc484ce44ef1f95aa6e9bb9df5407a92d74f840a1fea6e680b704909af9a1744308d6da4c8f939feb81b75b0 + checksum: 4513f6cc218c45665398fd60b688c5966c84433f33248703a16ac4efc4291a95427bf66581adeb0b5d8c4301ecd48582c4a1ad81a6b1cbfe006dc97580ac5b04 languageName: node linkType: hard -"@chakra-ui/react-env@npm:3.1.0": - version: 3.1.0 - resolution: "@chakra-ui/react-env@npm:3.1.0" +"@chakra-ui/react-env@npm:3.0.0": + version: 3.0.0 + resolution: "@chakra-ui/react-env@npm:3.0.0" dependencies: - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 peerDependencies: react: ">=18" - checksum: 54edb02ffdb9109bdc6d7f48dc88e5a8fd994b0d1d278920fd6c8cfc52f4ea676e6ef37ba07fbcb01f21c7aaa0bbae5a8de6c8ab3747c9391753bd26914f6e51 + checksum: 2de31bfb876a47be07a0f51c4a141f1e3aeefe68319f8b455909a7332135b5ef849890dc3a85a160cd933eb5c48e7e64187c95b47d3361e96352428fd3ad118e languageName: node linkType: hard @@ -2213,184 +2220,184 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/react-use-animation-state@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-animation-state@npm:2.1.0" +"@chakra-ui/react-use-animation-state@npm:2.0.8": + version: 2.0.8 + resolution: "@chakra-ui/react-use-animation-state@npm:2.0.8" dependencies: - "@chakra-ui/dom-utils": 2.1.0 - "@chakra-ui/react-use-event-listener": 2.1.0 + "@chakra-ui/dom-utils": 2.0.6 + "@chakra-ui/react-use-event-listener": 2.0.7 peerDependencies: react: ">=18" - checksum: 9bea609a07e9a0c04a14169a3c72bc99b03972cdddd790faadb549ed7f3354024ca6aa20fba5a498182bb8666af6a0dac764dac68104051cff98170a78795914 + checksum: fee6f4690c75c0a262d83eb9b50109e6ffc16ab43f17ea34e6dca493db09ef1b36e7e443f34db9b101cece4c6db354581009816a70b18ab98c0de4f35ad39dc9 languageName: node linkType: hard -"@chakra-ui/react-use-callback-ref@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-callback-ref@npm:2.1.0" +"@chakra-ui/react-use-callback-ref@npm:2.0.7": + version: 2.0.7 + resolution: "@chakra-ui/react-use-callback-ref@npm:2.0.7" peerDependencies: react: ">=18" - checksum: 2f1aa7803663ec211628b4a1a20d66df89c1d83bf0c2a8f0508682ca47cb2cb76b48296fe9166d2ea47caa0161c19b1eb99cd6307a4d285871a1f8d913cc40c6 + checksum: 96c7eb3b62e57cecef724db9c5551e3721ec3d625e540efac3ce087a82a80e9a9e8b5322c51dffd6a2c2c69b989c9a29107239efada077b63208a25732ba6b06 languageName: node linkType: hard -"@chakra-ui/react-use-controllable-state@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-controllable-state@npm:2.1.0" +"@chakra-ui/react-use-controllable-state@npm:2.0.8": + version: 2.0.8 + resolution: "@chakra-ui/react-use-controllable-state@npm:2.0.8" dependencies: - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 peerDependencies: react: ">=18" - checksum: e19a5994f4ec1d726a98cada72e234aa55c7de2619afcf19209f945f596f8224d4b727a2941a42b879f7bc2442d60d1aa807a3f2af5bf6e8f0ec6191c75c70cf + checksum: 528e6a49641badd5cbb88403ee5beab10879c25fe5cc48f77d7591ae1ae135dbe4385b6b2e6726815180b6de7368f70fda5c522d2222ab1f5a651aff8fc26c8d languageName: node linkType: hard -"@chakra-ui/react-use-disclosure@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-disclosure@npm:2.1.0" +"@chakra-ui/react-use-disclosure@npm:2.0.8": + version: 2.0.8 + resolution: "@chakra-ui/react-use-disclosure@npm:2.0.8" dependencies: - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 peerDependencies: react: ">=18" - checksum: 97f2b51aca023deadbd5538482eb89a9d5ae5248146dfa275ae69ea97ade300e732af02a377cad243f6f02665aabeadc9d79f7ee754a079da7dcd73eb3929469 + checksum: 4fde5e8be5523d19fa057c36cefd9feb703ad8f14c32479a2d54e4fe69e9644b8719b74bb00cee2145f8e8164d8a059aa7ca7bcfbf7ab9e749bbda50bb595b04 languageName: node linkType: hard -"@chakra-ui/react-use-event-listener@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-event-listener@npm:2.1.0" +"@chakra-ui/react-use-event-listener@npm:2.0.7": + version: 2.0.7 + resolution: "@chakra-ui/react-use-event-listener@npm:2.0.7" dependencies: - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 peerDependencies: react: ">=18" - checksum: dac679bf7eb611a3ee336a884ba87a055a0bc3a224dba14ea0760f7b149b624f2eb77bb00e3786cb4ce172b6473d6e7a2d11f1e38b456cc6f599861213fedafb + checksum: 8b77ad7ac602ac20e975ff8b76ffba337cb0bd6f3cd398a09193f7a8cff99677deddc8157f3f33bb245eaa8ff14db66a867fa993de8af90f723c4ddaebb94538 languageName: node linkType: hard -"@chakra-ui/react-use-focus-effect@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-focus-effect@npm:2.1.0" +"@chakra-ui/react-use-focus-effect@npm:2.0.10": + version: 2.0.10 + resolution: "@chakra-ui/react-use-focus-effect@npm:2.0.10" dependencies: - "@chakra-ui/dom-utils": 2.1.0 - "@chakra-ui/react-use-event-listener": 2.1.0 - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.1.0 + "@chakra-ui/dom-utils": 2.0.6 + "@chakra-ui/react-use-event-listener": 2.0.7 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 + "@chakra-ui/react-use-update-effect": 2.0.7 peerDependencies: react: ">=18" - checksum: b8cf78842d5a614fd2c3fb2b9f97888a4968a50ba84ba77a2585dae3cce7458863c4e2cb0f9d62f8188ada79222cc09afa692da2a291d96ecbeb857c65f874ca + checksum: 6145ca543f340c4c92796cbd7b6a5ac757c41e54be2a252efc74a23102528db45faf86dd26219252b4cadb456b09c1dc6fa6f3982eb1213e23d1a83d8ca8c65c languageName: node linkType: hard -"@chakra-ui/react-use-focus-on-pointer-down@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-focus-on-pointer-down@npm:2.1.0" +"@chakra-ui/react-use-focus-on-pointer-down@npm:2.0.6": + version: 2.0.6 + resolution: "@chakra-ui/react-use-focus-on-pointer-down@npm:2.0.6" dependencies: - "@chakra-ui/react-use-event-listener": 2.1.0 + "@chakra-ui/react-use-event-listener": 2.0.7 peerDependencies: react: ">=18" - checksum: 02a3e2c49ddf8d36dacba7107bb93e26cd5fc9dbb0f1739e11f25daa3430efe4978d3cd590b1280d2ec70c8f03be90998c7f8398a8e8001f1ad1e3d00a1a1f30 + checksum: a10c2f7abb33fa15f1315e42d97192edc6eeadcef3631f576ccf1303d009671d06737392422c7241a93da561c7cda1ada5a9187e6fd54b2c53472314684c5b5e languageName: node linkType: hard -"@chakra-ui/react-use-interval@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-interval@npm:2.1.0" +"@chakra-ui/react-use-interval@npm:2.0.5": + version: 2.0.5 + resolution: "@chakra-ui/react-use-interval@npm:2.0.5" dependencies: - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 peerDependencies: react: ">=18" - checksum: 1e6336eb9bfbef0884550943d3cc4538ce7f333f21b3a5ec7696e3f5ebe6d44366fc2447c554a502337a2593d2a4ee83da49970b95f769a1fefff4fae9c2d9e6 + checksum: 1b93e54e0f51b42d3411948ecd0d7e5b41311931cbc670e7b0e6cf70b15997f1e039353a75402b7607a4d322807fedc974508486a281bbdf9e7304370d1b85b6 languageName: node linkType: hard -"@chakra-ui/react-use-latest-ref@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-latest-ref@npm:2.1.0" +"@chakra-ui/react-use-latest-ref@npm:2.0.5": + version: 2.0.5 + resolution: "@chakra-ui/react-use-latest-ref@npm:2.0.5" peerDependencies: react: ">=18" - checksum: 0384389bf695407122b6eda6e4c7c54b70100605280e69f4903c0ee4e57849c80361b24948fb63062566a5021190508fc652e64a3b3de05cff1232fdcca89986 + checksum: c9648e5f8edc801e1fe6512a8979acbd9c2ef067570ac2de218be4c1be5bb520f97486d387832e1c7fa70dedd86718f6b70f5e5ec403d746f8f8c937d2b49d14 languageName: node linkType: hard -"@chakra-ui/react-use-merge-refs@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-merge-refs@npm:2.1.0" +"@chakra-ui/react-use-merge-refs@npm:2.0.7": + version: 2.0.7 + resolution: "@chakra-ui/react-use-merge-refs@npm:2.0.7" peerDependencies: react: ">=18" - checksum: e5a6e689b706f401de4dcb66191c476430e8215b56d7391568ebdabc0fee871405837619deb7f0d5ebc961f8952936a17726ebd42ccf9ec236348675afbe4cba + checksum: b77d05f53cbecf697c2e936618830969dddbcb69c49b486f2c6420a876b9667b61d20bf34d97534e64abab68c687faa85739722d752609b8f8b0818bb4d09129 languageName: node linkType: hard -"@chakra-ui/react-use-outside-click@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/react-use-outside-click@npm:2.2.0" +"@chakra-ui/react-use-outside-click@npm:2.1.0": + version: 2.1.0 + resolution: "@chakra-ui/react-use-outside-click@npm:2.1.0" dependencies: - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 peerDependencies: react: ">=18" - checksum: 4ef77e83b04b635f969746d2051a5e896a9e8380f08f6930538fc8ce85f13ebe94e42ca866d1882f8c51f4d9f0457994b94a7abf78606edba627c645c4d66568 + checksum: 08106bbbca812cac8ece79a21ede2ad7e953ed252773ae19df73a0d58f32fb3dbc73408ae90a20f4d105ed5a33626005cb9b34bc3c8a86640b6abb8874edc97c languageName: node linkType: hard -"@chakra-ui/react-use-pan-event@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-pan-event@npm:2.1.0" +"@chakra-ui/react-use-pan-event@npm:2.0.9": + version: 2.0.9 + resolution: "@chakra-ui/react-use-pan-event@npm:2.0.9" dependencies: "@chakra-ui/event-utils": 2.0.8 - "@chakra-ui/react-use-latest-ref": 2.1.0 + "@chakra-ui/react-use-latest-ref": 2.0.5 framesync: 6.1.2 peerDependencies: react: ">=18" - checksum: a084bfd8ace81079b46cb5825a7863cc6db7f4ee329e660ada74ad4343a37bb2b5af30215323787e3e94461a5812516740a28631747584c0f3c6de6823726b76 + checksum: c494699f17582c04a15e2a071623718390a44f7ef0579f44e82c63e741d0bc9ec13bd3e5030ee3081cac52487a66121f95cfe78d42c2a332c996b44dd27c523e languageName: node linkType: hard -"@chakra-ui/react-use-previous@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-previous@npm:2.1.0" +"@chakra-ui/react-use-previous@npm:2.0.5": + version: 2.0.5 + resolution: "@chakra-ui/react-use-previous@npm:2.0.5" peerDependencies: react: ">=18" - checksum: d868160842c271877c8d363e7a9626c7ff5f3f64b30d224418d5752abd39df0855fc98580f9f698e6e9fbf043b3a3e4bfdc9cb4964e972bf709be329752f4443 + checksum: a94021667fd3e0ce8992f2f6fc5c04830b29644632b2ceb776612e37581bddea7c57628e99ce17406a62acc493b7d974fb94e43106083f737ed50ad7e383ccd2 languageName: node linkType: hard -"@chakra-ui/react-use-safe-layout-effect@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-safe-layout-effect@npm:2.1.0" +"@chakra-ui/react-use-safe-layout-effect@npm:2.0.5": + version: 2.0.5 + resolution: "@chakra-ui/react-use-safe-layout-effect@npm:2.0.5" peerDependencies: react: ">=18" - checksum: 83a3e905664dc1eba4a4c532d85b8d789a2c6596bac33dd8d6993433a0f344169b72e937d0eeb6337cb4d8bf85f39ab17039e40dc0626ec7090ce3f05ea378b7 + checksum: ce4ad1a764415ca72892868ccd24024ecd74ee865a4ef8dad84a1fa50ea71fd7142f76f54b733d518417a281c43d2b70068ced63a0324be09908e1f7e58e542b languageName: node linkType: hard -"@chakra-ui/react-use-size@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-size@npm:2.1.0" +"@chakra-ui/react-use-size@npm:2.0.10": + version: 2.0.10 + resolution: "@chakra-ui/react-use-size@npm:2.0.10" dependencies: - "@zag-js/element-size": 0.10.5 + "@zag-js/element-size": 0.3.2 peerDependencies: react: ">=18" - checksum: cf0bfbcacfbfffdb7e13532300ff2df013d98a221b31af3248324976cd115fbd3ae76a4917c3e40ab44372bea66b709cb22550ab7d53a7d500624c1fefeb19b6 + checksum: 3d460a2b35335de38eaa4510d951a04304521bca9c78dce28aec57211983ca781c6bf6facfc722404de53a67a1190bcfc0a11e94a0bb63a5ab504f674d178fe8 languageName: node linkType: hard -"@chakra-ui/react-use-timeout@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-timeout@npm:2.1.0" +"@chakra-ui/react-use-timeout@npm:2.0.5": + version: 2.0.5 + resolution: "@chakra-ui/react-use-timeout@npm:2.0.5" dependencies: - "@chakra-ui/react-use-callback-ref": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 peerDependencies: react: ">=18" - checksum: c23b6ec5a4a02465cdf01cf5a268dbe11d597e47ad922b6120dbf3ffa98e8dfddf59f7661ee41ecdb21d67aee5eb98067351a5e33b92798d7bc1c5b4fb532710 + checksum: 51b3135f85bcc4687baa46c01908f01b1930fc07ad78b37cdba79da84dcd47447588df076fd77faed46bccdc115fa08c2d7f6fad2511d79c1461f952279fb3c0 languageName: node linkType: hard -"@chakra-ui/react-use-update-effect@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/react-use-update-effect@npm:2.1.0" +"@chakra-ui/react-use-update-effect@npm:2.0.7": + version: 2.0.7 + resolution: "@chakra-ui/react-use-update-effect@npm:2.0.7" peerDependencies: react: ">=18" - checksum: 14ab86a6c487101033e7f3252a98488fc45667d9c7cfd4b76219deeafe8b22f3026b3384b7c2a895ff73831eaa239c598b44d0741bb05ffcf264b57bd8a71f0c + checksum: 1a6ace0509d6c7a0022cc359c925f513c6fab4d979bf36d8cd98e81a39bc470398a88e799252275ce712297e26bd3d944a349d288d052e8640175e447e5236d8 languageName: node linkType: hard @@ -2406,82 +2413,81 @@ __metadata: linkType: hard "@chakra-ui/react@npm:^2.6.1": - version: 2.8.2 - resolution: "@chakra-ui/react@npm:2.8.2" - dependencies: - "@chakra-ui/accordion": 2.3.1 - "@chakra-ui/alert": 2.2.2 - "@chakra-ui/avatar": 2.3.0 - "@chakra-ui/breadcrumb": 2.2.0 - "@chakra-ui/button": 2.1.0 - "@chakra-ui/card": 2.2.0 - "@chakra-ui/checkbox": 2.3.2 - "@chakra-ui/close-button": 2.1.1 - "@chakra-ui/control-box": 2.1.0 - "@chakra-ui/counter": 2.1.0 - "@chakra-ui/css-reset": 2.3.0 - "@chakra-ui/editable": 3.1.0 - "@chakra-ui/focus-lock": 2.1.0 - "@chakra-ui/form-control": 2.2.0 - "@chakra-ui/hooks": 2.2.1 - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/image": 2.1.0 - "@chakra-ui/input": 2.1.2 - "@chakra-ui/layout": 2.3.1 - "@chakra-ui/live-region": 2.1.0 - "@chakra-ui/media-query": 3.3.0 - "@chakra-ui/menu": 2.2.1 - "@chakra-ui/modal": 2.3.1 - "@chakra-ui/number-input": 2.1.2 - "@chakra-ui/pin-input": 2.1.0 - "@chakra-ui/popover": 2.2.1 - "@chakra-ui/popper": 3.1.0 - "@chakra-ui/portal": 2.1.0 - "@chakra-ui/progress": 2.2.0 - "@chakra-ui/provider": 2.4.2 - "@chakra-ui/radio": 2.1.2 - "@chakra-ui/react-env": 3.1.0 - "@chakra-ui/select": 2.1.2 - "@chakra-ui/skeleton": 2.1.0 - "@chakra-ui/skip-nav": 2.1.0 - "@chakra-ui/slider": 2.1.0 - "@chakra-ui/spinner": 2.1.0 - "@chakra-ui/stat": 2.1.1 - "@chakra-ui/stepper": 2.3.1 - "@chakra-ui/styled-system": 2.9.2 - "@chakra-ui/switch": 2.1.2 - "@chakra-ui/system": 2.6.2 - "@chakra-ui/table": 2.1.0 - "@chakra-ui/tabs": 3.0.0 - "@chakra-ui/tag": 3.1.1 - "@chakra-ui/textarea": 2.1.2 - "@chakra-ui/theme": 3.3.1 - "@chakra-ui/theme-utils": 2.0.21 - "@chakra-ui/toast": 7.0.2 - "@chakra-ui/tooltip": 2.3.1 - "@chakra-ui/transition": 2.1.0 + version: 2.6.1 + resolution: "@chakra-ui/react@npm:2.6.1" + dependencies: + "@chakra-ui/accordion": 2.1.11 + "@chakra-ui/alert": 2.1.0 + "@chakra-ui/avatar": 2.2.10 + "@chakra-ui/breadcrumb": 2.1.5 + "@chakra-ui/button": 2.0.18 + "@chakra-ui/card": 2.1.6 + "@chakra-ui/checkbox": 2.2.15 + "@chakra-ui/close-button": 2.0.17 + "@chakra-ui/control-box": 2.0.13 + "@chakra-ui/counter": 2.0.14 + "@chakra-ui/css-reset": 2.1.1 + "@chakra-ui/editable": 3.0.0 + "@chakra-ui/focus-lock": 2.0.16 + "@chakra-ui/form-control": 2.0.18 + "@chakra-ui/hooks": 2.2.0 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/image": 2.0.16 + "@chakra-ui/input": 2.0.22 + "@chakra-ui/layout": 2.1.19 + "@chakra-ui/live-region": 2.0.13 + "@chakra-ui/media-query": 3.2.12 + "@chakra-ui/menu": 2.1.14 + "@chakra-ui/modal": 2.2.11 + "@chakra-ui/number-input": 2.0.19 + "@chakra-ui/pin-input": 2.0.20 + "@chakra-ui/popover": 2.1.11 + "@chakra-ui/popper": 3.0.14 + "@chakra-ui/portal": 2.0.16 + "@chakra-ui/progress": 2.1.6 + "@chakra-ui/provider": 2.2.4 + "@chakra-ui/radio": 2.0.22 + "@chakra-ui/react-env": 3.0.0 + "@chakra-ui/select": 2.0.19 + "@chakra-ui/skeleton": 2.0.24 + "@chakra-ui/slider": 2.0.24 + "@chakra-ui/spinner": 2.0.13 + "@chakra-ui/stat": 2.0.18 + "@chakra-ui/stepper": 2.2.0 + "@chakra-ui/styled-system": 2.9.0 + "@chakra-ui/switch": 2.0.27 + "@chakra-ui/system": 2.5.7 + "@chakra-ui/table": 2.0.17 + "@chakra-ui/tabs": 2.1.9 + "@chakra-ui/tag": 3.0.0 + "@chakra-ui/textarea": 2.0.19 + "@chakra-ui/theme": 3.1.1 + "@chakra-ui/theme-utils": 2.0.17 + "@chakra-ui/toast": 6.1.3 + "@chakra-ui/tooltip": 2.2.8 + "@chakra-ui/transition": 2.0.16 "@chakra-ui/utils": 2.0.15 - "@chakra-ui/visually-hidden": 2.2.0 + "@chakra-ui/visually-hidden": 2.0.15 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: f7af6ec5f248e7995030a4f61c6f815bef7bb9fbebd652a4f2eff9b313db007124e8f636727a50f4d40f6f4550249c5920bb47f024cc34a3e97286a02666ea98 + checksum: ed7cd1547a29dbc9e632d5042c433c8ef2bc0a9cd794c77b57fcfd7eb224604ae8fa5150da84ddc903a59750edffc24ebcb297fde31eaf2bfc6b640ad929a485 languageName: node linkType: hard -"@chakra-ui/select@npm:2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/select@npm:2.1.2" +"@chakra-ui/select@npm:2.0.19": + version: 2.0.19 + resolution: "@chakra-ui/select@npm:2.0.19" dependencies: - "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/form-control": 2.0.18 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: d98ea14cc9146bfad976c5f230970adf7012251c6895d8e0f24ad36ae478351717cc99cc12f1e3ce8b1b314b6712a5481d9e2a9364bb7cd0f05d55d06a27bf32 + checksum: 8bb7406bfb8914c051c1aa71f7f3351df8ac91fe4cea62d9026dafbfee62b415c40525bdbdda0b43f423317495376fc4c42c35e5474605392e2e3769673400c9 languageName: node linkType: hard @@ -2492,195 +2498,198 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/skeleton@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/skeleton@npm:2.1.0" +"@chakra-ui/skeleton@npm:2.0.24": + version: 2.0.24 + resolution: "@chakra-ui/skeleton@npm:2.0.24" dependencies: - "@chakra-ui/media-query": 3.3.0 - "@chakra-ui/react-use-previous": 2.1.0 + "@chakra-ui/media-query": 3.2.12 + "@chakra-ui/react-use-previous": 2.0.5 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: f153cfd46453a167fd1d93e26326f5ae11a4ce7b80e8847ce117e2c2d930e908dcdff1faa1f8768675596daa9a1aaef2304da1528975924178e97ed9e589ca24 + checksum: 0ac5dfe1ada7de5312c480afeb496be8be479659195f1b7d5842ea99d16a9f92e7598493a167a4516967b1d58e5e5478a6f6914505d7b3b0988899f247595116 languageName: node linkType: hard -"@chakra-ui/skip-nav@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/skip-nav@npm:2.1.0" - peerDependencies: - "@chakra-ui/system": ">=2.0.0" - react: ">=18" - checksum: 3a7ea19d7414b3ad91a01685d47ec5eed59d74d58853fef18445b6e15d94e3fbc4a8fed43951d6e5542d33549275ed13093e0df5b9b449fd7b872fd85db2d319 - languageName: node - linkType: hard - -"@chakra-ui/slider@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/slider@npm:2.1.0" +"@chakra-ui/slider@npm:2.0.24": + version: 2.0.24 + resolution: "@chakra-ui/slider@npm:2.0.24" dependencies: "@chakra-ui/number-utils": 2.0.7 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-callback-ref": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-latest-ref": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 - "@chakra-ui/react-use-pan-event": 2.1.0 - "@chakra-ui/react-use-size": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.1.0 + "@chakra-ui/react-use-callback-ref": 2.0.7 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-latest-ref": 2.0.5 + "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-pan-event": 2.0.9 + "@chakra-ui/react-use-size": 2.0.10 + "@chakra-ui/react-use-update-effect": 2.0.7 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 8e11468e0ef7d07cf8784b8034e4d6fad867d0fe06723f02fd8cf3427524ba29fb64f3ebf56aaf91cb0f11f3bf0af96e18ea732a0dfd0d734e1a609567014bb4 + checksum: b10f3a89c63c9658c51a1a755d54a7ea0e82baccc884e670dbb09c2c4fd75937698b0a7e8d0a11957f462ccf83aac56d95df95ea3b26f26d4be6a86a8d389305 languageName: node linkType: hard -"@chakra-ui/spinner@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/spinner@npm:2.1.0" +"@chakra-ui/spinner@npm:2.0.13": + version: 2.0.13 + resolution: "@chakra-ui/spinner@npm:2.0.13" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: f1aa36799e0cc5d791f11cb70deaaff85bef0af3fa4d51919f56fb9457a06e58be6ec1a7f98d8054eba62308d4e44bba719e3c820b29b6c2ae2e807d705971c0 + checksum: cd6cb560d5178cde6004088c0e35f99da7dcd3ecdaf771ce185141f751ac2eee9c7849593a4a889f5e3d48aefb55f3914f5fc5f53c0bfefc003b55c73d98da75 languageName: node linkType: hard -"@chakra-ui/stat@npm:2.1.1": - version: 2.1.1 - resolution: "@chakra-ui/stat@npm:2.1.1" +"@chakra-ui/stat@npm:2.0.18": + version: 2.0.18 + resolution: "@chakra-ui/stat@npm:2.0.18" dependencies: - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: f7fa51912a313a7cf0ddd1f1a71c32cb4cd01c2da11b43f232cba2b0ef772bf401fba81dd7469c354c43b718ce1a13c01feef62fcae45bdd66c33698a6fb5fab + checksum: 49abd0d8a4bea7f542e20044f463ac6c74407974cbd17acf2d5e7277a72ede9df1076bdd54b0dec775286944bf6c2a44f2c6c424c8e0f7f8f1f7546175f879f0 languageName: node linkType: hard -"@chakra-ui/stepper@npm:2.3.1": - version: 2.3.1 - resolution: "@chakra-ui/stepper@npm:2.3.1" +"@chakra-ui/stepper@npm:2.2.0": + version: 2.2.0 + resolution: "@chakra-ui/stepper@npm:2.2.0" dependencies: - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: a638ffb2a5132dd79f6e0a27b2716115610f7370877b28985bb2618208c84bd76921431659a98cf6afa56f46aeb9f42f78cee9ed73692c5d1cba2412f37921c1 + checksum: b999cd21152c463f3d42b2e67e2c1c2c3d320734332227c9c66c5bf3a3e1f31bf1137a64047ee23668e46887bc55c6c444d892571da9f7da5331241f5969faa5 languageName: node linkType: hard -"@chakra-ui/styled-system@npm:2.9.2": - version: 2.9.2 - resolution: "@chakra-ui/styled-system@npm:2.9.2" +"@chakra-ui/styled-system@npm:2.9.0": + version: 2.9.0 + resolution: "@chakra-ui/styled-system@npm:2.9.0" dependencies: "@chakra-ui/shared-utils": 2.0.5 - csstype: ^3.1.2 + csstype: ^3.0.11 lodash.mergewith: 4.6.2 - checksum: 05202a86f1d8c6f37b5a95a56d7aed6b24fe12ac17f54690d46fcc7715e5e78e34a2aa0a15dc83e26396c4d7bc8188e761ddc2938e65cd782b11576a66a73519 + checksum: 4f8863cf684ce274be4f5247c8ff8880ecb90e4373e581f2ac26e925d3958a1db057597a9485acd59cfd69412d26939cf9a4e498f13beb0513dd5200fe6a2143 languageName: node linkType: hard -"@chakra-ui/switch@npm:2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/switch@npm:2.1.2" +"@chakra-ui/switch@npm:2.0.27": + version: 2.0.27 + resolution: "@chakra-ui/switch@npm:2.0.27" dependencies: - "@chakra-ui/checkbox": 2.3.2 + "@chakra-ui/checkbox": 2.2.15 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" - checksum: 3a4e61b2e6215468e685651b7cfc118d93570210aa0b3529f2aa9eea69be3935e1b00eeb0306050edef4840f6a8920d72ff5353ffb815ef65d7d720f7b33fe82 + checksum: 82c4d279cce2cf1d45f4c89cc544f55767852fb227a8872ce663664dc74dc2a8cf1b551bc171bb949d2b003537695aec0763a3713f10919d39ee59afeda85707 languageName: node linkType: hard -"@chakra-ui/system@npm:2.6.2": - version: 2.6.2 - resolution: "@chakra-ui/system@npm:2.6.2" +"@chakra-ui/system@npm:2.5.7": + version: 2.5.7 + resolution: "@chakra-ui/system@npm:2.5.7" dependencies: - "@chakra-ui/color-mode": 2.2.0 + "@chakra-ui/color-mode": 2.1.12 "@chakra-ui/object-utils": 2.1.0 "@chakra-ui/react-utils": 2.0.12 - "@chakra-ui/styled-system": 2.9.2 - "@chakra-ui/theme-utils": 2.0.21 + "@chakra-ui/styled-system": 2.9.0 + "@chakra-ui/theme-utils": 2.0.17 "@chakra-ui/utils": 2.0.15 - react-fast-compare: 3.2.2 + react-fast-compare: 3.2.1 peerDependencies: "@emotion/react": ^11.0.0 "@emotion/styled": ^11.0.0 react: ">=18" - checksum: 45ac01d0d9adb9391ec5ece3ad1ef7cc09e73720c0222df02f5a45a37bb120cfbf994b15c08b72e7018a866d9475c5c57f61638774d8d7c5c0c40da8714a347c + checksum: 134635219a40dab9b92ae2188f695560bd28ee3e4ba0402687890498a7a94b13123c26d05e62ce39ab47dd361c4ab87bcb93eeb7f39e8d35481102dad50fe34b languageName: node linkType: hard -"@chakra-ui/table@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/table@npm:2.1.0" +"@chakra-ui/table@npm:2.0.17": + version: 2.0.17 + resolution: "@chakra-ui/table@npm:2.0.17" dependencies: - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/react-context": 2.0.8 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: c82cfc78f2312777ab51c872640549c8d3f3ac9b40eb312ceb61c7651547ebced194729bfb228b5b191e7e965a0371f521c171c60f02d1c09edbe296a37aa09e + checksum: 32ac6b61e562b2a228f97eed000b572861dd488510c8058eab4ab69a37eadfb01fd3ab353fff2ef90054d996ed7c79685bd53dbeb08cf4d681033911e646adc2 languageName: node linkType: hard -"@chakra-ui/tabs@npm:3.0.0": - version: 3.0.0 - resolution: "@chakra-ui/tabs@npm:3.0.0" +"@chakra-ui/tabs@npm:2.1.9": + version: 2.1.9 + resolution: "@chakra-ui/tabs@npm:2.1.9" dependencies: - "@chakra-ui/clickable": 2.1.0 - "@chakra-ui/descendant": 3.1.0 + "@chakra-ui/clickable": 2.0.14 + "@chakra-ui/descendant": 3.0.14 "@chakra-ui/lazy-utils": 2.0.5 "@chakra-ui/react-children-utils": 2.0.6 - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-controllable-state": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 - "@chakra-ui/react-use-safe-layout-effect": 2.1.0 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-controllable-state": 2.0.8 + "@chakra-ui/react-use-merge-refs": 2.0.7 + "@chakra-ui/react-use-safe-layout-effect": 2.0.5 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 6c030d8f437c7311159a17c76082487524b0f990572f27e9ef7f7ee2c48e0b246d8e5e1454fe903e6451493f40fc2f865f15d6bc6e26efe88bbf04b5f748b18d + checksum: 6bbaa3b25d48744453bb9300d6e66379204c8595f4187a1833b2b5e412e249b6af30dd23aab03775d9245d7ed14c745e7ff1597aa6397708a460c8a4a4d145ba languageName: node linkType: hard -"@chakra-ui/tag@npm:3.1.1": - version: 3.1.1 - resolution: "@chakra-ui/tag@npm:3.1.1" +"@chakra-ui/tag@npm:3.0.0": + version: 3.0.0 + resolution: "@chakra-ui/tag@npm:3.0.0" dependencies: - "@chakra-ui/icon": 3.2.0 - "@chakra-ui/react-context": 2.1.0 + "@chakra-ui/icon": 3.0.16 + "@chakra-ui/react-context": 2.0.8 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: c22abdb6bef8994481ec28266df197d89900688716820b842018b6352eff2df9cbd937d945905e12c1393613d6a1e1f6360e394d29d7dbcf424239787faaef0b + checksum: daba36da1ec7c50e126c19d775304a55df07ae5909c766ab1e7cce88da9d93e5eb860c5846f321ccf472dcb5790fc4dc16a1080bc8d2449c2e2b8a54b2845ec2 languageName: node linkType: hard -"@chakra-ui/textarea@npm:2.1.2": - version: 2.1.2 - resolution: "@chakra-ui/textarea@npm:2.1.2" +"@chakra-ui/textarea@npm:2.0.19": + version: 2.0.19 + resolution: "@chakra-ui/textarea@npm:2.0.19" dependencies: - "@chakra-ui/form-control": 2.2.0 + "@chakra-ui/form-control": 2.0.18 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 35d483cf1d5e87dea1157624129bff651b6595be85ea25797465c1b44ccae617db81cacfb3f35ecefe2db0700a06710db77397ddfdbfec9157a1e920da5f6739 + checksum: d42b6a47620b05b31b2858b40825245a8ef0366e702926cc34101d300a828b993fed0baaf9b64b1b97b98f8f2b8f83865678fb55d4b6b7ec05319f66931eb1bf languageName: node linkType: hard -"@chakra-ui/theme-tools@npm:2.1.2, @chakra-ui/theme-tools@npm:^2.1.2": +"@chakra-ui/theme-tools@npm:2.0.17": + version: 2.0.17 + resolution: "@chakra-ui/theme-tools@npm:2.0.17" + dependencies: + "@chakra-ui/anatomy": 2.1.2 + "@chakra-ui/shared-utils": 2.0.5 + color2k: ^2.0.0 + peerDependencies: + "@chakra-ui/styled-system": ">=2.0.0" + checksum: 8c57988bcd29d9d8f8c51f45af36bab95930460e3dab460b4841084eb587e7ad2b34e4e246dc75e84e91a1c7eb2b47cac187528d2145677479de3b966c01d734 + languageName: node + linkType: hard + +"@chakra-ui/theme-tools@npm:^2.1.2": version: 2.1.2 resolution: "@chakra-ui/theme-tools@npm:2.1.2" dependencies: @@ -2693,83 +2702,82 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/theme-utils@npm:2.0.21": - version: 2.0.21 - resolution: "@chakra-ui/theme-utils@npm:2.0.21" +"@chakra-ui/theme-utils@npm:2.0.17": + version: 2.0.17 + resolution: "@chakra-ui/theme-utils@npm:2.0.17" dependencies: "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/styled-system": 2.9.2 - "@chakra-ui/theme": 3.3.1 + "@chakra-ui/styled-system": 2.9.0 + "@chakra-ui/theme": 3.1.1 lodash.mergewith: 4.6.2 - checksum: d43f15d2c264cb96cfee0acf64681308763d27940b42f6de76eb8f297623dd4236c80ccf845b06851ca15f1c53a7ca9af69dce1c6d6467bb17612d1c60629197 + checksum: 5e6dd5aae7365cbd96afe51cd13afcd408198d9cfbdb2acfd5fb1601194cdc685004bbb237b337f70e287aebb4eb022f7590d9292619967483806b2e234289e5 languageName: node linkType: hard -"@chakra-ui/theme@npm:3.3.1": - version: 3.3.1 - resolution: "@chakra-ui/theme@npm:3.3.1" +"@chakra-ui/theme@npm:3.1.1": + version: 3.1.1 + resolution: "@chakra-ui/theme@npm:3.1.1" dependencies: - "@chakra-ui/anatomy": 2.2.2 + "@chakra-ui/anatomy": 2.1.2 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/theme-tools": 2.1.2 + "@chakra-ui/theme-tools": 2.0.17 peerDependencies: "@chakra-ui/styled-system": ">=2.8.0" - checksum: 0232cb4a5674dd7252b7070ecc890dee9fc4fe51527005aa47009342edcf8f13fef7f3b8c70b74c0b73ba86cdeabe892b2ab8469cecfc19ae3350a66bccb43eb + checksum: 6f77079e1a92b5cd83872b4e29e2066c5862fd96bd4d7e03fa4721034300f830905009642fbd234e879029249affd43f5bc1d595ea671d7d19723f5c5c8f1fba languageName: node linkType: hard -"@chakra-ui/toast@npm:7.0.2": - version: 7.0.2 - resolution: "@chakra-ui/toast@npm:7.0.2" - dependencies: - "@chakra-ui/alert": 2.2.2 - "@chakra-ui/close-button": 2.1.1 - "@chakra-ui/portal": 2.1.0 - "@chakra-ui/react-context": 2.1.0 - "@chakra-ui/react-use-timeout": 2.1.0 - "@chakra-ui/react-use-update-effect": 2.1.0 +"@chakra-ui/toast@npm:6.1.3": + version: 6.1.3 + resolution: "@chakra-ui/toast@npm:6.1.3" + dependencies: + "@chakra-ui/alert": 2.1.0 + "@chakra-ui/close-button": 2.0.17 + "@chakra-ui/portal": 2.0.16 + "@chakra-ui/react-context": 2.0.8 + "@chakra-ui/react-use-timeout": 2.0.5 + "@chakra-ui/react-use-update-effect": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 - "@chakra-ui/styled-system": 2.9.2 - "@chakra-ui/theme": 3.3.1 + "@chakra-ui/styled-system": 2.9.0 + "@chakra-ui/theme": 3.1.1 peerDependencies: - "@chakra-ui/system": 2.6.2 + "@chakra-ui/system": 2.5.7 framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 5e996a53b82628c90e11054d900ab4c714bb6b1a9b74198fbbfc49692175278fc482820578090d0eb27180d3772937ed9fb54ba8f3acfdbbbc20e859c1b55338 + checksum: 9bca766bac57f8b59eb62053821271212e2fa5980b6f1d88e7d82c9083ad1236486ef79acbca180d7fd0f8c6807f2d2724a80cde3c2cc8aef4a237ac71aa2212 languageName: node linkType: hard -"@chakra-ui/tooltip@npm:2.3.1": - version: 2.3.1 - resolution: "@chakra-ui/tooltip@npm:2.3.1" +"@chakra-ui/tooltip@npm:2.2.8": + version: 2.2.8 + resolution: "@chakra-ui/tooltip@npm:2.2.8" dependencies: - "@chakra-ui/dom-utils": 2.1.0 - "@chakra-ui/popper": 3.1.0 - "@chakra-ui/portal": 2.1.0 + "@chakra-ui/popper": 3.0.14 + "@chakra-ui/portal": 2.0.16 "@chakra-ui/react-types": 2.0.7 - "@chakra-ui/react-use-disclosure": 2.1.0 - "@chakra-ui/react-use-event-listener": 2.1.0 - "@chakra-ui/react-use-merge-refs": 2.1.0 + "@chakra-ui/react-use-disclosure": 2.0.8 + "@chakra-ui/react-use-event-listener": 2.0.7 + "@chakra-ui/react-use-merge-refs": 2.0.7 "@chakra-ui/shared-utils": 2.0.5 peerDependencies: "@chakra-ui/system": ">=2.0.0" framer-motion: ">=4.0.0" react: ">=18" react-dom: ">=18" - checksum: 047bb349fd80382d4f2ee4086119ca80a584b879c4525891e0fb602db0e857dfead4a35c1eb27d4b0c4ce0ac9c0324e63b9fb5f984389297eee2cd1a684f8e1a + checksum: 8197445437a001a27ac6c9eb1c85b058c12844415da4b3ac8f5a6dc5f13049dc9ec6cb559aacbe158d137b49faf3aa12e72f72dccc53ada5c4f6c3c7c3b34a75 languageName: node linkType: hard -"@chakra-ui/transition@npm:2.1.0": - version: 2.1.0 - resolution: "@chakra-ui/transition@npm:2.1.0" +"@chakra-ui/transition@npm:2.0.16": + version: 2.0.16 + resolution: "@chakra-ui/transition@npm:2.0.16" dependencies: "@chakra-ui/shared-utils": 2.0.5 peerDependencies: framer-motion: ">=4.0.0" react: ">=18" - checksum: 502b6136f6e1583935ac5b204981c6bd78f7a4699a98ab8876bccfd6cbbc6e26308098b2f3d4dc81ff9ccc638463dfd2e188e4f380e3852c89b9cbaa5c572cb6 + checksum: 04ca812775b425a7aae1e066b81f803264b47759bde690ecbb0ddaf5269876d0b23567ca8e8a5303bbac999166e34a5506d20c68233d6615756e7c5db8d19d25 languageName: node linkType: hard @@ -2785,13 +2793,13 @@ __metadata: languageName: node linkType: hard -"@chakra-ui/visually-hidden@npm:2.2.0": - version: 2.2.0 - resolution: "@chakra-ui/visually-hidden@npm:2.2.0" +"@chakra-ui/visually-hidden@npm:2.0.15": + version: 2.0.15 + resolution: "@chakra-ui/visually-hidden@npm:2.0.15" peerDependencies: "@chakra-ui/system": ">=2.0.0" react: ">=18" - checksum: 47d6ceb0e26c0d272d1fa19b385d0a16bc8467d8f942d0f6447cc8b86f81c3f479340f4c27a4270667fd36aad32ebf903c6f05b355d106d88086858290761c4a + checksum: 6f484ee04aa2ca9d9234c8fd6bceec89f0307ab517f639aedf20c06cf1316892f3d9ab909338e51f0b4dd3b447bd6c402724dffba4218a93793fc4b9c5e3a254 languageName: node linkType: hard @@ -2866,12 +2874,12 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.2.2": - version: 1.2.2 - resolution: "@emotion/is-prop-valid@npm:1.2.2" +"@emotion/is-prop-valid@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/is-prop-valid@npm:1.2.1" dependencies: "@emotion/memoize": ^0.8.1 - checksum: 61f6b128ea62b9f76b47955057d5d86fcbe2a6989d2cd1e583daac592901a950475a37d049b9f7a7c6aa8758a33b408735db759fdedfd1f629df0f85ab60ea25 + checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a languageName: node linkType: hard @@ -2890,13 +2898,13 @@ __metadata: linkType: hard "@emotion/react@npm:^11.10.8": - version: 11.11.4 - resolution: "@emotion/react@npm:11.11.4" + version: 11.11.0 + resolution: "@emotion/react@npm:11.11.0" dependencies: "@babel/runtime": ^7.18.3 "@emotion/babel-plugin": ^11.11.0 "@emotion/cache": ^11.11.0 - "@emotion/serialize": ^1.1.3 + "@emotion/serialize": ^1.1.2 "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 "@emotion/utils": ^1.2.1 "@emotion/weak-memoize": ^0.3.1 @@ -2906,20 +2914,20 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 6abaa7a05c5e1db31bffca7ac79169f5456990022cbb3794e6903221536609a60420f2b4888dd3f84e9634a304e394130cb88dc32c243a1dedc263e50da329f8 + checksum: 2653e7c3de7b6fd5b0e18dea15621a9886104cc7c8cd5522ca69e52bd547ef6f13644193f8e0a906eea1e29a4f1d8167cdfa4667572fb7fafe0c62ab30fbaab6 languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3, @emotion/serialize@npm:^1.1.4": - version: 1.1.4 - resolution: "@emotion/serialize@npm:1.1.4" +"@emotion/serialize@npm:^1.1.2": + version: 1.1.2 + resolution: "@emotion/serialize@npm:1.1.2" dependencies: "@emotion/hash": ^0.9.1 "@emotion/memoize": ^0.8.1 "@emotion/unitless": ^0.8.1 "@emotion/utils": ^1.2.1 csstype: ^3.0.2 - checksum: 71b99f816a9c1d61a87c62cf4928da3894bb62213f3aff38b1ea9790b3368f084af98a3e5453b5055c2f36a7d70318d2fa9955b7b5676c2065b868062375df39 + checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986 languageName: node linkType: hard @@ -2931,13 +2939,13 @@ __metadata: linkType: hard "@emotion/styled@npm:^11.10.8": - version: 11.11.5 - resolution: "@emotion/styled@npm:11.11.5" + version: 11.11.0 + resolution: "@emotion/styled@npm:11.11.0" dependencies: "@babel/runtime": ^7.18.3 "@emotion/babel-plugin": ^11.11.0 - "@emotion/is-prop-valid": ^1.2.2 - "@emotion/serialize": ^1.1.4 + "@emotion/is-prop-valid": ^1.2.1 + "@emotion/serialize": ^1.1.2 "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 "@emotion/utils": ^1.2.1 peerDependencies: @@ -2946,7 +2954,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: ad5fc42d00e8aa9597f6d9665986036d5ebe0e8f8155af6d95831c5e8fb2319fb837724e6c5cd59e5346f14c3263711b7ce7271d34688e974d1f32ffeecb37ba + checksum: 904f641aad3892c65d7d6c0808b036dae1e6d6dad4861c1c7dc0baa59977047c6cad220691206eba7b4059f1a1c6e6c1ef4ebb8c829089e280fa0f2164a01e6b languageName: node linkType: hard @@ -3045,13 +3053,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm64@npm:0.18.20" @@ -3073,13 +3074,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-arm@npm:0.18.20" @@ -3101,13 +3095,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/android-x64@npm:0.18.20" @@ -3129,13 +3116,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-arm64@npm:0.18.20" @@ -3157,13 +3137,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/darwin-x64@npm:0.18.20" @@ -3185,13 +3158,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-arm64@npm:0.18.20" @@ -3213,13 +3179,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/freebsd-x64@npm:0.18.20" @@ -3241,13 +3200,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm64@npm:0.18.20" @@ -3269,13 +3221,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-arm@npm:0.18.20" @@ -3297,13 +3242,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ia32@npm:0.18.20" @@ -3325,13 +3263,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.14.54": version: 0.14.54 resolution: "@esbuild/linux-loong64@npm:0.14.54" @@ -3360,13 +3291,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-mips64el@npm:0.18.20" @@ -3388,13 +3312,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-ppc64@npm:0.18.20" @@ -3416,13 +3333,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-riscv64@npm:0.18.20" @@ -3444,13 +3354,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-s390x@npm:0.18.20" @@ -3472,13 +3375,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/linux-x64@npm:0.18.20" @@ -3500,13 +3396,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/netbsd-x64@npm:0.18.20" @@ -3528,13 +3417,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/openbsd-x64@npm:0.18.20" @@ -3556,13 +3438,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/sunos-x64@npm:0.18.20" @@ -3584,13 +3459,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-arm64@npm:0.18.20" @@ -3612,13 +3480,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-ia32@npm:0.18.20" @@ -3640,13 +3501,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.18.20": version: 0.18.20 resolution: "@esbuild/win32-x64@npm:0.18.20" @@ -3668,13 +3522,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@eslint/eslintrc@npm:^1.3.3": version: 1.3.3 resolution: "@eslint/eslintrc@npm:1.3.3" @@ -4206,7 +4053,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -6640,13 +6487,14 @@ __metadata: prettier: ^2.7.1 react: ^18.2.0 react-dom: ^18.2.0 + storybook: ^8.1.11 ts-jest: ^29.1.1 tsup: ^8.0.1 typescript: ~4.8.4 - vite: ^5.3.3 + vite: ^4.3.9 vite-plugin-node-polyfills: ^0.22.0 peerDependencies: - storybook: ^8.0.0 + storybook: ^8.1.11 languageName: unknown linkType: soft @@ -7888,114 +7736,93 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.18.0" +"@rollup/rollup-android-arm-eabi@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.6" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-android-arm64@npm:4.18.0" +"@rollup/rollup-android-arm64@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-android-arm64@npm:4.9.6" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" +"@rollup/rollup-darwin-arm64@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-darwin-arm64@npm:4.9.6" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" +"@rollup/rollup-darwin-x64@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-darwin-x64@npm:4.9.6" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" - conditions: os=linux & cpu=arm & libc=musl +"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6" + conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.6" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" +"@rollup/rollup-linux-arm64-musl@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.6" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.6" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.18.0" +"@rollup/rollup-linux-x64-gnu@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.6" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" +"@rollup/rollup-linux-x64-musl@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.6" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.6" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.6" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" +"@rollup/rollup-win32-x64-msvc@npm:4.9.6": + version: 4.9.6 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.6" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -8480,11 +8307,11 @@ __metadata: linkType: hard "@storybook/csf@npm:^0.1.7": - version: 0.1.9 - resolution: "@storybook/csf@npm:0.1.9" + version: 0.1.11 + resolution: "@storybook/csf@npm:0.1.11" dependencies: type-fest: ^2.19.0 - checksum: a0023f103d613b00acb3fd96004d30ef1eaea3b1ca6349e9fb33c269aa889ed2f6e3d91037fcfe99bf581865068e6cd0f567558644599e6619c2cb280f0512a2 + checksum: ba2a265f62ad82a2853b069f77e974efe31bed263a640ca1dd8e6d7e194022018a67ad4a2587ae928f33ae45aaf6ffedd5925ba3fcf3fe5b7996667a918e22eb languageName: node linkType: hard @@ -8776,13 +8603,6 @@ __metadata: languageName: node linkType: hard -"@swc/counter@npm:^0.1.3": - version: 0.1.3 - resolution: "@swc/counter@npm:0.1.3" - checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 - languageName: node - linkType: hard - "@swc/helpers@npm:^0.5.0": version: 0.5.1 resolution: "@swc/helpers@npm:0.5.1" @@ -9103,7 +8923,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": +"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": version: 1.0.5 resolution: "@types/estree@npm:1.0.5" checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a @@ -9367,9 +9187,9 @@ __metadata: linkType: hard "@types/lodash@npm:*, @types/lodash@npm:^4.14.167": - version: 4.17.5 - resolution: "@types/lodash@npm:4.17.5" - checksum: 3c9bb15772509f0ecb40428531863dbc3f064f2bf34bbccc2ce2b2923c69fb0868aec7e357b1d97fd0d7f7e435a014ea5c1adef8a64715529887179c97a5a823 + version: 4.17.6 + resolution: "@types/lodash@npm:4.17.6" + checksum: f748c672f49c54ee631a0fab6f26d56ab99bd68a4fb91604b5d7525a72102dd1917209c12d7078c988a375edb5dc70ca600db05ac01785306fd64470048cd16c languageName: node linkType: hard @@ -10201,13 +10021,13 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/ast@npm:1.12.1" +"@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/ast@npm:1.11.6" dependencies: "@webassemblyjs/helper-numbers": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 + checksum: 38ef1b526ca47c210f30975b06df2faf1a8170b1636ce239fc5738fc231ce28389dd61ecedd1bacfc03cbe95b16d1af848c805652080cb60982836eb4ed2c6cf languageName: node linkType: hard @@ -10225,10 +10045,10 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" - checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca +"@webassemblyjs/helper-buffer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-buffer@npm:1.11.6" + checksum: b14d0573bf680d22b2522e8a341ec451fddd645d1f9c6bd9012ccb7e587a2973b86ab7b89fe91e1c79939ba96095f503af04369a3b356c8023c13a5893221644 languageName: node linkType: hard @@ -10250,15 +10070,15 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" +"@webassemblyjs/helper-wasm-section@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/wasm-gen": 1.12.1 - checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f + "@webassemblyjs/wasm-gen": 1.11.6 + checksum: b2cf751bf4552b5b9999d27bbb7692d0aca75260140195cb58ea6374d7b9c2dc69b61e10b211a0e773f66209c3ddd612137ed66097e3684d7816f854997682e9 languageName: node linkType: hard @@ -10287,68 +10107,68 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" +"@webassemblyjs/wasm-edit@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-edit@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/helper-wasm-section": 1.12.1 - "@webassemblyjs/wasm-gen": 1.12.1 - "@webassemblyjs/wasm-opt": 1.12.1 - "@webassemblyjs/wasm-parser": 1.12.1 - "@webassemblyjs/wast-printer": 1.12.1 - checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 + "@webassemblyjs/helper-wasm-section": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-opt": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + "@webassemblyjs/wast-printer": 1.11.6 + checksum: 29ce75870496d6fad864d815ebb072395a8a3a04dc9c3f4e1ffdc63fc5fa58b1f34304a1117296d8240054cfdbc38aca88e71fb51483cf29ffab0a61ef27b481 languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" +"@webassemblyjs/wasm-gen@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-gen@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/ast": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 "@webassemblyjs/ieee754": 1.11.6 "@webassemblyjs/leb128": 1.11.6 "@webassemblyjs/utf8": 1.11.6 - checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff + checksum: a645a2eecbea24833c3260a249704a7f554ef4a94c6000984728e94bb2bc9140a68dfd6fd21d5e0bbb09f6dfc98e083a45760a83ae0417b41a0196ff6d45a23a languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" +"@webassemblyjs/wasm-opt@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-opt@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/wasm-gen": 1.12.1 - "@webassemblyjs/wasm-parser": 1.12.1 - checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 + "@webassemblyjs/ast": 1.11.6 + "@webassemblyjs/helper-buffer": 1.11.6 + "@webassemblyjs/wasm-gen": 1.11.6 + "@webassemblyjs/wasm-parser": 1.11.6 + checksum: b4557f195487f8e97336ddf79f7bef40d788239169aac707f6eaa2fa5fe243557c2d74e550a8e57f2788e70c7ae4e7d32f7be16101afe183d597b747a3bdd528 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" +"@webassemblyjs/wasm-parser@npm:1.11.6, @webassemblyjs/wasm-parser@npm:^1.11.5": + version: 1.11.6 + resolution: "@webassemblyjs/wasm-parser@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/ast": 1.11.6 "@webassemblyjs/helper-api-error": 1.11.6 "@webassemblyjs/helper-wasm-bytecode": 1.11.6 "@webassemblyjs/ieee754": 1.11.6 "@webassemblyjs/leb128": 1.11.6 "@webassemblyjs/utf8": 1.11.6 - checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 + checksum: 8200a8d77c15621724a23fdabe58d5571415cda98a7058f542e670ea965dd75499f5e34a48675184947c66f3df23adf55df060312e6d72d57908e3f049620d8a languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wast-printer@npm:1.12.1" +"@webassemblyjs/wast-printer@npm:1.11.6": + version: 1.11.6 + resolution: "@webassemblyjs/wast-printer@npm:1.11.6" dependencies: - "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/ast": 1.11.6 "@xtuc/long": 4.2.2 - checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 + checksum: d2fa6a4c427325ec81463e9c809aa6572af6d47f619f3091bf4c4a6fc34f1da3df7caddaac50b8e7a457f8784c62cd58c6311b6cb69b0162ccd8d4c072f79cf8 languageName: node linkType: hard @@ -10437,26 +10257,17 @@ __metadata: languageName: node linkType: hard -"@zag-js/dom-query@npm:0.16.0": - version: 0.16.0 - resolution: "@zag-js/dom-query@npm:0.16.0" - checksum: a207018be1215716487b789c50056c6e28ebf067db26e31147bdef6f4ae1a20fb74b6a7f1a1334210c92295479761df7da2fb60a9cef9aaf64ea376dead3a1f7 - languageName: node - linkType: hard - -"@zag-js/element-size@npm:0.10.5": - version: 0.10.5 - resolution: "@zag-js/element-size@npm:0.10.5" - checksum: 1a269fbe5124b430008617e705049c929301fae98af4f4ad9da9e533784c883ba899083242a9b7b2a15e503f94dcc7958e8489e98dbd0e098d2d968fb1b41355 +"@zag-js/element-size@npm:0.3.2": + version: 0.3.2 + resolution: "@zag-js/element-size@npm:0.3.2" + checksum: ee76f0b49e13e55f6adfe5b2e4d2c7b4207a9bc3d453497e90f206f8579e9f4f8bfc038c3f6eec42dac09476d767ddddb73e7697a26e96852249652adb0a35e0 languageName: node linkType: hard -"@zag-js/focus-visible@npm:0.16.0": - version: 0.16.0 - resolution: "@zag-js/focus-visible@npm:0.16.0" - dependencies: - "@zag-js/dom-query": 0.16.0 - checksum: 4bf4530a865200c175d04a70169929defce865a69e7c068a365106cb0b19dbae5ed56163f02cbf543f4b26e60449e150e4aec67dbd819a9d1b3eba9fc667f488 +"@zag-js/focus-visible@npm:0.2.2": + version: 0.2.2 + resolution: "@zag-js/focus-visible@npm:0.2.2" + checksum: 4cfb41479d82ced942476acfe17dd19f0c40bcceb28733ab8f716a53b893790b20e279461345ee03a7ac1273452f6a33882120b6b55d4e220179956fdd7ec4be languageName: node linkType: hard @@ -10522,12 +10333,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-attributes@npm:^1.9.5": - version: 1.9.5 - resolution: "acorn-import-attributes@npm:1.9.5" +"acorn-import-assertions@npm:^1.9.0": + version: 1.9.0 + resolution: "acorn-import-assertions@npm:1.9.0" peerDependencies: acorn: ^8 - checksum: 1c0c49b6a244503964ae46ae850baccf306e84caf99bc2010ed6103c69a423987b07b520a6c619f075d215388bd4923eccac995886a54309eda049ab78a4be95 + checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c languageName: node linkType: hard @@ -10574,12 +10385,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.10.0, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": - version: 8.12.0 - resolution: "acorn@npm:8.12.0" +"acorn@npm:^8.1.0, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" bin: acorn: bin/acorn - checksum: ae142de8739ef15a5d936c550c1d267fc4dedcdbe62ad1aa2c0009afed1de84dd0a584684a5d200bb55d8db14f3e09a95c6e92a5303973c04b9a7413c36d1df0 + checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07 languageName: node linkType: hard @@ -10886,7 +10697,7 @@ __metadata: languageName: node linkType: hard -"aria-hidden@npm:^1.1.1, aria-hidden@npm:^1.2.3": +"aria-hidden@npm:^1.1.1, aria-hidden@npm:^1.2.2": version: 1.2.4 resolution: "aria-hidden@npm:1.2.4" dependencies: @@ -11738,7 +11549,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.10, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": +"browserslist@npm:^4.14.5, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": version: 4.23.1 resolution: "browserslist@npm:4.23.1" dependencies: @@ -12049,9 +11860,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001629": - version: 1.0.30001637 - resolution: "caniuse-lite@npm:1.0.30001637" - checksum: cb8b194b8576c73d287274cf3028541c218da7f2e1871b737e4829796521f45dbb4745fa466e0e56a241693cfe8d00d20ac3e55337f3923e914995d1d5a639a6 + version: 1.0.30001640 + resolution: "caniuse-lite@npm:1.0.30001640" + checksum: ec492d8d1e11d1c55e0f5c0f218229369dc0a4bd1b5d0a579a6435865fe8f4c84bde7e816a844cce1b9cdd97f5a85b6dac5599639fabcdb0c4c5bd039e46cbfd languageName: node linkType: hard @@ -12233,9 +12044,9 @@ __metadata: linkType: hard "cjs-module-lexer@npm:^1.0.0": - version: 1.3.1 - resolution: "cjs-module-lexer@npm:1.3.1" - checksum: 75f20ac264a397ea5c63f9c2343a51ab878043666468f275e94862f7180ec1d764a400ec0c09085dcf0db3193c74a8b571519abd2bf4be0d2be510d1377c8d4b + version: 1.2.2 + resolution: "cjs-module-lexer@npm:1.2.2" + checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 languageName: node linkType: hard @@ -12459,7 +12270,7 @@ __metadata: languageName: node linkType: hard -"color2k@npm:^2.0.2": +"color2k@npm:^2.0.0, color2k@npm:^2.0.2": version: 2.0.3 resolution: "color2k@npm:2.0.3" checksum: 0748e16e43c1740045af61f44de5d181f3f7a2a9cb0d5cccdccee23d04e3f107f02aaafebb7ca3335cca1d11849c6321aba702eb2f893e993a77f65761de7661 @@ -12621,10 +12432,10 @@ __metadata: languageName: node linkType: hard -"compute-scroll-into-view@npm:3.0.3": - version: 3.0.3 - resolution: "compute-scroll-into-view@npm:3.0.3" - checksum: 7143869648d4de8ff2cb60eb8e96a21b47948c3210d15d1bfaa7e88de722c7f83f06676b97ebff94831dde0c03e42458ecfbde466747945187ee5c7667c68395 +"compute-scroll-into-view@npm:1.0.20": + version: 1.0.20 + resolution: "compute-scroll-into-view@npm:1.0.20" + checksum: f15fab29221953620735393ac1866541aab0d27d28078bedbba071a291ee9c8cc1a72bee302cf0bc06ed83c5e55afb74ebcbd634a63671ba33cf1fb1c51d3308 languageName: node linkType: hard @@ -12659,6 +12470,13 @@ __metadata: languageName: node linkType: hard +"confbox@npm:^0.1.7": + version: 0.1.7 + resolution: "confbox@npm:0.1.7" + checksum: bde836c26f5154a348b0c0a757f8a0138929e5737e0553be3c4f07a056abca618b861aa63ac3b22d344789b56be99a1382928933e08cd500df00213bf4d8fb43 + languageName: node + linkType: hard + "connect-history-api-fallback@npm:^2.0.0": version: 2.0.0 resolution: "connect-history-api-fallback@npm:2.0.0" @@ -12974,26 +12792,20 @@ __metadata: linkType: hard "css-loader@npm:^6.7.3": - version: 6.11.0 - resolution: "css-loader@npm:6.11.0" + version: 6.7.4 + resolution: "css-loader@npm:6.7.4" dependencies: icss-utils: ^5.1.0 - postcss: ^8.4.33 - postcss-modules-extract-imports: ^3.1.0 - postcss-modules-local-by-default: ^4.0.5 - postcss-modules-scope: ^3.2.0 + postcss: ^8.4.21 + postcss-modules-extract-imports: ^3.0.0 + postcss-modules-local-by-default: ^4.0.1 + postcss-modules-scope: ^3.0.0 postcss-modules-values: ^4.0.0 postcss-value-parser: ^4.2.0 - semver: ^7.5.4 + semver: ^7.3.8 peerDependencies: - "@rspack/core": 0.x || 1.x webpack: ^5.0.0 - peerDependenciesMeta: - "@rspack/core": - optional: true - webpack: - optional: true - checksum: 5c8d35975a7121334905394e88e28f05df72f037dbed2fb8fec4be5f0b313ae73a13894ba791867d4a4190c35896da84a7fd0c54fb426db55d85ba5e714edbe3 + checksum: 6021fa9e375d767b9675e295c1513f2ee4ae04f76d9de69a75b8446e05f6e02b2170407ea72939925b788dcd5aa308527f6b41be3870dc1f4b0bfff8d2532c6e languageName: node linkType: hard @@ -13063,10 +12875,10 @@ __metadata: languageName: node linkType: hard -"csstype@npm:^3.0.2, csstype@npm:^3.1.2": - version: 3.1.3 - resolution: "csstype@npm:3.1.3" - checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 +"csstype@npm:^3.0.11, csstype@npm:^3.0.2": + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 languageName: node linkType: hard @@ -13872,9 +13684,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.4.796": - version: 1.4.812 - resolution: "electron-to-chromium@npm:1.4.812" - checksum: 0205fcb6db3a719873398f46cd3341188d4a54e056567453819532c5fd1fadda43f501c252bc8d05eeaaeb1497f58d9875c46c4f9ecfbe713b9efe71cd879b13 + version: 1.4.816 + resolution: "electron-to-chromium@npm:1.4.816" + checksum: 5abaa04cee77af4889e68d7fd7305c50b98eaa9b4016b228c85de5713a933767e423e2e6bcd71007fff1c405c5bea79d6e9e9d18efddaa966040fe9e97f43e2e languageName: node linkType: hard @@ -13946,13 +13758,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.17.0, enhanced-resolve@npm:^5.7.0": - version: 5.17.0 - resolution: "enhanced-resolve@npm:5.17.0" +"enhanced-resolve@npm:^5.15.0, enhanced-resolve@npm:^5.7.0": + version: 5.15.0 + resolution: "enhanced-resolve@npm:5.15.0" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: 1066000454da6a7aeabdbe1f433d912d1e39e6892142a78a37b6577aab27e0436091fa1399d857ad87085b1c3b73a0f811c8874da3dbdc40fbd5ebe89a5568e6 + checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 languageName: node linkType: hard @@ -14572,86 +14384,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.21.3": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": 0.21.5 - "@esbuild/android-arm": 0.21.5 - "@esbuild/android-arm64": 0.21.5 - "@esbuild/android-x64": 0.21.5 - "@esbuild/darwin-arm64": 0.21.5 - "@esbuild/darwin-x64": 0.21.5 - "@esbuild/freebsd-arm64": 0.21.5 - "@esbuild/freebsd-x64": 0.21.5 - "@esbuild/linux-arm": 0.21.5 - "@esbuild/linux-arm64": 0.21.5 - "@esbuild/linux-ia32": 0.21.5 - "@esbuild/linux-loong64": 0.21.5 - "@esbuild/linux-mips64el": 0.21.5 - "@esbuild/linux-ppc64": 0.21.5 - "@esbuild/linux-riscv64": 0.21.5 - "@esbuild/linux-s390x": 0.21.5 - "@esbuild/linux-x64": 0.21.5 - "@esbuild/netbsd-x64": 0.21.5 - "@esbuild/openbsd-x64": 0.21.5 - "@esbuild/sunos-x64": 0.21.5 - "@esbuild/win32-arm64": 0.21.5 - "@esbuild/win32-ia32": 0.21.5 - "@esbuild/win32-x64": 0.21.5 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 - languageName: node - linkType: hard - "escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" @@ -15719,18 +15451,18 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.238.2 - resolution: "flow-parser@npm:0.238.2" - checksum: ff8cdcec5f91573478f017db3b33ad38f4f5b80c331bf07da6b10348e73a806fb66a4d5f57a4392514dc5f94df2c65ad1f0c4ed5a9383733d0d8478bd0a41b34 + version: 0.239.0 + resolution: "flow-parser@npm:0.239.0" + checksum: 20d75183560a901f458878958f8e59c9ca82f118bbb5d265bc67143d4ae6db2b2ee52bc38391d9a4053e623de6ef9c0ca11d24b66cf5b64e5c6ceb873f38192d languageName: node linkType: hard -"focus-lock@npm:^1.3.5": - version: 1.3.5 - resolution: "focus-lock@npm:1.3.5" +"focus-lock@npm:^0.11.6": + version: 0.11.6 + resolution: "focus-lock@npm:0.11.6" dependencies: tslib: ^2.0.3 - checksum: 09fb0e4402694aabafa8f7d49a656f683bbf39c94efc0c0240934d880792ef86d8c11bb7d77ef6f5d68ccfdfb7f191ecc2b38a259182a6791bcf96860a408d1c + checksum: 6a407c4c45f05f8258f92565541fc5f8043f576643a7603eb999e1a790173e08712056766ed034ccd31c6d6deed259dea558002712fa5ef2432fc6930b9c7a05 languageName: node linkType: hard @@ -15941,10 +15673,10 @@ __metadata: languageName: node linkType: hard -"fs-monkey@npm:^1.0.4": - version: 1.0.6 - resolution: "fs-monkey@npm:1.0.6" - checksum: 4e9986acf197581b10b79d3e63e74252681ca215ef82d4afbd98dcfe86b3f09189ac1d7e8064bc433e4e53cdb5c14fdb38773277d41bba18b1ff8bbdcab01a3a +"fs-monkey@npm:^1.0.3": + version: 1.0.3 + resolution: "fs-monkey@npm:1.0.3" + checksum: cf50804833f9b88a476911ae911fe50f61a98d986df52f890bd97e7262796d023698cb2309fa9b74fdd8974f04315b648748a0a8ee059e7d5257b293bfc409c0 languageName: node linkType: hard @@ -15955,19 +15687,19 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" dependencies: node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" dependencies: node-gyp: latest conditions: os=darwin @@ -16395,8 +16127,8 @@ __metadata: linkType: hard "globby@npm:^14.0.1": - version: 14.0.1 - resolution: "globby@npm:14.0.1" + version: 14.0.2 + resolution: "globby@npm:14.0.2" dependencies: "@sindresorhus/merge-streams": ^2.1.0 fast-glob: ^3.3.2 @@ -16404,7 +16136,7 @@ __metadata: path-type: ^5.0.0 slash: ^5.1.0 unicorn-magic: ^0.1.0 - checksum: 33568444289afb1135ad62d52d5e8412900cec620e3b6ece533afa46d004066f14b97052b643833d7cf4ee03e7fac571430130cde44c333df91a45d313105170 + checksum: 2cee79efefca4383a825fc2fcbdb37e5706728f2d39d4b63851927c128fff62e6334ef7d4d467949d411409ad62767dc2d214e0f837a0f6d4b7290b6711d485c languageName: node linkType: hard @@ -16454,7 +16186,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -19219,9 +18951,9 @@ __metadata: linkType: hard "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.2.2 - resolution: "lru-cache@npm:10.2.2" - checksum: 98e8fc93691c546f719a76103ef2bee5a3ac823955c755a47641ec41f8c7fafa1baeaba466937cc1cbfa9cfd47e03536d10e2db3158a64ad91ff3a58a32c893e + version: 10.3.0 + resolution: "lru-cache@npm:10.3.0" + checksum: f2289639bd94cf3c87bfd8a77ac991f9afe3af004ddca3548c3dae63ead1c73bba449a60a4e270992e16cf3261b3d4130943234d52ca3a4d4de2fc074a3cc7b5 languageName: node linkType: hard @@ -19446,11 +19178,11 @@ __metadata: linkType: hard "memfs@npm:^3.4.13, memfs@npm:^3.4.3": - version: 3.5.3 - resolution: "memfs@npm:3.5.3" + version: 3.5.1 + resolution: "memfs@npm:3.5.1" dependencies: - fs-monkey: ^1.0.4 - checksum: 18dfdeacad7c8047b976a6ccd58bc98ba76e122ad3ca0e50a21837fe2075fc0d9aafc58ab9cf2576c2b6889da1dd2503083f2364191b695273f40969db2ecc44 + fs-monkey: ^1.0.3 + checksum: fcd037566a4bbb00d61dc991858395ccc06267ab5fe9471aeff28433f2a210bf5dd999e64e8b5473f8244f00dfb7ff3221b5c2fe41ff98af1439e5e2168fc410 languageName: node linkType: hard @@ -19843,15 +19575,15 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.2.0, mlly@npm:^1.4.0": - version: 1.4.1 - resolution: "mlly@npm:1.4.1" +"mlly@npm:^1.4.0, mlly@npm:^1.7.1": + version: 1.7.1 + resolution: "mlly@npm:1.7.1" dependencies: - acorn: ^8.10.0 - pathe: ^1.1.1 - pkg-types: ^1.0.3 - ufo: ^1.3.0 - checksum: b2b59ab3d70196127be4e54609d2a442bd252345727138940fb245672a238b2fbdd431e8c75ec5c741ff90410ce488c5fd6446d5d3e6476d21dbf4c3fa35d4a0 + acorn: ^8.11.3 + pathe: ^1.1.2 + pkg-types: ^1.1.1 + ufo: ^1.5.3 + checksum: 956a6d54119eef782f302580f63a9800654e588cd70015b4218a00069c6ef11b87984e8ffe140a4668b0100ad4022b11d1f9b11ac2c6dbafa4d8bc33ae3a08a8 languageName: node linkType: hard @@ -20044,12 +19776,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.1.31, nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" +"nanoid@npm:^3.1.31, nanoid@npm:^3.3.6": + version: 3.3.6 + resolution: "nanoid@npm:3.3.6" bin: nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + checksum: 7d0eda657002738aa5206107bd0580aead6c95c460ef1bdd0b1a87a9c7ae6277ac2e9b945306aaa5b32c6dcb7feaf462d0f552e7f8b5718abfc6ead5c94a71b3 languageName: node linkType: hard @@ -20432,17 +20164,18 @@ __metadata: linkType: hard "nypm@npm:^0.3.8": - version: 0.3.8 - resolution: "nypm@npm:0.3.8" + version: 0.3.9 + resolution: "nypm@npm:0.3.9" dependencies: citty: ^0.1.6 consola: ^3.2.3 execa: ^8.0.1 pathe: ^1.1.2 - ufo: ^1.4.0 + pkg-types: ^1.1.1 + ufo: ^1.5.3 bin: nypm: dist/cli.mjs - checksum: 98a46c72511e2462a67fbd9c2cae412d1532606a9de82903e5a52005ee7b6513fe9d557ef58960f7735af4c069ddb8d92f606e9e83094f357eb5cb991d157717 + checksum: 67fb85384d097fa281047d8dccc23bff4a4ffd7be8952c575c3ceda1b3bbc1401b8e0660d7a0f742b80e8b63f097d040dbba410cae4b94b8cad6a66e94ad8710 languageName: node linkType: hard @@ -21049,7 +20782,7 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.0, pathe@npm:^1.1.1, pathe@npm:^1.1.2": +"pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2" checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 @@ -21190,14 +20923,14 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.3": - version: 1.0.3 - resolution: "pkg-types@npm:1.0.3" +"pkg-types@npm:^1.1.1": + version: 1.1.3 + resolution: "pkg-types@npm:1.1.3" dependencies: - jsonc-parser: ^3.2.0 - mlly: ^1.2.0 - pathe: ^1.1.0 - checksum: 4b305c834b912ddcc8a0fe77530c0b0321fe340396f84cbb87aecdbc126606f47f2178f23b8639e71a4870f9631c7217aef52ffed0ae17ea2dbbe7e43d116a6e + confbox: ^0.1.7 + mlly: ^1.7.1 + pathe: ^1.1.2 + checksum: 1085f1ed650db71d62ec9201d0ad4dc9455962b0e40d309e26bb8c01bb5b1560087e44d49e8e034497668c7cdde7cb5397995afa79c9fa1e2b35af9c9abafa82 languageName: node linkType: hard @@ -21265,36 +20998,36 @@ __metadata: languageName: node linkType: hard -"postcss-modules-extract-imports@npm:^3.1.0": - version: 3.1.0 - resolution: "postcss-modules-extract-imports@npm:3.1.0" +"postcss-modules-extract-imports@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-extract-imports@npm:3.0.0" peerDependencies: postcss: ^8.1.0 - checksum: b9192e0f4fb3d19431558be6f8af7ca45fc92baaad9b2778d1732a5880cd25c3df2074ce5484ae491e224f0d21345ffc2d419bd51c25b019af76d7a7af88c17f + checksum: 4b65f2f1382d89c4bc3c0a1bdc5942f52f3cb19c110c57bd591ffab3a5fee03fcf831604168205b0c1b631a3dce2255c70b61aaae3ef39d69cd7eb450c2552d2 languageName: node linkType: hard -"postcss-modules-local-by-default@npm:^4.0.5": - version: 4.0.5 - resolution: "postcss-modules-local-by-default@npm:4.0.5" +"postcss-modules-local-by-default@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-modules-local-by-default@npm:4.0.1" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^6.0.2 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 + checksum: 1a95eb8bc54a363a77dbd77a0a88f500e7937ecbed5903becef9362eace28de406e6fdf62640126c22964678370e87eb10481eea2703702772935b4515603bfd languageName: node linkType: hard -"postcss-modules-scope@npm:^3.2.0": - version: 3.2.0 - resolution: "postcss-modules-scope@npm:3.2.0" +"postcss-modules-scope@npm:^3.0.0": + version: 3.0.0 + resolution: "postcss-modules-scope@npm:3.0.0" dependencies: postcss-selector-parser: ^6.0.4 peerDependencies: postcss: ^8.1.0 - checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae + checksum: 330b9398dbd44c992c92b0dc612c0626135e2cc840fee41841eb61247a6cfed95af2bd6f67ead9dd9d0bb41f5b0367129d93c6e434fa3e9c58ade391d9a5a138 languageName: node linkType: hard @@ -21326,14 +21059,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.4.27, postcss@npm:^8.4.33, postcss@npm:^8.4.39": - version: 8.4.39 - resolution: "postcss@npm:8.4.39" +"postcss@npm:^8.1.10, postcss@npm:^8.4.21, postcss@npm:^8.4.27": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.1 - source-map-js: ^1.2.0 - checksum: 14b130c90f165961772bdaf99c67f907f3d16494adf0868e57ef68baa67e0d1f6762db9d41ab0f4d09bab6fb7888588dba3596afd1a235fd5c2d43fba7006ac6 + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea languageName: node linkType: hard @@ -21713,11 +21446,11 @@ __metadata: linkType: hard "qs@npm:^6.10.0, qs@npm:^6.11.2": - version: 6.12.1 - resolution: "qs@npm:6.12.1" + version: 6.12.2 + resolution: "qs@npm:6.12.2" dependencies: side-channel: ^1.0.6 - checksum: aa761d99e65b6936ba2dd2187f2d9976afbcda38deb3ff1b3fe331d09b0c578ed79ca2abdde1271164b5be619c521ec7db9b34c23f49a074e5921372d16242d5 + checksum: cb141456f3e518b4212177f5658168acbab60c90735f27f131336f7ae0286b51402911d4a0a786d83d3ba4aa801c032383b4304b28474de00388eb95cf988c8c languageName: node linkType: hard @@ -21926,22 +21659,22 @@ __metadata: languageName: node linkType: hard -"react-fast-compare@npm:3.2.2": - version: 3.2.2 - resolution: "react-fast-compare@npm:3.2.2" - checksum: 2071415b4f76a3e6b55c84611c4d24dcb12ffc85811a2840b5a3f1ff2d1a99be1020d9437ee7c6e024c9f4cbb84ceb35e48cf84f28fcb00265ad2dfdd3947704 +"react-fast-compare@npm:3.2.1": + version: 3.2.1 + resolution: "react-fast-compare@npm:3.2.1" + checksum: 209b4dc3a9cc79c074a26ec020459efd8be279accaca612db2edb8ada2a28849ea51cf3d246fc0fafb344949b93a63a43798b6c1787559b0a128571883fe6859 languageName: node linkType: hard -"react-focus-lock@npm:^2.9.4": - version: 2.12.1 - resolution: "react-focus-lock@npm:2.12.1" +"react-focus-lock@npm:^2.9.2": + version: 2.9.4 + resolution: "react-focus-lock@npm:2.9.4" dependencies: "@babel/runtime": ^7.0.0 - focus-lock: ^1.3.5 + focus-lock: ^0.11.6 prop-types: ^15.6.2 react-clientside-effect: ^1.2.6 - use-callback-ref: ^1.3.2 + use-callback-ref: ^1.3.0 use-sidecar: ^1.1.2 peerDependencies: "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -21949,7 +21682,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: f95c575a904a4ccf0c856c0fdbb8614dd99edd6bd124932a25c62285c6e5374586d762f5ba9ac3b1a1b865e93e6c32ca7dee273a0b336ad112becf91150391c6 + checksum: f4c696bdbde5008560388622b994c00502d1faeeabff32b02964770c8c020208872f5f6b914b249a8bf3e97cc12e58bb0d227cd33460093654156b7b7f4c8d76 languageName: node linkType: hard @@ -22042,9 +21775,9 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll-bar@npm:^2.3.4, react-remove-scroll-bar@npm:^2.3.6": - version: 2.3.6 - resolution: "react-remove-scroll-bar@npm:2.3.6" +"react-remove-scroll-bar@npm:^2.3.4": + version: 2.3.4 + resolution: "react-remove-scroll-bar@npm:2.3.4" dependencies: react-style-singleton: ^2.2.1 tslib: ^2.0.0 @@ -22054,11 +21787,11 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: e793fe110e2ea60d5724d0b60f09de1f6cd1b080df00df9e68bb9a1b985895830e703194647059fdc22402a67a89b7673a5260773b89bcd98031fd99bc91aefa + checksum: b5ce5f2f98d65c97a3e975823ae4043a4ba2a3b63b5ba284b887e7853f051b5cd6afb74abde6d57b421931c52f2e1fdbb625dc858b1cb5a32c27c14ab85649d4 languageName: node linkType: hard -"react-remove-scroll@npm:2.5.7": +"react-remove-scroll@npm:2.5.7, react-remove-scroll@npm:^2.5.5": version: 2.5.7 resolution: "react-remove-scroll@npm:2.5.7" dependencies: @@ -22077,25 +21810,6 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll@npm:^2.5.6": - version: 2.5.10 - resolution: "react-remove-scroll@npm:2.5.10" - dependencies: - react-remove-scroll-bar: ^2.3.6 - react-style-singleton: ^2.2.1 - tslib: ^2.1.0 - use-callback-ref: ^1.3.0 - use-sidecar: ^1.1.2 - peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: 2a926718b93e783732a2b369fec1349beaa187e8110ff6fa41940668a2826e59de1ee617dfc2bb5bbf5ad3a186d06b388baf56f9f0553fcac76cf9cec4b83eb0 - languageName: node - linkType: hard - "react-router-dom@npm:^6.11.1": version: 6.11.2 resolution: "react-router-dom@npm:6.11.2" @@ -22823,26 +22537,23 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.0.2, rollup@npm:^4.13.0": - version: 4.18.0 - resolution: "rollup@npm:4.18.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.18.0 - "@rollup/rollup-android-arm64": 4.18.0 - "@rollup/rollup-darwin-arm64": 4.18.0 - "@rollup/rollup-darwin-x64": 4.18.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.18.0 - "@rollup/rollup-linux-arm-musleabihf": 4.18.0 - "@rollup/rollup-linux-arm64-gnu": 4.18.0 - "@rollup/rollup-linux-arm64-musl": 4.18.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.18.0 - "@rollup/rollup-linux-riscv64-gnu": 4.18.0 - "@rollup/rollup-linux-s390x-gnu": 4.18.0 - "@rollup/rollup-linux-x64-gnu": 4.18.0 - "@rollup/rollup-linux-x64-musl": 4.18.0 - "@rollup/rollup-win32-arm64-msvc": 4.18.0 - "@rollup/rollup-win32-ia32-msvc": 4.18.0 - "@rollup/rollup-win32-x64-msvc": 4.18.0 +"rollup@npm:^4.0.2": + version: 4.9.6 + resolution: "rollup@npm:4.9.6" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.9.6 + "@rollup/rollup-android-arm64": 4.9.6 + "@rollup/rollup-darwin-arm64": 4.9.6 + "@rollup/rollup-darwin-x64": 4.9.6 + "@rollup/rollup-linux-arm-gnueabihf": 4.9.6 + "@rollup/rollup-linux-arm64-gnu": 4.9.6 + "@rollup/rollup-linux-arm64-musl": 4.9.6 + "@rollup/rollup-linux-riscv64-gnu": 4.9.6 + "@rollup/rollup-linux-x64-gnu": 4.9.6 + "@rollup/rollup-linux-x64-musl": 4.9.6 + "@rollup/rollup-win32-arm64-msvc": 4.9.6 + "@rollup/rollup-win32-ia32-msvc": 4.9.6 + "@rollup/rollup-win32-x64-msvc": 4.9.6 "@types/estree": 1.0.5 fsevents: ~2.3.2 dependenciesMeta: @@ -22856,18 +22567,12 @@ __metadata: optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true - "@rollup/rollup-linux-arm-musleabihf": - optional: true "@rollup/rollup-linux-arm64-gnu": optional: true "@rollup/rollup-linux-arm64-musl": optional: true - "@rollup/rollup-linux-powerpc64le-gnu": - optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true - "@rollup/rollup-linux-s390x-gnu": - optional: true "@rollup/rollup-linux-x64-gnu": optional: true "@rollup/rollup-linux-x64-musl": @@ -22882,7 +22587,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 54cde921e763017ce952ba76ec77d58dd9c01e3536c3be628d4af8c59d9b2f0e1e6a11b30fda44845c7b74098646cd972feb3bcd2f4a35d3293366f2eeb0a39e + checksum: cdc0bdd41ee2d3fe7f01df26f5a85921caf46ffe0ae118b2f3deebdf569e8b1c1800b8eee04960425e67aecbd9ccdd37bcdb92595866adb3968d223a07e9b7e6 languageName: node linkType: hard @@ -23539,10 +23244,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": - version: 1.2.0 - resolution: "source-map-js@npm:1.2.0" - checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c languageName: node linkType: hard @@ -24049,11 +23754,11 @@ __metadata: linkType: hard "style-loader@npm:^3.3.2": - version: 3.3.4 - resolution: "style-loader@npm:3.3.4" + version: 3.3.3 + resolution: "style-loader@npm:3.3.3" peerDependencies: webpack: ^5.0.0 - checksum: caac3f2fe2c3c89e49b7a2a9329e1cfa515ecf5f36b9c4885f9b218019fda207a9029939b2c35821dec177a264a007e7c391ccdd3ff7401881ce6287b9c8f38b + checksum: f59c953f56f6a935bd6a1dfa409f1128fed2b66b48ce4a7a75b85862a7156e5e90ab163878962762f528ec4d510903d828da645e143fbffd26f055dc1c094078 languageName: node linkType: hard @@ -24164,14 +23869,12 @@ __metadata: linkType: hard "swc-loader@npm:^0.2.3": - version: 0.2.6 - resolution: "swc-loader@npm:0.2.6" - dependencies: - "@swc/counter": ^0.1.3 + version: 0.2.3 + resolution: "swc-loader@npm:0.2.3" peerDependencies: "@swc/core": ^1.2.147 webpack: ">=2" - checksum: fe90948c02a51bb8ffcff1ce3590e01dc12860b0bb7c9e22052b14fa846ed437781ae265614a5e14344bea22001108780f00a6e350e28c0b3499bc4cd11335fb + checksum: 010d84d399525c0185d36d62c86c55ae017e7a90046bc8a39be4b7e07526924037868049f6037bc966da98151cb2600934b96a66279b742d3c413a718b427251 languageName: node linkType: hard @@ -24306,15 +24009,15 @@ __metadata: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.10, terser-webpack-plugin@npm:^5.3.9": - version: 5.3.10 - resolution: "terser-webpack-plugin@npm:5.3.10" +"terser-webpack-plugin@npm:^5.3.7, terser-webpack-plugin@npm:^5.3.9": + version: 5.3.9 + resolution: "terser-webpack-plugin@npm:5.3.9" dependencies: - "@jridgewell/trace-mapping": ^0.3.20 + "@jridgewell/trace-mapping": ^0.3.17 jest-worker: ^27.4.5 schema-utils: ^3.1.1 serialize-javascript: ^6.0.1 - terser: ^5.26.0 + terser: ^5.16.8 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -24324,13 +24027,13 @@ __metadata: optional: true uglify-js: optional: true - checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea + checksum: 41705713d6f9cb83287936b21e27c658891c78c4392159f5148b5623f0e8c48559869779619b058382a4c9758e7820ea034695e57dc7c474b4962b79f553bc5f languageName: node linkType: hard -"terser@npm:^5.10.0, terser@npm:^5.17.4, terser@npm:^5.17.7, terser@npm:^5.26.0": - version: 5.31.1 - resolution: "terser@npm:5.31.1" +"terser@npm:^5.10.0, terser@npm:^5.16.8, terser@npm:^5.17.4, terser@npm:^5.17.7": + version: 5.18.0 + resolution: "terser@npm:5.18.0" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -24338,7 +24041,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 6ab57e62e9cd690dc99b3d0ee2e07289cd3408109a950c7118bf39e32851a5bf08b67fe19e0ac43a5a98813792ac78101bf25e5aa524f05ae8bb4e0131d0feef + checksum: d01eb9805a978b3338b68fd2d9e35c1cd4cad78ea093dc92c7b3c38965232f0af0f95e0c6d90920ecf600a74135c608aebae26302c036c01393a590e1918bb90 languageName: node linkType: hard @@ -24974,7 +24677,7 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.3.0, ufo@npm:^1.4.0": +"ufo@npm:^1.5.3": version: 1.5.3 resolution: "ufo@npm:1.5.3" checksum: 2f54fa543b2e689cc4ab341fe2194937afe37c5ee43cd782e6ecc184e36859e84d4197a43ae4cd6e9a56f793ca7c5b950dfff3f16fadaeef9b6b88b05c88c8ef @@ -25208,14 +24911,14 @@ __metadata: linkType: hard "unplugin@npm:^1.3.1": - version: 1.10.1 - resolution: "unplugin@npm:1.10.1" + version: 1.11.0 + resolution: "unplugin@npm:1.11.0" dependencies: acorn: ^8.11.3 chokidar: ^3.6.0 webpack-sources: ^3.2.3 webpack-virtual-modules: ^0.6.1 - checksum: cc9b0814a30775e8ac6555ace396562fbafca2c5dbf51cdaf6c008a3ae14080ce0434695525c3dc13ddfc468b539e936815fed15f8e818a573b0af3b0462457d + checksum: b99ed2d0078fa49e81f5280e9cce58ce6ab2bd36700b4b5e02cafced96ef213ca1c6ed86cf95ef47ae3eda93cb4f79903927ec4f2068da302bd815f7c579aebc languageName: node linkType: hard @@ -25245,8 +24948,8 @@ __metadata: linkType: hard "update-browserslist-db@npm:^1.0.16": - version: 1.0.16 - resolution: "update-browserslist-db@npm:1.0.16" + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" dependencies: escalade: ^3.1.2 picocolors: ^1.0.1 @@ -25254,7 +24957,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 51b1f7189c9ea5925c80154b0a6fd3ec36106d07858d8f69826427d8edb4735d1801512c69eade38ba0814d7407d11f400d74440bbf3da0309f3d788017f35b2 + checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 languageName: node linkType: hard @@ -25294,9 +24997,9 @@ __metadata: languageName: node linkType: hard -"use-callback-ref@npm:^1.3.0, use-callback-ref@npm:^1.3.2": - version: 1.3.2 - resolution: "use-callback-ref@npm:1.3.2" +"use-callback-ref@npm:^1.3.0": + version: 1.3.0 + resolution: "use-callback-ref@npm:1.3.0" dependencies: tslib: ^2.0.0 peerDependencies: @@ -25305,7 +25008,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: df690f2032d56aabcea0400313a04621429f45bceb4d65d38829b3680cae3856470ce72958cb7224b332189d8faef54662a283c0867dd7c769f9a5beff61787d + checksum: 7913df383a5a6fcb399212eedefaac2e0c6f843555202d4e3010bac3848afe38ecaa3d0d6500ad1d936fbeffd637e6c517e68edb024af5e6beca7f27f3ce7b21 languageName: node linkType: hard @@ -25544,46 +25247,6 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.3.3": - version: 5.3.3 - resolution: "vite@npm:5.3.3" - dependencies: - esbuild: ^0.21.3 - fsevents: ~2.3.3 - postcss: ^8.4.39 - rollup: ^4.13.0 - peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 1a54b678c03b52be934b0db95295aa573819063fad9e13f148936cfc4006d081a6790fdd2dbe111b09b75b9a8d49f15e0788c58b86156d238ab3a0c1cc1a941f - languageName: node - linkType: hard - "vm-browserify@npm:^1.0.0, vm-browserify@npm:^1.0.1, vm-browserify@npm:^1.1.2": version: 1.1.2 resolution: "vm-browserify@npm:1.1.2" @@ -25631,7 +25294,7 @@ __metadata: languageName: node linkType: hard -"watchpack@npm:^2.2.0, watchpack@npm:^2.4.1": +"watchpack@npm:^2.2.0, watchpack@npm:^2.4.0": version: 2.4.1 resolution: "watchpack@npm:2.4.1" dependencies: @@ -25889,13 +25552,12 @@ __metadata: linkType: hard "webpack-merge@npm:^5.7.3, webpack-merge@npm:^5.9.0": - version: 5.10.0 - resolution: "webpack-merge@npm:5.10.0" + version: 5.9.0 + resolution: "webpack-merge@npm:5.9.0" dependencies: clone-deep: ^4.0.1 - flat: ^5.0.2 wildcard: ^2.0.0 - checksum: 1fe8bf5309add7298e1ac72fb3f2090e1dfa80c48c7e79fa48aa60b5961332c7d0d61efa8851acb805e6b91a4584537a347bc106e05e9aec87fa4f7088c62f2f + checksum: 64fe2c23aacc5f19684452a0e84ec02c46b990423aee6fcc5c18d7d471155bd14e9a6adb02bd3656eb3e0ac2532c8e97d69412ad14c97eeafe32fa6d10050872 languageName: node linkType: hard @@ -25914,39 +25576,39 @@ __metadata: linkType: hard "webpack@npm:^5.88.0": - version: 5.92.1 - resolution: "webpack@npm:5.92.1" + version: 5.88.0 + resolution: "webpack@npm:5.88.0" dependencies: "@types/eslint-scope": ^3.7.3 - "@types/estree": ^1.0.5 - "@webassemblyjs/ast": ^1.12.1 - "@webassemblyjs/wasm-edit": ^1.12.1 - "@webassemblyjs/wasm-parser": ^1.12.1 + "@types/estree": ^1.0.0 + "@webassemblyjs/ast": ^1.11.5 + "@webassemblyjs/wasm-edit": ^1.11.5 + "@webassemblyjs/wasm-parser": ^1.11.5 acorn: ^8.7.1 - acorn-import-attributes: ^1.9.5 - browserslist: ^4.21.10 + acorn-import-assertions: ^1.9.0 + browserslist: ^4.14.5 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.17.0 + enhanced-resolve: ^5.15.0 es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.11 + graceful-fs: ^4.2.9 json-parse-even-better-errors: ^2.3.1 loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 schema-utils: ^3.2.0 tapable: ^2.1.1 - terser-webpack-plugin: ^5.3.10 - watchpack: ^2.4.1 + terser-webpack-plugin: ^5.3.7 + watchpack: ^2.4.0 webpack-sources: ^3.2.3 peerDependenciesMeta: webpack-cli: optional: true bin: webpack: bin/webpack.js - checksum: 11bec781260c4180883e98a4a15a08df297aca654ded45e70598f688881dd722f992d680addafe6f6342debede345cddcce2b781c50f5cde29d6c0bc33a82452 + checksum: 9fd1568b34ec2e99ba97c8509a15ab2576ec80c396e7015551ec814b24cfc11de173acba3e114dafe95f1a6d460781b09d6201e6a1fb15110e1d01a09f61a283 languageName: node linkType: hard @@ -26237,8 +25899,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3, ws@npm:^8.8.0": - version: 8.17.1 - resolution: "ws@npm:8.17.1" + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -26247,7 +25909,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 442badcce1f1178ec87a0b5372ae2e9771e07c4929a3180321901f226127f252441e8689d765aa5cfba5f50ac60dd830954afc5aeae81609aefa11d3ddf5cecf + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard From 62d052de496d5a36f449ecaddd89bec1f1454739 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Sat, 6 Jul 2024 12:29:34 +0200 Subject: [PATCH 21/26] Fix some tests --- .../packages/json-rpc/snap.manifest.json | 2 +- .../src/__snapshots__/plugin.test.ts.snap | 2 +- packages/snaps-cli/src/__mocks__/fs.ts | 1 + packages/snaps-sdk/.depcheckrc.json | 1 + packages/snaps-sdk/package.json | 1 - packages/snaps-storybook/jest.config.js | 56 +++++-------------- packages/snaps-storybook/package.json | 1 + packages/snaps-utils/src/post-process.test.ts | 4 +- yarn.lock | 3 +- 9 files changed, 24 insertions(+), 47 deletions(-) diff --git a/packages/examples/packages/json-rpc/snap.manifest.json b/packages/examples/packages/json-rpc/snap.manifest.json index 47371a682b..dfc52fefc2 100644 --- a/packages/examples/packages/json-rpc/snap.manifest.json +++ b/packages/examples/packages/json-rpc/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "3F5KdhaTzO0rYEAOJ9Y7Q0COWJqXOqcyTkG0FqdZ05s=", + "shasum": "W+ulyMm/r+ExAYs52MITLfxJEm0s8AZGogXQANgUr/w=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/snaps-browserify-plugin/src/__snapshots__/plugin.test.ts.snap b/packages/snaps-browserify-plugin/src/__snapshots__/plugin.test.ts.snap index 31390990d2..e3dbf604df 100644 --- a/packages/snaps-browserify-plugin/src/__snapshots__/plugin.test.ts.snap +++ b/packages/snaps-browserify-plugin/src/__snapshots__/plugin.test.ts.snap @@ -108,7 +108,7 @@ exports[`plugin generates a source map 1`] = ` }; }, {}] }, {}, [1]); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyIiwiZSIsIm4iLCJ0IiwibyIsImkiLCJmIiwiYyIsInJlcXVpcmUiLCJ1IiwiYSIsIkVycm9yIiwiY29kZSIsInAiLCJleHBvcnRzIiwiY2FsbCIsImxlbmd0aCIsIm1vZHVsZSIsIm9uUnBjUmVxdWVzdCIsInJlcXVlc3QiLCJjb25zb2xlIiwibG9nIiwibWV0aG9kIiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi9ub2RlX21vZHVsZXMvYnJvd3Nlci1wYWNrL19wcmVsdWRlLmpzIiwiX3N0cmVhbV8wLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJcbiAgbW9kdWxlLmV4cG9ydHMub25ScGNSZXF1ZXN0ID0gKHsgcmVxdWVzdCB9KSA9PiB7XG4gICAgY29uc29sZS5sb2coXCJIZWxsbywgd29ybGQhXCIpO1xuXG4gICAgY29uc3QgeyBtZXRob2QsIGlkIH0gPSByZXF1ZXN0O1xuICAgIHJldHVybiBtZXRob2QgKyBpZDtcbiAgfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7RUFBQSxTQUFBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQTtJQUFBLFNBQUFDLEVBQUFDLENBQUEsRUFBQUMsQ0FBQTtNQUFBLEtBQUFKLENBQUEsQ0FBQUcsQ0FBQTtRQUFBLEtBQUFKLENBQUEsQ0FBQUksQ0FBQTtVQUFBLElBQUFFLENBQUEsd0JBQUFDLE9BQUEsSUFBQUEsT0FBQTtVQUFBLEtBQUFGLENBQUEsSUFBQUMsQ0FBQSxTQUFBQSxDQUFBLENBQUFGLENBQUE7VUFBQSxJQUFBSSxDQUFBLFNBQUFBLENBQUEsQ0FBQUosQ0FBQTtVQUFBLElBQUFLLENBQUEsT0FBQUMsS0FBQSwwQkFBQU4sQ0FBQTtVQUFBLE1BQUFLLENBQUEsQ0FBQUUsSUFBQSx1QkFBQUYsQ0FBQTtRQUFBO1FBQUEsSUFBQUcsQ0FBQSxHQUFBWCxDQUFBLENBQUFHLENBQUE7VUFBQVMsT0FBQTtRQUFBO1FBQUFiLENBQUEsQ0FBQUksQ0FBQSxLQUFBVSxJQUFBLENBQUFGLENBQUEsQ0FBQUMsT0FBQSxZQUFBZCxDQUFBO1VBQUEsSUFBQUUsQ0FBQSxHQUFBRCxDQUFBLENBQUFJLENBQUEsS0FBQUwsQ0FBQTtVQUFBLE9BQUFJLENBQUEsQ0FBQUYsQ0FBQSxJQUFBRixDQUFBO1FBQUEsR0FBQWEsQ0FBQSxFQUFBQSxDQUFBLENBQUFDLE9BQUEsRUFBQWQsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQTtNQUFBO01BQUEsT0FBQUQsQ0FBQSxDQUFBRyxDQUFBLEVBQUFTLE9BQUE7SUFBQTtJQUFBLFNBQUFMLENBQUEsd0JBQUFELE9BQUEsSUFBQUEsT0FBQSxFQUFBSCxDQUFBLE1BQUFBLENBQUEsR0FBQUYsQ0FBQSxDQUFBYSxNQUFBLEVBQUFYLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLENBQUFFLENBQUE7SUFBQSxPQUFBRCxDQUFBO0VBQUE7RUFBQSxPQUFBSixDQUFBO0FBQUE7RUFBQSxjQUFBUSxPQUFBLEVBQUFTLE1BQUEsRUFBQUgsT0FBQTtJQ0NBRyxNQUFBLENBQUFILE9BQUEsQ0FBQUksWUFBQTtNQUFBQztJQUFBO01BQ0FDLE9BQUEsQ0FBQUMsR0FBQTtNQUVBO1FBQUFDLE1BQUE7UUFBQUM7TUFBQSxJQUFBSixPQUFBO01BQ0EsT0FBQUcsTUFBQSxHQUFBQyxFQUFBO0lBQ0EifQ==" +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyIiwiZSIsIm4iLCJ0IiwibyIsImkiLCJmIiwiYyIsInJlcXVpcmUiLCJ1IiwiYSIsIkVycm9yIiwiY29kZSIsInAiLCJleHBvcnRzIiwiY2FsbCIsImxlbmd0aCIsIm1vZHVsZSIsIm9uUnBjUmVxdWVzdCIsInJlcXVlc3QiLCJjb25zb2xlIiwibG9nIiwibWV0aG9kIiwiaWQiXSwic291cmNlcyI6WyIuLi8uLi9ub2RlX21vZHVsZXMvYnJvd3Nlci1wYWNrL19wcmVsdWRlLmpzIiwiX3N0cmVhbV8wLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCJcbiAgbW9kdWxlLmV4cG9ydHMub25ScGNSZXF1ZXN0ID0gKHsgcmVxdWVzdCB9KSA9PiB7XG4gICAgY29uc29sZS5sb2coXCJIZWxsbywgd29ybGQhXCIpO1xuXG4gICAgY29uc3QgeyBtZXRob2QsIGlkIH0gPSByZXF1ZXN0O1xuICAgIHJldHVybiBtZXRob2QgKyBpZDtcbiAgfTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7RUFBQSxTQUFBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQTtJQUFBLFNBQUFDLEVBQUFDLENBQUEsRUFBQUMsQ0FBQTtNQUFBLEtBQUFKLENBQUEsQ0FBQUcsQ0FBQTtRQUFBLEtBQUFKLENBQUEsQ0FBQUksQ0FBQTtVQUFBLElBQUFFLENBQUEsd0JBQUFDLE9BQUEsSUFBQUEsT0FBQTtVQUFBLEtBQUFGLENBQUEsSUFBQUMsQ0FBQSxTQUFBQSxDQUFBLENBQUFGLENBQUE7VUFBQSxJQUFBSSxDQUFBLFNBQUFBLENBQUEsQ0FBQUosQ0FBQTtVQUFBLElBQUFLLENBQUEsT0FBQUMsS0FBQSwwQkFBQU4sQ0FBQTtVQUFBLE1BQUFLLENBQUEsQ0FBQUUsSUFBQSx1QkFBQUYsQ0FBQTtRQUFBO1FBQUEsSUFBQUcsQ0FBQSxHQUFBWCxDQUFBLENBQUFHLENBQUE7VUFBQVMsT0FBQTtRQUFBO1FBQUFiLENBQUEsQ0FBQUksQ0FBQSxLQUFBVSxJQUFBLENBQUFGLENBQUEsQ0FBQUMsT0FBQSxZQUFBZCxDQUFBO1VBQUEsSUFBQUUsQ0FBQSxHQUFBRCxDQUFBLENBQUFJLENBQUEsS0FBQUwsQ0FBQTtVQUFBLE9BQUFJLENBQUEsQ0FBQUYsQ0FBQSxJQUFBRixDQUFBO1FBQUEsR0FBQWEsQ0FBQSxFQUFBQSxDQUFBLENBQUFDLE9BQUEsRUFBQWQsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQTtNQUFBO01BQUEsT0FBQUQsQ0FBQSxDQUFBRyxDQUFBLEVBQUFTLE9BQUE7SUFBQTtJQUFBLFNBQUFMLENBQUEsd0JBQUFELE9BQUEsSUFBQUEsT0FBQSxFQUFBSCxDQUFBLE1BQUFBLENBQUEsR0FBQUYsQ0FBQSxDQUFBYSxNQUFBLEVBQUFYLENBQUEsSUFBQUQsQ0FBQSxDQUFBRCxDQUFBLENBQUFFLENBQUE7SUFBQSxPQUFBRCxDQUFBO0VBQUE7RUFBQSxPQUFBSixDQUFBO0FBQUE7RUFBQSxjQUFBUSxPQUFBLEVBQUFTLE1BQUEsRUFBQUgsT0FBQTtJQ0NBRyxNQUFBLENBQUFILE9BQUEsQ0FBQUksWUFBQTtNQUFBQztJQUFBO01BQ0FDLE9BQUEsQ0FBQUMsR0FBQTtNQUVBO1FBQUFDLE1BQUE7UUFBQUM7TUFBQSxJQUFBSixPQUFBO01BQ0EsT0FBQUcsTUFBQSxHQUFBQyxFQUFBO0lBQ0EiLCJpZ25vcmVMaXN0IjpbXX0=" `; exports[`plugin processes files using Browserify 1`] = ` diff --git a/packages/snaps-cli/src/__mocks__/fs.ts b/packages/snaps-cli/src/__mocks__/fs.ts index 47f3c10b0d..c77915752d 100644 --- a/packages/snaps-cli/src/__mocks__/fs.ts +++ b/packages/snaps-cli/src/__mocks__/fs.ts @@ -9,6 +9,7 @@ const { join, dirname } = jest.requireActual('path'); // to provide the files it's looking for. const BROWSERIFY_FILES = [ /* eslint-disable n/no-extraneous-require */ + join(dirname(require.resolve('core-js-compat')), 'data.json'), join(dirname(require.resolve('is-core-module/package.json')), 'core.json'), join(dirname(require.resolve('browser-pack/package.json')), '_prelude.js'), /* eslint-enable n/no-extraneous-require */ diff --git a/packages/snaps-sdk/.depcheckrc.json b/packages/snaps-sdk/.depcheckrc.json index 15d64e734b..5cad348f10 100644 --- a/packages/snaps-sdk/.depcheckrc.json +++ b/packages/snaps-sdk/.depcheckrc.json @@ -5,6 +5,7 @@ "@lavamoat/preinstall-always-fail", "@metamask/auto-changelog", "@metamask/eslint-*", + "@storybook/addon-controls", "@types/*", "@typescript-eslint/*", "eslint-config-*", diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index 7ffddd2aea..b0eeb5000a 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -76,7 +76,6 @@ "@metamask/eslint-config-typescript": "^12.1.0", "@metamask/snaps-storybook": "workspace:^", "@storybook/addon-controls": "^8.1.11", - "@storybook/blocks": "^8.1.11", "@swc/core": "1.3.78", "@types/jest": "^27.5.1", "@typescript-eslint/eslint-plugin": "^5.42.1", diff --git a/packages/snaps-storybook/jest.config.js b/packages/snaps-storybook/jest.config.js index cde979cb23..9b0ecd7dea 100644 --- a/packages/snaps-storybook/jest.config.js +++ b/packages/snaps-storybook/jest.config.js @@ -1,5 +1,4 @@ const deepmerge = require('deepmerge'); -const { resolve } = require('path'); const baseConfig = require('../../jest.config.base'); @@ -12,48 +11,23 @@ module.exports = deepmerge(baseConfig, { coverageThreshold: { global: { - branches: 100, - functions: 100, - lines: 100, - statements: 100, + branches: 21.48, + functions: 15.32, + lines: 16.29, + statements: 16.11, }, }, - projects: [ - { - testMatch: [ - '/src/jsx/validation.test.tsx', - '/src/jsx/jsx-runtime.test.tsx', - ], - transform: { - '^.+\\.(t|j)sx?$': [ - 'ts-jest', - { - tsconfig: { - jsx: 'react-jsx', - jsxImportSource: 'react', - }, - }, - ], + testMatch: ['/**/*.test.ts', '/**/*.test.tsx'], + transform: { + '^.+\\.(t|j)sx?$': [ + 'ts-jest', + { + tsconfig: { + jsx: 'react-jsxdev', + jsxImportSource: '@metamask/snaps-jsx', + }, }, - }, - { - testMatch: ['/**/*.test.ts', '/**/*.test.tsx'], - testPathIgnorePatterns: [ - '/src/jsx/validation.test.tsx', - '/src/jsx/jsx-runtime.test.tsx', - ], - transform: { - '^.+\\.(t|j)sx?$': [ - 'ts-jest', - { - tsconfig: { - jsx: 'react-jsxdev', - jsxImportSource: resolve(__dirname, './src/jsx'), - }, - }, - ], - }, - }, - ], + ], + }, }); diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index 425ab27600..8f0f507241 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -28,6 +28,7 @@ ], "scripts": { "test": "jest && yarn posttest", + "test:ci": "yarn test", "posttest": "jest-it-up --margin 0.25", "clean": "rimraf '*.tsbuildinfo' 'dist'", "start": "storybook dev --port 7000 --no-open", diff --git a/packages/snaps-utils/src/post-process.test.ts b/packages/snaps-utils/src/post-process.test.ts index a84761b7fa..d89fe49cbb 100644 --- a/packages/snaps-utils/src/post-process.test.ts +++ b/packages/snaps-utils/src/post-process.test.ts @@ -413,6 +413,7 @@ describe('postProcessBundle', () => { "code": "const foo = 'bar';", "sourceMap": { "file": undefined, + "ignoreList": [], "mappings": "AACM,MAAMA,GAAG,GAAG,KAAK", "names": [ "foo", @@ -445,7 +446,7 @@ describe('postProcessBundle', () => { expect(processedCode).toMatchInlineSnapshot(` { "code": "const foo = 'bar'; - //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb28iXSwic291cmNlcyI6WyJ1bmtub3duIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICAgY29uc3QgZm9vID0gJ2Jhcic7XG4gICAgIl0sIm1hcHBpbmdzIjoiQUFDTSxNQUFNQSxHQUFHLEdBQUcsS0FBSyJ9", + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb28iXSwic291cmNlcyI6WyJ1bmtub3duIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICAgY29uc3QgZm9vID0gJ2Jhcic7XG4gICAgIl0sIm1hcHBpbmdzIjoiQUFDTSxNQUFNQSxHQUFHLEdBQUcsS0FBSyIsImlnbm9yZUxpc3QiOltdfQ==", "sourceMap": null, "warnings": [], } @@ -486,6 +487,7 @@ describe('postProcessBundle', () => { exports.foo = 'bar';", "sourceMap": { "file": undefined, + "ignoreList": [], "mappings": ";;;;;AAAaA,OAAG,CAAGC,GAAA,GAAM", "names": [ "exports", diff --git a/yarn.lock b/yarn.lock index d39ae5d587..02f65e11b9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6297,7 +6297,6 @@ __metadata: "@metamask/snaps-storybook": "workspace:^" "@metamask/utils": ^8.3.0 "@storybook/addon-controls": ^8.1.11 - "@storybook/blocks": ^8.1.11 "@swc/core": 1.3.78 "@types/jest": ^27.5.1 "@typescript-eslint/eslint-plugin": ^5.42.1 @@ -7962,7 +7961,7 @@ __metadata: languageName: node linkType: hard -"@storybook/blocks@npm:8.1.11, @storybook/blocks@npm:^8.1.11": +"@storybook/blocks@npm:8.1.11": version: 8.1.11 resolution: "@storybook/blocks@npm:8.1.11" dependencies: From 3ab235167dd55d9914678a128d43ef7eb6dcc851 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Sat, 6 Jul 2024 12:34:55 +0200 Subject: [PATCH 22/26] Fix some lint issues --- packages/snaps-cli/.depcheckrc.json | 1 + packages/snaps-sdk/package.json | 1 + packages/snaps-storybook/package.json | 2 +- yarn.lock | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/snaps-cli/.depcheckrc.json b/packages/snaps-cli/.depcheckrc.json index 7b43678e53..3ff0569a63 100644 --- a/packages/snaps-cli/.depcheckrc.json +++ b/packages/snaps-cli/.depcheckrc.json @@ -11,6 +11,7 @@ "assert", "browser-pack", "buffer", + "core-js-compat", "eslint-config-*", "eslint-plugin-*", "events", diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index b0eeb5000a..0ec5e7abba 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -76,6 +76,7 @@ "@metamask/eslint-config-typescript": "^12.1.0", "@metamask/snaps-storybook": "workspace:^", "@storybook/addon-controls": "^8.1.11", + "@storybook/types": "^8.1.11", "@swc/core": "1.3.78", "@types/jest": "^27.5.1", "@typescript-eslint/eslint-plugin": "^5.42.1", diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index 8f0f507241..e4e3ccfd6a 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -28,8 +28,8 @@ ], "scripts": { "test": "jest && yarn posttest", - "test:ci": "yarn test", "posttest": "jest-it-up --margin 0.25", + "test:ci": "yarn test", "clean": "rimraf '*.tsbuildinfo' 'dist'", "start": "storybook dev --port 7000 --no-open", "build": "tsup --clean && yarn build:types", diff --git a/yarn.lock b/yarn.lock index 02f65e11b9..676ba2ccf2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6297,6 +6297,7 @@ __metadata: "@metamask/snaps-storybook": "workspace:^" "@metamask/utils": ^8.3.0 "@storybook/addon-controls": ^8.1.11 + "@storybook/types": ^8.1.11 "@swc/core": 1.3.78 "@types/jest": ^27.5.1 "@typescript-eslint/eslint-plugin": ^5.42.1 From aea24ecee629f3c888c241d1008c434d99ea6de1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Sat, 6 Jul 2024 12:46:18 +0200 Subject: [PATCH 23/26] Fix tests for Key --- packages/snaps-sdk/src/jsx/validation.test.tsx | 4 ++-- packages/snaps-sdk/src/jsx/validation.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/snaps-sdk/src/jsx/validation.test.tsx b/packages/snaps-sdk/src/jsx/validation.test.tsx index 9cb0c285ef..e1190dafda 100644 --- a/packages/snaps-sdk/src/jsx/validation.test.tsx +++ b/packages/snaps-sdk/src/jsx/validation.test.tsx @@ -61,11 +61,11 @@ import { } from './validation'; describe('KeyStruct', () => { - it.each(['foo', 42])('validates a key', (value) => { + it.each(['foo', 'bar'])('validates a key', (value) => { expect(is(value, KeyStruct)).toBe(true); }); - it.each([null, undefined, {}, []])('does not validate "%p"', (value) => { + it.each([42, null, undefined, {}, []])('does not validate "%p"', (value) => { expect(is(value, KeyStruct)).toBe(false); }); }); diff --git a/packages/snaps-sdk/src/jsx/validation.ts b/packages/snaps-sdk/src/jsx/validation.ts index 73cfdf101e..e7b026a95f 100644 --- a/packages/snaps-sdk/src/jsx/validation.ts +++ b/packages/snaps-sdk/src/jsx/validation.ts @@ -68,7 +68,7 @@ import type { /** * A struct for the {@link Key} type. */ -export const KeyStruct: Describe = nullUnion([string()]); +export const KeyStruct: Describe = string(); /** * A struct for the {@link StringElement} type. From 3762885cfb0a3a538c237d285ee7dfad00136dbe Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Sat, 6 Jul 2024 14:01:38 +0200 Subject: [PATCH 24/26] Fix more dependencies --- packages/snaps-storybook/.depcheckrc.json | 1 + packages/snaps-storybook/package.json | 1 - yarn.lock | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/snaps-storybook/.depcheckrc.json b/packages/snaps-storybook/.depcheckrc.json index fd94a9a21d..8b8db0958b 100644 --- a/packages/snaps-storybook/.depcheckrc.json +++ b/packages/snaps-storybook/.depcheckrc.json @@ -12,6 +12,7 @@ "eslint-config-*", "eslint-plugin-*", "prettier-plugin-packagejson", + "ts-jest", "ts-node", "typedoc", "typescript" diff --git a/packages/snaps-storybook/package.json b/packages/snaps-storybook/package.json index e4e3ccfd6a..5607280abd 100644 --- a/packages/snaps-storybook/package.json +++ b/packages/snaps-storybook/package.json @@ -45,7 +45,6 @@ "lint:ci": "yarn lint" }, "dependencies": { - "@babel/core": "^7.23.2", "@babel/generator": "^7.24.7", "@babel/parser": "^7.24.7", "@babel/traverse": "^7.24.7", diff --git a/yarn.lock b/yarn.lock index 676ba2ccf2..d2356673c0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6442,7 +6442,6 @@ __metadata: version: 0.0.0-use.local resolution: "@metamask/snaps-storybook@workspace:packages/snaps-storybook" dependencies: - "@babel/core": ^7.23.2 "@babel/generator": ^7.24.7 "@babel/parser": ^7.24.7 "@babel/traverse": ^7.24.7 From 128400fb7d2e42df4e1bc8f12a204bbbb255d43e Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 9 Jul 2024 12:45:29 +0200 Subject: [PATCH 25/26] Remove direct dependency in `snaps-sdk` on `snaps-storybook` --- packages/examples/packages/bip32/snap.manifest.json | 2 +- packages/examples/packages/bip44/snap.manifest.json | 2 +- .../examples/packages/browserify-plugin/snap.manifest.json | 2 +- packages/examples/packages/browserify/snap.manifest.json | 2 +- packages/examples/packages/client-status/snap.manifest.json | 2 +- packages/examples/packages/cronjobs/snap.manifest.json | 2 +- packages/examples/packages/dialogs/snap.manifest.json | 2 +- .../examples/packages/ethereum-provider/snap.manifest.json | 2 +- packages/examples/packages/ethers-js/snap.manifest.json | 2 +- packages/examples/packages/file-upload/snap.manifest.json | 2 +- packages/examples/packages/get-entropy/snap.manifest.json | 2 +- packages/examples/packages/get-file/snap.manifest.json | 2 +- packages/examples/packages/home-page/snap.manifest.json | 2 +- packages/examples/packages/images/snap.manifest.json | 2 +- packages/examples/packages/interactive-ui/snap.manifest.json | 2 +- .../invoke-snap/packages/consumer-signer/snap.manifest.json | 2 +- .../invoke-snap/packages/core-signer/snap.manifest.json | 2 +- packages/examples/packages/json-rpc/snap.manifest.json | 2 +- packages/examples/packages/jsx/snap.manifest.json | 4 ++-- packages/examples/packages/lifecycle-hooks/snap.manifest.json | 2 +- packages/examples/packages/localization/snap.manifest.json | 2 +- packages/examples/packages/manage-state/snap.manifest.json | 2 +- packages/examples/packages/network-access/snap.manifest.json | 2 +- packages/examples/packages/notifications/snap.manifest.json | 2 +- packages/examples/packages/rollup-plugin/snap.manifest.json | 2 +- .../examples/packages/signature-insights/snap.manifest.json | 2 +- .../examples/packages/transaction-insights/snap.manifest.json | 2 +- packages/examples/packages/wasm/snap.manifest.json | 2 +- packages/examples/packages/webpack-plugin/snap.manifest.json | 2 +- packages/snaps-sdk/package.json | 1 - yarn.lock | 3 +-- 31 files changed, 31 insertions(+), 33 deletions(-) diff --git a/packages/examples/packages/bip32/snap.manifest.json b/packages/examples/packages/bip32/snap.manifest.json index 01bb717540..acd9302f62 100644 --- a/packages/examples/packages/bip32/snap.manifest.json +++ b/packages/examples/packages/bip32/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "WfupwVnHUswiO0x/o2coJ0oj85v1x0j7wx1c5lYxP+o=", + "shasum": "NomZRuPMP0ibDai9Trz+ShTP52To2ogo+2In7fVh+J0=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/bip44/snap.manifest.json b/packages/examples/packages/bip44/snap.manifest.json index 9227bb7049..86c7ee0415 100644 --- a/packages/examples/packages/bip44/snap.manifest.json +++ b/packages/examples/packages/bip44/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "+WhZ7cQ8dqA46bL5kzblh/1+GRShg87VtAS5N8N8+bU=", + "shasum": "EH5AWIvAGQuFsCEZCLgskmdExwwr8spTTvvEHZ4RiQA=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/browserify-plugin/snap.manifest.json b/packages/examples/packages/browserify-plugin/snap.manifest.json index 9375e7acb6..1e6c457961 100644 --- a/packages/examples/packages/browserify-plugin/snap.manifest.json +++ b/packages/examples/packages/browserify-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "cvVZ8a8g9/b3tXhh9d1zf1GU11WvqcwVnR90ilpGSGw=", + "shasum": "AK0uWGbXpxl+kTJd1u9ZC7yf92dM3sTH75YPJNWyveE=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/browserify/snap.manifest.json b/packages/examples/packages/browserify/snap.manifest.json index 8036034a6d..8b5fd8e60d 100644 --- a/packages/examples/packages/browserify/snap.manifest.json +++ b/packages/examples/packages/browserify/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "fuKiL65m1QakTuad3sCbK8YzRLNgVb9o/gSg80FK4RE=", + "shasum": "ktCtBx1p0e3agXkJG2iBqZeynvnPKInXNTUVJpKs8M8=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/client-status/snap.manifest.json b/packages/examples/packages/client-status/snap.manifest.json index 72b5268f16..5d7a6c256f 100644 --- a/packages/examples/packages/client-status/snap.manifest.json +++ b/packages/examples/packages/client-status/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "I8VkGGWoxhalUw5IIncvCY/InJ15yst1MTnICJ6jUZ4=", + "shasum": "ROES6RVy9ejIET+XIfSp/yinhE4VUDZaoKQgdHKev6Y=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/cronjobs/snap.manifest.json b/packages/examples/packages/cronjobs/snap.manifest.json index 43edc28bdf..2a9f626886 100644 --- a/packages/examples/packages/cronjobs/snap.manifest.json +++ b/packages/examples/packages/cronjobs/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "bt0ymBAUIDJC0ksow6/BO2+TCm8l5f4I7myCg/tXJfc=", + "shasum": "/YIFmpd6e+pYp6Aa/c9Iv8gBSRGtLeOMcJzjh+/6GUw=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/dialogs/snap.manifest.json b/packages/examples/packages/dialogs/snap.manifest.json index b075fc627a..483c35e3d8 100644 --- a/packages/examples/packages/dialogs/snap.manifest.json +++ b/packages/examples/packages/dialogs/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "P87ZOtKfVhN78E9zEw5fTGWhgKG0assHA1MZQNAZ0Xk=", + "shasum": "j8iFb7SisanOBPMem7ZVCFv6Lf/2r6x3HKLxh7uDWNo=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/ethereum-provider/snap.manifest.json b/packages/examples/packages/ethereum-provider/snap.manifest.json index fa8141d3db..8fc7a3fc64 100644 --- a/packages/examples/packages/ethereum-provider/snap.manifest.json +++ b/packages/examples/packages/ethereum-provider/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "sNKcZWHKrpSkWmsHD9nw4SNjuYehxTTXI+PhF0PAyP4=", + "shasum": "owUFr66MLBemx+4zCreyyR3I2UHdFXkMLTQBjwFC2B0=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/ethers-js/snap.manifest.json b/packages/examples/packages/ethers-js/snap.manifest.json index 1d47aba947..6fdebcc052 100644 --- a/packages/examples/packages/ethers-js/snap.manifest.json +++ b/packages/examples/packages/ethers-js/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "y9N2+eSpLMWFxoH+gmVT9u7oR95EP8QaYnlFNowAdZE=", + "shasum": "R6lbz4kTEsEac5uHl7VhS8sFmxLRCWQ18XxFxb35w8o=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/file-upload/snap.manifest.json b/packages/examples/packages/file-upload/snap.manifest.json index 42c5c2c58a..fad9fabc3d 100644 --- a/packages/examples/packages/file-upload/snap.manifest.json +++ b/packages/examples/packages/file-upload/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "GeSSonGmFmVw2NPGOhmX2JQWzexQ/sLlCpXZzoNACIM=", + "shasum": "EVttNDW8DakMBmMZG24BQLLkkVJzRva+WsbvxkUzbB0=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/get-entropy/snap.manifest.json b/packages/examples/packages/get-entropy/snap.manifest.json index ed2353e8d1..c0c340b1d5 100644 --- a/packages/examples/packages/get-entropy/snap.manifest.json +++ b/packages/examples/packages/get-entropy/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "+Dq7vWhymZkiKZPixpzPOac9GYNFd3NXZmThe+RP5Rk=", + "shasum": "Z913E2CFpHKz56E9QxjXUgNvTAJqi6kV+JMzibTVV20=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/get-file/snap.manifest.json b/packages/examples/packages/get-file/snap.manifest.json index 6b5d699162..43ca5ff073 100644 --- a/packages/examples/packages/get-file/snap.manifest.json +++ b/packages/examples/packages/get-file/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "YONnSNnY1QXI799OnXcq7pOJ9mB2mf0TKA+hwrXei0M=", + "shasum": "cbQ++/UaPBWLbJ0P7OR/CMPPBVXbppHZ6G9LpjvGre4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/home-page/snap.manifest.json b/packages/examples/packages/home-page/snap.manifest.json index c73b1a2ac8..3a2b334374 100644 --- a/packages/examples/packages/home-page/snap.manifest.json +++ b/packages/examples/packages/home-page/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "A9oCcxfQ/Ze21a+qSjmFEMjpyJDZTXBEUF/eEtzr00g=", + "shasum": "icw5/1FfzcEwDwo5ckH9j2RZrwqsikbfHfZFoeOtl9U=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/images/snap.manifest.json b/packages/examples/packages/images/snap.manifest.json index add7df61c4..0c4f45ea7d 100644 --- a/packages/examples/packages/images/snap.manifest.json +++ b/packages/examples/packages/images/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "QpOZlqHNXUWxJEkcks0CEg15OO3HSximP79r+3hronM=", + "shasum": "9T6WRWeazyc1/0yEVyRnM5jNnOmQJ+ghGlPpJG34ns8=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/interactive-ui/snap.manifest.json b/packages/examples/packages/interactive-ui/snap.manifest.json index 5c8f02d5e1..d0425b5b14 100644 --- a/packages/examples/packages/interactive-ui/snap.manifest.json +++ b/packages/examples/packages/interactive-ui/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "Ko9xBAU/AMTQmdJHIKVaXEvIMRKil4LMaFj+3gS3eZo=", + "shasum": "OsXMcZoDQl7iI5MsPjP3BNja8bwmqx0KWeerhgu9uv4=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json b/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json index db046d352f..a1a84232ee 100644 --- a/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json +++ b/packages/examples/packages/invoke-snap/packages/consumer-signer/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "cRsMxa73YE9a7rrLfAvqWkL7LtqDCt1KQifgF4bA/YA=", + "shasum": "6i0cbxc4InNv5sqlovvEGqWS/LEOxOo1tltnxXwSmAA=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json b/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json index 4ad17151e9..8c524d939f 100644 --- a/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json +++ b/packages/examples/packages/invoke-snap/packages/core-signer/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "o4UgAxX2mrxEIUbi2og85R/dECjjg+q51X0t1x8KXb4=", + "shasum": "jzu42bAEI/u9ZvL5Bs2oSQjpbQqCwECra7Gl2xbENq8=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/json-rpc/snap.manifest.json b/packages/examples/packages/json-rpc/snap.manifest.json index dfc52fefc2..00b91384aa 100644 --- a/packages/examples/packages/json-rpc/snap.manifest.json +++ b/packages/examples/packages/json-rpc/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "W+ulyMm/r+ExAYs52MITLfxJEm0s8AZGogXQANgUr/w=", + "shasum": "AcAtgVSzcnGdQ9N8Ux+7+WosCTpJce4WtGoWR9i9p3g=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/jsx/snap.manifest.json b/packages/examples/packages/jsx/snap.manifest.json index 4d175f99e6..3c4c43ef48 100644 --- a/packages/examples/packages/jsx/snap.manifest.json +++ b/packages/examples/packages/jsx/snap.manifest.json @@ -1,5 +1,5 @@ { - "version": "1.1.0", + "version": "1.1.1", "description": "MetaMask example snap demonstrating the use of JSX for UI components.", "proposedName": "JSX Example Snap", "repository": { @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "21SHurFxkqSSML7EDePnsByVZitSpvYweBaNv4IrpjQ=", + "shasum": "Uxv/s5tfdz38+IaOPEftGQ2iLey0q+82YWAdU2yRams=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/lifecycle-hooks/snap.manifest.json b/packages/examples/packages/lifecycle-hooks/snap.manifest.json index 053f42c014..63295b22ad 100644 --- a/packages/examples/packages/lifecycle-hooks/snap.manifest.json +++ b/packages/examples/packages/lifecycle-hooks/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "Hpmj/t7F9hsI52wGOdI+ak3W8yYLsQAKDrwT5tVhnYg=", + "shasum": "8wTZindSCjvNZFF4Di6tX16RmrGcEdZf6/J1rzkwNXk=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/localization/snap.manifest.json b/packages/examples/packages/localization/snap.manifest.json index 6509b6bf1f..bf04b75fd5 100644 --- a/packages/examples/packages/localization/snap.manifest.json +++ b/packages/examples/packages/localization/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "wtOoGYeD+m/9PFLtyVgAEOLeJaZbmScyb5ovC1S4AWA=", + "shasum": "xvXSjRUQEzNRtv/jz0eh/xNqBdBeZZZKYMO5+Taa57I=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/manage-state/snap.manifest.json b/packages/examples/packages/manage-state/snap.manifest.json index 620898c380..9e79e4f3aa 100644 --- a/packages/examples/packages/manage-state/snap.manifest.json +++ b/packages/examples/packages/manage-state/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "3CUmmQR8Rm9YPrR2vYdg97SGUzUndQf3OgYrUzlvLI4=", + "shasum": "0hMR95zMr0Ot8EhfdigAdncOHAreBEEeEQzjTPhh0+M=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/network-access/snap.manifest.json b/packages/examples/packages/network-access/snap.manifest.json index febf56b2b8..5430c6f511 100644 --- a/packages/examples/packages/network-access/snap.manifest.json +++ b/packages/examples/packages/network-access/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "VDkYGW0UgbTFLVuhnjjbYCJvHlMaFRfklmdUK3wyl4w=", + "shasum": "acLRltL+gBNh+GBcl9lAAlGMzQlh1+lVEfKDuVlnO4Y=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/notifications/snap.manifest.json b/packages/examples/packages/notifications/snap.manifest.json index 6b5d15498a..80b94d5f05 100644 --- a/packages/examples/packages/notifications/snap.manifest.json +++ b/packages/examples/packages/notifications/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "6os9tFCmhv3HTapJ6Mzr5eG04r28c+hjgD/cLSDraEY=", + "shasum": "yG4JOx+Robak4/UMlxagPmNui1JcWxG1Bl7o3uMhmNM=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/rollup-plugin/snap.manifest.json b/packages/examples/packages/rollup-plugin/snap.manifest.json index db64fce1ce..d30a2ea722 100644 --- a/packages/examples/packages/rollup-plugin/snap.manifest.json +++ b/packages/examples/packages/rollup-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "rG0w/CpDp7pUUEYz6z6LB/t2UtOnLPq3tXNC0ZuI5p4=", + "shasum": "oh7TagRHUSLE5KbcnWmRlyUsPQpLq8F1BXxHaVv6lUA=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/signature-insights/snap.manifest.json b/packages/examples/packages/signature-insights/snap.manifest.json index 4be49df722..2f9af1ee03 100644 --- a/packages/examples/packages/signature-insights/snap.manifest.json +++ b/packages/examples/packages/signature-insights/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "3sWzEjRApKpX8lrHwPjB4f0kuvwx7o1ZiuPxqTrEl3s=", + "shasum": "CfuiBXwLR1+oiIytBM+mpVBfe42PvA5M9XLeaHKXNsw=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/transaction-insights/snap.manifest.json b/packages/examples/packages/transaction-insights/snap.manifest.json index e9b59740d1..19d5517278 100644 --- a/packages/examples/packages/transaction-insights/snap.manifest.json +++ b/packages/examples/packages/transaction-insights/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "h6yDf1EBo4mpSb1qqHGQiutSvuExPmtthseHyuXhsvQ=", + "shasum": "r+pwBkDbfvH4pUuB8qTx9P1lHUqSgRKDOkKc4VKj0Kc=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/wasm/snap.manifest.json b/packages/examples/packages/wasm/snap.manifest.json index 118c2f6141..f33ec12d2e 100644 --- a/packages/examples/packages/wasm/snap.manifest.json +++ b/packages/examples/packages/wasm/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "VWTxqVgjWnanv5fmejkDm5Gz+yiKveFROceWqIg6vi0=", + "shasum": "wFoNbBcqit/JLNuDO6ktG3Pk9/qSCyVIRkjmRf7cMR0=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/examples/packages/webpack-plugin/snap.manifest.json b/packages/examples/packages/webpack-plugin/snap.manifest.json index d0db864731..845419b9bd 100644 --- a/packages/examples/packages/webpack-plugin/snap.manifest.json +++ b/packages/examples/packages/webpack-plugin/snap.manifest.json @@ -7,7 +7,7 @@ "url": "https://github.com/MetaMask/snaps.git" }, "source": { - "shasum": "0PQHPzqWuahbPrh5XviC7NnEnRhA185kaAIdCZcOfqs=", + "shasum": "Y62p+2izgaCjaRg6FngcL42nIPT+GZ0q0dxvcyh3NR8=", "location": { "npm": { "filePath": "dist/bundle.js", diff --git a/packages/snaps-sdk/package.json b/packages/snaps-sdk/package.json index 0ec5e7abba..262d3bbc0b 100644 --- a/packages/snaps-sdk/package.json +++ b/packages/snaps-sdk/package.json @@ -74,7 +74,6 @@ "@metamask/eslint-config-jest": "^12.1.0", "@metamask/eslint-config-nodejs": "^12.1.0", "@metamask/eslint-config-typescript": "^12.1.0", - "@metamask/snaps-storybook": "workspace:^", "@storybook/addon-controls": "^8.1.11", "@storybook/types": "^8.1.11", "@swc/core": "1.3.78", diff --git a/yarn.lock b/yarn.lock index d2356673c0..4898223b7e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6294,7 +6294,6 @@ __metadata: "@metamask/key-tree": ^9.1.1 "@metamask/providers": ^17.0.0 "@metamask/rpc-errors": ^6.2.1 - "@metamask/snaps-storybook": "workspace:^" "@metamask/utils": ^8.3.0 "@storybook/addon-controls": ^8.1.11 "@storybook/types": ^8.1.11 @@ -6438,7 +6437,7 @@ __metadata: languageName: unknown linkType: soft -"@metamask/snaps-storybook@workspace:^, @metamask/snaps-storybook@workspace:packages/snaps-storybook": +"@metamask/snaps-storybook@workspace:packages/snaps-storybook": version: 0.0.0-use.local resolution: "@metamask/snaps-storybook@workspace:packages/snaps-storybook" dependencies: From b019ddeddade92955eb9239e133dada77c502dc1 Mon Sep 17 00:00:00 2001 From: Maarten Zuidhoorn Date: Tue, 9 Jul 2024 13:10:33 +0200 Subject: [PATCH 26/26] Add `snaps-storybook` to depcheck ignores --- packages/snaps-sdk/.depcheckrc.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/snaps-sdk/.depcheckrc.json b/packages/snaps-sdk/.depcheckrc.json index 5cad348f10..e660449b8b 100644 --- a/packages/snaps-sdk/.depcheckrc.json +++ b/packages/snaps-sdk/.depcheckrc.json @@ -5,6 +5,7 @@ "@lavamoat/preinstall-always-fail", "@metamask/auto-changelog", "@metamask/eslint-*", + "@metamask/snaps-storybook", "@storybook/addon-controls", "@types/*", "@typescript-eslint/*",