diff --git a/.changeset/config.json b/.changeset/config.json index 1a627285..8af578f8 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,5 +1,5 @@ { - "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json", + "$schema": "https://unpkg.com/@changesets/config@3.0.2/schema.json", "changelog": [ "@changesets/changelog-github", { @@ -12,9 +12,5 @@ "access": "public", "baseBranch": "main", "updateInternalDependencies": "patch", - "ignore": [ - "unocss-sample-app", - "@icestack/storybook", - "@icestack/website" - ] -} \ No newline at end of file + "ignore": [] +} diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..958b26c9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +node_modules +.git +.gitignore +*.md +dist \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index f96eb20a..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - root: true, - extends: ['icebreaker', 'plugin:prettier/recommended'] -} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..17f3b340 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,218 @@ +# From https://github.com/gitattributes/gitattributes/blob/master/Web.gitattributes +## GITATTRIBUTES FOR WEB PROJECTS +# +# These settings are for any web project. +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +###################################################################### + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.mjs text +*.cjs text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +.husky/* text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text eol=lf +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +*.dot text +*.ejs text +*.erb text +*.haml text +*.handlebars text +*.hbs text +*.hbt text +*.jade text +*.latte text +*.mustache text +*.njk text +*.phtml text +*.svelte text +*.tmpl text +*.tpl text +*.twig text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text eol=lf -diff +pnpm-lock.yaml text eol=lf -diff +.prettierrc text +yarn.lock text -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text +# Fixes syntax highlighting on GitHub to allow comments +tsconfig.json linguist-language=JSON-with-Comments + +# Heroku +Procfile text + +# Graphics +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +# Video +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.avi binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary +# Prevents massive diffs caused by vendored, minified files +**/.yarn/releases/** binary +**/.yarn/plugins/** binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text + +# Prevents massive diffs from built files +dist/* binary \ No newline at end of file diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index dd149539..86c3c7a2 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,4 +1,5 @@ # https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository github: [sonofmagic] -custom: ["https://github.com/sonofmagic/sponsors"] +open_collective: icestack +custom: ['https://github.com/sonofmagic/sponsors'] diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index dd84ea78..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve -title: '' -labels: '' -assignees: '' - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..7ea7e4c4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,71 @@ +name: 🐞 Bug report +description: Create a report to help us improve +title: '[Bug]: ' +labels: [bug] +assignees: + - sonofmagic +body: + - type: markdown + attributes: + value: | + **Before You Start...** + + This form is only for submitting bug reports. If you have a usage question + or are unsure if this is really a bug, make sure to: + + Also try to search for your issue - it may have already been answered or even fixed in the development branch. + However, if you find that an old, closed issue still persists in the latest version, + you should open a new issue using the form below instead of commenting on the old issue. + - type: input + id: version + attributes: + label: version + validations: + required: true + - type: input + id: reproduction-link + attributes: + label: Link to minimal reproduction + description: | + You can always provide a GitHub repository. + + The reproduction should be **minimal** - i.e. it should contain only the bare minimum amount of code needed + to show the bug. + + Please do not just fill in a random link. The issue will be closed if no valid reproduction is provided. + placeholder: Reproduction Link + validations: + required: true + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to reproduce + description: | + What do we need to do after opening your repro in order to make the bug happen? Clear and concise reproduction instructions are important for us to be able to triage your issue in a timely manner. Note that you can use [Markdown](https://guides.github.com/features/mastering-markdown/) to format lists and code. + placeholder: Steps to reproduce + validations: + required: true + - type: textarea + id: expected + attributes: + label: What is expected? + validations: + required: true + - type: textarea + id: actually-happening + attributes: + label: What is actually happening? + validations: + required: true + - type: textarea + id: system-info + attributes: + label: System Info + description: Output of `npx envinfo --system --npmPackages --binaries` + render: shell + placeholder: System, Binaries + - type: textarea + id: additional-comments + attributes: + label: Any additional comments? + description: e.g. some background/context of how you ran into this bug. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..1c94708b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,17 @@ +blank_issues_enabled: false +contact_links: + - name: Feature Request + url: https://github.com/sonofmagic/monorepo-template/discussions + about: Suggest new features for consideration + # - name: Discord Chat + # url: https://chat.vuejs.org + # about: Ask questions and discuss with other Vue users in real time. + # - name: Questions & Discussions + # url: https://github.com/vuejs/core/discussions + # about: Use GitHub discussions for message-board style questions and discussions. + # - name: Patreon + # url: https://www.patreon.com/evanyou + # about: Love Vue.js? Please consider supporting us via Patreon. + # - name: Open Collective + # url: https://opencollective.com/vuejs/donate + # about: Love Vue.js? Please consider supporting us via Open Collective. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index bbcbbe7d..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project -title: '' -labels: '' -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ef31fd8..683bb02a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,8 +4,12 @@ on: # push: # branches: ['main'] pull_request: + types: [opened, synchronize] workflow_dispatch: +permissions: + contents: read + jobs: build: name: Build and Test @@ -14,7 +18,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - node-version: [16, 18, 20] + node-version: [18, 20, 22] runs-on: ${{ matrix.os }} # To use Remote Caching, uncomment the next lines and follow the steps below. # env: @@ -27,13 +31,13 @@ jobs: with: fetch-depth: 2 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - name: Setup Node.js environment - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install @@ -45,6 +49,6 @@ jobs: run: pnpm test - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bb3f8bde..c1036602 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,6 +7,13 @@ on: workflow_dispatch: concurrency: ${{ github.workflow }}-${{ github.ref }} +env: + HUSKY: 0 + +permissions: + pull-requests: write + contents: write + id-token: write jobs: release: @@ -16,14 +23,13 @@ jobs: - name: Checkout Repo uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v4 - name: Setup Node.js environment - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 18 - cache: 'pnpm' - cache-dependency-path: '**/pnpm-lock.yaml' + node-version: 20 + cache: pnpm - name: Install Dependencies run: pnpm i @@ -43,6 +49,6 @@ jobs: npm_config_registry: https://registry.npmjs.org - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 00000000..c48ae693 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1 @@ +pnpm dlx commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..e02c24e2 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +pnpm lint-staged \ No newline at end of file diff --git a/.npmrc b/.npmrc index 8f70ba9e..a9af1fcc 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,4 @@ -registry=http://registry.npmmirror.com/ +registry=https://registry.npmmirror.com/ +# registry=https://registry.npmjs.com/ shamefully-hoist=true git-checks=false \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index bd874ae1..00000000 --- a/.prettierrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "tabWidth": 2, - "useTabs": false, - "semi": false, - "singleQuote": true, - "endOfLine": "lf", - "trailingComma": "none", - "printWidth": 180 -} \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..c741c186 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,6 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "stylelint.vscode-stylelint" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json index 63777869..274b54e8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -58,8 +58,8 @@ "cwd": "${workspaceFolder}/packages/ui" }, { - "command": "npm run build:scss", - "name": "[UI] build:scss", + "command": "npm run build:all", + "name": "[UI] build:all", "request": "launch", "type": "node-terminal", "cwd": "${workspaceFolder}/packages/ui" @@ -168,6 +168,51 @@ "request": "launch", "type": "node-terminal", "cwd": "${workspaceFolder}/examples/unocss-sample-app" + }, + { + "command": "npm run dev", + "name": "[nuxt-admin-app] run app", + "request": "launch", + "type": "node-terminal", + "cwd": "${workspaceFolder}/examples/nuxt-admin-app" + }, + { + "command": "npm run cpmd", + "name": "[md] render", + "request": "launch", + "type": "node-terminal", + "cwd": "${workspaceFolder}" + }, + { + "command": "npm run dev", + "name": "[Example] start-from-scratch dev", + "request": "launch", + "type": "node-terminal", + "cwd": "${workspaceFolder}/examples/start-from-scratch" + }, + { + "command": "npm run dev", + "name": "[Example] postcss-icestack-plugin dev", + "request": "launch", + "type": "node-terminal", + "cwd": "${workspaceFolder}/examples/postcss-icestack-plugin" + }, + { + "type": "node", + "request": "launch", + "name": "Debug Current Test File", + "autoAttachChildProcesses": true, + "skipFiles": [ + "/**", + "**/node_modules/**" + ], + "program": "${workspaceRoot}/node_modules/vitest/vitest.mjs", + "args": [ + "run", + "${relativeFile}" + ], + "smartStep": true, + "console": "integratedTerminal" } ] -} \ No newline at end of file +} diff --git a/.vscode/settings.json b/.vscode/settings.json index cbc30610..0a8cbbff 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,12 +1,169 @@ { - "tailwindCSS.experimental.classRegex": [ - [ - "cva\\(([^)]*)\\)", - "[\"'`]([^\"'`]*).*?[\"'`]" - ], - [ - "cx\\(([^)]*)\\)", - "(?:'|\"|`)([^']*)(?:'|\"|`)" - ] - ] -} \ No newline at end of file + // Disable the default formatter, use eslint instead + "prettier.enable": false, + "editor.formatOnSave": false, + // Auto fix + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" + }, + // Silent the stylistic rules in you IDE, but still auto fix them + "eslint.rules.customizations": [ + // close "style/* off" + // { + // "rule": "style/*", + // "severity": "off" + // }, + { + "rule": "format/*", + "severity": "off" + }, + { + "rule": "*-indent", + "severity": "off" + }, + { + "rule": "*-spacing", + "severity": "off" + }, + { + "rule": "*-spaces", + "severity": "off" + }, + { + "rule": "*-order", + "severity": "off" + }, + { + "rule": "*-dangle", + "severity": "off" + }, + { + "rule": "*-newline", + "severity": "off" + }, + { + "rule": "*quotes", + "severity": "off" + }, + { + "rule": "*semi", + "severity": "off" + } + ], + // Enable eslint for all supported languages + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "typescriptreact", + "vue", + "html", + "markdown", + "json", + "jsonc", + "yaml", + "toml", + "xml", + "gql", + "graphql", + "astro", + "css", + "less", + "scss", + "pcss", + "postcss" + ], + "css.validate": false, + "less.validate": false, + "scss.validate": false, + "stylelint.validate": [ + "vue", + "css", + "scss" + ], + "terminal.integrated.env.linux": { + "COREPACK_NPM_REGISTRY": "https://registry.npmmirror.com", + "EDGEDRIVER_CDNURL": "https://npmmirror.com/mirrors/edgedriver", + "NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node", + "NVM_NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node", + "PHANTOMJS_CDNURL": "https://cdn.npmmirror.com/binaries/phantomjs", + "CHROMEDRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/chromedriver", + "OPERADRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/operadriver", + "CYPRESS_DOWNLOAD_PATH_TEMPLATE": "https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip", + "ELECTRON_MIRROR": "https://cdn.npmmirror.com/binaries/electron/", + "ELECTRON_BUILDER_BINARIES_MIRROR": "https://cdn.npmmirror.com/binaries/electron-builder-binaries/", + "SASS_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-sass", + "SWC_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-swc", + "NWJS_URLBASE": "https://cdn.npmmirror.com/binaries/nwjs/v", + "PUPPETEER_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/chrome-for-testing", + "PUPPETEER_DOWNLOAD_BASE_URL": "https://cdn.npmmirror.com/binaries/chrome-for-testing", + "PLAYWRIGHT_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/playwright", + "SENTRYCLI_CDNURL": "https://cdn.npmmirror.com/binaries/sentry-cli", + "SAUCECTL_INSTALL_BINARY_MIRROR": "https://cdn.npmmirror.com/binaries/saucectl", + "RE2_DOWNLOAD_MIRROR": "https://cdn.npmmirror.com/binaries/node-re2", + "RE2_DOWNLOAD_SKIP_PATH": "true", + "PRISMA_ENGINES_MIRROR": "https://cdn.npmmirror.com/binaries/prisma", + "npm_config_better_sqlite3_binary_host": "https://cdn.npmmirror.com/binaries/better-sqlite3", + "npm_config_keytar_binary_host": "https://cdn.npmmirror.com/binaries/keytar", + "npm_config_sharp_binary_host": "https://cdn.npmmirror.com/binaries/sharp", + "npm_config_sharp_libvips_binary_host": "https://cdn.npmmirror.com/binaries/sharp-libvips", + "npm_config_robotjs_binary_host": "https://cdn.npmmirror.com/binaries/robotjs" + }, + "terminal.integrated.env.windows": { + "COREPACK_NPM_REGISTRY": "https://registry.npmmirror.com", + "EDGEDRIVER_CDNURL": "https://npmmirror.com/mirrors/edgedriver", + "NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node", + "NVM_NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node", + "PHANTOMJS_CDNURL": "https://cdn.npmmirror.com/binaries/phantomjs", + "CHROMEDRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/chromedriver", + "OPERADRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/operadriver", + "CYPRESS_DOWNLOAD_PATH_TEMPLATE": "https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip", + "ELECTRON_MIRROR": "https://cdn.npmmirror.com/binaries/electron/", + "ELECTRON_BUILDER_BINARIES_MIRROR": "https://cdn.npmmirror.com/binaries/electron-builder-binaries/", + "SASS_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-sass", + "SWC_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-swc", + "NWJS_URLBASE": "https://cdn.npmmirror.com/binaries/nwjs/v", + "PUPPETEER_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/chrome-for-testing", + "PUPPETEER_DOWNLOAD_BASE_URL": "https://cdn.npmmirror.com/binaries/chrome-for-testing", + "PLAYWRIGHT_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/playwright", + "SENTRYCLI_CDNURL": "https://cdn.npmmirror.com/binaries/sentry-cli", + "SAUCECTL_INSTALL_BINARY_MIRROR": "https://cdn.npmmirror.com/binaries/saucectl", + "RE2_DOWNLOAD_MIRROR": "https://cdn.npmmirror.com/binaries/node-re2", + "RE2_DOWNLOAD_SKIP_PATH": "true", + "PRISMA_ENGINES_MIRROR": "https://cdn.npmmirror.com/binaries/prisma", + "npm_config_better_sqlite3_binary_host": "https://cdn.npmmirror.com/binaries/better-sqlite3", + "npm_config_keytar_binary_host": "https://cdn.npmmirror.com/binaries/keytar", + "npm_config_sharp_binary_host": "https://cdn.npmmirror.com/binaries/sharp", + "npm_config_sharp_libvips_binary_host": "https://cdn.npmmirror.com/binaries/sharp-libvips", + "npm_config_robotjs_binary_host": "https://cdn.npmmirror.com/binaries/robotjs" + }, + "terminal.integrated.env.osx": { + "COREPACK_NPM_REGISTRY": "https://registry.npmmirror.com", + "EDGEDRIVER_CDNURL": "https://npmmirror.com/mirrors/edgedriver", + "NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node", + "NVM_NODEJS_ORG_MIRROR": "https://cdn.npmmirror.com/binaries/node", + "PHANTOMJS_CDNURL": "https://cdn.npmmirror.com/binaries/phantomjs", + "CHROMEDRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/chromedriver", + "OPERADRIVER_CDNURL": "https://cdn.npmmirror.com/binaries/operadriver", + "CYPRESS_DOWNLOAD_PATH_TEMPLATE": "https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip", + "ELECTRON_MIRROR": "https://cdn.npmmirror.com/binaries/electron/", + "ELECTRON_BUILDER_BINARIES_MIRROR": "https://cdn.npmmirror.com/binaries/electron-builder-binaries/", + "SASS_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-sass", + "SWC_BINARY_SITE": "https://cdn.npmmirror.com/binaries/node-swc", + "NWJS_URLBASE": "https://cdn.npmmirror.com/binaries/nwjs/v", + "PUPPETEER_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/chrome-for-testing", + "PUPPETEER_DOWNLOAD_BASE_URL": "https://cdn.npmmirror.com/binaries/chrome-for-testing", + "PLAYWRIGHT_DOWNLOAD_HOST": "https://cdn.npmmirror.com/binaries/playwright", + "SENTRYCLI_CDNURL": "https://cdn.npmmirror.com/binaries/sentry-cli", + "SAUCECTL_INSTALL_BINARY_MIRROR": "https://cdn.npmmirror.com/binaries/saucectl", + "RE2_DOWNLOAD_MIRROR": "https://cdn.npmmirror.com/binaries/node-re2", + "RE2_DOWNLOAD_SKIP_PATH": "true", + "PRISMA_ENGINES_MIRROR": "https://cdn.npmmirror.com/binaries/prisma", + "npm_config_better_sqlite3_binary_host": "https://cdn.npmmirror.com/binaries/better-sqlite3", + "npm_config_keytar_binary_host": "https://cdn.npmmirror.com/binaries/keytar", + "npm_config_sharp_binary_host": "https://cdn.npmmirror.com/binaries/sharp", + "npm_config_sharp_libvips_binary_host": "https://cdn.npmmirror.com/binaries/sharp-libvips", + "npm_config_robotjs_binary_host": "https://cdn.npmmirror.com/binaries/robotjs" + } +} diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 782564ce..0d6635e8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -17,23 +17,23 @@ diverse, inclusive, and healthy community. Examples of behavior that contributes to a positive environment for our community include: -* Demonstrating empathy and kindness toward other people -* Being respectful of differing opinions, viewpoints, and experiences -* Giving and gracefully accepting constructive feedback -* Accepting responsibility and apologizing to those affected by our mistakes, +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience -* Focusing on what is best not just for us as individuals, but for the +- Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: -* The use of sexualized language or imagery, and sexual attention or +- The use of sexualized language or imagery, and sexual attention or advances of any kind -* Trolling, insulting or derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or email +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, without their explicit permission -* Other conduct which could reasonably be considered inappropriate in a +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Enforcement Responsibilities @@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban. ### 4. Permanent Ban **Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an +standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. **Consequence**: A permanent ban from any sort of public interaction within diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..00adde67 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# Contributing + +TODO diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..d9a73a45 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +FROM node:20-alpine AS base +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" +RUN corepack enable + +FROM base AS builder +COPY . /usr/src/app +WORKDIR /usr/src/app +RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile +RUN pnpm run -r build +RUN pnpm deploy --filter=@icebreakers/foo --prod /prod/foo +RUN pnpm deploy --filter=@icebreakers/bar --prod /prod/bar + +FROM base AS foo +COPY --from=builder /prod/foo /prod/foo +WORKDIR /prod/foo +EXPOSE 8000 +CMD [ "pnpm", "start" ] + +FROM base AS bar +COPY --from=builder /prod/bar /prod/bar +WORKDIR /prod/bar +EXPOSE 8001 +CMD [ "pnpm", "start" ] + +# docker build . --target foo --tag foo:latest +# docker build . --target bar --tag bar:latest \ No newline at end of file diff --git a/LICENSE b/LICENSE index 3e6a03a0..1b6239da 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2023 ice breaker +Copyright (c) 2024 ice breaker Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 6879dd9f..b77c7d8b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@

IceStack

- [![npm][npm]][npm-url] [![][license]][license-url] [![][stars]][gh-url] [![][dl]][npm-url] [![codecov][codecov]][codecov-url] +[![npm][npm]][npm-url] [![][license]][license-url] [![][stars]][gh-url] [![][dl]][npm-url] [![codecov][codecov]][codecov-url] IceStack UI, Web UI for Mobile and PC , open-source Css Headless component library generator @@ -20,16 +20,34 @@ IceStack UI, Web UI for Mobile and PC , open-source Css Headless component libra ## Repos -### Core +### Usage - [@icestack/ui](./packages/ui/) - IceStack UI, Web UI for Mobile and PC , open-source Css Headless component library generator - [@icestack/tailwindcss](./packages/tailwindcss/) - IceStack UI For Tailwindcss plugin -- [@icestack/postcss](./packages/postcss/) - Postcss plugins hub +- [@icestack/unocss](./packages/unocss/) - IceStack UI For Unocss plugin +- [@icestack/postcss](./packages/postcss/) - IceStack UI For Postcss plugin +- [@icestack/cva](./packages/cva/) - The class-variance-authority function collection of IceStack UI + +### Plugins + +- [css-to-tailwindcss-plugin](./plugins/css-to-tailwindcss-plugin) - Transform your `css/scss` to `tailwindcss plugin` +- [compose-tailwindcss-plugins](./plugins/compose-tailwindcss-plugins) - Compose your multiple tailwindcss plugins into one +- [postcss-custom-property-prefixer](./plugins/postcss-custom-property-prefixer) - Add prefix to your css custom-property postcss plugin +- [postcss-cva](./plugins/postcss-cva) - Generate cva functions base on css comments + +### Core + +- [@icestack/postcss-utils](./packages/postcss-utils/) - Postcss utils hub +- [@icestack/preset-default](./packages/preset-default/) - The default preset of @icestack/ui +- [@icestack/theme-algorithm](./packages/theme-algorithm/) - The default theme-algorithm of @icestack/ui +- [@icestack/scss](./packages/scss/) - The scss utils of @icestack/ui - [@icestack/types](./packages/types/) - Typescript types - [@icestack/shared](./packages/shared/) - Shared utils - [@icestack/logger](./packages/logger/) - Logger -- (WIP) [@icestack/unocss](./packages/unocss/) - IceStack UI For Unocss plugin -- (WIP) [@icestack/cva](./packages/cva/) - The class-variance-authority function collection of IceStack UI +- [@icestack/cli](./packages/cli/) - Cli package +- [@icestack/config](./packages/config/) - Config package +- [@icestack/core](./packages/core/) - Core package +- [@icestack/generator](./packages/generator/) - Code generator package ### Presets @@ -39,18 +57,12 @@ IceStack UI, Web UI for Mobile and PC , open-source Css Headless component libra - (WIP) [@icestack/preset-daisyui](./packages/preset-daisyui/) - Daisyui preset - (WIP) [@icestack/preset-unicorn](./packages/preset-unicorn/) - Unicorn preset -### Plugins - -- [css-to-tailwindcss-plugin](./plugins/css-to-tailwindcss-plugin) - Transform your `css/scss` to `tailwindcss plugin` -- [compose-tailwindcss-plugins](./plugins/compose-tailwindcss-plugins) - Compose your multiple tailwindcss plugins into one -- [postcss-custom-property-prefixer](./plugins/postcss-custom-property-prefixer) - Add prefix to your css custom-property postcss plugin - ### Applications -- [website](./website/) - Source code of -- [storybook](./storybook/) - Source code of +- [@icestack/app-website](./website/) - Source code of +- [@icestack/app-weapp](./apps/taro-app/) - Source code of weapp "爱思史塔克" - [nuxt-admin-app](./examples/nuxt-admin-app/) - Source code of -- [taro-app](./apps/taro-app/) - Source code of weapp "爱思史塔克" +- [@icestack/app-storybook](./storybook/) - Source code of ## License diff --git a/apps/package.json b/apps/package.json index 42fbd5ba..53078515 100644 --- a/apps/package.json +++ b/apps/package.json @@ -2,11 +2,11 @@ "name": "apps", "version": "1.0.0", "description": "", + "author": "", + "license": "ISC", + "keywords": [], "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [], - "author": "", - "license": "ISC" + } } diff --git a/apps/pnpm-lock.yaml b/apps/pnpm-lock.yaml index 855bbf08..ef4e2b42 100644 --- a/apps/pnpm-lock.yaml +++ b/apps/pnpm-lock.yaml @@ -11,53 +11,53 @@ importers: taro-app: dependencies: '@babel/runtime': - specifier: ^7.23.6 - version: 7.23.6 + specifier: ^7.23.7 + version: 7.23.7 '@faker-js/faker': specifier: ^8.3.1 version: 8.3.1 '@tarojs/components': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) '@tarojs/helper': - specifier: 3.6.21 - version: 3.6.21 + specifier: 3.6.22 + version: 3.6.22 '@tarojs/plugin-framework-react': - specifier: 3.6.21 - version: 3.6.21(@pmmmwh/react-refresh-webpack-plugin@0.5.11)(@types/react@18.2.45)(postcss@8.4.32)(react-refresh@0.14.0)(react@18.2.0) + specifier: 3.6.22 + version: 3.6.22(@pmmmwh/react-refresh-webpack-plugin@0.5.11)(@types/react@18.2.46)(postcss@8.4.32)(react-refresh@0.14.0)(react@18.2.0) '@tarojs/plugin-platform-alipay': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) '@tarojs/plugin-platform-h5': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-platform-jd': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-platform-qq': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-platform-swan': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-platform-tt': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-platform-weapp': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/react': - specifier: 3.6.21 - version: 3.6.21(react@18.2.0) + specifier: 3.6.22 + version: 3.6.22(react@18.2.0) '@tarojs/runtime': - specifier: 3.6.21 - version: 3.6.21 + specifier: 3.6.22 + version: 3.6.22 '@tarojs/shared': - specifier: 3.6.21 - version: 3.6.21 + specifier: 3.6.22 + version: 3.6.22 '@tarojs/taro': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -84,11 +84,11 @@ importers: version: 2.0.0 zustand: specifier: ^4.4.7 - version: 4.4.7(@types/react@18.2.45)(react@18.2.0) + version: 4.4.7(@types/react@18.2.46)(react@18.2.0) devDependencies: '@babel/core': - specifier: ^7.23.6 - version: 7.23.6 + specifier: ^7.23.7 + version: 7.23.7 '@egoist/tailwindcss-icons': specifier: ^1.7.1 version: 1.7.1(tailwindcss@3.4.0) @@ -108,44 +108,44 @@ importers: specifier: ^1.1.10 version: 1.1.10 '@iconify-json/mdi': - specifier: ^1.1.63 - version: 1.1.63 + specifier: ^1.1.64 + version: 1.1.64 '@pmmmwh/react-refresh-webpack-plugin': specifier: ^0.5.11 version: 0.5.11(react-refresh@0.14.0)(webpack@5.89.0) '@tarojs/cli': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-http': - specifier: ^3.6.20 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: ^3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/plugin-inject': - specifier: ^3.6.20 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) + specifier: ^3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) '@tarojs/taro-loader': - specifier: 3.6.21 - version: 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + specifier: 3.6.22 + version: 3.6.22(@types/react@18.2.46)(postcss@8.4.32) '@tarojs/webpack5-runner': - specifier: 3.6.21 - version: 3.6.21(@babel/core@7.23.6)(@swc/core@1.3.96)(@types/react@18.2.45)(postcss@8.4.32)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.89.0) + specifier: 3.6.22 + version: 3.6.22(@babel/core@7.23.7)(@swc/core@1.3.96)(@types/react@18.2.46)(postcss@8.4.32)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.89.0) '@types/node': - specifier: ^20.10.5 - version: 20.10.5 + specifier: ^20.10.6 + version: 20.10.6 '@types/react': - specifier: ^18.2.45 - version: 18.2.45 + specifier: ^18.2.46 + version: 18.2.46 '@types/webpack-env': specifier: ^1.18.4 version: 1.18.4 '@typescript-eslint/eslint-plugin': - specifier: ^6.16.0 - version: 6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.17.0 + version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.16.0 - version: 6.16.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.17.0 + version: 6.17.0(eslint@8.56.0)(typescript@5.3.3) babel-preset-taro: - specifier: 3.6.21 - version: 3.6.21(@babel/core@7.23.6) + specifier: 3.6.22 + version: 3.6.22(@babel/core@7.23.7) css-to-tailwindcss-plugin: specifier: link:../../plugins/css-to-tailwindcss-plugin version: link:../../plugins/css-to-tailwindcss-plugin @@ -156,11 +156,11 @@ importers: specifier: ^9.1.0 version: 9.1.0(eslint@8.56.0) eslint-config-taro: - specifier: 3.6.21 - version: 3.6.21(@babel/core@7.23.6)(eslint@8.56.0)(typescript@5.3.3) + specifier: 3.6.22 + version: 3.6.22(@babel/core@7.23.7)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) eslint-plugin-prettier: specifier: ^5.1.2 version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) @@ -183,8 +183,8 @@ importers: specifier: ^3.1.1 version: 3.1.1 prettier-plugin-tailwindcss: - specifier: ^0.5.9 - version: 0.5.9(prettier@3.1.1) + specifier: ^0.5.10 + version: 0.5.10(prettier@3.1.1) react-refresh: specifier: ^0.14.0 version: 0.14.0 @@ -199,7 +199,7 @@ importers: version: 3.4.0(ts-node@10.9.2) ts-node: specifier: ^10.9.2 - version: 10.9.2(@swc/core@1.3.96)(@types/node@20.10.5)(typescript@5.3.3) + version: 10.9.2(@swc/core@1.3.96)(@types/node@20.10.6)(typescript@5.3.3) typescript: specifier: ^5.3.3 version: 5.3.3 @@ -304,17 +304,17 @@ importers: specifier: ^5.0.2 version: 5.0.4 '@types/node': - specifier: ^20.10.4 - version: 20.10.4 + specifier: ^20.10.6 + version: 20.10.6 '@typescript-eslint/eslint-plugin': - specifier: ^6.15.0 - version: 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.17.0 + version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.15.0 - version: 6.15.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.17.0 + version: 6.17.0(eslint@8.56.0)(typescript@5.3.3) '@vue/runtime-core': - specifier: ^3.3.13 - version: 3.3.13 + specifier: ^3.4.3 + version: 3.4.3 autoprefixer: specifier: ^10.4.16 version: 10.4.16(postcss@8.4.32) @@ -329,19 +329,19 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-standard: specifier: ^17.1.0 - version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) + version: 17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0) eslint-plugin-import: specifier: 2.29.1 - version: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) eslint-plugin-jest: - specifier: ^27.6.0 - version: 27.6.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint@8.56.0)(jest@27.0.4)(typescript@5.3.3) + specifier: ^27.6.1 + version: 27.6.1(@typescript-eslint/eslint-plugin@6.17.0)(eslint@8.56.0)(jest@27.0.4)(typescript@5.3.3) eslint-plugin-n: - specifier: ^16.4.0 - version: 16.4.0(eslint@8.56.0) + specifier: ^16.6.1 + version: 16.6.1(eslint@8.56.0) eslint-plugin-prettier: - specifier: ^5.1.0 - version: 5.1.0(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) + specifier: ^5.1.2 + version: 5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1) eslint-plugin-promise: specifier: 6.1.1 version: 6.1.1(eslint@8.56.0) @@ -361,8 +361,8 @@ importers: specifier: ^3.1.1 version: 3.1.1 sass: - specifier: ^1.69.5 - version: 1.69.5 + specifier: ^1.69.6 + version: 1.69.6 tailwindcss: specifier: ^3.4.0 version: 3.4.0(ts-node@10.9.2) @@ -370,14 +370,14 @@ importers: specifier: ^5.3.3 version: 5.3.3 unplugin-auto-import: - specifier: ^0.17.2 - version: 0.17.2 + specifier: ^0.17.3 + version: 0.17.3 unplugin-vue-components: specifier: ^0.26.0 version: 0.26.0(vue@3.3.12) vite: specifier: 5.0.10 - version: 5.0.10(@types/node@20.10.4)(sass@1.69.5)(terser@5.22.0) + version: 5.0.10(@types/node@20.10.6)(sass@1.69.6)(terser@5.22.0) vue-eslint-parser: specifier: ^9.3.2 version: 9.3.2(eslint@8.56.0) @@ -433,19 +433,19 @@ packages: resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - /@babel/core@7.23.6: - resolution: {integrity: sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==} + /@babel/core@7.23.7: + resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) - '@babel/helpers': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helpers': 7.23.7 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 convert-source-map: 2.0.0 debug: 4.3.4 @@ -455,14 +455,14 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.23.3(@babel/core@7.23.6)(eslint@8.56.0): + /@babel/eslint-parser@7.23.3(@babel/core@7.23.7)(eslint@8.56.0): resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.56.0 eslint-visitor-keys: 2.1.0 @@ -500,73 +500,58 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.6): + /@babel/helper-create-class-features-plugin@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 dev: true - /@babel/helper-create-class-features-plugin@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw==} + /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.6): + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - /@babel/helper-define-polyfill-provider@0.4.3(@babel/core@7.23.6): - resolution: {integrity: sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.6): + /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 @@ -604,13 +589,13 @@ packages: dependencies: '@babel/types': 7.23.6 - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.6): + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 @@ -627,24 +612,24 @@ packages: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.6): + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.6): + /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -691,12 +676,12 @@ packages: '@babel/template': 7.22.15 '@babel/types': 7.23.6 - /@babel/helpers@7.23.6: - resolution: {integrity: sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==} + /@babel/helpers@7.23.7: + resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 transitivePeerDependencies: - supports-color @@ -714,7 +699,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.23.0 /@babel/parser@7.23.6: resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} @@ -723,100 +708,97 @@ packages: dependencies: '@babel/types': 7.23.6 - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.6): + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.6): + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==} + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.23.6): + /@babel/plugin-proposal-async-generator-functions@7.20.7(@babel/core@7.23.7): resolution: {integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.6): + /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-proposal-decorators@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-D7Ccq9LfkBFnow3azZGJvZYgcfeqAw3I1e5LoTpj6UKIFQilh8yqXsIGcRIqbBdsPWIz+Ze7ZZfggSj62Qp+Fg==} + /@babel/plugin-proposal-decorators@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-decorators': 7.23.3(@babel/core@7.23.7) - /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.6): + /@babel/plugin-proposal-export-default-from@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.6): + /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.6): + /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.7): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead. @@ -824,1268 +806,999 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.23.6): + /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.6): + /@babel/plugin-proposal-optional-chaining@7.21.0(@babel/core@7.23.7): resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.6): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.6): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-decorators@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-export-default-from@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-flow@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-jsx@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.6): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.6): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.6): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.6): + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.6): + /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.6): + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} + /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - dev: true + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - /@babel/plugin-transform-async-generator-functions@7.23.4(@babel/core@7.23.6): - resolution: {integrity: sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.6) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-class-static-block@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-PENDVxdr7ZxKPyi5Ffc0LjXdnJyrJxyqF5T5YjlVg4a0VFfQHW0r8iAtRiDXkfHlu1wwcvdtnndGYIeJLSuRMQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) - /@babel/plugin-transform-classes@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: true - - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.6): + /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-dynamic-import@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-vTG+cTGxPFou12Rj7ll+eD5yWeNl5/8xvQvF08y5Gv3v4mZQoyFf8/n9zg4q5vvCWt5jmgymfzMAldO7orBn7A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-export-namespace-from@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-yCLhW34wpJWRdTxxWtFZASJisihrfyMOTOQexhVzA78jlU+dH7Dw+zQgcPepQ5F3C6bAIiblZZ+qBggJdHiBAg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) - /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-flow-strip-types@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.6): + /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.6): + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-transform-nullish-coalescing-operator@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-xzg24Lnld4DYIdysyf07zJ1P+iIfJpxtVFOzX4g+bsJ3Ng5Le7rXx9KwqKzuyaUeRnt+I1EICwQITqc0E2PmpA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - /@babel/plugin-transform-numeric-separator@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-s9GO7fIBi/BLsZ0v3Rftr6Oe4t0ctJ8h4CCXfPoEJwmvAPMyNrfkOOJzm6b9PX9YXcCJWWQd/sBF/N26eBiMVw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - /@babel/plugin-transform-object-rest-spread@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-VxHt0ANkDmu8TANdE9Kc0rndo/ccsmfe2Cx2y5sI4hu3AukHQ5wAu4cM7j3ba8B9548ijVyclBU+nuDQftZsog==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.6) - - /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - dev: true + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - /@babel/plugin-transform-optional-chaining@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-zvL8vIfIUgMccIAK1lxjvNv572JHFJIKb4MWBz5OGdBQA0fB0Xluix5rmOby48exiJc987neOmP/m9Fnpkz3Tg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-private-property-in-object@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-a5m2oLNFyje2e/rGKjVfAELTVI5mbA0FeZpBnkOWWV7eSmKQ+T/XW0Vf+29ScLzSxX+rnsarvU0oie/4m6hkxA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) - dev: true - - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.7): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.6): + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.23.7): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) '@babel/types': 7.23.6 dev: true - /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-react-pure-annotations@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-runtime@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-kF1Zg62aPseQ11orDhFRw+aPG/eynNQtI+TyY+m33qJa2cJ5EEvza2P2BNTIA9E5MyqFABHEyY6CPHwgdy9aNg==} + /@babel/plugin-transform-runtime@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.6): + /@babel/plugin-transform-typescript@7.22.15(@babel/core@7.23.7): resolution: {integrity: sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.6) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.6): + /@babel/plugin-transform-typescript@7.23.6(@babel/core@7.23.7): resolution: {integrity: sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.6(@babel/core@7.23.6) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.6): + /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.6) - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/preset-env@7.23.3(@babel/core@7.23.6): - resolution: {integrity: sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 + '@babel/core': 7.23.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-async-generator-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoping': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-class-static-block': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-classes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dynamic-import': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-export-namespace-from': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-for-of': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-json-strings': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-logical-assignment-operators': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-numeric-separator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-object-rest-spread': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-optional-catch-binding': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-optional-chaining': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-property-in-object': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) - babel-plugin-polyfill-corejs2: 0.4.6(@babel/core@7.23.6) - babel-plugin-polyfill-corejs3: 0.8.6(@babel/core@7.23.6) - babel-plugin-polyfill-regenerator: 0.5.3(@babel/core@7.23.6) - core-js-compat: 3.33.2 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/preset-env@7.23.6(@babel/core@7.23.6): - resolution: {integrity: sha512-2XPn/BqKkZCpzYhUUNZ1ssXw7DcXfKQEjv/uXZUXgaebCMYmkEsfZ2yY+vv+xtXv50WmL5SGhyB6/xsWxIvvOQ==} + /@babel/preset-env@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-async-generator-functions': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.6) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.6) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.6) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.6) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.6) - core-js-compat: 3.34.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) + core-js-compat: 3.35.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.6): + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/types': 7.23.6 esutils: 2.0.3 - /@babel/preset-react@7.23.3(@babel/core@7.23.6): + /@babel/preset-react@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.6) - '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-react-pure-annotations': 7.23.3(@babel/core@7.23.7) dev: true - /@babel/preset-typescript@7.23.3(@babel/core@7.23.6): + /@babel/preset-typescript@7.23.3(@babel/core@7.23.7): resolution: {integrity: sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) - /@babel/register@7.22.15(@babel/core@7.23.6): - resolution: {integrity: sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==} + /@babel/register@7.23.7(@babel/core@7.23.7): + resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -2095,19 +1808,19 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - /@babel/runtime-corejs3@7.23.6: - resolution: {integrity: sha512-Djs/ZTAnpyj0nyg7p1J6oiE/tZ9G2stqAFlLGZynrW+F3k2w2jGK2mLOBxzYIOcZYA89+c3d3wXKpYLcpwcU6w==} + /@babel/runtime-corejs3@7.23.7: + resolution: {integrity: sha512-ER55qzLREVA5YxeyQ3Qu48tgsF2ZrFjFjUS6V6wF0cikSw+goBJgB9PBRM1T6+Ah4iiM+sxmfS/Sy/jdzFfhiQ==} engines: {node: '>=6.9.0'} dependencies: - core-js-pure: 3.34.0 + core-js-pure: 3.35.0 regenerator-runtime: 0.14.1 dev: true - /@babel/runtime@7.23.6: - resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==} + /@babel/runtime@7.23.7: + resolution: {integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.14.0 + regenerator-runtime: 0.14.1 /@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} @@ -2133,6 +1846,24 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/traverse@7.23.7: + resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.6 + '@babel/types': 7.23.6 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color /@babel/types@7.23.0: resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} @@ -2347,7 +2078,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/parser': 7.23.0 '@babel/types': 7.23.0 '@dcloudio/uni-i18n': 3.0.0-3090520231028001 @@ -2748,9 +2479,9 @@ packages: peerDependencies: vite: ^4.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.7) '@dcloudio/uni-cli-shared': 3.0.0-3090520231028001(postcss@8.4.32)(vue@3.3.12) '@dcloudio/uni-shared': 3.0.0-3090520231028001 '@rollup/pluginutils': 4.2.1 @@ -2772,7 +2503,7 @@ packages: magic-string: 0.30.5 picocolors: 1.0.0 terser: 5.22.0 - vite: 5.0.10(@types/node@20.10.4)(sass@1.69.5)(terser@5.22.0) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.6)(terser@5.22.0) transitivePeerDependencies: - postcss - supports-color @@ -2797,8 +2528,8 @@ packages: - supports-color dev: true - /@esbuild/aix-ppc64@0.19.10: - resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} + /@esbuild/aix-ppc64@0.19.11: + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -2813,8 +2544,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm64@0.19.10: - resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} + /@esbuild/android-arm64@0.19.11: + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2837,8 +2568,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.19.10: - resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} + /@esbuild/android-arm@0.19.11: + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -2861,8 +2592,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.19.10: - resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} + /@esbuild/android-x64@0.19.11: + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2885,8 +2616,8 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.19.10: - resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} + /@esbuild/darwin-arm64@0.19.11: + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2909,8 +2640,8 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-x64@0.19.10: - resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} + /@esbuild/darwin-x64@0.19.11: + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2933,8 +2664,8 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.19.10: - resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} + /@esbuild/freebsd-arm64@0.19.11: + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2957,8 +2688,8 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.19.10: - resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} + /@esbuild/freebsd-x64@0.19.11: + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2981,8 +2712,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.19.10: - resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} + /@esbuild/linux-arm64@0.19.11: + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -3005,8 +2736,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.19.10: - resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} + /@esbuild/linux-arm@0.19.11: + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -3029,8 +2760,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.19.10: - resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} + /@esbuild/linux-ia32@0.19.11: + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -3062,8 +2793,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.19.10: - resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} + /@esbuild/linux-loong64@0.19.11: + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -3086,8 +2817,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.19.10: - resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} + /@esbuild/linux-mips64el@0.19.11: + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -3110,8 +2841,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.19.10: - resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} + /@esbuild/linux-ppc64@0.19.11: + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -3134,8 +2865,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.19.10: - resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} + /@esbuild/linux-riscv64@0.19.11: + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -3158,8 +2889,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.19.10: - resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} + /@esbuild/linux-s390x@0.19.11: + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -3182,8 +2913,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.19.10: - resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} + /@esbuild/linux-x64@0.19.11: + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -3206,8 +2937,8 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.19.10: - resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} + /@esbuild/netbsd-x64@0.19.11: + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -3230,8 +2961,8 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.19.10: - resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} + /@esbuild/openbsd-x64@0.19.11: + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -3254,8 +2985,8 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.19.10: - resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} + /@esbuild/sunos-x64@0.19.11: + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -3278,8 +3009,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.19.10: - resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} + /@esbuild/win32-arm64@0.19.11: + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -3302,8 +3033,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.19.10: - resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} + /@esbuild/win32-ia32@0.19.11: + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -3326,8 +3057,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.19.10: - resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} + /@esbuild/win32-x64@0.19.11: + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -3433,8 +3164,8 @@ packages: '@iconify/types': 2.0.0 dev: true - /@iconify-json/mdi@1.1.63: - resolution: {integrity: sha512-b07dRM5LYdwJqd/lm+1+JDNDNSWHvpZ7ujb73oJxx3lmK1J0giDS0BSc4yia0hixNV0Z2q/4GyxAu/A8XqDnbg==} + /@iconify-json/mdi@1.1.64: + resolution: {integrity: sha512-zGeo5TjhNFAY6FmSDBLAzDO811t77r6v/mDi7CAL9w5eXqKez6bIjk8R9AL/RHIeq44ALP4Ozr4lMqFTkHr7ug==} dependencies: '@iconify/types': 2.0.0 dev: true @@ -3559,7 +3290,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -3580,7 +3311,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 @@ -3617,7 +3348,7 @@ packages: dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 jest-mock: 27.5.1 dev: true @@ -3627,7 +3358,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.10.5 + '@types/node': 20.10.6 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 @@ -3656,7 +3387,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -3722,7 +3453,7 @@ packages: resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -3747,7 +3478,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 '@types/yargs': 15.0.19 chalk: 4.1.2 dev: true @@ -3758,7 +3489,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 '@types/yargs': 16.0.9 chalk: 4.1.2 dev: true @@ -3768,7 +3499,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 bmp-js: 0.1.0 @@ -3778,7 +3509,7 @@ packages: /@jimp/core@0.10.3: resolution: {integrity: sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/utils': 0.10.3 any-base: 1.1.0 buffer: 5.7.1 @@ -3795,7 +3526,7 @@ packages: /@jimp/custom@0.10.3: resolution: {integrity: sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/core': 0.10.3 core-js: 3.33.1 dev: false @@ -3805,7 +3536,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3817,7 +3548,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3829,7 +3560,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3840,7 +3571,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3851,7 +3582,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3862,7 +3593,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3877,7 +3608,7 @@ packages: '@jimp/plugin-resize': '>=0.3.5' '@jimp/plugin-scale': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) @@ -3894,7 +3625,7 @@ packages: '@jimp/plugin-resize': '>=0.3.5' '@jimp/plugin-scale': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3) '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) @@ -3908,7 +3639,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3919,7 +3650,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3930,7 +3661,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3941,7 +3672,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3953,7 +3684,7 @@ packages: '@jimp/custom': '>=0.3.5' '@jimp/plugin-rotate': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3)(@jimp/plugin-crop@0.10.3)(@jimp/plugin-resize@0.10.3) '@jimp/utils': 0.10.3 @@ -3965,7 +3696,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3976,7 +3707,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3987,7 +3718,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -3998,7 +3729,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -4010,7 +3741,7 @@ packages: '@jimp/custom': '>=0.3.5' '@jimp/plugin-blit': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) '@jimp/utils': 0.10.3 @@ -4023,7 +3754,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -4037,7 +3768,7 @@ packages: '@jimp/plugin-crop': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3) @@ -4052,7 +3783,7 @@ packages: '@jimp/custom': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) '@jimp/utils': 0.10.3 @@ -4066,7 +3797,7 @@ packages: '@jimp/plugin-blur': '>=0.3.5' '@jimp/plugin-resize': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3) '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) @@ -4081,7 +3812,7 @@ packages: '@jimp/plugin-color': '>=0.8.0' '@jimp/plugin-resize': '>=0.8.0' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3) '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) @@ -4094,7 +3825,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3) @@ -4126,7 +3857,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/utils': 0.10.3 core-js: 3.33.1 @@ -4138,7 +3869,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 core-js: 3.33.1 utif: 2.0.1 @@ -4149,7 +3880,7 @@ packages: peerDependencies: '@jimp/custom': '>=0.3.5' dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/bmp': 0.10.3(@jimp/custom@0.10.3) '@jimp/custom': 0.10.3 '@jimp/gif': 0.10.3(@jimp/custom@0.10.3) @@ -4163,7 +3894,7 @@ packages: /@jimp/utils@0.10.3: resolution: {integrity: sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 core-js: 3.33.1 regenerator-runtime: 0.13.11 dev: false @@ -4253,18 +3984,6 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 - dev: true - /@pmmmwh/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0): resolution: {integrity: sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==} engines: {node: '>= 10.13'} @@ -4656,15 +4375,15 @@ packages: resolution: {integrity: sha512-uUY8MD+iSS0afBclCV3C/tmot5DZdug6rTtao1Vp48zdUu4A/yw9Ji7CEmKq+bYjgtacLLxXnaOGDEbzEM50cA==} dev: true - /@tarojs/api@3.6.21: - resolution: {integrity: sha512-40t4287p3g1eTglRGGz0Z5cPQyrRSaDQrLdVy1YMsJ6ORBHH+YAulVOcAVxDdFB7TE3XewK93RcKKIHbbNmqxw==} + /@tarojs/api@3.6.22: + resolution: {integrity: sha512-OHNZv7f+PidW5kHyxWKtPmiMLhB6MXMWAYDqHZv+anXVdxDJZEkO72F1E1QVCklX7xPlSo3rH6tj1rNxeQyZQA==} dependencies: - '@babel/runtime': 7.23.6 - '@tarojs/runtime': 3.6.21 - '@tarojs/shared': 3.6.21 + '@babel/runtime': 7.23.7 + '@tarojs/runtime': 3.6.22 + '@tarojs/shared': 3.6.22 - /@tarojs/binding-darwin-arm64@3.6.21: - resolution: {integrity: sha512-3TuGvFep2hmlxoL2LYMIECXFW/Ch9XMzy1b0Em83BGrXQG/eSy4exRZ9W+oODqf6O82ZP/mI5TTHMWzHiAzymw==} + /@tarojs/binding-darwin-arm64@3.6.22: + resolution: {integrity: sha512-gr+jOjMKesWfsTY0nSvXr0QMyHxiuck+BtRNp9QJLXYmF6jQBNyMt1R/nqiHG6glCkk6RzUhS9Rze5vi3Lkp2Q==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -4672,8 +4391,8 @@ packages: dev: true optional: true - /@tarojs/binding-darwin-x64@3.6.21: - resolution: {integrity: sha512-w3AtfxrHdnOl2wHhuIhqLlZJM47Xmfx9lB3myZdOMWV04i6YreyqGD3jXpQy+ck+RPBdetaggQQc7KyDqq6uxA==} + /@tarojs/binding-darwin-x64@3.6.22: + resolution: {integrity: sha512-a/n+b9MjRM3XDAS/DQiN7qi7tRr5d5Oj9h63oDDXVgGTpIgo1GntSdZX4whX4B77zqAKN/p3V1liWHZr0JkGGg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -4681,8 +4400,8 @@ packages: dev: true optional: true - /@tarojs/binding-linux-x64-gnu@3.6.21: - resolution: {integrity: sha512-Ogg8a3nDk0zVWm8QJOF7Mkt1wNSjo9Qz1T1+hW14JmYjv2PTWW9G1WyHyOEwelDk5fhPZw1n+lcVwuGiETturQ==} + /@tarojs/binding-linux-x64-gnu@3.6.22: + resolution: {integrity: sha512-ylm5rW+OO5m82+Wt99gtsrh5dTPGhQwzuUMVMZn/VS486uM9oVi6YjgoxVruyllmJbWtHaWd+j9VYNSDsJZgEA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -4691,8 +4410,8 @@ packages: dev: true optional: true - /@tarojs/binding-win32-x64-msvc@3.6.21: - resolution: {integrity: sha512-R2MgL986T6W+24M2L4aD1kkoD+FVFlCqB05jmiBGwNvdgr1YNV7B0QyWh45+J2g24eGQXBlEPdwv8SGRpK3ysg==} + /@tarojs/binding-win32-x64-msvc@3.6.22: + resolution: {integrity: sha512-bqhQW0PfwR2ERsjcCclKbiE22T2OSJPG9u19WQMI93KcogM5weAB2VKmxBdjN1NXtqKjK3pjwofSHQd8Y2LAGA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4700,25 +4419,25 @@ packages: dev: true optional: true - /@tarojs/binding@3.6.21: - resolution: {integrity: sha512-gLCAfLKvdrADnQUoVkYFyNVxgWMuq5YBcp6YS2yo4/FqfH54Uc67LNFn3xLovXxQSeZJbCK5HLCe559G3vhrrw==} + /@tarojs/binding@3.6.22: + resolution: {integrity: sha512-q6LVE1XBrUrUw4vqS8hQxhAA5hX890Dlk2TxRo3jDpwNr2qC0/LqUrBBSfqpZtLsyuA1UGMnckzTTYXYABlotg==} optionalDependencies: - '@tarojs/binding-darwin-arm64': 3.6.21 - '@tarojs/binding-darwin-x64': 3.6.21 - '@tarojs/binding-linux-x64-gnu': 3.6.21 - '@tarojs/binding-win32-x64-msvc': 3.6.21 + '@tarojs/binding-darwin-arm64': 3.6.22 + '@tarojs/binding-darwin-x64': 3.6.22 + '@tarojs/binding-linux-x64-gnu': 3.6.22 + '@tarojs/binding-win32-x64-msvc': 3.6.22 dev: true - /@tarojs/cli@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-2afCwf6WuD+0/zrrBgKPFXLK1WItMB5JfrWg+tpRcXM8Oui9B65yae0lW0tAAEn+2hQvkmahqgi+o3pftovylg==} + /@tarojs/cli@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-HwhYCcn/bWBbfUXL2ep1ICqXir7EsiXJuREJEKoWZ7LgO9qh2ZWf7GzOHswhClpKjyYKLMiHtmLPfx9hIS4FKQ==} engines: {node: '>=12'} hasBin: true dependencies: - '@tarojs/binding': 3.6.21 - '@tarojs/helper': 3.6.21 + '@tarojs/binding': 3.6.22 + '@tarojs/helper': 3.6.22 '@tarojs/plugin-doctor': 0.0.11 - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 adm-zip: 0.4.16 cli-highlight: 2.1.11 download-git-repo: 2.0.0 @@ -4745,8 +4464,8 @@ packages: - vue dev: true - /@tarojs/components-advanced@3.6.21(@types/react@18.2.45)(react@18.2.0): - resolution: {integrity: sha512-9waFxBeApRGbjzUarm4HYfs0i4FYcLqm3Vm4orKiV7dqpry0i1b/vo8KUz2vDkS2qpOUpGWJ4nvUDS246NO0GQ==} + /@tarojs/components-advanced@3.6.22(@types/react@18.2.46)(react@18.2.0): + resolution: {integrity: sha512-O5ocw40AeeTwlRSV4H5UOWMPALEvjdE5Y297zcnWYJvuBId6Si6hd2hjdQ2HYXLzE0+dVrU8dCtM0WZScvqb6Q==} peerDependencies: react: '>=17' vue: '*' @@ -4756,11 +4475,11 @@ packages: vue: optional: true dependencies: - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/runtime': 3.6.21 - '@tarojs/shared': 3.6.21 - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - classnames: 2.4.0 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/runtime': 3.6.22 + '@tarojs/shared': 3.6.22 + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + classnames: 2.5.1 csstype: 3.1.3 memoize-one: 6.0.0 postcss: 8.4.32 @@ -4771,13 +4490,13 @@ packages: - '@types/webpack' - '@types/webpack-dev-server' - /@tarojs/components-react@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-pW/kqYwWMKTOCDCpGo9gcT4dsOUCmXn7zaO/QXzDp1bzpO7X3UDJi8ygdY9/RU5ex5sX52lOb5UFbW8D8QkaXg==} + /@tarojs/components-react@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-18HOKIb6ek+HCa1bcsTFhaOqNUy4kcpkHSy0eDO068eeMy3MT04pGIm/y/cUOrXyFpU4UyCthi0iYAaOpTwNvw==} dependencies: - '@babel/runtime': 7.23.6 - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - classnames: 2.4.0 + '@babel/runtime': 7.23.7 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + classnames: 2.5.1 intersection-observer: 0.7.0 resolve-pathname: 3.0.0 swiper: 6.8.0 @@ -4791,8 +4510,8 @@ packages: - vue dev: false - /@tarojs/components@3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0): - resolution: {integrity: sha512-Xih9e5ggny4IoCivxthwrS+wPZE8+88XorfLFcMbFiXjI1KoPP2IR5oRaVhXTyGpz4c4Sg2noCqtN/IwJbqjug==} + /@tarojs/components@3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0): + resolution: {integrity: sha512-U7HJSdS81PX9K3iG173NLt1zQdWluudCHpSIMcvTnGnTXJt6HqasXYJ8P8x0udQ6EZJtGL0ySNyIPFF9tdItAQ==} peerDependencies: '@types/react': '*' '@types/react-native': '*' @@ -4806,11 +4525,11 @@ packages: optional: true dependencies: '@stencil/core': 2.22.3 - '@tarojs/components-advanced': 3.6.21(@types/react@18.2.45)(react@18.2.0) - '@tarojs/router': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@types/react': 18.2.45 - classnames: 2.4.0 + '@tarojs/components-advanced': 3.6.22(@types/react@18.2.46)(react@18.2.0) + '@tarojs/router': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@types/react': 18.2.46 + classnames: 2.5.1 hls.js: 1.4.14 intersection-observer: 0.7.0 resolve-pathname: 3.0.0 @@ -4822,19 +4541,19 @@ packages: - postcss - react - /@tarojs/helper@3.6.21: - resolution: {integrity: sha512-Y5JzO69ZliSzHp60I4S4NhOX+Y7Yv9sPyhwLqGNSxFE6hpjdn0kJ9BB3rL21I8kayARqg/eO33ESOyrhZcgdBg==} + /@tarojs/helper@3.6.22: + resolution: {integrity: sha512-u2hnXcsg4gwF9JKQU4PWwVffUX52CL+7rfJwVZYUm3lgJ4xvbz3i6mYSBEnj+L6VquHnhr/jjPKAbE1ne2dQTA==} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/parser': 7.23.6 - '@babel/plugin-proposal-decorators': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.6) - '@babel/plugin-transform-runtime': 7.23.6(@babel/core@7.23.6) - '@babel/preset-env': 7.23.6(@babel/core@7.23.6) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.6) - '@babel/register': 7.22.15(@babel/core@7.23.6) - '@babel/runtime': 7.23.6 - '@babel/traverse': 7.23.6 + '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.7) + '@babel/plugin-transform-runtime': 7.23.7(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/register': 7.23.7(@babel/core@7.23.7) + '@babel/runtime': 7.23.7 + '@babel/traverse': 7.23.7 '@swc/core': 1.3.96 '@swc/register': 0.1.10(@swc/core@1.3.96) ansi-escapes: 4.3.2 @@ -4844,7 +4563,7 @@ packages: debug: 4.3.4 dotenv: 16.3.1 dotenv-expand: 9.0.0 - esbuild: 0.19.10 + esbuild: 0.19.11 find-yarn-workspace-root: 2.0.0 fs-extra: 8.1.0 lodash: 4.17.21 @@ -4980,8 +4699,8 @@ packages: - supports-color dev: true - /@tarojs/plugin-framework-react@3.6.21(@pmmmwh/react-refresh-webpack-plugin@0.5.11)(@types/react@18.2.45)(postcss@8.4.32)(react-refresh@0.14.0)(react@18.2.0): - resolution: {integrity: sha512-EyIWgPnndCiJrvpoyUPFzelniAASjOEMDMku4yoRvjZkuM0ztzR9ZMZLxPjfUAz10cL6gFLeNzCfiFWVeEJKBw==} + /@tarojs/plugin-framework-react@3.6.22(@pmmmwh/react-refresh-webpack-plugin@0.5.11)(@types/react@18.2.46)(postcss@8.4.32)(react-refresh@0.14.0)(react@18.2.0): + resolution: {integrity: sha512-C0zisUrKTVfF305sFOZjQi6Yxh7UYhhiETv9eRuLwVQvm5ZCkscBcqQC/hFygTT9m6Ex7wqaCpCpRh6+CASw2Q==} peerDependencies: '@pmmmwh/react-refresh-webpack-plugin': '*' '@prefresh/webpack': '*' @@ -5001,11 +4720,11 @@ packages: optional: true dependencies: '@pmmmwh/react-refresh-webpack-plugin': 0.5.11(react-refresh@0.14.0)(webpack@5.89.0) - '@tarojs/helper': 3.6.21 - '@tarojs/runtime': 3.6.21 - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 - acorn: 8.11.2 + '@tarojs/helper': 3.6.22 + '@tarojs/runtime': 3.6.22 + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 + acorn: 8.11.3 acorn-walk: 8.3.1 lodash: 4.17.21 react: 18.2.0 @@ -5020,12 +4739,12 @@ packages: - vue dev: false - /@tarojs/plugin-http@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-evWznnyufHDWX1ayOgo5Zo4MDnYLp/2Jd1Z8TClCztzBOzKV6FxqFOZ7C7DAL8xdQXD6pdoterk/FY47kZCcfQ==} + /@tarojs/plugin-http@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-Sls6OeSfSNcmG9fpHubSnWkApttI4+B4U+whHn43FPdWwlxV7Ko232Pp/R/BEJaBNWVP1/quT8XZLddyuhNw1g==} dependencies: - '@tarojs/runtime': 3.6.21 - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/runtime': 3.6.22 + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5036,14 +4755,14 @@ packages: - vue dev: true - /@tarojs/plugin-inject@3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0): - resolution: {integrity: sha512-zhCYA4jBqUOeSfTHJe9QLF4834LbJ+rAb5vGkb/yaFR5wYZPTpzyg3E/8stfGy+gSNSWCBLL1aVYwBvSkVR53g==} + /@tarojs/plugin-inject@3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0): + resolution: {integrity: sha512-4bzpeiMhZTnfbPyiwHmDHJvX23PEV2dLDXYeoEQihgpurrn2ZfeFcAXPp2LoVPruAfmPc/Z2sjwui4kbauWpYw==} peerDependencies: react: '>=17' dependencies: - '@tarojs/helper': 3.6.21 - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/helper': 3.6.22 + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 react: 18.2.0 transitivePeerDependencies: - '@swc/helpers' @@ -5055,12 +4774,12 @@ packages: - vue dev: true - /@tarojs/plugin-platform-alipay@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-C8E5ah5jxcmKke7jEnPVVvWdtKYOGnLKJvrZNm4BFvF9rRgkkoQs/1XILBGhtLSpSTTrLKp25FKB8fzmLBb+pg==} + /@tarojs/plugin-platform-alipay@3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0): + resolution: {integrity: sha512-dmhWl2BHsL1eUNjYRKrOwQJGkpdN/LGyu+++iFSM3ra8PzwaGRxq61u1LxC+7nkf8/9dJKtG5UoEoWprxQD5yg==} dependencies: - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5068,19 +4787,20 @@ packages: - '@types/webpack' - '@types/webpack-dev-server' - postcss + - react - supports-color - vue - /@tarojs/plugin-platform-h5@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-ykO2ragTsnakAkrSsOs0LnooAdsYj9+QojsGRGPHtpxtg+GEf2EDuE/YM1Dw+eJM3uUfYJPXg3p++VoeNMtVPw==} + /@tarojs/plugin-platform-h5@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-g3Xkyu7AAqZEGQtQ/rZ9WAecRPlg7YfvXoXgopRNlUXVqGX2Hoc1GTI/Zy/mQH2jXR4/ALIBkAUs2kBN+pPH6w==} dependencies: - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/components-react': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/router': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 - '@tarojs/taro-h5': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - babel-plugin-transform-taroapi: 3.6.21 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/components-react': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/router': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 + '@tarojs/taro-h5': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + babel-plugin-transform-taroapi: 3.6.22 change-case: 4.1.2 lodash-es: 4.17.21 resolve: 1.22.8 @@ -5095,11 +4815,11 @@ packages: - vue dev: false - /@tarojs/plugin-platform-jd@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-rATT/eEvM5+PMRsH4KpcLXKyMVknt7Z0+JQvVNzwk/xTJhzMUiTtD345bGAw83XFK7J25HCpHZ+trGmYvfiDiQ==} + /@tarojs/plugin-platform-jd@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-2b22hUK6WqbzPtJAXcxd/To5DF7aFQNEgRbKgnGk4wTjeUAsiAf1BV3xGe4ekPFvw4msaafXJT2fq1Qbn4bupA==} dependencies: - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5109,12 +4829,12 @@ packages: - supports-color - vue - /@tarojs/plugin-platform-qq@3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0): - resolution: {integrity: sha512-S7CJp6XOIDrmUDUyEUKcfR+abewfvOTRdk3fD3aU0tLW0U/D6Z8zXz6e/ZwO6FzDFLu87DVX+kdcbb4VpyTZIQ==} + /@tarojs/plugin-platform-qq@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-XMVvO2k3qEmNgY7lKFvwm2+JPW6m8FqvGp6n27tAlUFYEgnSH7ejyvNauKYDKbv1XZpQHPvbJE2ijq5Zdj5WKQ==} dependencies: - '@tarojs/plugin-platform-weapp': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/plugin-platform-weapp': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5122,16 +4842,15 @@ packages: - '@types/webpack' - '@types/webpack-dev-server' - postcss - - react - supports-color - vue - /@tarojs/plugin-platform-swan@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-SHh8SexJugdrGFyxpM7TBkiVJ2P7e+rrjQgqSv3cinn7cDIAsRTVdYEiS4v30JgNj9cL6w+FfrD5Oc4gi6KqFw==} + /@tarojs/plugin-platform-swan@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-dtRSyMOrr3flrdt49d2WPwJ3P34EWejIqHXCFfLXNc/isDvTpXgSKWyZYujEMxwtZlgATtvUefAz6OJza/KD6g==} dependencies: - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5142,12 +4861,12 @@ packages: - supports-color - vue - /@tarojs/plugin-platform-tt@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-gGe/ItWXKNAPLkqQALlra5Si2OnwQCqGt6cDZ85DImo9anEUw2M+X9LycoGwo1AW3z7GcpX4Ywko1hM7Z25iLQ==} + /@tarojs/plugin-platform-tt@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-V54BiUspY4U3VEMc8K0aG9YPbFZin5oc1t9btYgcP/fYmb8X7e19166Es9OyY5SnlVj4FiMBw/qEiFVSwCvtSg==} dependencies: - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5158,12 +4877,12 @@ packages: - supports-color - vue - /@tarojs/plugin-platform-weapp@3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0): - resolution: {integrity: sha512-2VKcegw68LFVc8iCo/Zl3ICpBM0T4MPOdcppu1HGt438cSErGhFE0AYY9xJBU0EgYP9b7268MXdey7zCNNrang==} + /@tarojs/plugin-platform-weapp@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-WjVfVYj63o8ATEL+rL0hkJlexDIp8jE3Ijv4BQIceQvHoBg2VkPtOE3ctZcb9FnfcEHkPOIV8+wK5iqkyBQhaw==} dependencies: - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/service': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/shared': 3.6.21 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/service': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/shared': 3.6.22 transitivePeerDependencies: - '@swc/helpers' - '@types/react' @@ -5171,25 +4890,24 @@ packages: - '@types/webpack' - '@types/webpack-dev-server' - postcss - - react - supports-color - vue - /@tarojs/react@3.6.21(react@18.2.0): - resolution: {integrity: sha512-9YIMqHaEELuQ+PRGFjhv4K1UWmJN3L4HBKgGtwcL8XcxvNH2CBwFnQuxXUp2NzXlcNuu+peXjtLmsFoq4vxxdQ==} + /@tarojs/react@3.6.22(react@18.2.0): + resolution: {integrity: sha512-m0Vkrn3s0c2OBEwsHAS+agW4ocyb53cYyttrX4pN2mtSevSOCAPqrBGb6vgGpiFnUNcCYdmw/N2ny5M1rLXTAA==} dependencies: - '@tarojs/runtime': 3.6.21 - '@tarojs/shared': 3.6.21 + '@tarojs/runtime': 3.6.22 + '@tarojs/shared': 3.6.22 react-reconciler: 0.27.0(react@18.2.0) transitivePeerDependencies: - react dev: false - /@tarojs/router@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-h9BNw+wsvFwbTeHx1XyyuQ1sbFwWktbSmdVDmrgL0kjuL2TqKivgFL5vAVi09btUyZ283IeZjN0DQsHIaBTyjw==} + /@tarojs/router@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-T9/nI0SrwOpBIgZxeKBx7cQyIWOpdso7t2tWDhmX1CMUNIXkcI0MOYffD/lYzMaH9W2rC2zzYJo16oASxy6Dyw==} dependencies: - '@tarojs/runtime': 3.6.21 - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + '@tarojs/runtime': 3.6.22 + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) dingtalk-jsapi: 2.15.4 history: 5.3.0 mobile-detect: 1.4.5 @@ -5202,28 +4920,28 @@ packages: - postcss - vue - /@tarojs/runner-utils@3.6.21: - resolution: {integrity: sha512-yvXLBe4i10JQ1dUkypEkZVtHYOsbezHDMbZv+/mQ+GaBGGezuKoBF/EkilahrGRHHtvj8uI1Oy9Ld3vJaOB+5w==} + /@tarojs/runner-utils@3.6.22: + resolution: {integrity: sha512-ya4nQHS6suXuTAUvn9FrwB7Gz4alcDvFQmI3oxcuKDowbTqWHLnqJGQeDkpyrAAtbSPlqpZZXtEpsscvZHlmUA==} dependencies: - '@tarojs/helper': 3.6.21 + '@tarojs/helper': 3.6.22 scss-bundle: 3.1.2 transitivePeerDependencies: - '@swc/helpers' - supports-color dev: true - /@tarojs/runtime@3.6.21: - resolution: {integrity: sha512-xV3gwDVgvEG4RSU5zapip/R21AIJ7DnfE8a2EmD4mjheSsecFzCiMgYy7TP8ShTJp76Z/S3oGoSIakvpvTP6yg==} + /@tarojs/runtime@3.6.22: + resolution: {integrity: sha512-D8gDrUeqBGE8+a8oVxEPEc1bczoX5H0P2T6AqS0dbELJQkGKWnBTvdRqyADtQXRKj7HXnCY0FuAhPsI4DFHTgg==} dependencies: - '@tarojs/shared': 3.6.21 + '@tarojs/shared': 3.6.22 lodash-es: 4.17.21 - /@tarojs/service@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-IQssh964xIqB//0BCQy93vUq8nNefrUhSUMSn1cZWRTdAoeqK+kaQRwL+9nqRZZPtwqrobpVnESwzsXKpEbPFA==} + /@tarojs/service@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-L5f2H022fIMSxIo0g9AAXZI8gPhwaDDS5lTD8Aawo5Q7ztROda7ml2FPmauK934WKZm2hd4FAnXSUbOcMDp5hA==} dependencies: - '@tarojs/helper': 3.6.21 - '@tarojs/shared': 3.6.21 - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + '@tarojs/helper': 3.6.22 + '@tarojs/shared': 3.6.22 + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) joi: 17.11.0 lodash: 4.17.21 ora: 5.4.1 @@ -5239,23 +4957,25 @@ packages: - supports-color - vue - /@tarojs/shared@3.6.21: - resolution: {integrity: sha512-pPr77YJ43t0SaoO/tGmFUgrOniiNcbbrhtBqGW8GEvC5fgjXyPyX2+Yt9+0Az3afDLXbIDolqWVnYy+F/gitwQ==} + /@tarojs/shared@3.6.22: + resolution: {integrity: sha512-a6diONs9jVK2BQpu03AO+oa+VWdv54eBoQFMtWTQKP3s6rT0IvRkxIcNbIwOlcyy6MPbLzERt32DIKbm9/IHwg==} - /@tarojs/taro-h5@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-PpJkcZL2I3K8EpKZRr5GOTv9N0BUTRgmgAhh65KlnpCW5v00bR4enVt7RTT9RBKy+LaZWyG0FbdEiHQm9z/hUg==} + /@tarojs/taro-h5@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-UDl8O4zX1CDaLsEG6p8fMNfa//FBB++qJycKZV51PYjCeFC9cXqfRpoqwweGjkgu9OjEimbYsC1ZLmCFWussug==} dependencies: - '@tarojs/api': 3.6.21 - '@tarojs/components': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/router': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/runtime': 3.6.21 - '@tarojs/shared': 3.6.21 + '@tarojs/api': 3.6.22 + '@tarojs/components': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/router': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/runtime': 3.6.22 + '@tarojs/shared': 3.6.22 abortcontroller-polyfill: 1.7.5 base64-js: 1.5.1 ics: 3.7.2 intersection-observer: 0.7.0 + is-mobile: 4.0.0 jsonp-retry: 1.0.3 lodash-es: 4.17.21 + platform: 1.3.6 query-string: 7.1.3 whatwg-fetch: 3.6.20 transitivePeerDependencies: @@ -5267,11 +4987,11 @@ packages: - vue dev: false - /@tarojs/taro-loader@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-b6DJ5t2s8XgHHcITGKn+D4241GBJdJIRWcOy6/nvpKNlTCB3sFwqqhAbF3hdsLyO1C4Tt3Jz5rbXUTg7K3j3sw==} + /@tarojs/taro-loader@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-7ovNaL6TUbxSc/lTRoBbiKVwXGLgC1bKHjq021ZYaI4YSSyfsMZ3+/1c4X4R8XUReZMesFks0X2pqiYchCyl9A==} dependencies: - '@tarojs/helper': 3.6.21 - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + '@tarojs/helper': 3.6.22 + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) loader-utils: 1.4.2 transitivePeerDependencies: - '@swc/helpers' @@ -5283,8 +5003,8 @@ packages: - vue dev: true - /@tarojs/taro@3.6.21(@types/react@18.2.45)(postcss@8.4.32): - resolution: {integrity: sha512-w1jYQYKO5pEhqEqXK5iJ5ItLva+1YSQpWo1LHLJ+q09qTS/fFM6WMFbaaWjj41/m7vDopPihzFH+/4+cuXL0OA==} + /@tarojs/taro@3.6.22(@types/react@18.2.46)(postcss@8.4.32): + resolution: {integrity: sha512-SfmzfAf2JYh4Av4RF2q9WEvgSDDjMjOeQjqCWIsYc36uJCyW+Iq5Is0A7CGWSrnHhjBLpGvv/bHzRwRwCBKilg==} peerDependencies: '@types/react': '*' '@types/webpack': '*' @@ -5303,19 +5023,19 @@ packages: vue: optional: true dependencies: - '@tarojs/api': 3.6.21 - '@tarojs/runtime': 3.6.21 - '@types/react': 18.2.45 + '@tarojs/api': 3.6.22 + '@tarojs/runtime': 3.6.22 + '@types/react': 18.2.46 postcss: 8.4.32 - /@tarojs/webpack5-prebundle@3.6.21(@types/react@18.2.45)(postcss@8.4.32)(webpack@5.89.0): - resolution: {integrity: sha512-lbcqY32pirr0qIT7yRILvteYL93jp2b+2Gc2AYMS0lJodvgeqgkzBa3kr97INmosPxTij+aW27uGkqyb/cMlMg==} + /@tarojs/webpack5-prebundle@3.6.22(@types/react@18.2.46)(postcss@8.4.32)(webpack@5.89.0): + resolution: {integrity: sha512-AEqrZW5j8HGzfGiCFL9L7JVYBEKXKp04/y3TpLyoEXJ2/HUX6N/hmc4PNQa+1QoMCA8Zw0c8L7ZsEtaB5L2JlA==} peerDependencies: webpack: ^5.78.0 dependencies: - '@tarojs/helper': 3.6.21 - '@tarojs/shared': 3.6.21 - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) + '@tarojs/helper': 3.6.22 + '@tarojs/shared': 3.6.22 + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) enhanced-resolve: 5.15.0 es-module-lexer: 0.10.5 lodash: 4.17.21 @@ -5332,35 +5052,35 @@ packages: - vue dev: true - /@tarojs/webpack5-runner@3.6.21(@babel/core@7.23.6)(@swc/core@1.3.96)(@types/react@18.2.45)(postcss@8.4.32)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.89.0): - resolution: {integrity: sha512-y4583b3gNGQI1BsSvspiKxRu3sJ8fN4AeEdnArLEa4UYAfoHG+PXpD3YutZiqeBzRsM91jaBQdrcNXuU2GkYVQ==} + /@tarojs/webpack5-runner@3.6.22(@babel/core@7.23.7)(@swc/core@1.3.96)(@types/react@18.2.46)(postcss@8.4.32)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3)(webpack@5.89.0): + resolution: {integrity: sha512-kFbW3eKRq4jWZqqjTarBA7TDLUk4QlWnsFPiWDI3WGnv3oG9SomxSyRFVH1lJp1sXPMLsXpwIAWltpBrevrnew==} peerDependencies: postcss: ^8.4.18 webpack: ^5.78.0 dependencies: '@parcel/css': 1.14.0 - '@tarojs/helper': 3.6.21 - '@tarojs/plugin-platform-alipay': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/plugin-platform-jd': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/plugin-platform-qq': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/plugin-platform-swan': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/plugin-platform-tt': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/plugin-platform-weapp': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(react@18.2.0) - '@tarojs/runner-utils': 3.6.21 - '@tarojs/runtime': 3.6.21 - '@tarojs/shared': 3.6.21 - '@tarojs/taro': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/taro-loader': 3.6.21(@types/react@18.2.45)(postcss@8.4.32) - '@tarojs/webpack5-prebundle': 3.6.21(@types/react@18.2.45)(postcss@8.4.32)(webpack@5.89.0) + '@tarojs/helper': 3.6.22 + '@tarojs/plugin-platform-alipay': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(react@18.2.0) + '@tarojs/plugin-platform-jd': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/plugin-platform-qq': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/plugin-platform-swan': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/plugin-platform-tt': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/plugin-platform-weapp': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/runner-utils': 3.6.22 + '@tarojs/runtime': 3.6.22 + '@tarojs/shared': 3.6.22 + '@tarojs/taro': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/taro-loader': 3.6.22(@types/react@18.2.46)(postcss@8.4.32) + '@tarojs/webpack5-prebundle': 3.6.22(@types/react@18.2.46)(postcss@8.4.32)(webpack@5.89.0) acorn-walk: 8.3.1 autoprefixer: 9.8.8 - babel-loader: 8.2.1(@babel/core@7.23.6)(webpack@5.89.0) + babel-loader: 8.2.1(@babel/core@7.23.7)(webpack@5.89.0) copy-webpack-plugin: 10.2.0(webpack@5.89.0) css-loader: 6.8.1(webpack@5.89.0) - css-minimizer-webpack-plugin: 3.4.1(@parcel/css@1.14.0)(csso@5.0.5)(esbuild@0.19.10)(webpack@5.89.0) + css-minimizer-webpack-plugin: 3.4.1(@parcel/css@1.14.0)(csso@5.0.5)(esbuild@0.19.11)(webpack@5.89.0) csso: 5.0.5 detect-port: 1.5.1 - esbuild: 0.19.10 + esbuild: 0.19.11 esbuild-loader: 2.18.0(webpack@5.89.0) file-loader: 6.0.0(webpack@5.89.0) html-minifier: 4.0.0 @@ -5377,11 +5097,11 @@ packages: mkdirp: 1.0.4 ora: 5.4.1 postcss: 8.4.32 - postcss-html-transform: 3.6.21(postcss@8.4.32) + postcss-html-transform: 3.6.22(postcss@8.4.32) postcss-import: 14.1.0(postcss@8.4.32) - postcss-loader: 7.3.3(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0) - postcss-plugin-constparse: 3.6.21(postcss@8.4.32) - postcss-pxtransform: 3.6.21(postcss@8.4.32) + postcss-loader: 7.3.4(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0) + postcss-plugin-constparse: 3.6.22(postcss@8.4.32) + postcss-pxtransform: 3.6.22(postcss@8.4.32) postcss-url: 10.1.3(postcss@8.4.32) regenerator-runtime: 0.11.1 resolve: 1.22.8 @@ -5392,7 +5112,7 @@ packages: style-loader: 3.3.1(webpack@5.89.0) stylus: 0.55.0 stylus-loader: 6.2.0(stylus@0.55.0)(webpack@5.89.0) - terser-webpack-plugin: 5.3.9(@swc/core@1.3.96)(esbuild@0.19.10)(webpack@5.89.0) + terser-webpack-plugin: 5.3.10(@swc/core@1.3.96)(esbuild@0.19.11)(webpack@5.89.0) url-loader: 4.1.0(file-loader@6.0.0)(webpack@5.89.0) vm2: 3.9.19 vue-loader: 15.11.1(css-loader@6.8.1)(lodash@4.17.21)(prettier@3.1.1)(react-dom@18.2.0)(react@18.2.0)(webpack@5.89.0) @@ -5521,7 +5241,7 @@ packages: '@babel/types': 7.23.6 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 dev: true /@types/babel__generator@7.6.8: @@ -5537,8 +5257,8 @@ packages: '@babel/types': 7.23.6 dev: true - /@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + /@types/babel__traverse@7.20.5: + resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: '@babel/types': 7.23.6 dev: true @@ -5547,26 +5267,26 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/bonjour@3.5.13: resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/connect-history-api-fallback@1.5.4: resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} dependencies: '@types/express-serve-static-core': 4.17.41 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/debug@4.1.12: @@ -5597,7 +5317,7 @@ packages: /@types/express-serve-static-core@4.17.41: resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -5615,20 +5335,20 @@ packages: /@types/fs-extra@8.1.5: resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/html-minifier-terser@6.1.0: @@ -5642,7 +5362,7 @@ packages: /@types/http-proxy@1.17.14: resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -5674,7 +5394,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/lodash.debounce@4.0.9: @@ -5714,16 +5434,11 @@ packages: /@types/node-forge@1.3.10: resolution: {integrity: sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true - /@types/node@20.10.4: - resolution: {integrity: sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==} - dependencies: - undici-types: 5.26.5 - - /@types/node@20.10.5: - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + /@types/node@20.10.6: + resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} dependencies: undici-types: 5.26.5 @@ -5750,8 +5465,8 @@ packages: resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} dev: true - /@types/react@18.2.45: - resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==} + /@types/react@18.2.46: + resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -5760,7 +5475,7 @@ packages: /@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/retry@0.12.0: @@ -5777,10 +5492,6 @@ packages: /@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - /@types/semver@7.5.4: - resolution: {integrity: sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ==} - dev: true - /@types/semver@7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true @@ -5789,7 +5500,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/serve-index@1.9.4: @@ -5803,13 +5514,13 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/sockjs@0.3.36: resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/stack-utils@2.0.3: @@ -5823,7 +5534,7 @@ packages: /@types/ws@8.5.10: resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /@types/yargs-parser@21.0.3: @@ -5842,8 +5553,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-j5qoikQqPccq9QoBAupOP+CBu8BaJ8BLjaXSioDISeTZkVO3ig7oSIKh3H+rEpee7xCXtWwSB4KIL5l6hWZzpg==} + /@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-Vih/4xLXmY7V490dGwBQJTpIZxH4ZFH6eCVmQ4RFkB+wmaCTDAx4dtgoWwMNGKLkqRY1L6rPqzEbjorRnDo4rQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -5854,40 +5565,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/type-utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.4 - eslint: 8.56.0 - graphemer: 1.4.0 - ignore: 5.3.0 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/eslint-plugin@6.16.0(@typescript-eslint/parser@6.16.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/type-utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/type-utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -5920,29 +5602,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.15.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-MkgKNnsjC6QwcMdlNAel24jjkEO/0hQaMDLqP4S9zq5HBAUJNQB6y+3DwLjX7b3l2b37eNAxMPLwb3/kh8VKdA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.4 - eslint: 8.56.0 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw==} + /@typescript-eslint/parser@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-C4bBaX2orvhK+LlwrY8oWGmSl4WolCfYm513gEccdWZj0CwGadbIADb0FtVEcI+WzUyjyoBj2JRP8g25E6IB8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5951,10 +5612,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -5970,44 +5631,16 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.15.0: - resolution: {integrity: sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 - dev: true - - /@typescript-eslint/scope-manager@6.16.0: - resolution: {integrity: sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw==} + /@typescript-eslint/scope-manager@6.17.0: + resolution: {integrity: sha512-RX7a8lwgOi7am0k17NUO0+ZmMOX4PpjLtLRgLmT1d3lBYdWH4ssBUbwdmc5pdRX8rXon8v9x8vaoOSpkHfcXGA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 - dev: true - - /@typescript-eslint/type-utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-CnmHKTfX6450Bo49hPg2OkIm/D/TVYV7jO1MCfPYGwf6x3GO0VU8YMO5AYMn+u3X05lRRxA4fWCz87GFQV6yVQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 dev: true - /@typescript-eslint/type-utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg==} + /@typescript-eslint/type-utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-hDXcWmnbtn4P2B37ka3nil3yi3VCQO2QEB9gBiHJmQp5wmyQWqnjA85+ZcE8c4FqnaB6lBwMrPkgd4aBYz3iNg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -6016,8 +5649,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -6031,13 +5664,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@6.15.0: - resolution: {integrity: sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/types@6.16.0: - resolution: {integrity: sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ==} + /@typescript-eslint/types@6.17.0: + resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -6062,8 +5690,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.15.0(typescript@5.3.3): - resolution: {integrity: sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew==} + /@typescript-eslint/typescript-estree@6.17.0(typescript@5.3.3): + resolution: {integrity: sha512-gVQe+SLdNPfjlJn5VNGhlOhrXz4cajwFd5kAgWtZ9dCZf4XJf8xmgCTLIqec7aha3JwgLI2CK6GY1043FRxZwg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -6071,29 +5699,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/visitor-keys': 6.15.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/typescript-estree@6.16.0(typescript@5.3.3): - resolution: {integrity: sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/visitor-keys': 6.16.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/visitor-keys': 6.17.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -6112,8 +5719,8 @@ packages: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.14 - '@types/semver': 7.5.4 + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) @@ -6125,8 +5732,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.15.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw==} + /@typescript-eslint/utils@6.17.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-LofsSPjN/ITNkzV47hxas2JCsNCEnGhVvocfyOcLzT9c/tSZE7SfhS/iWtzP1lKNOEfLhRTZz6xqI8N2RzweSQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -6134,28 +5741,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.15.0 - '@typescript-eslint/types': 6.15.0 - '@typescript-eslint/typescript-estree': 6.15.0(typescript@5.3.3) - eslint: 8.56.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/utils@6.16.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.16.0 - '@typescript-eslint/types': 6.16.0 - '@typescript-eslint/typescript-estree': 6.16.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.17.0 + '@typescript-eslint/types': 6.17.0 + '@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -6171,19 +5759,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.15.0: - resolution: {integrity: sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w==} + /@typescript-eslint/visitor-keys@6.17.0: + resolution: {integrity: sha512-H6VwB/k3IuIeQOyYczyyKN8wH6ed8EwliaYHLxOIhyF0dYEIsN8+Bk3GE19qafeMKyZJJHP8+O1HiFhFLUNKSg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.15.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@typescript-eslint/visitor-keys@6.16.0: - resolution: {integrity: sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.16.0 + '@typescript-eslint/types': 6.17.0 eslint-visitor-keys: 3.4.3 dev: true @@ -6198,15 +5778,15 @@ packages: terser: ^5.4.0 vite: ^4.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/preset-env': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) browserslist: 4.22.1 - core-js: 3.33.2 + core-js: 3.35.0 magic-string: 0.30.5 regenerator-runtime: 0.13.11 systemjs: 6.14.2 terser: 5.22.0 - vite: 5.0.10(@types/node@20.10.4)(sass@1.69.5)(terser@5.22.0) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.6)(terser@5.22.0) transitivePeerDependencies: - supports-color dev: true @@ -6218,10 +5798,10 @@ packages: vite: ^4.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.6) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.6) - vite: 5.0.10(@types/node@20.10.4)(sass@1.69.5)(terser@5.22.0) + '@babel/core': 7.23.7 + '@babel/plugin-transform-typescript': 7.22.15(@babel/core@7.23.7) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.23.7) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.6)(terser@5.22.0) vue: 3.3.12(typescript@5.3.3) transitivePeerDependencies: - supports-color @@ -6234,23 +5814,23 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 5.0.10(@types/node@20.10.4)(sass@1.69.5)(terser@5.22.0) + vite: 5.0.10(@types/node@20.10.6)(sass@1.69.6)(terser@5.22.0) vue: 3.3.12(typescript@5.3.3) /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} dev: true - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.6): + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.23.7): resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/helper-module-imports': 7.22.15 - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) '@babel/template': 7.22.15 - '@babel/traverse': 7.23.6 + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 @@ -6263,7 +5843,7 @@ packages: /@vue/compiler-core@3.2.47: resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} dependencies: - '@babel/parser': 7.23.6 + '@babel/parser': 7.23.0 '@vue/shared': 3.2.47 estree-walker: 2.0.2 source-map: 0.6.1 @@ -6276,11 +5856,12 @@ packages: estree-walker: 2.0.2 source-map-js: 1.0.2 - /@vue/compiler-core@3.3.13: - resolution: {integrity: sha512-bwi9HShGu7uaZLOErZgsH2+ojsEdsjerbf2cMXPwmvcgZfVPZ2BVZzCVnwZBxTAYd6Mzbmf6izcUNDkWnBBQ6A==} + /@vue/compiler-core@3.4.3: + resolution: {integrity: sha512-u8jzgFg0EDtSrb/hG53Wwh1bAOQFtc1ZCegBpA/glyvTlgHl+tq13o1zvRfLbegYUw/E4mSTGOiCnAJ9SJ+lsg==} dependencies: '@babel/parser': 7.23.6 - '@vue/shared': 3.3.13 + '@vue/shared': 3.4.3 + entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.0.2 dev: true @@ -6297,17 +5878,17 @@ packages: '@vue/compiler-core': 3.3.12 '@vue/shared': 3.3.12 - /@vue/compiler-dom@3.3.13: - resolution: {integrity: sha512-EYRDpbLadGtNL0Gph+HoKiYqXLqZ0xSSpR5Dvnu/Ep7ggaCbjRDIus1MMxTS2Qm0koXED4xSlvTZaTnI8cYAsw==} + /@vue/compiler-dom@3.4.3: + resolution: {integrity: sha512-oGF1E9/htI6JWj/lTJgr6UgxNCtNHbM6xKVreBWeZL9QhRGABRVoWGAzxmtBfSOd+w0Zi5BY0Es/tlJrN6WgEg==} dependencies: - '@vue/compiler-core': 3.3.13 - '@vue/shared': 3.3.13 + '@vue/compiler-core': 3.4.3 + '@vue/shared': 3.4.3 dev: true /@vue/compiler-sfc@3.2.47: resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} dependencies: - '@babel/parser': 7.23.6 + '@babel/parser': 7.23.0 '@vue/compiler-core': 3.2.47 '@vue/compiler-dom': 3.2.47 '@vue/compiler-ssr': 3.2.47 @@ -6332,15 +5913,14 @@ packages: postcss: 8.4.32 source-map-js: 1.0.2 - /@vue/compiler-sfc@3.3.13: - resolution: {integrity: sha512-DQVmHEy/EKIgggvnGRLx21hSqnr1smUS9Aq8tfxiiot8UR0/pXKHN9k78/qQ7etyQTFj5em5nruODON7dBeumw==} + /@vue/compiler-sfc@3.4.3: + resolution: {integrity: sha512-NuJqb5is9I4uzv316VRUDYgIlPZCG8D+ARt5P4t5UDShIHKL25J3TGZAUryY/Aiy0DsY7srJnZL5ryB6DD63Zw==} dependencies: '@babel/parser': 7.23.6 - '@vue/compiler-core': 3.3.13 - '@vue/compiler-dom': 3.3.13 - '@vue/compiler-ssr': 3.3.13 - '@vue/reactivity-transform': 3.3.13 - '@vue/shared': 3.3.13 + '@vue/compiler-core': 3.4.3 + '@vue/compiler-dom': 3.4.3 + '@vue/compiler-ssr': 3.4.3 + '@vue/shared': 3.4.3 estree-walker: 2.0.2 magic-string: 0.30.5 postcss: 8.4.32 @@ -6359,11 +5939,11 @@ packages: '@vue/compiler-dom': 3.3.12 '@vue/shared': 3.3.12 - /@vue/compiler-ssr@3.3.13: - resolution: {integrity: sha512-d/P3bCeUGmkJNS1QUZSAvoCIW4fkOKK3l2deE7zrp0ypJEy+En2AcypIkqvcFQOcw3F0zt2VfMvNsA9JmExTaw==} + /@vue/compiler-ssr@3.4.3: + resolution: {integrity: sha512-wnYQtMBkeFSxgSSQbYGQeXPhQacQiog2c6AlvMldQH6DB+gSXK/0F6DVXAJfEiuBSgBhUc8dwrrG5JQcqwalsA==} dependencies: - '@vue/compiler-dom': 3.3.13 - '@vue/shared': 3.3.13 + '@vue/compiler-dom': 3.4.3 + '@vue/shared': 3.4.3 dev: true /@vue/component-compiler-utils@3.3.0(lodash@4.17.21)(react-dom@18.2.0)(react@18.2.0): @@ -6374,7 +5954,7 @@ packages: lru-cache: 4.1.5 merge-source-map: 1.1.0 postcss: 7.0.39 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 source-map: 0.6.1 vue-template-es2015-compiler: 1.9.1 optionalDependencies: @@ -6442,7 +6022,7 @@ packages: /@vue/reactivity-transform@3.2.47: resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} dependencies: - '@babel/parser': 7.23.6 + '@babel/parser': 7.23.0 '@vue/compiler-core': 3.2.47 '@vue/shared': 3.2.47 estree-walker: 2.0.2 @@ -6457,25 +6037,15 @@ packages: estree-walker: 2.0.2 magic-string: 0.30.5 - /@vue/reactivity-transform@3.3.13: - resolution: {integrity: sha512-oWnydGH0bBauhXvh5KXUy61xr9gKaMbtsMHk40IK9M4gMuKPJ342tKFarY0eQ6jef8906m35q37wwA8DMZOm5Q==} - dependencies: - '@babel/parser': 7.23.6 - '@vue/compiler-core': 3.3.13 - '@vue/shared': 3.3.13 - estree-walker: 2.0.2 - magic-string: 0.30.5 - dev: true - /@vue/reactivity@3.3.12: resolution: {integrity: sha512-vOJORzO8DlIx88cgTnMLIf2GlLYpoXAKsuoQsK6SGdaqODjxO129pVPTd2s/N/Mb6KKZEFIHIEwWGmtN4YPs+g==} dependencies: '@vue/shared': 3.3.12 - /@vue/reactivity@3.3.13: - resolution: {integrity: sha512-fjzCxceMahHhi4AxUBzQqqVhuA21RJ0COaWTbIBl1PruGW1CeY97louZzLi4smpYx+CHfFPPU/CS8NybbGvPKQ==} + /@vue/reactivity@3.4.3: + resolution: {integrity: sha512-q5f9HLDU+5aBKizXHAx0w4whkIANs1Muiq9R5YXm0HtorSlflqv9u/ohaMxuuhHWCji4xqpQ1eL04WvmAmGnFg==} dependencies: - '@vue/shared': 3.3.13 + '@vue/shared': 3.4.3 dev: true /@vue/runtime-core@3.3.12: @@ -6484,11 +6054,11 @@ packages: '@vue/reactivity': 3.3.12 '@vue/shared': 3.3.12 - /@vue/runtime-core@3.3.13: - resolution: {integrity: sha512-1TzA5TvGuh2zUwMJgdfvrBABWZ7y8kBwBhm7BXk8rvdx2SsgcGfz2ruv2GzuGZNvL1aKnK8CQMV/jFOrxNQUMA==} + /@vue/runtime-core@3.4.3: + resolution: {integrity: sha512-C1r6QhB1qY7D591RCSFhMULyzL9CuyrGc+3PpB0h7dU4Qqw6GNyo4BNFjHZVvsWncrUlKX3DIKg0Y7rNNr06NQ==} dependencies: - '@vue/reactivity': 3.3.13 - '@vue/shared': 3.3.13 + '@vue/reactivity': 3.4.3 + '@vue/shared': 3.4.3 dev: true /@vue/runtime-dom@3.3.12: @@ -6522,14 +6092,14 @@ packages: /@vue/shared@3.3.12: resolution: {integrity: sha512-6p0Yin0pclvnER7BLNOQuod9Z+cxSYh8pSh7CzHnWNjAIP6zrTlCdHRvSCb1aYEx6i3Q3kvfuWU7nG16CgG1ag==} - /@vue/shared@3.3.13: - resolution: {integrity: sha512-/zYUwiHD8j7gKx2argXEMCUXVST6q/21DFU0sTfNX0URJroCe3b1UF6vLJ3lQDfLNIiiRl2ONp7Nh5UVWS6QnA==} - dev: true - /@vue/shared@3.3.6: resolution: {integrity: sha512-Xno5pEqg8SVhomD0kTSmfh30ZEmV/+jZtyh39q6QflrjdJCXah5lrnOLi9KB6a5k5aAHXMXjoMnxlzUkCNfWLQ==} dev: false + /@vue/shared@3.4.3: + resolution: {integrity: sha512-rIwlkkP1n4uKrRzivAKPZIEkHiuwY5mmhMJ2nZKCBLz8lTUlE73rQh4n1OnnMurXt1vcUNyH4ZPfdh8QweTjpQ==} + dev: true + /@weapp-core/escape@2.0.0: resolution: {integrity: sha512-AB34eFpoVfj/urfJPoZURwamSzLlMuDL6TNV+aXLW8aJsw3ud0/XkrEL/FkBsuaTgTD1rarip+y4NkQwrhQ91A==} dev: true @@ -6666,7 +6236,7 @@ packages: /acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 acorn-walk: 8.3.1 dev: true @@ -6709,6 +6279,12 @@ packages: resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} engines: {node: '>=0.4.0'} hasBin: true + dev: true + + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true /address@1.2.2: resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} @@ -6720,7 +6296,7 @@ packages: engines: {node: '>=8.9'} dependencies: loader-utils: 2.0.4 - regex-parser: 2.2.11 + regex-parser: 2.3.0 dev: true /adm-zip@0.4.16: @@ -7038,7 +6614,7 @@ packages: hasBin: true dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001571 + caniuse-lite: 1.0.30001572 normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 @@ -7071,18 +6647,18 @@ packages: resolution: {integrity: sha512-eYNceYtcGKpifHDir62gHJadVXdg9fAhuZEXiRQnJJ4Yi4oUTpqpNY//1pM4nVyjjDMPYaC2xSf0I+9IqVzwdA==} dev: true - /babel-jest@27.5.1(@babel/core@7.23.6): + /babel-jest@27.5.1(@babel/core@7.23.7): resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1(@babel/core@7.23.6) + babel-preset-jest: 27.5.1(@babel/core@7.23.7) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -7090,14 +6666,14 @@ packages: - supports-color dev: true - /babel-loader@8.2.1(@babel/core@7.23.6)(webpack@5.89.0): + /babel-loader@8.2.1(@babel/core@7.23.7)(webpack@5.89.0): resolution: {integrity: sha512-dMF8sb2KQ8kJl21GUjkW1HWmcsL39GOV5vnzjqrCzEPNY0S0UfMLnumidiwIajDSBmKhYf5iRW+HXaM4cvCKBw==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 find-cache-dir: 2.1.0 loader-utils: 1.4.2 make-dir: 2.1.0 @@ -7132,7 +6708,7 @@ packages: '@babel/template': 7.22.15 '@babel/types': 7.23.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 dev: true /babel-plugin-minify-dead-code-elimination@0.5.2: @@ -7144,72 +6720,36 @@ packages: lodash: 4.17.21 dev: true - /babel-plugin-polyfill-corejs2@0.4.6(@babel/core@7.23.6): - resolution: {integrity: sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.6) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.6): + /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-corejs3@0.8.6(@babel/core@7.23.6): - resolution: {integrity: sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.6) - core-js-compat: 3.33.2 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.6): + /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) - core-js-compat: 3.34.0 - transitivePeerDependencies: - - supports-color - - /babel-plugin-polyfill-regenerator@0.5.3(@babel/core@7.23.6): - resolution: {integrity: sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==} - peerDependencies: - '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + core-js-compat: 3.35.0 transitivePeerDependencies: - supports-color - dev: true - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.6): + /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) transitivePeerDependencies: - supports-color @@ -7219,66 +6759,66 @@ packages: is-invalid-path: 1.0.2 dev: true - /babel-plugin-transform-taroapi@3.6.21: - resolution: {integrity: sha512-hKH7Lwjd88dtWVQxo4kmCk7rqhxmLltxCrJHsZUipGFWj+ii6M/DRmNZYCkqDviXlDxtO6BmTl+lI9/wriGBNQ==} + /babel-plugin-transform-taroapi@3.6.22: + resolution: {integrity: sha512-Uuq2yhtONPbgy6YXMPB6t34D1CgyXo9p0xHqTppUdypeANJAr28aFyGMAoA5tGgul5KYeP2uBicIPnfEsHgZuA==} dependencies: lodash: 4.17.21 dev: false - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.6): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.7): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.6) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.6) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.6) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.6) - dev: true - - /babel-preset-jest@27.5.1(@babel/core@7.23.6): + '@babel/core': 7.23.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) + dev: true + + /babel-preset-jest@27.5.1(@babel/core@7.23.7): resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.6) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) dev: true - /babel-preset-taro@3.6.21(@babel/core@7.23.6): - resolution: {integrity: sha512-MihvFR0zLcUml17lObfQJm50vzOSyHo2b4hNh9+O7rGmmBKMCJWkGRokQSSUa43VEfrc6q7OgIvmz9RClJKMVw==} + /babel-preset-taro@3.6.22(@babel/core@7.23.7): + resolution: {integrity: sha512-wbixJbg3MJMkDG6IfmX9ld332U1zFtxDvHfizZKlJy/6lsCfqFtzKcmJS6+9obwDR6wK0TRvzi/chHRcSfunyA==} peerDependencies: '@babel/core': '*' dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-proposal-decorators': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-runtime': 7.23.6(@babel/core@7.23.6) - '@babel/preset-env': 7.23.6(@babel/core@7.23.6) - '@babel/preset-react': 7.23.3(@babel/core@7.23.6) - '@babel/preset-typescript': 7.23.3(@babel/core@7.23.6) - '@babel/runtime': 7.23.6 - '@babel/runtime-corejs3': 7.23.6 - '@tarojs/helper': 3.6.21 - '@tarojs/shared': 3.6.21 + '@babel/core': 7.23.7 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-decorators': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-runtime': 7.23.7(@babel/core@7.23.7) + '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-react': 7.23.3(@babel/core@7.23.7) + '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/runtime': 7.23.7 + '@babel/runtime-corejs3': 7.23.7 + '@tarojs/helper': 3.6.22 + '@tarojs/shared': 3.6.22 babel-plugin-dynamic-import-node: 2.3.3 babel-plugin-minify-dead-code-elimination: 0.5.2 babel-plugin-transform-imports-api: 1.0.0 - core-js: 3.34.0 + core-js: 3.35.0 lodash: 4.17.21 - metro-react-native-babel-preset: 0.72.4(@babel/core@7.23.6) + metro-react-native-babel-preset: 0.72.4(@babel/core@7.23.7) react-refresh: 0.11.0 transitivePeerDependencies: - '@swc/helpers' @@ -7310,11 +6850,6 @@ packages: tweetnacl: 0.14.5 dev: true - /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} - dev: true - /big.js@5.2.2: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} @@ -7391,13 +6926,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.51 - dev: true - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -7490,13 +7018,6 @@ packages: semver: 7.5.4 dev: true - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 - dev: true - /bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -7630,7 +7151,7 @@ packages: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001571 + caniuse-lite: 1.0.30001572 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: true @@ -7641,8 +7162,8 @@ packages: /caniuse-lite@1.0.30001570: resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==} - /caniuse-lite@1.0.30001571: - resolution: {integrity: sha512-tYq/6MoXhdezDLFZuCO/TKboTzuQ/xR5cFdgXPfDtM7/kchBO3b4VWghE/OAi/DV7tTdhmLjZiZBZi1fA/GheQ==} + /caniuse-lite@1.0.30001572: + resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} dev: true /capital-case@1.0.4: @@ -7761,8 +7282,8 @@ packages: clsx: 2.0.0 dev: false - /classnames@2.4.0: - resolution: {integrity: sha512-lWxiIlphgAhTLN657pwU/ofFxsUTOWc2CRIFeoV5st0MGRJHStUnWIUJgDHxjUO/F0mXzGufXIM4Lfu/8h+MpA==} + /classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} /clean-css@4.2.4: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} @@ -8199,14 +7720,8 @@ packages: webpack: 5.89.0(@swc/core@1.3.96) dev: true - /core-js-compat@3.33.2: - resolution: {integrity: sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==} - dependencies: - browserslist: 4.22.1 - dev: true - - /core-js-compat@3.34.0: - resolution: {integrity: sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA==} + /core-js-compat@3.35.0: + resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==} dependencies: browserslist: 4.22.2 @@ -8214,8 +7729,8 @@ packages: resolution: {integrity: sha512-wCXGbLjnsP10PlK/thHSQlOLlLKNEkaWbTzVvHHZ79fZNeN1gUmw2gBlpItxPv/pvqldevEXFh/d5stdNvl6EQ==} requiresBuild: true - /core-js-pure@3.34.0: - resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==} + /core-js-pure@3.35.0: + resolution: {integrity: sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew==} requiresBuild: true dev: true @@ -8224,13 +7739,8 @@ packages: requiresBuild: true dev: false - /core-js@3.33.2: - resolution: {integrity: sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==} - requiresBuild: true - dev: true - - /core-js@3.34.0: - resolution: {integrity: sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag==} + /core-js@3.35.0: + resolution: {integrity: sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==} requiresBuild: true dev: true @@ -8365,7 +7875,7 @@ packages: webpack: 5.89.0(@swc/core@1.3.96) dev: true - /css-minimizer-webpack-plugin@3.4.1(@parcel/css@1.14.0)(csso@5.0.5)(esbuild@0.19.10)(webpack@5.89.0): + /css-minimizer-webpack-plugin@3.4.1(@parcel/css@1.14.0)(csso@5.0.5)(esbuild@0.19.11)(webpack@5.89.0): resolution: {integrity: sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -8387,7 +7897,7 @@ packages: '@parcel/css': 1.14.0 cssnano: 5.1.15(postcss@8.4.32) csso: 5.0.5 - esbuild: 0.19.10 + esbuild: 0.19.11 jest-worker: 27.5.1 postcss: 8.4.32 schema-utils: 4.2.0 @@ -8750,24 +8260,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - dev: true - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - dev: true - /default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -8798,11 +8290,6 @@ packages: engines: {node: '>=8'} dev: true - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true - /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -8827,8 +8314,8 @@ packages: hasBin: true dependencies: '@babel/parser': 7.23.6 - '@babel/traverse': 7.23.6 - '@vue/compiler-sfc': 3.3.13 + '@babel/traverse': 7.23.7 + '@vue/compiler-sfc': 3.4.3 callsite: 1.0.0 camelcase: 6.3.0 cosmiconfig: 7.1.0 @@ -9553,35 +9040,35 @@ packages: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - /esbuild@0.19.10: - resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} + /esbuild@0.19.11: + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.19.10 - '@esbuild/android-arm': 0.19.10 - '@esbuild/android-arm64': 0.19.10 - '@esbuild/android-x64': 0.19.10 - '@esbuild/darwin-arm64': 0.19.10 - '@esbuild/darwin-x64': 0.19.10 - '@esbuild/freebsd-arm64': 0.19.10 - '@esbuild/freebsd-x64': 0.19.10 - '@esbuild/linux-arm': 0.19.10 - '@esbuild/linux-arm64': 0.19.10 - '@esbuild/linux-ia32': 0.19.10 - '@esbuild/linux-loong64': 0.19.10 - '@esbuild/linux-mips64el': 0.19.10 - '@esbuild/linux-ppc64': 0.19.10 - '@esbuild/linux-riscv64': 0.19.10 - '@esbuild/linux-s390x': 0.19.10 - '@esbuild/linux-x64': 0.19.10 - '@esbuild/netbsd-x64': 0.19.10 - '@esbuild/openbsd-x64': 0.19.10 - '@esbuild/sunos-x64': 0.19.10 - '@esbuild/win32-arm64': 0.19.10 - '@esbuild/win32-ia32': 0.19.10 - '@esbuild/win32-x64': 0.19.10 + '@esbuild/aix-ppc64': 0.19.11 + '@esbuild/android-arm': 0.19.11 + '@esbuild/android-arm64': 0.19.11 + '@esbuild/android-x64': 0.19.11 + '@esbuild/darwin-arm64': 0.19.11 + '@esbuild/darwin-x64': 0.19.11 + '@esbuild/freebsd-arm64': 0.19.11 + '@esbuild/freebsd-x64': 0.19.11 + '@esbuild/linux-arm': 0.19.11 + '@esbuild/linux-arm64': 0.19.11 + '@esbuild/linux-ia32': 0.19.11 + '@esbuild/linux-loong64': 0.19.11 + '@esbuild/linux-mips64el': 0.19.11 + '@esbuild/linux-ppc64': 0.19.11 + '@esbuild/linux-riscv64': 0.19.11 + '@esbuild/linux-s390x': 0.19.11 + '@esbuild/linux-x64': 0.19.11 + '@esbuild/netbsd-x64': 0.19.11 + '@esbuild/openbsd-x64': 0.19.11 + '@esbuild/sunos-x64': 0.19.11 + '@esbuild/win32-arm64': 0.19.11 + '@esbuild/win32-ia32': 0.19.11 + '@esbuild/win32-x64': 0.19.11 /esbuild@0.19.9: resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==} @@ -9674,7 +9161,7 @@ packages: eslint: 8.56.0 dev: true - /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.4.0)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1)(eslint-plugin-n@16.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.56.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -9684,17 +9171,17 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0) - eslint-plugin-n: 16.4.0(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0) + eslint-plugin-n: 16.6.1(eslint@8.56.0) eslint-plugin-promise: 6.1.1(eslint@8.56.0) dev: true - /eslint-config-taro@3.6.21(@babel/core@7.23.6)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-Mwwbs60XJ2jxHwXgIJk8u3LibuJQyTN4FQ8K2lwAXcS3lvH+VjCBFkXnWKc7vH+E9xM0DyFIM+LL3G8LE1LHdA==} + /eslint-config-taro@3.6.22(@babel/core@7.23.7)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-mXVlJFlZvDD7/VZ8fIz5dtgkazex3eRpF5BySf+pgJxnQuvDJHQfIHQ0T/gbfthbm/zmTgME7IXoA1VD7rHB3g==} peerDependencies: eslint: '*' dependencies: - '@babel/eslint-parser': 7.23.3(@babel/core@7.23.6)(eslint@8.56.0) + '@babel/eslint-parser': 7.23.3(@babel/core@7.23.7)(eslint@8.56.0) '@typescript-eslint/parser': 5.62.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 transitivePeerDependencies: @@ -9713,36 +9200,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - debug: 3.2.7 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -9763,7 +9221,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 @@ -9783,42 +9241,7 @@ packages: eslint-compat-utils: 0.1.2(eslint@8.56.0) dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.15.0)(eslint@8.56.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 6.15.0(eslint@8.56.0)(typescript@5.3.3) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.15.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.16.0)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.17.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -9828,7 +9251,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.16.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -9837,7 +9260,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.16.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -9853,8 +9276,8 @@ packages: - supports-color dev: true - /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.15.0)(eslint@8.56.0)(jest@27.0.4)(typescript@5.3.3): - resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==} + /eslint-plugin-jest@27.6.1(@typescript-eslint/eslint-plugin@6.17.0)(eslint@8.56.0)(jest@27.0.4)(typescript@5.3.3): + resolution: {integrity: sha512-WEYkyVXD9NlmFBKvrkmzrC+C9yZoz5pAml2hO19PlS3spJtoiwj4p2u8spd/7zx5IvRsZsCmsoImaAvBB9X93Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 @@ -9866,7 +9289,7 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.15.0(@typescript-eslint/parser@6.15.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 jest: 27.0.4 @@ -9875,8 +9298,8 @@ packages: - typescript dev: true - /eslint-plugin-n@16.4.0(eslint@8.56.0): - resolution: {integrity: sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==} + /eslint-plugin-n@16.6.1(eslint@8.56.0): + resolution: {integrity: sha512-M1kE5bVQRLBMDYRZwDhWzlzbp370SRRRC1MHqq4I3L2Tatey+9/2csc5mwLDPlmhJaDvkojbrNUME5/llpRyDg==} engines: {node: '>=16.0.0'} peerDependencies: eslint: '>=7.0.0' @@ -9886,6 +9309,7 @@ packages: eslint: 8.56.0 eslint-plugin-es-x: 7.5.0(eslint@8.56.0) get-tsconfig: 4.7.2 + globals: 13.24.0 ignore: 5.3.0 is-builtin-module: 3.2.1 is-core-module: 2.13.1 @@ -9894,27 +9318,6 @@ packages: semver: 7.5.4 dev: true - /eslint-plugin-prettier@5.1.0(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): - resolution: {integrity: sha512-hQc+2zbnMeXcIkg+pKZtVa+3Yqx4WY7SMkn1PLZ4VbBEU7jJIpVn9347P8BBhTbz6ne85aXvQf30kvexcqBeWw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) - prettier: 3.1.1 - prettier-linter-helpers: 1.0.0 - synckit: 0.8.6 - dev: true - /eslint-plugin-prettier@5.1.2(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.1.1): resolution: {integrity: sha512-dhlpWc9vOwohcWmClFcA+HjlvUpuyynYs0Rf+L/P6/0iQE6vlHW9l5bkfzN62/Stm9fbq8ku46qzde76T1xlSg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -10156,6 +9559,12 @@ packages: /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + dependencies: + '@types/estree': 1.0.5 + dev: true + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -10188,21 +9597,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: true - /exif-parser@0.1.12: resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} dev: false @@ -10546,8 +9940,8 @@ packages: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} dev: true - /follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + /follow-redirects@1.15.4: + resolution: {integrity: sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -11136,7 +10530,7 @@ packages: /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 /hls.js@1.4.14: resolution: {integrity: sha512-UppQjyvPVclg+6t2KY/Rv03h0+bA5u6zwqVoz4LAC/L0fgYmIaCD7ZCrwe8WI1Gv01be1XL0QFsRbSdIHV/Wbw==} @@ -11337,7 +10731,7 @@ packages: engines: {node: '>=8.0.0'} dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.3 + follow-redirects: 1.15.4 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -11377,11 +10771,6 @@ packages: engines: {node: '>=10.17.0'} dev: true - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true - /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -11648,12 +11037,6 @@ packages: hasBin: true dev: true - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true - /is-es2016-keyword@1.0.0: resolution: {integrity: sha512-JtZWPUwjdbQ1LIo9OSZ8MdkWEve198ors27vH+RzUUvZXXZkzXCxFnlUhzWYxy5IexQSRiXVw9j2q/tHMmkVYQ==} dev: true @@ -11695,14 +11078,6 @@ packages: dependencies: is-extglob: 2.1.1 - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - /is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -11724,6 +11099,10 @@ packages: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true + /is-mobile@4.0.0: + resolution: {integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==} + dev: false + /is-natural-number@4.0.1: resolution: {integrity: sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==} dev: true @@ -11826,11 +11205,6 @@ packages: engines: {node: '>=8'} dev: true - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -11925,7 +11299,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/parser': 7.23.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -12017,7 +11391,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -12076,10 +11450,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1(@babel/core@7.23.6) + babel-jest: 27.5.1(@babel/core@7.23.7) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -12142,7 +11516,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -12160,7 +11534,7 @@ packages: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 jest-mock: 27.5.1 jest-util: 27.5.1 dev: true @@ -12176,7 +11550,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.9 - '@types/node': 20.10.5 + '@types/node': 20.10.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -12198,7 +11572,7 @@ packages: '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -12253,7 +11627,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 dev: true /jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): @@ -12309,7 +11683,7 @@ packages: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -12366,7 +11740,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 graceful-fs: 4.2.11 dev: true @@ -12374,16 +11748,16 @@ packages: resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@babel/core': 7.23.6 + '@babel/core': 7.23.7 '@babel/generator': 7.23.6 - '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.6) - '@babel/traverse': 7.23.6 + '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.7) + '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/babel__traverse': 7.20.4 + '@types/babel__traverse': 7.20.5 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.6) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.7) chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.11 @@ -12405,7 +11779,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -12430,7 +11804,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.10.5 + '@types/node': 20.10.6 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -12441,7 +11815,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.10.5 + '@types/node': 20.10.6 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -12469,7 +11843,7 @@ packages: /jimp@0.10.3: resolution: {integrity: sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 '@jimp/custom': 0.10.3 '@jimp/plugins': 0.10.3(@jimp/custom@0.10.3) '@jimp/types': 0.10.3(@jimp/custom@0.10.3) @@ -12536,7 +11910,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.11.2 + acorn: 8.11.3 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 @@ -12578,7 +11952,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.11.2 + acorn: 8.11.3 acorn-globals: 7.0.1 cssstyle: 3.0.0 data-urls: 4.0.0 @@ -13269,48 +12643,48 @@ packages: engines: {node: '>= 0.6'} dev: true - /metro-react-native-babel-preset@0.72.4(@babel/core@7.23.6): + /metro-react-native-babel-preset@0.72.4(@babel/core@7.23.7): resolution: {integrity: sha512-YGCVaYe1H5fOFktdDdL9IwAyiXjPh1t2eZZFp3KFJak6fxKpN+q5PPhe1kzMa77dbCAqgImv43zkfGa6i27eyA==} peerDependencies: '@babel/core': '*' dependencies: - '@babel/core': 7.23.6 - '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.6) - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.6) - '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.6) - '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.6) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.6) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.6) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.6) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-runtime': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.6) - '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.6) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.6) + '@babel/core': 7.23.7 + '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.23.7) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-export-default-from': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.23.7) + '@babel/plugin-proposal-optional-catch-binding': 7.18.6(@babel/core@7.23.7) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-default-from': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-flow-strip-types': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-display-name': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-runtime': 7.23.7(@babel/core@7.23.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-transform-typescript': 7.23.6(@babel/core@7.23.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) '@babel/template': 7.22.15 react-refresh: 0.4.3 transitivePeerDependencies: @@ -13354,11 +12728,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true - /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} @@ -13733,13 +13102,6 @@ packages: path-key: 3.1.1 dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: @@ -13875,13 +13237,6 @@ packages: dependencies: mimic-fn: 2.1.0 - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - /open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -13891,16 +13246,6 @@ packages: is-wsl: 2.2.0 dev: true - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: true - /optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} @@ -14154,11 +13499,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -14294,6 +13634,10 @@ packages: pathe: 1.1.1 dev: true + /platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + dev: false + /please-upgrade-node@3.2.0: resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} dependencies: @@ -14311,7 +13655,7 @@ packages: postcss: ^8.2.2 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 postcss-value-parser: 4.2.0 dev: true @@ -14375,8 +13719,8 @@ packages: postcss: 8.4.32 dev: true - /postcss-html-transform@3.6.21(postcss@8.4.32): - resolution: {integrity: sha512-8lDSGGaZ0+/SdGjizRMjHwL6VcF9wAWLF1lxIPZp6gIYhqrI3s6oHbMFZhxQUXQCOLhdwkfd+SgZKpahv0DEAw==} + /postcss-html-transform@3.6.22(postcss@8.4.32): + resolution: {integrity: sha512-jJUL7c4cJ7ySf6HSeqi3BP4OSvYEyDR2RWEuDs7DssQTPbxu+sGADOlLAVroFAnLAWteGg7vQNg883EGAw05Fg==} peerDependencies: postcss: ^8.4.18 dependencies: @@ -14446,12 +13790,12 @@ packages: dependencies: lilconfig: 3.0.0 postcss: 8.4.32 - ts-node: 10.9.2(@swc/core@1.3.96)(@types/node@20.10.5)(typescript@5.3.3) + ts-node: 10.9.2(@swc/core@1.3.96)(@types/node@20.10.6)(typescript@5.3.3) yaml: 2.3.4 dev: true - /postcss-loader@7.3.3(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0): - resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} + /postcss-loader@7.3.4(postcss@8.4.32)(typescript@5.3.3)(webpack@5.89.0): + resolution: {integrity: sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==} engines: {node: '>= 14.15.0'} peerDependencies: postcss: ^7.0.0 || ^8.0.1 @@ -14487,7 +13831,7 @@ packages: caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.32) postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 dev: true /postcss-minify-font-values@5.1.0(postcss@8.4.32): @@ -14531,7 +13875,7 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 dev: true /postcss-modules-extract-imports@3.0.0(postcss@8.4.32): @@ -14569,7 +13913,7 @@ packages: postcss: ^8.1.0 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 dev: true /postcss-modules-values@4.0.0(postcss@8.4.32): @@ -14708,16 +14052,16 @@ packages: postcss-value-parser: 4.2.0 dev: true - /postcss-plugin-constparse@3.6.21(postcss@8.4.32): - resolution: {integrity: sha512-A5eqSMheRTYr037G3iwANW5urOSIMQaszcsIf/sx1EhBIoxdRnTD9gAXoDRo8H3t9Wu5Sit12ssq28VGvmj3Iw==} + /postcss-plugin-constparse@3.6.22(postcss@8.4.32): + resolution: {integrity: sha512-0L/5aQ3D1dErdHYON13PBkCG3LQw4s/Pxr3fgYwEF5sjr/1huFEl22uj7J7eWQZuDOWiv9ksnZjxa7ZzOToxKQ==} peerDependencies: postcss: ^8.4.18 dependencies: postcss: 8.4.32 dev: true - /postcss-pxtransform@3.6.21(postcss@8.4.32): - resolution: {integrity: sha512-4pOVwTvsTwgkaVYoiQf/9rjdpRywBVSwJRylH8AODg7mCTPQ2EPyBqfq8G3JSDENNt2JQDkiLBLoMeqlRDLGIA==} + /postcss-pxtransform@3.6.22(postcss@8.4.32): + resolution: {integrity: sha512-ihKDeZaL6euNOk1w61Rt/oNPPEH/Ts+yixq8HJUzSo5U6QMPnIzmRoml/ysXRd3+4x8TOh7+VF0G7o0tFX0SzA==} peerDependencies: postcss: ^8.4.18 dependencies: @@ -14778,6 +14122,14 @@ packages: util-deprecate: 1.0.2 dev: true + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + /postcss-svgo@5.1.0(postcss@8.4.32): resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} @@ -14796,7 +14148,7 @@ packages: postcss: ^8.2.15 dependencies: postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 dev: true /postcss-url@10.1.3(postcss@8.4.32): @@ -14858,8 +14210,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier-plugin-tailwindcss@0.5.9(prettier@3.1.1): - resolution: {integrity: sha512-9x3t1s2Cjbut2QiP+O0mDqV3gLXTe2CgRlQDgucopVkUdw26sQi53p/q4qvGxMLBDfk/dcTV57Aa/zYwz9l8Ew==} + /prettier-plugin-tailwindcss@0.5.10(prettier@3.1.1): + resolution: {integrity: sha512-9UGSejqFxGG6brYjFfTYlJ8zs4L/lvZg1AngFfaC5Fs1otSskASv5IWKmjPu5MlABQUtTKtMArKyYr/hWpXSUg==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -15298,20 +14650,16 @@ packages: /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - /regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - dev: true /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.23.7 - /regex-parser@2.2.11: - resolution: {integrity: sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==} + /regex-parser@2.3.0: + resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} dev: true /regexp.prototype.flags@1.5.1: @@ -15546,13 +14894,6 @@ packages: resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} dev: true - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: true - /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -15645,8 +14986,8 @@ packages: source-map-js: 1.0.2 dev: true - /sass@1.69.5: - resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==} + /sass@1.69.6: + resolution: {integrity: sha512-qbRr3k9JGHWXCvZU77SD2OTwUlC+gNT+61JOLcmLm+XqH4h/5D+p4IIsxvpkB89S9AwJOyb5+rWNpIucaFxSFQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -16259,11 +15600,6 @@ packages: engines: {node: '>=6'} dev: true - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -16291,7 +15627,7 @@ packages: /strip-literal@1.3.0: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: - acorn: 8.11.2 + acorn: 8.11.3 dev: true /strip-outer@1.0.1: @@ -16318,7 +15654,7 @@ packages: dependencies: browserslist: 4.22.2 postcss: 8.4.32 - postcss-selector-parser: 6.0.14 + postcss-selector-parser: 6.0.15 dev: true /stylelint@16.1.0(typescript@5.3.3): @@ -16480,14 +15816,6 @@ packages: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true - /synckit@0.8.6: - resolution: {integrity: sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.4.2 - tslib: 2.6.2 - dev: true - /synckit@0.8.8: resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -16609,7 +15937,33 @@ packages: supports-hyperlinks: 2.3.0 dev: true - /terser-webpack-plugin@5.3.9(@swc/core@1.3.96)(esbuild@0.19.10)(webpack@5.89.0): + /terser-webpack-plugin@5.3.10(@swc/core@1.3.96)(esbuild@0.19.11)(webpack@5.89.0): + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.20 + '@swc/core': 1.3.96 + esbuild: 0.19.11 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.26.0 + webpack: 5.89.0(@swc/core@1.3.96) + dev: true + + /terser-webpack-plugin@5.3.9(@swc/core@1.3.96)(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -16627,7 +15981,6 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.20 '@swc/core': 1.3.96 - esbuild: 0.19.10 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.1 @@ -16640,7 +15993,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 @@ -16650,7 +16003,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 + acorn: 8.11.3 commander: 2.20.3 source-map-support: 0.5.21 dev: true @@ -16710,11 +16063,6 @@ packages: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} dev: false - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: true - /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -16811,7 +16159,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-node@10.9.2(@swc/core@1.3.96)(@types/node@20.10.5)(typescript@5.3.3): + /ts-node@10.9.2(@swc/core@1.3.96)(@types/node@20.10.6)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -16831,7 +16179,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.5 + '@types/node': 20.10.6 acorn: 8.11.2 acorn-walk: 8.3.1 arg: 4.1.3 @@ -17031,11 +16379,13 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - /unimport@3.6.1: - resolution: {integrity: sha512-zKzbp8AQ+l8QK3XrONtUBdgBbMI8TkGh8hBYF77ZkVqMLLIAHwGSwJRFolPQMBx/5pezeRKvmu2gzlqnxRZeqQ==} + /unimport@3.7.1: + resolution: {integrity: sha512-V9HpXYfsZye5bPPYUgs0Otn3ODS1mDUciaBlXljI4C2fTwfFpvFZRywmlOu943puN9sncxROMZhsZCjNXEpzEQ==} dependencies: '@rollup/pluginutils': 5.1.0 + acorn: 8.11.3 escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 fast-glob: 3.3.2 local-pkg: 0.5.0 magic-string: 0.30.5 @@ -17044,7 +16394,7 @@ packages: pkg-types: 1.0.3 scule: 1.1.1 strip-literal: 1.3.0 - unplugin: 1.5.1 + unplugin: 1.6.0 transitivePeerDependencies: - rollup dev: true @@ -17079,8 +16429,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /unplugin-auto-import@0.17.2: - resolution: {integrity: sha512-Eu/xWI6SH4jTWXvzOfXQWAxRtiz/gMObm7wXtgMj7wBjHQKLgHTmHd4R4oha87KYGah1aKMqiqDeAxiPmfSoTg==} + /unplugin-auto-import@0.17.3: + resolution: {integrity: sha512-0cn0wr8X579TtdZKUAps0dDVrYzttx38ImdxZjmCeNlMDJX8UuSjO83vFqgS4ClNDIGWAute+xl9j5vRSX+vsw==} engines: {node: '>=14'} peerDependencies: '@nuxt/kit': ^3.2.2 @@ -17097,8 +16447,8 @@ packages: local-pkg: 0.5.0 magic-string: 0.30.5 minimatch: 9.0.3 - unimport: 3.6.1 - unplugin: 1.5.1 + unimport: 3.7.1 + unplugin: 1.6.0 transitivePeerDependencies: - rollup dev: true @@ -17141,15 +16491,19 @@ packages: webpack-virtual-modules: 0.6.1 dev: true + /unplugin@1.6.0: + resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} + dependencies: + acorn: 8.11.3 + chokidar: 3.5.3 + webpack-sources: 3.2.3 + webpack-virtual-modules: 0.6.1 + dev: true + /unquote@1.1.1: resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} dev: false - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} hasBin: true @@ -17325,7 +16679,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite@5.0.10(@types/node@20.10.4)(sass@1.69.5)(terser@5.22.0): + /vite@5.0.10(@types/node@20.10.6)(sass@1.69.6)(terser@5.22.0): resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -17353,11 +16707,11 @@ packages: terser: optional: true dependencies: - '@types/node': 20.10.4 + '@types/node': 20.10.6 esbuild: 0.19.9 postcss: 8.4.32 rollup: 4.9.1 - sass: 1.69.5 + sass: 1.69.6 terser: 5.22.0 optionalDependencies: fsevents: 2.3.3 @@ -17368,7 +16722,7 @@ packages: deprecated: The library contains critical security issues and should not be used for production! The maintenance of the project has been discontinued. Consider migrating your code to isolated-vm. hasBin: true dependencies: - acorn: 8.11.2 + acorn: 8.11.3 acorn-walk: 8.3.1 dev: true @@ -17793,7 +17147,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.96)(esbuild@0.19.10)(webpack@5.89.0) + terser-webpack-plugin: 5.3.9(@swc/core@1.3.96)(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -18189,7 +17543,7 @@ packages: type-fest: 2.19.0 dev: false - /zustand@4.4.7(@types/react@18.2.45)(react@18.2.0): + /zustand@4.4.7(@types/react@18.2.46)(react@18.2.0): resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==} engines: {node: '>=12.7.0'} peerDependencies: @@ -18204,7 +17558,7 @@ packages: react: optional: true dependencies: - '@types/react': 18.2.45 + '@types/react': 18.2.46 react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) dev: false diff --git a/apps/pnpm-workspace.yaml b/apps/pnpm-workspace.yaml index 4aa0f45b..0a007eba 100644 --- a/apps/pnpm-workspace.yaml +++ b/apps/pnpm-workspace.yaml @@ -1,3 +1,3 @@ packages: - - "taro-app" - - "uni-app-vue3" + - taro-app + - uni-app-vue3 diff --git a/apps/taro-app/babel.config.js b/apps/taro-app/babel.config.js index 77f785dc..82ac4bda 100644 --- a/apps/taro-app/babel.config.js +++ b/apps/taro-app/babel.config.js @@ -4,8 +4,8 @@ module.exports = { presets: [ ['taro', { framework: 'react', - ts: true + ts: true, }], // "@linaria" - ] + ], } diff --git a/apps/taro-app/condition.js b/apps/taro-app/condition.js index a81b35bf..61cc062c 100644 --- a/apps/taro-app/condition.js +++ b/apps/taro-app/condition.js @@ -1,27 +1,26 @@ +const fs = require('node:fs') +const path = require('node:path') const { names } = require('@icestack/ui/components') -const fs = require('fs') -const path = require('path') const { set, orderBy } = require('lodash') - async function main() { const jp = path.resolve(__dirname, './project.private.config.json') const j = JSON.parse(fs.readFileSync(jp, 'utf8')) - const items = orderBy(names).map(x => { + const items = orderBy(names).map((x) => { return { - "name": x, - "pathName": "pages/index/component", - "query": "id=" + x, - "launchMode": "default", - "scene": null + name: x, + pathName: 'pages/index/component', + query: `id=${x}`, + launchMode: 'default', + scene: null, } }) items.unshift({ - "name": "Docs", - "pathName": "pages/index/doc", - "query": "id=" + 'introduction', - "launchMode": "default", - "scene": null + name: 'Docs', + pathName: 'pages/index/doc', + query: 'id=' + 'introduction', + launchMode: 'default', + scene: null, }) set(j, 'condition.miniprogram.list', items) diff --git a/apps/taro-app/config/dev.ts b/apps/taro-app/config/dev.ts index 4a1b2148..15b5b453 100644 --- a/apps/taro-app/config/dev.ts +++ b/apps/taro-app/config/dev.ts @@ -2,10 +2,10 @@ import { defineConfig } from '@tarojs/cli' export default defineConfig({ env: { - NODE_ENV: '"development"' + NODE_ENV: '"development"', }, defineConstants: { }, mini: {}, - h5: {} + h5: {}, }) diff --git a/apps/taro-app/config/index.ts b/apps/taro-app/config/index.ts index fb456883..17738251 100644 --- a/apps/taro-app/config/index.ts +++ b/apps/taro-app/config/index.ts @@ -1,5 +1,5 @@ +import path from 'node:path' import { defineConfig } from '@tarojs/cli' -import path from 'path' import { UnifiedWebpackPluginV5 } from 'weapp-tailwindcss/webpack' const config = defineConfig({ @@ -9,13 +9,13 @@ const config = defineConfig({ deviceRatio: { 640: 2.34 / 2, 750: 1, - 828: 1.81 / 2 + 828: 1.81 / 2, }, sourceRoot: 'src', outputRoot: 'dist', plugins: [ - '@tarojs/plugin-http' + '@tarojs/plugin-http', // [ // '@tarojs/plugin-inject', // { @@ -33,17 +33,17 @@ const config = defineConfig({ defineConstants: {}, copy: { patterns: [], - options: {} + options: {}, }, framework: 'react', compiler: { type: 'webpack5', prebundle: { - enable: false - } + enable: false, + }, }, cache: { - enable: false // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache + enable: false, // Webpack 持久化缓存配置,建议开启。默认配置请参考:https://docs.taro.zone/docs/config-detail#cache }, alias: { '@styled-system': path.resolve(__dirname, '..', 'src/styled-system'), @@ -51,31 +51,31 @@ const config = defineConfig({ '@/store': path.resolve(__dirname, '..', 'src/store'), '#docs': path.resolve(__dirname, '../../../website/pages/docs'), '#': path.resolve(__dirname, '../../../website'), - '~': path.resolve(__dirname, '../../../packages/ui') + '~': path.resolve(__dirname, '../../../packages/ui'), }, terser: { - enable: false + enable: false, }, mini: { debugReact: true, postcss: { pxtransform: { enable: true, - config: {} + config: {}, }, url: { enable: true, config: { - limit: 1024 // 设定转换尺寸上限 - } + limit: 1024, // 设定转换尺寸上限 + }, }, cssModules: { enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true config: { namingPattern: 'module', // 转换模式,取值为 global/module - generateScopedName: '[name]__[local]___[hash:base64:5]' - } - } + generateScopedName: '[name]__[local]___[hash:base64:5]', + }, + }, }, webpackChain(chain, webpack) { // linaria/loader 选项详见 https://github.com/callstack/linaria/blob/master/docs/BUNDLERS_INTEGRATION.md#webpack @@ -104,13 +104,13 @@ const config = defineConfig({ plugin: UnifiedWebpackPluginV5, args: [ { - appType: 'taro' - } - ] - } - } + appType: 'taro', + }, + ], + }, + }, }) - } + }, }, h5: { publicPath: '/', @@ -118,15 +118,15 @@ const config = defineConfig({ postcss: { autoprefixer: { enable: true, - config: {} + config: {}, }, cssModules: { enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true config: { namingPattern: 'module', // 转换模式,取值为 global/module - generateScopedName: '[name]__[local]___[hash:base64:5]' - } - } + generateScopedName: '[name]__[local]___[hash:base64:5]', + }, + }, }, webpackChain(chain, webpack) { // chain.module @@ -136,16 +136,16 @@ const config = defineConfig({ // .options({ // sourceMap: process.env.NODE_ENV !== 'production', // }) - } + }, }, rn: { appName: 'taroDemo', postcss: { cssModules: { - enable: false // 默认为 false,如需使用 css modules 功能,则设为 true - } - } - } + enable: false, // 默认为 false,如需使用 css modules 功能,则设为 true + }, + }, + }, }) export default function (merge) { diff --git a/apps/taro-app/config/prod.ts b/apps/taro-app/config/prod.ts index 0c05564d..949c1156 100644 --- a/apps/taro-app/config/prod.ts +++ b/apps/taro-app/config/prod.ts @@ -2,7 +2,7 @@ import { defineConfig } from '@tarojs/cli' export default defineConfig({ env: { - NODE_ENV: '"production"' + NODE_ENV: '"production"', }, defineConstants: { }, @@ -35,6 +35,6 @@ export default defineConfig({ // postProcess: (context) => ({ ...context, outputPath: path.join(staticDir, 'index.html') }) // })) // } - } -} + }, +}, ) diff --git a/apps/taro-app/icestack.config.js b/apps/taro-app/icestack.config.js index 9b58b365..09a9606c 100644 --- a/apps/taro-app/icestack.config.js +++ b/apps/taro-app/icestack.config.js @@ -1,5 +1,4 @@ const miniprogramPreset = require('@icestack/preset-weapp') -const { expandTypes, getSelector, transformCss2Js } = require('@icestack/ui/components') /** * @type {import('@icestack/ui').Config} */ @@ -11,20 +10,18 @@ const config = { selector: '.subtitle', extend: `.subtitle { @apply text-slate-600 dark:text-slate-400 text-sm pt-5 pb-4 break-all; - }` + }`, }, tips: { selector: '.tips', - extend:`.tips { + extend: `.tips { @apply text-slate-500 dark:text-slate-300 text-xs pt-2 pb-3 break-all; - }` + }`, }, // join: false // steps: false - - // slider: { // prefix: '.slider', // schema: ({ selector, types }) => { @@ -39,7 +36,7 @@ const config = { // } // } }, - presets: [miniprogramPreset()] + presets: [miniprogramPreset()], } module.exports = config diff --git a/apps/taro-app/package.json b/apps/taro-app/package.json index ce826aa9..be7a9a27 100644 --- a/apps/taro-app/package.json +++ b/apps/taro-app/package.json @@ -1,5 +1,5 @@ { - "name": "taro-app", + "name": "@icestack/app-weapp", "version": "1.0.0", "private": true, "description": "", @@ -8,6 +8,7 @@ "typescript": true, "css": "sass" }, + "author": "", "scripts": { "dev": "npm run list && npm run ui && npm run dev:weapp", "build": "npm run ui && npm run build:weapp", @@ -41,24 +42,23 @@ "Android >= 4.1", "ios >= 8" ], - "author": "", "dependencies": { - "@babel/runtime": "^7.23.6", + "@babel/runtime": "^7.23.7", "@faker-js/faker": "^8.3.1", - "@tarojs/components": "3.6.21", - "@tarojs/helper": "3.6.21", - "@tarojs/plugin-framework-react": "3.6.21", - "@tarojs/plugin-platform-alipay": "3.6.21", - "@tarojs/plugin-platform-h5": "3.6.21", - "@tarojs/plugin-platform-jd": "3.6.21", - "@tarojs/plugin-platform-qq": "3.6.21", - "@tarojs/plugin-platform-swan": "3.6.21", - "@tarojs/plugin-platform-tt": "3.6.21", - "@tarojs/plugin-platform-weapp": "3.6.21", - "@tarojs/react": "3.6.21", - "@tarojs/runtime": "3.6.21", - "@tarojs/shared": "3.6.21", - "@tarojs/taro": "3.6.21", + "@tarojs/components": "3.6.22", + "@tarojs/helper": "3.6.22", + "@tarojs/plugin-framework-react": "3.6.22", + "@tarojs/plugin-platform-alipay": "3.6.22", + "@tarojs/plugin-platform-h5": "3.6.22", + "@tarojs/plugin-platform-jd": "3.6.22", + "@tarojs/plugin-platform-qq": "3.6.22", + "@tarojs/plugin-platform-swan": "3.6.22", + "@tarojs/plugin-platform-tt": "3.6.22", + "@tarojs/plugin-platform-weapp": "3.6.22", + "@tarojs/react": "3.6.22", + "@tarojs/runtime": "3.6.22", + "@tarojs/shared": "3.6.22", + "@tarojs/taro": "3.6.22", "class-variance-authority": "^0.7.0", "dedent": "^1.5.1", "pretty-format": "^29.7.0", @@ -70,30 +70,30 @@ "zustand": "^4.4.7" }, "devDependencies": { - "@babel/core": "^7.23.6", + "@babel/core": "^7.23.7", "@egoist/tailwindcss-icons": "^1.7.1", "@icestack/preset-weapp": "link:../../presets/preset-weapp", "@icestack/presets": "link:../../presets/presets", "@icestack/tailwindcss": "link:../../packages/tailwindcss", "@icestack/ui": "link:../../packages/ui", "@iconify-json/grommet-icons": "^1.1.10", - "@iconify-json/mdi": "^1.1.63", + "@iconify-json/mdi": "^1.1.64", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11", - "@tarojs/cli": "3.6.21", - "@tarojs/plugin-http": "^3.6.20", - "@tarojs/plugin-inject": "^3.6.20", - "@tarojs/taro-loader": "3.6.21", - "@tarojs/webpack5-runner": "3.6.21", - "@types/node": "^20.10.5", - "@types/react": "^18.2.45", + "@tarojs/cli": "3.6.22", + "@tarojs/plugin-http": "^3.6.22", + "@tarojs/plugin-inject": "^3.6.22", + "@tarojs/taro-loader": "3.6.22", + "@tarojs/webpack5-runner": "3.6.22", + "@types/node": "^20.10.6", + "@types/react": "^18.2.46", "@types/webpack-env": "^1.18.4", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", - "babel-preset-taro": "3.6.21", + "@typescript-eslint/eslint-plugin": "^6.17.0", + "@typescript-eslint/parser": "^6.17.0", + "babel-preset-taro": "3.6.22", "css-to-tailwindcss-plugin": "link:../../plugins/css-to-tailwindcss-plugin", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", - "eslint-config-taro": "3.6.21", + "eslint-config-taro": "3.6.22", "eslint-plugin-import": "^2.29.1", "eslint-plugin-prettier": "^5.1.2", "eslint-plugin-react": "^7.33.2", @@ -102,7 +102,7 @@ "postcss": "^8.4.32", "postcss-rem-to-responsive-pixel": "^6.0.1", "prettier": "^3.1.1", - "prettier-plugin-tailwindcss": "^0.5.9", + "prettier-plugin-tailwindcss": "^0.5.10", "react-refresh": "^0.14.0", "strip-indent": "^4.0.0", "stylelint": "^16.1.0", diff --git a/apps/taro-app/postcss.config.cjs b/apps/taro-app/postcss.config.cjs index 8b97afda..f9c36919 100644 --- a/apps/taro-app/postcss.config.cjs +++ b/apps/taro-app/postcss.config.cjs @@ -2,7 +2,7 @@ // https://github.com/postcss/postcss-load-config#ordering module.exports = { plugins: { - tailwindcss: {}, + 'tailwindcss': {}, 'postcss-rem-to-responsive-pixel': { // 32 意味着 1rem = 32rpx rootValue: 32, @@ -14,7 +14,7 @@ module.exports = { // autoprefixer: {}, // '@pandacss/dev/postcss': {}, // 'weapp-pandacss/postcss': {} - } + }, // [ // require('@pandacss/dev/postcss')(), // require('@csstools/postcss-cascade-layers')() diff --git a/apps/taro-app/prettier.config.js b/apps/taro-app/prettier.config.js index 39f486d8..60e4c49f 100644 --- a/apps/taro-app/prettier.config.js +++ b/apps/taro-app/prettier.config.js @@ -1,9 +1,9 @@ module.exports = { - "tabWidth": 2, - "useTabs": false, - "semi": false, - "singleQuote": true, - "endOfLine": "lf", - "trailingComma": "none", - plugins: ['prettier-plugin-tailwindcss'] + tabWidth: 2, + useTabs: false, + semi: false, + singleQuote: true, + endOfLine: 'lf', + trailingComma: 'none', + plugins: ['prettier-plugin-tailwindcss'], } diff --git a/apps/taro-app/project.config.json b/apps/taro-app/project.config.json index 617a8c62..93cfd1e5 100644 --- a/apps/taro-app/project.config.json +++ b/apps/taro-app/project.config.json @@ -45,4 +45,4 @@ "tabIndent": "insertSpaces", "tabSize": 2 } -} \ No newline at end of file +} diff --git a/apps/taro-app/project.private.config.json b/apps/taro-app/project.private.config.json index 465884c1..454fed68 100644 --- a/apps/taro-app/project.private.config.json +++ b/apps/taro-app/project.private.config.json @@ -347,4 +347,4 @@ "setting": { "compileHotReLoad": false } -} \ No newline at end of file +} diff --git a/apps/taro-app/src/app.config.ts b/apps/taro-app/src/app.config.ts index 58c61b43..47e543d5 100644 --- a/apps/taro-app/src/app.config.ts +++ b/apps/taro-app/src/app.config.ts @@ -8,11 +8,11 @@ export default defineAppConfig({ backgroundTextStyle: 'light', navigationBarBackgroundColor: '#fff', navigationBarTitleText: 'IceStack', - navigationBarTextStyle: 'black' + navigationBarTextStyle: 'black', }, usingComponents: { - md: './components/md' - } + md: './components/md', + }, // https://github.com/NervJS/taro/blob/f7942f5dcdd51599b723c257a7934d597e8cac8a/packages/taro-service/src/platform-plugin-base/mini.ts#L30 - //https://github.com/NervJS/taro/blob/f7942f5dcdd51599b723c257a7934d597e8cac8a/packages/taro-cli/src/presets/files/generateProjectConfig.ts#L6 + // https://github.com/NervJS/taro/blob/f7942f5dcdd51599b723c257a7934d597e8cac8a/packages/taro-cli/src/presets/files/generateProjectConfig.ts#L6 }) diff --git a/apps/taro-app/src/app.scss b/apps/taro-app/src/app.scss index 62a96317..b8dbf57a 100644 --- a/apps/taro-app/src/app.scss +++ b/apps/taro-app/src/app.scss @@ -3,8 +3,13 @@ @import "tailwindcss/utilities"; @import "./assets/font.scss"; .float-btn { - @apply rounded-full w-12 h-12 flex justify-center items-center pointer-events-auto bg-white shadow-[0px_0px_16px_0px] dark:shadow-[inset_0px_0px_10px_0px_#ffffff] text-3xl dark:bg-slate-900 ;// dark:shadow-gray-700; + @apply rounded-full w-12 h-12 flex justify-center items-center pointer-events-auto bg-white shadow-[0px_0px_16px_0px] dark:shadow-[inset_0px_0px_10px_0px_#ffffff] text-3xl dark:bg-slate-900; // dark:shadow-gray-700; } // :not(not){ // color: red !important; // } + +.sd { + background-color: theme(colors.black / 75%); + background-color: theme("colors.white / 10%'); +} diff --git a/apps/taro-app/src/app.tsx b/apps/taro-app/src/app.tsx index 100e365e..6ab766d4 100644 --- a/apps/taro-app/src/app.tsx +++ b/apps/taro-app/src/app.tsx @@ -1,5 +1,4 @@ -import { PropsWithChildren } from 'react' -import { useLaunch } from '@tarojs/taro' +import type { PropsWithChildren } from 'react' import './app.scss' // import { WebSocket } from 'weapp-websocket' diff --git a/apps/taro-app/src/assets/font.scss b/apps/taro-app/src/assets/font.scss index 0ab052f1..c9378496 100644 --- a/apps/taro-app/src/assets/font.scss +++ b/apps/taro-app/src/assets/font.scss @@ -1,9 +1,11 @@ @font-face { font-family: 'Oswald'; - src: url('data:font/woff2;charset=utf-8;base64,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') format('woff2'), - url('data:font/woff;charset=utf-8;base64,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') format('woff'); + src: + url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAHmYABIAAAABPOAAAHkyAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGkob9jocUAZgAIgmCDgJkxERCAqDmGCC73ILiF4AATYCJAOROAQgBY8GB55jDIEBW9QicQS9bQ9J0Z0AZaVay69NFdPNHcrtWLQUnh+pgm3TOnY7KJp3n/fs////rKQyhqYBkxZQdW7ff4jZZs6sClWojB7KJIYrQ0ZF27zixNqAOyQd2NlxFi5Fb2in7r5EJarbzZp4ORqCoqOi+KNETiQpqGnQJ+6t2TLZu/f+0UMMH0f0C8oonLRcHUzuoHD/9FjCOwgS1FBQk1sFs9rux2zNA9e3Fj4b/I17XN/MWN1O0ameo/VvUzeZ/xjsokMYxYqo3yrAbokPKUMOEWl85Pn4vIc6t/J+kjY0xgqUd70asIaHdf67KHHciT4n+pw4nIg8+o4+MX1OnRhnxTCRCzt1tlnYl9sssMCiLI9havVXbNZ+tPn65NskOykYigSCIDslvOXDdq43+kjwJAVh7EpE1fI/s7pm9l0IHUEfClAFF4HGMwU/ASgCLMQC0Ju/M6hTVSAnddgstFmm1CFQgeBar8E1fs+gwO5BwoElXIKZBWoLAMgRY7cx4DWt/l/T/x6GxAbKBURNjCIqmpj+W2Nq2U5fLLY1/+83c8bUmfa+B7a4kuVoSo6gXa0BPJakGiMfgHgZAGAxqOd9ByzHAp78zf9U9ftzgYtAACSYFeggi5Ys58wNIWjjL3PRv/LP66otyoX/f23/QypqsTQnXMRmEPui+S4kaOZZTUlRstJVO4MSRGu6c/SAKbGRrGsDy+a2WPGQ4OLq/7+q1r0v/ADgAwJFmnQOE7MMSpM1GgrckSlOUOXDtbtmi2qL2qX7bu7T+TmzIJjZtQ67pKc6VSe2//kDOwSSt5H8O+mu+xDkCpgMLx3VKarzxbUX8Ej5vIRle/86Mg7Izs3KuU2sM8T0ChHSidP/5BK3BJYwg+aN9w4lEKPOLYTqgA+xGSrwMf3/fVWrfQ8gpE9ZnCGlCfRsEuXDNbVRdlGJcVPsdopm3W33//3v/fffDwgfhAh9kBQJUDIJSDQJkDYJJ3wkgwSlpSSnOCFFhjGjk6TJ8oSYNd4cyxDbVG3WbDXdlOOtpio3pFB05Va7bbf8E9xQtGdfNMejLsgHOhzZVIN/vnuTZ+/2MrpWKuDgIpaWOe+EtjTAxa9Zi0apFcwJBSRuEaVAKRva+6MJSV2FkyBBAAg7MT1t5v+39JV6597r9tzWpRTCVqZI1s7oy3/muaie43WtaagV9BUkBSWAOZQGMfM8eeNB/1H3UVMNukndcKZBub18nc07v1o4CUWKiIQQ9J3Ya5/U4wqk7bbsMh8TjDHGM0IITZgsa/afCaHNDE9i6WAB9LfDse0eMtf3GwXc5q2vVVuyihUkgYTUSYF9d/fLvL/p/wlSmVlnbbdB0ISY333e9xzWdB4MJyPz+9HnWmgA+NavxyaOyN9q3dnltgacyREUCkShOKdtDVOUbJCwnnuw5CQPJPnJB0tB6YOAA/6jKDjWLUVgg198qXcQkH+rkJUGtN9jMVOB2cex7AzgWL5Z7wBfPsnkJJsMvcfdWRkA+w9vB5KTyCUJKCT8ozrZ59iM/VgAnnLGIwFkDP35aXS5w3j+C4BsC7FPXJLDyoHUpi2/cqBMyrMYlVh1ddhHBe8zpqdOoTolb83AZtUI1QZAzn8d1vN6PQHYhRNjinO4fxYUxhiKgzysh+MIGhEjZiSOrLFvVI8OEJXnE7jb57G7oAUh+HEkdJ1/Tn4DQ+ekYfAIHsVj6kwkld339PsV+Obwk1Hs+yEYJmLVAQZoou4BmOHzqzDz75AhiOg6f91u0jb8TnA9EvwYTwIJuedj6Ni43wQkjMqwJIBAF3e8dVdooTL402p0d/R7MQbI6AUEMXJuguo6C4ZPNQSx/h/ubAs6H+LUfjOnG2SiMNTtNxDGx2XX4b+cPN+dctyPT9edPT+dwwP4PB/KYXQ+IjyKxqQbfx+66ff5bQd/8HsgpMFNNMDoP4laUUIvrK4CHxIexiN4FI8Nv31+WDjbR2gzBDIr/wXa7AWBOEA/JccjeBSPJcOJ9W+4bBBE9tmhRkAIzi9Cup6aIVDR8AgexWP6beGNz1pIpkGrYonqt9D+SjwMBO28ejfSz4uH5Rk02th05MMCZXVeRqOXoHier3zOxtGOVYuTLzte4d/34eLE+hpcyD0PHlva+Sn4fJlNOsKbeDO8Gfzqj3QlEPmajqzIWaxDtMaauG65a1xPF8/Tzeu85e2clowPPnwhp9PJxs/u/Bx4gJ93PpRBNR8RHsVjfObht8F38f3TLpz9Fk+3ZbQyJLi+F3xlWKSbH3nqFLszBEzEqnXkvhRDZCzLOPtPSK7nDzdQnqgnJ5hn1jD6N3gO9Y3wFe/v8px1irTg22hWMg75jv4heGp6NE29kbbuzfG+CJKr/fU73ho/2augGer/me0dRMZ6B9LX35P09dzsz1nonQKpzOER/7ff2Exu96Pc6+MQjwMDmem/D378/+QbAOFOnTYd+sgMUFBZcOHKg6dAwcJFoGOIxFVhj7322a/KQdVqHHdKv9POuGrCpOtueklg3oJFy1Z888u/4IKPdOSjFo0EhJGYpKQ2TWlOT4YzkrFczGRu5l4egO7+Y4ADO3wmOQvazO2WKf18+Q7Xb1dy07K5Zpevcjyp/uJH0ObjZG+Lwm98zYrTstzqze/2/VLxOHdoCyX741+Pit7tHlYcoHtOR+OL5Ss+WX1r9/v+x77vz20BC5eS+3fMCE/wHU563HDv3o89M8OxZtVV9ik5clBruoYudU+067ONKbzgL/2l0oLiSrv/dkpLdrjQ96v6lTP7vtbF2HArm01/y6XvTyf/zfYt29MfxEfxC+/lfo/fuz9P/u605CFI+5DrjxM/UeuX9A9Dmu9mI7/Un4FzGFqkfGcxWXQpa555iJ+6F7XnraZ7Bv2eTNDlBNiJfPu8Y3Wm9u9+PpcX9vqjaTl9Ks/5L1j+hcCdyaNw5/O0u6gt6xOD7U+s94+DH3fgohPjMfLFc/jWwueE2EkonyAgC+WEArFo4ZdAovlXsX/OK8kn+lr7ndF2dxfbhgQXvZDGtusFs35/ulNB9H73oXSYQfv5BF8nPN8J7MA9CaZPnW0/w9fLYvrU9uNkO+ada+VjJ1/27vN+2QlsTrSUfS96rxPnolh8FL6kyv1SrFRS7yC0QGmD0QGnC4EMyQAKBZopDCohFoRZEmFNlDMsF3JcyXOjwJ0iD0o8EXhRRkMUSEUwDRE0Md60cO0HUaUGzPHrLKpLH6yTb/JOOUPRkDFEVy9aJmiZBDEF6zqIG7BugrgFa4a82+TdJe8+eQ9APaRgDswTip6CeUbRczAvKHoJRkDRPJgFil5BWESwBGEZwWsIKwhWIawh2KBsG9Iv1YPff/z+P3zYgCZeGr40qQpJ10BmJlmy5MiRJ79qVESjIqZFmJVFLcq8RhZF+dSSb9X8CvGvREAhtEoE1kJQVYJrIaQqjNKiSouuUEwNYgdx0k2hIvuLqS2uoUBTpVqL6SswWsKFkm5W5lYp9yr34KfCnCfJPqOE16X8X6WP5flUG58L+1JbWxX4Vq0fFflVxO+y/hTxt6x/ReyUWIwBgW0KEtAaREBtkAH1QZ+AKqjTEPQIIRNDhHt03HRrAkoXjD44YwgmkKhQzKFZwLAkxJowZyJcELhS5kaFO1Ue1HhS50MTjZYguoIZCGEolJEwxsJRRDBBZ4rBTGT0NdVlvpL7oZq0QTiiA9pxCCOCMqojnS+5wth3mLlmrogrchAxbQWomYKy2QLU7YKyO4I68aDsHgWo+1KGVDwoVfdJ1XdSdZxUvYYqMNSBoQ4MdWAHdVu9oOFbAe57XjOiFiCCtUArYiuAQFAruOAguF0rkpGkLQPIwGV7gyh2YAxDmBcxRKpRXTWCinqMohFUNGMUnaCjG+PozUQKiX70kUNmEAOGMWQUI8YxRgmFSUzCJo5GCBOEMdsLx0oWNTYWNXZjTTwOzFV3RSTibqn6OqgaeugQCGolMpEQLC3IgPcGie/AoJMQ4zCDTmKMkxzDpASVXTFKzT9J139E00awORKxHL8CYE8QfAYjkaHBWMZcyAWXcmmvErlMplmRDwkUpBgM7TJZyAIlFEWIBKmEwV4t233FMAb2qPxkxYgRwgQhTBDiGbaSGb2nPxgoBpBAdFCnpSjMEtGV6exsyZpzuOXkxj3kMuiFJlCwiNsUz3fp1qMXX5+T4ZfLIcNGjBoLxPgp7W/o798y47a77nvgoTlPPPXMcy/CNP6V9kvav9Y/W7Vmw7Zf/gD+PyxEHJ4UaTJkyYVvftuUGSpzFnzoDKaVtY2tnT1fKBJLpBp/tRo0adVn1AU33QrxTOr/H6MjADzz2v8++uSzL7Z888Mvv/3x1z+QtQMFaKAIKBKKDgh9BgkWrINFlgi8jDvzQB4ee2zlyap5vnkpr4680byd9/LhyCf5vPlq7Nv1H4JMWadk6VNoJ2nehragbbkAqTw1xfOl4ZoNIVOuqxfBUtAWeH/9sy0JAk+dJm0k+oyZoTLnzJU7bzQhQoUlFQQMJ6zkg4HAAnYGJQ+iAJCIASBxHzMggC158x01izrkmPld4JvROCZe6iBubE7atAPZt3hw+onEwQMFMWFdvhb0xvMB8U2wePHe7+SzwTXE/+DoC/+bB/ovl/r+ALwEYLx25gD2BwVMhfY+75Pa+/pmCL9WwuuPIQ9nD8FSaYxSmobcybdRKGqN161amOAwNEwIJgITg+EmzYk3XRvRo36cH9fG231hhK0I+6FdQighlpBK2EvYJIaIQRBhxCM5GZEDIpt4WkWCKpTRlC2rbqe6I2sxgyHG2YlqjCpTY/Z/+M4OAPvjhZKGXM+XAcc9Yzfr+QRgcx2AP3c04uyQNwQoQYjgj8aeEEKIIewilBG+EiWIskRFIhE1Z4Fxa+VwAgK/nW1nxaQJZ5UI58fk38C/vn+t/3L/sf/l/GP9y/qX+Y/+9/Xfqb97/gYB8Hf/L3Tl3crqyqOV/1Y6VlpWalc4KzCJXb5x+f/lD8vvl98sLy4/W763fHw5eRm6bOmPpW+XZJbY0pZL69JmqRb/vvjN4tTitXkGSgsE+oS51t1cZ2c9G3kDWUIIpancPaD7UoU73ulPVryFoWEIESZCFJYYcTh4EiRJkSZDlhx5ChQpIVBGpEKVGnUaNAP8XXpIYypvzJARYxQmTDsuhPy5lb7jbdiyY8+BI6cUgPm8+fDlx19AOgAP0nJHzxyTee4o0WLEAjNcuVqjNh26denB15sesLHfqf/LfM5ZA84bNGzIiDGjxl1y2ZURBiwJmFJGFBTolCV1ZOTZNWoOODxEOaNeGpLkj1wplHwqSkWaYsBbXVQuXsYox75UAfdSMlgQh2uv1khEsqBQGBQNxUARUCS4MJomYlH4kizxwpV26ZQIKBwUVAgqBvaoVqFGlUPq1KvVrAXwQkcdc8Rm0pMjO5nJSjZO2GElA9m/1umqe3AgtfPtB8/6/9cOpveq6o/h3Qb600tlJIIjZnXSQNBI/H2E00c4PkVv3pWfxdeHSw9DcuS6q757piQf3YjVexFscVZoZ5Xo7yGaqLxtUnULzztt9rnmXlw36Mafk+9x4LBHJu7VsZuxQUBrgr0bYY/iYaQeC2g6Qud9gmqDhHnzGlXVgz4d1ntdZb8cNlVm77/ksJ5tF+WbmA9dd5yiJbdjOIlGc5iTYSSamYHh0x5CmMMWKxFVK1PhTu5408NwtraGsDm3iCEUg7yKgGE+uDkcWrUbz1orfdOIPAsdC8RVHHwDUWGkJ43VhmMsqtoGFPY2JLB+abS4XUt6xy0k3B7+Fju1kUnQf5b+MMNS+oZnVlF+fALZkh47p7EandM90pf92KHQdxR3TrYB5627apiiIvBMDf3KUAu4ksB7CA81KbBbGhpNSD+MlYQZRru8nYbsTbK3O8qb4aqQkFr5Qk3vHm7gUDyZ9qbTa9UKVLYKEbz0pErrmTJUqDiNF5ilquwZqf1JrypnuYcix6bbwv+eursp65jEOytIftCOQkGppJKpVTRqWg0jLWOTf0yALeNmmkm6HbChYFPJlsy2ipmaHQ1zLb3JZxea4z9rdfEenkmrVmyrr7BOJafu1uKxfwmrFqvm+VHsQdoQC59C66ZM5Yf4Qdj5lOlbsXKTkb0cHF6gr+9PNffHsQPoLSb+Q4CR+wqDQ8x4/cFD+xsA8P6CTdUDbZ40HEFz2hg8DN7Touk/Rntzbih3UtELcZgce4oqZLyvVtmgl5j+rfL2YRzvFAfOsMWD5fsTpeHak4YzgBb2Rv5aFDPF03E5MWmu3F1tc96utn0UtgBhi3+Y0NjhKP4S0+WZ6+Pp8jQFo05YqvSQAVuv4+RNzxpMbNQMgnlkSHYjkDaBzpGWtVbKEbMFSU13ZuumnGG5jvBB7ieUVWgGuG20TLe48g7VTnoCmOnec6XnB/HOfOotmhouSOHahVQCYZubOnJf9mItnKvrAH0DpfWrqSNpCsaMx/ex1Zx5t1O24pNSRTvugbElZZ0xNGZT5aEM1UyGzOvRvKSplsNBN28608M3sGOYenj9OO6GprYutX56tPa20eEkd5C5qx/6PTgrHaoPp0nnpcymObEeqtzlw2C2LPN8j9LgTkRZVMtS5cyprqwnWOr9HZRmP25ICiAIZvqgczblPNdCPmGhPU9XIdD1EvJWUkzZpPCr0RiL1UMz1KtnwlFuydD/zrMK2gQ4JvXdND8d0HsLoV0ztVovfWOE9f4zlRIvCLbl54NnPfCkIkgL01gsYQ80jSPcxuIJf6BhAhE2lkjEA42TiLSxZCIfaJZClI2lEvVAozSibSydvj0gND6Gdw/CLGMk0wuDKOaLQrIUZS16blkU+8WuOIpxFuMqxr1ynuK8xfmK3z8+DoNkubfMvxbqP/53z+c+PhD4r1/S7npX4D9/kOktYOMDwGEA0v8D7P8A3z/G93B7xgmHgqUS6YHF1FKSuMWjOdgjLaVPmni4VgqqxJiMY3jEtC1nL24VZKX/7izJ7xZGc+QPBJ/2rWpR5d0rJwovMFPWDA+tP+zmKwCCmAV2pzXF24tSWuSG7RqE2SK31ZSUVbAvcprZipqbNWUHKaRAmtne1KcpSi35RShPco6G3YQzPpi5ioNcPnXz7oqIxNGRESVSQ0/ZfIbt2zd/xb12xemleBQn7+OlTUNtZm3b3X6y8O+K0c+54j1mq6JZtBv0I9m3uf08qol7h3DXhFLtSeqnWZg+DTb8tMlVshTN6ntCHpKK7JU8eZKYrTR2S3ItRFIyq6SfNpPoGT9nmN+3pMsxtx9gvp7t0943wa6qMFiVrbl7wFXCl0iXmKiWakt3Flw/xbNFnoxJdjVJmsdx+ERbzLa3FUKwPOlY4j/DdYVD2ywqJVlzZPVITewje1VgNov72JtZlaLZfmwn5jWO9bW4WRPftbkN7URdo3RO7bTeDTNNCpLH0epSl69kFeZ0GaaTVbKnblF6mYaUZsTdIDXJoxwnJZcPdB1m758xW8m3w6YhNuU+zStcTpjNanByM43ZambMX9Y3pvWP+j1Im0fMBO7QPyFqWJ0piQ2/YMEW/Q17mhNnNjSVi+rhlKscGZzk3OhxE86oGhNaETaOeVQDFFePaLz0Bi5PSPUX6y1pjVl7bY982ZDWKsKw0II/a8yYeQeh0V/uXmhokEPkuLrjqpNxjKzXAA3K2HK7JdiatjnazbQgQKNbF/9c8TiFZnuK65eVNfUBy7XDiVEaQvNHr8rfRggKb+RAnvGkd4lEPPIvNq8Ua47xRs3gmHZdVX1VQ6mh8BwJ1O6pSbZyfi8Gb6EADQepaRB7djN5t8IibSbXjjxH+s/l/kle7cqsYVJyniXx6yndkwatZGHBiCL90RJChgZ3EguMDOy42uhOEN2eZP1xUM2xC3FHd6x5Yw9T1h13TPgl77nHSrGacfKYbbbtFh6Udj6gyS3FE8H9jbDRGYIMz2iMsd6Os2ZQpigyk0QsvaOJzrFeIRrQtTTorMdAormfG8VHZWx+uL18bZmxhls+Qf0IBjmbbvC7GDOGlZmytr656/gjMBMdHbmWUCsuMnKBho344MtGSnkczBmMoHLfWgFKF+3/9PsRIyeY79XCZIIkCCfcmMKjycwOTakube2d/cMzMvVrSybs4PyYcpNiqqtywCUMoxa77VUqiFm/+xHvg+0dhxHcDbeS4d4u3gMWGUpcofYgQsTpktXja4LgvrVq64vHgKO2fbCeE6Q9KY2LJNocj6HAZWYJ4jHDg49Po8cLCmtZLyxlFSiJ/n3J1xwX1k2pZB4NXKkc11Sa3OnTjrahvnQ71Xt+Sld7bK9hRgOL3jEkpbWM2KxA2BaVFRXV1XVNKWugRYW0RhYCw+1yOzLtx9tr2qdmx2h6bM2PlyB1Q9qG5gwll4jAKHvP3h6Cd0d3whlELNWG6BLqaRnhcOOWIKH1KJ0zx8pqrsk33jquvhF7u26JgrER9bOH6v7VhmmsLAuPkqmhaQXvXKEeTM4m+kg7qn1qJktH5rXkKJM0gzdhDdDlqsj7Dy7psJFeBSVC6e4+8sWnLmWjNU2J1FxWrazdnDfgDJ4HU//Pi0jIgf7A2Lrdk15WYDo5vXqCLSFRDPxrYzOipsOR1V92KkazmCOCwlmgmgF+aIHsCG1yywkfUJmLuVzJxVZvH3bmL+AR4p79iqh0RF0/F0Da3ryaXTWClhJxb6y/udhxacCSzsXVQngSyLGC0Ve1s1PMdpNQIrUnBGSgmpCkvv7m8vICugso/xSK8+nGWY7GQQnRhOh34zzK7PZ9QKi7PmFrxcbBxgt1YWMvpdORYcZ8Qu7Cta7DoCOAgbyJILQmS6PDYPr2ox1SvqyCg9rxWEttXDLmXAYp5xGP2Y+fTzowWGi6oJXhcCKH58uBpvfdE83+8TXySgnd4JEf5J6TiIQc7Pz4QoIIcjnaKcfeXrZ9QFdiwTrKIcMY0Jis0Du+kxfTq3J2PHGDEhYIPwi8wcWrFZmipro+r6emoQALQNDmULWdvAsdcjslQrsP/k4KYcS2O3O6JYWJeErSCgENtTdwCErlL9S7pj65NMpuW3yZxe7M+DJRb4AAnoyVLBhINaO283mY42/77MmEqsbugFDJG3Py5JCLIe+r7TwF9laa28wZWQG2gMr7uS3c0xkzN9bGklQzRLEftsyx28fng7K/q/D9NYmCnBIwhPcaK5qM0tzCZG0lbs0Kx1WBfXVSfbo4vzyzla66GZpZlleUqqtCjYbrSO9oa56sBxl0A5j3YMtIT2f95pFr8VTmwPvF+l9OVgIGWOSdG7g0CDm6yf96FAfGTMsw3KSya5uB2jKRxRYQ72Dg9Sw81Ie+WXY9lJlsld6aWLbVzbGv601uShG0gKeCS8pWGwhAnfPZq1abfGhvLzYvyR6EZvTBP7gpUeXdVgmdhKOxJ9vGlkayxEZ4or60lzAMWumWEgexEMYSG+tCfApy3GP8lRpJYOx1EgjzKVm4Ud3lRh8n71Us1AzkFEAz6qjUZdH9cTp97aNQHab0NRp5APdEnGw/3bEP4QAj4dBC3V3Az6PvKmMW7UoAJdq1zxPaa76GF1RSL0muM9k2TlzAxB4ATRIMI9iltM7MvcAY985ssy2PniQKHgWKML6R8HuC2wGYxFzeZoQOZHFmJlrudx6tu5XzYqorKbwiXOwOabEUszU5qsfIUODXWozIb6qb63oukj6SUkQvOj3Ge8i31j7O6uv9bZx0dBNCF403NJSUQCpkN4pORhWHcp7vnCyVO3D3U49jWZloNdVxRNnj1Wi0xWqaE+1Hz1V2tl7fXk7aoqI62tUUFADhKmoUtTfQR0nUVp+mjXphZDOatGsU+/WmV2wBijiJOXm7eDvl6/oIMpSyvBynlFmywCjTVRQSG0iTh4Qp67gFkNDHETjZKOF/obuevK1KhnKZ/fJWKgGV7d+/2c2oTrrT8AcJwvXufOTGSTJgM/B6r5/EBiam7TR7Jgp2nyCgkDCfimi1fen3v/UBqXBqcD2coNTcK9g5dmEBJ57h0NwZU3ORE0f/segYLdGFpY4fknFJ2Ufh0xtUBZHnmT9kHKPmR0pV3IlxzL6w6ElCQbw4nuxuAdsYwbZvy8MMJaOT0EnnppKuVx/6wqURmgRPbpQaAFdow4+GIBua0Kbp8qYU5RMce+GyzHqRb+LgkxoICYRx8JcZfgTDRxBhdjr2pzOE/KSelRZoXKrG7vwOQaaovdt5l1Ept/pmCKFfeKVRJsl/3MBqDvWFTsTXvm2EG5CmCkvDhjcjiFwZChOF9yYenQdtl5pwFHD8foyZZpVBrCzsJXv3YG/n68OCPQ0osqUpsLYjTybpqpTSAzHRQ+9i56yJHp2OF2AJqHhy56IW0XCGXtjOoleh34xB4hLd9c3F5SkEfCS7BRpD7Gxs7L0kkpeRfqEMXpoK3buQPlUSGKmuI1sQlO2RHwNgx4dxgEwXGgv0C09mX8+WVQwzMy7a8WmXkgY4d/5q7q+wgpviqNXcIRdU5q7kJOP8OmkaxyLwfd1G/N+BbLXmrUCjPSOSlbE/PSAR3u1nxys1Iw0t0ORWdk7GppnrDH2xAagVX2v2QjNhZ8tNC4myNt3BUIdMYygIBurVL2uhhx2c/YkMXjEHAtqfqJIeuWk1p2IkeQ4C2YQ4355+u84gLTZkptZK52vqTO088gnPA5ljIP3iOsLetmgTb7/tCJuU0kBxzDsOrqww8bJbXSAHTTvz42LerdxIWfN7/MaZkQzNxBlRG994ZMsxPJOdZOisX9u1dTtmBsaD3k5pjDlJXc7kWyUQPs6OUrBlS2zQ1HorciafL7ZqWKnZJ/lTO9dJtTWqWVB5LjegxMX22XOlgNUGFWxUMIjQ3KgcXzfI6iO5CEF+XHjjGZ891ALjUwvvuxRPykm9jG93z4/bShIjpW4moqnKbm0+RqiWVPJ88k9eWxuPuXr8DhhCn2xyXVoyR2ne8Tqo13f6+2rmd1X0G5xpQOSI8UG92em0d4FIW7C3W1xfb9nKVhjtGSrq8lxlz8ci0nN61dGsdAuuY1hNP4hZngsE09kwX82g5RffE6ZbSriYytY68y4NyF9YyrtqazsnwScAv2TKtmd6WnhYB5CeyJwy5f430vXzIiCKpOgAMjkDccSdoZXlwO/R9MDRRltTFO2i+1sHkzuRKi5CAjuMtT5/68LiO/RaTzfJaFkSMilveF/P1VTX1UVpFEqtEXdq5NoHVqwaWjBBZn26YX4McZ9DgRtUFKBBfHLIa9w6tLGBM/qQFGnaB9JUYSQjUpBijwXn3UHtdKWVmWcqK2drB1s1LJCFTpHegPxqXlXwkEdrdIXUbdh39zcb9oGdUUKn1kCcKOGDCZNfj3I0hR+w8mFAm1Um0TwZfAQRkFfgt3a+3dz1J1srhmOLi0B3IHS0tUu3if2TAhjLcLQJZaYxdpOFjjXz09rAIOTAthIgSQxYi8ULeh96Q/ZBwsxfZESAvTF05BNawZpO+PmUPi0gg8tW/iq/tYbYnF3IYF8oDNbV01BSsMwQsJ/TrP5S+6hPsBoO6a4si/3GJGmm0UNbl47MGRuQ7J7L9yMba76ZcmXeh2a8pD+MBiPOqufnXS+koRyQStacQ/EkYD/mBzxkGDMySyi5KRTQTNYQyVjVnOt+Q9YewbhvmhSfKBPjckZv2zKUs7MpC1NzaHHsDHakFdojxmhdT1EMhxo0kcuTTgzUqyFIgndnSUaSrT0qCJjT3Y9RP1hARFY4soEisupBbx/fuaYO8TyM0X2QFcJ14qtul37r6i3Z/D1zY/kB2Ta7Sn6YbHO0IxCqQHZg9RP7FT4E1cS+kRtEv1aNIFMIf2xTH3J2IftmP+ohMfYazkZm99Wg427pSXvNFJqFAizsA2oYisshh5axpHtVjvFgxdM9t1JWaO7ZhJxrv17MCL8tflOq8Ukqqgkt4KH5gKfhcSxjoria/UPCrGsQClpoQJ/ROs2e0IUbOYMb47cfPwulc/kdYU1AE30/qEDXNQe7IRVxocAildVmeP8sjhpHn0gpEAXREDHvi4jgXB0WBBFtfiHV9LcKjvyWObGKbrQZy3lIL7DSRgGkiNnNuYOYFSabEdyGtDmXajS8KgTS25kQFbA9GKi7OtC3JhQBSlBr3A8mhK1gMJMuHGTbKQIRDbCpImMfRAyEhCewsJERmpgnnh4RFrkrVTglWTAQZ6mEnS5gRJDIlov02yZZm3L8Wffg1fvn1VsoVPT0rwqRUBvcztyOVlP0N+UyWGnwAY62YBI9UYweLpYQniiK6Pqzw/c7td1tg7vgACKYiEeMPh0Hz5VZgDfLNMYtLyzrEeClf274/u7Lb6vawa1RpVuj0k6Xaf5hPdmKtyp7eT4yAoVG0cuZAntTCLcqeg4H+QsqNPInhOuPo9UzsEdARHCXKhX/JJwRF2MqG2rup/5e6nugl/cJzsCt6TOIA26Vp4RPP8TdnTQ1FQ1UDprzIuBHRE56GMX2ynxPiy1brO27eP+weO1nf8V9JZcV80r2YxzKysdbrp462Tp2of5C+zV+jybuENqJ3GiAti/S19QiFKPsDRrIGOcSnG1cFqYaRD1jDRwHhVS+KWdyg4brWtd15Q+cB8qUc87+cW/SrdycbZwd03yr4ZsfChM4f/YRLE+FBTqkeQyduHq3r658I5P5wZal7qGXJJlA4V+d7mq/ya/xoR5jHqInX/hZSc2SffmSFYO2C58KMSQv1UlIn/x1ynr01CucpcdQaLjQVlXedln16gBQ6kiLsTyn2Cj2Ddp5oBLaKfZdsTkU9y+dUida4wNHe616GS7mK6SuGo5AwdC4akgd5pNMuVato+0DRavq5DZO00WRBXLqbqDtLve/XHyH8ipTwG7UdWyxfJdWonWGj22Kthp+5Vq5T+frzwxK1XqhjCxfTnajkFL1JbJ7ucKnYkcx4Lyfcq+yb4+vTq+Onx5bRC0q25Zhl/t+ZT0tkisTL82f5SslbM5vylopfOdcUURyZL/jbt8TWpxZm4E9uH8bvjqzfBddNVhsctcJm6AV4WPI8jHUisAmON3VugUQkRCU7vgsBgrl/7EPY/EBkkMMPNpbP2Ubc0AvUEEsWH+794YxVWD+7uqvuZu3Fu96SBdacHRc9F2rzYpdRMYo67hb9xZnqQJ1UfFQTS9PDaqBk2KDjB86xKo64RgLlSUjUMyFJbD2cgJKUsw9NbS9xMOxKgLqzP1XM9P3lmYbSkYyiFlqRXN9Gzd2/HcFZBkgmEOvtuS7H4tvjz0YG9L/Iv78wub/AmOkr3RQkouagWZT9qW36AiIh7kXMk4qaq8T0cgu2rfyUv7tlwiR2RB6W9xBN9/9av2ZqdKnzQ/Tk+qs9iK6TL0MdELwKY4mIqiwR5dKh7XsYxyubpuPD6V0BEY3G0ywDXZrz4bzu+nZE/cfwCdhAD5fGlCYfCX+j2SxTVAAh+Tvb1woWRMeqdBheyAypsrMexp/49746ZZdEmbi6oTBe8DFQC1IjGGREbAvnB6wN9NCjKEW5GoAKihsP32dUPEkl2BiKT3cDWT5GemFSCTauuKSdEOrXj6f+Pm+I/lSgvUY5+fta0vXJ68s3f41Uhhvm3Lp6PtrP+2UA80KHbO2zcdNvA11QvHJDqYiqNBHF3cPQSvcJx/OQW/AsPO7AwpSLyb8ds0+nVDt6MdV7cvK1b8S3cSjpV0ZbvoneTJT5oRlW0RKjY0/ajDg3cK7+YNvF96SUY31W/Nbwt2f1KLzUNzcNyurrIj82L3uHsfmPXjzPUY9hkjkCr8vt4+dws/lk3Pd53uNew3mvTrmkY7LguWHHTuBN5ud1WLOC2Fm7qZHhWdg6Rj3WQ1RF40bT/+fufFi8XYk+Wh+V0B4VOSlhVu2FrG51JBUXJzr/CklWv2+8Pf7Y7xY2QX1v+0f7W++ESjb/yIsvuvPer8Mrbv+S0hvc/Zt41VQDIbz9ZYG60OzmNAQnEdUsj8yDl3DdDiZkuP2vujaWGEy0UO5yfF4zidnad8mmeDqKr8PoBoka46H93DzJpzyHMDejaNnYjAD/E9BTQOTVM2OVYe5dFepqg9KGibSmpxFaU3OvFdngG+nrnTjzQOHMkpbjETdAyfnfIXcoRZmAKFztCW9uu8492hTJTZHGiA5Ra9fzDyx+Z/YoLbvzn9LD38+N1HGJR2hxkXb1soci/NMke22qYmnH6YkLU18eb9HkKspZJBz3/JVlAXR0E1y/oZoENzXsu5SZH0B2VHiTL1wENTNkiMoipZptuBGBtcbWnIBkpMsOr+JjMO9FPlX38s19Zdk+GlgUiCebgrWsADhgJyoAi9RSokmFyA53P4j6r69vjE8PpkLkJwyfruWTa8NWltE4vUtRRk9lmy/dX08vd04eX3m7W+bFyauqAjZgA9ecuZ6DvhX65IYGsSJkniV3guPHrzFftTTY9YodcXzUcljfOPOqTsbXwYwpzCaNZKvtMcg+5TvF4ovxNFpAAE2AAKeSWz0T6k2SKXiH4WozJToM7eXMo+PL0s+Ngs/UaOx6jAAYq6PTyiBfOe8xgc74HMdXi+zXYKoD+Oahrk49jDJVzLsmBLbx2fi9YHYpLSanq6mhSse8Eg6ZHC1jA17JPT1y2MRSC5sTooydCBMRz9YPNH7qZd4vH5gmOaBME39QPF4r6fe4on6wVrSjadS2rJT2+0Q/pJu0rf9MdZp2Nw5gOQceT7xZnn2wfL0MFx7tetAmA45WDzJ66mXeAKZVoL4ERf4VU06fGV+VCizP/kHWYf6+lgSwYY+Fv76ZU4EklvzlZlYMaYj3TgQ2lqWd7Q1o/Bw4p5/9PH58+7uW/s7jtjH9kui3UKDQoYo3MOXEJFFefutbejB9BDkJvTGI4n5+9lHBHOGJIC4b9Bv2a8+vraJLbi5o2axUZZNUvxMr/kQN1SSQvKnAG2WvzbZXiEJleQWMu+VKcW3bIqNku+S0eQ8F0+4IdZz47H0dw4xTNyMnRSWPIGFd/dg9du10NyZy+J8zgks+w62546mglRjgpST9LPf7mvuz6Qe60ivBDwXyXyXqbHbQzrB6JnYY2WxbuWX0kFGHqq+fEIueYZ/NYGokQXjG5QXANTmZNYGQElsZDn+UvjOudwLWaYFv/fiN7KnrmZ0hAeu4xsXcI0PBj7zX8+IEvwJvpIUe+110zy7Sbb9tK6/g50fy9432ifV3dRP7TLzAD8tyOyATWBbRKBGsi6NGJxDjnEvPmH1HIWXwwyc7+T3t14cV9on0TwtGYfykvUryJx+e0ShomYH6Q9xoCgbw92wnmc/qLh5W/1wo5Sd3hWVFCoASI7APCa9jEJTDdXxk/IRocOc1Anr58+Lh3BIXt56HLG9DHy+QqdHWaVNSvRufddYxYoYt5vuuRSGq79hxpHcFrNkL+L1umdmOjE3adFKe90SS412jR2xd9FDu1Ecy7f9zOE+Yr5XlCRPt4PaRdh6mEil5j6bsGQz19Rwuuax/wrrHcw4SJn8nWrg975+iuhrlHkUTZFMrrT0LibwOWJFxBM+nAMWTLtYGVcdI1eCLy4LkekFoh91wDHGYkjvbxeuEd2MY+Lcn5J3Hx7+e6j7kI07Jl45MolBdDQLFerxw0CsNT194oe7h//G8OGhZpyDVLiHuNsLHfUQy901Rgg3nMt73bCb0RFUG3NnKgN9EXvLgmagLpMhnXraPhqWKuIpu/1HhxGz10Mry9JZ18aG7mLtYurYVXm/70nPsG35Kt3bjWBaU1Bn8mdFikuJItZ5ZJZb0nGhIrGQn3S+I0Zmw8R+QAyKk0MeP3GggQ2QHEFwfVWrsZuOhruYn8EVQamzpoOZM8NnxBD1xG99fl30hh9PwPNCr/0kPlg5raNZuehQi+BMZVvTfq+ibOjOy7+y31lN+r7o/ZfzUcy2KZ2KA22eEx1rJm82K3/P8Rad5qLm/kj2/urO2aYAE3vAYEQLy3bO/OinR8Zcj8h6VILcg3uajd1PAWkt7Rjifsn/vHjsPiufXNXDyaHJnTiJm6Gxl44tPgl9grfrYidhov070l2ElKOJgDlwlXqzTMqa9bkwB4Tm0lNGajnku35EMecYy9V6eVhv/1RRVQFITUF0ZEaFFYNE9dUME09D+OkR1jV3RSW/unHxiIOLHtqD4kA1I06oPApmJFPO/wBlyvCtGvN8Q1PodO+XAKk5yuYJTlozywLcJb98vWlFpRnujt1VJl43MCTSOmImwvLKcLPy8NaFh0b4zJx2s/baA4mCVXW2Vu87fFZ4f6OZSLxDsqOpgwvUufvhVV/nsMakpoHDgSfF9+fVQKrhxQ3F4YLwKw1XvrnN2BlIdkULJ8uI1ZQuqMO/ZhzHYHt48xi1CxjKhSdYOI+4LTzHG0INJmNWkvswj5moKeagiAnvohDMSQjmpCmBTocZPTqd1573TNQbT3t4of54vQZdi9/gT8WHKBbtU23mT6k1v8Js5mK6c1/hri8rlIwk9zk4NEoPprj2GOVLD+6J7yVT97swYAF4BEtVJBoa6U1k45NWTVtN1/BJbII3NFIkWpWFCMAzYC5d0g9uSSA4eZqKWnq2DS5VjmKOYi5VDfZ6Woqa+Ry4xK0H0sE1BkCr/zaQ6TcI30+6Ac7J38beZbshj4N4m+xyocNo+G9cvEg0lOFDYOOT1kxbTVfxSWyiD5QhEo3nfqPh6bDoqHU9tmWGpbpZtK9PsmltlKHJ/RyShAfdyjfBam+sBTJBf3lhWfRJO3yvjE/7c0GdtM5mJ1SciZWvWq5IcRA+XbrNqiTDNRDT4HooqoTsGqvIFT1vFdeqx4dA/RQ8I9/UsKCn4LI3PAfHVYqkhLtRk1QclaFxTj06NmJOR96r6HjLhKJ9hAK2erYMOntzjWF1U3fqG6Zu19WCv6F+ncF830JXZ0YRLaOoHrvQ2cnJOQlOAtI6f7pP6cUnTq5b2JXzfqRuZO9ILU8K9kEmHJ7kyoeO2uG9w3XD723Qaiau51yFtjLE+5Ln+7ZsS3dRKXXf1GyfXAuaMVG0HN6NrDt9Vrmyx8z2EsfGw8oCHRXt8q4tgBLCiU6gH/BX4ae0lI83Hj10sp94oMfscdPlCQ1LR3trOxdjTL+LvkcdiABnm2iO5t5sv6bxjnyl3rbXC69t1GtfjWoozXlK6WHsK2O02vUrnqOXW3zdvXSpTzr+VO1Xl4Gi/d20Se07qXTFAdt+Rsu+sh7GEwoqTP1rSG8T65bJwkdqyLrZ2/g1WF2sxaXXZL4gP0bTf2CUxUcfIAf6GpaJV8cI4nF1RqVBvvv0onbVGPgylQ8wzZ+ac2xi/CKsc3lORx3Tg4OoyemOTynxxGq/lBpKi4KThY4LVeatMWMqfu8/gYzRMyKfzt4dZyIfbGa/SNf1UozjNnwLSAtSZ1BSh4agh1tG9gdmGFvvkqlMSBkA5R9ZvmeMHgT6P0oTYyRObJ3YrsX5rsj3pdK31beNzhJeU+bXHXRBxY/zn/GVzJcUTkjFj/XufmX+eXeZ+adRhKWl4k4UPqZ0RezdTW+yPaV4dkj02JyiN9divMQcpTCx+m3g8UMZE8ZP36A4DDle8yawphbvxqtJR+nvdrXvgiDxMs6csFAWw4sekS28edXWPsL68hn3qd+3Ts+VPGGgvn3fU7VHVnHzJW901HFs2PbCCK/zwujX+hNRaUNRqSciUyPo6uw+0b5w5uBg3+TXL1Zn2Gy9J7XUIBWiyzmtYNNwWw1LD/lYUTfhLu1ItUN1x5ucVQv0fIpVJUzxokezK+PeJp+oP3PWddTrYqmjC90/0qvANaSa5u5dHOPnTLOztaf5xI9F1h070dR+tLMjPrrlrL1sxN783vaxgyj1tYImwWqTbHIi0ESJMzHrbx0pcvGvQQy1ZWrl8MWjh9omWwZHAMr2GEA+7QDIp9oeDcvzy0qWtzOimMBNHYak9AaHa/dn5tCxFeFQV337sEzNOp3DLCAxqzagOldIcpRKtBgqBOrtGnIrhu4KzaIeUkYLOopIh83e+8qEa4PIGpzmAlkX69IXPn66buKi6IX6if6etpnzoufbZlVhNPyF7xe+ScQ8Svv0CH9x++KWRNyjNLQzjsl3NlU9qXKTM6bylCM1SPAqFGK1evlEWjJMYYQt3WwL3Va9/Oz8rbBj2wVpGCp6M7Z5eUdaMbQCFbMu/QtVJv0YViKY3nwkI/to2lS5VwyWVpibkVVUnB0ccTQg0jPQ3Es/u9atk8l3NjE+0AdN9ZZetqVui15BdsGW25RNVmFRJl+JMjIpoydnb+ca4ZjlRHUnqI3+J0PqsOZnFhazsvNLskIZDD+YP4IRHsYqLN1ZWkOay/PLwlLnrr9cvG0nwzJONgsNj3fzyGu7Mz21QzusvMxmU7I6Iipi/gghj9saIi6aN579P45ZvChxHls1JPgzvRHOvr4eDRKfFNvTV95jPNBtj7l7vHMVmHuYAttpj2HxnmKzHQYeotPTh7E9PeOTf2SYYelyyJUuM+O5yE78Kik50NyU5esrS+ord6K4GSX9sZ5SWi3wg6PL64hN2QvNhc1JfU72kZOQGnEIGJzHcvzGqUdaKbn1UG3R7pPH08q5p7Ds18bRX79ffJqZ+Lvy+vzMK9IEbjhgl5Z5kOQu/wPFx0rAkKmPsXYonmltKUpTdXFUM6I753PeCNZu/bd0ZubOy/uH4s8zTUqIlXNHNt/8YqLRaAwGbfjfhUxZbzF7U1d3q1AHV8vUhKxG25D6vRn9an7EgGhv4GIdoHeKidzLS23vPN2m06F7JMkk2a186iWkb3iyO6zYW9JF2bHIL5DXe/mEjrQ9QZwme+zNISXq6Svy5WHA0Tg1hiIwHum5fjqthotNTwb/cjQajUGj0RhnFzngBQFO+vseJ8wdldcbV8L7IfyshjXApeD/R/Q0Exuw4c7nRbW/DiPuhu/W8/XSLxarjK7yx5TJ7SZHurgnajjmBnjgrpgGbnpljVGm2owPQjC1U+Ad3Snuo0vWiKEh0zfpePbzMhjxHurK2ZV66+OFx5va5p125+u0te8aHrvALN1/u/ZxoL2U76tem13a3fxMF6LrtJes38K/876Zet5HeSnGUVG8ewoC9r1EJNCY+lwI/eaIwp6DX1C+EMene/xR8bw30EBgYXRSF0czfFppn0LCngRBSuW4TXa54SiXPtHf2cptw6QKv4uyoYFBVOsvTItH3k8gxYZFe4rMbIu5FdYK1hoFjYUFhQCRaWNM78McV9J/ON7/SnbUcJMKRLjrE4ZJDlp0aX+ks7q23ffVSgeIE8w+zJWrsF/2ejSlneAgmtg6XBRWGS33ztYiziLvlTA1NLRRpsTYjW7nmldBo7QYJAjHdnfWJ7wONWhm5DQ4MiIrvQ47xTO07Yx2HUlymHFRyrUYH301FOWtLNHTEds464wySJBSuKTar9pakFG+0NSOwUg3nj3lcgrL3tyMLYgV2xA7JbYhNmubzoYfRpZsgNhXXlReKCj8VfQr9lBVmya614nhM2J7dfESnoAne4VHUch7iaaiFkSnsIL5my6s0+0aF9/Phdf4/NcsfX3D6Wnu+ad5i318vbOBVQ791bMoFsgUW50str6gcXOOAK2Sd8zEDa175b2VsbMiWzp9FJAQCCZ4+IdDrEKFa1wZOc7XsoCfsEtfNcDjgFLsbbFxRsyef3ppmFv1f+IG9GcAhHaOxrPNoDGV2yVQP4yhqisiHBem2hYsbtpfedkmq9xohJsoLhD69+90k6pHr0dsG9/WeHIKqGtLo1yx/cNKKmKdWB+4qwHDWb6Wr93ojVGL1lVGOiP5E8qEa31IhLOybrQuAeGM6LumNDjeMT8XPdcxP37a8aCS42738MB8PU9fvXKxxiQQ/9IDKaqlA3VPOWXU4B/jDLP0ivUX+I2eOH0ecQ5hc8C2dqIW6LsUhJNKxXM918P59O5U3FHZUCHbC2edy83KXbMZBtfuZt3l2Q3ePUxH35HS3vSVm+RIYbGudmlrsifaB+k0uL+7DeWODlHKsYtKIwWYhAqJd2fBu4WsDT1R3pi4Y91nkWqHkS5SsdrhT6IJWRj0nnJ/QJigBtVu3HheMP2nnips69fA7lfnd/cW4YvwROya3LmY3ryPuR/7zscQFVw8O1JJFiEyiS5lINY2wMfbjgZiyl1kEs1DZDBiGiZpH6nm/6f9b04VnLlXXPyguOheSdEDBY+H1n6wcKEkRIR2dM25QLmskOhDi6nashK/P8oCdSMRJbXmdpML8Qqd+0klywMw/yuxknUuhsXJXoUzisHKuZGvViJz/CMHmyLV0HDYIwRd1Uhmgn2TGkh4dT6ht2ibp0jcC9WxjlA62FMJYlAGonyDOnyDQWS5IRH+bX8QwFJgqsLV1q/n87uIs0Ga5QZi+DXxclHeS2ilD9Houav0hVy6GiLX01WGaRGSRvKziyb0qPtiQ8zKa2idt88REJOlqWlTPtZZy4uQR4DjVOjhtuM5bd0CQDy59GupRFmn378Fv/f13ujtauRa+jJET0wfqesU0DCYBL6xu9I5OXeUu8FVn9BUmnuQLvQ1QNz/2P+iH+Pt41Jux9aK87baE3zj9bVH49YYWPXrtBboP4THhzsPK0Kr93QSOPvcQMypYfJfLpzq+KTAJBk/Z9XdzP69Nae1HR6rnglDMiNstrBrsMDj8/8Rq6/oVabZXqrZ+bUuKgEQ93X1NtFH1dbtR2Iy9ptFQM1s7Pn6r//B1IE+VpEiVhA3ALJ4Y7hi+M2Qyl2l2cYL86V/sV/Ee39rBtEqdf+uMIjgntkeqqq7nFQeVEXZs6CP1fdxpAae1LbgllWd4wf1Su61px2k1wqbo3Iav9W3JEwpfUOq3fhlgyW7tqFhZ8ntrwWI+wTzXtn82yCCzYUXiN0VP6K4VypcM6gUfcC8TOe8uVQnp3rSLS0voXnZt2MAMcebG8TrU3H6MWhZNX+pQd1FiRxlUeUbyqLjEktSU7qyFP8VqUZbMdsbrQQh03eepNezDoCx/YuZlt46WkHYRE9nuUTroDQjH8SSwXnSgzZ08cGqX7euY7fF1AXUW/NLTUur042ll9OVs9SL7vLX/M806XYxIaG472tKHUG9Tg0DP79SlkK0Ft9I5kjKwBLfSMF0QnVIhmf81wqMNEJky6VGURxYDutl1a58X0/rJvqQzCzpqlMBM7xWRcNpfZoHEux/Ek3/Hsw0Cq5H4k0iuXh1xqwzEK9r694AxJOJfSe6nt9G0n79VyVaSBItxjElcycEBycCRdwxxddf4ZtvxPZLcQhxMUlnJFVMIMENXmKbMj4ouk+HPZwm5jUm6oSGQvyhn6ExFMjnevYlCNQJLTom5gWn2XeUiGXqZvELzTgsBXWGQK6KT93f6ticujclpAKgdht2UA8AnRCevLfi5h5ew0E8IVApbwcVMl6/hK7wM/hyezoeB6z+3a+UVl0u/1COsyurhMaWff8GIDlkLpHwWE97jLAirBytHnKejNd/WoZHjyuh/qasG4T97fVhUpf7N464LXpu6z97LeX1UvuQbLP43oHYsJo8Kx3vmpol9xLMoY2CL098eU8TOIqL2muWC5lLWfipXJeJREa4IdXa1L5epNnzta4dvraD9iYYuQncaZ1luR4jfNbZ1Ky2V3sitvWcdym1rpsbpEMKHIzxFGeSAoK0uI04iIvmOf3vLHrBwq/e9XpGNehcLX8//uM5QHKePx6/X6ZzObqmx+1dt3t0re747pQy3atRDVU6K6EhJYzj7ZVtQ/V8pZxQ+tsso7KNMzNof4DkvDm/B7oEUz5vebvOCVgxC5OyDKLM3UKs3uyxSjftPAbOPpphcjAD8uUq/hfuxCow8NXaDnKm5/+UqvlgPPCpyg5CqWFVKU6pFpF6XlE6J9nL6WrHbRKirZKlLZwnU51cfMID/J18gyN8aeG+afoYx5SqI2oKYU/UeV6hpfqu/sQYIUiMEzdUfkQdTVPO94zaaxBjksmbPwaBEV4caUw8ogu5r6HnPuwdL/LxmoNRVEnAtC4ZMgs7LAs/NHscr5+I149H69BlnB7+thC3HLYU/2nxUMpJm35H3BnnMuyCwzub7pXobrtw41K+Q6oD0MJKOSAdqSAz2rH2SFV8AGCCQDeapZNTUMalKyd7O/04Ju4Raum2Hhq7Xvw2bh6Bj1pRRWkU0Hf07KVM3piidKDiad6wmjRFTQ2TyRNs2i58ff3D+nfc2ittGx2STq/y2/R6SWdReyE2MgkeJA9N5Ql+PsTRkbX4axo840iaXZKMl3cymON1Ip+innaCOd7YpMDHSeB5VT+TJ/gi+0XAE2BlsZqZvHM8wc+fP4mbfxZ62nuW/xDj9YftnYUVVIDHsFiC7Z2cJGu2YU5M8lNxyW4xL+ouZ3umOlPEYX6elVp+atNLKXHEQ8pEgvAcS5BM2ZVev9mfXFYaNy2p44kOknfRcXAh0eX3+D/JtD2RlVBjFKTwafaT+rn5Jy+e3GhUmu6m4Mg4/QGeAK4Efwk/NBtAehojYuuWJk+3M8wLHhAMOjs4hRmMGQt45EzeY/gD+GP4c/gcT91dhYzXB0uuOeneKzrsVpnosezwigDdsCy9FCD90uTft64H79QSQDU+Td/WV5kdOHn/MJz8H0/AMzEsJ4sW7mIcLsRY/KSXguNKWT76FcnFNTDzKNv4ctduF48pJbnGKpZHq9xUyTGhu/obZBwpUChSKG81TfQiTtWtmWpZ3iRFKlW4J+w2igzIIK/XFHYfQzxavJJU6OXB0S0zjKlXzK5cR7hh9XL0sAi3jcpsRVn7XFGWQ/42s0Ty/GQ6wwqsnHMV21OY3ZgJ3gSqOy5lI0bigRUWuhIpRUJTlCYfcLN4f9mHModAOrOMk56eSVv81mUpfOVBzx+wznv52GJl8qklGrNfv0FWX10zT8ITkeDjZ5FHJQbIooL0BZ9buC1oAVqVq0oz3q3T6y+uzU7NDQzLQNcqcQydgo2yxQP3oQfFQ4pInl6kIuxeBj7qKl4OnoW6QTGlJLdYRW6syk3VXArd1d8o40i8ep06t9UsyZs4BfD+6EK9qTNRc2kEjbBYe7Um+s2CJ+DpYIIkv8lgyisXrYihl7AZjP2iJl9NexRPGfa6ijkJ2aMTEZEwV3nh1E3iymDd1PiVto+wlZ+PJPcga+Vuk2pNg4INwrHO7UafuVJ7oDFhxSwGfR9M5pweT/D211vBplI+pIWQ7K1bxrx8rW0Tuq76SzWSe82qTuHtssijqhWR2vQd0GjMHn28PowngP+DC3g7QvpevcZ7yKv6qjqAuO+azYufKIyCwlz1Ivk457BXmE1xTLf4K9z1gDOqsUkdwlJO7GctR5lS8VLNR19KSbAlOjSTF5LJ4YoN98Sb9J6efup6dxqeOtxwCPQUPyTlio4KOW9xQi6vI0/ZY/x4L7gx1jHm6gl6yDX5lfmR3qDByJzKnBqP0KNrkf9d+bsMs2CWy6tTnNf3pE9JXINXWAd4SvHS/M0ywFdCsrtu8iP70+Aa/nMGKfnp6+cwW5E/tM+rw+qbIhI97ilIW/sUPjij34U4h38laev1j2lPNJ0jNfzmyPdi8UAf49RLGK41sCmVwnjtyQVPnf1isAk51iynI2T9p05N5TzN6Zfx11RGPW96znre+Pzeg3sVZwWzo8xYpHQONyOzsHy+6H2+onKC6+bCZvh9iEyLETtvaJmwY3nZeOu1/EJFzF5PlVq0c+EiC436n3Q1bTejyYac+UhrfpTWjJX4tPVpG1l4GW/FmUvEw5AAL80Zb38oZEVyHow3G+q6ZgefbDmVn52va2R0+IMK/EO4V1BYQDU+vs5QgfvQsLuFd+/dLeizGCD39BH4/t05Wm1lI/IfnROXILuC30o9tuDpLFSBDizFV8S7BdlGiEfiNKLsO/dqB44cflk84NgrEiGeHu4lGuF808lbIZeWSWBKOAYqNIpnoaW/7vD/6oEjO5D9LZM5j3Mq95eRh/RdLumR0NQGzEMKGevCx6gHG5XyMY89HpyceR/06ciNWc9dMm4Weq7SecjcCO4DmB7Et06mIUBThfzYEe+EcLNOzIyKls11DM5TQ9+qJE8VquVg6IbTpT7RJ8SfKydi5aMj0vy6PMv1meFWjVFaEsq7RLvGLra2FWbVmmdd0tI+aBInnKMSR42KdCjS+i9dj4Jh6Q7YZbt6RqoHiaLL9wI0yAFosABQ9EsARUea7pXsQUt2/+joP4yL98FNxfH5SPqnioQKZEKbjoTeX3vIC9gE5eeQilp4+CMdWdtUWZJTUbjQYBXpuXQIB2ldP0V0sTM1c7ElEj3I1k7Wjh4GgbjOCEtbN16Kblmf4+ld4OFlM9rQdo4oX28NCU0hbgFOPnt9I6FVsFZe9cHWzipYJGSvr5OPW0BTqBB/j2moUE+KvLWmpy9AlIXhWSZRSaSAFc9mFuI/YWstTx+AKA/HZ5tEJ+khNWF5fr9q0xgfIbh6Hj2WRZqFhqKDlvmsw5jlF3RsI3Ok9zJGs9utePw7plPQPnIL6UoLqbJvxGTqPV/msBXSqSKhAvPC89i8J2++16jXEJ0VveLiNwR8Cp+84N0xj15u2Bz/c27z3B2/JL9wf2aSf7gfWveG3/r0ut43vxiBYxgrOnGU+qbnGcFWxyEofpUn+Iv5u0928+/fl5t+jqqBRbk96Ag76CEXL2bdumwMkKbzADHujqZo3ykbmi9AqDsOd1smG5TgVwkm4bEs9UGhPOkD7+Vf/N9c/PWTZbDmF/LWBeuvsJCj/+x3keL/PPtTqsHl2I8hQ2TRj6RzemP+cKSdep8gxQ9byo19Ke+0DtSB5avn5eOp+dry6dQCrkk9tRg3aZ9d4n5GGgJOkoEdf9WV5qA5sNLGuLSR6Nrt4F+0a4w7SeYbSdbHSbKuctKISHWjzsimsRVBxph2Y0KeG4+BQRpb8mhupUZzc9fNUY1tFFlW3ZpqAC6h8yJnktETi1tKvR8r2NQfKr6wIQpc12LKGXC6Tvxs5O4o/CS2ra5P78eKz2qoc092KZvFZpmb1TNS9mJx52mIY4WdPaAffouGE6RVN0l/jhWoP1R8TkOUAkiFYYhh4Q4lrLy6fKMAlYWRDfuCcaHQULCuntSsYwLnTxwNubiNnljcsMQ3sCoW2DHCcsmdNQbGNbuiw10Vx2DRHLS6PGWvFGUrJYPkyYHu3q6U5lreD/DPIDjgObSuS5vgAGwPt64Qdy5pI03uiKF2uNLd+2b+ENJGfXGf0nx27QTb7k5guTbqSDh3nxnXqLvr0YruOQIuUnfXQzfoaQWk++RKn8pfKU9pXx40xivXS+qMLBYvb1r7OAm1xanHZlfYF6UhyZrPTet2kqonJRsfZ30L4AvpT/hQ8R7utaWUNHoBfDKngntTLVR2WZ8O5D/HawZJnaJu64dOThDgvrbJ10xEgxPejJj7FUE7G+BJ+fUPszekpZ34y5TUgUC7fQcU5jzHikT+hKJlISEjjHtAJxS5EUM9cleaWc1lVLEiNp++/2SHByStr1k3X16VmsYmgzQzSePq6pS9xnY6a4fYpwrHYaEqU6QrGFU0NU8UjBcyhboHN8jYvmknM7AR0uWDBosVMwXHBKlsClREFbPEwC8PaZ2Pd5IZ9IY1gIuKeYXCzaka1lyw6KELB0XFPCSDiIcJmt/IK3NwFIZbNA9hCOtKIHBruvmyQLOHSY/zNA+OHhZ5MHPzBPUlTCaDVLkljX9h8wjOyFltvrLe9rR50qMzViAKZI0ht+EchxLpNEuH21D2CSiPFA27Yv5aaeTgrrMdVGAHaP2FHdtUGdyOA/3qDz30N8AHQ9fEIlsWNPoTsu5BwCGbRYXWTSIHnavtk60hLd16jjc8v97NK+sr6djuLUWWy5aVld0klUOO2mHIHTHUDlfR3ZrmpGRsa+Om9WGSwpO5aYqLcZcwi4YpGodrSDNlxZTD1xWMWzQNO/YG0zzsoDBM0/z3Fr9QHv++WsyS4+bPtb0gJP+IB6cit+ar0O4CQhH2WVEv/7t5LV2BtF89N5IuL4N5b42CdMlsT1llZeIdCPkzyFF3huwZpO9iEddszGIaR6GXjb9DE1RYwbm4O7y69wQyfpNphEC4LtEvgAvIhWve4E+cJAdlq9GhRBuXunSKuXJl2xnFQa/YNxyDW05a55CURj2WdHfJQ0RaOEw3S7d0aulQ6GG1l4Yn6lifoL/lHymTDAeEBwKPZYZohaBI1FreB4R2uUVxpVtOG7pnIEJXX+KYbPXHteLkJu1asbXT0G9LZpd9Mx8Y64AWJYc8srTpsc2Ax2215sfxGD+A95K0R897tXj8ZcndO/fP7zf+Hr6/sbHz79XZ+Uma+c2nQPT6vzon2qOdj7b/flj91m9n5xooyPaAQ4Hpa2v7Y0VK1bJdsb7s6iz+VnYm5ypcYNqimgUVKSJCrwVy3wjV+GsvVfYrdb9M6GWh9pF57EeWbfHnY/8nG1ekKJCM54DWs3FFikSdHDB97jELPp8qO1+F55BHySOy9abwW9n3bQ1IcFQ1C3kODRfZeQjkVjq5BKgGPQvUVg36LlBbCCAzNu09K5EqTDb2HFLQUAQknc+VzIaKQxJ1svfzihKYIhoYB0Zu35xN168mwhzR4CY7j2aOZBHSGJDMnlzbe+2ab9dV9qRUHKpatiuUqlamflAb/YfY+3EVzBxNjQNStCPO0nq0yXpkRBVqGykJN1lAcqTRhYIPlHqYN39Q/PnQ+TWF9l0Pa5xbyGNSEVu1bCN14ZlPLVf37xcp2K/bw9fwvgPUCcv2GQNqn1mJBZAvLAdoAHnP5mwvArXvatK3gdoSGdGDN5lkzZw+Ynb4bGpN0U6zbCu5n9T28LH9YqrWC33vvggVQ97Afb4I+3JxsBTJmUt6z7f92q4CqG3RlWdYHJX7IXEiOGmu8n0ldXM8/+n6yNpuFf1qLR5FmbtgimOAPUzj4BFaYjxApEfCJKXAwgTuuIjffKCF/eO1XaJQvaAHforYnwYtHOfwj1FEZb1wwO98bHO1jnI+zQxJPSnokHArC3ONcCuHxgA8zB0H+29WR505yOGezU8JgAQmd31/hHvU3La2qcQVB9Zvzq5fTarmCM9dz6Y7rpo+HxBusjBzpDFecvB4AJtnqM4SGA8nUWCmeIemvcs637Hp6LWdQ1+9ZL6KqmXbVDqrYBIPCMtdgf3ztw28YF3EXPS82BJa9t5PVutAFULtgNZfypW7G2Wqq2yYtpBE4OGYHMt72s2bnt4YQ6bMPo/LHtoYAzfpPg8KHe3Px7IG7RXIm4T+ItQ25+gFIP+ySE0MCVWY7BYilqiJ6Wf8YSJUYyLF9yRNNsYgTL5Ps06/5xMWWfd8sq//PvdZQlq3dtr8dG6Vhv0UdAOOjKSvDrIS/PUPgbWghXNVmP8s4T9npNb9x9m3mkijRBM9Nv58NeH/XuXZgnMVoUliSSniCkKfI5Iq0S8JvBY5fY4gTTjtuzm1OJNXxBmRAKZt4DzCgXq4IQrM7FwJ/KoIDnz6SOL9qAhkROTQUfv/tGxjncRqtWyk+Ic8XKY8cG2tCdTFyxklleMbKHP3Zguk6golI7bPSpJJRjyJlARAApO7nJZEj3jap3AVEgRekZXKVpHKJfpwnjmIjoNn+0PY3Ou18CEEHAqg+17o0ewCJhIrgLCERVeKatFDLgBHi8Gh0H6Vz2lenChpun4sBSDw65fF/lYnXpkQznOfBW0jUiAbK4RmmUdRvHDI22/if3KyMvMcbnjtc2BQzE5+rZZsdA6nBD7/bMGOL8KGFNG/jQDof9AuIxOZfgJErAEavN+JVnP3GJeIioRfidSy163c4KbQjvjaVws5Xs9nOFsBbHsImvmbxfH4IuKMUmHwFLYouKlvcWWMBhCWgRnXPlVKFiKEr+VyeICUbj3GccTGaXHJhk79hIQsGZJXKJGF9/76VYSXt2nksGTg9fn2ZfFxcjRep+t2A5bbOLG9Za4AOH05PfHpgzR8eJSk5vYpEtQBgcN8ByBHlE4/YU71WvfnldknG0gZ371k3vtNTfwXz548Pp96Iz9pvVe6JtUQ5rNrCUmN8RAMhhe2Dpm9sGewcIQ49d5f7ELNcDk7AjAVeobuY7BMm6UvsGik4LBsethZ2tRVTm4qRMF3AAIOWzp/BQQQdDmWaIQTG1h8pbn4EYBHrbR+vzajmwTBd8BuaIrDovaKI8vAIT5+krQSCB5hbbYyWTDZzr+MsOxzIHV6YKgxjEztlqC41KRZCigs3n3VQpfwysChi3tlaK/15EQm0RCHgsoRJCotc5TaSjErBjt2htm04/tVZesuM5LeYIOH6M+2VJSyQxuVrltMSCNOQuou6yT1yWrom21p4G9s4tzwMV1F8amLtBAIBwlGOngOS7PU3IsfyqxFSw9cML+e7ztk5GAFwgm4HKm9g0ZPfYmFWiw+j6/Q3lTY/dTBEuNMFQrh3lw7pldpmceJKd6h4zA+daecKOwhUAbEg1vYYUAEbtGu0NYGNgYtKU6rK4T3jncj8XOIF/JFEjChsp9UqgjkIHiEHc1SFqPyigHQCD3gYnaTi8mT4KABUqBbiD6i/eL1bqNhNsPv93OEd4/Ms+7ZugAWGnTsUvfUXS4DbyCFGbHqgHJztZ0BKIX3hELlhI4YukJV9j/db5vqNVfOn4gnK0ZPBajlAC8g4AZWleNAcRWiR8Uy3yyG44uwwFAxLdaisWw/06aL4nF1AwM0aeAGJuouJ/q1bjSxH9ai1bFauLvKqXMUPOL+kYCPEJLK3WyNZy7MMmEqBEDbsGtCRCcLw1DaIrdWb3Msz5JwqfmTwtXRNa4R7AEWASvq9ZQkG7pPmnJj7Ttm9aChKeifONkleIaN+oaaewEe9bmnwdW3MkeRAdqwbcJj/W2MQxnMsQMk2O/bpWbp71+eHM2enj19dO3NuqDfZZeFy2fnC0UkKqafXwuqQNlAZq20sgRzAEJ7CyMDINsQa0I+aq468uP6vDN9+1zDPK4Poa7iO18z3V7aLyG2Rq/8wdlurCsOScBndOvHp148ohjPZbvuZSuWvtkRh4x023YfB4eAmugGScyumK8wyeagy7iQGa7OTpBhJOi9H2IiCUKyD6FBxdQlcWXBN+jbppcS+JEvVOfGUhfsjKeZ8cn+NNrBtHmWZjqKZ3QEbBvksCK2EYHf1lVcYZZp5OchSFqg1wQoO3VD6rXWJR3SakPOPk/wcC2kcBAsM1cznLkkqInWacR2zsInoH/CYVkqt4kwTU7t1d0U/EFsb1Vbq0quUTWwMAGQoPtMrJQhFNoTkF+IS7o6BRZZ9yYCcBKDSCFRciVTU6/OZbQ3kx7N9paoiK5qT3hnYuaEMjqKgcVneo6zTk5yxBcCYIVtumT0VxOvzmQcMtPrbOFkUmBpVA4oDZ/TRWTnubWlpK/whA68cocge7+dcbTGIALJqqo6yWalo1BbL2PVDSWxK1ugMCd0RxprpyAlQZZk63oO4v36GqOLc5wuqwNttkgTHo81gVU7hc/DF/nu4GYqyJoJ8Ef1zaI+vghF21gt1Me7oQExVof+50uQy9ISS/KUc9YrEmpJnQADg36ZC9hQUZQ0UiYh+DrpYwG4sNjtAEEtGEjb/kBSnimslukyfLaI/X8W2F6miF7AUq4y/2QdQKPqhJyl85gZpM7Fxa5sXY0Xhxicr3eB9gKCRg7fRmwleCd0s72pt5syPiEnD45V6mgrVJ629p554AyJA4fuCEtjjbYBgwBNUAAX2fGgTi5JT/nWwIuDDbRqFygtwGe+iWhKUmVd735xTBJW2jS9QAHBYSqut2k839cOhiSDqL7Sg0WzLZTg1OMpHfqjmBVdalTFc9NxZCiwtlLsjgI8ihHMqiR0ZGgmkRAzEpMmJbN0tuJEX87cUZI293Bht3Bw9hOSdQ9UwjSv5v1jwXdl4bUIP46tnob3z4d9qwtFLuiFZUExO2mhSktqAO680EZG2qVygojHs1saIZQgkPlYQSm6rSDmymo+3RjjQnQWDtvpz889sgMK/nImFJ5MPBFseIpJD3ieANrFg2i8FYG2A2uTwudNxMTkLp50KZmdomfkIDhsa6714xXPfjw97l/rX9iv9W3RRHaGo2eRSFJOkFCxuxg7MWUqHaBC1WeGGxPdwqc6YFxZVbfc2Q0t3dax7qrWouZ4SZcqRY0mFY3z6abap1AKIgCvt/cY+niKNAiY2AsiOCxSkMJKt8sr4TZfuBLIM1+lMDU8tQFRUQ3KdqpDnjbtAqVMww0j1E7cVjS1QFmSbYpL2zmpDsvAb7AFE2qVPcqn5cc2j+1lJ4yBsIW4lKm4GbBXrPWGQmmRZ9oc0sutZm8o6Wuy8ouLZWKV0k3Kd2upAAGaSbuzw6/iShyt4FWicodIhGjNPcRK1k5U2eAigwDjpc0+2eDeL6dTUhjbLrBuoU1X6S54WIfOOrVWyIiEECrh31/wo+zaMs8kx9X0xPvC9YwOwdJdyWTkVnCgEMup+pX1nPPEoKuck+wT1aAyBpmQZf72JkPPNp0znonNspVMQZtFRQYLByANPq6RJ9jsrkMIzXi5bRrKY5WFrKT6xSkR3d2ua+teaYikab2KAJw4VxTLdisJ5cwtw9WJ5IHGfVookQtI10hzihCEXWTHo6VoOQA5ok6YYJr95ruNlI6aeyY5DbWJPWiYUdOswMMbCCcI4u1+wkxlvtZQWN3dmWuuAq3mXO1upqR3CA3qms5YQYY6OaC+73qV0Odp1lQxYJ+qVdSIWxlbH5uPwbtXdwn7ttfFGZ4J5FrT9FT0FxsULfOUAnmZ61xh1shkymPznXyozzxGclwQAnThFjHgNIhx38AP2bZzNKBwhsMx3sjW78t2ho1e1ZLGVxa/qFe7baZDFXAzXgbvOdbjXwhBwqBmZknQDux91EO/rWzk7KfDna3QWy0L4AmPZ+fT0ehm2/rVMfYKJGXiC2ogqAOK0BMYhHDLoxGvpPiBom3q7Iop1ZTv8yQi81c01xPdYzPJYJg9Zm2AiL+VvrAV4cD4j+6XGtaYMFuFE4r8KrzoGTIgv5lXIjX/2ljLrllOcVqpocugrhLvBUQS7InjgA+zlemFwsCzERvEGmKWjWmVSKmkygiILhF3eedaVF3hr7YCsoFPIKLR7Pa9ebMpJCQW5DCdCI7Fwc6MBtPvmsZiM3RCwPyVoD9Q3O/zzFeoWd+iV/jIkxoHTSOFKucWM1ERG8WsWXpVVapDgBZtI4M/sAiRsWAupwamSEuLNSHcYETM8jx0om8p+Ws36ZyDj8x/104Zz3JsyYs7NzGV5Kxb+97R9plIXtKXqlBfGTGGDqcHHXMMeYcrxZxeopG+o+IWp6ZJsq0bxOvOY9LOqxoI6tSsr3Y8v9BrgS5vCH/8cHdzfnp0KGYXvxS/Bnv1Nk1xjTYIv8f7ucqvWCr0PUSYsZ+DCnOcmpYxa2uwN7vBMxtTnxoZeO+F5mdODKd5mtQgnC8HRmbE2BPydNl3jyfbd0an5+z6kLGtoneH0hAmaRs3o0oSQPwDAXTsSkgiHHWDsvag8joj4Nc1VXA7/xZfxVJvHMIgMUmK4t57klsEKVpy800vqe0xDw/VBuHLD/hHzYP9vd3p44tnj67jsLlUF+pxhaY0erWGUwgjRCrlJi/ep+ja2otycmZ2a6BE5yoSVTZIZoTFzdkjywDs7Z39z/0orIei0J1EO44M4gmqvoAXIMEWZabHD7bakapFQ0X5bSea8pZzzDsj94P3JWmlN8yg3TxA/3cuXmDhIVbdQkrTLQyIkzDMCMGP3dAm9lmgqbC5DKeucHu72hSKszTN0c1YB5QXTBPvWCJkhNGHSOj1hQRjQC/uRNT3AJQcLXgHyHKhTEUgOyvB+9+bgxqpZIsUpYe+EHZK8zJPBUGZeLD5ChdSfQJudg1DfhxN+KKcHVPszctV0r086su7McCuXSL7jwa9v9F17WaqpgNbFvPdoyzgH32UhkQxLwJhMpQEPjeQ6AI/98y4giBHTpBVGCoA94Jxi1G1u5x67MPMz7i2NBpW3me0mF25C64BhYzSFsu5QiiL5hcY3EbhT2eqOAQZNMiV77Nn2ojILlHc5cDnbRzCzB/e4VUOc2+ael1gb3WVaxYTq5QuaNrgIghemafgW5rSXuAffLMX/xNXbZYv8KDOTb2tyMLS7woCgyCJt3CM1XBux0xOS1PkikpQ7mxvD4Q62y5vgZpWVadn4Z593VX6kwMbrXBVcTG92SFUoaro80t9uNkX7EXCx6Ab8eumGYmIsNOKU9bRf/b0djkd511nWl2tVcZfi9d+4ReMd4lE6AzLR7H10QiG508KQtKotnNZQPIC1npfDTguxzB2i9gJnm3y4y0ocF8FlwKXtHBDMbAx5YD7ZR8+fAr+gt5Clf88/HoXyCd3KvKaNDxiuan+FOKgYqONAKNF9VeB3lPbwyrpBSjrl1knC5AX94dg0eiI5ECFb093hSZGwtTJk9pRA+aG19owt77Y7UzbsAQFzW2AsLyoIl44Ddamd7Y2nuQj5vHIhpsbHh3E1fuduHUGcYYcH43DurD7Mb/YHwIXQoJQbgHYYdtYBDXx6lTGu5b3emL2dhmuSrGtogTmK0GwiRfqyrvB3kpN2yjQI6y5ZnaaFVa9mEDBWfnfuJDzS4VU5O1OfY5c0eB/wwQl5LfcIYJ/UaewZD+T9L8wsNxYwhxH/T4YydVc4HT/LRlzi8w/2RiFlHXiMsa0JMCV7NRfFm2TuheYVYSXOO3yNpLu2X7dlN6mVRteDzYUZN0ozaYEdjDXi2ch9OB//HB/b/6cXPKttWuLPG5Ja+OcbQi9FLjxOXfasFR8eGd+9+zpE1/aR4h0H4EGzO7GYGNjqmiUdh2QQE2kKzGizG2SuJXtv9evXt4uvamr/Sqn6WKx/KCbANoF0B7p0U/E3Y59/8h+Z82PbG8G2DrVVba8UPiT48x540m+EwnoM+4J6LAz8+igyD3xnYHIQD3HheVciRYyRDfqo4t5V1fB6aI0AgGBm9brUwgJCeUDBOeN5VkU6OJFTZ6Z82y730KwjeE1WVpz0bM0Dap8aUzoOm/lSZASJG/3tOL99De4rHBpoy3zVM3ZQ0SLsgfnmn741R6iJMk35InumRtsMKEasbRbjMkUppsaJ9oFrlxwvT5ghxE5s65WN4G7u63SFWoKq8oiVRSr3MkVS2h6w3OqcufyMTv07lKzJQnfvwrwt2th8MHIE9GHfu7JgxYPcBLKiwa1jQUYQYwgM+bRP15HZ+VcvKCr9C+Gr6GaWfJgV9cIx59NH3d/RH+iFW8fbQIbqrPoBXjxaF3fKNEkQig3AC6j2mgoKTlMknPJqcUHmeOUYkw/2rGn6FeQjjKkcsp2BfU1K6pTEkCHzuMDczqZDknlQsVrNBL0ajqSTuKx83hN33n4NWtUTrMxm6JTTmwvZP/Y0XIBBJAwFSZzMlcyz+YUZZaVYXgZ51/rUc9ydnQnys2qKo14fc+HKJRVkzINeENEWEmJigv22Nmn4a9pdrbVZGDuc4zQllDO4aQdkdYUmp64Ni0vEvV9mqVXdXqavDpYnY2M9GHKenkNCxxLAhdJykyiTtUjglvwa4pANte0Nix8o24MhQAPG8ZJEs3S9CJySHOMGrUIj/ZESHKtdvkOi/AMikY76RORn3t9cfRcRUiiSL4AMBlxI5GahL05SQA47GbR7hlmGie+v2OWXV4kQmuBq+eFQmdnYD89P9zfXO3vTR6ePTn/kv9Kt9kJTqPLoLisU6h0yV+WJHMmpCgBfjhtFjmkdPpYRNcXJHh8umfkeA2hwizFhzJ/FRuQzEq4McAvpLnh4F1h7d2zBRMR3xuyrCvjZHRi5jIfXO112iQXCefRLVaIdZCd6vKrMPZbbiuJVHbhPdLNOfkGKVNShKCmfwQxOEkCZ2jvSNF2aTj2sTa6Fnd2hqv5lsi5TYb3QI5G14WAWpKg9gEtw+wHz80obm9kc70WyojU3MfWzeTrmqtrrk14uHQ9h4mARoPaOl6j/v7tS7OIhaPeVuJKx3RgAJqnCQEInEnxpSnlXDJcHX3dr837pAFwTwarevujdgZI+MqdqyHb+5k2W5RByxfHBBlAFwhhv4smgFwrqtOFcadZm+8XI3a5qfexToSHBgT24gUsyOV5DBIkOdFBB7KJjCGAiY5Mts7mrhP2YlpXKQYVFXqffZ9QPiB1fusKaq7fE9Rbvj4SDzRfMNwwipyCP7n3KlZeaDPky6oFtYPCS9agVtUtfJ3qGwoSYIjMsz5qFucX1AFSQncgn9V/8uLa96rrKbxkbp5J2sEpDlXPOXyGQON9ie7GEmDhIK6q2mglktDo0h+xslLw4yzrd4N0adSHZkvXVaxAUWjbBFFhyyBDYdi2hzJ2ho6Z0ZUsJGmP8sTXabX2DmZ6t8Un+ctK+iF3B8BqKrbDevAYdgg8WpR9x4T0+iSKT66Oc0ZHFdR+RY9hPilo7EQvmvT5YBESRBjsoZjVWeDAZfxUP4gXYNvc6qB5kLAUlLUBljg5XOeah4qwwjRySlELeuqbZPtBZVRIZWfXBWKXYRhfZmK5cpynHGCCSS/6JqFfWT9CkwEzks/tU9bELLlD17TgSV9v1ADkZBuWkMrBIAzuzLh6ZXQIPCZfjsctcIuKP6KkxIwlzz4IgV6G4CKoK0W6kpOlV9od+bFXrWwn16Shx6uG/4QLsKy/svram8k2RPMKmD6YvBNIAmlDVieGYNjgi263G6IOOelu0MQzCDxOcZcxSRs+h2yt1SqGr5fppvbhsjPyMNkdMk6g5n06K3QMBWvWIS40ZMTcY0pYIhRFgwwk3/k2u1DKTDr2/QRQFAXgaphHQSKnSIM3BJRQTrtRsFKSaK1aoeRTMJ7DcXtYlYRz61OlSLQMF82SeRXkkI8ODooM4ckn/ByfHM4fX754/vg0b8tsV+yAYkoljZRjIBq3WM4B8vcD/bQjXKn4zzi5EcTL1ZA4HQyw4E92nXMA5MjLjps7k9KRbFCVPx3BRAcuIwUldOsiRyY/0uKpFWPvx4VJn6uQ+DORBpbOZuc4umzI0g3yRQsVUFBx3bLxWYm1bVFntxo3IF5Np5IDS0IwyNXrCkbGFbvXStY/j9uWKznJFh8mT/3/Skupbo9VG722l9qXOF2gdINLzIi+90+msW0FIFW1X9JDqHh2VH2jEsEvQoZY7hgZ7se6rI1zJbEChvv8R3lbSDz3bERgLWsS1xiSlSULRmpT35Hh4NqApLWmh8gLtnJRz0ksSEzDP1N6C0Sape3gRufJg0oncLWhzn/5bCEeLelFchFoNGzCrUO3Z9y4cae2/jEZlTVT26Pm4uDdQRxD6TpsKBExCRiBq5fve3llmjh7NIiuEvYTpqxtWEO+Xumjbt+SyEsctzgG73sZCQxPEkensAgTymRr5zSBFVMzIWeMVsCTg5ULxtbXzJl0Y2Nd5lnf/5SlYIoP6Dzk/S2LX56dpZZEovZ4VZFPfToZSfKl5trpFhcdWhAo7jPGGBVaJCGwXggFgcou5T5XT+Ec8diiyPqTZqNjeF2zHUvhbcNyc426ViTUUurIFrwlvJq0/At0yyDnPvQHOsmy4sgaBm/w0APruUq3GEALY1mraCAuXbJ9uxyGjn53DGXOkjCjTWRRs5ZebdC1qmsyd2237aorVNtmbRLbpmvrrnG32Y3V5aiZoakopEsivUzHPOI8H9SoI0ND1Roq+lYz99w14qZ42OZ4nnS/r7d5Zh1AYjwoh/IUs6ZprFtaORpovo81lnuBdTMumRBC5tsuDXu7tV25ORlY+/MYOxrh44vjYR4PfYfrN+0bluAmbUdR/q3ZNtGpl3gSiRhQyQLGo6Q3RKn3D+DynBmsUtObQ/RqFkNS2b6Gw3Ulo+vQF3OIiTkZO5HPdjIl7T12ipMle54ld208PiUC1U9IDNorDfEic89ZD0JZKocVnP8OxcImUzmPPj3ojc9SpHFSJAHv0gke2nlD0rLfsxo/YQemkSQRH+EJVRN08WLbTuY0WpnwjolCIqHyeOAS+IcaAkIB6CiqLTEhxoV/UurgZ30crqBv17zXYQv4OAoq0kiVjPKSkF77IEmUmZS0j9EPzTrE749Nknw93ATbWpv3GmkzT6f7utLUTo9ntlix8wBsYasXFEqQM2mB6hFOF0GrupZ3SsL2owQB9LeVyIZWkXhY50o6cTquytASWhSbjdlHvLtjE30FtyWopSkOOxfmimyryZHr0skSuisdA3dunai37tOuskRVTaaW5eq8PZxmZ2jVVBnZbn+TJE3ddJd0IrMeVF6ifWSAZ51E8d7J8RAqtJoaMlDeMMFbS4SpRvu5/vyTkny/dJhEEsVRxREie5Kul/PJDm/w1cdfiBfjHRFxhowESHphS01SvvSdE63rPvSbDwEs5yODKpm0yLU5/3Tui2gDMMs6AkeLy0GlUP4AqC0NQxlNNCgRHgfrbcr3sXa5yVvOm5N54fK1JzDnZodqKqZTgr69cDq243B7ZS/pAED29lvEeU0ivb26u1rHGCINmcVQNsf19d7nVVRKWp2J0YM+HCDltikpD7LcYjkhIvP8XtlK3hKZ/y6kvoY2vQf8jEXXnmY1hwMhD5ADJsxNOdhdnlN8WZkjFYkC8z0xkZ3e1qvI4CevhD5KzXW7ATreRIa6lG+WejBn9wu51XVwNseZiEywLqYMx7K6pV6ECrEBvMUCAM9XqAkC6AQiRgHEDxTBUbHS7qnjLASgla1Rg9NFnvF6RFqu2q5QmCDnTbU1NBP03hpvwegBlYU9H9e5jtI6pZUfklsgIV0otfCpA7JMsqNLTE3n6+9+f396ol9hdlgy8I8/7r8+fL26PLk7vZs93b4oPooPhqu9VmtgcWKddydqyj9ORZKX8xzznkgFQXTaDj7/I2gdGx2PlxVF3QeY6pjDdnjZsDQ7C1HnG2ct7EhNFuEGG+MtB58GYyYPkp8Pw9vHj25c+exH269LJeMM+vED/Ucz9D5bJOTRuD5Bbyxnc9J8D/5D16OL56bJFcd96O6VWJKGKJWebdy6DfXkOWLgLM20X0z9JpSCtI10DhkcCAydD2+1mMq32yF/6Jbh3DrVDxJjiYPIzqsIP2GodMKcOJG1gPpp6Cp+08lBzqhP1IXIgq5fIaWXkHAZ/pxbvF3aTuAnS8upHtMD0HPv2PA9MEVurvIbFSo3E9HqiDl9+1uAw0lf4fO1HqC1z2dxGdMqIu0yp6z9KeiHbhA0xczti3OlIznJnnl4K9qKnuSSUZndos2eIVIkhb3FW7SogFo6FF/cHnBxzYnHjx7OQRsphxnEYN9kw4KCgVmTI4448N0LTMBZP6zdihaz/htaeQX/9whW2TF75osdXe8CVtBNnQH+2zH823sJd90VQSxidWx9yHBJ/zVIvR3ID4G8TWKFwLmucOj//B4qPNcLefPRuYnTMpKsayCyNJSUCpgGCeFKmC1W/Siyl/H7WGDHBfQjWu+L6TsZlWTexwL6TkQaFeWC/PnDujQZ80de19Ae1gr6ieYywl0E8YuKW0fcEnGXu/hVjJvfaiYFdvqOW33c7a5kWeAuf/F9hrsCxS8t3M7wq0n/XeFyljAw3E94VEChL8k1mO9cwJ0tVsNh1mouMwHUGdhNFtwmrHoIb6XwRgkfb5otot067MwpybN+2QysPFGxs2R2j8wmCG+DzB5Enwbs+Ysy+cjdK6mSlNcQyyqSqCrZuclhkgTkndppENFG7nku+/uSvPAago9Evu0jmUHc7hJaCs61xrrVjrWHXeXQ5pq8h7yoSbS7x+XPV+yWONsSA2OO1QOS+oljknkOElg13nSrVfaF3CtbvuOCeMzC2S95TkQ3rlt1kDVgBLDOGouqPK8Gl5cGJcqKtIpLWDTx7AAgsFB1WwpL8pwsbGOZJ4lCbW73Q0FJZc8O3u0NuzTIiujcoHmADg4CRNsom2FO6JWVYG7onR+BPflXNllRbacszT5GAawMdspN9l6KNgerSUIqM/Rmfp87ud1jl8BCoCGcxcq+HR/MXB/RAaSItl+JN6J51vf8ARaNNluhT8Cq9HCVt49jatUGSb01atT0AwmzEvtjy6PrCVJmZWHnRzcH23sHnwZoEX4ET+RF4FXwi5PQPrAJaFUUAp+D1wAAxe/guezHeKGdf49q3Ouvb+0nfLfgbviwnlZxde1cfL0CXea5ohO1h0/GLtixOwpOX9GEE13ZXviLuSCRV0Iqgqp+ZqaM7iXMkFUSiBw5gl9eV9jNf2xnRljmumH8OOddrzfB7nE3CfQx6udRCdxCNEi1dFegz89boaXjgDYbD6LRwqFxZrTycBeVmreHrRhSlRk2CsSPQH2uLdtqi/k8xcthYGfn+xLPOWNuOkZrxcgy8K0dG+kyMmrSrdJ2CvT0HKVM/sLikV7w6K4oFlZje5/EPswL7aLbW3xkB9ZPNvlIuEDgos1NVYQ2j+Q+A1qYe0KRSPIajCuXWprM8Vh/gHttvi7o2gEvt08mcMD5l6ktK8k9HRl2jcz4Bk/PO9dJl4S4XgiPbP46Gp/He+2A73bk3Pu8f6zfLQa8ha5mdrJJxlPkRH/obeuj6xfNS7sjyp87pG0XwhthkHne3oBRoE+g9eP8cMCdaNmVt6xNoSw7swsygtUEkSNjAxEXJIQ1BOsPxs9qG8UP7Mjqj7f3LbjHGNxLAO5WYZCUUwrH2r12S+2sBz1jsjAQXBHgNm8cXOl8X5PiPSbCJxQnC0B9jU1/nfcLgGc9juHuZdmNRe9DftZKqx2zKmGsXFhHL+CS7l9bDJCmlXxbeDRERhU5VVZWL2VcE/RRWARhrwiX6St/lwHTd0mCAHWsXVCSwEFpM5UBeNUIARgoYN9kgNi7DuH9pz6w6uoLyrn6iYyN+gEbpfoN6/DrZ9iC1C80hlG/EqmjeAvPVP2WNKpYvxXZsvHWnqv12+jZqje/Lfn9FwxkYABwJXBXD6GIVQ+FdbwehmyUw3PPTj1CQUj1SIpZqUfxHPF6NNnhcgyek1wIz4N6YYZ15CJ4aupF4z49f1lhmexbnGTKUoglRZJkbETa4ukgMmbIyLn+FeotKYjiFI4PwcSSIROOj8hBgljpcoAfSdz61FliqLmTdkG+FBJDmKyMzIyf5EHKeVVcJ0e+WGkSENEwJcmVJhYLuO6T/Ni0hJ+Ef1LwFfvs+8ZJyAxZycCUj82qy+hJr+fj/5XRJFZ9FxERNuAOIra6uUSxcrFlSpYig2k8Lxkns2DKPAl5mtLNXxBLOnEbmm6MJXu4gOQ4n6smdNVMDwVGPOpR8pudOHseSyenZLCJ2n8NycNuSJIfRPOu5yfRNJe9x0TjXAb+E7H/H1H1WBXUZzvJJ3kt0J+KPjV4SoCJQCxnqUQCpvRGPPVztTMlqgKlnfOkhshz8gTz7eUEebYtep0TTZUjd5XJEh9ZEncUytrrScxKzZKsEBkimSxXKjCfwKCI3YVZmQuo7S8kx58s5NzUbgpmwaOnICHKI3xtLEDSz+X1QJwUaaFtL0n4cEHQkODGdJDkS8GWrEF6DmQV1NYlIHIl3tB9GyOm02KcLD3IQRNzCvVAc+nsEp1VQU552uDxK89opDnPbXpCP504AHAikAfvLnpWmaPpRO9qH8kAPEdks42Qv3KwCGk6Y/J35YoVj2BPlElxKWlM+6QZNI7HZ6brkGaeRJk/TlhWN1ioG2IQOnl5ruRc+eE7lTlGyVh6KzvQw3seOuWahveXdGbs/UYpa4C7EtRlsWRg54jnuhTWseUgE17dXCaWJAb8uPIGlhaGnmy1SE5K2iKh7PRz9X6Ai/oGewusso79fTygxwIF3Yj0/25e1uKNfWoddMxJPYGBKi9VaAwcggA1Wh0w5VWQF7vo1Let711nZm6djYuvS7jNnJ69f+fuvbeJjx88PJf0uf7p3JPk9/9X7kpJTU/L4GVmZ7Fyctl5+e8KOIVFJcVjnbtLy8o/fLwowOoNRpM5nvuHWm32dgTUNSy5Qad/KZssEIL70U8axdgcLo8vEIpwsUQq61fPkLYdhQ5I/bOrQ4+MTUx7esXWnABACEZQDCdICrWu3qn+Qe7/Z9UnoWwOl8cXiNUf6plcoVSpNVqdvh3AaDL39VNCHBydnF1c3dw9PL28fXz9oDA4AolCY7A4PIFIIlOoNDqDyWJzuDy+oIuHkP2BeXd1yzGhSCyRyuQKpUqt0eYbGBoZm+j0pmbmFpZW1ja2dvYOjk7OJkyact0NN90ybcas2+646577Hnjokcfzp9+e5154SWDeglcWLVn22opVaybYk/TWO+99wOIiX21ycY/5d9t++CnGgaulJTG8IBRla/3pJgQVhopARaFYqBhUvHCFL4mSLKmSLpmSLbmSL4VSLKUilHIRS6VUS63US6M0S6u0/WdwdIwYdd2QYTdwTdqv301XXDU+uqVXpNJXPWRtDmv3aQzKUK8GR/U5pEmzC2NUxkUpkzIts6IuufdOMTTcNaTlrsK5as/YQ9llgXK418lBX4/6yEkXgDnJoUEkhZjQ5rLMoCo2ZusCLeb78KQJrojs7bscuflpO4Pjd7PiObDV3eX86VbQp1f6I2QwFSQoVjjpZEcxIwQFFv3y2FsunlYFQ6hZNdiOai7ZXLend81qVfA+GvW3D270c9TdTyG+3JxHs54RQYQaitLQTYLN51tThNw22jWpoLPcvWvnXCb9oORPLVT9evF59E9rUoXZ2ud9iIxB/+1DdfM7+m4KvS3HHr1npI5xJHIH8z3Tn793Jb+TEXd4FIlBtCYamJ4qI/3pL9DP35v+PzXtTeEsMj6zR3qSgpzeaI5aXZSGzeqxpe6Jhh5fmShDE6QgEuD4GouCM77m4/oG4no4u4XIydXFN1vnrRmNN705ZOKvzEd9d/xWcx9h151MrlCq1NS57x0QS6SwI0wkiCVSmVyhVKmpa9dJB8dekCCWSGXyf8WqStGsVJmwEL5cYrrh+9uiuKaTy3P7PX/8MgmjfWkhRqLzpDK/P3LdyRVKNe0ce4AP7BcrbzslGn4EnLOs09aACWVcyFSdPoyd0+m8oX0u9AQw+MkBU8aFTFUIMKGMC5mqEmBCGRfyx2o2oTnnOyjDhDIuZKpJgAllXMhUiwATyvgbarmsp0scdYuZAyaUcSF1eY195y3vyyH4Hf77jUrCTtvY7e1E+L4/OxKEOoODWKLG3tcJcOxVIvaaM/Y6CWpdv3HHNr2Zs+J+B/Pfyd33+2mVmU9zPb2JWvnlLYl3yKr38UHo1RxGth99cnDW9RsxnmbVqK2X3PM2DvVqdKKdIJZMdJmVovHP7xwWJZr+L8fzfzOy/6iN3nG2cpBFkK0i7TujkFjVyf8PbyX7X76FB4ircb3XXe7DrsP10NTz7coHx0e3IRz2uWqd667+/ygy/Pw5QGvX0v7PUur6e+Jz/af/Xja/upUZ') + format('woff2'), + url('data:font/woff;charset=utf-8;base64,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') + format('woff'); font-weight: normal; font-style: normal; font-display: swap; } - diff --git a/apps/taro-app/src/components/CodeRender.tsx b/apps/taro-app/src/components/CodeRender.tsx index 57d6e3fd..b82eb500 100644 --- a/apps/taro-app/src/components/CodeRender.tsx +++ b/apps/taro-app/src/components/CodeRender.tsx @@ -1,11 +1,12 @@ -import { FC, PropsWithChildren, useMemo, useState } from 'react' -import dedent from 'dedent' -import reactElementToJSXString from 'react-element-to-jsx-string' +import type { FC, PropsWithChildren } from 'react' import { View } from '@tarojs/components' import { cx } from 'class-variance-authority' +import dedent from 'dedent' +import { useMemo, useState } from 'react' +import reactElementToJSXString from 'react-element-to-jsx-string' function makeCodeBlock(res: string, lang: string) { - return '```' + (lang || '') + '\n' + res + '\n```' + return `\`\`\`${lang || ''}\n${res}\n\`\`\`` } const CodeRender: FC< @@ -25,15 +26,17 @@ const CodeRender: FC< res = makeCodeBlock(res, lang) } return res - } else { + } + else { if (Array.isArray(children)) { - let htmls: string[] = [] + const htmls: string[] = [] for (const child of children) { const html = reactElementToJSXString(child).replace(/className/g, 'class') htmls.push(html) } return makeCodeBlock(htmls.join('\n'), lang) - } else { + } + else { const html = reactElementToJSXString(children).replace(/className/g, 'class') return makeCodeBlock(html, lang) @@ -43,17 +46,17 @@ const CodeRender: FC< return ( <> {children} - + { setCodeVisible((x) => { return !x @@ -61,8 +64,11 @@ const CodeRender: FC< }} > - {codeVisible ? '收起' : '展开'}代码 - + + {codeVisible ? '收起' : '展开'} + 代码 + + diff --git a/apps/taro-app/src/components/FloatButton.tsx b/apps/taro-app/src/components/FloatButton.tsx index edf98918..459ef17f 100644 --- a/apps/taro-app/src/components/FloatButton.tsx +++ b/apps/taro-app/src/components/FloatButton.tsx @@ -1,8 +1,10 @@ -import { BaseEventOrig, MovableArea, MovableView, MovableViewProps, View } from '@tarojs/components' -import { FC, PropsWithChildren, useCallback, useEffect, useMemo, useState } from 'react' -import debounce from 'lodash.debounce' -import Taro from '@tarojs/taro' +import type { BaseEventOrig, MovableViewProps } from '@tarojs/components' +import type { FC, PropsWithChildren } from 'react' import { systemInfo } from '@/store/index' +import { MovableArea, MovableView, View } from '@tarojs/components' +import Taro from '@tarojs/taro' +import debounce from 'lodash.debounce' +import { useCallback, useState } from 'react' // console.log(systemInfo) function rpx2px(size: number) { @@ -33,12 +35,13 @@ const FloatBtn: FC< initY = js.y } } - } catch (error) {} + } + catch (error) {} } const [position, setPosition] = useState({ x: initX, - y: initY + y: initY, }) const resetToYaxis = useCallback( @@ -46,12 +49,12 @@ const FloatBtn: FC< if (source) { setPosition({ x, - y + y, }) } // console.log('[Final]', x, y, source) }, 100), - [setPosition] + [setPosition], ) const half = (windowWidth - btnWidth - edgeWidth * 2) / 2 @@ -62,7 +65,7 @@ const FloatBtn: FC< resetToYaxis(x, y, source) } }, - [resetToYaxis] + [resetToYaxis], ) const onTouchEnd = useCallback(() => { @@ -72,12 +75,13 @@ const FloatBtn: FC< if (x > half) { return { x: windowWidth, - y + y, } - } else { + } + else { return { x: 0, - y + y, } } }) @@ -92,25 +96,25 @@ const FloatBtn: FC< }, [half, position, storeKey, windowWidth]) return ( - + {children} diff --git a/apps/taro-app/src/components/Footer.tsx b/apps/taro-app/src/components/Footer.tsx index ce9d89ce..7abc05b0 100644 --- a/apps/taro-app/src/components/Footer.tsx +++ b/apps/taro-app/src/components/Footer.tsx @@ -1,17 +1,21 @@ -import { View, Text } from '@tarojs/components' +import { Text, View } from '@tarojs/components' import Taro from '@tarojs/taro' import { version } from '~/package.json' -const Footer = () => { + +function Footer() { return ( - @icestack/ui {version} + + @icestack/ui + {version} + Powered by { Taro.setClipboardData({ - data: 'https://weapp-tw.icebreaker.top/' + data: 'https://weapp-tw.icebreaker.top/', }) }} > @@ -22,7 +26,7 @@ const Footer = () => { className="link link-primary mx-1" onClick={() => { Taro.setClipboardData({ - data: 'https://taro-docs.jd.com/docs/' + data: 'https://taro-docs.jd.com/docs/', }) }} > diff --git a/apps/taro-app/src/components/HomeTitle.scss b/apps/taro-app/src/components/HomeTitle.scss index f30fafec..909d9db5 100644 --- a/apps/taro-app/src/components/HomeTitle.scss +++ b/apps/taro-app/src/components/HomeTitle.scss @@ -5,7 +5,7 @@ $green: #6abc4e; $blue: #2599d8; .home-title { - @apply font-extrabold;// text-slate-900 dark:text-white; + @apply font-extrabold; // text-slate-900 dark:text-white; font-family: Oswald, sans-serif; line-height: 1; @@ -21,7 +21,7 @@ $blue: #2599d8; &:after, .inner-text:before, .inner-text:after { - content: "@icestack/ui"; // attr(data-heading); + content: '@icestack/ui'; // attr(data-heading); position: absolute; overflow: hidden; left: 0; diff --git a/apps/taro-app/src/components/HomeTitle.tsx b/apps/taro-app/src/components/HomeTitle.tsx index 957e743f..9e2d0840 100644 --- a/apps/taro-app/src/components/HomeTitle.tsx +++ b/apps/taro-app/src/components/HomeTitle.tsx @@ -1,17 +1,17 @@ -import { View, Text } from '@tarojs/components' +import { Text, View } from '@tarojs/components' import './HomeTitle.scss' -const HomeTitle = () => { +function HomeTitle() { return ( - - - @icestack/ui + + + @icestack/ui @icestack/ui diff --git a/apps/taro-app/src/components/Navbar.tsx b/apps/taro-app/src/components/Navbar.tsx index 9f762d17..d8327b7d 100644 --- a/apps/taro-app/src/components/Navbar.tsx +++ b/apps/taro-app/src/components/Navbar.tsx @@ -1,6 +1,7 @@ +import type { FC, PropsWithChildren } from 'react' import { View } from '@tarojs/components' import Taro from '@tarojs/taro' -import { FC, PropsWithChildren, useMemo } from 'react' +import { useMemo } from 'react' const Navbar: FC = ({ children }) => { const statusBarHeight = Taro.getSystemInfoSync().statusBarHeight ?? 0 @@ -12,38 +13,39 @@ const Navbar: FC = ({ children }) => { }, [pages]) return ( - + + > + {hasNavigateBack && ( { Taro.navigateBack() }} > - - 返回 + + 返回 )} - {children} + {children} diff --git a/apps/taro-app/src/components/SafeBottom.tsx b/apps/taro-app/src/components/SafeBottom.tsx index 57fea950..86759299 100644 --- a/apps/taro-app/src/components/SafeBottom.tsx +++ b/apps/taro-app/src/components/SafeBottom.tsx @@ -1,7 +1,7 @@ +import type { FC, PropsWithChildren } from 'react' import { View } from '@tarojs/components' -import './SafeBottom.scss' -import { FC, PropsWithChildren } from 'react' import { cx } from 'class-variance-authority' +import './SafeBottom.scss' const SafeBottom: FC< PropsWithChildren<{ diff --git a/apps/taro-app/src/components/Tabbar.scss b/apps/taro-app/src/components/Tabbar.scss index edbb554e..d327c9d0 100644 --- a/apps/taro-app/src/components/Tabbar.scss +++ b/apps/taro-app/src/components/Tabbar.scss @@ -9,7 +9,7 @@ &::before { position: absolute; box-sizing: border-box; - content: " "; + content: ' '; pointer-events: none; z-index: 1; right: 0; diff --git a/apps/taro-app/src/components/Tabbar.tsx b/apps/taro-app/src/components/Tabbar.tsx index 6c910783..289f154a 100644 --- a/apps/taro-app/src/components/Tabbar.tsx +++ b/apps/taro-app/src/components/Tabbar.tsx @@ -1,21 +1,21 @@ -import { View } from '@tarojs/components' -import { FC } from 'react' -import './Tabbar.scss' -import SafeBottom from './SafeBottom' +import type { FC } from 'react' import { useIndexTabbar } from '@/store/index' +import { View } from '@tarojs/components' import { cx } from 'class-variance-authority' +import SafeBottom from './SafeBottom' +import './Tabbar.scss' const Tabbar: FC = () => { const { index, setIndex } = useIndexTabbar() const list = [ { icon: 'i-mdi-document', - text: 'Docs' + text: 'Docs', }, { icon: 'i-mdi-code-array', - text: 'Code' - } + text: 'Code', + }, ] return ( <> @@ -34,7 +34,7 @@ const Tabbar: FC = () => { diff --git a/apps/taro-app/src/components/ThemeButton.tsx b/apps/taro-app/src/components/ThemeButton.tsx index dc288665..dc0ed3ef 100644 --- a/apps/taro-app/src/components/ThemeButton.tsx +++ b/apps/taro-app/src/components/ThemeButton.tsx @@ -1,13 +1,13 @@ +import { useThemeStore } from '@/store/index' import { View } from '@tarojs/components' import FloatButton from './FloatButton' -import { useThemeStore } from '@/store/index' -const ThemeButton = () => { - const { mode ,toggle} = useThemeStore() +function ThemeButton() { + const { mode, toggle } = useThemeStore() return ( - - {mode === 'dark' ? : } + + {mode === 'dark' ? : } ) diff --git a/apps/taro-app/src/components/ThemeProvider.tsx b/apps/taro-app/src/components/ThemeProvider.tsx index 2e478f17..411a71a2 100644 --- a/apps/taro-app/src/components/ThemeProvider.tsx +++ b/apps/taro-app/src/components/ThemeProvider.tsx @@ -1,13 +1,16 @@ -import React, { PropsWithChildren } from 'react' +import type { PropsWithChildren } from 'react' +import { useThemeStore } from '@/store/index' import { View } from '@tarojs/components' import { cx } from 'class-variance-authority' -import { useThemeStore } from '@/store/index' +import React from 'react' export default function ThemeProvider(props: PropsWithChildren<{}>) { const { mode } = useThemeStore() return ( - - {props.children} + + + {props.children} + ) } diff --git a/apps/taro-app/src/components/map/alert.tsx b/apps/taro-app/src/components/map/alert.tsx index 31208509..49f7455e 100644 --- a/apps/taro-app/src/components/map/alert.tsx +++ b/apps/taro-app/src/components/map/alert.tsx @@ -1,34 +1,34 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Text, View } from '@tarojs/components' export default () => { return ( - 颜色类型 - + 颜色类型 + - - + + 默认alert - - + + alert-primary - - + + alert-success - - + + alert-warning diff --git a/apps/taro-app/src/components/map/avatar.tsx b/apps/taro-app/src/components/map/avatar.tsx index e24d5200..b2c7928b 100644 --- a/apps/taro-app/src/components/map/avatar.tsx +++ b/apps/taro-app/src/components/map/avatar.tsx @@ -1,4 +1,4 @@ -import { View, Image } from '@tarojs/components' +import { Image, View } from '@tarojs/components' import panda from '../../assets/pig.jpg' // import { cx } from 'class-variance-authority' import CodeRender from '@/components/CodeRender' @@ -6,29 +6,29 @@ import CodeRender from '@/components/CodeRender' export default () => { return ( - 形状 + 形状 - - - + + + - - + + - 尺寸 - - - + 尺寸 + + + - - + + - - + + - - + + diff --git a/apps/taro-app/src/components/map/badge.tsx b/apps/taro-app/src/components/map/badge.tsx index e50c40d3..4ffb108c 100644 --- a/apps/taro-app/src/components/map/badge.tsx +++ b/apps/taro-app/src/components/map/badge.tsx @@ -1,34 +1,34 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( - 颜色类型 + 颜色类型 - - badge - badge-success - badge-warning - badge-error - badge-neutral + + badge + badge-success + badge-warning + badge-error + badge-neutral - 朴素 outline + 朴素 outline - - badge - badge-success - badge-warning - badge-error - badge-neutral + + badge + badge-success + badge-warning + badge-error + badge-neutral - 尺寸 + 尺寸 - - badge-xs - badge-sm - badge-md - badge-lg + + badge-xs + badge-sm + badge-md + badge-lg ) diff --git a/apps/taro-app/src/components/map/button.tsx b/apps/taro-app/src/components/map/button.tsx index 3e3c63d6..f8d3c8cc 100644 --- a/apps/taro-app/src/components/map/button.tsx +++ b/apps/taro-app/src/components/map/button.tsx @@ -1,64 +1,63 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Button, View } from '@tarojs/components' export default () => { return ( - 按钮类型 + 按钮类型 - - - - - - - + + + + + + + - 朴素按钮 - - - - - - - + 朴素按钮 + + + + + + + - 朴素默认按钮使用的border-color 为 currentColor,和中性按钮是不同的 + 朴素默认按钮使用的border-color 为 currentColor,和中性按钮是不同的 - 禁用状态 - - + 禁用状态 + + - Loading - - - 形状 - - - + 形状 + + + - - 按钮尺寸 - - - - - - + 按钮尺寸 + + + + + + - - + + - + diff --git a/apps/taro-app/src/components/map/chat.tsx b/apps/taro-app/src/components/map/chat.tsx index 6a462079..36044a3d 100644 --- a/apps/taro-app/src/components/map/chat.tsx +++ b/apps/taro-app/src/components/map/chat.tsx @@ -1,44 +1,44 @@ -import { View, Image, Button, ViewProps } from '@tarojs/components' -import pig from '../../assets/pig.jpg' -import panda from '../../assets/panda.jpg' import CodeRender from '@/components/CodeRender' +import { Image, View } from '@tarojs/components' +import panda from '../../assets/panda.jpg' +import pig from '../../assets/pig.jpg' export default () => { return ( - 颜色类型 - - - pig - - + 颜色类型 + + + pig + + - 你为啥不开心呀? - Delivered + 你为啥不开心呀? + Delivered - - - + + + - panda - 我想念我的饲养员了 - Delivered + panda + 我想念我的饲养员了 + Delivered - - panda - - + + panda + + - 你想念你的吗? - Delivered + 你想念你的吗? + Delivered - - pig - - + + pig + + - ... - + ... + diff --git a/apps/taro-app/src/components/map/checkbox.tsx b/apps/taro-app/src/components/map/checkbox.tsx index 7490eb26..a4976cda 100644 --- a/apps/taro-app/src/components/map/checkbox.tsx +++ b/apps/taro-app/src/components/map/checkbox.tsx @@ -1,4 +1,4 @@ -import { View, Text, Button, ViewProps, Checkbox, Label } from '@tarojs/components' +import { Checkbox, View } from '@tarojs/components' // import './checkbox.scss' import CodeRender from '@/components/CodeRender' @@ -6,60 +6,60 @@ export default () => { return ( - 微信平台组件默认样式 - + 微信平台组件默认样式 + - - 选中 + + 选中 - 未选中 + 未选中 - Checkbox 这类组件比较特殊,它的样式受限于特定平台的实现 - + Checkbox 这类组件比较特殊,它的样式受限于特定平台的实现 + 比如微信平台,我们只能使用 .wx-checkbox-input 这类选择器去修改原生的样式,所以目前这套样式只对微信小程序生效。所以要不你受限于平台,去编写平台特定的样式,要不就自己实现一套Checkbox,不去使用原生组件 - 颜色类型 - - + 颜色类型 + + default - + primary - + success - + warning - + error - + neutral - 尺寸 - - - - - + 尺寸 + + + + + - 形状 - - - + 形状 + + + diff --git a/apps/taro-app/src/components/map/collapse.tsx b/apps/taro-app/src/components/map/collapse.tsx index fbbc5b46..21cf3e05 100644 --- a/apps/taro-app/src/components/map/collapse.tsx +++ b/apps/taro-app/src/components/map/collapse.tsx @@ -1,6 +1,7 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' import { useState } from 'react' + export default () => { const [a, seta] = useState(false) const [idx, setIdx] = useState(-1) @@ -40,18 +41,23 @@ export default () => { className="collapse-title p-2 text-lg" onClick={() => { setIdx((y) => { - if(y === x){ + if (y === x) { return -1 } return x }) }} > - 第{x}个切换显示和隐藏 + 第 + {x} + 个切换显示和隐藏 - content{x} + + content + {x} + diff --git a/apps/taro-app/src/components/map/countdown.tsx b/apps/taro-app/src/components/map/countdown.tsx index 5721312e..f7f8cd9a 100644 --- a/apps/taro-app/src/components/map/countdown.tsx +++ b/apps/taro-app/src/components/map/countdown.tsx @@ -1,6 +1,6 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' -import { useEffect, useState } from 'react' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' +import { useEffect, useState } from 'react' export default () => { const [value, setValue] = useState(60) @@ -9,7 +9,8 @@ export default () => { setValue((x) => { if (x <= 0) { return 99 - } else { + } + else { return x - 1 } }) @@ -20,39 +21,43 @@ export default () => { }, []) return ( - 基础展示 - - + 基础展示 + + 💣💥⌚️: + > + s - + + > + - + > + - + > + diff --git a/apps/taro-app/src/components/map/diff.tsx b/apps/taro-app/src/components/map/diff.tsx index 50963629..ad2901db 100644 --- a/apps/taro-app/src/components/map/diff.tsx +++ b/apps/taro-app/src/components/map/diff.tsx @@ -1,18 +1,18 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' +import { View } from '@tarojs/components' export default () => { return ( - 默认使用 + 默认使用 - - - XXXX + + + XXXX - - XXXX + + XXXX - + diff --git a/apps/taro-app/src/components/map/divider.tsx b/apps/taro-app/src/components/map/divider.tsx index e8ae6d47..e598bb68 100644 --- a/apps/taro-app/src/components/map/divider.tsx +++ b/apps/taro-app/src/components/map/divider.tsx @@ -1,5 +1,5 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( diff --git a/apps/taro-app/src/components/map/index.tsx b/apps/taro-app/src/components/map/index.tsx index 2a0ad157..8531d50a 100644 --- a/apps/taro-app/src/components/map/index.tsx +++ b/apps/taro-app/src/components/map/index.tsx @@ -1,33 +1,33 @@ -import button from './button' -import loading from './loading' -import mask from './mask' -import link from './link' -import checkbox from './checkbox' -import input from './input' -import radio from './radio' -import range from './range' -import textarea from './textarea' -import toggle from './toggle' +import alert from './alert' import avatar from './avatar' import badge from './badge' +import button from './button' import chat from './chat' -import progress from './progress' -import alert from './alert' -import skeleton from './skeleton' -import table from './table' -import radialProgress from './radial-progress' +import checkbox from './checkbox' +import collapse from './collapse' import countdown from './countdown' import diff from './diff' -import kbd from './kbd' -import tooltip from './tooltip' -import toast from './toast' -import steps from './steps' -import collapse from './collapse' -import join from './join' -import indicator from './indicator' import divider from './divider' +import indicator from './indicator' +import input from './input' +import join from './join' +import kbd from './kbd' +import link from './link' +import loading from './loading' +import mask from './mask' +import progress from './progress' +import radialProgress from './radial-progress' +import radio from './radio' +import range from './range' +import skeleton from './skeleton' import stack from './stack' +import steps from './steps' import tab from './tab' +import table from './table' +import textarea from './textarea' +import toast from './toast' +import toggle from './toggle' +import tooltip from './tooltip' export default { button, @@ -59,5 +59,5 @@ export default { indicator, divider, stack, - tab + tab, } diff --git a/apps/taro-app/src/components/map/indicator.tsx b/apps/taro-app/src/components/map/indicator.tsx index 573a9f4c..7f566bdb 100644 --- a/apps/taro-app/src/components/map/indicator.tsx +++ b/apps/taro-app/src/components/map/indicator.tsx @@ -1,5 +1,5 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Button, Text, View } from '@tarojs/components' export default () => { return ( diff --git a/apps/taro-app/src/components/map/input.tsx b/apps/taro-app/src/components/map/input.tsx index f442e381..22558ff0 100644 --- a/apps/taro-app/src/components/map/input.tsx +++ b/apps/taro-app/src/components/map/input.tsx @@ -1,35 +1,35 @@ -import { View, Input, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Input, View } from '@tarojs/components' export default () => { return ( - 颜色类型 - - - - - - + 颜色类型 + + + + + + - 显示边框(默认不显示边框) - - - + 显示边框(默认不显示边框) + + + - 尺寸 - - - - - + 尺寸 + + + + + - 禁用状态 - - + 禁用状态 + + ) diff --git a/apps/taro-app/src/components/map/join.tsx b/apps/taro-app/src/components/map/join.tsx index 4b70827c..9b83a3f3 100644 --- a/apps/taro-app/src/components/map/join.tsx +++ b/apps/taro-app/src/components/map/join.tsx @@ -1,5 +1,6 @@ -import { View, Text, Button, ViewProps, Input } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Button, Input, Text, View } from '@tarojs/components' + export default () => { return ( diff --git a/apps/taro-app/src/components/map/kbd.tsx b/apps/taro-app/src/components/map/kbd.tsx index b816d34f..b80f1a06 100644 --- a/apps/taro-app/src/components/map/kbd.tsx +++ b/apps/taro-app/src/components/map/kbd.tsx @@ -1,22 +1,25 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( - 默认使用 - + 默认使用 + 小知识:玩游戏的时候按下 - Alt + F4 + Alt + {' '} + + + F4 可以立即获得胜利 - 尺寸 - - A - S - D - F + 尺寸 + + A + S + D + F diff --git a/apps/taro-app/src/components/map/link.tsx b/apps/taro-app/src/components/map/link.tsx index 7596035f..5c341b9b 100644 --- a/apps/taro-app/src/components/map/link.tsx +++ b/apps/taro-app/src/components/map/link.tsx @@ -1,22 +1,22 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( - 颜色类型 - - GitHub Actions – Enforcing - GitHub Actions – Enforcing - GitHub Actions – Enforcing - GitHub Actions – Enforcing - GitHub Actions – Enforcing + 颜色类型 + + GitHub Actions – Enforcing + GitHub Actions – Enforcing + GitHub Actions – Enforcing + GitHub Actions – Enforcing + GitHub Actions – Enforcing - 无下划线 - - No Underline - No Underline + 无下划线 + + No Underline + No Underline diff --git a/apps/taro-app/src/components/map/loading.tsx b/apps/taro-app/src/components/map/loading.tsx index 6da8a1cb..680aece2 100644 --- a/apps/taro-app/src/components/map/loading.tsx +++ b/apps/taro-app/src/components/map/loading.tsx @@ -1,43 +1,43 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( - 动画类型 - - + 动画类型 + + - + - + - + - + - + - + - + - + - + - + - + - 尺寸 - - - - - - + 尺寸 + + + + + + diff --git a/apps/taro-app/src/components/map/mask.tsx b/apps/taro-app/src/components/map/mask.tsx index bf65c6cf..4d8ff546 100644 --- a/apps/taro-app/src/components/map/mask.tsx +++ b/apps/taro-app/src/components/map/mask.tsx @@ -1,7 +1,7 @@ -import { View, Text, Button, ViewProps, Image } from '@tarojs/components' -import panda from '../../assets/panda.jpg' -import { cx } from 'class-variance-authority' import CodeRender from '@/components/CodeRender' +import { Image, View } from '@tarojs/components' +import { cx } from 'class-variance-authority' +import panda from '../../assets/panda.jpg' const list = [ 'mask-squircle', @@ -22,15 +22,15 @@ const list = [ 'mask-triangle', 'mask-triangle-2', 'mask-triangle-3', - 'mask-triangle-4' + 'mask-triangle-4', ] export default () => { return ( - 遮罩类型 - + 遮罩类型 + {list.map((x) => { - return + return })} diff --git a/apps/taro-app/src/components/map/progress.tsx b/apps/taro-app/src/components/map/progress.tsx index aa662dbe..32b9bf15 100644 --- a/apps/taro-app/src/components/map/progress.tsx +++ b/apps/taro-app/src/components/map/progress.tsx @@ -1,23 +1,23 @@ -import { View, Text, Button, ViewProps, Progress, Icon } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Icon, Progress, View } from '@tarojs/components' export default () => { return ( - 颜色类型 - + 颜色类型 + - + - - - + + + - + - + diff --git a/apps/taro-app/src/components/map/radial-progress.tsx b/apps/taro-app/src/components/map/radial-progress.tsx index c7d0f9a5..cd7d0921 100644 --- a/apps/taro-app/src/components/map/radial-progress.tsx +++ b/apps/taro-app/src/components/map/radial-progress.tsx @@ -1,5 +1,5 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' import { useEffect, useState } from 'react' export default () => { @@ -9,7 +9,8 @@ export default () => { setValue((x) => { if (x <= 0) { return 99 - } else { + } + else { return x - 1 } }) @@ -20,66 +21,71 @@ export default () => { }, []) return ( - 默认使用 - + 默认使用 + - {100 - value}% + {100 - value} + % - {120 - value}% + {120 - value} + % - {160 - value}% + {160 - value} + % - {180 - value}% + {180 - value} + % - {value}% + {value} + % - 更改颜色 - - + 更改颜色 + + 20% - + 60% - 更改大小 - - + 更改大小 + + 80% - + 100% diff --git a/apps/taro-app/src/components/map/radio.tsx b/apps/taro-app/src/components/map/radio.tsx index ab801822..ae354430 100644 --- a/apps/taro-app/src/components/map/radio.tsx +++ b/apps/taro-app/src/components/map/radio.tsx @@ -1,4 +1,4 @@ -import { View, Text, Button, ViewProps, Radio } from '@tarojs/components' +import { Radio, View } from '@tarojs/components' // import './radio.scss' import CodeRender from '@/components/CodeRender' @@ -6,60 +6,60 @@ export default () => { return ( - 微信平台组件默认样式 - + 微信平台组件默认样式 + - - 选中 + + 选中 - 未选中 + 未选中 - Radio 这类组件比较特殊,它的样式受限于特定平台的实现 - + Radio 这类组件比较特殊,它的样式受限于特定平台的实现 + 比如微信平台,我们只能使用 .wx-radio-input 这类选择器去修改原生的样式,所以目前这套样式只对微信小程序生效。所以要不你受限于平台,去编写平台特定的样式,要不就自己实现一套 Radio,不去使用原生组件 - 颜色类型 - - + 颜色类型 + + default - + primary - + success - + warning - + error - + neutral - 尺寸 - - - - - + 尺寸 + + + + + - 形状 - - - + 形状 + + + diff --git a/apps/taro-app/src/components/map/range.tsx b/apps/taro-app/src/components/map/range.tsx index 2d1bbce2..f878e220 100644 --- a/apps/taro-app/src/components/map/range.tsx +++ b/apps/taro-app/src/components/map/range.tsx @@ -1,29 +1,29 @@ -import { View, Text, Slider } from '@tarojs/components' +import { Slider, View } from '@tarojs/components' // import './range.scss' import CodeRender from '@/components/CodeRender' export default () => { return ( - 微信平台默认样式 - + 微信平台默认样式 + - 颜色类型 - - - - - - - + 颜色类型 + + + + + + + - 尺寸 - - - - - + 尺寸 + + + + + ) diff --git a/apps/taro-app/src/components/map/skeleton.tsx b/apps/taro-app/src/components/map/skeleton.tsx index 50790bde..546629da 100644 --- a/apps/taro-app/src/components/map/skeleton.tsx +++ b/apps/taro-app/src/components/map/skeleton.tsx @@ -1,47 +1,47 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( - 类型 - - skeleton-avatar - - - - + 类型 + + skeleton-avatar + + + + - skeleton-title - - - - + skeleton-title + + + + - skeleton-paragraph - + skeleton-paragraph + - 组合使用 - - - - - - - - + 组合使用 + + + + + + + + - 取消闪烁动画 - - - - - - - + 取消闪烁动画 + + + + + + + diff --git a/apps/taro-app/src/components/map/stack.tsx b/apps/taro-app/src/components/map/stack.tsx index bbaf5153..392da294 100644 --- a/apps/taro-app/src/components/map/stack.tsx +++ b/apps/taro-app/src/components/map/stack.tsx @@ -1,5 +1,5 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( diff --git a/apps/taro-app/src/components/map/steps.scss b/apps/taro-app/src/components/map/steps.scss index 469db694..c8c5a0a3 100644 --- a/apps/taro-app/src/components/map/steps.scss +++ b/apps/taro-app/src/components/map/steps.scss @@ -3,6 +3,6 @@ content: attr(class); } -.xxx::before{ +.xxx::before { content: attr(data-sid); } diff --git a/apps/taro-app/src/components/map/steps.tsx b/apps/taro-app/src/components/map/steps.tsx index 918d4e0a..a872e30a 100644 --- a/apps/taro-app/src/components/map/steps.tsx +++ b/apps/taro-app/src/components/map/steps.tsx @@ -1,7 +1,8 @@ -import { View, Text, Slider } from '@tarojs/components' +import { View } from '@tarojs/components' // import './range.scss' import CodeRender from '@/components/CodeRender' import './steps.scss' + export default () => { return ( diff --git a/apps/taro-app/src/components/map/tab.tsx b/apps/taro-app/src/components/map/tab.tsx index 84c4c1eb..5bdd7d26 100644 --- a/apps/taro-app/src/components/map/tab.tsx +++ b/apps/taro-app/src/components/map/tab.tsx @@ -1,5 +1,5 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' export default () => { return ( diff --git a/apps/taro-app/src/components/map/table.tsx b/apps/taro-app/src/components/map/table.tsx index d9a5972a..47857526 100644 --- a/apps/taro-app/src/components/map/table.tsx +++ b/apps/taro-app/src/components/map/table.tsx @@ -1,77 +1,77 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' +import { View } from '@tarojs/components' // import './table.scss' import CodeRender from '@/components/CodeRender' export default () => { return ( - 这个组件只是用来展示table结构的数据的,要想更复杂的交互,请使用现成带js的组件 - 默认展示 - - - - - 序号 - 姓名 - 年龄 - 性别 + 这个组件只是用来展示table结构的数据的,要想更复杂的交互,请使用现成带js的组件 + 默认展示 + + + + + 序号 + 姓名 + 年龄 + 性别 - - - 1 - 王二妮 - 22 - + + + 1 + 王二妮 + 22 + - - 2 - 李狗蛋 - 33 - + + 2 + 李狗蛋 + 33 + - - 3 - 史珍香 - 32 - + + 3 + 史珍香 + 32 + - Active and Hover - - - - - 序号 - 姓名 - 年龄 - 性别 + Active and Hover + + + + + 序号 + 姓名 + 年龄 + 性别 - - - 1 - 王二妮 - 22 - + + + 1 + 王二妮 + 22 + - - 2 - 李狗蛋 - 33 - + + 2 + 李狗蛋 + 33 + - - 3 - 史珍香 - 32 - + + 3 + 史珍香 + 32 + @@ -113,143 +113,143 @@ export default () => { */} - 尺寸 - table-xs - - - - - 序号 - 姓名 - 年龄 - 性别 + 尺寸 + table-xs + + + + + 序号 + 姓名 + 年龄 + 性别 - - - 1 - 王二妮 - 22 - + + + 1 + 王二妮 + 22 + - - 2 - 李狗蛋 - 33 - + + 2 + 李狗蛋 + 33 + - - 3 - 史珍香 - 32 - + + 3 + 史珍香 + 32 + - table-sm - - - - - 序号 - 姓名 - 年龄 - 性别 + table-sm + + + + + 序号 + 姓名 + 年龄 + 性别 - - - 1 - 王二妮 - 22 - + + + 1 + 王二妮 + 22 + - - 2 - 李狗蛋 - 33 - + + 2 + 李狗蛋 + 33 + - - 3 - 史珍香 - 32 - + + 3 + 史珍香 + 32 + - table-md - - - - - 序号 - 姓名 - 年龄 - 性别 + table-md + + + + + 序号 + 姓名 + 年龄 + 性别 - - - 1 - 王二妮 - 22 - + + + 1 + 王二妮 + 22 + - - 2 - 李狗蛋 - 33 - + + 2 + 李狗蛋 + 33 + - - 3 - 史珍香 - 32 - + + 3 + 史珍香 + 32 + - table-lg - - - - - 序号 - 姓名 - 年龄 - 性别 + table-lg + + + + + 序号 + 姓名 + 年龄 + 性别 - - - 1 - 王二妮 - 22 - + + + 1 + 王二妮 + 22 + - - 2 - 李狗蛋 - 33 - + + 2 + 李狗蛋 + 33 + - - 3 - 史珍香 - 32 - + + 3 + 史珍香 + 32 + diff --git a/apps/taro-app/src/components/map/textarea.tsx b/apps/taro-app/src/components/map/textarea.tsx index 366b0fbf..2f5a04b7 100644 --- a/apps/taro-app/src/components/map/textarea.tsx +++ b/apps/taro-app/src/components/map/textarea.tsx @@ -1,28 +1,28 @@ -import { View, Text, Slider, Textarea } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { Textarea, View } from '@tarojs/components' export default () => { return ( - 颜色类型 - - - - - - - + 颜色类型 + + + + + + + - 禁用 - - + 禁用 + + - 尺寸 - - - - - + 尺寸 + + + + + ) diff --git a/apps/taro-app/src/components/map/toast.tsx b/apps/taro-app/src/components/map/toast.tsx index df8aa673..993563af 100644 --- a/apps/taro-app/src/components/map/toast.tsx +++ b/apps/taro-app/src/components/map/toast.tsx @@ -1,5 +1,5 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' import CodeRender from '@/components/CodeRender' +import { View } from '@tarojs/components' import { cx } from 'class-variance-authority' import { useState } from 'react' @@ -12,35 +12,35 @@ export default () => { } return ( - 默认使用 - + 默认使用 + - + 你有一封新的邮件 - + 丢弃 - + 点击任意一个提示可隐藏(帮助查看代码) diff --git a/apps/taro-app/src/components/map/toggle.tsx b/apps/taro-app/src/components/map/toggle.tsx index daa476f5..06d34de5 100644 --- a/apps/taro-app/src/components/map/toggle.tsx +++ b/apps/taro-app/src/components/map/toggle.tsx @@ -1,33 +1,33 @@ -import { View, Switch } from '@tarojs/components' +import { Switch, View } from '@tarojs/components' // import './toggle.scss' import CodeRender from '@/components/CodeRender' export default () => { return ( - 微信平台默认样式 - + 微信平台默认样式 + - 颜色类型 - - - - - - - + 颜色类型 + + + + + + + - 禁用 - - + 禁用 + + - 尺寸 - - - - - + 尺寸 + + + + + ) diff --git a/apps/taro-app/src/components/map/tooltip.tsx b/apps/taro-app/src/components/map/tooltip.tsx index 44699bc3..901acd02 100644 --- a/apps/taro-app/src/components/map/tooltip.tsx +++ b/apps/taro-app/src/components/map/tooltip.tsx @@ -1,15 +1,15 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' +import { Button, View } from '@tarojs/components' export default () => { return ( - 默认使用 - - - + 默认使用 + + + - 尺寸 + 尺寸 ) } diff --git a/apps/taro-app/src/components/md/highlight/config.js b/apps/taro-app/src/components/md/highlight/config.js index bc5a5a29..0ef9d399 100644 --- a/apps/taro-app/src/components/md/highlight/config.js +++ b/apps/taro-app/src/components/md/highlight/config.js @@ -1 +1 @@ -"use strict";module.exports={copyByLongPress:!1,showLanguageName:!1,showLineNumber:!1}; \ No newline at end of file +'use strict'; module.exports = { copyByLongPress: !1, showLanguageName: !1, showLineNumber: !1 } diff --git a/apps/taro-app/src/components/md/highlight/index.js b/apps/taro-app/src/components/md/highlight/index.js index af97e0dc..369e11a8 100644 --- a/apps/taro-app/src/components/md/highlight/index.js +++ b/apps/taro-app/src/components/md/highlight/index.js @@ -1 +1,9 @@ -"use strict";function e(e){this.vm=e}var r=require("./prism.min"),s=require("./config"),t=require("../parser");e.prototype.onParse=function(e,a){if("pre"===e.name){if(a.options.editable)return void(e.attrs.class=(e.attrs.class||"")+" hl-pre");var n;for(n=e.children.length;n--&&"code"!==e.children[n].name;);if(-1===n)return;var l=e.children[n],i=l.attrs.class+" "+e.attrs.class;n=i.indexOf("language-"),-1===n?(n=i.indexOf("lang-"),-1===n?(i="language-text",n=9):n+=5):n+=9;var c;for(c=n;c"+r.highlight(o,r.languages[h],h).replace(/token /g,"hl-")+"")[0].children),e.attrs.class="hl-pre",l.attrs.class="hl-code",s.showLanguageName&&e.children.push({name:"div",attrs:{class:"hl-language",style:"user-select:none"},children:[{type:"text",text:h}]}),s.copyByLongPress&&(e.attrs.style+=(e.attrs.style||"")+";user-select:none",e.attrs["data-content"]=o,a.expose()),s.showLineNumber){for(var g=o.split("\n").length,p=[],u=g;u--;)p.push({name:"span",attrs:{class:"span"}});e.children.push({name:"span",attrs:{class:"line-numbers-rows"},children:p})}}}},module.exports=e; \ No newline at end of file +'use strict'; function e(e) { this.vm = e } const t = require('../parser'); const s = require('./config'); const r = require('./prism.min') + +e.prototype.onParse = function (e, a) { + if (e.name === 'pre') { + if (a.options.editable) { return void (e.attrs.class = `${e.attrs.class || ''} hl-pre`) } let n; for (n = e.children.length; n-- && e.children[n].name !== 'code';) { ; } if (n === -1) { return } const l = e.children[n]; let i = `${l.attrs.class} ${e.attrs.class}`; n = i.indexOf('language-'), n === -1 ? (n = i.indexOf('lang-'), n === -1 ? (i = 'language-text', n = 9) : n += 5) : n += 9; let c; for (c = n; c < i.length && i[c] !== ' '; c++) { ; } const h = i.substring(n, c); if (l.children.length) { + const o = this.vm.getText(l.children).replace(/&/g, '&'); if (!o) { return } if (e.c && (e.c = void 0), r.languages[h] && (l.children = new t(this.vm).parse(`
${r.highlight(o, r.languages[h], h).replace(/token /g, 'hl-')}
`)[0].children), e.attrs.class = 'hl-pre', l.attrs.class = 'hl-code', s.showLanguageName && e.children.push({ name: 'div', attrs: { class: 'hl-language', style: 'user-select:none' }, children: [{ type: 'text', text: h }] }), s.copyByLongPress && (e.attrs.style += `${e.attrs.style || ''};user-select:none`, e.attrs['data-content'] = o, a.expose()), s.showLineNumber) { for (var g = o.split('\n').length, p = [], u = g; u--;) { p.push({ name: 'span', attrs: { class: 'span' } }) }e.children.push({ name: 'span', attrs: { class: 'line-numbers-rows' }, children: p }) } + } + } +}, module.exports = e diff --git a/apps/taro-app/src/components/md/index.js b/apps/taro-app/src/components/md/index.js index 4c76e204..f7632057 100644 --- a/apps/taro-app/src/components/md/index.js +++ b/apps/taro-app/src/components/md/index.js @@ -1,8 +1,42 @@ -"use strict";function e(t){"@babel/helpers - typeof";return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t,o){return t=n(t),t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function n(t){var n=o(t,"string");return"symbol"===e(n)?n:String(n)}function o(t,n){if("object"!==e(t)||null===t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var i=o.call(t,n||"default");if("object"!==e(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}/*! +'use strict'; function e(t) { '@babel/helpers - typeof'; return (e = typeof Symbol == 'function' && typeof Symbol.iterator == 'symbol' ? function (e) { return typeof e } : function (e) { return e && typeof Symbol == 'function' && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e })(t) } function t(e, t, o) { return t = n(t), t in e ? Object.defineProperty(e, t, { value: o, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = o, e } function n(t) { const n = o(t, 'string'); return e(n) === 'symbol' ? n : String(n) } function o(t, n) { + if (e(t) !== 'object' || t === null) { return t } const o = t[Symbol.toPrimitive]; if (void 0 !== o) { + const i = o.call(t, n || 'default'); if (e(i) !== 'object') { return i } throw new TypeError('@@toPrimitive must return a primitive value.') + } return (n === 'string' ? String : Number)(t) +}/*! * mp-html v2.4.2 * https://github.com/jin-yufeng/mp-html * * Released under the MIT license * Author: Jin Yufeng */ -var i=require("./parser"),r=[require("./markdown/index.js"),require("./highlight/index.js")];Component({data:{nodes:[]},properties:{markdown:Boolean,containerStyle:String,content:{type:String,value:"",observer:function(e){this.setContent(e)}},copyLink:{type:Boolean,value:!0},domain:String,errorImg:String,lazyLoad:Boolean,loadingImg:String,pauseVideo:{type:Boolean,value:!0},previewImg:{type:Boolean,value:!0},scrollTable:Boolean,selectable:null,setTitle:{type:Boolean,value:!0},showImgMenu:{type:Boolean,value:!0},tagStyle:Object,useAnchor:null},created:function(){this.plugins=[];for(var e=r.length;e--;)this.plugins.push(new r[e](this))},detached:function(){this._hook("onDetached")},methods:{in:function(e,t,n){e&&t&&n&&(this._in={page:e,selector:t,scrollTop:n})},navigateTo:function(e,n){var o=this;return e=this._ids[decodeURI(e)]||e,new Promise(function(i,r){if(!o.data.useAnchor)return void r(Error("Anchor is disabled"));var a=wx.createSelectorQuery().in(o._in?o._in.page:o).select((o._in?o._in.selector:"._root")+(e?"".concat(">>>","#").concat(e):"")).boundingClientRect();o._in?a.select(o._in.selector).scrollOffset().select(o._in.selector).boundingClientRect():a.selectViewport().scrollOffset(),a.exec(function(e){if(!e[0])return void r(Error("Label not found"));var a=e[1].scrollTop+e[0].top-(e[2]?e[2].top:0)+(n||parseInt(o.data.useAnchor)||0);o._in?o._in.page.setData(t({},o._in.scrollTop,a)):wx.pageScrollTo({scrollTop:a,duration:300}),i()})})},getText:function(e){var t="";return function e(n){for(var o=0;o"0"&&i.name[1]<"7";r&&t&&"\n"!==t[t.length-1]&&(t+="\n"),i.children&&e(i.children),r&&"\n"!==t[t.length-1]?t+="\n":"td"!==i.name&&"th"!==i.name||(t+="\t")}}}(e||this.data.nodes),t},getRect:function(){var e=this;return new Promise(function(t,n){wx.createSelectorQuery().in(e).select("._root").boundingClientRect().exec(function(e){return e[0]?t(e[0]):n(Error("Root label not found"))})})},pauseMedia:function(){for(var e=(this._videos||[]).length;e--;)this._videos[e].pause()},setPlaybackRate:function(e){this.playbackRate=e;for(var t=(this._videos||[]).length;t--;)this._videos[t].playbackRate(e)},setContent:function(e,t){var n=this;this.imgList&&t||(this.imgList=[]),this._videos=[];var o={},r=new i(this).parse(e);if(t)for(var a=this.data.nodes.length,s=r.length;s--;)o["nodes[".concat(a+s,"]")]=r[s];else o.nodes=r;if(this.setData(o,function(){n._hook("onLoad"),n.triggerEvent("load")}),this.data.lazyLoad||this.imgList._unloadimgs { + if (!o.data.useAnchor) { return void r(new Error('Anchor is disabled')) } const a = wx.createSelectorQuery().in(o._in ? o._in.page : o).select((o._in ? o._in.selector : '._root') + (e ? ''.concat('>>>', '#').concat(e) : '')).boundingClientRect(); o._in ? a.select(o._in.selector).scrollOffset().select(o._in.selector).boundingClientRect() : a.selectViewport().scrollOffset(), a.exec((e) => { + if (!e[0]) { return void r(new Error('Label not found')) } const a = e[1].scrollTop + e[0].top - (e[2] ? e[2].top : 0) + (n || Number.parseInt(o.data.useAnchor) || 0); o._in ? o._in.page.setData(t({}, o._in.scrollTop, a)) : wx.pageScrollTo({ scrollTop: a, duration: 300 }), i() + }) + }) +}, getText(e) { + let t = ''; return (function e(n) { + for (let o = 0; o < n.length; o++) { + const i = n[o]; if (i.type === 'text') { + t += i.text.replace(/&/g, '&') + } + else if (i.name === 'br') { + t += '\n' + } + else { const r = i.name === 'p' || i.name === 'div' || i.name === 'tr' || i.name === 'li' || i.name[0] === 'h' && i.name[1] > '0' && i.name[1] < '7'; r && t && t[t.length - 1] !== '\n' && (t += '\n'), i.children && e(i.children), r && t[t.length - 1] !== '\n' ? t += '\n' : i.name !== 'td' && i.name !== 'th' || (t += '\t') } + } + }(e || this.data.nodes)), t +}, getRect() { const e = this; return new Promise((t, n) => { wx.createSelectorQuery().in(e).select('._root').boundingClientRect().exec((e) => { return e[0] ? t(e[0]) : n(new Error('Root label not found')) }) }) }, pauseMedia() { for (let e = (this._videos || []).length; e--;) { this._videos[e].pause() } }, setPlaybackRate(e) { this.playbackRate = e; for (let t = (this._videos || []).length; t--;) { this._videos[t].playbackRate(e) } }, setContent(e, t) { + const n = this; this.imgList && t || (this.imgList = []), this._videos = []; const o = {}; const r = new i(this).parse(e); if (t) { + for (let a = this.data.nodes.length, s = r.length; s--;) { o['nodes['.concat(a + s, ']')] = r[s] } + } + else { + o.nodes = r + } if (this.setData(o, () => { n._hook('onLoad'), n.triggerEvent('load') }), this.data.lazyLoad || this.imgList._unloadimgs < this.imgList.length / 2) { let l = 0; const c = function e(t) { t && t.height || (t = {}), t.height === l ? n.triggerEvent('ready', t) : (l = t.height, setTimeout(() => { n.getRect().then(e).catch(e) }, 350)) }; this.getRect().then(c).catch(c) } + else { + this.imgList._unloadimgs || this.getRect().then((e) => { n.triggerEvent('ready', e) }).catch(() => { n.triggerEvent('ready', {}) }) + } +}, _hook(e) { for (let t = r.length; t--;) { this.plugins[t][e] && this.plugins[t][e]() } }, _add(e) { e.detail.root = this } } }) diff --git a/apps/taro-app/src/components/md/index.json b/apps/taro-app/src/components/md/index.json index 36b626ec..c552b52b 100644 --- a/apps/taro-app/src/components/md/index.json +++ b/apps/taro-app/src/components/md/index.json @@ -1 +1 @@ -{"component":true,"usingComponents":{"node":"./node/node"}} \ No newline at end of file +{ "component": true, "usingComponents": { "node": "./node/node" } } diff --git a/apps/taro-app/src/components/md/markdown/index.js b/apps/taro-app/src/components/md/markdown/index.js index 572ec5e7..be58b80b 100644 --- a/apps/taro-app/src/components/md/markdown/index.js +++ b/apps/taro-app/src/components/md/markdown/index.js @@ -1 +1,7 @@ -"use strict";function t(t){this.vm=t,t._ids={}}var e=require("./marked.min"),a=0;t.prototype.onUpdate=function(t){if(this.vm.data.markdown)return e(t)},t.prototype.onParse=function(t,e){if(e.options.markdown){if(e.options.useAnchor&&t.attrs&&/[\u4e00-\u9fa5]/.test(t.attrs.id)){var n="t"+a++;this.vm._ids[t.attrs.id]=n,t.attrs.id=n}"p"!==t.name&&"table"!==t.name&&"tr"!==t.name&&"th"!==t.name&&"td"!==t.name&&"blockquote"!==t.name&&"pre"!==t.name&&"code"!==t.name||(t.attrs.class="md-".concat(t.name," ").concat(t.attrs.class||""))}},module.exports=t; \ No newline at end of file +'use strict'; function t(t) { this.vm = t, t._ids = {} } const e = require('./marked.min') + +let a = 0 + +t.prototype.onUpdate = function (t) { + if (this.vm.data.markdown) { return e(t) } +}, t.prototype.onParse = function (t, e) { if (e.options.markdown) { if (e.options.useAnchor && t.attrs && /[\u4E00-\u9FA5]/.test(t.attrs.id)) { const n = `t${a++}`; this.vm._ids[t.attrs.id] = n, t.attrs.id = n }t.name !== 'p' && t.name !== 'table' && t.name !== 'tr' && t.name !== 'th' && t.name !== 'td' && t.name !== 'blockquote' && t.name !== 'pre' && t.name !== 'code' || (t.attrs.class = 'md-'.concat(t.name, ' ').concat(t.attrs.class || '')) } }, module.exports = t diff --git a/apps/taro-app/src/components/md/node/node.js b/apps/taro-app/src/components/md/node/node.js index 687b2eef..80eddc4f 100644 --- a/apps/taro-app/src/components/md/node/node.js +++ b/apps/taro-app/src/components/md/node/node.js @@ -1 +1,17 @@ -"use strict";function t(r){"@babel/helpers - typeof";return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(r)}function r(t,r,i){return r=e(r),r in t?Object.defineProperty(t,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[r]=i,t}function e(r){var e=i(r,"string");return"symbol"===t(e)?e:String(e)}function i(r,e){if("object"!==t(r)||null===r)return r;var i=r[Symbol.toPrimitive];if(void 0!==i){var o=i.call(r,e||"default");if("object"!==t(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(r)}Component({data:{ctrl:{},isiOS:wx.getSystemInfoSync().system.includes("iOS")},properties:{childs:Array,opts:Array},options:{addGlobalClass:!0},attached:function(){this.triggerEvent("add",this,{bubbles:!0,composed:!0})},methods:{noop:function(){},getNode:function(t){try{for(var r=t.split("_"),e=this.data.childs[r[0]],i=1;ii.src.length&&(o=0),o { t.root.getRect().then((r) => { t.root.triggerEvent('ready', r) }).catch(() => { t.root.triggerEvent('ready', {}) }) }, 350)) }, linkTap(t) { const r = t.currentTarget ? this.getNode(t.currentTarget.dataset.i) : {}; const e = r.attrs || t; const i = e.href; this.root.triggerEvent('linktap', Object.assign({ innerText: this.root.getText(r.children || []) }, e)), i && (i[0] === '#' ? this.root.navigateTo(i.substring(1)).catch(() => {}) : i.split('?')[0].includes('://') ? this.root.data.copyLink && wx.setClipboardData({ data: i, success() { return wx.showToast({ title: '链接已复制' }) } }) : wx.navigateTo({ url: i, fail() { wx.switchTab({ url: i, fail() {} }) } })) }, mediaError(t) { + const e = t.target.dataset.i; const i = this.getNode(e); if (i.name === 'video' || i.name === 'audio') { + let o = (this.data.ctrl[e] || 0) + 1; if (o > i.src.length && (o = 0), o < i.src.length) { return this.setData(r({}, `ctrl.${e}`, o)) } + } + else { + i.name === 'img' && (this.data.opts[2] && this.setData(r({}, `ctrl.${e}`, -1)), this.checkReady()) + } this.root && this.root.triggerEvent('error', { source: i.name, attrs: i.attrs, errMsg: t.detail.errMsg }) +} } }) diff --git a/apps/taro-app/src/components/md/node/node.json b/apps/taro-app/src/components/md/node/node.json index 36f7ff76..7413fb1e 100644 --- a/apps/taro-app/src/components/md/node/node.json +++ b/apps/taro-app/src/components/md/node/node.json @@ -1 +1 @@ -{"component":true,"usingComponents":{"node":"./node"}} \ No newline at end of file +{ "component": true, "usingComponents": { "node": "./node" } } diff --git a/apps/taro-app/src/components/md/parser.js b/apps/taro-app/src/components/md/parser.js index 58f9fa47..bffa594d 100644 --- a/apps/taro-app/src/components/md/parser.js +++ b/apps/taro-app/src/components/md/parser.js @@ -1 +1,187 @@ -"use strict";function t(t,e){var s="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!s){if(Array.isArray(t)||(s=i(t))||e&&t&&"number"==typeof t.length){s&&(t=s);var n=0,a=function(){};return{s:a,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r,o=!0,l=!1;return{s:function(){s=s.call(t)},n:function(){var t=s.next();return o=t.done,t},e:function(t){l=!0,r=t},f:function(){try{o||null==s.return||s.return()}finally{if(l)throw r}}}}function i(t,i){if(t){if("string"==typeof t)return e(t,i);var s=Object.prototype.toString.call(t).slice(8,-1);return"Object"===s&&t.constructor&&(s=t.constructor.name),"Map"===s||"Set"===s?Array.from(t):"Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s)?e(t,i):void 0}}function e(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,s=new Array(i);e=-1;e--)(-1===e||t[e].c||!t[e].name||"div"!==t[e].name&&"p"!==t[e].name&&"h"!==t[e].name[0]||(t[e].attrs.style||"").includes("inline"))&&(i-e>=5&&t.splice(e+1,i-e,{name:"div",attrs:{},children:t.slice(e+1,i+1)}),i=e-1)}function r(t){this.options=t.data||{},this.tagStyle=Object.assign({},l.tagStyle,this.options.tagStyle),this.imgList=t.imgList||[],this.imgList._unloadimgs=0,this.plugins=t.plugins||[],this.attrs=Object.create(null),this.stack=[],this.nodes=[],this.pre=(this.options.containerStyle||"").includes("white-space")&&this.options.containerStyle.includes("pre")?2:0}function o(t){this.handler=t}var l={trustTags:s("a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video"),blockTags:s("address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section"),ignoreTags:s("area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr"),voidTags:s("card,area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr"),entities:{lt:"<",gt:">",quot:'"',apos:"'",ensp:" ",emsp:" ",nbsp:" ",semi:";",ndash:"–",mdash:"—",middot:"·",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",bull:"•",hellip:"…",larr:"←",uarr:"↑",rarr:"→",darr:"↓"},tagStyle:{address:"font-style:italic",big:"display:inline;font-size:1.2em",caption:"display:table-caption;text-align:center",center:"text-align:center",cite:"font-style:italic",dd:"margin-left:40px",mark:"background-color:yellow",pre:"font-family:monospace;white-space:pre",s:"text-decoration:line-through",small:"display:inline;font-size:0.8em",strike:"text-decoration:line-through",u:"text-decoration:underline"},svgDict:{animatetransform:"animateTransform",lineargradient:"linearGradient",viewbox:"viewBox",attributename:"attributeName",repeatcount:"repeatCount",repeatdur:"repeatDur",foreignobject:"foreignObject"}},h={},c=wx.getSystemInfoSync(),d=c.windowWidth,p=c.system,u=s(" ,\r,\n,\t,\f"),f=0;r.prototype.parse=function(t){for(var i=this.plugins.length;i--;)this.plugins[i].onUpdate&&(t=this.plugins[i].onUpdate(t,l)||t);for(new o(this).parse(t);this.stack.length;)this.popNode();return this.nodes.length>50&&a(this.nodes),this.nodes},r.prototype.expose=function(){for(var t=this.stack.length;t--;){var i=this.stack[t];if(i.c||"a"===i.name||"video"===i.name||"audio"===i.name)return;i.c=1}},r.prototype.hook=function(t){for(var i=this.plugins.length;i--;)if(this.plugins[i].onParse&&!1===this.plugins[i].onParse(t,this))return!1;return!0},r.prototype.getUrl=function(t){var i=this.options.domain;return"/"===t[0]?"/"===t[1]?t=(i?i.split("://")[0]:"http")+":"+t:i&&(t=i+t):!i||t.includes("data:")||t.includes("://")||(t=i+"/"+t),t},r.prototype.parseStyle=function(t){var i=t.attrs,e=(this.tagStyle[t.name]||"").split(";").concat((i.style||"").split(";")),s={},n="";i.id&&!this.xml&&(this.options.useAnchor?this.expose():"img"!==t.name&&"a"!==t.name&&"video"!==t.name&&"audio"!==t.name&&(i.id=void 0)),i.width&&(s.width=parseFloat(i.width)+(i.width.includes("%")?"%":"px"),i.width=void 0),i.height&&(s.height=parseFloat(i.height)+(i.height.includes("%")?"%":"px"),i.height=void 0);for(var a=0,r=e.length;a0||h.includes("safe"))n+=";".concat(l,":").concat(h);else if(!s[l]||h.includes("import")||!s[l].includes("import")){if(h.includes("url")){var c=h.indexOf("(")+1;if(c){for(;'"'===h[c]||"'"===h[c]||u[h[c]];)c++;h=h.substr(0,c)+this.getUrl(h.substr(c))}}else h.includes("rpx")&&(h=h.replace(/[0-9.]+\s*rpx/g,function(t){return parseFloat(t)*d/750+"px"}));s[l]=h}}}return t.attrs.style=n,s},r.prototype.onTagName=function(t){this.tagName=this.xml?t:t.toLowerCase(),"svg"===this.tagName&&(this.xml=(this.xml||0)+1,l.ignoreTags.style=void 0)},r.prototype.onAttrName=function(t){t=this.xml?t:t.toLowerCase(),"data-"===t.substr(0,5)?"data-src"!==t||this.attrs.src?"img"===this.tagName||"a"===this.tagName?this.attrName=t:this.attrName=void 0:this.attrName="src":(this.attrName=t,this.attrs[t]="T")},r.prototype.onAttrVal=function(t){var i=this.attrName||"";"style"===i||"href"===i?this.attrs[i]=n(t,!0):i.includes("src")?this.attrs[i]=this.getUrl(n(t,!0)):i&&(this.attrs[i]=t)},r.prototype.onOpenTag=function(t){var i=Object.create(null);i.name=this.tagName,i.attrs=this.attrs,this.attrs=Object.create(null);var e=i.attrs,s=this.stack[this.stack.length-1],n=s?s.children:this.nodes,a=this.xml?t:l.voidTags[i.name];if(h[i.name]&&(e.class=h[i.name]+(e.class?" "+e.class:"")),"embed"===i.name){var r=e.src||"";r.includes(".mp4")||r.includes(".3gp")||r.includes(".m3u8")||(e.type||"").includes("video")?i.name="video":(r.includes(".mp3")||r.includes(".wav")||r.includes(".aac")||r.includes(".m4a")||(e.type||"").includes("audio"))&&(i.name="audio"),e.autostart&&(e.autoplay="T"),e.controls="T"}if("video"!==i.name&&"audio"!==i.name||("video"!==i.name||e.id||(e.id="v"+f++),e.controls||e.autoplay||(e.controls="T"),i.src=[],e.src&&(i.src.push(e.src),e.src=void 0),this.expose()),a){if(!this.hook(i)||l.ignoreTags[i.name])return void("base"!==i.name||this.options.domain?"source"===i.name&&s&&("video"===s.name||"audio"===s.name)&&e.src&&s.src.push(e.src):this.options.domain=e.href);var o=this.parseStyle(i);if("img"===i.name){if(e.src&&(e.src.includes("webp")&&(i.webp="T"),e.src.includes("data:")&&!e["original-src"]&&(e.ignore="T"),!e.ignore||i.webp||e.src.includes("cloud://"))){for(var c=this.stack.length;c--;){var p=this.stack[c];"table"!==p.name||i.webp||e.src.includes("cloud://")||(!o.display||o.display.includes("inline")?i.t="inline-block":i.t=o.display,o.display=void 0);var u=p.attrs.style||"";if(!u.includes("flex:")||u.includes("flex:0")||u.includes("flex: 0")||o.width&&!(parseInt(o.width)>100))if(u.includes("flex")&&"100%"===o.width)for(var g=c+1;g.5?y[b].toUpperCase():y[b];x+=y.substr(b),y=x}}this.imgList.push(y),i.t||(this.imgList._unloadimgs+=1)}"inline"===o.display&&(o.display=""),e.ignore&&(o["max-width"]=o["max-width"]||"100%",e.style+=";-webkit-touch-callout:none"),parseInt(o.width)>d&&(o.height=void 0),isNaN(parseInt(o.width))||(i.w="T"),!isNaN(parseInt(o.height))&&(!o.height.includes("%")||s&&(s.attrs.style||"").includes("height"))&&(i.h="T")}else if("svg"===i.name)return n.push(i),this.stack.push(i),void this.popNode();for(var w in o)o[w]&&(e.style+=";".concat(w,":").concat(o[w].replace(" !important","")));e.style=e.style.substr(1)||void 0}else("pre"===i.name||(e.style||"").includes("white-space")&&e.style.includes("pre"))&&2!==this.pre&&(this.pre=i.pre=1),i.children=[],this.stack.push(i);n.push(i)},r.prototype.onCloseTag=function(t){t=this.xml?t:t.toLowerCase();var i;for(i=this.stack.length;i--&&this.stack[i].name!==t;);if(-1!==i)for(;this.stack.length>i;)this.popNode();else if("p"===t||"br"===t){var e=this.stack.length?this.stack[this.stack.length-1].children:this.nodes;e.push({name:t,attrs:{class:h[t],style:this.tagStyle[t]}})}},r.prototype.popNode=function(){var i=this.stack.pop(),e=i.attrs,s=i.children,n=this.stack[this.stack.length-1],r=n?n.children:this.nodes;if(!this.hook(i)||l.ignoreTags[i.name])return"title"===i.name&&s.length&&"text"===s[0].type&&this.options.setTitle&&wx.setNavigationBarTitle({title:s[0].text}),void r.pop();if(i.pre&&2!==this.pre){this.pre=i.pre=void 0;for(var o=this.stack.length;o--;)this.stack[o].pre&&(this.pre=1)}if("svg"===i.name){if(this.xml>1)return void this.xml--;var h="",c=e.style;return e.style="",e.xmlns="http://www.w3.org/2000/svg",function i(e){if("text"===e.type)return void(h+=e.text);var s=l.svgDict[e.name]||e.name;if("foreignObject"===s){var n,a=t(e.children||[]);try{for(a.s();!(n=a.n()).done;){var r=n.value;if(r.attrs&&!r.attrs.xmlns){r.attrs.xmlns="http://www.w3.org/1999/xhtml";break}}}catch(t){a.e(t)}finally{a.f()}}h+="<"+s;for(var o in e.attrs){var c=e.attrs[o];c&&(h+=" ".concat(l.svgDict[o]||o,'="').concat(c,'"'))}if(e.children){h+=">";for(var d=0;d"}else h+="/>"}(i),i.name="img",i.attrs={src:"data:image/svg+xml;utf8,"+h.replace(/#/g,"%23"),style:c,ignore:"T"},i.children=void 0,this.xml=!1,void(l.ignoreTags.style=!0)}var p={};if(e.align&&("table"===i.name?"center"===e.align?p["margin-inline-start"]=p["margin-inline-end"]="auto":p.float=e.align:p["text-align"]=e.align,e.align=void 0),e.dir&&(p.direction=e.dir,e.dir=void 0),"font"===i.name&&(e.color&&(p.color=e.color,e.color=void 0),e.face&&(p["font-family"]=e.face,e.face=void 0),e.size)){var u=parseInt(e.size);isNaN(u)||(u<1?u=1:u>7&&(u=7),p["font-size"]=["x-small","small","medium","large","x-large","xx-large","xxx-large"][u-1]),e.size=void 0}if((e.class||"").includes("align-center")&&(p["text-align"]="center"),Object.assign(p,this.parseStyle(i)),"table"!==i.name&&parseInt(p.width)>d&&(p["max-width"]="100%",p["box-sizing"]="border-box"),l.blockTags[i.name])i.name="div";else if(l.trustTags[i.name]||this.xml)if("a"===i.name||"ad"===i.name)this.expose();else if("video"===i.name||"audio"===i.name)(p.height||"").includes("auto")&&(p.height=void 0),i.children=void 0;else if("ul"!==i.name&&"ol"!==i.name||!i.c){if("table"===i.name){var f=parseFloat(e.cellpadding),g=parseFloat(e.cellspacing),m=parseFloat(e.border),v=p["border-color"],y=p["border-style"];if(i.c&&(isNaN(f)&&(f=2),isNaN(g)&&(g=2)),m&&(e.style+=";border:".concat(m,"px ").concat(y||"solid"," ").concat(v||"gray")),i.flag&&i.c){i.flag=void 0,p.display="grid","collapse"===p["border-collapse"]&&(p["border-collapse"]=void 0,g=0),g?(p["grid-gap"]=g+"px",p.padding=g+"px"):m&&(e.style+=";border-left:0;border-top:0");var b=[],x=[],w=[],k={};!function i(e){for(var s=0;s=50&&i.c&&!(p.display||"").includes("flex")&&a(s);for(var G in p)if(p[G]){var W=";".concat(G,":").concat(p[G].replace(" !important",""));E&&(G.includes("flex")&&"flex-direction"!==G||"align-self"===G||G.includes("grid")||"-"===p[G][0]||G.includes("width")&&W.includes("%"))?(i.f+=W,"width"===G&&(e.style+=";width:100%")):e.style+=W}e.style=e.style.substr(1)||void 0},r.prototype.onText=function(t){if(!this.pre){for(var i,e="",s=0,a=t.length;s"===this.content[this.i]||i&&">"===this.content[this.i+1])&&(t&&this.handler[t](this.content.substring(this.start,this.i)),this.i+=i?2:1,this.start=this.i,this.handler.onOpenTag(i),"script"===this.handler.tagName?(this.i=this.content.indexOf("="a"&&t<="z"||t>="A"&&t<="Z")this.start!==this.i&&this.handler.onText(this.content.substring(this.start,this.i)),this.start=++this.i,this.state=this.tagName;else if("/"===t||"!"===t||"?"===t){this.start!==this.i&&this.handler.onText(this.content.substring(this.start,this.i));var i=this.content[this.i+2];if("/"===t&&(i>="a"&&i<="z"||i>="A"&&i<="Z"))return this.i+=2,this.start=this.i,void(this.state=this.endTag);var e="--\x3e";"!"===t&&"-"===this.content[this.i+2]&&"-"===this.content[this.i+3]||(e=">"),this.i=this.content.indexOf(e,this.i),-1!==this.i&&(this.i+=e.length,this.start=this.i)}else this.i++},o.prototype.tagName=function(){if(u[this.content[this.i]]){for(this.handler.onTagName(this.content.substring(this.start,this.i));u[this.content[++this.i]];);this.i"===t||"/"===t){if(this.handler.onCloseTag(this.content.substring(this.start,this.i)),">"!==t&&(this.i=this.content.indexOf(">",this.i),-1===this.i))return;this.start=++this.i,this.state=this.text}else this.i++},module.exports=r; \ No newline at end of file +'use strict'; function t(t, e) { + let s = typeof Symbol != 'undefined' && t[Symbol.iterator] || t['@@iterator']; if (!s) { if (Array.isArray(t) || (s = i(t)) || e && t && typeof t.length == 'number') { s && (t = s); let n = 0; const a = function () {}; return { s: a, n() { return n >= t.length ? { done: !0 } : { done: !1, value: t[n++] } }, e(t) { throw t }, f: a } } throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.') } let r; let o = !0; let l = !1; return { s() { s = s.call(t) }, n() { const t = s.next(); return o = t.done, t }, e(t) { l = !0, r = t }, f() { + try { o || s.return == null || s.return() } + finally { + if (l) { throw r } + } + } } +} function i(t, i) { + if (t) { + if (typeof t == 'string') { return e(t, i) } let s = Object.prototype.toString.call(t).slice(8, -1); return s === 'Object' && t.constructor && (s = t.constructor.name), s === 'Map' || s === 'Set' ? Array.from(t) : s === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s) ? e(t, i) : void 0 + } +} function e(t, i) { (i == null || i > t.length) && (i = t.length); for (var e = 0, s = new Array(i); e < i; e++) { s[e] = t[e] } return s } function s(t) { for (var i = Object.create(null), e = t.split(','), s = e.length; s--;) { i[e[s]] = !0 } return i } function n(t, i) { + for (let e = t.indexOf('&'); e !== -1;) { + const s = t.indexOf(';', e + 3); let n = void 0; if (s === -1) { break } t[e + 1] === '#' ? (n = Number.parseInt((t[e + 2] === 'x' ? '0' : '') + t.substring(e + 2, s)), isNaN(n) || (t = t.substr(0, e) + String.fromCharCode(n) + t.substr(s + 1))) : (n = t.substring(e + 1, s), (l.entities[n] || n === 'amp' && i) && (t = t.substr(0, e) + (l.entities[n] || '&') + t.substr(s + 1))), e = t.indexOf('&', e + 1) + } return t +} function a(t) { for (let i = t.length - 1, e = i; e >= -1; e--) { (e === -1 || t[e].c || !t[e].name || t[e].name !== 'div' && t[e].name !== 'p' && t[e].name[0] !== 'h' || (t[e].attrs.style || '').includes('inline')) && (i - e >= 5 && t.splice(e + 1, i - e, { name: 'div', attrs: {}, children: t.slice(e + 1, i + 1) }), i = e - 1) } } function r(t) { this.options = t.data || {}, this.tagStyle = Object.assign({}, l.tagStyle, this.options.tagStyle), this.imgList = t.imgList || [], this.imgList._unloadimgs = 0, this.plugins = t.plugins || [], this.attrs = Object.create(null), this.stack = [], this.nodes = [], this.pre = (this.options.containerStyle || '').includes('white-space') && this.options.containerStyle.includes('pre') ? 2 : 0 } function o(t) { this.handler = t } var l = { trustTags: s('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'), blockTags: s('address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section'), ignoreTags: s('area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr'), voidTags: s('card,area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'), entities: { lt: '<', gt: '>', quot: '"', apos: '\'', ensp: ' ', emsp: ' ', nbsp: ' ', semi: ';', ndash: '–', mdash: '—', middot: '·', lsquo: '‘', rsquo: '’', ldquo: '“', rdquo: '”', bull: '•', hellip: '…', larr: '←', uarr: '↑', rarr: '→', darr: '↓' }, tagStyle: { address: 'font-style:italic', big: 'display:inline;font-size:1.2em', caption: 'display:table-caption;text-align:center', center: 'text-align:center', cite: 'font-style:italic', dd: 'margin-left:40px', mark: 'background-color:yellow', pre: 'font-family:monospace;white-space:pre', s: 'text-decoration:line-through', small: 'display:inline;font-size:0.8em', strike: 'text-decoration:line-through', u: 'text-decoration:underline' }, svgDict: { animatetransform: 'animateTransform', lineargradient: 'linearGradient', viewbox: 'viewBox', attributename: 'attributeName', repeatcount: 'repeatCount', repeatdur: 'repeatDur', foreignobject: 'foreignObject' } }; const h = {}; const c = wx.getSystemInfoSync(); const d = c.windowWidth; const p = c.system; const u = s(' ,\r,\n,\t,\f'); let f = 0; r.prototype.parse = function (t) { for (let i = this.plugins.length; i--;) { this.plugins[i].onUpdate && (t = this.plugins[i].onUpdate(t, l) || t) } for (new o(this).parse(t); this.stack.length;) { this.popNode() } return this.nodes.length > 50 && a(this.nodes), this.nodes }, r.prototype.expose = function () { + for (let t = this.stack.length; t--;) { + const i = this.stack[t]; if (i.c || i.name === 'a' || i.name === 'video' || i.name === 'audio') { return } i.c = 1 + } +}, r.prototype.hook = function (t) { + for (let i = this.plugins.length; i--;) { + if (this.plugins[i].onParse && !1 === this.plugins[i].onParse(t, this)) { return !1 } + } return !0 +}, r.prototype.getUrl = function (t) { const i = this.options.domain; return t[0] === '/' ? t[1] === '/' ? t = `${i ? i.split('://')[0] : 'http'}:${t}` : i && (t = i + t) : !i || t.includes('data:') || t.includes('://') || (t = `${i}/${t}`), t }, r.prototype.parseStyle = function (t) { + const i = t.attrs; const e = (this.tagStyle[t.name] || '').split(';').concat((i.style || '').split(';')); const s = {}; let n = ''; i.id && !this.xml && (this.options.useAnchor ? this.expose() : t.name !== 'img' && t.name !== 'a' && t.name !== 'video' && t.name !== 'audio' && (i.id = void 0)), i.width && (s.width = Number.parseFloat(i.width) + (i.width.includes('%') ? '%' : 'px'), i.width = void 0), i.height && (s.height = Number.parseFloat(i.height) + (i.height.includes('%') ? '%' : 'px'), i.height = void 0); for (let a = 0, r = e.length; a < r; a++) { + const o = e[a].split(':'); if (!(o.length < 2)) { + const l = o.shift().trim().toLowerCase(); let h = o.join(':').trim(); if (h[0] === '-' && h.lastIndexOf('-') > 0 || h.includes('safe')) { + n += ';'.concat(l, ':').concat(h) + } + else if (!s[l] || h.includes('import') || !s[l].includes('import')) { + if (h.includes('url')) { let c = h.indexOf('(') + 1; if (c) { for (;h[c] === '"' || h[c] === '\'' || u[h[c]];) { c++ }h = h.substr(0, c) + this.getUrl(h.substr(c)) } } + else { + h.includes('rpx') && (h = h.replace(/[0-9.]+\s*rpx/g, (t) => { return `${Number.parseFloat(t) * d / 750}px` })) + }s[l] = h + } + } + } return t.attrs.style = n, s +}, r.prototype.onTagName = function (t) { this.tagName = this.xml ? t : t.toLowerCase(), this.tagName === 'svg' && (this.xml = (this.xml || 0) + 1, l.ignoreTags.style = void 0) }, r.prototype.onAttrName = function (t) { t = this.xml ? t : t.toLowerCase(), t.substr(0, 5) === 'data-' ? t !== 'data-src' || this.attrs.src ? this.tagName === 'img' || this.tagName === 'a' ? this.attrName = t : this.attrName = void 0 : this.attrName = 'src' : (this.attrName = t, this.attrs[t] = 'T') }, r.prototype.onAttrVal = function (t) { const i = this.attrName || ''; i === 'style' || i === 'href' ? this.attrs[i] = n(t, !0) : i.includes('src') ? this.attrs[i] = this.getUrl(n(t, !0)) : i && (this.attrs[i] = t) }, r.prototype.onOpenTag = function (t) { + const i = Object.create(null); i.name = this.tagName, i.attrs = this.attrs, this.attrs = Object.create(null); const e = i.attrs; const s = this.stack[this.stack.length - 1]; const n = s ? s.children : this.nodes; const a = this.xml ? t : l.voidTags[i.name]; if (h[i.name] && (e.class = h[i.name] + (e.class ? ` ${e.class}` : '')), i.name === 'embed') { const r = e.src || ''; r.includes('.mp4') || r.includes('.3gp') || r.includes('.m3u8') || (e.type || '').includes('video') ? i.name = 'video' : (r.includes('.mp3') || r.includes('.wav') || r.includes('.aac') || r.includes('.m4a') || (e.type || '').includes('audio')) && (i.name = 'audio'), e.autostart && (e.autoplay = 'T'), e.controls = 'T' } if (i.name !== 'video' && i.name !== 'audio' || (i.name !== 'video' || e.id || (e.id = `v${f++}`), e.controls || e.autoplay || (e.controls = 'T'), i.src = [], e.src && (i.src.push(e.src), e.src = void 0), this.expose()), a) { + if (!this.hook(i) || l.ignoreTags[i.name]) { return void (i.name !== 'base' || this.options.domain ? i.name === 'source' && s && (s.name === 'video' || s.name === 'audio') && e.src && s.src.push(e.src) : this.options.domain = e.href) } const o = this.parseStyle(i); if (i.name === 'img') { + if (e.src && (e.src.includes('webp') && (i.webp = 'T'), e.src.includes('data:') && !e['original-src'] && (e.ignore = 'T'), !e.ignore || i.webp || e.src.includes('cloud://'))) { + for (let c = this.stack.length; c--;) { + const p = this.stack[c]; p.name !== 'table' || i.webp || e.src.includes('cloud://') || (!o.display || o.display.includes('inline') ? i.t = 'inline-block' : i.t = o.display, o.display = void 0); const u = p.attrs.style || ''; if (!u.includes('flex:') || u.includes('flex:0') || u.includes('flex: 0') || o.width && !(Number.parseInt(o.width) > 100)) { + if (u.includes('flex') && o.width === '100%') { + for (let g = c + 1; g < this.stack.length; g++) { const m = this.stack[g].attrs.style || ''; if (!m.includes(';width') && !m.includes(' width') && m.indexOf('width') !== 0) { o.width = ''; break } } + } + else { + u.includes('inline-block') && (o.width && o.width[o.width.length - 1] === '%' ? (p.attrs.style += `;max-width:${o.width}`, o.width = '') : p.attrs.style += ';max-width:100%') + } + } + else { o.width = '100% !important', o.height = ''; for (let v = c + 1; v < this.stack.length; v++) { this.stack[v].attrs.style = (this.stack[v].attrs.style || '').replace('inline-', '') } }p.name === 'a' ? i.a = p.attrs : p.c = 1 + }i.i = this.imgList.length; let y = e['original-src'] || e.src; if (this.imgList.includes(y)) { let b = y.indexOf('://'); if (b !== -1) { b += 3; for (var x = y.substr(0, b); b < y.length && y[b] !== '/'; b++) { x += Math.random() > 0.5 ? y[b].toUpperCase() : y[b] }x += y.substr(b), y = x } } this.imgList.push(y), i.t || (this.imgList._unloadimgs += 1) + }o.display === 'inline' && (o.display = ''), e.ignore && (o['max-width'] = o['max-width'] || '100%', e.style += ';-webkit-touch-callout:none'), Number.parseInt(o.width) > d && (o.height = void 0), isNaN(Number.parseInt(o.width)) || (i.w = 'T'), !isNaN(Number.parseInt(o.height)) && (!o.height.includes('%') || s && (s.attrs.style || '').includes('height')) && (i.h = 'T') + } + else if (i.name === 'svg') { + return n.push(i), this.stack.push(i), void this.popNode() + } for (const w in o) { o[w] && (e.style += ';'.concat(w, ':').concat(o[w].replace(' !important', ''))) }e.style = e.style.substr(1) || void 0 + } + else { + (i.name === 'pre' || (e.style || '').includes('white-space') && e.style.includes('pre')) && this.pre !== 2 && (this.pre = i.pre = 1), i.children = [], this.stack.push(i) + } n.push(i) +}, r.prototype.onCloseTag = function (t) { + t = this.xml ? t : t.toLowerCase(); let i; for (i = this.stack.length; i-- && this.stack[i].name !== t;) { ; } if (i !== -1) { + for (;this.stack.length > i;) { this.popNode() } + } + else if (t === 'p' || t === 'br') { const e = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes; e.push({ name: t, attrs: { class: h[t], style: this.tagStyle[t] } }) } +}, r.prototype.popNode = function () { + const i = this.stack.pop(); let e = i.attrs; const s = i.children; const n = this.stack[this.stack.length - 1]; const r = n ? n.children : this.nodes; if (!this.hook(i) || l.ignoreTags[i.name]) { return i.name === 'title' && s.length && s[0].type === 'text' && this.options.setTitle && wx.setNavigationBarTitle({ title: s[0].text }), void r.pop() } if (i.pre && this.pre !== 2) { this.pre = i.pre = void 0; for (let o = this.stack.length; o--;) { this.stack[o].pre && (this.pre = 1) } } if (i.name === 'svg') { + if (this.xml > 1) { return void this.xml-- } let h = ''; const c = e.style; return e.style = '', e.xmlns = 'http://www.w3.org/2000/svg', (function i(e) { + if (e.type === 'text') { return void (h += e.text) } const s = l.svgDict[e.name] || e.name; if (s === 'foreignObject') { + let n; const a = t(e.children || []); try { for (a.s(); !(n = a.n()).done;) { const r = n.value; if (r.attrs && !r.attrs.xmlns) { r.attrs.xmlns = 'http://www.w3.org/1999/xhtml'; break } } } + catch (t) { a.e(t) } + finally { a.f() } + }h += `<${s}`; for (const o in e.attrs) { const c = e.attrs[o]; c && (h += ' '.concat(l.svgDict[o] || o, '="').concat(c, '"')) } if (e.children) { h += '>'; for (let d = 0; d < e.children.length; d++) { i(e.children[d]) }h += `` } + else { + h += '/>' + } + }(i)), i.name = 'img', i.attrs = { src: `data:image/svg+xml;utf8,${h.replace(/#/g, '%23')}`, style: c, ignore: 'T' }, i.children = void 0, this.xml = !1, void (l.ignoreTags.style = !0) + } const p = {}; if (e.align && (i.name === 'table' ? e.align === 'center' ? p['margin-inline-start'] = p['margin-inline-end'] = 'auto' : p.float = e.align : p['text-align'] = e.align, e.align = void 0), e.dir && (p.direction = e.dir, e.dir = void 0), i.name === 'font' && (e.color && (p.color = e.color, e.color = void 0), e.face && (p['font-family'] = e.face, e.face = void 0), e.size)) { let u = Number.parseInt(e.size); isNaN(u) || (u < 1 ? u = 1 : u > 7 && (u = 7), p['font-size'] = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', 'xxx-large'][u - 1]), e.size = void 0 } if ((e.class || '').includes('align-center') && (p['text-align'] = 'center'), Object.assign(p, this.parseStyle(i)), i.name !== 'table' && Number.parseInt(p.width) > d && (p['max-width'] = '100%', p['box-sizing'] = 'border-box'), l.blockTags[i.name]) { + i.name = 'div' + } + else if (l.trustTags[i.name] || this.xml) { + if (i.name === 'a' || i.name === 'ad') { + this.expose() + } + else if (i.name === 'video' || i.name === 'audio') { + (p.height || '').includes('auto') && (p.height = void 0), i.children = void 0 + } + else if (i.name !== 'ul' && i.name !== 'ol' || !i.c) { + if (i.name === 'table') { + let f = Number.parseFloat(e.cellpadding); let g = Number.parseFloat(e.cellspacing); const m = Number.parseFloat(e.border); const v = p['border-color']; const y = p['border-style']; if (i.c && (isNaN(f) && (f = 2), isNaN(g) && (g = 2)), m && (e.style += ';border:'.concat(m, 'px ').concat(y || 'solid', ' ').concat(v || 'gray')), i.flag && i.c) { + i.flag = void 0, p.display = 'grid', p['border-collapse'] === 'collapse' && (p['border-collapse'] = void 0, g = 0), g ? (p['grid-gap'] = `${g}px`, p.padding = `${g}px`) : m && (e.style += ';border-left:0;border-top:0'); const b = []; const x = []; const w = []; const k = {}; !(function i(e) { + for (let s = 0; s < e.length; s++) { + if (e[s].name === 'tr') { + x.push(e[s]) + } + else if (e[s].name === 'colgroup') { + var n; let a = 1; const r = t(e[s].children || []); try { for (r.s(); !(n = r.n()).done;) { const o = n.value; if (o.name === 'col') { const l = o.attrs.style || ''; const h = l.indexOf('width') ? l.indexOf(';width') : 0; if (h !== -1) { let c = l.indexOf(';', h + 6); c === -1 && (c = l.length), b[a] = l.substring(h ? h + 7 : 6, c) }a += 1 } } } + catch (t) { r.e(t) } + finally { r.f() } + } + else { + i(e[s].children || []) + } + } + }(s)); for (let N = 1; N <= x.length; N++) { + for (var T = 1, O = 0; O < x[N - 1].children.length; O++) { + const j = x[N - 1].children[O]; if (j.name === 'td' || j.name === 'th') { + for (;k[`${N}.${T}`];) { T++ }j.c = 1; let S = j.attrs.style || ''; let C = S.indexOf('width') ? S.indexOf(';width') : 0; if (C !== -1) { let A = S.indexOf(';', C + 6); A === -1 && (A = S.length), j.attrs.colspan || (b[T] = S.substring(C ? C + 7 : 6, A)), S = S.substr(0, C) + S.substr(A) } if (S += ';display:flex;flex-direction:column', (C = S.indexOf('vertical-align')) !== -1) { const I = S.substr(C + 15, 10); I.includes('middle') ? S += ';justify-content:center' : I.includes('bottom') && (S += ';justify-content:flex-end') } + else { + S += ';justify-content:center' + } if ((C = S.indexOf('text-align')) !== -1) { const L = S.substr(C + 11, 10); L.includes('center') ? S += ';justify-content: center' : L.includes('right') && (S += ';justify-content: right') } if (S = `${(m ? ';border:'.concat(m, 'px ').concat(y || 'solid', ' ').concat(v || 'gray') + (g ? '' : ';border-right:0;border-bottom:0') : '') + (f ? ';padding:'.concat(f, 'px') : '')};${S}`, j.attrs.colspan && (S += ';grid-column-start:'.concat(T, ';grid-column-end:').concat(T + Number.parseInt(j.attrs.colspan)), j.attrs.rowspan || (S += ';grid-row-start:'.concat(N, ';grid-row-end:').concat(N + 1)), T += Number.parseInt(j.attrs.colspan) - 1), j.attrs.rowspan) { + S += ';grid-row-start:'.concat(N, ';grid-row-end:').concat(N + Number.parseInt(j.attrs.rowspan)), j.attrs.colspan || (S += ';grid-column-start:'.concat(T, ';grid-column-end:').concat(T + 1)); for (let z = 1; z < j.attrs.rowspan; z++) { + for (let U = 0; U < (j.attrs.colspan || 1); U++) { k[`${N + z}.${T - U}`] = 1 } + } + }S && (j.attrs.style = S), w.push(j), T++ + } + } if (N === 1) { for (var q = '', F = 1; F < T; F++) { q += `${b[F] ? b[F] : 'auto'} ` }p['grid-template-columns'] = q } + }i.children = w + } + else { + i.c && (p.display = 'table'), isNaN(g) || (p['border-spacing'] = `${g}px`), (m || f || i.c) && (function t(e) { for (let s = 0; s < e.length; s++) { const n = e[s]; i.c && (n.c = 1), n.name === 'th' || n.name === 'td' ? (m && (n.attrs.style = 'border:'.concat(m, 'px ').concat(y || 'solid', ' ').concat(v || 'gray', ';').concat(n.attrs.style || '')), f && (n.attrs.style = 'padding:'.concat(f, 'px;').concat(n.attrs.style || ''))) : n.children && t(n.children) } }(s)) + } if (this.options.scrollTable && !(e.style || '').includes('inline')) { const V = Object.assign({}, i); i.name = 'div', i.attrs = { style: 'overflow-x:auto;padding:1px' }, i.children = [V], e = V.attrs } + } + else if (i.name !== 'td' && i.name !== 'th' || !e.colspan && !e.rowspan) { if (i.name === 'ruby') { i.name = 'span'; for (let D = 0; D < s.length - 1; D++) { s[D].type === 'text' && s[D + 1].name === 'rt' && (s[D] = { name: 'span', attrs: { style: 'display:inline-block;text-align:center' }, children: [{ name: 'div', attrs: { style: `font-size:50%;${s[D + 1].attrs.style || ''}` }, children: s[D + 1].children }, s[D]] }, s.splice(D + 1, 1)) } } } + else { + for (let B = this.stack.length; B--;) { + if (this.stack[B].name === 'table') { this.stack[B].flag = 1; break } + } + } + } + else { const M = { a: 'lower-alpha', A: 'upper-alpha', i: 'lower-roman', I: 'upper-roman' }; M[e.type] && (e.style += `;list-style-type:${M[e.type]}`, e.type = void 0), i.c = 1; for (let P = s.length; P--;) { s[P].name === 'li' && (s[P].c = 1) } } + } + else { + i.name = 'span' + } if ((p.display || '').includes('flex') && !i.c) { + for (let Z = s.length; Z--;) { const _ = s[Z]; _.f && (_.attrs.style = (_.attrs.style || '') + _.f, _.f = void 0) } + } const E = n && ((n.attrs.style || '').includes('flex') || (n.attrs.style || '').includes('grid')) && !i.c && !(p.display || '').includes('inline'); E && (i.f = ';max-width:100%'), s.length >= 50 && i.c && !(p.display || '').includes('flex') && a(s); for (const G in p) { + if (p[G]) { const W = ';'.concat(G, ':').concat(p[G].replace(' !important', '')); E && (G.includes('flex') && G !== 'flex-direction' || G === 'align-self' || G.includes('grid') || p[G][0] === '-' || G.includes('width') && W.includes('%')) ? (i.f += W, G === 'width' && (e.style += ';width:100%')) : e.style += W } + }e.style = e.style.substr(1) || void 0 +}, r.prototype.onText = function (t) { + if (!this.pre) { + for (var i, e = '', s = 0, a = t.length; s < a; s++) { u[t[s]] ? (e[e.length - 1] !== ' ' && (e += ' '), t[s] !== '\n' || i || (i = !0)) : e += t[s] } if (e === ' ' && i) { return } t = e + } const r = Object.create(null); if (r.type = 'text', r.text = n(t), this.hook(r)) { this.options.selectable === 'force' && p.includes('iOS') && !wx.canIUse('rich-text.user-select') && this.expose(); (this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes).push(r) } +}, o.prototype.parse = function (t) { this.content = t || '', this.i = 0, this.start = 0, this.state = this.text; for (let i = this.content.length; this.i !== -1 && this.i < i;) { this.state() } }, o.prototype.checkClose = function (t) { const i = this.content[this.i] === '/'; return !!(this.content[this.i] === '>' || i && this.content[this.i + 1] === '>') && (t && this.handler[t](this.content.substring(this.start, this.i)), this.i += i ? 2 : 1, this.start = this.i, this.handler.onOpenTag(i), this.handler.tagName === 'script' ? (this.i = this.content.indexOf('= 'a' && t <= 'z' || t >= 'A' && t <= 'Z') { + this.start !== this.i && this.handler.onText(this.content.substring(this.start, this.i)), this.start = ++this.i, this.state = this.tagName + } + else if (t === '/' || t === '!' || t === '?') { + this.start !== this.i && this.handler.onText(this.content.substring(this.start, this.i)); const i = this.content[this.i + 2]; if (t === '/' && (i >= 'a' && i <= 'z' || i >= 'A' && i <= 'Z')) { return this.i += 2, this.start = this.i, void (this.state = this.endTag) } let e = '--\x3E'; t === '!' && this.content[this.i + 2] === '-' && this.content[this.i + 3] === '-' || (e = '>'), this.i = this.content.indexOf(e, this.i), this.i !== -1 && (this.i += e.length, this.start = this.i) + } + else { + this.i++ + } +}, o.prototype.tagName = function () { + if (u[this.content[this.i]]) { for (this.handler.onTagName(this.content.substring(this.start, this.i)); u[this.content[++this.i]];) { ; } this.i < this.content.length && !this.checkClose() && (this.start = this.i, this.state = this.attrName) } + else { + this.checkClose('onTagName') || this.i++ + } +}, o.prototype.attrName = function () { + let t = this.content[this.i]; if (u[t] || t === '=') { + this.handler.onAttrName(this.content.substring(this.start, this.i)); for (let i = t === '=', e = this.content.length; ++this.i < e;) { + if (t = this.content[this.i], !u[t]) { + if (this.checkClose()) { return } if (i) { return this.start = this.i, void (this.state = this.attrVal) } if (this.content[this.i] !== '=') { return this.start = this.i, void (this.state = this.attrName) } i = !0 + } + } + } + else { + this.checkClose('onAttrName') || this.i++ + } +}, o.prototype.attrVal = function () { + const t = this.content[this.i]; const i = this.content.length; if (t === '"' || t === '\'') { + if (this.start = ++this.i, this.i = this.content.indexOf(t, this.i), this.i === -1) { return } this.handler.onAttrVal(this.content.substring(this.start, this.i)) + } + else { + for (;this.i < i; this.i++) { + if (u[this.content[this.i]]) { this.handler.onAttrVal(this.content.substring(this.start, this.i)); break } if (this.checkClose('onAttrVal')) { return } + } + } for (;u[this.content[++this.i]];) { ; } this.i < i && !this.checkClose() && (this.start = this.i, this.state = this.attrName) +}, o.prototype.endTag = function () { + const t = this.content[this.i]; if (u[t] || t === '>' || t === '/') { + if (this.handler.onCloseTag(this.content.substring(this.start, this.i)), t !== '>' && (this.i = this.content.indexOf('>', this.i), this.i === -1)) { return } this.start = ++this.i, this.state = this.text + } + else { + this.i++ + } +}, module.exports = r diff --git a/apps/taro-app/src/group.js b/apps/taro-app/src/group.js index 4ebe4cf7..2de90964 100644 --- a/apps/taro-app/src/group.js +++ b/apps/taro-app/src/group.js @@ -1,126 +1,126 @@ module.exports = { - "group": { - "General": [ - "button", - "dropdown", - "loading", - "mask", - "swap" + group: { + 'General': [ + 'button', + 'dropdown', + 'loading', + 'mask', + 'swap', ], - "Layout": [ - "join", - "indicator", - "divider", - "drawer", - "footer", - "hero", - "stack" + 'Layout': [ + 'join', + 'indicator', + 'divider', + 'drawer', + 'footer', + 'hero', + 'stack', ], - "Navigation": [ - "bottom-navigation", - "breadcrumbs", - "link", - "menu", - "navbar", - "steps", - "tab" + 'Navigation': [ + 'bottom-navigation', + 'breadcrumbs', + 'link', + 'menu', + 'navbar', + 'steps', + 'tab', ], - "Data Entry": [ - "checkbox", - "file-input", - "input", - "radio", - "range", - "rating", - "select", - "textarea", - "toggle" + 'Data Entry': [ + 'checkbox', + 'file-input', + 'input', + 'radio', + 'range', + 'rating', + 'select', + 'textarea', + 'toggle', ], - "Data Display": [ - "avatar", - "badge", - "card", - "carousel", - "chat", - "collapse", - "countdown", - "diff", - "kbd", - "stat", - "table", - "timeline" + 'Data Display': [ + 'avatar', + 'badge', + 'card', + 'carousel', + 'chat', + 'collapse', + 'countdown', + 'diff', + 'kbd', + 'stat', + 'table', + 'timeline', ], - "Feedback": [ - "alert", - "progress", - "radial-progress", - "skeleton", - "toast", - "tooltip" + 'Feedback': [ + 'alert', + 'progress', + 'radial-progress', + 'skeleton', + 'toast', + 'tooltip', ], - "Other": [] + 'Other': [], }, - "i18n": { - "overview": "组件总览", - "General": "通用", - "button": "按钮", - "loading": "加载动画", - "mask": "遮罩", - "Layout": "布局", - "Navigation": "导航", - "link": "链接", - "Data Entry": "数据录入", - "checkbox": "多选框", - "input": "输入框", - "radio": "单选框", - "range": "滑块", - "select": "选择器", - "textarea": "多行文本框", - "toggle": "开关", - "Data Display": "数据展示", - "avatar": "头像", - "badge": "徽章", - "chat": "聊天气泡", - "progress": "进度条", - "Feedback": "反馈", - "alert": "警告提示", - "Other": "其他", - "Class Table": "默认类名表格", - "Demo and Playground": "样例和演示", - "Playground": "演示", - "Demo": "样例", - "Example": "样例", - "Css Schema": "Css 结构", - "Go to Storybook": "前往 Storybook", - "skeleton": "骨架屏", - "table": "表格", - "radial-progress": "圆形进度条", - "countdown": "计数", - "diff": "差异", - "kbd": "键盘按键", - "tooltip": "文字提示", - "toast": "轻提示", - "steps": "步骤条", - "collapse": "折叠面板", - "join": "分组容器", - "indicator": "标识", - "divider": "分隔线", - "stack": "堆叠", - "tab": "选项卡", - "dropdown": "下拉菜单", - "swap": "交换", - "drawer": "抽屉", - "footer": "页脚", - "hero": "", - "bottom-navigation": "底部导航", - "breadcrumbs": "面包屑", - "menu": "菜单", - "navbar": "导航栏", - "file-input": "文件上传", - "rating": "打分", - "card": "卡片", - "carousel": "轮播", - "stat": "统计", - "timeline": "时间轴" - } -} \ No newline at end of file + i18n: { + 'overview': '组件总览', + 'General': '通用', + 'button': '按钮', + 'loading': '加载动画', + 'mask': '遮罩', + 'Layout': '布局', + 'Navigation': '导航', + 'link': '链接', + 'Data Entry': '数据录入', + 'checkbox': '多选框', + 'input': '输入框', + 'radio': '单选框', + 'range': '滑块', + 'select': '选择器', + 'textarea': '多行文本框', + 'toggle': '开关', + 'Data Display': '数据展示', + 'avatar': '头像', + 'badge': '徽章', + 'chat': '聊天气泡', + 'progress': '进度条', + 'Feedback': '反馈', + 'alert': '警告提示', + 'Other': '其他', + 'Class Table': '默认类名表格', + 'Demo and Playground': '样例和演示', + 'Playground': '演示', + 'Demo': '样例', + 'Example': '样例', + 'Css Schema': 'Css 结构', + 'Go to Storybook': '前往 Storybook', + 'skeleton': '骨架屏', + 'table': '表格', + 'radial-progress': '圆形进度条', + 'countdown': '计数', + 'diff': '差异', + 'kbd': '键盘按键', + 'tooltip': '文字提示', + 'toast': '轻提示', + 'steps': '步骤条', + 'collapse': '折叠面板', + 'join': '分组容器', + 'indicator': '标识', + 'divider': '分隔线', + 'stack': '堆叠', + 'tab': '选项卡', + 'dropdown': '下拉菜单', + 'swap': '交换', + 'drawer': '抽屉', + 'footer': '页脚', + 'hero': '', + 'bottom-navigation': '底部导航', + 'breadcrumbs': '面包屑', + 'menu': '菜单', + 'navbar': '导航栏', + 'file-input': '文件上传', + 'rating': '打分', + 'card': '卡片', + 'carousel': '轮播', + 'stat': '统计', + 'timeline': '时间轴', + }, +} diff --git a/apps/taro-app/src/index.html b/apps/taro-app/src/index.html index d8ad268b..6f1250d9 100644 --- a/apps/taro-app/src/index.html +++ b/apps/taro-app/src/index.html @@ -1,17 +1,19 @@ - + - - - - - - - - - taro-app - - - -
- + + + + + + + + + taro-app + + + +
+ diff --git a/apps/taro-app/src/pages/index/component.config.ts b/apps/taro-app/src/pages/index/component.config.ts index d6c23355..8a1bd02f 100644 --- a/apps/taro-app/src/pages/index/component.config.ts +++ b/apps/taro-app/src/pages/index/component.config.ts @@ -1,4 +1,4 @@ export default definePageConfig({ navigationBarTitleText: '组件', - navigationStyle: 'custom' + navigationStyle: 'custom', }) diff --git a/apps/taro-app/src/pages/index/component.tsx b/apps/taro-app/src/pages/index/component.tsx index 125b3096..a1c7c5e8 100644 --- a/apps/taro-app/src/pages/index/component.tsx +++ b/apps/taro-app/src/pages/index/component.tsx @@ -1,12 +1,12 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' -// import { useLoad } from '@tarojs/taro' -import React, { useState, useMemo } from 'react' -import Taro, { useLoad } from '@tarojs/taro' -import { upperFirst } from 'lodash-es' -import ThemeProvider from '@/components/ThemeProvider' import map from '@/components/map' import Navbar from '@/components/Navbar' import ThemeButton from '@/components/ThemeButton' +import ThemeProvider from '@/components/ThemeProvider' +import { View } from '@tarojs/components' +import Taro, { useLoad } from '@tarojs/taro' +import { upperFirst } from 'lodash-es' +// import { useLoad } from '@tarojs/taro' +import React, { useMemo, useState } from 'react' export default function Index() { const [com, setCom] = useState('') @@ -15,7 +15,7 @@ export default function Index() { if (params.id) { const t = upperFirst(params.id) Taro.setNavigationBarTitle({ - title: t + title: t, }) setTitle(t) setCom(params.id) diff --git a/apps/taro-app/src/pages/index/doc.config.ts b/apps/taro-app/src/pages/index/doc.config.ts index f6397b4a..29d64fc8 100644 --- a/apps/taro-app/src/pages/index/doc.config.ts +++ b/apps/taro-app/src/pages/index/doc.config.ts @@ -1,4 +1,4 @@ export default definePageConfig({ navigationBarTitleText: '文档', - navigationStyle: 'custom' + navigationStyle: 'custom', }) diff --git a/apps/taro-app/src/pages/index/doc.tsx b/apps/taro-app/src/pages/index/doc.tsx index 9f6dba62..8499f94a 100644 --- a/apps/taro-app/src/pages/index/doc.tsx +++ b/apps/taro-app/src/pages/index/doc.tsx @@ -1,62 +1,62 @@ -import { View, Text, Button, ViewProps } from '@tarojs/components' +import levelI18n from '#docs/_meta.zh-CN.json' -import ThemeProvider from '@/components/ThemeProvider' +import contribute from '#docs/contribute.zh-CN.mdx' +import core from '#docs/core.zh-CN.mdx' +import level2Core18n from '#docs/core/_meta.zh-CN.json' +import composeClass from '#docs/core/composeClass.zh-CN.mdx' +import extraComponent from '#docs/core/extraComponent.zh-CN.mdx' +import override from '#docs/core/override.zh-CN.mdx' +import preset from '#docs/core/preset.zh-CN.mdx' +import theme from '#docs/core/theme.zh-CN.mdx' +import variant from '#docs/core/variant.zh-CN.mdx' import Navbar from '@/components/Navbar' import ThemeButton from '@/components/ThemeButton' +import ThemeProvider from '@/components/ThemeProvider' +import { Button, View } from '@tarojs/components' import Taro, { useLoad } from '@tarojs/taro' import { useMemo, useState } from 'react' // https://webpack.js.org/guides/asset-modules/ import introduction from '#docs/introduction.zh-CN.mdx' -import contribute from '#docs/contribute.zh-CN.mdx' -import core from '#docs/core.zh-CN.mdx' import options from '#docs/options.zh-CN.mdx' + import usage from '#docs/usage.zh-CN.mdx' -import levelI18n from '#docs/_meta.zh-CN.json' import level2Usage18n from '#docs/usage/_meta.zh-CN.json' -import level2Core18n from '#docs/core/_meta.zh-CN.json' import cli from '#docs/usage/cli.zh-CN.mdx' import mp from '#docs/usage/mp.zh-CN.mdx' import nodejs from '#docs/usage/nodejs.zh-CN.mdx' import tailwindcss from '#docs/usage/tailwindcss.zh-CN.mdx' -import composeClass from '#docs/core/composeClass.zh-CN.mdx' -import extraComponent from '#docs/core/extraComponent.zh-CN.mdx' -import override from '#docs/core/override.zh-CN.mdx' -import preset from '#docs/core/preset.zh-CN.mdx' -import theme from '#docs/core/theme.zh-CN.mdx' -import variant from '#docs/core/variant.zh-CN.mdx' - const map = { introduction, - usage + usage, } const langMap = { - ...levelI18n + ...levelI18n, } for (const [k, v] of Object.entries({ cli, tailwindcss, nodejs, - mp + mp, })) { map[['usage', k].join('.')] = v langMap[['usage', k].join('.')] = level2Usage18n[k] } -map['core'] = core +map.core = core for (const [k, v] of Object.entries({ variant, theme, override, preset, composeClass, - extraComponent + extraComponent, })) { map[['core', k].join('.')] = v langMap[['core', k].join('.')] = level2Core18n[k] } -map['contribute'] = contribute -map['options'] = options +map.contribute = contribute +map.options = options const kkkkkkks = Object.keys(map) // orderBy() @@ -64,10 +64,10 @@ export default function Index() { const [id, setId] = useState('') const title = useMemo(() => { const t = langMap[id] ?? '' - t && - Taro.setNavigationBarTitle({ - title: t - }) + t + && Taro.setNavigationBarTitle({ + title: t, + }) return t }, [id]) @@ -95,7 +95,7 @@ export default function Index() { return { current: id, prev, - next + next, } }, [id]) // console.log(current) @@ -104,7 +104,7 @@ export default function Index() { setId(prev) Taro.pageScrollTo({ scrollTop: 0, - duration: 300 + duration: 300, }) } @@ -112,7 +112,7 @@ export default function Index() { setId(next) Taro.pageScrollTo({ scrollTop: 0, - duration: 300 + duration: 300, }) } return ( @@ -135,7 +135,9 @@ export default function Index() { {next && ( )} diff --git a/apps/taro-app/src/pages/index/index.config.ts b/apps/taro-app/src/pages/index/index.config.ts index e1b09914..d1787613 100644 --- a/apps/taro-app/src/pages/index/index.config.ts +++ b/apps/taro-app/src/pages/index/index.config.ts @@ -1,4 +1,4 @@ export default definePageConfig({ navigationBarTitleText: '首页', - navigationStyle: 'custom' + navigationStyle: 'custom', }) diff --git a/apps/taro-app/src/pages/index/index.tsx b/apps/taro-app/src/pages/index/index.tsx index 9d79d34f..62bee94f 100644 --- a/apps/taro-app/src/pages/index/index.tsx +++ b/apps/taro-app/src/pages/index/index.tsx @@ -1,29 +1,29 @@ -import { View, Text } from '@tarojs/components' -import Taro from '@tarojs/taro' -import { upperFirst } from 'lodash-es' -import { ReactNode, useState } from 'react' -import ThemeProvider from '@/components/ThemeProvider' -import { group, i18n } from '../../group' -import ThemeButton from '@/components/ThemeButton' -import Navbar from '@/components/Navbar' +import type { ReactNode } from 'react' +import levelI18n from '#docs/_meta.zh-CN.json' +import level2Core18n from '#docs/core/_meta.zh-CN.json' +import level2Usage18n from '#docs/usage/_meta.zh-CN.json' import Footer from '@/components/Footer' import HomeTitle from '@/components/HomeTitle' +import Navbar from '@/components/Navbar' import Tabbar from '@/components/Tabbar' +import ThemeButton from '@/components/ThemeButton' +import ThemeProvider from '@/components/ThemeProvider' import { useIndexTabbar } from '@/store/index' +import { View } from '@tarojs/components' +import Taro from '@tarojs/taro' import { cx } from 'class-variance-authority' -import levelI18n from '#docs/_meta.zh-CN.json' -import level2Usage18n from '#docs/usage/_meta.zh-CN.json' -import level2Core18n from '#docs/core/_meta.zh-CN.json' +import { upperFirst } from 'lodash-es' +import { group, i18n } from '../../group' const aliasMap = { range: 'Slider', - toggle: 'Switch' + toggle: 'Switch', } function getAlias(componentName: string) { const x = aliasMap[componentName] if (x) { - return '/' + x + return `/${x}` } return '' } @@ -37,14 +37,14 @@ function mapChildItem(children: [string, string][], x: string) { key={y} onClick={() => { Taro.navigateTo({ - url: 'doc?id=' + [x, y].join('.') + url: `doc?id=${[x, y].join('.')}`, }) }} className={cx( ' flex items-center justify-between border-b border-solid py-1 pl-5 pr-3.5 text-sm', idx !== children.length - 1 ? 'border-slate-200/50 dark:border-sky-200/[0.15]' - : 'border-transparent' + : 'border-transparent', )} hoverClass="bg-slate-300/50 dark:bg-sky-500/50" > @@ -81,7 +81,7 @@ function DocsIndex() { { Taro.navigateTo({ - url: 'doc?id=' + x + url: `doc?id=${x}`, }) }} className=" flex items-center justify-between py-2.5 pl-5 pr-3.5" @@ -110,11 +110,11 @@ function CodeIndex() { {i18n[groupName]} - + , ) // space-y-3 const res: ReactNode[] = [] @@ -129,16 +129,18 @@ function CodeIndex() { key={componentName} onClick={() => { Taro.navigateTo({ - url: 'component?id=' + componentName + url: `component?id=${componentName}`, }) }} > {upperFirst(componentName)} - {getAlias(componentName)} {i18n[componentName]} + {getAlias(componentName)} + {' '} + {i18n[componentName]} -
+
, ) } acc.push({res}) @@ -146,7 +148,7 @@ function CodeIndex() { return acc }, - [] + [], )} ) @@ -161,7 +163,7 @@ export default function Index() { className="flex h-full items-center pl-4 text-center text-lg" onClick={() => { Taro.setClipboardData({ - data: 'https://github.com/sonofmagic/icestack' + data: 'https://github.com/sonofmagic/icestack', }) }} > diff --git a/apps/taro-app/src/store/index.ts b/apps/taro-app/src/store/index.ts index 62bdde7b..866f9807 100644 --- a/apps/taro-app/src/store/index.ts +++ b/apps/taro-app/src/store/index.ts @@ -1,5 +1,5 @@ -import { create } from 'zustand' import Taro from '@tarojs/taro' +import { create } from 'zustand' export const systemInfo = Taro.getSystemInfoSync() export interface IThemeState { @@ -15,10 +15,9 @@ const initMode: IThemeState['mode'] = Taro.getStorageSync(themeKey) || 'light' // console.log(initMode, typeof initMode, initMode === '') export const useThemeStore = create((set) => { - function setMode(mode: IThemeState['mode']) { set({ - mode + mode, }) Taro.setStorageSync(themeKey, mode) } @@ -31,10 +30,10 @@ export const useThemeStore = create((set) => { const mode = state.mode === 'light' ? 'dark' : 'light' Taro.setStorageSync(themeKey, mode) return { - mode + mode, } }) - } + }, } }) @@ -42,16 +41,15 @@ export const useIndexTabbar = create<{ index: number setIndex: (index: number) => void }>((set) => { + function setIndex(index: number) { + set({ + index, + }) + } - function setIndex(index: number) { - set({ - index - }) - } + return { + index: 0, + setIndex, - return { - index: 0, - setIndex, - - } -}) + } + }) diff --git a/apps/taro-app/src/table.js b/apps/taro-app/src/table.js index 6c043150..54f44c2d 100644 --- a/apps/taro-app/src/table.js +++ b/apps/taro-app/src/table.js @@ -1,759 +1,815 @@ module.exports = { - "alert": { - "base": [ - "alert" - ], - "styled": [ - "alert-primary", - "alert-success", - "alert-warning", - "alert-error", - "alert-neutral" - ], - "utils": [] - }, - "avatar": { - "base": [ - "avatar", - "placeholder" - ], - "styled": [ - "avatar-group" - ], - "utils": [] - }, - "badge": { - "base": [ - "badge" - ], - "styled": [ - "badge-primary", - "badge-success", - "badge-warning", - "badge-error", - "badge-neutral", - "badge-ghost", - "badge-outline" - ], - "utils": [ - "badge-xs", - "badge-sm", - "badge-md", - "badge-lg" - ] - }, - "button": { - "base": [ - "btn", - "btn-disabled" - ], - "styled": [ - "btn-focus-visible", - "btn-hover", - "btn-active", - "btn-primary", - "btn-success", - "btn-warning", - "btn-error", - "btn-neutral", - "glass", - "btn-ghost", - "btn-link", - "btn-outline" - ], - "utils": [ - "btn-xs", - "btn-sm", - "btn-md", - "btn-lg", - "btn-wide", - "btn-block", - "btn-square", - "btn-circle" - ] - }, - "chat": { - "base": [ - "chat", - "chat-image", - "chat-header", - "chat-footer", - "chat-bubble", - "chat-start", - "chat-end" - ], - "styled": [ - "chat-bubble-primary", - "chat-bubble-success", - "chat-bubble-warning", - "chat-bubble-error", - "chat-bubble-neutral" - ], - "utils": [] - }, - "checkbox": { - "base": [ - "checkbox" - ], - "styled": [ - "checkbox-primary", - "checkbox-success", - "checkbox-warning", - "checkbox-error", - "checkbox-neutral" - ], - "utils": [ - "checkbox-xs", - "checkbox-sm", - "checkbox-md", - "checkbox-lg" - ] - }, - "input": { - "base": [ - "input" - ], - "styled": [ - "input-bordered", - "input-ghost", - "input-primary", - "input-success", - "input-warning", - "input-error", - "input-neutral", - "input-disabled" - ], - "utils": [ - "input-xs", - "input-sm", - "input-md", - "input-lg" - ] - }, - "link": { - "base": [ - "link", - "link-hover" - ], - "styled": [ - "link-primary", - "link-success", - "link-warning", - "link-error", - "link-neutral" - ], - "utils": [] - }, - "progress": { - "base": [ - "progress" - ], - "styled": [ - "progress-primary", - "progress-success", - "progress-warning", - "progress-error", - "progress-neutral" - ], - "utils": [] - }, - "radio": { - "base": [ - "radio" - ], - "styled": [ - "radio-primary", - "radio-success", - "radio-warning", - "radio-error", - "radio-neutral" - ], - "utils": [ - "radio-xs", - "radio-sm", - "radio-md", - "radio-lg" - ] - }, - "range": { - "base": [ - "range" - ], - "styled": [ - "range-primary", - "range-success", - "range-warning", - "range-error", - "range-neutral" - ], - "utils": [ - "range-xs", - "range-sm", - "range-md", - "range-lg" - ] - }, - "select": { - "base": [ - "select" - ], - "styled": [ - "select-bordered", - "select-ghost", - "select-primary", - "select-success", - "select-warning", - "select-error", - "select-neutral", - "select-disabled", - "select-multiple" - ], - "utils": [ - "select-xs", - "select-sm", - "select-md", - "select-lg" - ] - }, - "textarea": { - "base": [ - "textarea" - ], - "styled": [ - "textarea-bordered", - "textarea-ghost", - "textarea-primary", - "textarea-success", - "textarea-warning", - "textarea-error", - "textarea-neutral", - "textarea-disabled" - ], - "utils": [ - "textarea-xs", - "textarea-sm", - "textarea-md", - "textarea-lg" - ] - }, - "toggle": { - "base": [ - "toggle" - ], - "styled": [ - "toggle-primary", - "toggle-success", - "toggle-warning", - "toggle-error", - "toggle-neutral" - ], - "utils": [ - "toggle-xs", - "toggle-sm", - "toggle-md", - "toggle-lg" - ] - }, - "loading": { - "base": [ - "loading" - ], - "styled": [], - "utils": [ - "loading-xs", - "loading-sm", - "loading-md", - "loading-lg", - "loading-audio", - "loading-ball-triangle", - "loading-bars", - "loading-circles", - "loading-grid", - "loading-hearts", - "loading-oval", - "loading-puff", - "loading-rings", - "loading-spinning-circles", - "loading-tail-spin", - "loading-three-dots" - ] - }, - "mask": { - "base": [ - "mask", - "mask-half-1", - "mask-half-2" - ], - "styled": [], - "utils": [ - "mask-squircle", - "mask-decagon", - "mask-diamond", - "mask-heart", - "mask-hexagon", - "mask-hexagon-2", - "mask-circle", - "mask-parallelogram", - "mask-parallelogram-2", - "mask-parallelogram-3", - "mask-parallelogram-4", - "mask-pentagon", - "mask-square", - "mask-star", - "mask-star-2", - "mask-triangle", - "mask-triangle-2", - "mask-triangle-3", - "mask-triangle-4" - ] - }, - "table": { - "base": [ - "table", - "table-pin-rows", - "table-pin-cols", - "table-zebra" - ], - "styled": [ - "active", - "hover", - "table-zebra-zebra" - ], - "utils": [ - "table-xs", - "table-sm", - "table-md", - "table-lg" - ] - }, - "skeleton": { - "base": [ - "skeleton" - ], - "styled": [], - "utils": [ - "skeleton-title", - "skeleton-paragraph", - "skeleton-avatar" - ] - }, - "form": { - "base": [ - "form-control", - "label" - ], - "styled": [ - "label-text", - "label-text-alt" - ], - "utils": [] - }, - "radial-progress": { - "base": [ - "radial-progress" - ], - "styled": [], - "utils": [] - }, - "countdown": { - "base": [ - "countdown" - ], - "styled": [], - "utils": [] - }, - "diff": { - "base": [ - "diff", - "diff-resizer", - "diff-item-1", - "diff-item-2" - ], - "styled": [], - "utils": [] - }, - "kbd": { - "base": [ - "kbd" - ], - "styled": [], - "utils": [ - "kbd-xs", - "kbd-sm", - "kbd-md", - "kbd-lg" - ] - }, - "tooltip": { - "base": [ - "tooltip", - "tooltip-top", - "tooltip-bottom", - "tooltip-left", - "tooltip-right" - ], - "styled": [ - "tooltip-primary", - "tooltip-success", - "tooltip-warning", - "tooltip-error", - "tooltip-neutral", - "tooltip-open" - ], - "utils": [] - }, - "toast": { - "base": [ - "toast" - ], - "styled": [], - "utils": [ - "toast", - "toast-start", - "toast-center", - "toast-end", - "toast-bottom", - "toast-middle", - "toast-top" - ] - }, - "steps": { - "base": [ - "steps", - "step" - ], - "styled": [ - "step-primary", - "step-success", - "step-warning", - "step-error", - "step-neutral" - ], - "utils": [ - "steps-horizontal", - "step", - "steps-vertical" - ] - }, - "collapse": { - "base": [ - "collapse", - "collapse-title", - "collapse-content", - "collapse-open", - "collapse-close" - ], - "styled": [ - "collapse-arrow", - "collapse-plus" - ], - "utils": [] - }, - "join": { - "base": [ - "join", - "join-item", - "dropdown" - ], - "styled": [], - "utils": [ - "join", - "join-vertical", - "join-item", - "join-horizontal" - ] - }, - "indicator": { - "base": [ - "indicator", - "indicator-item" - ], - "styled": [ - "indicator-start", - "indicator-center", - "indicator-end", - "indicator-bottom", - "indicator-middle", - "indicator-top" - ], - "utils": [] - }, - "divider": { - "base": [ - "divider", - "divider-start", - "divider-end" - ], - "styled": [ - "divider-primary", - "divider-success", - "divider-warning", - "divider-error", - "divider-neutral" - ], - "utils": [ - "divider-horizontal", - "divider-vertical" - ] - }, - "stack": { - "base": [ - "stack" - ], - "styled": [], - "utils": [] - }, - "tab": { - "base": [ - "tabs", - "tabs-lifted", - "tab-content", - "tab", - "tab-active" - ], - "styled": [ - "tab-disabled", - "tabs-bordered", - "tabs-boxed" - ], - "utils": [ - "tabs-md", - "tab", - "tabs-lg", - "tabs-sm", - "tabs-xs" - ] - }, - "dropdown": { - "base": [ - "dropdown", - "dropdown-content", - "dropdown-end", - "dropdown-left", - "dropdown-right", - "dropdown-bottom", - "dropdown-top", - "dropdown-open", - "dropdown-hover" - ], - "styled": [], - "utils": [] - }, - "swap": { - "base": [ - "swap", - "swap-on", - "swap-indeterminate", - "swap-off", - "swap-active" - ], - "styled": [ - "swap-rotate", - "swap-flip" - ], - "utils": [] - }, - "card": { - "base": [ - "card", - "card-body", - "card-actions", - "image-full" - ], - "styled": [ - "bordered", - "card-bordered", - "compact", - "card-title" - ], - "utils": [ - "card-side", - "card-compact", - "card-body", - "card-title", - "card-normal" - ] - }, - "carousel": { - "base": [ - "carousel", - "carousel-vertical", - "carousel-item", - "carousel-center", - "carousel-end" - ], - "styled": [], - "utils": [] - }, - "stat": { - "base": [ - "stats", - "stat", - "stat-figure", - "stat-title", - "stat-value", - "stat-desc", - "stat-actions" - ], - "styled": [], - "utils": [ - "stats-horizontal", - "stats-vertical" - ] - }, - "timeline": { - "base": [ - "timeline", - "timeline-start", - "timeline-middle", - "timeline-end" - ], - "styled": [ - "timeline-box" - ], - "utils": [ - "timeline-vertical", - "timeline-compact", - "timeline-horizontal", - "timeline-start", - "timeline-end", - "timeline-snap-icon", - "timeline-middle" - ] - }, - "breadcrumbs": { - "base": [ - "breadcrumbs" - ], - "styled": [], - "utils": [] - }, - "bottom-navigation": { - "base": [ - "btm-nav" - ], - "styled": [ - "active", - "disabled", - "label" - ], - "utils": [ - "btm-nav-xs", - "active", - "btm-nav-label", - "btm-nav-sm", - "btm-nav-md", - "btm-nav-lg" - ] - }, - "menu": { - "base": [ - "menu", - "menu-title", - "disabled", - "menu-dropdown", - "menu-dropdown-show", - "badge" - ], - "styled": [ - "active", - "focus", - "menu-dropdown-toggle" - ], - "utils": [ - "menu-horizontal", - "menu-title", - "menu-vertical", - "menu-xs", - "menu-sm", - "menu-md", - "menu-lg" - ] - }, - "navbar": { - "base": [ - "navbar", - "navbar-start", - "navbar-center", - "navbar-end" - ], - "styled": [], - "utils": [] - }, - "file-input": { - "base": [ - "file-input" - ], - "styled": [ - "file-input-bordered", - "file-input-ghost", - "file-input-primary", - "file-input-success", - "file-input-warning", - "file-input-error", - "file-input-neutral", - "file-input-disabled" - ], - "utils": [ - "file-input-xs", - "file-input-sm", - "file-input-md", - "file-input-lg" - ] - }, - "rating": { - "base": [ - "rating" - ], - "styled": [ - "rating-hidden", - "rating-half" - ], - "utils": [ - "rating-xs", - "rating-sm", - "rating-md", - "rating-lg", - "rating-half", - "rating-hidden" - ] - }, - "drawer": { - "base": [ - "drawer", - "drawer-content", - "drawer-side", - "drawer-overlay", - "drawer-toggle", - "drawer-end" - ], - "styled": [ - "drawer-button" - ], - "utils": [ - "drawer-open", - "drawer-toggle", - "drawer-side", - "drawer-overlay" - ] - }, - "footer": { - "base": [ - "footer", - "footer-center" - ], - "styled": [ - "footer-title" - ], - "utils": [] - }, - "hero": { - "base": [ - "hero", - "hero-overlay", - "hero-content" - ], - "styled": [], - "utils": [] - } -} \ No newline at end of file + 'alert': { + base: [ + 'alert', + ], + styled: [ + 'alert-primary', + 'alert-success', + 'alert-warning', + 'alert-error', + 'alert-neutral', + 'alert-secondary', + 'alert-accent', + 'alert-info', + ], + utils: [], + }, + 'avatar': { + base: [ + 'avatar', + 'placeholder', + ], + styled: [ + 'avatar-group', + ], + utils: [], + }, + 'badge': { + base: [ + 'badge', + ], + styled: [ + 'badge-primary', + 'badge-success', + 'badge-warning', + 'badge-error', + 'badge-neutral', + 'badge-secondary', + 'badge-accent', + 'badge-info', + 'badge-ghost', + 'badge-outline', + ], + utils: [ + 'badge-xs', + 'badge-sm', + 'badge-md', + 'badge-lg', + ], + }, + 'button': { + base: [ + 'btn', + 'btn-disabled', + 'btn-square', + 'btn-circle', + ], + styled: [ + 'btn-focus-visible', + 'btn-hover', + 'btn-primary', + 'btn-active', + 'btn-success', + 'btn-warning', + 'btn-error', + 'btn-neutral', + 'btn-secondary', + 'btn-accent', + 'btn-info', + 'glass', + 'btn-ghost', + 'btn-link', + 'btn-outline', + ], + utils: [ + 'btn-xs', + 'btn-sm', + 'btn-md', + 'btn-lg', + 'btn-wide', + 'btn-block', + 'btn-square', + 'btn-circle', + ], + }, + 'chat': { + base: [ + 'chat', + 'chat-image', + 'chat-header', + 'chat-footer', + 'chat-bubble', + 'chat-start', + 'chat-end', + ], + styled: [ + 'chat-bubble-primary', + 'chat-bubble-success', + 'chat-bubble-warning', + 'chat-bubble-error', + 'chat-bubble-neutral', + 'chat-bubble-secondary', + 'chat-bubble-accent', + 'chat-bubble-info', + ], + utils: [], + }, + 'checkbox': { + base: [ + 'checkbox', + ], + styled: [ + 'checkbox-primary', + 'checkbox-success', + 'checkbox-warning', + 'checkbox-error', + 'checkbox-neutral', + 'checkbox-secondary', + 'checkbox-accent', + 'checkbox-info', + 'checkbox-mark', + ], + utils: [ + 'checkbox-xs', + 'checkbox-sm', + 'checkbox-md', + 'checkbox-lg', + ], + }, + 'input': { + base: [ + 'input', + ], + styled: [ + 'input-bordered', + 'input-ghost', + 'input-primary', + 'input-success', + 'input-warning', + 'input-error', + 'input-neutral', + 'input-secondary', + 'input-accent', + 'input-info', + 'input-disabled', + ], + utils: [ + 'input-xs', + 'input-md', + 'input-lg', + 'input-sm', + ], + }, + 'link': { + base: [ + 'link', + 'link-hover', + ], + styled: [ + 'link-primary', + 'link-success', + 'link-warning', + 'link-error', + 'link-neutral', + 'link-secondary', + 'link-accent', + 'link-info', + ], + utils: [], + }, + 'progress': { + base: [ + 'progress', + ], + styled: [ + 'progress-primary', + 'progress-success', + 'progress-warning', + 'progress-error', + 'progress-neutral', + 'progress-secondary', + 'progress-accent', + 'progress-info', + ], + utils: [], + }, + 'radio': { + base: [ + 'radio', + ], + styled: [ + 'radio-primary', + 'radio-success', + 'radio-warning', + 'radio-error', + 'radio-neutral', + 'radio-secondary', + 'radio-accent', + 'radio-info', + 'radio-mark', + ], + utils: [ + 'radio-xs', + 'radio-sm', + 'radio-md', + 'radio-lg', + ], + }, + 'range': { + base: [ + 'range', + ], + styled: [ + 'range-primary', + 'range-success', + 'range-warning', + 'range-error', + 'range-neutral', + 'range-secondary', + 'range-accent', + 'range-info', + ], + utils: [ + 'range-xs', + 'range-sm', + 'range-md', + 'range-lg', + ], + }, + 'select': { + base: [ + 'select', + ], + styled: [ + 'select-bordered', + 'select-ghost', + 'select-primary', + 'select-success', + 'select-warning', + 'select-error', + 'select-neutral', + 'select-secondary', + 'select-accent', + 'select-info', + 'select-disabled', + 'select-multiple', + ], + utils: [ + 'select-md', + 'select-lg', + 'select-sm', + 'select-xs', + ], + }, + 'textarea': { + base: [ + 'textarea', + ], + styled: [ + 'textarea-bordered', + 'textarea-ghost', + 'textarea-primary', + 'textarea-success', + 'textarea-warning', + 'textarea-error', + 'textarea-neutral', + 'textarea-secondary', + 'textarea-accent', + 'textarea-info', + 'textarea-disabled', + ], + utils: [ + 'textarea-xs', + 'textarea-sm', + 'textarea-md', + 'textarea-lg', + ], + }, + 'toggle': { + base: [ + 'toggle', + ], + styled: [ + 'toggle-primary', + 'toggle-success', + 'toggle-warning', + 'toggle-error', + 'toggle-neutral', + 'toggle-secondary', + 'toggle-accent', + 'toggle-info', + 'toggle-mark', + ], + utils: [ + 'toggle-xs', + 'toggle-sm', + 'toggle-md', + 'toggle-lg', + ], + }, + 'loading': { + base: [ + 'loading', + ], + styled: [], + utils: [ + 'loading-audio', + 'loading-ball-triangle', + 'loading-bars', + 'loading-circles', + 'loading-grid', + 'loading-hearts', + 'loading-oval', + 'loading-puff', + 'loading-rings', + 'loading-spinning-circles', + 'loading-tail-spin', + 'loading-three-dots', + 'loading-xs', + 'loading-sm', + 'loading-md', + 'loading-lg', + ], + }, + 'mask': { + base: [ + 'mask', + 'mask-half-1', + 'mask-half-2', + ], + styled: [], + utils: [ + 'mask-squircle', + 'mask-decagon', + 'mask-diamond', + 'mask-heart', + 'mask-hexagon', + 'mask-hexagon-2', + 'mask-circle', + 'mask-parallelogram', + 'mask-parallelogram-2', + 'mask-parallelogram-3', + 'mask-parallelogram-4', + 'mask-pentagon', + 'mask-square', + 'mask-star', + 'mask-star-2', + 'mask-triangle', + 'mask-triangle-2', + 'mask-triangle-3', + 'mask-triangle-4', + ], + }, + 'table': { + base: [ + 'table', + 'table-pin-rows', + 'table-pin-cols', + 'table-zebra', + ], + styled: [ + 'active', + 'hover', + 'table-zebra-zebra', + ], + utils: [ + 'table-xs', + 'table-sm', + 'table-md', + 'table-lg', + ], + }, + 'skeleton': { + base: [ + 'skeleton', + ], + styled: [], + utils: [ + 'skeleton-title', + 'skeleton-paragraph', + 'skeleton-avatar', + ], + }, + 'form': { + base: [ + 'form-control', + 'label', + ], + styled: [ + 'label-text', + 'label-text-alt', + ], + utils: [], + }, + 'radial-progress': { + base: [ + 'radial-progress', + ], + styled: [], + utils: [], + }, + 'countdown': { + base: [ + 'countdown', + ], + styled: [], + utils: [], + }, + 'diff': { + base: [ + 'diff', + 'diff-resizer', + 'diff-item-1', + 'diff-item-2', + ], + styled: [], + utils: [], + }, + 'kbd': { + base: [ + 'kbd', + ], + styled: [], + utils: [ + 'kbd-xs', + 'kbd-sm', + 'kbd-md', + 'kbd-lg', + ], + }, + 'tooltip': { + base: [ + 'tooltip', + 'tooltip-top', + 'tooltip-bottom', + 'tooltip-left', + 'tooltip-right', + ], + styled: [ + 'tooltip-open', + 'tooltip-primary', + 'tooltip-success', + 'tooltip-warning', + 'tooltip-error', + 'tooltip-neutral', + 'tooltip-secondary', + 'tooltip-accent', + 'tooltip-info', + ], + utils: [], + }, + 'toast': { + base: [ + 'toast', + ], + styled: [], + utils: [ + 'toast', + 'toast-start', + 'toast-center', + 'toast-end', + 'toast-bottom', + 'toast-middle', + 'toast-top', + ], + }, + 'steps': { + base: [ + 'steps', + 'step', + ], + styled: [ + 'step-primary', + 'step-success', + 'step-warning', + 'step-error', + 'step-neutral', + 'step-secondary', + 'step-accent', + 'step-info', + ], + utils: [ + 'steps-horizontal', + 'step', + 'steps-vertical', + ], + }, + 'collapse': { + base: [ + 'collapse', + 'collapse-title', + 'collapse-content', + 'collapse-open', + 'collapse-close', + ], + styled: [ + 'collapse-arrow', + 'collapse-plus', + ], + utils: [], + }, + 'join': { + base: [ + 'join', + 'join-item', + 'dropdown', + ], + styled: [], + utils: [ + 'join', + 'join-vertical', + 'join-item', + 'join-horizontal', + ], + }, + 'indicator': { + base: [ + 'indicator', + 'indicator-item', + ], + styled: [ + 'indicator-start', + 'indicator-center', + 'indicator-end', + 'indicator-bottom', + 'indicator-middle', + 'indicator-top', + ], + utils: [], + }, + 'divider': { + base: [ + 'divider', + 'divider-start', + 'divider-end', + ], + styled: [ + 'divider-primary', + 'divider-success', + 'divider-warning', + 'divider-error', + 'divider-neutral', + 'divider-secondary', + 'divider-accent', + 'divider-info', + ], + utils: [ + 'divider-horizontal', + 'divider-vertical', + ], + }, + 'stack': { + base: [ + 'stack', + ], + styled: [], + utils: [], + }, + 'tab': { + base: [ + 'tabs', + 'tabs-lifted', + 'tab-content', + 'tab', + 'tab-active', + ], + styled: [ + 'tab-disabled', + 'tabs-bordered', + 'tabs-boxed', + ], + utils: [ + 'tabs-md', + 'tab', + 'tabs-lg', + 'tabs-sm', + 'tabs-xs', + ], + }, + 'dropdown': { + base: [ + 'dropdown', + 'dropdown-content', + 'dropdown-end', + 'dropdown-left', + 'dropdown-right', + 'dropdown-bottom', + 'dropdown-top', + 'dropdown-open', + 'dropdown-hover', + ], + styled: [], + utils: [], + }, + 'swap': { + base: [ + 'swap', + 'swap-on', + 'swap-indeterminate', + 'swap-off', + 'swap-active', + ], + styled: [ + 'swap-rotate', + 'swap-flip', + ], + utils: [], + }, + 'card': { + base: [ + 'card', + 'card-body', + 'card-actions', + 'image-full', + ], + styled: [ + 'bordered', + 'card-bordered', + 'compact', + 'card-title', + ], + utils: [ + 'card-side', + 'card-compact', + 'card-body', + 'card-title', + 'card-normal', + ], + }, + 'carousel': { + base: [ + 'carousel', + 'carousel-vertical', + 'carousel-item', + 'carousel-center', + 'carousel-end', + ], + styled: [], + utils: [], + }, + 'stat': { + base: [ + 'stats', + 'stat', + 'stat-figure', + 'stat-title', + 'stat-value', + 'stat-desc', + 'stat-actions', + ], + styled: [], + utils: [ + 'stats-horizontal', + 'stats-vertical', + ], + }, + 'timeline': { + base: [ + 'timeline', + 'timeline-start', + 'timeline-middle', + 'timeline-end', + ], + styled: [ + 'timeline-box', + ], + utils: [ + 'timeline-vertical', + 'timeline-compact', + 'timeline-horizontal', + 'timeline-start', + 'timeline-end', + 'timeline-snap-icon', + 'timeline-middle', + ], + }, + 'breadcrumbs': { + base: [ + 'breadcrumbs', + ], + styled: [], + utils: [], + }, + 'bottom-navigation': { + base: [ + 'btm-nav', + ], + styled: [ + 'active', + 'disabled', + 'label', + ], + utils: [ + 'btm-nav-xs', + 'active', + 'btm-nav-label', + 'btm-nav-sm', + 'btm-nav-md', + 'btm-nav-lg', + ], + }, + 'menu': { + base: [ + 'menu', + 'menu-title', + 'disabled', + 'menu-dropdown', + 'menu-dropdown-show', + 'badge', + ], + styled: [ + 'active', + 'focus', + 'menu-dropdown-toggle', + ], + utils: [ + 'menu-horizontal', + 'menu-title', + 'menu-vertical', + 'menu-xs', + 'menu-sm', + 'menu-md', + 'menu-lg', + ], + }, + 'navbar': { + base: [ + 'navbar', + 'navbar-start', + 'navbar-center', + 'navbar-end', + ], + styled: [], + utils: [], + }, + 'file-input': { + base: [ + 'file-input', + ], + styled: [ + 'file-input-bordered', + 'file-input-ghost', + 'file-input-primary', + 'file-input-success', + 'file-input-warning', + 'file-input-error', + 'file-input-neutral', + 'file-input-secondary', + 'file-input-accent', + 'file-input-info', + 'file-input-disabled', + ], + utils: [ + 'file-input-xs', + 'file-input-sm', + 'file-input-md', + 'file-input-lg', + ], + }, + 'rating': { + base: [ + 'rating', + ], + styled: [ + 'rating-hidden', + 'rating-half', + ], + utils: [ + 'rating-xs', + 'rating-sm', + 'rating-md', + 'rating-lg', + 'rating-half', + 'rating-hidden', + ], + }, + 'drawer': { + base: [ + 'drawer', + 'drawer-content', + 'drawer-side', + 'drawer-overlay', + 'drawer-toggle', + 'drawer-end', + ], + styled: [ + 'drawer-button', + ], + utils: [ + 'drawer-open', + 'drawer-toggle', + 'drawer-side', + 'drawer-overlay', + ], + }, + 'footer': { + base: [ + 'footer', + 'footer-center', + ], + styled: [ + 'footer-title', + ], + utils: [], + }, + 'hero': { + base: [ + 'hero', + 'hero-overlay', + 'hero-content', + ], + styled: [], + utils: [], + }, +} diff --git a/apps/taro-app/tailwind.config.js b/apps/taro-app/tailwind.config.js index 45c3dc87..1f578ded 100644 --- a/apps/taro-app/tailwind.config.js +++ b/apps/taro-app/tailwind.config.js @@ -1,6 +1,6 @@ -const { icestackPlugin } = require('@icestack/tailwindcss') +const path = require('node:path') const { iconsPlugin, getIconCollections } = require('@egoist/tailwindcss-icons') -const path = require('path') +const { icestackPlugin } = require('@icestack/tailwindcss') /** @type {import('tailwindcss').Config} */ module.exports = { content: ['./index.html', './src/**/*.{html,js,ts,jsx,tsx,vue}'], @@ -12,15 +12,15 @@ module.exports = { // plugins: [require('@icestack/ui')({})], plugins: [ iconsPlugin({ - collections: getIconCollections(['mdi', 'grommet-icons']) + collections: getIconCollections(['mdi', 'grommet-icons']), }), icestackPlugin({ loadDirectory: path.resolve(__dirname, './my-ui'), - loadConfig: true - }) + loadConfig: true, + }), ], corePlugins: { - preflight: false - } + preflight: false, + }, } diff --git a/apps/taro-app/tsconfig.json b/apps/taro-app/tsconfig.json index 58f48a4a..7d4794b1 100644 --- a/apps/taro-app/tsconfig.json +++ b/apps/taro-app/tsconfig.json @@ -1,26 +1,12 @@ { "compilerOptions": { "target": "es2017", - "module": "commonjs", - "removeComments": false, - "preserveConstEnums": true, - "moduleResolution": "node", + "jsx": "react-jsx", "experimentalDecorators": true, - "noImplicitAny": false, - "allowSyntheticDefaultImports": true, - "outDir": "lib", - "noUnusedLocals": true, - "noUnusedParameters": true, - "strictNullChecks": true, - "sourceMap": true, "baseUrl": ".", "rootDir": ".", - "jsx": "react-jsx", - "allowJs": true, - "resolveJsonModule": true, - "typeRoots": [ - "node_modules/@types" - ], + "module": "commonjs", + "moduleResolution": "node", "paths": { "@/components/*": [ "./src/components/*" @@ -37,7 +23,21 @@ "~/*": [ "../../../packages/ui/*" ] - } + }, + "resolveJsonModule": true, + "typeRoots": [ + "node_modules/@types" + ], + "strictNullChecks": true, + "preserveConstEnums": true, + "removeComments": false, + "noImplicitAny": false, + "noUnusedLocals": true, + "noUnusedParameters": true, + "outDir": "lib", + "allowSyntheticDefaultImports": true, + "sourceMap": true, + "allowJs": true }, "include": [ "./src", diff --git a/apps/taro-app/types/global.d.ts b/apps/taro-app/types/global.d.ts index 36087b09..2b4fbd4d 100644 --- a/apps/taro-app/types/global.d.ts +++ b/apps/taro-app/types/global.d.ts @@ -16,4 +16,3 @@ declare namespace NodeJS { TARO_ENV: 'weapp' | 'swan' | 'alipay' | 'h5' | 'rn' | 'tt' | 'quickapp' | 'qq' | 'jd' } } - diff --git a/apps/uni-app-vue3/.eslintrc-auto-import.json b/apps/uni-app-vue3/.eslintrc-auto-import.json index 5c64f4a4..90fb0b91 100644 --- a/apps/uni-app-vue3/.eslintrc-auto-import.json +++ b/apps/uni-app-vue3/.eslintrc-auto-import.json @@ -94,6 +94,10 @@ "onUnload": true, "setActivePinia": true, "setMapStoreSuffix": true, - "storeToRefs": true + "storeToRefs": true, + "ExtractDefaultPropTypes": true, + "ExtractPropTypes": true, + "ExtractPublicPropTypes": true, + "WritableComputedRef": true } } diff --git a/apps/uni-app-vue3/.eslintrc.js b/apps/uni-app-vue3/.eslintrc.js index 31fe48d6..39a4f9b5 100644 --- a/apps/uni-app-vue3/.eslintrc.js +++ b/apps/uni-app-vue3/.eslintrc.js @@ -4,10 +4,10 @@ module.exports = { env: { browser: true, node: true, - es2021: true + es2021: true, }, globals: { - uni: true // readonly + uni: true, // readonly }, extends: [ 'standard', @@ -15,24 +15,24 @@ module.exports = { 'eslint:recommended', 'plugin:vue/essential', 'plugin:@typescript-eslint/recommended', - './.eslintrc-auto-import.json' + './.eslintrc-auto-import.json', ], parser: 'vue-eslint-parser', parserOptions: { ecmaVersion: 'latest', parser: '@typescript-eslint/parser', - sourceType: 'module' + sourceType: 'module', }, plugins: ['vue', '@typescript-eslint'], rules: { - 'vue/multi-word-component-names': 1 + 'vue/multi-word-component-names': 1, }, overrides: [ { files: ['*.ts', '*.mts', '*.cts', '*.tsx', '*.vue'], rules: { - 'no-undef': 'off' - } - } - ] + 'no-undef': 'off', + }, + }, + ], } diff --git a/apps/uni-app-vue3/index.html b/apps/uni-app-vue3/index.html index 60d06276..db75c97c 100644 --- a/apps/uni-app-vue3/index.html +++ b/apps/uni-app-vue3/index.html @@ -1,13 +1,17 @@ - + diff --git a/apps/uni-app-vue3/package.json b/apps/uni-app-vue3/package.json index 44ce92c0..7cc96a09 100644 --- a/apps/uni-app-vue3/package.json +++ b/apps/uni-app-vue3/package.json @@ -1,7 +1,7 @@ { "name": "uni-app-vite-vue3", - "private": true, "version": "0.0.1", + "private": true, "scripts": { "dev": "uni -p mp-weixin", "dev:app": "uni -p app", @@ -72,33 +72,33 @@ "@icestack/ui": "link:../../packages/ui", "@rollup/plugin-commonjs": "^25.0.4", "@rollup/plugin-replace": "^5.0.2", - "@types/node": "^20.10.4", - "@typescript-eslint/eslint-plugin": "^6.15.0", - "@typescript-eslint/parser": "^6.15.0", - "@vue/runtime-core": "^3.3.13", + "@types/node": "^20.10.6", + "@typescript-eslint/eslint-plugin": "^6.17.0", + "@typescript-eslint/parser": "^6.17.0", + "@vue/runtime-core": "^3.4.3", "autoprefixer": "^10.4.16", "engine.io-client": "^6.5.3", "eslint": "^8.56.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "2.29.1", - "eslint-plugin-jest": "^27.6.0", - "eslint-plugin-n": "^16.4.0", - "eslint-plugin-prettier": "^5.1.0", + "eslint-plugin-jest": "^27.6.1", + "eslint-plugin-n": "^16.6.1", + "eslint-plugin-prettier": "^5.1.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-vue": "^9.19.2", "postcss": "^8.4.32", "postcss-js": "^4.0.1", "postcss-rem-to-responsive-pixel": "^6.0.1", "prettier": "^3.1.1", - "sass": "^1.69.5", + "sass": "^1.69.6", "tailwindcss": "^3.4.0", "typescript": "^5.3.3", - "unplugin-auto-import": "^0.17.2", + "unplugin-auto-import": "^0.17.3", "unplugin-vue-components": "^0.26.0", "vite": "5.0.10", "vue-eslint-parser": "^9.3.2", "weapp-ide-cli": "^1.0.1", "weapp-tailwindcss": "^3.0.4" } -} \ No newline at end of file +} diff --git a/apps/uni-app-vue3/panda.config.ts b/apps/uni-app-vue3/panda.config.ts index a6934eeb..40063525 100644 --- a/apps/uni-app-vue3/panda.config.ts +++ b/apps/uni-app-vue3/panda.config.ts @@ -12,10 +12,10 @@ export default defineConfig({ // Useful for theme customization theme: { - extend: {} + extend: {}, }, // The output directory for your css system outdir: 'src/styled-system', - jsxFramework: 'vue' + jsxFramework: 'vue', }) diff --git a/apps/uni-app-vue3/postcss.config.cjs b/apps/uni-app-vue3/postcss.config.cjs index 15afd80a..7d417c10 100644 --- a/apps/uni-app-vue3/postcss.config.cjs +++ b/apps/uni-app-vue3/postcss.config.cjs @@ -1,6 +1,6 @@ module.exports = { plugins: [ require('@pandacss/dev/postcss')(), - require('weapp-pandacss/postcss')() - ] + require('weapp-pandacss/postcss')(), + ], } diff --git a/apps/uni-app-vue3/src/App.vue b/apps/uni-app-vue3/src/App.vue index 93dd6fbf..8f1a492e 100644 --- a/apps/uni-app-vue3/src/App.vue +++ b/apps/uni-app-vue3/src/App.vue @@ -9,6 +9,7 @@ onHide(() => { console.log('App Hide') }) + diff --git a/apps/uni-app-vue3/src/components/ConfigProvider.vue b/apps/uni-app-vue3/src/components/ConfigProvider.vue index fd9ddfd0..8674eb77 100644 --- a/apps/uni-app-vue3/src/components/ConfigProvider.vue +++ b/apps/uni-app-vue3/src/components/ConfigProvider.vue @@ -1,17 +1,19 @@ - - + + + + diff --git a/apps/uni-app-vue3/src/env.d.ts b/apps/uni-app-vue3/src/env.d.ts index d27eb5a3..aafef950 100644 --- a/apps/uni-app-vue3/src/env.d.ts +++ b/apps/uni-app-vue3/src/env.d.ts @@ -1,7 +1,7 @@ /// declare module '*.vue' { - import { DefineComponent } from 'vue' + import type { DefineComponent } from 'vue' // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types const component: DefineComponent<{}, {}, any> export default component diff --git a/apps/uni-app-vue3/src/main.ts b/apps/uni-app-vue3/src/main.ts index c630e325..b2589788 100644 --- a/apps/uni-app-vue3/src/main.ts +++ b/apps/uni-app-vue3/src/main.ts @@ -1,8 +1,8 @@ -import './shim' +import * as Pinia from 'pinia' import { createSSRApp } from 'vue' -import * as Pinia from 'pinia' import App from './App.vue' +import './shim' export function createApp() { const app = createSSRApp(App) @@ -11,11 +11,11 @@ export function createApp() { // new XMLHttpRequest() app.mixin({ options: { - virtualHost: true - } + virtualHost: true, + }, }) return { app, - Pinia + Pinia, } } diff --git a/apps/uni-app-vue3/src/manifest.json b/apps/uni-app-vue3/src/manifest.json index 1f9a5a5a..bbb62b80 100644 --- a/apps/uni-app-vue3/src/manifest.json +++ b/apps/uni-app-vue3/src/manifest.json @@ -72,4 +72,4 @@ "enable": false }, "vueVersion": "3" -} \ No newline at end of file +} diff --git a/apps/uni-app-vue3/src/pages.json b/apps/uni-app-vue3/src/pages.json index 1aea8515..351969db 100644 --- a/apps/uni-app-vue3/src/pages.json +++ b/apps/uni-app-vue3/src/pages.json @@ -1,16 +1,16 @@ { - "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages - { - "path": "pages/index/index", - "style": { - "navigationBarTitleText": "uni-app" - } - } - ], - "globalStyle": { - "navigationBarTextStyle": "black", - "navigationBarTitleText": "uni-app", - "navigationBarBackgroundColor": "#F8F8F8", - "backgroundColor": "#F8F8F8" - } + "pages": [ // pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "uni-app" + } + } + ], + "globalStyle": { + "navigationBarTextStyle": "black", + "navigationBarTitleText": "uni-app", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + } } diff --git a/apps/uni-app-vue3/src/pages/index/clsx.vue b/apps/uni-app-vue3/src/pages/index/clsx.vue index 31dbb840..72e73f25 100644 --- a/apps/uni-app-vue3/src/pages/index/clsx.vue +++ b/apps/uni-app-vue3/src/pages/index/clsx.vue @@ -1,20 +1,28 @@ + + - - diff --git a/apps/uni-app-vue3/src/pages/index/index.vue b/apps/uni-app-vue3/src/pages/index/index.vue index d6729ce1..22466415 100644 --- a/apps/uni-app-vue3/src/pages/index/index.vue +++ b/apps/uni-app-vue3/src/pages/index/index.vue @@ -1,40 +1,31 @@ - - + + diff --git a/apps/uni-app-vue3/src/theme.json b/apps/uni-app-vue3/src/theme.json index 492579a1..c1ec2c95 100644 --- a/apps/uni-app-vue3/src/theme.json +++ b/apps/uni-app-vue3/src/theme.json @@ -1,11 +1,10 @@ { - "light": { - "navBgColor": "#f6f6f6", - "navTxtStyle": "black" - }, - "dark": { - "navBgColor": "#191919", - "navTxtStyle": "white" - } + "light": { + "navBgColor": "#f6f6f6", + "navTxtStyle": "black" + }, + "dark": { + "navBgColor": "#191919", + "navTxtStyle": "white" } - \ No newline at end of file +} diff --git a/apps/uni-app-vue3/tailwind.config.js b/apps/uni-app-vue3/tailwind.config.js index 15d2c9f5..b5bbceeb 100644 --- a/apps/uni-app-vue3/tailwind.config.js +++ b/apps/uni-app-vue3/tailwind.config.js @@ -9,13 +9,13 @@ module.exports = { // colors: {} }, plugins: [ - plugin(function ({ addVariant }) { + plugin(({ addVariant }) => { addVariant('deep', ':is(.deep &)') addVariant('fantasy', ':is(.fantasy &)') - }) + }), ], // [require('@icestack/ui')({})], corePlugins: { preflight: false, - container: false - } + container: false, + }, } diff --git a/apps/uni-app-vue3/tsconfig.json b/apps/uni-app-vue3/tsconfig.json index 7873d2d0..181b7f87 100644 --- a/apps/uni-app-vue3/tsconfig.json +++ b/apps/uni-app-vue3/tsconfig.json @@ -1,27 +1,27 @@ { "compilerOptions": { "target": "esnext", - "useDefineForClassFields": true, - "module": "esnext", - "moduleResolution": "node", - "strict": true, "jsx": "preserve", - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, "lib": [ "esnext", "dom" ], - "types": [ - "@dcloudio/types" - ], + "useDefineForClassFields": true, "baseUrl": ".", + "module": "esnext", + "moduleResolution": "node", "paths": { "@/*": [ "src/*" ] - } + }, + "resolveJsonModule": true, + "types": [ + "@dcloudio/types" + ], + "strict": true, + "sourceMap": true, + "esModuleInterop": true }, "include": [ "src/**/*.ts", @@ -29,4 +29,4 @@ "src/**/*.tsx", "src/**/*.vue" ] -} \ No newline at end of file +} diff --git a/apps/uni-app-vue3/vite.config.ts b/apps/uni-app-vue3/vite.config.ts index a39b5d24..a580e210 100644 --- a/apps/uni-app-vue3/vite.config.ts +++ b/apps/uni-app-vue3/vite.config.ts @@ -1,15 +1,15 @@ -import { defineConfig } from 'vite' import uni from '@dcloudio/vite-plugin-uni' -import AutoImport from 'unplugin-auto-import/vite' import replace from '@rollup/plugin-replace' +import autoprefixer from 'autoprefixer' +import rem2px from 'postcss-rem-to-responsive-pixel' +import tailwindcss from 'tailwindcss' +import AutoImport from 'unplugin-auto-import/vite' +import { defineConfig } from 'vite' // import Components from 'unplugin-vue-components/vite' // 假如要加载一些 commonjs 模块,需要引入这个插件,很多地图的sdk都是 commonjs,假如引用报错需要引入它并添加到 `plugins` 里 // import commonjs from "@rollup/plugin-commonjs"; import { UnifiedViteWeappTailwindcssPlugin as uvtw } from 'weapp-tailwindcss/vite' -import rem2px from 'postcss-rem-to-responsive-pixel' -import tailwindcss from 'tailwindcss' -import autoprefixer from 'autoprefixer' // const postcssConfig = require('./postcss.config.cjs') // import linaria from '@linaria/vite' const isH5 = process.env.UNI_PLATFORM === 'h5' @@ -18,15 +18,15 @@ const WeappTailwindcssDisabled = isH5 || isApp // const additionalPlugins = require('./postcss.config.cjs').plugins -const postcssPlugins = [tailwindcss(), autoprefixer()] //, ...additionalPlugins] +const postcssPlugins = [tailwindcss(), autoprefixer()] // , ...additionalPlugins] if (!WeappTailwindcssDisabled) { postcssPlugins.push( rem2px({ rootValue: 32, propList: ['*'], - transformUnit: 'rpx' - }) + transformUnit: 'rpx', + }), ) } // https://vitejs.dev/config/ @@ -35,22 +35,22 @@ export default defineConfig({ plugins: [ uni(), uvtw({ - disabled: WeappTailwindcssDisabled + disabled: WeappTailwindcssDisabled, }), AutoImport({ imports: ['vue', 'uni-app', 'pinia'], dts: './src/auto-imports.d.ts', eslintrc: { - enabled: true - } + enabled: true, + }, }), replace({ values: { - window: 'globalThis' // JSON.stringify('globalThis') + window: 'globalThis', // JSON.stringify('globalThis') }, include: [/socket\.io-client/, /engine\.io-client/], - preventAssignment: true - }) + preventAssignment: true, + }), // https://github.com/callstack/linaria/issues/1250 // linaria() // uni-app vite 中不起作用,不知道为啥 @@ -61,7 +61,7 @@ export default defineConfig({ // 内联 postcss 注册 tailwindcss css: { postcss: { - plugins: postcssPlugins // postcssConfig.plugins // postcssPlugins - } - } + plugins: postcssPlugins, // postcssConfig.plugins // postcssPlugins + }, + }, }) diff --git a/blog/en-US/20240103-use-icestack-to-build-your-css-ui.md b/blog/en-US/20240103-use-icestack-to-build-your-css-ui.md new file mode 100644 index 00000000..803c9702 --- /dev/null +++ b/blog/en-US/20240103-use-icestack-to-build-your-css-ui.md @@ -0,0 +1,331 @@ +![Image](https://pic4.zhimg.com/80/v2-142cf9008c14984caca829eeea827a02.jpg) + +# Use IceStack to build your CSS UI + +- [Use IceStack to build your CSS UI](#use-icestack-to-build-your-css-ui) + - [Install `@icestack/ui`](#install-icestackui) + - [Initialization configuration file](#initialization-configuration-file) + - [Build style](#build-style) + - [Used as tailwindcss plugin](#used-as-tailwindcss-plugin) + - [Default preset](#default-preset) + - [Start from scratch](#start-from-scratch) + - [Build button component](#build-button-component) + - [Component style refinement](#component-style-refinement) + - [Write configuration file](#write-configuration-file) + - [Add more colors](#add-more-colors) + - [Add more sizes](#add-more-sizes) + - [More](#more) + +I love `tailwindcss` and use it frequently. I also like `daisyui` very much. Using these for development saves me a lot of effort. + +However, I encountered some scenarios in the project where I needed to deeply customize the `Css UI` component. At this time, `daisyui` could not solve my problem for the time being. + +So I came up with some ideas and wrote [`icestack`](https://ui.icebreaker.top/) inspired by `tailwindcss` and `daisyui` + +This is a `Css UI` framework generation and management tool. Through it, you can easily extend the style, and you can also easily build your own `Css UI` from scratch and combine it with `tailwindcss`. use! + +Let's see how to use it! + +## Install `@icestack/ui` + +```bash +# yarn | pmpm +npm install -D @icestack/ui @icestack/tailwindcss +``` + +`@icestack/ui` will be downloaded and installed locally, and a command `icestack` will be registered + +## Initialization configuration file + +After installing `@icestack/ui`, execute: + +```bash +npx icestack init +``` + +This command will generate an `icestack.config.cjs` file in the current execution directory. The default content is as follows: + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui' +} + +module.exports = config +``` + +### Build style + +```bash +npx icestack build +``` + +This command reads the configuration and builds the product in the `'./my-ui'` directory under the current configuration file. Then you can directly import these `css` and `js` files, but giving them to `tailwindcss` is more convenient to use. + +## Used as tailwindcss plugin + +Register the `icestackPlugin` plugin in `tailwind.config.js` and pass a `loadDirectory` parameter to locate the location where the product was just generated: + +```js +const path = require('node:path') +const { icestackPlugin } = require('@icestack/tailwindcss') + +/** @type {import('tailwindcss').Config} */ +module.exports = { + // ... + plugins: [ + icestackPlugin({ + // Absolute path to the loading directory + loadDirectory: path.resolve(__dirname, 'my-ui'), + // Whether to inject tailwindcss theme config + // When true, the generator's primary success warning colors will enter the tailwindcss.theme.extend configuration + // You can use bg-primary / text-success + // Default value: false + loadConfig: true + // ... + }) + ] +} +``` + +Then as long as we run the project normally, we can directly use all the `CSS` components in the `my-ui` directory! + +## Default preset + +By default, a set of `@icestack/preset-default` for `Css` components is built into `@icestack/ui`, which absorbs the excellent writing style of `daisyui` and remains consistent in many places. + +At the same time, you can use configuration items to extend and override its original style, [see override](https://ui.icebreaker.top/docs/core/override) + +If you want to build your own `UI` framework from 0 to 1, you can set `mode` to `none` in `icestack.config.cjs`, and `@icestack/preset` will not be loaded at this time. + +## Start from scratch + +### Build button component + +We can select our favorite `button` component from the component library list of the project [awesome-tailwindcss](https://github.com/aniftyco/awesome-tailwindcss). Its `html` is as follows + +```html + + Hover Me +
+
+``` + +### Component style refinement + +Then we start to refine `html` and extract its styles: + +```html + + Hover Me + +``` + +Convert the original long-passed `class` into `@apply`, and wrap it in the selector `.btn`, then convert the last animated `div` element into a pseudo-element, and modify the style. + +```scss +.btn { + @apply relative overflow-hidden bg-blue-600 focus:ring-4 focus:ring-blue-300 inline-flex items-center px-7 py-2.5 rounded-lg text-white justify-center; + + &::after { + content: ''; + @apply absolute inset-0 h-[200%] w-[200%] rotate-45 translate-x-[-75%] transition-all bg-white/30 z-20 duration-1000; + } + + &:hover::after { + @apply translate-x-[50%]; + } +} +``` + +### Write configuration file + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + button: { + selector: '.btn', + // selector is .btn + schema: ({ selector, params, types }) => { + return { + selector, + defaults: { + // return a string template, allow css + base: ` + ${selector} { + @apply relative overflow-hidden bg-blue-600 focus:ring-4 focus:ring-blue-300 inline-flex items-center px-7 py-2.5 rounded-lg text-white justify-center; + + &::after { + content: ''; + @apply absolute inset-0 h-[200%] w-[200%] rotate-45 translate-x-[-75%] transition-all bg-white/30 z-20 duration-1000; + } + + &:hover::after { + @apply translate-x-[50%]; + } + } + ` + } + } + } + } + } +} +module.exports = config +``` + +Then after executing `icestack build`, `.btn` will be successfully loaded by `tailwindcss plugin`. You can write like this: + +```html + Hover Me +``` + +### Add more colors + +For example, if we have requirements, the default is `bg-blue-600 focus:ring-blue-300` + +But what should we do if we can pass in red, yellow, and other colors? + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + button: { + selector: '.btn', + // types is the default primary / success ... theme string array + schema: ({ selector, params, types }) => { + // add colors + const colors = ['red', 'yellow', 'green'] + return { + selector, + // utils > styled > base + defaults: { + base: `...previous-code`, + // add styled, allow css + styled: ` + ${colors + .map((color) => { + return `${selector}-${color}{ + @apply bg-${color}-600 focus:ring-${color}-300; + }` + }) + .join('\n')} + + ` + } + } + } + } + } +} +module.exports = config +``` + +After making the changes, execute `npx icestack build` to build. After completion, you can use it directly: + +```html + + Default + + + Red + + + Yellow + + + Green + +``` + +### Add more sizes + +If we want to add more dimensions to this `button` component, we can set it like this: + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + button: { + selector: '.btn', + schema: ({ selector, params, types }) => { + // add colors + const colors = ['red', 'yellow', 'green'] + return { + selector, + // utils > styled > base + defaults: { + base: `...previous-code`, + styled: `...previous-code`, + // add sizes, allow css + utils: ` + ${selector}-xs{ + @apply px-3 py-1.5 rounded; + } + ${selector}-sm{ + @apply px-5 py-2 rounded-md; + } + ${selector}-md{ + @apply px-7 py-2.5 rounded-lg; + } + ${selector}-lg{ + @apply px-8 py-3 rounded-lg; + } + ` + } + } + } + } + } +} +module.exports = config +``` + +Then build it and you can use it directly: + +```html + + xs + + + sm + + + md + + + lg + +``` + +### More + +You must have noticed that the `schema` method has multiple parameters: + +- `selector` is the selector +- `types` is the automatically generated color name in the `base` option +- `params` is the incoming parameter, which can render different performances of the component according to different parameters. + +We can render different `Css` style codes based on different parameters. + +Of course, you can also find more examples and usage on the [`icestack`](https://ui.icebreaker.top/) official website. + +Everyone is welcome to try it! diff --git a/blog/en-US/20240201-postcss-cva.md b/blog/en-US/20240201-postcss-cva.md new file mode 100644 index 00000000..85d25a16 --- /dev/null +++ b/blog/en-US/20240201-postcss-cva.md @@ -0,0 +1,275 @@ +![Image](https://pic4.zhimg.com/80/v2-28f7a013e24151181b30780280afe352.png) + +# Use postcss-cva to generate cva method + +- [Use postcss-cva to generate cva method](#use-postcss-cva-to-generate-cva-method) + - [What is cva](#what-is-cva) + - [Example](#example) + - [Parameters](#parameters) + - [postcss-cva](#postcss-cva) + - [css example](#css-example) + - [Atomic design](#atomic-design) + - [Annotated reference](#annotated-reference) + - [Generate cva function](#generate-cva-function) + - [Refers](#refers) + +## What is cva + +`cva` stands for `class-variance-authority`. It is a class library that is very suitable for creating and controlling `Css` variant methods. It is very suitable for atomic ideas like `tailwindcss`. + +Many times we encapsulate components, especially using the idea of ​​atomization to write `css`, and then encapsulate the components, just use it! + +### Example + +So how to use it for packaging? Let’s take the example of encapsulating an intuitive `vue` component `Button`: + +```html + +``` + +Next, we need to control its style based on the passed `Props` of this component, including color type, size, status, shape, etc. + +So if we use styles to control these, we usually write like this: + +```html + + + +``` + +And `cva` is a method that helps us generate this `getButtonClass` function. + +### Parameters + +The input parameters of a `cva` usually include `4` parts: `base`, `variants`, `compoundVariants`, `defaultVariants`: + +```js +import { cva } from 'class-variance-authority' +// ⬇️ base +const button = cva(['font-semibold', 'border', 'rounded'], { + // ⬇️ variants + variants: { + intent: { + primary: ['bg-blue-500', 'text-white', 'border-transparent', 'hover:bg-blue-600'], + secondary: ['bg-white', 'text-gray-800', 'border-gray-400', 'hover:bg-gray-100'] + }, + size: { + small: ['text-sm', 'py-1', 'px-2'], + medium: ['text-base', 'py-2', 'px-4'] + } + }, + // ⬇️ compoundVariants + compoundVariants: [ + { + intent: 'primary', + size: 'medium', + class: 'uppercase' + } + ], + // ⬇️ defaultVariants + defaultVariants: { + intent: 'primary', + size: 'medium' + } +}) + +button() +// => "font-semibold border rounded bg-blue-500 text-white border-transparent hover:bg-blue-600 text-base py-2 px-4 uppercase" +button({ intent: 'secondary', size: 'small' }) +// => "font-semibold border rounded bg-white text-gray-800 border-gray-400 hover:bg-gray-100 text-sm py-1 px-2" +``` + +Many times we can construct such a function to encapsulate our components. This will make our code very intuitive. What should control the style will control the style, and what should control the behavior will control the behavior. So it is good to use `cva` to transform the `vue` `Button` component just now. + +But what if our project does not use the atomic `Css` class library? Or if we want to generate the `cva` function when writing `Css`, then you have to use `postcss-cva`. + +## postcss-cva + +`postcss-cva` is a `postcss` plugin based on `css ast` analysis. + +It can convert the `Css` comments you write into `cva` functions. + +### css example + +Let’s look at a simple example. During the encapsulation process of the `Button` component, the following `Css` is written + +```css +/* @meta path="./buttonClass" */ +/* @dv size="md" */ +.btn { + /* @b */ + font-size: 16px; + background: gray; + border-radius: 4px; +} + +.btn-primary { + /* @v type="primary" */ + background: blue; + color: white; +} + +.btn-secondary { + /* @v type="secondary" */ + font-size: 22px; + color: yellow; +} + +.btn-disabled { + /* @cv type="primary" size="xs" */ + cursor: not-allowed; +} + +.btn-md { + /* @v size="md" */ + padding: 6px 10px; + font-size: 16px; +} + +.btn-xs { + /* @v size="xs" */ + padding: 2px 6px; + font-size: 14px; +} + +.btn-sm { + /* @v size="sm" */ + padding: 4px 8px; + font-size: 12px; +} +``` + +### Atomic design + +In it we define: + +- Its base class: `base`: `.btn` +- Its variants: `variants`: + - `.btn-primary`, `.btn-secondary` to control color types + - `.btn-md`, `.btn-xs`, `.btn-sm` to control size + - More to control, shape or other etc. +- Its compound variants: `compoundVariants`: `.btn-disabled` (triggered when the passed parameter `type="primary" size="xs"` is met) +- Its default variant: `defaultVariants`: `size="md"` (use `size="md"` when no parameters are passed by default) + +### Annotated reference + +Then follow the comment reference of `postcss-cva`: + +| keyword | target | type | description | +| ------- | ------------------ | ------ | --------------------------------------------- | +| `@b` | `base` | node | add current node selector to base | +| `@gb` | `base` | global | define base | +| `@v` | `variants` | node | add current node selector to variants | +| `@gv` | `variants` | global | define variants | +| `@cv` | `compoundVariants` | node | add current node selector to compoundVariants | +| `@gcv` | `compoundVariants` | global | define defaultVariants | +| `@dv` | `defaultVariants` | global | define defaultVariants | +| `@meta` | `meta` | global | define metadata | + +We define all variants by adding corresponding annotations. + +> defined by `@meta path="./buttonClass"` + +At the same time, the file output directory of the `cva` function is also defined as the `buttonClass.ts` file in the directory where the current `Button.vue` file is located (the default format is `ts`) + +### Generate cva function + +In this way, when we run the main function and introduce the `css` file where the `vue` component/comment is located, a `cva` function is generated: + +```ts +import { cva, VariantProps } from 'class-variance-authority' +const index = cva(['btn'], { + variants: { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'] + }, + size: { + md: ['btn-md'], + xs: ['btn-xs'], + sm: ['btn-sm'] + } + }, + compoundVariants: [{ + class: ['btn-disabled'], + type: ['primary'], + size: ['xs'] + }], + defaultVariants: { + size: 'md' + } +}) +export type Props = VariantProps +export default index +``` + +Then, we can directly import it for encapsulation! + +```html + + + +``` + +`postcss-cva` allows you to plan the `cva` function when designing and writing `css`. + +Now you can not only use it directly as an external `postcss` plug-in, but it has also been integrated into [IceStack](https://ui.icebreaker.top/zh-CN) inside. + +Use it to manage and generate your `Css UI` now. + +## Refers + +[IceStack](https://ui.icebreaker.top/zh-CN) + +[postcss-cva](https://www.npmjs.com/package/postcss-cva) + +[cva.style](https://cva.style/) diff --git a/blog/zh-CN/20231201.md b/blog/zh-CN/20231201.md index a6aa273e..5fcc73be 100644 --- a/blog/zh-CN/20231201.md +++ b/blog/zh-CN/20231201.md @@ -65,9 +65,9 @@ npm i -D @icestack/ui npx icestack init ``` -这个命令会在当前执行目录下生成一个 `icestack.config.js` 文件,默认内容如下: +这个命令会在当前执行目录下生成一个 `icestack.config.cjs` 文件,默认内容如下: -```js filename="icestack.config.js" +```js filename="icestack.config.cjs" /** * @type {import('@icestack/ui').Config} */ @@ -163,9 +163,9 @@ npm i -D @icestack/presets ### 注册 -然后在 `icestack.config.js` 中注册 +然后在 `icestack.config.cjs` 中注册 -```js filename="icestack.config.js" +```js filename="icestack.config.cjs" const { miniprogramPreset } = require('@icestack/presets') /** * @type {import('@icestack/ui').Config} diff --git a/blog/zh-CN/20240103-use-icestack-to-build-your-css-ui.md b/blog/zh-CN/20240103-use-icestack-to-build-your-css-ui.md new file mode 100644 index 00000000..7a9744fb --- /dev/null +++ b/blog/zh-CN/20240103-use-icestack-to-build-your-css-ui.md @@ -0,0 +1,331 @@ +![Image](https://pic4.zhimg.com/80/v2-142cf9008c14984caca829eeea827a02.jpg) + +# 使用 IceStack 来构建你的 Css UI 吧 + +- [使用 IceStack 来构建你的 Css UI 吧](#使用-icestack-来构建你的-css-ui-吧) + - [安装 `@icestack/ui`](#安装-icestackui) + - [初始化配置文件](#初始化配置文件) + - [构建样式](#构建样式) + - [作为 tailwindcss plugin 来使用](#作为-tailwindcss-plugin-来使用) + - [默认预设](#默认预设) + - [从0到1进行构建](#从0到1进行构建) + - [构建button组件](#构建button组件) + - [组件样式提炼](#组件样式提炼) + - [写入配置文件](#写入配置文件) + - [添加更多的颜色种类](#添加更多的颜色种类) + - [添加更多的尺寸](#添加更多的尺寸) + - [更多](#更多) + +我热爱 `tailwindcss` 并经常使用它, 我也非常喜欢 `daisyui`, 使用这 `2` 者进行开发为我节省了不少功夫。 + +然而遇到项目上的一些场景,需要深度定制 `Css UI` 组件,这时候 `daisyui` 暂时无法解决我的问题。 + +于是我产生了一些想法,并以 `tailwindcss` 和 `daisyui` 为灵感,编写了 [`icestack`](https://ui.icebreaker.top/zh-CN/) + +这是一个 `Css UI` 框架的生成和管理工具,通过它,你可以很容易的对样式进行扩展,也可以很容易的从0开始构建你自己的 `Css UI` 并结合 `tailwindcss` 来进行使用! + +让我们看看如何来使用它吧! + +## 安装 `@icestack/ui` + +```bash +# yarn | pmpm +npm install -D @icestack/ui @icestack/tailwindcss +``` + +`@icestack/ui` 将会被下载并安装在你的本地,同时一个命令 `icestack` 将会被注册 + +## 初始化配置文件 + +安装好 `@icestack/ui` 之后,执行: + +```bash +npx icestack init +``` + +这个命令会在当前执行目录下生成一个 `icestack.config.cjs` 文件,默认内容如下: + +```js filename="icestack.config.cjs" +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui' +} + +module.exports = config +``` + +### 构建样式 + +```bash +npx icestack build +``` + +这个命令会在当前配置文件下的 `'./my-ui'` 目录构建出产物,接下来你就可以直接导入这些 `css`,`js` 文件,不过把它们交给 `tailwindcss` 进行使用更加方便。 + +## 作为 tailwindcss plugin 来使用 + +在 `tailwind.config.js` 中注册 `icestackPlugin` 插件,并传一个 `loadDirectory` 参数来定位刚刚产物的生成的位置: + +```js filename="tailwind.config.js" +const path = require('node:path') +const { icestackPlugin } = require('@icestack/tailwindcss') + +/** @type {import('tailwindcss').Config} */ +module.exports = { + // ... + plugins: [ + icestackPlugin({ + // 加载目录的绝对路径 + loadDirectory: path.resolve(__dirname, 'my-ui'), + // 是否注入 tailwindcss theme config + // 为 true 时,生成器的 primary success warning 这些颜色会进入 tailwindcss.theme.extend 配置 + // 你才能够使用 bg-primary / text-success + // 默认值: false + loadConfig: true + // ... + }) + ] +} +``` + +接着只要我们正常运行项目,就直接能够使用 `my-ui` 目录下,所有的 `CSS` 组件了! + +## 默认预设 + +在默认情况下, `@icestack/ui` 中内置了一套 `Css` 组件预设方案 `@icestack/preset-default`, 它吸收了 `daisyui` 的优秀写法,在很多地方都保持一致。 + +同时你可以使用配置项,对它原有的样式进行扩展和覆盖,[详见override](https://ui.icebreaker.top/zh-CN/docs/core/override) + +假如你想要自己从0到1构建你自己的 `UI` 框架的话,你可以在 `icestack.config.cjs` 把 `mode` 设置为 `none`, 此时不会去加载 `@icestack/preset-default` 这个预设。 + +## 从0到1进行构建 + +### 构建button组件 + +我们可以在项目 [awesome-tailwindcss](https://github.com/aniftyco/awesome-tailwindcss) 的组件库里列表里,挑选自己喜爱的一个 `button` 组件,它的`html`如下 + +```html + + Hover Me +
+
+``` + +### 组件样式提炼 + +然后我们开始提炼 `html`,把它的样式抽出: + +```html + + Hover Me + +``` + +把原先长传的 `class` 转换成 `@apply`, 并给包裹在选择器 `.btn`,然后把最后动画的的`div`元素转换成伪元素,并修改样式。 + +```scss +.btn { + @apply relative overflow-hidden bg-blue-600 focus:ring-4 focus:ring-blue-300 inline-flex items-center px-7 py-2.5 rounded-lg text-white justify-center; + + &::after { + content: ''; + @apply absolute inset-0 h-[200%] w-[200%] rotate-45 translate-x-[-75%] transition-all bg-white/30 z-20 duration-1000; + } + + &:hover::after { + @apply translate-x-[50%]; + } +} +``` + +### 写入配置文件 + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + button: { + selector: '.btn', + // selector is .btn + schema: ({ selector, params, types }) => { + return { + selector, + defaults: { + // return a string template, allow css + base: ` + ${selector} { + @apply relative overflow-hidden bg-blue-600 focus:ring-4 focus:ring-blue-300 inline-flex items-center px-7 py-2.5 rounded-lg text-white justify-center; + + &::after { + content: ''; + @apply absolute inset-0 h-[200%] w-[200%] rotate-45 translate-x-[-75%] transition-all bg-white/30 z-20 duration-1000; + } + + &:hover::after { + @apply translate-x-[50%]; + } + } + ` + } + } + } + } + } +} +module.exports = config +``` + +然后执行 `icestack build` 之后,`.btn` 就顺利的被 `tailwindcss plugin` 加载进来了,你可以这样写: + +```html + Hover Me +``` + +### 添加更多的颜色种类 + +比如我们有需求,默认情况下是 `bg-blue-600 focus:ring-blue-300` + +但是可以传入红色,黄色,等等其他颜色应该如何处理呢? + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + button: { + selector: '.btn', + // types 为默认的 primary / success ... 主题字符串数组 + schema: ({ selector, params, types }) => { + // add colors + const colors = ['red', 'yellow', 'green'] + return { + selector, + // utils > styled > base + defaults: { + base: `...previous-code`, + // add styled, allow css + styled: ` + ${colors + .map((color) => { + return `${selector}-${color}{ + @apply bg-${color}-600 focus:ring-${color}-300; + }` + }) + .join('\n')} + + ` + } + } + } + } + } +} +module.exports = config +``` + +构建完成之后,接下来你就可以直接使用: + +```html + + Default + + + Red + + + Yellow + + + Green + +``` + +### 添加更多的尺寸 + +假如我们要针对这个 `button` 组件添加更多的尺寸,我们可以这么设置: + +```js +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + button: { + selector: '.btn', + schema: ({ selector, params, types }) => { + // add colors + const colors = ['red', 'yellow', 'green'] + return { + selector, + // utils > styled > base + defaults: { + base: `...previous-code`, + styled: `...previous-code`, + // add sizes, allow css + utils: ` + ${selector}-xs{ + @apply px-3 py-1.5 rounded; + } + ${selector}-sm{ + @apply px-5 py-2 rounded-md; + } + ${selector}-md{ + @apply px-7 py-2.5 rounded-lg; + } + ${selector}-lg{ + @apply px-8 py-3 rounded-lg; + } + ` + } + } + } + } + } +} +module.exports = config +``` + +然后进行构建,便可以直接使用: + +```html + + xs + + + sm + + + md + + + lg + +``` + +### 更多 + +想必你也注意到了,`schema` 方法有多个参数: + +- `selector` 为选择器 +- `types` 为 `base` 选项中自动生成的颜色名称 +- `params` 为传入参数,可以根据参数的不同渲染组件不同的表现 + +我们可以根据不同的参数,渲染出不同的 `Css` 样式代码。 + +当然你也可以在 [`icestack`](https://ui.icebreaker.top/zh-CN/) 官网上找到更多的示例和用法。 + +欢迎大家试用! diff --git a/blog/zh-CN/20240201-postcss-cva.md b/blog/zh-CN/20240201-postcss-cva.md new file mode 100644 index 00000000..8841b301 --- /dev/null +++ b/blog/zh-CN/20240201-postcss-cva.md @@ -0,0 +1,278 @@ +![Image](https://pic4.zhimg.com/80/v2-28f7a013e24151181b30780280afe352.png) + +# 使用 postcss-cva 来生成 cva 方法吧 + +- [使用 postcss-cva 来生成 cva 方法吧](#使用-postcss-cva-来生成-cva-方法吧) + - [什么是 cva](#什么是-cva) + - [封装示例](#封装示例) + - [组成参数](#组成参数) + - [postcss-cva 的功能](#postcss-cva-的功能) + - [Css 示例](#css-示例) + - [原子化设计](#原子化设计) + - [注释参考](#注释参考) + - [生成cva函数](#生成cva函数) + - [Refers](#refers) + +## 什么是 cva + +`cva` 全称为 `class-variance-authority`, 它是一个非常适合制作那种,创建控制`Css`变体方法的类库,它非常的契合像 `tailwindcss` 这类的原子化思想。 + +在很多时候我们自己封装组件, 尤其是使用原子化思想去编写 `css` , 然后去封装组件,用它就对了! + +### 封装示例 + +那么如何用它进行封装呢?我们以封装一个直观的 `vue` 组件 `Button` 为例: + +```html + +``` + +接下来我们要根据这个组件,传入的 `Props` 来控制它的样式,包括颜色种类,大小,状态,形状等等。 + +那么假如使用样式去控制这些,我们通常会这么写: + +```html + + + +``` + +而 `cva` 就是帮助我们去生成这个 `getButtonClass` 函数的一个方法。 + +### 组成参数 + +一个 `cva` 的入参,通常包括 `4` 个部分: `base`,`variants`,`compoundVariants`,`defaultVariants`: + +```js +import { cva } from 'class-variance-authority' +// ⬇️ base +const button = cva(['font-semibold', 'border', 'rounded'], { + // ⬇️ variants + variants: { + intent: { + primary: ['bg-blue-500', 'text-white', 'border-transparent', 'hover:bg-blue-600'], + secondary: ['bg-white', 'text-gray-800', 'border-gray-400', 'hover:bg-gray-100'] + }, + size: { + small: ['text-sm', 'py-1', 'px-2'], + medium: ['text-base', 'py-2', 'px-4'] + } + }, + // ⬇️ compoundVariants + compoundVariants: [ + { + intent: 'primary', + size: 'medium', + class: 'uppercase' + } + ], + // ⬇️ defaultVariants + defaultVariants: { + intent: 'primary', + size: 'medium' + } +}) + +button() +// => "font-semibold border rounded bg-blue-500 text-white border-transparent hover:bg-blue-600 text-base py-2 px-4 uppercase" +button({ intent: 'secondary', size: 'small' }) +// => "font-semibold border rounded bg-white text-gray-800 border-gray-400 hover:bg-gray-100 text-sm py-1 px-2" +``` + +很多时候我们可以去构造出这样的函数,来封装我们的组件。这会让我们的代码非常的直观,该控制样式的就控制样式,该控制行为的就控制行为。所以用 `cva` 改造刚刚那个 `vue` `Button` 组件就很好。 + +但是假如我们项目不用原子化的`Css`类库呢?或者我们希望在编写 `Css` 时,顺便把 `cva` 函数给生成出来,那么你就要来使用 `postcss-cva` 了。 + +## postcss-cva 的功能 + +`postcss-cva` 是一个基于 `css ast` 分析的 `postcss` 插件。 + +它可以把你编写的 `Css` 注释,给转化成 `cva` 函数。 + +### Css 示例 + +来看一个简单的例子,在 `Button` 组件的封装过程中,写下了以下的 `Css` + +```css +/* @meta path="./buttonClass" */ +/* @dv size="md" */ +.btn { + /* @b */ + font-size: 16px; + background: gray; + border-radius: 4px; +} + +.btn-primary { + /* @v type="primary" */ + background: blue; + color: white; +} + +.btn-secondary { + /* @v type="secondary" */ + font-size: 22px; + color: yellow; +} + +.btn-disabled { + /* @cv type="primary" size="xs" */ + cursor: not-allowed; +} + +.btn-md { + /* @v size="md" */ + padding: 6px 10px; + font-size: 16px; +} + +.btn-xs { + /* @v size="xs" */ + padding: 2px 6px; + font-size: 14px; +} + +.btn-sm { + /* @v size="sm" */ + padding: 4px 8px; + font-size: 12px; +} +``` + +### 原子化设计 + +在其中我们定义了: + +- 它的基础类: `base`: `.btn` +- 它的变种类: `variants`: + - `.btn-primary`,`.btn-secondary` 来控制颜色种类 + - `.btn-md`,`.btn-xs`,`.btn-sm` 来控制大小 + - 更多的来控制,形状或者其他等等 +- 它的复合变种: `compoundVariants`: `.btn-disabled` (当满足传入参数 `type="primary" size="xs"` 时会触发) +- 它的默认变种: `defaultVariants`: `size="md"`(默认什么参数都不传的情况下使用 `size="md"`) + +### 注释参考 + +然后依照 `postcss-cva` 的注释参考: + +| keyword | target | type | description | +| ------- | ------------------ | ------ | --------------------------------------------- | +| `@b` | `base` | node | add current node selector to base | +| `@gb` | `base` | global | define base | +| `@v` | `variants` | node | add current node selector to variants | +| `@gv` | `variants` | global | define variants | +| `@cv` | `compoundVariants` | node | add current node selector to compoundVariants | +| `@gcv` | `compoundVariants` | global | define defaultVariants | +| `@dv` | `defaultVariants` | global | define defaultVariants | +| `@meta` | `meta` | global | define metadata | + +通过添加相对应的注释,我们定义了所有的变种。 + +> defined by `@meta path="./buttonClass"` + +同时也定义了 `cva` 函数的文件输出目录为,当前 `Button.vue` 文件所在目录下的 `buttonClass.ts` 文件 (默认格式为`ts`) + +### 生成cva函数 + +这样,再我们主运行函数,引入 `vue` 组件/ 注释所在`css`文件时,一个 `cva` 函数就被生成了出来: + +```ts +import { cva, VariantProps } from 'class-variance-authority' +const index = cva(['btn'], { + variants: { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'] + }, + size: { + md: ['btn-md'], + xs: ['btn-xs'], + sm: ['btn-sm'] + } + }, + compoundVariants: [{ + class: ['btn-disabled'], + type: ['primary'], + size: ['xs'] + }], + defaultVariants: { + size: 'md' + } +}) +export type Props = VariantProps +export default index +``` + +然后,我们就可以直接引入进行封装了! + +```html + + + +``` + +是不是非常的简单呢? + +`postcss-cva` 能够让你在设计和编写 `css` 的时候,就把 `cva` 函数给规划好了。 + +现在你不但可以直接把它作为一个外置的 `postcss` 插件来使用,而且已经被集成到了 +[IceStack](https://ui.icebreaker.top/zh-CN) 里面。 + +赶快用它来管理和生成你的 `Css UI` 吧。 + +## Refers + +[IceStack](https://ui.icebreaker.top/zh-CN) + +[postcss-cva](https://www.npmjs.com/package/postcss-cva) + +[cva.style](https://cva.style/) diff --git a/commitlint.config.ts b/commitlint.config.ts new file mode 100644 index 00000000..800f8a2c --- /dev/null +++ b/commitlint.config.ts @@ -0,0 +1,6 @@ +import type { UserConfig } from '@commitlint/types' +// import { RuleConfigSeverity } from '@commitlint/types' + +export default { + extends: ['@commitlint/config-conventional'], +} diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..30907248 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,7 @@ +import { icebreaker } from '@icebreakers/eslint-config' + +export default icebreaker( + { + ignores: ['**/fixtures/**'], + }, +) diff --git a/examples/unocss-sample-app/icestack.config.js b/examples/multiple-config/icestack.config.cjs similarity index 81% rename from examples/unocss-sample-app/icestack.config.js rename to examples/multiple-config/icestack.config.cjs index bae224c0..8c573f81 100644 --- a/examples/unocss-sample-app/icestack.config.js +++ b/examples/multiple-config/icestack.config.cjs @@ -2,7 +2,7 @@ * @type {import('@icestack/ui').Config} */ const config = { - outdir: './my-ui' + outdir: './my-ui', } module.exports = config diff --git a/examples/multiple-config/icestack.config.mjs b/examples/multiple-config/icestack.config.mjs new file mode 100644 index 00000000..af764342 --- /dev/null +++ b/examples/multiple-config/icestack.config.mjs @@ -0,0 +1,8 @@ +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', +} + +export default config diff --git a/examples/multiple-config/icestack.config.ts b/examples/multiple-config/icestack.config.ts new file mode 100644 index 00000000..9fddd4a5 --- /dev/null +++ b/examples/multiple-config/icestack.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from '@icestack/ui' + +export default defineConfig({ + outdir: './my-ui', +}) diff --git a/examples/multiple-config/none.config.ts b/examples/multiple-config/none.config.ts new file mode 100644 index 00000000..336db37e --- /dev/null +++ b/examples/multiple-config/none.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from '@icestack/ui' + +export default defineConfig({ + mode: 'none', + outdir: './my-ui', + base: { + themes: { + light: false, + dark: false, + }, + }, + clean: true, +}) diff --git a/examples/multiple-config/package.json b/examples/multiple-config/package.json new file mode 100644 index 00000000..4f97ca83 --- /dev/null +++ b/examples/multiple-config/package.json @@ -0,0 +1,16 @@ +{ + "name": "multiple-config", + "version": "1.0.0", + "private": true, + "description": "", + "author": "", + "license": "ISC", + "keywords": [], + "main": "index.js", + "scripts": { + "build": "icestack build -c none.config.ts" + }, + "devDependencies": { + "@icestack/ui": "workspace:^" + } +} diff --git a/examples/nuxt-admin-app/.eslintrc.cjs b/examples/nuxt-admin-app/.eslintrc.cjs index 1fe5ec66..87f98b8d 100644 --- a/examples/nuxt-admin-app/.eslintrc.cjs +++ b/examples/nuxt-admin-app/.eslintrc.cjs @@ -1,4 +1,4 @@ module.exports = { root: true, - extends: ["@nuxt/eslint-config", "plugin:prettier/recommended"], -}; \ No newline at end of file + extends: ['@nuxt/eslint-config', 'plugin:prettier/recommended'], +} diff --git a/examples/nuxt-admin-app/app.vue b/examples/nuxt-admin-app/app.vue index 767b16f6..15f544fa 100644 --- a/examples/nuxt-admin-app/app.vue +++ b/examples/nuxt-admin-app/app.vue @@ -1,3 +1,5 @@ + + - + diff --git a/examples/nuxt-admin-app/content/index.md b/examples/nuxt-admin-app/content/index.md index bb1a8e60..e630d6db 100644 --- a/examples/nuxt-admin-app/content/index.md +++ b/examples/nuxt-admin-app/content/index.md @@ -1 +1 @@ -# Hello Content \ No newline at end of file +# Hello Content diff --git a/examples/nuxt-admin-app/cva/button.ts b/examples/nuxt-admin-app/cva/button.ts new file mode 100644 index 00000000..c4ac62de --- /dev/null +++ b/examples/nuxt-admin-app/cva/button.ts @@ -0,0 +1,10 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['btn'], { + variants: {}, + compoundVariants: [], + defaultVariants: {}, +}) +export type Props = VariantProps +export default index diff --git a/examples/nuxt-admin-app/icestack.config.js b/examples/nuxt-admin-app/icestack.config.cjs similarity index 51% rename from examples/nuxt-admin-app/icestack.config.js rename to examples/nuxt-admin-app/icestack.config.cjs index 48f2af3c..5736e5d9 100644 --- a/examples/nuxt-admin-app/icestack.config.js +++ b/examples/nuxt-admin-app/icestack.config.cjs @@ -1,15 +1,16 @@ -const customThemes = require("./themes.js"); +const customThemes = require('./themes.cjs') /** * @type {import('@icestack/ui').Config} */ const config = { - outdir: "./my-ui", + outdir: './my-ui', base: { themes: { ...customThemes, }, + mediaDarkTheme: 'dim', }, -}; +} -module.exports = config; +module.exports = config diff --git a/examples/nuxt-admin-app/layouts/default.vue b/examples/nuxt-admin-app/layouts/default.vue index 714cd53d..b555f2dd 100644 --- a/examples/nuxt-admin-app/layouts/default.vue +++ b/examples/nuxt-admin-app/layouts/default.vue @@ -1,14 +1,53 @@ + + - diff --git a/examples/nuxt-admin-app/prettier.config.cjs b/examples/nuxt-admin-app/prettier.config.cjs index 8d929895..163d4141 100644 --- a/examples/nuxt-admin-app/prettier.config.cjs +++ b/examples/nuxt-admin-app/prettier.config.cjs @@ -1,3 +1,3 @@ module.exports = { - plugins: ['prettier-plugin-tailwindcss'] + plugins: ['prettier-plugin-tailwindcss'], } diff --git a/examples/nuxt-admin-app/tailwind.config.js b/examples/nuxt-admin-app/tailwind.config.js index 30484217..f5d020ff 100644 --- a/examples/nuxt-admin-app/tailwind.config.js +++ b/examples/nuxt-admin-app/tailwind.config.js @@ -1,30 +1,30 @@ -const path = require("node:path"); -const { icestackPlugin } = require("@icestack/tailwindcss"); +const path = require('node:path') const { iconsPlugin, getIconCollections, -} = require("@egoist/tailwindcss-icons"); +} = require('@egoist/tailwindcss-icons') +const { icestackPlugin } = require('@icestack/tailwindcss') /** @type {import('tailwindcss').Config} */ export default { content: [ - "./components/**/*.{js,vue,ts}", - "./layouts/**/*.vue", - "./pages/**/*.vue", - "./plugins/**/*.{js,ts}", - "./app.vue", - "./error.vue", + './components/**/*.{js,vue,ts}', + './layouts/**/*.vue', + './pages/**/*.vue', + './plugins/**/*.{js,ts}', + './app.vue', + './error.vue', ], - darkMode: ["class", '[data-mode="dark"]'], + darkMode: ['class', '[data-mode="dark"]'], theme: { extend: {}, }, plugins: [ icestackPlugin({ loadConfig: true, - loadDirectory: path.resolve(__dirname, "my-ui"), + loadDirectory: path.resolve(__dirname, 'my-ui'), }), iconsPlugin({ - collections: getIconCollections(["mdi", "logos"]), + collections: getIconCollections(['mdi', 'logos']), }), ], -}; +} diff --git a/examples/nuxt-admin-app/themes.cjs b/examples/nuxt-admin-app/themes.cjs new file mode 100644 index 00000000..4a8c2602 --- /dev/null +++ b/examples/nuxt-admin-app/themes.cjs @@ -0,0 +1,79 @@ +const { sharedExtraColors } = require('@icestack/ui/defaults') + +/** + * @type {import('@icestack/ui').Config['base']} + */ +module.exports = { + cupcake: { + types: { + primary: '#65c3c8', + secondary: '#ef9fbc', + accent: '#eeaf3a', + neutral: '#291334', + }, + extraColors: { + ...sharedExtraColors.light, + 'base-100': '#faf7f5', + 'base-200': '#efeae6', + 'base-300': '#e7e2df', + 'base-content': '#291334', + }, + }, + nord: { + types: { + 'primary': '#5E81AC', + 'secondary': '#81A1C1', + 'accent': '#88C0D0', + 'neutral': '#4C566A', + 'neutral-content': '#D8DEE9', + 'info': '#B48EAD', + 'success': '#A3BE8C', + 'warning': '#EBCB8B', + 'error': '#BF616A', + }, + extraColors: { + ...sharedExtraColors.light, + 'base-100': '#ECEFF4', + 'base-200': '#E5E9F0', + 'base-300': '#D8DEE9', + 'base-content': '#2E3440', + }, + }, + dracula: { + types: { + primary: '#ff79c6', + secondary: '#bd93f9', + accent: '#ffb86c', + neutral: '#414558', + info: '#8be9fd', + success: '#50fa7b', + warning: '#f1fa8c', + error: '#ff5555', + }, + extraColors: { + ...sharedExtraColors.dark, + 'base-100': '#282a36', + 'base-content': '#f8f8f2', + }, + }, + dim: { + types: { + 'primary': '#9FE88D', + 'secondary': '#FF7D5C', + 'accent': '#C792E9', + 'neutral': '#1c212b', + 'neutral-content': '#B2CCD6', + 'info': '#28ebff', + 'success': '#62efbd', + 'warning': '#efd057', + 'error': '#ffae9b', + }, + extraColors: { + ...sharedExtraColors.dark, + 'base-100': '#2A303C', + 'base-200': '#242933', + 'base-300': '#20252E', + 'base-content': '#B2CCD6', + }, + }, +} diff --git a/examples/nuxt-admin-app/themes.js b/examples/nuxt-admin-app/themes.js deleted file mode 100644 index 199e18ee..00000000 --- a/examples/nuxt-admin-app/themes.js +++ /dev/null @@ -1,79 +0,0 @@ -const { sharedExtraColors } = require("@icestack/ui/defaults"); - -/** - * @type {import('@icestack/ui').Config['base']} - */ -module.exports = { - cupcake: { - types: { - primary: "#65c3c8", - secondary: "#ef9fbc", - accent: "#eeaf3a", - neutral: "#291334", - }, - extraColors: { - ...sharedExtraColors.light, - "base-100": "#faf7f5", - "base-200": "#efeae6", - "base-300": "#e7e2df", - "base-content": "#291334", - }, - }, - nord: { - types: { - primary: "#5E81AC", - secondary: "#81A1C1", - accent: "#88C0D0", - neutral: "#4C566A", - "neutral-content": "#D8DEE9", - info: "#B48EAD", - success: "#A3BE8C", - warning: "#EBCB8B", - error: "#BF616A", - }, - extraColors: { - ...sharedExtraColors.light, - "base-100": "#ECEFF4", - "base-200": "#E5E9F0", - "base-300": "#D8DEE9", - "base-content": "#2E3440", - }, - }, - dracula: { - types: { - primary: "#ff79c6", - secondary: "#bd93f9", - accent: "#ffb86c", - neutral: "#414558", - info: "#8be9fd", - success: "#50fa7b", - warning: "#f1fa8c", - error: "#ff5555", - }, - extraColors: { - ...sharedExtraColors.dark, - "base-100": "#282a36", - "base-content": "#f8f8f2", - }, - }, - dim: { - types: { - primary: "#9FE88D", - secondary: "#FF7D5C", - accent: "#C792E9", - neutral: "#1c212b", - "neutral-content": "#B2CCD6", - info: "#28ebff", - success: "#62efbd", - warning: "#efd057", - error: "#ffae9b", - }, - extraColors: { - ...sharedExtraColors.dark, - "base-100": "#2A303C", - "base-200": "#242933", - "base-300": "#20252E", - "base-content": "#B2CCD6", - }, - }, -}; diff --git a/examples/postcss-icestack-plugin/.gitignore b/examples/postcss-icestack-plugin/.gitignore new file mode 100644 index 00000000..87f47328 --- /dev/null +++ b/examples/postcss-icestack-plugin/.gitignore @@ -0,0 +1 @@ +my-ui diff --git a/examples/postcss-icestack-plugin/CHANGELOG.md b/examples/postcss-icestack-plugin/CHANGELOG.md new file mode 100644 index 00000000..8a67f6dc --- /dev/null +++ b/examples/postcss-icestack-plugin/CHANGELOG.md @@ -0,0 +1,64 @@ +# postcss-icestack-plugin + +## 0.0.9 + +### Patch Changes + +- Updated dependencies [[`591e6c3`](https://github.com/sonofmagic/icestack/commit/591e6c3c5ae3aa555f13d0f8fa2d6600fbbc0cbb)]: + - @icestack/cva@1.3.8 + +## 0.0.8 + +### Patch Changes + +- Updated dependencies [[`aecf8f1`](https://github.com/sonofmagic/icestack/commit/aecf8f1f58e0dc540d242a96bf45217b9f6ddd3f)]: + - @icestack/cva@1.3.7 + +## 0.0.7 + +### Patch Changes + +- Updated dependencies [[`d3c8ca0`](https://github.com/sonofmagic/icestack/commit/d3c8ca0fbb7e9a3eb940bb7e06cb1fe5ecf39966)]: + - @icestack/cva@1.3.6 + +## 0.0.6 + +### Patch Changes + +- Updated dependencies [[`ff8f78f`](https://github.com/sonofmagic/icestack/commit/ff8f78f27cf8bf7cbe82b00ea71ae610507991e0)]: + - @icestack/cva@1.3.5 + +## 0.0.5 + +### Patch Changes + +- Updated dependencies [[`14288ba`](https://github.com/sonofmagic/icestack/commit/14288baf04d607a23382e8770042d9a9140d2142)]: + - @icestack/cva@1.3.4 + +## 0.0.4 + +### Patch Changes + +- Updated dependencies [[`e72e248`](https://github.com/sonofmagic/icestack/commit/e72e2483416f9d10401f8d2dfb991c158c3d2cce)]: + - @icestack/cva@1.3.3 + +## 0.0.3 + +### Patch Changes + +- Updated dependencies [[`8aafb36`](https://github.com/sonofmagic/icestack/commit/8aafb36725359619bf94a40079b387d747ff02a5)]: + - @icestack/cva@1.3.2 + +## 0.0.2 + +### Patch Changes + +- Updated dependencies [[`dc76f5c`](https://github.com/sonofmagic/icestack/commit/dc76f5c4c3f06aba8f2d0f8982d48ddadf7ec741)]: + - @icestack/cva@1.3.1 + +## 0.0.1 + +### Patch Changes + +- Updated dependencies [[`4647129`](https://github.com/sonofmagic/icestack/commit/4647129503b4f4872a354772d65daf8a42403594)]: + - @icestack/cva@1.3.0 diff --git a/examples/postcss-icestack-plugin/icestack.config.cjs b/examples/postcss-icestack-plugin/icestack.config.cjs new file mode 100644 index 00000000..458c3f5f --- /dev/null +++ b/examples/postcss-icestack-plugin/icestack.config.cjs @@ -0,0 +1,56 @@ +const css = String.raw + +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + outdir: './my-ui', + components: { + xxx: { + selector: '.xxx', + schema: ({ selector }) => { + return { + selector, + defaults: { + base: css` + ${selector} { + @apply flex bg-[#000] h-[100px] w-10; + } + `, + }, + } + }, + }, + yyy: { + selector: '.yyy', + schema: ({ selector }) => { + return { + selector, + defaults: { + base: css` + ${selector} { + @apply flex bg-[#592fa7] h-[100px] w-10; + &::before { + content: 'icebreaker'; + @apply text-yellow-700 text-2xl flex items-center justify-center; + } + } + `, + styled: css` + ${selector} { + @apply h-[200px] w-20; + } + `, + utils: css` + ${selector} { + @apply h-[300px] w-32; + } + `, + }, + } + }, + }, + }, +} + +module.exports = config diff --git a/examples/postcss-icestack-plugin/index.html b/examples/postcss-icestack-plugin/index.html new file mode 100644 index 00000000..dde16aaf --- /dev/null +++ b/examples/postcss-icestack-plugin/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + Vue + TS + + +
+ + + diff --git a/examples/postcss-icestack-plugin/package.json b/examples/postcss-icestack-plugin/package.json new file mode 100644 index 00000000..c88e278f --- /dev/null +++ b/examples/postcss-icestack-plugin/package.json @@ -0,0 +1,25 @@ +{ + "name": "postcss-icestack-plugin", + "type": "module", + "version": "0.0.9", + "private": true, + "scripts": { + "dev": "vite", + "build": "vue-tsc && vite build", + "preview": "vite preview", + "build:ui": "icestack build --clean" + }, + "dependencies": { + "@icestack/cva": "workspace:^", + "vue": "^3.5.15" + }, + "devDependencies": { + "@icestack/postcss": "workspace:^", + "@icestack/ui": "workspace:^", + "@vitejs/plugin-vue": "^5.2.4", + "sass": "^1.89.0", + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vue-tsc": "^2.2.10" + } +} diff --git a/examples/postcss-icestack-plugin/postcss.config.cjs b/examples/postcss-icestack-plugin/postcss.config.cjs new file mode 100644 index 00000000..70645a5e --- /dev/null +++ b/examples/postcss-icestack-plugin/postcss.config.cjs @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + '@icestack/postcss': {}, + }, +} diff --git a/examples/postcss-icestack-plugin/src/App.vue b/examples/postcss-icestack-plugin/src/App.vue new file mode 100644 index 00000000..41f297ff --- /dev/null +++ b/examples/postcss-icestack-plugin/src/App.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/examples/postcss-icestack-plugin/src/components/IceButton.vue b/examples/postcss-icestack-plugin/src/components/IceButton.vue new file mode 100644 index 00000000..caa26387 --- /dev/null +++ b/examples/postcss-icestack-plugin/src/components/IceButton.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/examples/postcss-icestack-plugin/src/cva.ts b/examples/postcss-icestack-plugin/src/cva.ts new file mode 100644 index 00000000..84f11616 --- /dev/null +++ b/examples/postcss-icestack-plugin/src/cva.ts @@ -0,0 +1,3 @@ +import { createCva } from '@icestack/cva' + +export default createCva() diff --git a/examples/postcss-icestack-plugin/src/index.scss b/examples/postcss-icestack-plugin/src/index.scss new file mode 100644 index 00000000..42a56e87 --- /dev/null +++ b/examples/postcss-icestack-plugin/src/index.scss @@ -0,0 +1,9 @@ +@icestack base; +// @icestack base.legacy; +// @icestack base; +// @icestack base; +// @icestack base; +// @icestack base; +.sad { + color: red; +} diff --git a/examples/postcss-icestack-plugin/src/main.ts b/examples/postcss-icestack-plugin/src/main.ts new file mode 100644 index 00000000..7510df04 --- /dev/null +++ b/examples/postcss-icestack-plugin/src/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import App from './App.vue' +import './index.scss' + +createApp(App).mount('#app') diff --git a/examples/postcss-icestack-plugin/src/vite-env.d.ts b/examples/postcss-icestack-plugin/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/examples/postcss-icestack-plugin/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/postcss-icestack-plugin/tailwind.config.js b/examples/postcss-icestack-plugin/tailwind.config.js new file mode 100644 index 00000000..5c8bc02c --- /dev/null +++ b/examples/postcss-icestack-plugin/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [], + theme: { + extend: {}, + }, + plugins: [], +} diff --git a/examples/postcss-icestack-plugin/tsconfig.json b/examples/postcss-icestack-plugin/tsconfig.json new file mode 100644 index 00000000..2edd68e8 --- /dev/null +++ b/examples/postcss-icestack-plugin/tsconfig.json @@ -0,0 +1,41 @@ +{ + "compilerOptions": { + "target": "ES2020", + "jsx": "preserve", + "lib": [ + "ES2020", + "DOM", + "DOM.Iterable" + ], + "useDefineForClassFields": true, + "baseUrl": ".", + "module": "ESNext", + /* Bundler mode */ + "moduleResolution": "bundler", + "paths": { + "@/*": [ + "src/*" + ] + }, + "resolveJsonModule": true, + "allowImportingTsExtensions": true, + /* Linting */ + "strict": true, + "noFallthroughCasesInSwitch": true, + "noEmit": true, + "skipLibCheck": true, + "isolatedModules": true, + "noUnusedLocals": true, + "noUnusedParameters": true + }, + "references": [ + { + "path": "./tsconfig.node.json" + } + ], + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue" + ] +} diff --git a/examples/postcss-icestack-plugin/tsconfig.node.json b/examples/postcss-icestack-plugin/tsconfig.node.json new file mode 100644 index 00000000..dde08948 --- /dev/null +++ b/examples/postcss-icestack-plugin/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "skipLibCheck": true + }, + "include": ["vite.config.ts"] +} diff --git a/examples/postcss-icestack-plugin/vite.config.ts b/examples/postcss-icestack-plugin/vite.config.ts new file mode 100644 index 00000000..c3fa62d8 --- /dev/null +++ b/examples/postcss-icestack-plugin/vite.config.ts @@ -0,0 +1,7 @@ +import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], +}) diff --git a/examples/raw-html-add-new-theme/icestack.config.js b/examples/raw-html-add-new-theme/icestack.config.js index 7a536257..1e5279e9 100644 --- a/examples/raw-html-add-new-theme/icestack.config.js +++ b/examples/raw-html-add-new-theme/icestack.config.js @@ -6,9 +6,9 @@ const config = { outdir: './my-ui', base: { themes: { - ...customThemes - } - } + ...customThemes, + }, + }, } module.exports = config diff --git a/examples/raw-html-add-new-theme/index.html b/examples/raw-html-add-new-theme/index.html index 9e15c097..390e7609 100644 --- a/examples/raw-html-add-new-theme/index.html +++ b/examples/raw-html-add-new-theme/index.html @@ -1,65 +1,62 @@ - + + + + + Document + + + + + + + - - - - Document - - - - - - - - - - - - - - - - -
-

Button

- - - - - - + + + + + + + + +
+

Button

+ + + + + + - - - - - + + + + + - - - - -
- - - - \ No newline at end of file + + + diff --git a/examples/raw-html-add-new-theme/package.json b/examples/raw-html-add-new-theme/package.json index 7960f184..d5d1cb62 100644 --- a/examples/raw-html-add-new-theme/package.json +++ b/examples/raw-html-add-new-theme/package.json @@ -3,15 +3,15 @@ "version": "1.0.0", "private": true, "description": "", + "author": "", + "license": "ISC", + "keywords": [], "main": "index.js", "scripts": { "build:ui": "icestack build" }, - "keywords": [], - "author": "", - "license": "ISC", "devDependencies": { "@icestack/ui": "workspace:^", - "tailwindcss": "^3.3.5" + "tailwindcss": "^4.1.7" } -} \ No newline at end of file +} diff --git a/examples/raw-html-add-new-theme/themes.js b/examples/raw-html-add-new-theme/themes.js index a6cf2aa4..4a8c2602 100644 --- a/examples/raw-html-add-new-theme/themes.js +++ b/examples/raw-html-add-new-theme/themes.js @@ -9,35 +9,35 @@ module.exports = { primary: '#65c3c8', secondary: '#ef9fbc', accent: '#eeaf3a', - neutral: '#291334' + neutral: '#291334', }, extraColors: { ...sharedExtraColors.light, 'base-100': '#faf7f5', 'base-200': '#efeae6', 'base-300': '#e7e2df', - 'base-content': '#291334' - } + 'base-content': '#291334', + }, }, nord: { types: { - primary: '#5E81AC', - secondary: '#81A1C1', - accent: '#88C0D0', - neutral: '#4C566A', + 'primary': '#5E81AC', + 'secondary': '#81A1C1', + 'accent': '#88C0D0', + 'neutral': '#4C566A', 'neutral-content': '#D8DEE9', - info: '#B48EAD', - success: '#A3BE8C', - warning: '#EBCB8B', - error: '#BF616A' + 'info': '#B48EAD', + 'success': '#A3BE8C', + 'warning': '#EBCB8B', + 'error': '#BF616A', }, extraColors: { ...sharedExtraColors.light, 'base-100': '#ECEFF4', 'base-200': '#E5E9F0', 'base-300': '#D8DEE9', - 'base-content': '#2E3440' - } + 'base-content': '#2E3440', + }, }, dracula: { types: { @@ -48,32 +48,32 @@ module.exports = { info: '#8be9fd', success: '#50fa7b', warning: '#f1fa8c', - error: '#ff5555' + error: '#ff5555', }, extraColors: { ...sharedExtraColors.dark, 'base-100': '#282a36', - 'base-content': '#f8f8f2' - } + 'base-content': '#f8f8f2', + }, }, dim: { types: { - primary: '#9FE88D', - secondary: '#FF7D5C', - accent: '#C792E9', - neutral: '#1c212b', + 'primary': '#9FE88D', + 'secondary': '#FF7D5C', + 'accent': '#C792E9', + 'neutral': '#1c212b', 'neutral-content': '#B2CCD6', - info: '#28ebff', - success: '#62efbd', - warning: '#efd057', - error: '#ffae9b' + 'info': '#28ebff', + 'success': '#62efbd', + 'warning': '#efd057', + 'error': '#ffae9b', }, extraColors: { ...sharedExtraColors.dark, 'base-100': '#2A303C', 'base-200': '#242933', 'base-300': '#20252E', - 'base-content': '#B2CCD6' - } - } + 'base-content': '#B2CCD6', + }, + }, } diff --git a/examples/raw-html-add-new-type/icestack.config.js b/examples/raw-html-add-new-type/icestack.config.js index 72e8d129..7b2c02d0 100644 --- a/examples/raw-html-add-new-type/icestack.config.js +++ b/examples/raw-html-add-new-type/icestack.config.js @@ -8,25 +8,25 @@ const config = { light: { types: { secondary: { - secondary: '#faad14', + 'secondary': '#faad14', 'secondary-content': '#ffffff', 'secondary-hover': '#ffc53d', - 'secondary-active': '#d48806' - } - } + 'secondary-active': '#d48806', + }, + }, }, dark: { types: { secondary: { - secondary: '#d89614', + 'secondary': '#d89614', 'secondary-content': '#ffffff', 'secondary-hover': '#aa7714', - 'secondary-active': '#e8b339' - } - } - } - } - } + 'secondary-active': '#e8b339', + }, + }, + }, + }, + }, } module.exports = config diff --git a/examples/raw-html-add-new-type/index.html b/examples/raw-html-add-new-type/index.html index 5781a4cd..aafb6bbf 100644 --- a/examples/raw-html-add-new-type/index.html +++ b/examples/raw-html-add-new-type/index.html @@ -1,64 +1,59 @@ - + - - - - - Document - - - - - - - - - -
- -

Button

-

Default Types/Sizes

- - - - - - - - - - - - - - -
-
-

new type "secondary"

- - -
- + + +
+ +

Button

+

Default Types/Sizes

+ + + + + + + + + + + + +
+
+

new type "secondary"

+ + +
+ - - - \ No newline at end of file + + + diff --git a/examples/raw-html-add-new-type/package.json b/examples/raw-html-add-new-type/package.json index 2d17e300..f12b4503 100644 --- a/examples/raw-html-add-new-type/package.json +++ b/examples/raw-html-add-new-type/package.json @@ -1,18 +1,18 @@ { "name": "add-new-type", - "private": true, "version": "1.0.0", + "private": true, "description": "", + "author": "", + "license": "ISC", + "keywords": [], "main": "index.js", "scripts": { "watch:ui": "icestack watch", "build:ui": "icestack build" }, - "keywords": [], - "author": "", - "license": "ISC", "devDependencies": { "@icestack/ui": "workspace:^", - "tailwindcss": "^3.3.5" + "tailwindcss": "^4.1.7" } -} \ No newline at end of file +} diff --git a/examples/raw-html-extra/button.json b/examples/raw-html-extra/button.json index 5f881692..37fc3b81 100644 --- a/examples/raw-html-extra/button.json +++ b/examples/raw-html-extra/button.json @@ -827,4 +827,4 @@ } } } -} \ No newline at end of file +} diff --git a/examples/raw-html-extra/icestack.config.js b/examples/raw-html-extra/icestack.config.js index 6b928ee7..28f418bb 100644 --- a/examples/raw-html-extra/icestack.config.js +++ b/examples/raw-html-extra/icestack.config.js @@ -11,9 +11,9 @@ const config = { height: auto; min-height: auto; } - ` - } - } + `, + }, + }, } module.exports = config diff --git a/examples/raw-html-extra/index.html b/examples/raw-html-extra/index.html index 2d6b91c7..0f49537e 100644 --- a/examples/raw-html-extra/index.html +++ b/examples/raw-html-extra/index.html @@ -1,39 +1,36 @@ - + + + + + Document + + + + + + - - - - Document - - - - - - - - -
-

Button

-

Default

- - - - - - -

Outline

- - - - -

Sizes

- - - - -
- - - - \ No newline at end of file + +
+

Button

+

Default

+ + + + + + +

Outline

+ + + + +

Sizes

+ + + + +
+ + diff --git a/examples/raw-html-extra/package.json b/examples/raw-html-extra/package.json index ef236d51..1cb896fd 100644 --- a/examples/raw-html-extra/package.json +++ b/examples/raw-html-extra/package.json @@ -1,17 +1,17 @@ { "name": "override-extend-extra", - "private": true, "version": "1.0.0", + "private": true, "description": "", + "author": "", + "license": "ISC", + "keywords": [], "main": "index.js", "scripts": { "build:ui": "icestack build" }, - "keywords": [], - "author": "", - "license": "ISC", "devDependencies": { "@icestack/ui": "workspace:^", - "tailwindcss": "^3.3.5" + "tailwindcss": "^4.1.7" } } diff --git a/examples/raw-html-usage/icestack.config.js b/examples/raw-html-usage/icestack.config.js index bae224c0..8c573f81 100644 --- a/examples/raw-html-usage/icestack.config.js +++ b/examples/raw-html-usage/icestack.config.js @@ -2,7 +2,7 @@ * @type {import('@icestack/ui').Config} */ const config = { - outdir: './my-ui' + outdir: './my-ui', } module.exports = config diff --git a/examples/raw-html-usage/index.html b/examples/raw-html-usage/index.html index 6e2a1f0a..95200060 100644 --- a/examples/raw-html-usage/index.html +++ b/examples/raw-html-usage/index.html @@ -1,39 +1,36 @@ - + + + + + Document + + + + + + - - - - Document - - - - - - - - -
-

Button

- - - - - - - - - - - - - - - - - -
- - - - \ No newline at end of file + +
+

Button

+ + + + + + + + + + + + + + + + + +
+ + diff --git a/examples/raw-html-usage/package.json b/examples/raw-html-usage/package.json index 04d4de63..aa001806 100644 --- a/examples/raw-html-usage/package.json +++ b/examples/raw-html-usage/package.json @@ -1,17 +1,17 @@ { "name": "raw-html", - "private": true, "version": "1.0.0", + "private": true, "description": "", + "author": "", + "license": "ISC", + "keywords": [], "main": "index.js", "scripts": { "build:ui": "icestack build" }, - "keywords": [], - "author": "", - "license": "ISC", "devDependencies": { "@icestack/ui": "workspace:^", - "tailwindcss": "^3.3.5" + "tailwindcss": "^4.1.7" } -} \ No newline at end of file +} diff --git a/examples/start-from-scratch/.gitignore b/examples/start-from-scratch/.gitignore new file mode 100644 index 00000000..263e1053 --- /dev/null +++ b/examples/start-from-scratch/.gitignore @@ -0,0 +1,26 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +my-ui diff --git a/examples/start-from-scratch/.vscode/extensions.json b/examples/start-from-scratch/.vscode/extensions.json new file mode 100644 index 00000000..c0a6e5a4 --- /dev/null +++ b/examples/start-from-scratch/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] +} diff --git a/examples/start-from-scratch/cva/btn.ts b/examples/start-from-scratch/cva/btn.ts new file mode 100644 index 00000000..21d7e6c8 --- /dev/null +++ b/examples/start-from-scratch/cva/btn.ts @@ -0,0 +1,31 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['btn'], { + variants: { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'], + }, + size: { + md: ['btn-md'], + xs: ['btn-xs'], + sm: ['btn-sm'], + }, + }, + compoundVariants: [{ + class: ['btn-pointer'], + type: ['primary'], + size: ['md'], + }, { + class: ['btn-disabled'], + type: ['primary'], + size: ['xs'], + }], + defaultVariants: { + size: 'md', + type: 'primary', + }, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/cva/button.ts b/examples/start-from-scratch/cva/button.ts new file mode 100644 index 00000000..9c452bc4 --- /dev/null +++ b/examples/start-from-scratch/cva/button.ts @@ -0,0 +1,10 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['cbtn'], { + variants: {}, + compoundVariants: [], + defaultVariants: {}, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/cva/com.ts b/examples/start-from-scratch/cva/com.ts new file mode 100644 index 00000000..bcdc5a7e --- /dev/null +++ b/examples/start-from-scratch/cva/com.ts @@ -0,0 +1,30 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['com'], { + variants: { + type: { + p: ['com-p'], + z: ['com-z'], + }, + size: { + md: ['com-md'], + xs: ['com-xs'], + }, + }, + compoundVariants: [{ + class: ['com-pointer'], + type: ['p'], + size: ['xs'], + }, { + class: ['com-disabled'], + type: ['p'], + size: ['md'], + }], + defaultVariants: { + type: 'p', + size: 'xs', + }, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/icestack.config.cjs b/examples/start-from-scratch/icestack.config.cjs new file mode 100644 index 00000000..0b5d9d01 --- /dev/null +++ b/examples/start-from-scratch/icestack.config.cjs @@ -0,0 +1,37 @@ +const css = String.raw + +/** + * @type {import('@icestack/ui').Config} + */ +const config = { + mode: 'none', + outdir: './my-ui', + components: { + button: { + selector: '.cbtn', + schema: ({ selector }) => { + return { + selector, + defaults: { + base: css` + ${selector} { + @apply relative overflow-hidden bg-blue-600 focus:ring-4 focus:ring-blue-300 inline-flex items-center px-7 py-2.5 rounded-lg text-white justify-center; + + &::after { + content: ''; + @apply absolute inset-0 h-[200%] w-[200%] rotate-45 translate-x-[-75%] transition-all bg-white/30 z-20 duration-1000; + } + + &:hover::after { + @apply translate-x-[50%]; + } + } + `, + }, + } + }, + }, + }, +} + +module.exports = config diff --git a/examples/start-from-scratch/index.html b/examples/start-from-scratch/index.html new file mode 100644 index 00000000..dde16aaf --- /dev/null +++ b/examples/start-from-scratch/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + Vue + TS + + +
+ + + diff --git a/examples/start-from-scratch/package.json b/examples/start-from-scratch/package.json new file mode 100644 index 00000000..d8274254 --- /dev/null +++ b/examples/start-from-scratch/package.json @@ -0,0 +1,30 @@ +{ + "name": "start-from-scratch", + "type": "module", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "npm run build:ui && vite", + "build": "vue-tsc && vite build", + "preview": "vite preview", + "build:ui": "icestack build --clean", + "_xx": "cross-env DEBUG=true " + }, + "dependencies": { + "@mdi/font": "^7.4.47", + "class-variance-authority": "^0.7.1", + "vue": "^3.5.15", + "vuetify": "^3.8.6" + }, + "devDependencies": { + "@icestack/tailwindcss": "workspace:^", + "@icestack/ui": "workspace:^", + "@vitejs/plugin-vue": "^5.2.4", + "postcss-cva": "workspace:^", + "sass": "^1.89.0", + "tailwindcss": "^4.1.7", + "typescript": "^5.8.3", + "vite": "^6.3.5", + "vue-tsc": "^2.2.10" + } +} diff --git a/examples/start-from-scratch/plugin.cjs b/examples/start-from-scratch/plugin.cjs new file mode 100644 index 00000000..907a80dc --- /dev/null +++ b/examples/start-from-scratch/plugin.cjs @@ -0,0 +1,16 @@ +/** + * @type {import('postcss').PluginCreator} + */ +function plugin(options = {}) { + // const ctx = options.ctx + + // console.log('---------------') + return { + postcssPlugin: 'custom-postcss-plugin', + // Root() { + // console.log('root:') + // } + } +} +plugin.postcss = true +module.exports = plugin diff --git a/examples/start-from-scratch/postcss.config.cjs b/examples/start-from-scratch/postcss.config.cjs new file mode 100644 index 00000000..5d33a865 --- /dev/null +++ b/examples/start-from-scratch/postcss.config.cjs @@ -0,0 +1,8 @@ +module.exports = { + plugins: { + 'postcss-cva': {}, + 'tailwindcss': {}, + 'autoprefixer': {}, + './plugin.cjs': {}, + }, +} diff --git a/examples/start-from-scratch/src/App.vue b/examples/start-from-scratch/src/App.vue new file mode 100644 index 00000000..ae8b277f --- /dev/null +++ b/examples/start-from-scratch/src/App.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/examples/start-from-scratch/src/components/IceButton.vue b/examples/start-from-scratch/src/components/IceButton.vue new file mode 100644 index 00000000..e26427e4 --- /dev/null +++ b/examples/start-from-scratch/src/components/IceButton.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/examples/start-from-scratch/src/components/IceCom.vue b/examples/start-from-scratch/src/components/IceCom.vue new file mode 100644 index 00000000..371d1792 --- /dev/null +++ b/examples/start-from-scratch/src/components/IceCom.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/examples/start-from-scratch/src/components/btn.ts b/examples/start-from-scratch/src/components/btn.ts new file mode 100644 index 00000000..21d7e6c8 --- /dev/null +++ b/examples/start-from-scratch/src/components/btn.ts @@ -0,0 +1,31 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['btn'], { + variants: { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'], + }, + size: { + md: ['btn-md'], + xs: ['btn-xs'], + sm: ['btn-sm'], + }, + }, + compoundVariants: [{ + class: ['btn-pointer'], + type: ['primary'], + size: ['md'], + }, { + class: ['btn-disabled'], + type: ['primary'], + size: ['xs'], + }], + defaultVariants: { + size: 'md', + type: 'primary', + }, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/src/components/buttonClass.ts b/examples/start-from-scratch/src/components/buttonClass.ts new file mode 100644 index 00000000..d9e88612 --- /dev/null +++ b/examples/start-from-scratch/src/components/buttonClass.ts @@ -0,0 +1,30 @@ +import { cva, type VariantProps } from 'class-variance-authority' + +export const base = ['btn'] +export const variants = { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'], + third: ['btn-third'], + }, + disabled: { + true: ['btn-disabled'], + }, + size: { + lg: ['btn-lg'], + md: ['btn-md'], + sm: ['btn-sm'], + xs: ['btn-xs'], + }, +} +export const compoundVariants = [] +export const defaultVariants = {} +const index = cva(base, { + variants, + // @ts-ignore + compoundVariants, + // @ts-ignore + defaultVariants, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/src/components/xx/btn.ts b/examples/start-from-scratch/src/components/xx/btn.ts new file mode 100644 index 00000000..21d7e6c8 --- /dev/null +++ b/examples/start-from-scratch/src/components/xx/btn.ts @@ -0,0 +1,31 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['btn'], { + variants: { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'], + }, + size: { + md: ['btn-md'], + xs: ['btn-xs'], + sm: ['btn-sm'], + }, + }, + compoundVariants: [{ + class: ['btn-pointer'], + type: ['primary'], + size: ['md'], + }, { + class: ['btn-disabled'], + type: ['primary'], + size: ['xs'], + }], + defaultVariants: { + size: 'md', + type: 'primary', + }, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/src/main.ts b/examples/start-from-scratch/src/main.ts new file mode 100644 index 00000000..ded8b2c1 --- /dev/null +++ b/examples/start-from-scratch/src/main.ts @@ -0,0 +1,23 @@ +import { createApp } from 'vue' +import { createVuetify } from 'vuetify' + +import * as components from 'vuetify/components' +import * as directives from 'vuetify/directives' +import { aliases, mdi } from 'vuetify/iconsets/mdi' +import App from './App.vue' +import './style.scss' +import 'vuetify/styles' +import '@mdi/font/css/materialdesignicons.css' + +const vuetify = createVuetify({ + components, + directives, + icons: { + defaultSet: 'mdi', + aliases, + sets: { + mdi, + }, + }, +}) +createApp(App).use(vuetify).mount('#app') diff --git a/examples/start-from-scratch/src/style.scss b/examples/start-from-scratch/src/style.scss new file mode 100644 index 00000000..f279e616 --- /dev/null +++ b/examples/start-from-scratch/src/style.scss @@ -0,0 +1,8 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.xxx { + background-color: theme('colors.black' / 75%); + color: theme('colors.white / 10%'); +} diff --git a/examples/start-from-scratch/src/vite-env.d.ts b/examples/start-from-scratch/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/examples/start-from-scratch/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/examples/start-from-scratch/src/xx/btn.ts b/examples/start-from-scratch/src/xx/btn.ts new file mode 100644 index 00000000..21d7e6c8 --- /dev/null +++ b/examples/start-from-scratch/src/xx/btn.ts @@ -0,0 +1,31 @@ +import type { VariantProps } from 'class-variance-authority' +import { cva } from 'class-variance-authority' + +const index = cva(['btn'], { + variants: { + type: { + primary: ['btn-primary'], + secondary: ['btn-secondary'], + }, + size: { + md: ['btn-md'], + xs: ['btn-xs'], + sm: ['btn-sm'], + }, + }, + compoundVariants: [{ + class: ['btn-pointer'], + type: ['primary'], + size: ['md'], + }, { + class: ['btn-disabled'], + type: ['primary'], + size: ['xs'], + }], + defaultVariants: { + size: 'md', + type: 'primary', + }, +}) +export type Props = VariantProps +export default index diff --git a/examples/start-from-scratch/tailwind.config.js b/examples/start-from-scratch/tailwind.config.js new file mode 100644 index 00000000..ac8b246e --- /dev/null +++ b/examples/start-from-scratch/tailwind.config.js @@ -0,0 +1,23 @@ +const path = require('node:path') +const { icestackPlugin } = require('@icestack/tailwindcss') +const plugin = require('tailwindcss/plugin') +/** @type {import('tailwindcss').Config} */ +export default { + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx,vue}', '!./src/cva/**/*.{js,ts,jsx,tsx,vue}'], + theme: { + extend: {}, + }, + plugins: [ + icestackPlugin({ + loadConfig: true, + loadDirectory: path.resolve(__dirname, 'my-ui'), + }), + plugin(({ addComponents }) => { + addComponents({ + '.xaxa': { + color: 'green', + }, + }) + }), + ], +} diff --git a/examples/start-from-scratch/tsconfig.json b/examples/start-from-scratch/tsconfig.json new file mode 100644 index 00000000..fea5bc9e --- /dev/null +++ b/examples/start-from-scratch/tsconfig.json @@ -0,0 +1,44 @@ +{ + "compilerOptions": { + "target": "ES2020", + "jsx": "preserve", + "lib": [ + "ES2020", + "DOM", + "DOM.Iterable" + ], + "useDefineForClassFields": true, + "baseUrl": ".", + "module": "ESNext", + /* Bundler mode */ + "moduleResolution": "bundler", + "paths": { + "@/*": [ + "src/*" + ], + "cva/*": [ + "cva/*" + ] + }, + "resolveJsonModule": true, + "allowImportingTsExtensions": true, + /* Linting */ + "strict": true, + "noFallthroughCasesInSwitch": true, + "noEmit": true, + "skipLibCheck": true, + "isolatedModules": true, + "noUnusedLocals": true, + "noUnusedParameters": true + }, + "references": [ + { + "path": "./tsconfig.node.json" + } + ], + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.vue" + ] +} diff --git a/examples/start-from-scratch/tsconfig.node.json b/examples/start-from-scratch/tsconfig.node.json new file mode 100644 index 00000000..dde08948 --- /dev/null +++ b/examples/start-from-scratch/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "skipLibCheck": true + }, + "include": ["vite.config.ts"] +} diff --git a/examples/start-from-scratch/vite.config.ts b/examples/start-from-scratch/vite.config.ts new file mode 100644 index 00000000..9f77345b --- /dev/null +++ b/examples/start-from-scratch/vite.config.ts @@ -0,0 +1,19 @@ +import path from 'node:path' +import vue from '@vitejs/plugin-vue' +import { defineConfig } from 'vite' +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: [ + { + find: '@', + replacement: path.resolve(__dirname, './src'), + }, + { + find: 'cva', + replacement: path.resolve(__dirname, './cva'), + }, + ], + }, +}) diff --git a/examples/unocss-sample-app/components.d.ts b/examples/unocss-sample-app/components.d.ts new file mode 100644 index 00000000..b149aa4c --- /dev/null +++ b/examples/unocss-sample-app/components.d.ts @@ -0,0 +1,59 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + Alert: typeof import('./src/components/alert.vue')['default'] + Avatar: typeof import('./src/components/avatar.vue')['default'] + Badge: typeof import('./src/components/badge.vue')['default'] + BottomNavigation: typeof import('./src/components/bottom-navigation.vue')['default'] + Breadcrumbs: typeof import('./src/components/breadcrumbs.vue')['default'] + Button: typeof import('./src/components/button.vue')['default'] + Card: typeof import('./src/components/card.vue')['default'] + Carousel: typeof import('./src/components/carousel.vue')['default'] + Chat: typeof import('./src/components/chat.vue')['default'] + Checkbox: typeof import('./src/components/checkbox.vue')['default'] + Collapse: typeof import('./src/components/collapse.vue')['default'] + Countdown: typeof import('./src/components/countdown.vue')['default'] + Diff: typeof import('./src/components/diff.vue')['default'] + Divider: typeof import('./src/components/divider.vue')['default'] + Drawer: typeof import('./src/components/drawer.vue')['default'] + Dropdown: typeof import('./src/components/dropdown.vue')['default'] + FileInput: typeof import('./src/components/file-input.vue')['default'] + Footer: typeof import('./src/components/footer.vue')['default'] + Hero: typeof import('./src/components/hero.vue')['default'] + Indicator: typeof import('./src/components/indicator.vue')['default'] + Input: typeof import('./src/components/input.vue')['default'] + Join: typeof import('./src/components/join.vue')['default'] + Kbd: typeof import('./src/components/kbd.vue')['default'] + Link: typeof import('./src/components/link.vue')['default'] + Loading: typeof import('./src/components/loading.vue')['default'] + Mask: typeof import('./src/components/mask.vue')['default'] + Menu: typeof import('./src/components/menu.vue')['default'] + Navbar: typeof import('./src/components/navbar.vue')['default'] + Progress: typeof import('./src/components/progress.vue')['default'] + RadialProgress: typeof import('./src/components/radial-progress.vue')['default'] + Radio: typeof import('./src/components/radio.vue')['default'] + Range: typeof import('./src/components/range.vue')['default'] + Rating: typeof import('./src/components/rating.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + Select: typeof import('./src/components/select.vue')['default'] + Skeleton: typeof import('./src/components/skeleton.vue')['default'] + Stack: typeof import('./src/components/stack.vue')['default'] + Stat: typeof import('./src/components/stat.vue')['default'] + Steps: typeof import('./src/components/steps.vue')['default'] + Swap: typeof import('./src/components/swap.vue')['default'] + Tab: typeof import('./src/components/tab.vue')['default'] + Table: typeof import('./src/components/table.vue')['default'] + Textarea: typeof import('./src/components/textarea.vue')['default'] + Timeline: typeof import('./src/components/timeline.vue')['default'] + Toast: typeof import('./src/components/toast.vue')['default'] + Toggle: typeof import('./src/components/toggle.vue')['default'] + Tooltip: typeof import('./src/components/tooltip.vue')['default'] + } +} diff --git a/examples/weapp/icestack.config.js b/examples/unocss-sample-app/icestack.config.cjs similarity index 55% rename from examples/weapp/icestack.config.js rename to examples/unocss-sample-app/icestack.config.cjs index c3adcc4d..9b2b937e 100644 --- a/examples/weapp/icestack.config.js +++ b/examples/unocss-sample-app/icestack.config.cjs @@ -1,11 +1,15 @@ -const { miniprogramPreset } = require('@icestack/presets') - /** * @type {import('@icestack/ui').Config} */ const config = { outdir: './my-ui', - presets: [miniprogramPreset()] + components: { + tab: { + postcss: { + prefix: 'ice-', + }, + }, + }, } module.exports = config diff --git a/examples/unocss-sample-app/package.json b/examples/unocss-sample-app/package.json index 8ff3c88c..9b913a9c 100644 --- a/examples/unocss-sample-app/package.json +++ b/examples/unocss-sample-app/package.json @@ -1,32 +1,35 @@ { "name": "unocss-sample-app", - "private": true, - "version": "0.0.0", "type": "module", + "version": "0.0.0", + "private": true, "scripts": { - "dev": "vite", - "build": "vue-tsc && vite build", + "dev": "npm run build:ui && vite", + "build": "npm run build:ui && vite build", + "_build": "vue-tsc && vite build", "preview": "vite preview", - "build:ui": "icestack build", + "build:ui": "icestack build --clean", "test:dev": "vitest" }, "dependencies": { "@icestack/shared": "workspace:^", "@icestack/types": "workspace:^", - "parsel-js": "^1.1.2", - "postcss": "^8.4.32", + "parsel-js": "^1.2.1", + "postcss": "^8.5.3", "postcss-js": "^4.0.1", - "postcss-selector-parser": "^6.0.14", - "vue": "^3.3.11" + "postcss-selector-parser": "^7.1.0", + "vue": "^3.5.15" }, "devDependencies": { "@icestack/ui": "workspace:^", "@icestack/unocss": "workspace:^", - "@unocss/reset": "^0.58.0", - "@vitejs/plugin-vue": "^5.0.0", - "typescript": "^5.2.2", - "unocss": "^0.58.0", - "vite": "^5.0.8", - "vue-tsc": "^1.8.27" + "@unocss/reset": "^66.1.2", + "@vitejs/plugin-vue": "^5.2.4", + "postcss-color-functional-notation": "^7.0.9", + "typescript": "^5.8.3", + "unocss": "^66.1.2", + "unplugin-vue-components": "^28.7.0", + "vite": "^6.3.5", + "vue-tsc": "^2.2.10" } -} \ No newline at end of file +} diff --git a/examples/unocss-sample-app/preset.ts b/examples/unocss-sample-app/preset.ts deleted file mode 100644 index b7d64cd2..00000000 --- a/examples/unocss-sample-app/preset.ts +++ /dev/null @@ -1,105 +0,0 @@ -import path from 'node:path' -import fs from 'node:fs' -import type { Preset, DynamicRule, Preflight, Rule } from 'unocss' -import postcss from 'postcss' -import { parse, type CssInJs } from 'postcss-js' -// import { icestackPreset } from '@icestack/unocss' -import { mergeRClone, defu } from '@icestack/shared' -// import { tokenize, type ClassToken } from 'parsel-js' -import parser from 'postcss-selector-parser' -import type { UnocssPluginOptions } from '@icestack/types' -const processor = postcss() -const process = (object: CssInJs) => processor.process(object, { parser: parse }) -// import { createLogger } from '@icestack/logger' -// import { name as pkgName } from '../package.json' -// // new RegExp(`^${base}$`) -// const logger = createLogger(pkgName) - -function requireLib(id: string, basedir: string) { - return require(path.resolve(basedir, id)) -} - -const defaultOptions: Partial = { - loadConfig: false -} - -// const replacePrefix = (css: string) => css.replaceAll('--tw-', '--un-') -const defaultParser = parser() - -export function getPreflightCss(loadDirectory: string) { - return fs.readFileSync(path.resolve(loadDirectory, 'css-resolved/base/unocss.css'), 'utf8') -} - -export function getRules(loadDirectory: string) { - const components = requireLib('js/components/index.cjs', loadDirectory) as Record< - string, - { - base: Record - styled: Record - utils: Record - } - > - const rules: Rule[] = [ - [ - /^x{5}$/, - () => { - return `.xxxxx{color:red;} - .xxxxx>div{color:blue;}` - } - ] - ] - for (const { base, styled, utils } of Object.values(components)) { - const v = process(mergeRClone(base, styled, utils)).root.nodes - // console.log(v) - // for (const [key, value] of Object.entries(v)) { - // const ast = defaultParser.astSync(key) - // if (ast.nodes.length === 1) { - // ast.walkClasses((s) => { - // // @ts-ignore - // rules.push([new RegExp(`^${s.value}$`), () => value, {}]) - // }) - // } - // } - - // rules.push([new RegExp(`^${}$`), () => { - // return - // }]) - } - return rules -} - -export function getConfig(loadDirectory: string) { - const config = requireLib('js/unocss/config.cjs', loadDirectory) - return { - colors: { - ...config.theme.colors - } - } -} - -export const icestackPreset: (opts: UnocssPluginOptions) => Preset = (opts) => { - const { loadDirectory, loadConfig } = defu[]>(opts, defaultOptions) - if (!loadDirectory) { - throw new Error('loadDirectory option must be passed') - } - const preflightCss = getPreflightCss(loadDirectory) - const keyframes = [] - const theme = getConfig(loadDirectory) - const rules: Rule[] = getRules(loadDirectory) - const preflights: Preflight[] = [ - { - getCSS() { - return preflightCss - } - }, - { - getCSS: () => keyframes.join('\n') - } - ] - return { - name: 'unocss-preset-icestack', - preflights, - theme, - rules - } -} diff --git a/examples/unocss-sample-app/public/panda.jpg b/examples/unocss-sample-app/public/panda.jpg new file mode 100644 index 00000000..d79af14c Binary files /dev/null and b/examples/unocss-sample-app/public/panda.jpg differ diff --git a/examples/unocss-sample-app/public/pig.jpg b/examples/unocss-sample-app/public/pig.jpg new file mode 100644 index 00000000..67924b29 Binary files /dev/null and b/examples/unocss-sample-app/public/pig.jpg differ diff --git a/examples/unocss-sample-app/src/App.vue b/examples/unocss-sample-app/src/App.vue index 4cf8caba..e1c1435b 100644 --- a/examples/unocss-sample-app/src/App.vue +++ b/examples/unocss-sample-app/src/App.vue @@ -3,18 +3,52 @@