diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 00000000..848b97bd --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "public", + "baseBranch": "dev", + "updateInternalDependencies": "patch", + "ignore": [], + "privatePackages": { + "version": false, + "tag": false + } +} diff --git a/.env.test b/.env.test deleted file mode 100644 index 2c87534c..00000000 --- a/.env.test +++ /dev/null @@ -1 +0,0 @@ -NODE_ENV=test diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index b0695b63..00000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - }, - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:prettier/recommended', - ], - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - ecmaVersion: 12, - sourceType: 'module', - }, - plugins: ['react', 'prettier'], - rules: { - 'prettier/prettier': 'error', - }, - }; \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..6313b56c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..d65f7669 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,25 @@ +version: 2 +updates: + - package-ecosystem: 'npm' + directory: '/' + schedule: + interval: 'weekly' + open-pull-requests-limit: 10 + ignore: + - dependency-name: '@types/node' + update-types: + - 'version-update:semver-major' + groups: + minor-and-patch: + update-types: + - 'minor' + - 'patch' + + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'weekly' + groups: + github-actions: + patterns: + - '*' diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index c5ffb23d..c0468e80 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -14,22 +14,28 @@ jobs: name: Deploy Quickmock steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 + + - name: Use Node.js + uses: actions/setup-node@v6 + with: + node-version-file: '.nvmrc' + cache: 'npm' - name: Install run: npm ci - name: Build - run: npm run build + run: node --run build - name: Deploy uses: Azure/static-web-apps-deploy@v1 with: azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_ASHY_FIELD_0DCD26F03 }} repo_token: ${{ secrets.GITHUB_TOKEN }} - action: "upload" - app_location: "/dist" + action: 'upload' + app_location: 'apps/web/dist' skip_app_build: true skip_api_build: true env: - NODE_VERSION: 20.17.0 + NODE_VERSION: 24.14.1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a58eaccc..f2ad9dfc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,46 +7,79 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - - name: Use Node.js 20.17.0 - uses: actions/setup-node@v4 + - name: Use Node.js + uses: actions/setup-node@v6 with: - node-version: '20.17.0' + node-version-file: '.nvmrc' cache: 'npm' - name: Install dependencies run: npm ci - - name: Build - run: npm run build + - name: Install test browsers + run: node --run install:test-browsers + + - name: Lint + run: node --run lint - name: Check TypeScript types - run: npm run tsc-check + run: node --run check-types + + - name: Build + run: node --run build - name: Run tests - run: npm test + run: node --run test e2e-tests: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - - name: Use Node.js 20.17.0 - uses: actions/setup-node@v4 + - name: Use Node.js + uses: actions/setup-node@v6 with: - node-version: '20.17.0' + node-version-file: '.nvmrc' cache: 'npm' - name: Install dependencies run: npm ci - - name: Build - run: npm run build + - name: Install test browsers + run: node --run install:test-browsers - - name: Check TypeScript types - run: npm run tsc-check + - name: Build + run: node --run build - name: Run E2E tests - run: npm run ci:e2e + run: node --run ci:e2e + + changeset-check: + if: github.event.pull_request.base.ref != 'main' + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Check for changeset + run: | + BASE=${{ github.event.pull_request.base.sha }} + HEAD=${{ github.event.pull_request.head.sha }} + + PACKAGES_CHANGED=$(git diff --name-only "$BASE" "$HEAD" -- packages/ | head -1) + + if [ -n "$PACKAGES_CHANGED" ]; then + CHANGESET_ADDED=$(git diff --name-only "$BASE" "$HEAD" -- '.changeset/*.md' | head -1) + if [ -z "$CHANGESET_ADDED" ]; then + echo "::error::This PR modifies packages/ but has no changeset. Run 'node --run changeset' to add one." + exit 1 + fi + echo "Changeset found for package changes." + else + echo "No package changes detected, skipping changeset check." + fi diff --git a/.github/workflows/pkg-publish.yml b/.github/workflows/pkg-publish.yml new file mode 100644 index 00000000..05c995b3 --- /dev/null +++ b/.github/workflows/pkg-publish.yml @@ -0,0 +1,41 @@ +name: Package Publish + +on: + workflow_dispatch: + push: + branches: [main] + paths: + - 'packages/**' + - '.changeset/**' + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +permissions: + contents: write + id-token: write + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions/setup-node@v6 + with: + node-version-file: '.nvmrc' + registry-url: 'https://registry.npmjs.org' + + - run: npm ci + + - run: node --run build + + - name: Publish to npm + uses: changesets/action@v1 + with: + publish: node --run publish-packages + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NPM_CONFIG_PROVENANCE: 'true' + VSCE_PAT: ${{ secrets.VSCE_TOKEN }} diff --git a/.github/workflows/pkg-version.yml b/.github/workflows/pkg-version.yml new file mode 100644 index 00000000..3004e4a5 --- /dev/null +++ b/.github/workflows/pkg-version.yml @@ -0,0 +1,35 @@ +name: Package Versioning + +on: + workflow_dispatch: + push: + branches: [dev] + paths: + - 'packages/**' + - '.changeset/**' + +concurrency: ${{ github.workflow }}-${{ github.ref }} + +permissions: + contents: write + pull-requests: write + +jobs: + version: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - uses: actions/setup-node@v6 + with: + node-version-file: '.nvmrc' + + - run: npm ci + + - name: Create Version PR + uses: changesets/action@v1 + with: + title: 'chore: version packages' + commit: 'chore: version packages' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index c4098520..e2e55454 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,19 @@ -# Playwright +# Dependencies +node_modules + +# Build outputs +dist +dist-ssr + +# Turbo +.turbo + +# Test outputs +coverage playwright-report/ test-results/ +blob-report/ +playwright/.cache/ # Logs logs @@ -11,14 +24,13 @@ yarn-error.log* pnpm-debug.log* lerna-debug.log* -node_modules -dist -dist-ssr +# Local env files *.local # Editor directories and files .vscode/* -!.vscode/extensions.json +!.vscode/settings.json +!.vscode/launch.json .idea .DS_Store *.suo @@ -27,8 +39,5 @@ dist-ssr *.sln *.sw? +# Vite .vite -/test-results/ -/playwright-report/ -/blob-report/ -/playwright/.cache/ diff --git a/.husky/pre-commit b/.husky/pre-commit index 0a1e0652..fe3d2ac4 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,5 +1,5 @@ #!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh" -npm run build +npx oxlint . npx lint-staged diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100755 index 00000000..f9d90022 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1 @@ +node --run check-types diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..97b895e2 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +ignore-scripts=true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..a45fd52c --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +24 diff --git a/.prettierignore b/.prettierignore index 76add878..ea5856de 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,4 @@ node_modules -dist \ No newline at end of file +dist +coverage +.turbo diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..7f4f8135 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,14 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Run Quickmock Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}/packages/vscode-extension" + ], + "outFiles": ["${workspaceFolder}/packages/vscode-extension/dist/**/*.mjs"] + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..08f7bec1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,9 @@ +{ + "files.eol": "\n", + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "always", + "source.removeUnusedImports": "always" + } +} diff --git a/e2e/canvas/move-shape-using-keyboard.spec.ts b/apps/web/e2e/canvas/move-shape-using-keyboard.spec.ts similarity index 100% rename from e2e/canvas/move-shape-using-keyboard.spec.ts rename to apps/web/e2e/canvas/move-shape-using-keyboard.spec.ts diff --git a/e2e/helpers/index.ts b/apps/web/e2e/helpers/index.ts similarity index 100% rename from e2e/helpers/index.ts rename to apps/web/e2e/helpers/index.ts diff --git a/e2e/helpers/konva-testing.helpers.ts b/apps/web/e2e/helpers/konva-testing.helpers.ts similarity index 98% rename from e2e/helpers/konva-testing.helpers.ts rename to apps/web/e2e/helpers/konva-testing.helpers.ts index d4ba4e3d..703ec519 100644 --- a/e2e/helpers/konva-testing.helpers.ts +++ b/apps/web/e2e/helpers/konva-testing.helpers.ts @@ -15,7 +15,7 @@ const getLayer = async (page: Page): Promise => const getChildren = async (page: Page): Promise<(Group | Shape)[]> => { const layer = await getLayer(page); return layer?.children.flatMap(child => - Boolean((child as any)?.children) ? (child as any).children : child + (child as any)?.children ? (child as any).children : child ); }; diff --git a/e2e/helpers/position.helpers.ts b/apps/web/e2e/helpers/position.helpers.ts similarity index 99% rename from e2e/helpers/position.helpers.ts rename to apps/web/e2e/helpers/position.helpers.ts index 7e519880..fb60d170 100644 --- a/e2e/helpers/position.helpers.ts +++ b/apps/web/e2e/helpers/position.helpers.ts @@ -149,7 +149,8 @@ export const addComponentsWithDifferentCategoriesToCanvas = async ( const errorMessage = error instanceof Error ? error.message : String(error); throw new Error( - `Failed to add component "${componentConfig.name}" from category "${componentConfig.category || 'default'}": ${errorMessage}` + `Failed to add component "${componentConfig.name}" from category "${componentConfig.category || 'default'}": ${errorMessage}`, + { cause: error } ); } } diff --git a/e2e/helpers/properties.helpers.ts b/apps/web/e2e/helpers/properties.helpers.ts similarity index 100% rename from e2e/helpers/properties.helpers.ts rename to apps/web/e2e/helpers/properties.helpers.ts diff --git a/e2e/helpers/types/e2e-types.d.ts b/apps/web/e2e/helpers/types/e2e-types.d.ts similarity index 100% rename from e2e/helpers/types/e2e-types.d.ts rename to apps/web/e2e/helpers/types/e2e-types.d.ts diff --git a/e2e/helpers/ui-buttons.helpers.ts b/apps/web/e2e/helpers/ui-buttons.helpers.ts similarity index 100% rename from e2e/helpers/ui-buttons.helpers.ts rename to apps/web/e2e/helpers/ui-buttons.helpers.ts diff --git a/e2e/inline-edit/multiple-line-inline-edit.spec.ts b/apps/web/e2e/inline-edit/multiple-line-inline-edit.spec.ts similarity index 100% rename from e2e/inline-edit/multiple-line-inline-edit.spec.ts rename to apps/web/e2e/inline-edit/multiple-line-inline-edit.spec.ts diff --git a/e2e/inline-edit/simple-inline-edit.spec.ts b/apps/web/e2e/inline-edit/simple-inline-edit.spec.ts similarity index 100% rename from e2e/inline-edit/simple-inline-edit.spec.ts rename to apps/web/e2e/inline-edit/simple-inline-edit.spec.ts diff --git a/e2e/props/multi-select-bg-and-common-props.spec.ts b/apps/web/e2e/props/multi-select-bg-and-common-props.spec.ts similarity index 100% rename from e2e/props/multi-select-bg-and-common-props.spec.ts rename to apps/web/e2e/props/multi-select-bg-and-common-props.spec.ts diff --git a/e2e/props/multi-select-no-common-props.spec.ts b/apps/web/e2e/props/multi-select-no-common-props.spec.ts similarity index 100% rename from e2e/props/multi-select-no-common-props.spec.ts rename to apps/web/e2e/props/multi-select-no-common-props.spec.ts diff --git a/e2e/rectangle-shape.spec.ts b/apps/web/e2e/rectangle-shape.spec.ts similarity index 100% rename from e2e/rectangle-shape.spec.ts rename to apps/web/e2e/rectangle-shape.spec.ts diff --git a/e2e/selection/dropped-shape-is-selected.spec.ts b/apps/web/e2e/selection/dropped-shape-is-selected.spec.ts similarity index 100% rename from e2e/selection/dropped-shape-is-selected.spec.ts rename to apps/web/e2e/selection/dropped-shape-is-selected.spec.ts diff --git a/e2e/selection/multiple-selection.spec.ts b/apps/web/e2e/selection/multiple-selection.spec.ts similarity index 100% rename from e2e/selection/multiple-selection.spec.ts rename to apps/web/e2e/selection/multiple-selection.spec.ts diff --git a/e2e/selection/shape-selection.spec.ts b/apps/web/e2e/selection/shape-selection.spec.ts similarity index 100% rename from e2e/selection/shape-selection.spec.ts rename to apps/web/e2e/selection/shape-selection.spec.ts diff --git a/e2e/thumb-pages/change-thumb-selected-add-component.spec.ts b/apps/web/e2e/thumb-pages/change-thumb-selected-add-component.spec.ts similarity index 100% rename from e2e/thumb-pages/change-thumb-selected-add-component.spec.ts rename to apps/web/e2e/thumb-pages/change-thumb-selected-add-component.spec.ts diff --git a/e2e/thumb-pages/create-new-thumb-page.spec.ts b/apps/web/e2e/thumb-pages/create-new-thumb-page.spec.ts similarity index 100% rename from e2e/thumb-pages/create-new-thumb-page.spec.ts rename to apps/web/e2e/thumb-pages/create-new-thumb-page.spec.ts diff --git a/e2e/thumb-pages/delete-button-disabled-when-only-one-thumb-page.spec.ts b/apps/web/e2e/thumb-pages/delete-button-disabled-when-only-one-thumb-page.spec.ts similarity index 100% rename from e2e/thumb-pages/delete-button-disabled-when-only-one-thumb-page.spec.ts rename to apps/web/e2e/thumb-pages/delete-button-disabled-when-only-one-thumb-page.spec.ts diff --git a/e2e/thumb-pages/delete-given-thumb-page.spec.ts b/apps/web/e2e/thumb-pages/delete-given-thumb-page.spec.ts similarity index 100% rename from e2e/thumb-pages/delete-given-thumb-page.spec.ts rename to apps/web/e2e/thumb-pages/delete-given-thumb-page.spec.ts diff --git a/e2e/thumb-pages/dropped-button-visible-on-thumb.spec.ts b/apps/web/e2e/thumb-pages/dropped-button-visible-on-thumb.spec.ts similarity index 100% rename from e2e/thumb-pages/dropped-button-visible-on-thumb.spec.ts rename to apps/web/e2e/thumb-pages/dropped-button-visible-on-thumb.spec.ts diff --git a/e2e/thumb-pages/duplicate-thumb-page-from-arrow-icon.spec.ts b/apps/web/e2e/thumb-pages/duplicate-thumb-page-from-arrow-icon.spec.ts similarity index 100% rename from e2e/thumb-pages/duplicate-thumb-page-from-arrow-icon.spec.ts rename to apps/web/e2e/thumb-pages/duplicate-thumb-page-from-arrow-icon.spec.ts diff --git a/e2e/thumb-pages/duplicate-thumb-page-right-click-button.spec.ts b/apps/web/e2e/thumb-pages/duplicate-thumb-page-right-click-button.spec.ts similarity index 100% rename from e2e/thumb-pages/duplicate-thumb-page-right-click-button.spec.ts rename to apps/web/e2e/thumb-pages/duplicate-thumb-page-right-click-button.spec.ts diff --git a/e2e/thumb-pages/rename-thumb-page.spec.ts b/apps/web/e2e/thumb-pages/rename-thumb-page.spec.ts similarity index 100% rename from e2e/thumb-pages/rename-thumb-page.spec.ts rename to apps/web/e2e/thumb-pages/rename-thumb-page.spec.ts diff --git a/e2e/thumb-pages/visible-thumb-page.spec.ts b/apps/web/e2e/thumb-pages/visible-thumb-page.spec.ts similarity index 100% rename from e2e/thumb-pages/visible-thumb-page.spec.ts rename to apps/web/e2e/thumb-pages/visible-thumb-page.spec.ts diff --git a/e2e/ui-functionality/copy-paste.spec.ts b/apps/web/e2e/ui-functionality/copy-paste.spec.ts similarity index 100% rename from e2e/ui-functionality/copy-paste.spec.ts rename to apps/web/e2e/ui-functionality/copy-paste.spec.ts diff --git a/e2e/ui-functionality/toolbar_undo-redo.spec.ts b/apps/web/e2e/ui-functionality/toolbar_undo-redo.spec.ts similarity index 100% rename from e2e/ui-functionality/toolbar_undo-redo.spec.ts rename to apps/web/e2e/ui-functionality/toolbar_undo-redo.spec.ts diff --git a/e2e/z-index/z-index.spec.ts b/apps/web/e2e/z-index/z-index.spec.ts similarity index 100% rename from e2e/z-index/z-index.spec.ts rename to apps/web/e2e/z-index/z-index.spec.ts diff --git a/editor.html b/apps/web/editor.html similarity index 100% rename from editor.html rename to apps/web/editor.html diff --git a/global.d.ts b/apps/web/global.d.ts similarity index 100% rename from global.d.ts rename to apps/web/global.d.ts diff --git a/index.html b/apps/web/index.html similarity index 100% rename from index.html rename to apps/web/index.html diff --git a/apps/web/package.json b/apps/web/package.json new file mode 100644 index 00000000..fefcefe2 --- /dev/null +++ b/apps/web/package.json @@ -0,0 +1,51 @@ +{ + "name": "@lemoncode/web", + "private": true, + "version": "0.0.0", + "type": "module", + "imports": { + "#*": "./src/*" + }, + "scripts": { + "dev": "vite", + "build": "tsc --noEmit && vite build", + "preview": "vite preview", + "check-types": "tsc --noEmit", + "check-types:watch": "node --run check-types -- --watch --preserveWatchOutput", + "test": "vitest run", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage", + "e2e": "playwright test --ui", + "ci:e2e": "playwright test" + }, + "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "1.7.10", + "@fontsource-variable/montserrat": "5.0.20", + "@fontsource/balsamiq-sans": "5.0.21", + "@uiw/react-color-chrome": "2.10.1", + "html2canvas": "1.4.1", + "immer": "10.1.1", + "konva": "9.3.22", + "lodash.clonedeep": "4.5.0", + "react": "18.3.1", + "react-dom": "18.3.1", + "react-konva": "18.2.14", + "react-konva-utils": "1.1.3", + "tiny-invariant": "1.3.3", + "use-debounce": "10.0.4", + "use-image": "1.1.1", + "uuid": "10.0.0" + }, + "devDependencies": { + "@lemoncode/typescript-config": "*", + "@lemoncode/vitest-config": "*", + "@playwright/test": "1.59.1", + "@types/lodash.clonedeep": "4.5.9", + "@types/react": "18.3.28", + "@types/react-dom": "18.3.7", + "@types/uuid": "10.0.0", + "@types/wicg-file-system-access": "2023.10.7", + "@vitejs/plugin-react": "6.0.1", + "vite": "8.0.8" + } +} diff --git a/playwright.config.ts b/apps/web/playwright.config.ts similarity index 85% rename from playwright.config.ts rename to apps/web/playwright.config.ts index 8bb0aa8d..652fce7e 100644 --- a/playwright.config.ts +++ b/apps/web/playwright.config.ts @@ -1,8 +1,4 @@ -import { config } from '@dotenvx/dotenvx'; -config({ - path: '.env.test', -}); - +/// import { defineConfig, devices } from '@playwright/test'; const BASE_URL = 'http://localhost:5173/editor.html'; @@ -29,7 +25,7 @@ export default defineConfig({ }, ], webServer: { - command: 'npm run dev', + command: 'npx vite --port 5173 --strictPort --mode test', url: BASE_URL, reuseExistingServer: !process.env.CI, }, diff --git a/public/.gitkeep b/apps/web/public/.gitkeep similarity index 100% rename from public/.gitkeep rename to apps/web/public/.gitkeep diff --git a/public/android-chrome-192x192.png b/apps/web/public/android-chrome-192x192.png similarity index 100% rename from public/android-chrome-192x192.png rename to apps/web/public/android-chrome-192x192.png diff --git a/public/android-chrome-512x512.png b/apps/web/public/android-chrome-512x512.png similarity index 100% rename from public/android-chrome-512x512.png rename to apps/web/public/android-chrome-512x512.png diff --git a/public/apple-touch-icon.png b/apps/web/public/apple-touch-icon.png similarity index 100% rename from public/apple-touch-icon.png rename to apps/web/public/apple-touch-icon.png diff --git a/public/assets/.gitkeep b/apps/web/public/assets/.gitkeep similarity index 100% rename from public/assets/.gitkeep rename to apps/web/public/assets/.gitkeep diff --git a/public/assets/adrian-portillo.jpeg b/apps/web/public/assets/adrian-portillo.jpeg similarity index 100% rename from public/assets/adrian-portillo.jpeg rename to apps/web/public/assets/adrian-portillo.jpeg diff --git a/public/assets/alberto-escribano.jpeg b/apps/web/public/assets/alberto-escribano.jpeg similarity index 100% rename from public/assets/alberto-escribano.jpeg rename to apps/web/public/assets/alberto-escribano.jpeg diff --git a/public/assets/antonio-contreras.jpeg b/apps/web/public/assets/antonio-contreras.jpeg similarity index 100% rename from public/assets/antonio-contreras.jpeg rename to apps/web/public/assets/antonio-contreras.jpeg diff --git a/public/assets/borja-martinez.jpeg b/apps/web/public/assets/borja-martinez.jpeg similarity index 100% rename from public/assets/borja-martinez.jpeg rename to apps/web/public/assets/borja-martinez.jpeg diff --git a/public/assets/braulio-diez.jpeg b/apps/web/public/assets/braulio-diez.jpeg similarity index 100% rename from public/assets/braulio-diez.jpeg rename to apps/web/public/assets/braulio-diez.jpeg diff --git a/public/assets/francisco-lopez.jpeg b/apps/web/public/assets/francisco-lopez.jpeg similarity index 100% rename from public/assets/francisco-lopez.jpeg rename to apps/web/public/assets/francisco-lopez.jpeg diff --git a/public/assets/gabriel-ionut.jpeg b/apps/web/public/assets/gabriel-ionut.jpeg similarity index 100% rename from public/assets/gabriel-ionut.jpeg rename to apps/web/public/assets/gabriel-ionut.jpeg diff --git a/public/assets/guste-gaubaite.jpeg b/apps/web/public/assets/guste-gaubaite.jpeg similarity index 100% rename from public/assets/guste-gaubaite.jpeg rename to apps/web/public/assets/guste-gaubaite.jpeg diff --git a/public/assets/iria-carballo.jpeg b/apps/web/public/assets/iria-carballo.jpeg similarity index 100% rename from public/assets/iria-carballo.jpeg rename to apps/web/public/assets/iria-carballo.jpeg diff --git a/public/assets/ivan-ruiz.jpeg b/apps/web/public/assets/ivan-ruiz.jpeg similarity index 100% rename from public/assets/ivan-ruiz.jpeg rename to apps/web/public/assets/ivan-ruiz.jpeg diff --git a/public/assets/jesus-sanz.jpeg b/apps/web/public/assets/jesus-sanz.jpeg similarity index 100% rename from public/assets/jesus-sanz.jpeg rename to apps/web/public/assets/jesus-sanz.jpeg diff --git a/public/assets/jorge-miranda.jpeg b/apps/web/public/assets/jorge-miranda.jpeg similarity index 100% rename from public/assets/jorge-miranda.jpeg rename to apps/web/public/assets/jorge-miranda.jpeg diff --git a/public/assets/josemi-toribio.jpeg b/apps/web/public/assets/josemi-toribio.jpeg similarity index 100% rename from public/assets/josemi-toribio.jpeg rename to apps/web/public/assets/josemi-toribio.jpeg diff --git a/public/assets/leticia-de-la-osa.jpeg b/apps/web/public/assets/leticia-de-la-osa.jpeg similarity index 100% rename from public/assets/leticia-de-la-osa.jpeg rename to apps/web/public/assets/leticia-de-la-osa.jpeg diff --git a/public/assets/lourdes-rodriguez.jpeg b/apps/web/public/assets/lourdes-rodriguez.jpeg similarity index 100% rename from public/assets/lourdes-rodriguez.jpeg rename to apps/web/public/assets/lourdes-rodriguez.jpeg diff --git a/public/assets/manuel-gallego.jpeg b/apps/web/public/assets/manuel-gallego.jpeg similarity index 100% rename from public/assets/manuel-gallego.jpeg rename to apps/web/public/assets/manuel-gallego.jpeg diff --git a/public/assets/monika-stefanova.jpeg b/apps/web/public/assets/monika-stefanova.jpeg similarity index 100% rename from public/assets/monika-stefanova.jpeg rename to apps/web/public/assets/monika-stefanova.jpeg diff --git a/public/assets/omar-lorenzo.jpeg b/apps/web/public/assets/omar-lorenzo.jpeg similarity index 100% rename from public/assets/omar-lorenzo.jpeg rename to apps/web/public/assets/omar-lorenzo.jpeg diff --git a/public/assets/pablo-marzal.jpeg b/apps/web/public/assets/pablo-marzal.jpeg similarity index 100% rename from public/assets/pablo-marzal.jpeg rename to apps/web/public/assets/pablo-marzal.jpeg diff --git a/public/assets/pablo-reinaldo.jpeg b/apps/web/public/assets/pablo-reinaldo.jpeg similarity index 100% rename from public/assets/pablo-reinaldo.jpeg rename to apps/web/public/assets/pablo-reinaldo.jpeg diff --git a/public/assets/raquel-toscano.jpeg b/apps/web/public/assets/raquel-toscano.jpeg similarity index 100% rename from public/assets/raquel-toscano.jpeg rename to apps/web/public/assets/raquel-toscano.jpeg diff --git a/public/assets/rodrigo-lecinana.jpeg b/apps/web/public/assets/rodrigo-lecinana.jpeg similarity index 100% rename from public/assets/rodrigo-lecinana.jpeg rename to apps/web/public/assets/rodrigo-lecinana.jpeg diff --git a/public/assets/sergio-del-campo.jpg b/apps/web/public/assets/sergio-del-campo.jpg similarity index 100% rename from public/assets/sergio-del-campo.jpg rename to apps/web/public/assets/sergio-del-campo.jpg diff --git a/public/back.svg b/apps/web/public/back.svg similarity index 100% rename from public/back.svg rename to apps/web/public/back.svg diff --git a/public/browserconfig.xml b/apps/web/public/browserconfig.xml similarity index 100% rename from public/browserconfig.xml rename to apps/web/public/browserconfig.xml diff --git a/public/containers/browser.svg b/apps/web/public/containers/browser.svg similarity index 100% rename from public/containers/browser.svg rename to apps/web/public/containers/browser.svg diff --git a/public/containers/mobile.svg b/apps/web/public/containers/mobile.svg similarity index 100% rename from public/containers/mobile.svg rename to apps/web/public/containers/mobile.svg diff --git a/public/containers/modal-dialog.svg b/apps/web/public/containers/modal-dialog.svg similarity index 100% rename from public/containers/modal-dialog.svg rename to apps/web/public/containers/modal-dialog.svg diff --git a/public/containers/tablet.svg b/apps/web/public/containers/tablet.svg similarity index 100% rename from public/containers/tablet.svg rename to apps/web/public/containers/tablet.svg diff --git a/public/favicon-16x16.png b/apps/web/public/favicon-16x16.png similarity index 100% rename from public/favicon-16x16.png rename to apps/web/public/favicon-16x16.png diff --git a/public/favicon-32x32.png b/apps/web/public/favicon-32x32.png similarity index 100% rename from public/favicon-32x32.png rename to apps/web/public/favicon-32x32.png diff --git a/public/favicon.ico b/apps/web/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to apps/web/public/favicon.ico diff --git a/public/favicon.svg b/apps/web/public/favicon.svg similarity index 100% rename from public/favicon.svg rename to apps/web/public/favicon.svg diff --git a/public/header.svg b/apps/web/public/header.svg similarity index 100% rename from public/header.svg rename to apps/web/public/header.svg diff --git a/public/icons/about.svg b/apps/web/public/icons/about.svg similarity index 100% rename from public/icons/about.svg rename to apps/web/public/icons/about.svg diff --git a/public/icons/addlist.svg b/apps/web/public/icons/addlist.svg similarity index 100% rename from public/icons/addlist.svg rename to apps/web/public/icons/addlist.svg diff --git a/public/icons/airplane.svg b/apps/web/public/icons/airplane.svg similarity index 100% rename from public/icons/airplane.svg rename to apps/web/public/icons/airplane.svg diff --git a/public/icons/alarm.svg b/apps/web/public/icons/alarm.svg similarity index 100% rename from public/icons/alarm.svg rename to apps/web/public/icons/alarm.svg diff --git a/public/icons/alternativemouse.svg b/apps/web/public/icons/alternativemouse.svg similarity index 100% rename from public/icons/alternativemouse.svg rename to apps/web/public/icons/alternativemouse.svg diff --git a/public/icons/amazon.svg b/apps/web/public/icons/amazon.svg similarity index 100% rename from public/icons/amazon.svg rename to apps/web/public/icons/amazon.svg diff --git a/public/icons/android.svg b/apps/web/public/icons/android.svg similarity index 100% rename from public/icons/android.svg rename to apps/web/public/icons/android.svg diff --git a/public/icons/angry.svg b/apps/web/public/icons/angry.svg similarity index 100% rename from public/icons/angry.svg rename to apps/web/public/icons/angry.svg diff --git a/public/icons/apple.svg b/apps/web/public/icons/apple.svg similarity index 100% rename from public/icons/apple.svg rename to apps/web/public/icons/apple.svg diff --git a/public/icons/arrival.svg b/apps/web/public/icons/arrival.svg similarity index 100% rename from public/icons/arrival.svg rename to apps/web/public/icons/arrival.svg diff --git a/public/icons/arrowbendupleft.svg b/apps/web/public/icons/arrowbendupleft.svg similarity index 100% rename from public/icons/arrowbendupleft.svg rename to apps/web/public/icons/arrowbendupleft.svg diff --git a/public/icons/arrowbendupright.svg b/apps/web/public/icons/arrowbendupright.svg similarity index 100% rename from public/icons/arrowbendupright.svg rename to apps/web/public/icons/arrowbendupright.svg diff --git a/public/icons/arrowdown.svg b/apps/web/public/icons/arrowdown.svg similarity index 100% rename from public/icons/arrowdown.svg rename to apps/web/public/icons/arrowdown.svg diff --git a/public/icons/arrowdownleft.svg b/apps/web/public/icons/arrowdownleft.svg similarity index 100% rename from public/icons/arrowdownleft.svg rename to apps/web/public/icons/arrowdownleft.svg diff --git a/public/icons/arrowfatdown.svg b/apps/web/public/icons/arrowfatdown.svg similarity index 100% rename from public/icons/arrowfatdown.svg rename to apps/web/public/icons/arrowfatdown.svg diff --git a/public/icons/arrowfatleft.svg b/apps/web/public/icons/arrowfatleft.svg similarity index 100% rename from public/icons/arrowfatleft.svg rename to apps/web/public/icons/arrowfatleft.svg diff --git a/public/icons/arrowfatright.svg b/apps/web/public/icons/arrowfatright.svg similarity index 100% rename from public/icons/arrowfatright.svg rename to apps/web/public/icons/arrowfatright.svg diff --git a/public/icons/arrowfatup.svg b/apps/web/public/icons/arrowfatup.svg similarity index 100% rename from public/icons/arrowfatup.svg rename to apps/web/public/icons/arrowfatup.svg diff --git a/public/icons/arrowleft.svg b/apps/web/public/icons/arrowleft.svg similarity index 100% rename from public/icons/arrowleft.svg rename to apps/web/public/icons/arrowleft.svg diff --git a/public/icons/arrowout.svg b/apps/web/public/icons/arrowout.svg similarity index 100% rename from public/icons/arrowout.svg rename to apps/web/public/icons/arrowout.svg diff --git a/public/icons/arrowright.svg b/apps/web/public/icons/arrowright.svg similarity index 100% rename from public/icons/arrowright.svg rename to apps/web/public/icons/arrowright.svg diff --git a/public/icons/arrowrightdown.svg b/apps/web/public/icons/arrowrightdown.svg similarity index 100% rename from public/icons/arrowrightdown.svg rename to apps/web/public/icons/arrowrightdown.svg diff --git a/public/icons/arrowsclockwise.svg b/apps/web/public/icons/arrowsclockwise.svg similarity index 100% rename from public/icons/arrowsclockwise.svg rename to apps/web/public/icons/arrowsclockwise.svg diff --git a/public/icons/arrowscounterclockwise.svg b/apps/web/public/icons/arrowscounterclockwise.svg similarity index 100% rename from public/icons/arrowscounterclockwise.svg rename to apps/web/public/icons/arrowscounterclockwise.svg diff --git a/public/icons/arrowsout.svg b/apps/web/public/icons/arrowsout.svg similarity index 100% rename from public/icons/arrowsout.svg rename to apps/web/public/icons/arrowsout.svg diff --git a/public/icons/arrowup.svg b/apps/web/public/icons/arrowup.svg similarity index 100% rename from public/icons/arrowup.svg rename to apps/web/public/icons/arrowup.svg diff --git a/public/icons/arrowupleft.svg b/apps/web/public/icons/arrowupleft.svg similarity index 100% rename from public/icons/arrowupleft.svg rename to apps/web/public/icons/arrowupleft.svg diff --git a/public/icons/arrowupright.svg b/apps/web/public/icons/arrowupright.svg similarity index 100% rename from public/icons/arrowupright.svg rename to apps/web/public/icons/arrowupright.svg diff --git a/public/icons/autoflash.svg b/apps/web/public/icons/autoflash.svg similarity index 100% rename from public/icons/autoflash.svg rename to apps/web/public/icons/autoflash.svg diff --git a/public/icons/avocado.svg b/apps/web/public/icons/avocado.svg similarity index 100% rename from public/icons/avocado.svg rename to apps/web/public/icons/avocado.svg diff --git a/public/icons/awss3.svg b/apps/web/public/icons/awss3.svg similarity index 100% rename from public/icons/awss3.svg rename to apps/web/public/icons/awss3.svg diff --git a/public/icons/bag.svg b/apps/web/public/icons/bag.svg similarity index 100% rename from public/icons/bag.svg rename to apps/web/public/icons/bag.svg diff --git a/public/icons/batteryfull.svg b/apps/web/public/icons/batteryfull.svg similarity index 100% rename from public/icons/batteryfull.svg rename to apps/web/public/icons/batteryfull.svg diff --git a/public/icons/batterylow.svg b/apps/web/public/icons/batterylow.svg similarity index 100% rename from public/icons/batterylow.svg rename to apps/web/public/icons/batterylow.svg diff --git a/public/icons/batterymid.svg b/apps/web/public/icons/batterymid.svg similarity index 100% rename from public/icons/batterymid.svg rename to apps/web/public/icons/batterymid.svg diff --git a/public/icons/bed.svg b/apps/web/public/icons/bed.svg similarity index 100% rename from public/icons/bed.svg rename to apps/web/public/icons/bed.svg diff --git a/public/icons/bell.svg b/apps/web/public/icons/bell.svg similarity index 100% rename from public/icons/bell.svg rename to apps/web/public/icons/bell.svg diff --git a/public/icons/bellmuted.svg b/apps/web/public/icons/bellmuted.svg similarity index 100% rename from public/icons/bellmuted.svg rename to apps/web/public/icons/bellmuted.svg diff --git a/public/icons/bellsnooze.svg b/apps/web/public/icons/bellsnooze.svg similarity index 100% rename from public/icons/bellsnooze.svg rename to apps/web/public/icons/bellsnooze.svg diff --git a/public/icons/bicycle.svg b/apps/web/public/icons/bicycle.svg similarity index 100% rename from public/icons/bicycle.svg rename to apps/web/public/icons/bicycle.svg diff --git a/public/icons/bike.svg b/apps/web/public/icons/bike.svg similarity index 100% rename from public/icons/bike.svg rename to apps/web/public/icons/bike.svg diff --git a/public/icons/bluetooth.svg b/apps/web/public/icons/bluetooth.svg similarity index 100% rename from public/icons/bluetooth.svg rename to apps/web/public/icons/bluetooth.svg diff --git a/public/icons/bluetoothslash.svg b/apps/web/public/icons/bluetoothslash.svg similarity index 100% rename from public/icons/bluetoothslash.svg rename to apps/web/public/icons/bluetoothslash.svg diff --git a/public/icons/book.svg b/apps/web/public/icons/book.svg similarity index 100% rename from public/icons/book.svg rename to apps/web/public/icons/book.svg diff --git a/public/icons/bookopen.svg b/apps/web/public/icons/bookopen.svg similarity index 100% rename from public/icons/bookopen.svg rename to apps/web/public/icons/bookopen.svg diff --git a/public/icons/books.svg b/apps/web/public/icons/books.svg similarity index 100% rename from public/icons/books.svg rename to apps/web/public/icons/books.svg diff --git a/public/icons/bus.svg b/apps/web/public/icons/bus.svg similarity index 100% rename from public/icons/bus.svg rename to apps/web/public/icons/bus.svg diff --git a/public/icons/calendar-disabled.svg b/apps/web/public/icons/calendar-disabled.svg similarity index 100% rename from public/icons/calendar-disabled.svg rename to apps/web/public/icons/calendar-disabled.svg diff --git a/public/icons/calendar.svg b/apps/web/public/icons/calendar.svg similarity index 100% rename from public/icons/calendar.svg rename to apps/web/public/icons/calendar.svg diff --git a/public/icons/calendarplus.svg b/apps/web/public/icons/calendarplus.svg similarity index 100% rename from public/icons/calendarplus.svg rename to apps/web/public/icons/calendarplus.svg diff --git a/public/icons/callphoneincoming.svg b/apps/web/public/icons/callphoneincoming.svg similarity index 100% rename from public/icons/callphoneincoming.svg rename to apps/web/public/icons/callphoneincoming.svg diff --git a/public/icons/camera.svg b/apps/web/public/icons/camera.svg similarity index 100% rename from public/icons/camera.svg rename to apps/web/public/icons/camera.svg diff --git a/public/icons/car.svg b/apps/web/public/icons/car.svg similarity index 100% rename from public/icons/car.svg rename to apps/web/public/icons/car.svg diff --git a/public/icons/caretdown.svg b/apps/web/public/icons/caretdown.svg similarity index 100% rename from public/icons/caretdown.svg rename to apps/web/public/icons/caretdown.svg diff --git a/public/icons/caretleft.svg b/apps/web/public/icons/caretleft.svg similarity index 100% rename from public/icons/caretleft.svg rename to apps/web/public/icons/caretleft.svg diff --git a/public/icons/caretright.svg b/apps/web/public/icons/caretright.svg similarity index 100% rename from public/icons/caretright.svg rename to apps/web/public/icons/caretright.svg diff --git a/public/icons/caretup.svg b/apps/web/public/icons/caretup.svg similarity index 100% rename from public/icons/caretup.svg rename to apps/web/public/icons/caretup.svg diff --git a/public/icons/cat.svg b/apps/web/public/icons/cat.svg similarity index 100% rename from public/icons/cat.svg rename to apps/web/public/icons/cat.svg diff --git a/public/icons/cellsignal.svg b/apps/web/public/icons/cellsignal.svg similarity index 100% rename from public/icons/cellsignal.svg rename to apps/web/public/icons/cellsignal.svg diff --git a/public/icons/chalkboard.svg b/apps/web/public/icons/chalkboard.svg similarity index 100% rename from public/icons/chalkboard.svg rename to apps/web/public/icons/chalkboard.svg diff --git a/public/icons/chartbar.svg b/apps/web/public/icons/chartbar.svg similarity index 100% rename from public/icons/chartbar.svg rename to apps/web/public/icons/chartbar.svg diff --git a/public/icons/chartbarhorizontal.svg b/apps/web/public/icons/chartbarhorizontal.svg similarity index 100% rename from public/icons/chartbarhorizontal.svg rename to apps/web/public/icons/chartbarhorizontal.svg diff --git a/public/icons/chartdonut.svg b/apps/web/public/icons/chartdonut.svg similarity index 100% rename from public/icons/chartdonut.svg rename to apps/web/public/icons/chartdonut.svg diff --git a/public/icons/chartline.svg b/apps/web/public/icons/chartline.svg similarity index 100% rename from public/icons/chartline.svg rename to apps/web/public/icons/chartline.svg diff --git a/public/icons/chartlineup.svg b/apps/web/public/icons/chartlineup.svg similarity index 100% rename from public/icons/chartlineup.svg rename to apps/web/public/icons/chartlineup.svg diff --git a/public/icons/chartpieslice.svg b/apps/web/public/icons/chartpieslice.svg similarity index 100% rename from public/icons/chartpieslice.svg rename to apps/web/public/icons/chartpieslice.svg diff --git a/public/icons/chat.svg b/apps/web/public/icons/chat.svg similarity index 100% rename from public/icons/chat.svg rename to apps/web/public/icons/chat.svg diff --git a/public/icons/chatdots.svg b/apps/web/public/icons/chatdots.svg similarity index 100% rename from public/icons/chatdots.svg rename to apps/web/public/icons/chatdots.svg diff --git a/public/icons/chatslash.svg b/apps/web/public/icons/chatslash.svg similarity index 100% rename from public/icons/chatslash.svg rename to apps/web/public/icons/chatslash.svg diff --git a/public/icons/check.svg b/apps/web/public/icons/check.svg similarity index 100% rename from public/icons/check.svg rename to apps/web/public/icons/check.svg diff --git a/public/icons/checkfat.svg b/apps/web/public/icons/checkfat.svg similarity index 100% rename from public/icons/checkfat.svg rename to apps/web/public/icons/checkfat.svg diff --git a/public/icons/cherries.svg b/apps/web/public/icons/cherries.svg similarity index 100% rename from public/icons/cherries.svg rename to apps/web/public/icons/cherries.svg diff --git a/public/icons/chrome.svg b/apps/web/public/icons/chrome.svg similarity index 100% rename from public/icons/chrome.svg rename to apps/web/public/icons/chrome.svg diff --git a/public/icons/circleeight.svg b/apps/web/public/icons/circleeight.svg similarity index 100% rename from public/icons/circleeight.svg rename to apps/web/public/icons/circleeight.svg diff --git a/public/icons/circlefive.svg b/apps/web/public/icons/circlefive.svg similarity index 100% rename from public/icons/circlefive.svg rename to apps/web/public/icons/circlefive.svg diff --git a/public/icons/circlefour.svg b/apps/web/public/icons/circlefour.svg similarity index 100% rename from public/icons/circlefour.svg rename to apps/web/public/icons/circlefour.svg diff --git a/public/icons/circlenine.svg b/apps/web/public/icons/circlenine.svg similarity index 100% rename from public/icons/circlenine.svg rename to apps/web/public/icons/circlenine.svg diff --git a/public/icons/circleone.svg b/apps/web/public/icons/circleone.svg similarity index 100% rename from public/icons/circleone.svg rename to apps/web/public/icons/circleone.svg diff --git a/public/icons/circleseven.svg b/apps/web/public/icons/circleseven.svg similarity index 100% rename from public/icons/circleseven.svg rename to apps/web/public/icons/circleseven.svg diff --git a/public/icons/circlesix.svg b/apps/web/public/icons/circlesix.svg similarity index 100% rename from public/icons/circlesix.svg rename to apps/web/public/icons/circlesix.svg diff --git a/public/icons/circlethree.svg b/apps/web/public/icons/circlethree.svg similarity index 100% rename from public/icons/circlethree.svg rename to apps/web/public/icons/circlethree.svg diff --git a/public/icons/circletwo.svg b/apps/web/public/icons/circletwo.svg similarity index 100% rename from public/icons/circletwo.svg rename to apps/web/public/icons/circletwo.svg diff --git a/public/icons/circlezero.svg b/apps/web/public/icons/circlezero.svg similarity index 100% rename from public/icons/circlezero.svg rename to apps/web/public/icons/circlezero.svg diff --git a/public/icons/clip.svg b/apps/web/public/icons/clip.svg similarity index 100% rename from public/icons/clip.svg rename to apps/web/public/icons/clip.svg diff --git a/public/icons/clipboard.svg b/apps/web/public/icons/clipboard.svg similarity index 100% rename from public/icons/clipboard.svg rename to apps/web/public/icons/clipboard.svg diff --git a/public/icons/clock-disabled.svg b/apps/web/public/icons/clock-disabled.svg similarity index 100% rename from public/icons/clock-disabled.svg rename to apps/web/public/icons/clock-disabled.svg diff --git a/public/icons/clock.svg b/apps/web/public/icons/clock.svg similarity index 100% rename from public/icons/clock.svg rename to apps/web/public/icons/clock.svg diff --git a/public/icons/clockuser.svg b/apps/web/public/icons/clockuser.svg similarity index 100% rename from public/icons/clockuser.svg rename to apps/web/public/icons/clockuser.svg diff --git a/public/icons/close.svg b/apps/web/public/icons/close.svg similarity index 100% rename from public/icons/close.svg rename to apps/web/public/icons/close.svg diff --git a/public/icons/cloudcheck.svg b/apps/web/public/icons/cloudcheck.svg similarity index 100% rename from public/icons/cloudcheck.svg rename to apps/web/public/icons/cloudcheck.svg diff --git a/public/icons/clouddownload.svg b/apps/web/public/icons/clouddownload.svg similarity index 100% rename from public/icons/clouddownload.svg rename to apps/web/public/icons/clouddownload.svg diff --git a/public/icons/clouderror.svg b/apps/web/public/icons/clouderror.svg similarity index 100% rename from public/icons/clouderror.svg rename to apps/web/public/icons/clouderror.svg diff --git a/public/icons/cloudslash.svg b/apps/web/public/icons/cloudslash.svg similarity index 100% rename from public/icons/cloudslash.svg rename to apps/web/public/icons/cloudslash.svg diff --git a/public/icons/cloudsun.svg b/apps/web/public/icons/cloudsun.svg similarity index 100% rename from public/icons/cloudsun.svg rename to apps/web/public/icons/cloudsun.svg diff --git a/public/icons/cloudupload.svg b/apps/web/public/icons/cloudupload.svg similarity index 100% rename from public/icons/cloudupload.svg rename to apps/web/public/icons/cloudupload.svg diff --git a/public/icons/cloudwarning.svg b/apps/web/public/icons/cloudwarning.svg similarity index 100% rename from public/icons/cloudwarning.svg rename to apps/web/public/icons/cloudwarning.svg diff --git a/public/icons/cogwheel.svg b/apps/web/public/icons/cogwheel.svg similarity index 100% rename from public/icons/cogwheel.svg rename to apps/web/public/icons/cogwheel.svg diff --git a/public/icons/company.svg b/apps/web/public/icons/company.svg similarity index 100% rename from public/icons/company.svg rename to apps/web/public/icons/company.svg diff --git a/public/icons/computer.svg b/apps/web/public/icons/computer.svg similarity index 100% rename from public/icons/computer.svg rename to apps/web/public/icons/computer.svg diff --git a/public/icons/controller.svg b/apps/web/public/icons/controller.svg similarity index 100% rename from public/icons/controller.svg rename to apps/web/public/icons/controller.svg diff --git a/public/icons/copy.svg b/apps/web/public/icons/copy.svg similarity index 100% rename from public/icons/copy.svg rename to apps/web/public/icons/copy.svg diff --git a/public/icons/copyright.svg b/apps/web/public/icons/copyright.svg similarity index 100% rename from public/icons/copyright.svg rename to apps/web/public/icons/copyright.svg diff --git a/public/icons/cow.svg b/apps/web/public/icons/cow.svg similarity index 100% rename from public/icons/cow.svg rename to apps/web/public/icons/cow.svg diff --git a/public/icons/creditcard.svg b/apps/web/public/icons/creditcard.svg similarity index 100% rename from public/icons/creditcard.svg rename to apps/web/public/icons/creditcard.svg diff --git a/public/icons/cursor.svg b/apps/web/public/icons/cursor.svg similarity index 100% rename from public/icons/cursor.svg rename to apps/web/public/icons/cursor.svg diff --git a/public/icons/cursorclick.svg b/apps/web/public/icons/cursorclick.svg similarity index 100% rename from public/icons/cursorclick.svg rename to apps/web/public/icons/cursorclick.svg diff --git a/public/icons/database.svg b/apps/web/public/icons/database.svg similarity index 100% rename from public/icons/database.svg rename to apps/web/public/icons/database.svg diff --git a/public/icons/delete.svg b/apps/web/public/icons/delete.svg similarity index 100% rename from public/icons/delete.svg rename to apps/web/public/icons/delete.svg diff --git a/public/icons/departure.svg b/apps/web/public/icons/departure.svg similarity index 100% rename from public/icons/departure.svg rename to apps/web/public/icons/departure.svg diff --git a/public/icons/desktop.svg b/apps/web/public/icons/desktop.svg similarity index 100% rename from public/icons/desktop.svg rename to apps/web/public/icons/desktop.svg diff --git a/public/icons/dog.svg b/apps/web/public/icons/dog.svg similarity index 100% rename from public/icons/dog.svg rename to apps/web/public/icons/dog.svg diff --git a/public/icons/dollar.svg b/apps/web/public/icons/dollar.svg similarity index 100% rename from public/icons/dollar.svg rename to apps/web/public/icons/dollar.svg diff --git a/public/icons/dotssixvertical.svg b/apps/web/public/icons/dotssixvertical.svg similarity index 100% rename from public/icons/dotssixvertical.svg rename to apps/web/public/icons/dotssixvertical.svg diff --git a/public/icons/dotssquare.svg b/apps/web/public/icons/dotssquare.svg similarity index 100% rename from public/icons/dotssquare.svg rename to apps/web/public/icons/dotssquare.svg diff --git a/public/icons/dotsvertical.svg b/apps/web/public/icons/dotsvertical.svg similarity index 100% rename from public/icons/dotsvertical.svg rename to apps/web/public/icons/dotsvertical.svg diff --git a/public/icons/doublecheck.svg b/apps/web/public/icons/doublecheck.svg similarity index 100% rename from public/icons/doublecheck.svg rename to apps/web/public/icons/doublecheck.svg diff --git a/public/icons/download.svg b/apps/web/public/icons/download.svg similarity index 100% rename from public/icons/download.svg rename to apps/web/public/icons/download.svg diff --git a/public/icons/drive.svg b/apps/web/public/icons/drive.svg similarity index 100% rename from public/icons/drive.svg rename to apps/web/public/icons/drive.svg diff --git a/public/icons/emptybattery.svg b/apps/web/public/icons/emptybattery.svg similarity index 100% rename from public/icons/emptybattery.svg rename to apps/web/public/icons/emptybattery.svg diff --git a/public/icons/envelope.svg b/apps/web/public/icons/envelope.svg similarity index 100% rename from public/icons/envelope.svg rename to apps/web/public/icons/envelope.svg diff --git a/public/icons/envelopeopen.svg b/apps/web/public/icons/envelopeopen.svg similarity index 100% rename from public/icons/envelopeopen.svg rename to apps/web/public/icons/envelopeopen.svg diff --git a/public/icons/euro.svg b/apps/web/public/icons/euro.svg similarity index 100% rename from public/icons/euro.svg rename to apps/web/public/icons/euro.svg diff --git a/public/icons/excel.svg b/apps/web/public/icons/excel.svg similarity index 100% rename from public/icons/excel.svg rename to apps/web/public/icons/excel.svg diff --git a/public/icons/export.svg b/apps/web/public/icons/export.svg similarity index 100% rename from public/icons/export.svg rename to apps/web/public/icons/export.svg diff --git a/public/icons/eye.svg b/apps/web/public/icons/eye.svg similarity index 100% rename from public/icons/eye.svg rename to apps/web/public/icons/eye.svg diff --git a/public/icons/eyedropper.svg b/apps/web/public/icons/eyedropper.svg similarity index 100% rename from public/icons/eyedropper.svg rename to apps/web/public/icons/eyedropper.svg diff --git a/public/icons/eyedroppersample.svg b/apps/web/public/icons/eyedroppersample.svg similarity index 100% rename from public/icons/eyedroppersample.svg rename to apps/web/public/icons/eyedroppersample.svg diff --git a/public/icons/eyeslash.svg b/apps/web/public/icons/eyeslash.svg similarity index 100% rename from public/icons/eyeslash.svg rename to apps/web/public/icons/eyeslash.svg diff --git a/public/icons/facebook.svg b/apps/web/public/icons/facebook.svg similarity index 100% rename from public/icons/facebook.svg rename to apps/web/public/icons/facebook.svg diff --git a/public/icons/factory.svg b/apps/web/public/icons/factory.svg similarity index 100% rename from public/icons/factory.svg rename to apps/web/public/icons/factory.svg diff --git a/public/icons/fastforward.svg b/apps/web/public/icons/fastforward.svg similarity index 100% rename from public/icons/fastforward.svg rename to apps/web/public/icons/fastforward.svg diff --git a/public/icons/filedoc.svg b/apps/web/public/icons/filedoc.svg similarity index 100% rename from public/icons/filedoc.svg rename to apps/web/public/icons/filedoc.svg diff --git a/public/icons/fileexcel.svg b/apps/web/public/icons/fileexcel.svg similarity index 100% rename from public/icons/fileexcel.svg rename to apps/web/public/icons/fileexcel.svg diff --git a/public/icons/filejpg.svg b/apps/web/public/icons/filejpg.svg similarity index 100% rename from public/icons/filejpg.svg rename to apps/web/public/icons/filejpg.svg diff --git a/public/icons/filepdf.svg b/apps/web/public/icons/filepdf.svg similarity index 100% rename from public/icons/filepdf.svg rename to apps/web/public/icons/filepdf.svg diff --git a/public/icons/filepng.svg b/apps/web/public/icons/filepng.svg similarity index 100% rename from public/icons/filepng.svg rename to apps/web/public/icons/filepng.svg diff --git a/public/icons/filepowerpoint.svg b/apps/web/public/icons/filepowerpoint.svg similarity index 100% rename from public/icons/filepowerpoint.svg rename to apps/web/public/icons/filepowerpoint.svg diff --git a/public/icons/files.svg b/apps/web/public/icons/files.svg similarity index 100% rename from public/icons/files.svg rename to apps/web/public/icons/files.svg diff --git a/public/icons/filter.svg b/apps/web/public/icons/filter.svg similarity index 100% rename from public/icons/filter.svg rename to apps/web/public/icons/filter.svg diff --git a/public/icons/firstaid.svg b/apps/web/public/icons/firstaid.svg similarity index 100% rename from public/icons/firstaid.svg rename to apps/web/public/icons/firstaid.svg diff --git a/public/icons/flag.svg b/apps/web/public/icons/flag.svg similarity index 100% rename from public/icons/flag.svg rename to apps/web/public/icons/flag.svg diff --git a/public/icons/flashslash.svg b/apps/web/public/icons/flashslash.svg similarity index 100% rename from public/icons/flashslash.svg rename to apps/web/public/icons/flashslash.svg diff --git a/public/icons/flowertulip.svg b/apps/web/public/icons/flowertulip.svg similarity index 100% rename from public/icons/flowertulip.svg rename to apps/web/public/icons/flowertulip.svg diff --git a/public/icons/folder.svg b/apps/web/public/icons/folder.svg similarity index 100% rename from public/icons/folder.svg rename to apps/web/public/icons/folder.svg diff --git a/public/icons/folderlock.svg b/apps/web/public/icons/folderlock.svg similarity index 100% rename from public/icons/folderlock.svg rename to apps/web/public/icons/folderlock.svg diff --git a/public/icons/folderplus.svg b/apps/web/public/icons/folderplus.svg similarity index 100% rename from public/icons/folderplus.svg rename to apps/web/public/icons/folderplus.svg diff --git a/public/icons/folderstar.svg b/apps/web/public/icons/folderstar.svg similarity index 100% rename from public/icons/folderstar.svg rename to apps/web/public/icons/folderstar.svg diff --git a/public/icons/folderuser.svg b/apps/web/public/icons/folderuser.svg similarity index 100% rename from public/icons/folderuser.svg rename to apps/web/public/icons/folderuser.svg diff --git a/public/icons/fourk.svg b/apps/web/public/icons/fourk.svg similarity index 100% rename from public/icons/fourk.svg rename to apps/web/public/icons/fourk.svg diff --git a/public/icons/garage.svg b/apps/web/public/icons/garage.svg similarity index 100% rename from public/icons/garage.svg rename to apps/web/public/icons/garage.svg diff --git a/public/icons/gascan.svg b/apps/web/public/icons/gascan.svg similarity index 100% rename from public/icons/gascan.svg rename to apps/web/public/icons/gascan.svg diff --git a/public/icons/gaspump.svg b/apps/web/public/icons/gaspump.svg similarity index 100% rename from public/icons/gaspump.svg rename to apps/web/public/icons/gaspump.svg diff --git a/public/icons/gavel.svg b/apps/web/public/icons/gavel.svg similarity index 100% rename from public/icons/gavel.svg rename to apps/web/public/icons/gavel.svg diff --git a/public/icons/genderfemale.svg b/apps/web/public/icons/genderfemale.svg similarity index 100% rename from public/icons/genderfemale.svg rename to apps/web/public/icons/genderfemale.svg diff --git a/public/icons/gendermale.svg b/apps/web/public/icons/gendermale.svg similarity index 100% rename from public/icons/gendermale.svg rename to apps/web/public/icons/gendermale.svg diff --git a/public/icons/github.svg b/apps/web/public/icons/github.svg similarity index 100% rename from public/icons/github.svg rename to apps/web/public/icons/github.svg diff --git a/public/icons/gitlab.svg b/apps/web/public/icons/gitlab.svg similarity index 100% rename from public/icons/gitlab.svg rename to apps/web/public/icons/gitlab.svg diff --git a/public/icons/globe.svg b/apps/web/public/icons/globe.svg similarity index 100% rename from public/icons/globe.svg rename to apps/web/public/icons/globe.svg diff --git a/public/icons/google.svg b/apps/web/public/icons/google.svg similarity index 100% rename from public/icons/google.svg rename to apps/web/public/icons/google.svg diff --git a/public/icons/graduationcap.svg b/apps/web/public/icons/graduationcap.svg similarity index 100% rename from public/icons/graduationcap.svg rename to apps/web/public/icons/graduationcap.svg diff --git a/public/icons/hamburger.svg b/apps/web/public/icons/hamburger.svg similarity index 100% rename from public/icons/hamburger.svg rename to apps/web/public/icons/hamburger.svg diff --git a/public/icons/hammer.svg b/apps/web/public/icons/hammer.svg similarity index 100% rename from public/icons/hammer.svg rename to apps/web/public/icons/hammer.svg diff --git a/public/icons/handcoins.svg b/apps/web/public/icons/handcoins.svg similarity index 100% rename from public/icons/handcoins.svg rename to apps/web/public/icons/handcoins.svg diff --git a/public/icons/handgrabbing.svg b/apps/web/public/icons/handgrabbing.svg similarity index 100% rename from public/icons/handgrabbing.svg rename to apps/web/public/icons/handgrabbing.svg diff --git a/public/icons/handheart.svg b/apps/web/public/icons/handheart.svg similarity index 100% rename from public/icons/handheart.svg rename to apps/web/public/icons/handheart.svg diff --git a/public/icons/handpointing.svg b/apps/web/public/icons/handpointing.svg similarity index 100% rename from public/icons/handpointing.svg rename to apps/web/public/icons/handpointing.svg diff --git a/public/icons/handsclapping.svg b/apps/web/public/icons/handsclapping.svg similarity index 100% rename from public/icons/handsclapping.svg rename to apps/web/public/icons/handsclapping.svg diff --git a/public/icons/handshake.svg b/apps/web/public/icons/handshake.svg similarity index 100% rename from public/icons/handshake.svg rename to apps/web/public/icons/handshake.svg diff --git a/public/icons/handswipeleft.svg b/apps/web/public/icons/handswipeleft.svg similarity index 100% rename from public/icons/handswipeleft.svg rename to apps/web/public/icons/handswipeleft.svg diff --git a/public/icons/handswiperight.svg b/apps/web/public/icons/handswiperight.svg similarity index 100% rename from public/icons/handswiperight.svg rename to apps/web/public/icons/handswiperight.svg diff --git a/public/icons/handtap.svg b/apps/web/public/icons/handtap.svg similarity index 100% rename from public/icons/handtap.svg rename to apps/web/public/icons/handtap.svg diff --git a/public/icons/handwaving.svg b/apps/web/public/icons/handwaving.svg similarity index 100% rename from public/icons/handwaving.svg rename to apps/web/public/icons/handwaving.svg diff --git a/public/icons/heart.svg b/apps/web/public/icons/heart.svg similarity index 100% rename from public/icons/heart.svg rename to apps/web/public/icons/heart.svg diff --git a/public/icons/help.svg b/apps/web/public/icons/help.svg similarity index 100% rename from public/icons/help.svg rename to apps/web/public/icons/help.svg diff --git a/public/icons/hiking.svg b/apps/web/public/icons/hiking.svg similarity index 100% rename from public/icons/hiking.svg rename to apps/web/public/icons/hiking.svg diff --git a/public/icons/home.svg b/apps/web/public/icons/home.svg similarity index 100% rename from public/icons/home.svg rename to apps/web/public/icons/home.svg diff --git a/public/icons/horizontalpaperclip.svg b/apps/web/public/icons/horizontalpaperclip.svg similarity index 100% rename from public/icons/horizontalpaperclip.svg rename to apps/web/public/icons/horizontalpaperclip.svg diff --git a/public/icons/hourglass.svg b/apps/web/public/icons/hourglass.svg similarity index 100% rename from public/icons/hourglass.svg rename to apps/web/public/icons/hourglass.svg diff --git a/public/icons/incognito.svg b/apps/web/public/icons/incognito.svg similarity index 100% rename from public/icons/incognito.svg rename to apps/web/public/icons/incognito.svg diff --git a/public/icons/info.svg b/apps/web/public/icons/info.svg similarity index 100% rename from public/icons/info.svg rename to apps/web/public/icons/info.svg diff --git a/public/icons/instagram.svg b/apps/web/public/icons/instagram.svg similarity index 100% rename from public/icons/instagram.svg rename to apps/web/public/icons/instagram.svg diff --git a/public/icons/internet.svg b/apps/web/public/icons/internet.svg similarity index 100% rename from public/icons/internet.svg rename to apps/web/public/icons/internet.svg diff --git a/public/icons/joystick.svg b/apps/web/public/icons/joystick.svg similarity index 100% rename from public/icons/joystick.svg rename to apps/web/public/icons/joystick.svg diff --git a/public/icons/key.svg b/apps/web/public/icons/key.svg similarity index 100% rename from public/icons/key.svg rename to apps/web/public/icons/key.svg diff --git a/public/icons/keyboard.svg b/apps/web/public/icons/keyboard.svg similarity index 100% rename from public/icons/keyboard.svg rename to apps/web/public/icons/keyboard.svg diff --git a/public/icons/laptop.svg b/apps/web/public/icons/laptop.svg similarity index 100% rename from public/icons/laptop.svg rename to apps/web/public/icons/laptop.svg diff --git a/public/icons/lightning.svg b/apps/web/public/icons/lightning.svg similarity index 100% rename from public/icons/lightning.svg rename to apps/web/public/icons/lightning.svg diff --git a/public/icons/linkedin.svg b/apps/web/public/icons/linkedin.svg similarity index 100% rename from public/icons/linkedin.svg rename to apps/web/public/icons/linkedin.svg diff --git a/public/icons/linux.svg b/apps/web/public/icons/linux.svg similarity index 100% rename from public/icons/linux.svg rename to apps/web/public/icons/linux.svg diff --git a/public/icons/listchecks.svg b/apps/web/public/icons/listchecks.svg similarity index 100% rename from public/icons/listchecks.svg rename to apps/web/public/icons/listchecks.svg diff --git a/public/icons/listdashes.svg b/apps/web/public/icons/listdashes.svg similarity index 100% rename from public/icons/listdashes.svg rename to apps/web/public/icons/listdashes.svg diff --git a/public/icons/listdots.svg b/apps/web/public/icons/listdots.svg similarity index 100% rename from public/icons/listdots.svg rename to apps/web/public/icons/listdots.svg diff --git a/public/icons/listheart.svg b/apps/web/public/icons/listheart.svg similarity index 100% rename from public/icons/listheart.svg rename to apps/web/public/icons/listheart.svg diff --git a/public/icons/listnumbers.svg b/apps/web/public/icons/listnumbers.svg similarity index 100% rename from public/icons/listnumbers.svg rename to apps/web/public/icons/listnumbers.svg diff --git a/public/icons/liststar.svg b/apps/web/public/icons/liststar.svg similarity index 100% rename from public/icons/liststar.svg rename to apps/web/public/icons/liststar.svg diff --git a/public/icons/lock.svg b/apps/web/public/icons/lock.svg similarity index 100% rename from public/icons/lock.svg rename to apps/web/public/icons/lock.svg diff --git a/public/icons/lockopen.svg b/apps/web/public/icons/lockopen.svg similarity index 100% rename from public/icons/lockopen.svg rename to apps/web/public/icons/lockopen.svg diff --git a/public/icons/mappinplus.svg b/apps/web/public/icons/mappinplus.svg similarity index 100% rename from public/icons/mappinplus.svg rename to apps/web/public/icons/mappinplus.svg diff --git a/public/icons/maptrifold.svg b/apps/web/public/icons/maptrifold.svg similarity index 100% rename from public/icons/maptrifold.svg rename to apps/web/public/icons/maptrifold.svg diff --git a/public/icons/meta.svg b/apps/web/public/icons/meta.svg similarity index 100% rename from public/icons/meta.svg rename to apps/web/public/icons/meta.svg diff --git a/public/icons/microphone.svg b/apps/web/public/icons/microphone.svg similarity index 100% rename from public/icons/microphone.svg rename to apps/web/public/icons/microphone.svg diff --git a/public/icons/microphoneslash.svg b/apps/web/public/icons/microphoneslash.svg similarity index 100% rename from public/icons/microphoneslash.svg rename to apps/web/public/icons/microphoneslash.svg diff --git a/public/icons/microsoftexcel.svg b/apps/web/public/icons/microsoftexcel.svg similarity index 100% rename from public/icons/microsoftexcel.svg rename to apps/web/public/icons/microsoftexcel.svg diff --git a/public/icons/microsoftpowerpoint.svg b/apps/web/public/icons/microsoftpowerpoint.svg similarity index 100% rename from public/icons/microsoftpowerpoint.svg rename to apps/web/public/icons/microsoftpowerpoint.svg diff --git a/public/icons/microsoftword.svg b/apps/web/public/icons/microsoftword.svg similarity index 100% rename from public/icons/microsoftword.svg rename to apps/web/public/icons/microsoftword.svg diff --git a/public/icons/minuscircle.svg b/apps/web/public/icons/minuscircle.svg similarity index 100% rename from public/icons/minuscircle.svg rename to apps/web/public/icons/minuscircle.svg diff --git a/public/icons/mobile.svg b/apps/web/public/icons/mobile.svg similarity index 100% rename from public/icons/mobile.svg rename to apps/web/public/icons/mobile.svg diff --git a/public/icons/moon.svg b/apps/web/public/icons/moon.svg similarity index 100% rename from public/icons/moon.svg rename to apps/web/public/icons/moon.svg diff --git a/public/icons/moonalt.svg b/apps/web/public/icons/moonalt.svg similarity index 100% rename from public/icons/moonalt.svg rename to apps/web/public/icons/moonalt.svg diff --git a/public/icons/moped.svg b/apps/web/public/icons/moped.svg similarity index 100% rename from public/icons/moped.svg rename to apps/web/public/icons/moped.svg diff --git a/public/icons/mouse.svg b/apps/web/public/icons/mouse.svg similarity index 100% rename from public/icons/mouse.svg rename to apps/web/public/icons/mouse.svg diff --git a/public/icons/musicnote.svg b/apps/web/public/icons/musicnote.svg similarity index 100% rename from public/icons/musicnote.svg rename to apps/web/public/icons/musicnote.svg diff --git a/public/icons/nervous.svg b/apps/web/public/icons/nervous.svg similarity index 100% rename from public/icons/nervous.svg rename to apps/web/public/icons/nervous.svg diff --git a/public/icons/network.svg b/apps/web/public/icons/network.svg similarity index 100% rename from public/icons/network.svg rename to apps/web/public/icons/network.svg diff --git a/public/icons/new.svg b/apps/web/public/icons/new.svg similarity index 100% rename from public/icons/new.svg rename to apps/web/public/icons/new.svg diff --git a/public/icons/nonfilter.svg b/apps/web/public/icons/nonfilter.svg similarity index 100% rename from public/icons/nonfilter.svg rename to apps/web/public/icons/nonfilter.svg diff --git a/public/icons/normalshield.svg b/apps/web/public/icons/normalshield.svg similarity index 100% rename from public/icons/normalshield.svg rename to apps/web/public/icons/normalshield.svg diff --git a/public/icons/nosignal.svg b/apps/web/public/icons/nosignal.svg similarity index 100% rename from public/icons/nosignal.svg rename to apps/web/public/icons/nosignal.svg diff --git a/public/icons/nowifi.svg b/apps/web/public/icons/nowifi.svg similarity index 100% rename from public/icons/nowifi.svg rename to apps/web/public/icons/nowifi.svg diff --git a/public/icons/open.svg b/apps/web/public/icons/open.svg similarity index 100% rename from public/icons/open.svg rename to apps/web/public/icons/open.svg diff --git a/public/icons/orange.svg b/apps/web/public/icons/orange.svg similarity index 100% rename from public/icons/orange.svg rename to apps/web/public/icons/orange.svg diff --git a/public/icons/orangeslice.svg b/apps/web/public/icons/orangeslice.svg similarity index 100% rename from public/icons/orangeslice.svg rename to apps/web/public/icons/orangeslice.svg diff --git a/public/icons/paintbucket.svg b/apps/web/public/icons/paintbucket.svg similarity index 100% rename from public/icons/paintbucket.svg rename to apps/web/public/icons/paintbucket.svg diff --git a/public/icons/paperplane.svg b/apps/web/public/icons/paperplane.svg similarity index 100% rename from public/icons/paperplane.svg rename to apps/web/public/icons/paperplane.svg diff --git a/public/icons/paste.svg b/apps/web/public/icons/paste.svg similarity index 100% rename from public/icons/paste.svg rename to apps/web/public/icons/paste.svg diff --git a/public/icons/pause.svg b/apps/web/public/icons/pause.svg similarity index 100% rename from public/icons/pause.svg rename to apps/web/public/icons/pause.svg diff --git a/public/icons/pencil.svg b/apps/web/public/icons/pencil.svg similarity index 100% rename from public/icons/pencil.svg rename to apps/web/public/icons/pencil.svg diff --git a/public/icons/person.svg b/apps/web/public/icons/person.svg similarity index 100% rename from public/icons/person.svg rename to apps/web/public/icons/person.svg diff --git a/public/icons/phCalculatorLight.svg b/apps/web/public/icons/phCalculatorLight.svg similarity index 100% rename from public/icons/phCalculatorLight.svg rename to apps/web/public/icons/phCalculatorLight.svg diff --git a/public/icons/phCopy.svg b/apps/web/public/icons/phCopy.svg similarity index 100% rename from public/icons/phCopy.svg rename to apps/web/public/icons/phCopy.svg diff --git a/public/icons/phSquareSplitHorizontal.svg b/apps/web/public/icons/phSquareSplitHorizontal.svg similarity index 100% rename from public/icons/phSquareSplitHorizontal.svg rename to apps/web/public/icons/phSquareSplitHorizontal.svg diff --git a/public/icons/phSquareSplitVerticalLight.svg b/apps/web/public/icons/phSquareSplitVerticalLight.svg similarity index 100% rename from public/icons/phSquareSplitVerticalLight.svg rename to apps/web/public/icons/phSquareSplitVerticalLight.svg diff --git a/public/icons/phTreeViewDuotone.svg b/apps/web/public/icons/phTreeViewDuotone.svg similarity index 100% rename from public/icons/phTreeViewDuotone.svg rename to apps/web/public/icons/phTreeViewDuotone.svg diff --git a/public/icons/phone.svg b/apps/web/public/icons/phone.svg similarity index 100% rename from public/icons/phone.svg rename to apps/web/public/icons/phone.svg diff --git a/public/icons/phonecall.svg b/apps/web/public/icons/phonecall.svg similarity index 100% rename from public/icons/phonecall.svg rename to apps/web/public/icons/phonecall.svg diff --git a/public/icons/phonehang.svg b/apps/web/public/icons/phonehang.svg similarity index 100% rename from public/icons/phonehang.svg rename to apps/web/public/icons/phonehang.svg diff --git a/public/icons/phonelist.svg b/apps/web/public/icons/phonelist.svg similarity index 100% rename from public/icons/phonelist.svg rename to apps/web/public/icons/phonelist.svg diff --git a/public/icons/phonepause.svg b/apps/web/public/icons/phonepause.svg similarity index 100% rename from public/icons/phonepause.svg rename to apps/web/public/icons/phonepause.svg diff --git a/public/icons/phoneslash.svg b/apps/web/public/icons/phoneslash.svg similarity index 100% rename from public/icons/phoneslash.svg rename to apps/web/public/icons/phoneslash.svg diff --git a/public/icons/piechart.svg b/apps/web/public/icons/piechart.svg similarity index 100% rename from public/icons/piechart.svg rename to apps/web/public/icons/piechart.svg diff --git a/public/icons/pin.svg b/apps/web/public/icons/pin.svg similarity index 100% rename from public/icons/pin.svg rename to apps/web/public/icons/pin.svg diff --git a/public/icons/pinarea.svg b/apps/web/public/icons/pinarea.svg similarity index 100% rename from public/icons/pinarea.svg rename to apps/web/public/icons/pinarea.svg diff --git a/public/icons/pisymbol.svg b/apps/web/public/icons/pisymbol.svg similarity index 100% rename from public/icons/pisymbol.svg rename to apps/web/public/icons/pisymbol.svg diff --git a/public/icons/play.svg b/apps/web/public/icons/play.svg similarity index 100% rename from public/icons/play.svg rename to apps/web/public/icons/play.svg diff --git a/public/icons/plug.svg b/apps/web/public/icons/plug.svg similarity index 100% rename from public/icons/plug.svg rename to apps/web/public/icons/plug.svg diff --git a/public/icons/plus.svg b/apps/web/public/icons/plus.svg similarity index 100% rename from public/icons/plus.svg rename to apps/web/public/icons/plus.svg diff --git a/public/icons/pluscircle.svg b/apps/web/public/icons/pluscircle.svg similarity index 100% rename from public/icons/pluscircle.svg rename to apps/web/public/icons/pluscircle.svg diff --git a/public/icons/pottedplant.svg b/apps/web/public/icons/pottedplant.svg similarity index 100% rename from public/icons/pottedplant.svg rename to apps/web/public/icons/pottedplant.svg diff --git a/public/icons/pound.svg b/apps/web/public/icons/pound.svg similarity index 100% rename from public/icons/pound.svg rename to apps/web/public/icons/pound.svg diff --git a/public/icons/power.svg b/apps/web/public/icons/power.svg similarity index 100% rename from public/icons/power.svg rename to apps/web/public/icons/power.svg diff --git a/public/icons/powerpoint.svg b/apps/web/public/icons/powerpoint.svg similarity index 100% rename from public/icons/powerpoint.svg rename to apps/web/public/icons/powerpoint.svg diff --git a/public/icons/printer.svg b/apps/web/public/icons/printer.svg similarity index 100% rename from public/icons/printer.svg rename to apps/web/public/icons/printer.svg diff --git a/public/icons/pulse.svg b/apps/web/public/icons/pulse.svg similarity index 100% rename from public/icons/pulse.svg rename to apps/web/public/icons/pulse.svg diff --git a/public/icons/rabbit.svg b/apps/web/public/icons/rabbit.svg similarity index 100% rename from public/icons/rabbit.svg rename to apps/web/public/icons/rabbit.svg diff --git a/public/icons/rain.svg b/apps/web/public/icons/rain.svg similarity index 100% rename from public/icons/rain.svg rename to apps/web/public/icons/rain.svg diff --git a/public/icons/rainbow.svg b/apps/web/public/icons/rainbow.svg similarity index 100% rename from public/icons/rainbow.svg rename to apps/web/public/icons/rainbow.svg diff --git a/public/icons/rectangledashed.svg b/apps/web/public/icons/rectangledashed.svg similarity index 100% rename from public/icons/rectangledashed.svg rename to apps/web/public/icons/rectangledashed.svg diff --git a/public/icons/rectangleeight.svg b/apps/web/public/icons/rectangleeight.svg similarity index 100% rename from public/icons/rectangleeight.svg rename to apps/web/public/icons/rectangleeight.svg diff --git a/public/icons/rectanglefive.svg b/apps/web/public/icons/rectanglefive.svg similarity index 100% rename from public/icons/rectanglefive.svg rename to apps/web/public/icons/rectanglefive.svg diff --git a/public/icons/rectanglefour.svg b/apps/web/public/icons/rectanglefour.svg similarity index 100% rename from public/icons/rectanglefour.svg rename to apps/web/public/icons/rectanglefour.svg diff --git a/public/icons/rectanglenine.svg b/apps/web/public/icons/rectanglenine.svg similarity index 100% rename from public/icons/rectanglenine.svg rename to apps/web/public/icons/rectanglenine.svg diff --git a/public/icons/rectangleone.svg b/apps/web/public/icons/rectangleone.svg similarity index 100% rename from public/icons/rectangleone.svg rename to apps/web/public/icons/rectangleone.svg diff --git a/public/icons/rectangleseven.svg b/apps/web/public/icons/rectangleseven.svg similarity index 100% rename from public/icons/rectangleseven.svg rename to apps/web/public/icons/rectangleseven.svg diff --git a/public/icons/rectanglesix.svg b/apps/web/public/icons/rectanglesix.svg similarity index 100% rename from public/icons/rectanglesix.svg rename to apps/web/public/icons/rectanglesix.svg diff --git a/public/icons/rectanglethree.svg b/apps/web/public/icons/rectanglethree.svg similarity index 100% rename from public/icons/rectanglethree.svg rename to apps/web/public/icons/rectanglethree.svg diff --git a/public/icons/rectangletwo.svg b/apps/web/public/icons/rectangletwo.svg similarity index 100% rename from public/icons/rectangletwo.svg rename to apps/web/public/icons/rectangletwo.svg diff --git a/public/icons/rectanglezero.svg b/apps/web/public/icons/rectanglezero.svg similarity index 100% rename from public/icons/rectanglezero.svg rename to apps/web/public/icons/rectanglezero.svg diff --git a/public/icons/reddit.svg b/apps/web/public/icons/reddit.svg similarity index 100% rename from public/icons/reddit.svg rename to apps/web/public/icons/reddit.svg diff --git a/public/icons/redo.svg b/apps/web/public/icons/redo.svg similarity index 100% rename from public/icons/redo.svg rename to apps/web/public/icons/redo.svg diff --git a/public/icons/rewind.svg b/apps/web/public/icons/rewind.svg similarity index 100% rename from public/icons/rewind.svg rename to apps/web/public/icons/rewind.svg diff --git a/public/icons/robot.svg b/apps/web/public/icons/robot.svg similarity index 100% rename from public/icons/robot.svg rename to apps/web/public/icons/robot.svg diff --git a/public/icons/rocket.svg b/apps/web/public/icons/rocket.svg similarity index 100% rename from public/icons/rocket.svg rename to apps/web/public/icons/rocket.svg diff --git a/public/icons/rocketlaunch.svg b/apps/web/public/icons/rocketlaunch.svg similarity index 100% rename from public/icons/rocketlaunch.svg rename to apps/web/public/icons/rocketlaunch.svg diff --git a/public/icons/sad.svg b/apps/web/public/icons/sad.svg similarity index 100% rename from public/icons/sad.svg rename to apps/web/public/icons/sad.svg diff --git a/public/icons/save.svg b/apps/web/public/icons/save.svg similarity index 100% rename from public/icons/save.svg rename to apps/web/public/icons/save.svg diff --git a/public/icons/scissors.svg b/apps/web/public/icons/scissors.svg similarity index 100% rename from public/icons/scissors.svg rename to apps/web/public/icons/scissors.svg diff --git a/public/icons/search.svg b/apps/web/public/icons/search.svg similarity index 100% rename from public/icons/search.svg rename to apps/web/public/icons/search.svg diff --git a/public/icons/searchdocument.svg b/apps/web/public/icons/searchdocument.svg similarity index 100% rename from public/icons/searchdocument.svg rename to apps/web/public/icons/searchdocument.svg diff --git a/public/icons/searchlist.svg b/apps/web/public/icons/searchlist.svg similarity index 100% rename from public/icons/searchlist.svg rename to apps/web/public/icons/searchlist.svg diff --git a/public/icons/share.svg b/apps/web/public/icons/share.svg similarity index 100% rename from public/icons/share.svg rename to apps/web/public/icons/share.svg diff --git a/public/icons/shieldcheck.svg b/apps/web/public/icons/shieldcheck.svg similarity index 100% rename from public/icons/shieldcheck.svg rename to apps/web/public/icons/shieldcheck.svg diff --git a/public/icons/shieldcheckered.svg b/apps/web/public/icons/shieldcheckered.svg similarity index 100% rename from public/icons/shieldcheckered.svg rename to apps/web/public/icons/shieldcheckered.svg diff --git a/public/icons/shieldslash.svg b/apps/web/public/icons/shieldslash.svg similarity index 100% rename from public/icons/shieldslash.svg rename to apps/web/public/icons/shieldslash.svg diff --git a/public/icons/shieldwarning.svg b/apps/web/public/icons/shieldwarning.svg similarity index 100% rename from public/icons/shieldwarning.svg rename to apps/web/public/icons/shieldwarning.svg diff --git a/public/icons/shoppingcart.svg b/apps/web/public/icons/shoppingcart.svg similarity index 100% rename from public/icons/shoppingcart.svg rename to apps/web/public/icons/shoppingcart.svg diff --git a/public/icons/signin.svg b/apps/web/public/icons/signin.svg similarity index 100% rename from public/icons/signin.svg rename to apps/web/public/icons/signin.svg diff --git a/public/icons/signout.svg b/apps/web/public/icons/signout.svg similarity index 100% rename from public/icons/signout.svg rename to apps/web/public/icons/signout.svg diff --git a/public/icons/siren.svg b/apps/web/public/icons/siren.svg similarity index 100% rename from public/icons/siren.svg rename to apps/web/public/icons/siren.svg diff --git a/public/icons/smiley.svg b/apps/web/public/icons/smiley.svg similarity index 100% rename from public/icons/smiley.svg rename to apps/web/public/icons/smiley.svg diff --git a/public/icons/smileywink.svg b/apps/web/public/icons/smileywink.svg similarity index 100% rename from public/icons/smileywink.svg rename to apps/web/public/icons/smileywink.svg diff --git a/public/icons/snapchat.svg b/apps/web/public/icons/snapchat.svg similarity index 100% rename from public/icons/snapchat.svg rename to apps/web/public/icons/snapchat.svg diff --git a/public/icons/soccerball.svg b/apps/web/public/icons/soccerball.svg similarity index 100% rename from public/icons/soccerball.svg rename to apps/web/public/icons/soccerball.svg diff --git a/public/icons/sortascending.svg b/apps/web/public/icons/sortascending.svg similarity index 100% rename from public/icons/sortascending.svg rename to apps/web/public/icons/sortascending.svg diff --git a/public/icons/sortdescending.svg b/apps/web/public/icons/sortdescending.svg similarity index 100% rename from public/icons/sortdescending.svg rename to apps/web/public/icons/sortdescending.svg diff --git a/public/icons/speedometer.svg b/apps/web/public/icons/speedometer.svg similarity index 100% rename from public/icons/speedometer.svg rename to apps/web/public/icons/speedometer.svg diff --git a/public/icons/spinner.svg b/apps/web/public/icons/spinner.svg similarity index 100% rename from public/icons/spinner.svg rename to apps/web/public/icons/spinner.svg diff --git a/public/icons/spinnergap.svg b/apps/web/public/icons/spinnergap.svg similarity index 100% rename from public/icons/spinnergap.svg rename to apps/web/public/icons/spinnergap.svg diff --git a/public/icons/star.svg b/apps/web/public/icons/star.svg similarity index 100% rename from public/icons/star.svg rename to apps/web/public/icons/star.svg diff --git a/public/icons/stethoscope.svg b/apps/web/public/icons/stethoscope.svg similarity index 100% rename from public/icons/stethoscope.svg rename to apps/web/public/icons/stethoscope.svg diff --git a/public/icons/stop.svg b/apps/web/public/icons/stop.svg similarity index 100% rename from public/icons/stop.svg rename to apps/web/public/icons/stop.svg diff --git a/public/icons/store.svg b/apps/web/public/icons/store.svg similarity index 100% rename from public/icons/store.svg rename to apps/web/public/icons/store.svg diff --git a/public/icons/subtitles.svg b/apps/web/public/icons/subtitles.svg similarity index 100% rename from public/icons/subtitles.svg rename to apps/web/public/icons/subtitles.svg diff --git a/public/icons/subway.svg b/apps/web/public/icons/subway.svg similarity index 100% rename from public/icons/subway.svg rename to apps/web/public/icons/subway.svg diff --git a/public/icons/sun.svg b/apps/web/public/icons/sun.svg similarity index 100% rename from public/icons/sun.svg rename to apps/web/public/icons/sun.svg diff --git a/public/icons/sunglass.svg b/apps/web/public/icons/sunglass.svg similarity index 100% rename from public/icons/sunglass.svg rename to apps/web/public/icons/sunglass.svg diff --git a/public/icons/table.svg b/apps/web/public/icons/table.svg similarity index 100% rename from public/icons/table.svg rename to apps/web/public/icons/table.svg diff --git a/public/icons/tablet.svg b/apps/web/public/icons/tablet.svg similarity index 100% rename from public/icons/tablet.svg rename to apps/web/public/icons/tablet.svg diff --git a/public/icons/tag.svg b/apps/web/public/icons/tag.svg similarity index 100% rename from public/icons/tag.svg rename to apps/web/public/icons/tag.svg diff --git a/public/icons/teams.svg b/apps/web/public/icons/teams.svg similarity index 100% rename from public/icons/teams.svg rename to apps/web/public/icons/teams.svg diff --git a/public/icons/textaligncenter.svg b/apps/web/public/icons/textaligncenter.svg similarity index 100% rename from public/icons/textaligncenter.svg rename to apps/web/public/icons/textaligncenter.svg diff --git a/public/icons/textalignjustify.svg b/apps/web/public/icons/textalignjustify.svg similarity index 100% rename from public/icons/textalignjustify.svg rename to apps/web/public/icons/textalignjustify.svg diff --git a/public/icons/textalignleft.svg b/apps/web/public/icons/textalignleft.svg similarity index 100% rename from public/icons/textalignleft.svg rename to apps/web/public/icons/textalignleft.svg diff --git a/public/icons/textalignright.svg b/apps/web/public/icons/textalignright.svg similarity index 100% rename from public/icons/textalignright.svg rename to apps/web/public/icons/textalignright.svg diff --git a/public/icons/textbolder.svg b/apps/web/public/icons/textbolder.svg similarity index 100% rename from public/icons/textbolder.svg rename to apps/web/public/icons/textbolder.svg diff --git a/public/icons/textindent.svg b/apps/web/public/icons/textindent.svg similarity index 100% rename from public/icons/textindent.svg rename to apps/web/public/icons/textindent.svg diff --git a/public/icons/textitalic.svg b/apps/web/public/icons/textitalic.svg similarity index 100% rename from public/icons/textitalic.svg rename to apps/web/public/icons/textitalic.svg diff --git a/public/icons/textparagraph.svg b/apps/web/public/icons/textparagraph.svg similarity index 100% rename from public/icons/textparagraph.svg rename to apps/web/public/icons/textparagraph.svg diff --git a/public/icons/textunderline.svg b/apps/web/public/icons/textunderline.svg similarity index 100% rename from public/icons/textunderline.svg rename to apps/web/public/icons/textunderline.svg diff --git a/public/icons/tiktok.svg b/apps/web/public/icons/tiktok.svg similarity index 100% rename from public/icons/tiktok.svg rename to apps/web/public/icons/tiktok.svg diff --git a/public/icons/toiletpaper.svg b/apps/web/public/icons/toiletpaper.svg similarity index 100% rename from public/icons/toiletpaper.svg rename to apps/web/public/icons/toiletpaper.svg diff --git a/public/icons/train.svg b/apps/web/public/icons/train.svg similarity index 100% rename from public/icons/train.svg rename to apps/web/public/icons/train.svg diff --git a/public/icons/translate.svg b/apps/web/public/icons/translate.svg similarity index 100% rename from public/icons/translate.svg rename to apps/web/public/icons/translate.svg diff --git a/public/icons/tray.svg b/apps/web/public/icons/tray.svg similarity index 100% rename from public/icons/tray.svg rename to apps/web/public/icons/tray.svg diff --git a/public/icons/truck.svg b/apps/web/public/icons/truck.svg similarity index 100% rename from public/icons/truck.svg rename to apps/web/public/icons/truck.svg diff --git a/public/icons/trucktrailer.svg b/apps/web/public/icons/trucktrailer.svg similarity index 100% rename from public/icons/trucktrailer.svg rename to apps/web/public/icons/trucktrailer.svg diff --git a/public/icons/twitch.svg b/apps/web/public/icons/twitch.svg similarity index 100% rename from public/icons/twitch.svg rename to apps/web/public/icons/twitch.svg diff --git a/public/icons/twitter.svg b/apps/web/public/icons/twitter.svg similarity index 100% rename from public/icons/twitter.svg rename to apps/web/public/icons/twitter.svg diff --git a/public/icons/umbrella.svg b/apps/web/public/icons/umbrella.svg similarity index 100% rename from public/icons/umbrella.svg rename to apps/web/public/icons/umbrella.svg diff --git a/public/icons/undo.svg b/apps/web/public/icons/undo.svg similarity index 100% rename from public/icons/undo.svg rename to apps/web/public/icons/undo.svg diff --git a/public/icons/upload.svg b/apps/web/public/icons/upload.svg similarity index 100% rename from public/icons/upload.svg rename to apps/web/public/icons/upload.svg diff --git a/public/icons/uppercaselowercase.svg b/apps/web/public/icons/uppercaselowercase.svg similarity index 100% rename from public/icons/uppercaselowercase.svg rename to apps/web/public/icons/uppercaselowercase.svg diff --git a/public/icons/user.svg b/apps/web/public/icons/user.svg similarity index 100% rename from public/icons/user.svg rename to apps/web/public/icons/user.svg diff --git a/public/icons/userfocus.svg b/apps/web/public/icons/userfocus.svg similarity index 100% rename from public/icons/userfocus.svg rename to apps/web/public/icons/userfocus.svg diff --git a/public/icons/userlist.svg b/apps/web/public/icons/userlist.svg similarity index 100% rename from public/icons/userlist.svg rename to apps/web/public/icons/userlist.svg diff --git a/public/icons/userplus.svg b/apps/web/public/icons/userplus.svg similarity index 100% rename from public/icons/userplus.svg rename to apps/web/public/icons/userplus.svg diff --git a/public/icons/usersfour.svg b/apps/web/public/icons/usersfour.svg similarity index 100% rename from public/icons/usersfour.svg rename to apps/web/public/icons/usersfour.svg diff --git a/public/icons/usersound.svg b/apps/web/public/icons/usersound.svg similarity index 100% rename from public/icons/usersound.svg rename to apps/web/public/icons/usersound.svg diff --git a/public/icons/virtualreality.svg b/apps/web/public/icons/virtualreality.svg similarity index 100% rename from public/icons/virtualreality.svg rename to apps/web/public/icons/virtualreality.svg diff --git a/public/icons/visor.svg b/apps/web/public/icons/visor.svg similarity index 100% rename from public/icons/visor.svg rename to apps/web/public/icons/visor.svg diff --git a/public/icons/volume.svg b/apps/web/public/icons/volume.svg similarity index 100% rename from public/icons/volume.svg rename to apps/web/public/icons/volume.svg diff --git a/public/icons/volumehigh.svg b/apps/web/public/icons/volumehigh.svg similarity index 100% rename from public/icons/volumehigh.svg rename to apps/web/public/icons/volumehigh.svg diff --git a/public/icons/volumelow.svg b/apps/web/public/icons/volumelow.svg similarity index 100% rename from public/icons/volumelow.svg rename to apps/web/public/icons/volumelow.svg diff --git a/public/icons/volumemuted.svg b/apps/web/public/icons/volumemuted.svg similarity index 100% rename from public/icons/volumemuted.svg rename to apps/web/public/icons/volumemuted.svg diff --git a/public/icons/walk.svg b/apps/web/public/icons/walk.svg similarity index 100% rename from public/icons/walk.svg rename to apps/web/public/icons/walk.svg diff --git a/public/icons/wall.svg b/apps/web/public/icons/wall.svg similarity index 100% rename from public/icons/wall.svg rename to apps/web/public/icons/wall.svg diff --git a/public/icons/wallet.svg b/apps/web/public/icons/wallet.svg similarity index 100% rename from public/icons/wallet.svg rename to apps/web/public/icons/wallet.svg diff --git a/public/icons/warning.svg b/apps/web/public/icons/warning.svg similarity index 100% rename from public/icons/warning.svg rename to apps/web/public/icons/warning.svg diff --git a/public/icons/warningcircle.svg b/apps/web/public/icons/warningcircle.svg similarity index 100% rename from public/icons/warningcircle.svg rename to apps/web/public/icons/warningcircle.svg diff --git a/public/icons/warningoctagon.svg b/apps/web/public/icons/warningoctagon.svg similarity index 100% rename from public/icons/warningoctagon.svg rename to apps/web/public/icons/warningoctagon.svg diff --git a/public/icons/watch.svg b/apps/web/public/icons/watch.svg similarity index 100% rename from public/icons/watch.svg rename to apps/web/public/icons/watch.svg diff --git a/public/icons/webcam.svg b/apps/web/public/icons/webcam.svg similarity index 100% rename from public/icons/webcam.svg rename to apps/web/public/icons/webcam.svg diff --git a/public/icons/webcamslash.svg b/apps/web/public/icons/webcamslash.svg similarity index 100% rename from public/icons/webcamslash.svg rename to apps/web/public/icons/webcamslash.svg diff --git a/public/icons/wifi.svg b/apps/web/public/icons/wifi.svg similarity index 100% rename from public/icons/wifi.svg rename to apps/web/public/icons/wifi.svg diff --git a/public/icons/windows.svg b/apps/web/public/icons/windows.svg similarity index 100% rename from public/icons/windows.svg rename to apps/web/public/icons/windows.svg diff --git a/public/icons/word.svg b/apps/web/public/icons/word.svg similarity index 100% rename from public/icons/word.svg rename to apps/web/public/icons/word.svg diff --git a/public/icons/xcircle.svg b/apps/web/public/icons/xcircle.svg similarity index 100% rename from public/icons/xcircle.svg rename to apps/web/public/icons/xcircle.svg diff --git a/public/icons/xclosesquare.svg b/apps/web/public/icons/xclosesquare.svg similarity index 100% rename from public/icons/xclosesquare.svg rename to apps/web/public/icons/xclosesquare.svg diff --git a/public/icons/xeyes.svg b/apps/web/public/icons/xeyes.svg similarity index 100% rename from public/icons/xeyes.svg rename to apps/web/public/icons/xeyes.svg diff --git a/public/icons/youtube.svg b/apps/web/public/icons/youtube.svg similarity index 100% rename from public/icons/youtube.svg rename to apps/web/public/icons/youtube.svg diff --git a/public/icons/zoomin.svg b/apps/web/public/icons/zoomin.svg similarity index 100% rename from public/icons/zoomin.svg rename to apps/web/public/icons/zoomin.svg diff --git a/public/icons/zoomout.svg b/apps/web/public/icons/zoomout.svg similarity index 100% rename from public/icons/zoomout.svg rename to apps/web/public/icons/zoomout.svg diff --git a/public/lanfong.svg b/apps/web/public/lanfong.svg similarity index 100% rename from public/lanfong.svg rename to apps/web/public/lanfong.svg diff --git a/public/logo-landing.svg b/apps/web/public/logo-landing.svg similarity index 100% rename from public/logo-landing.svg rename to apps/web/public/logo-landing.svg diff --git a/public/logolanfing.svg b/apps/web/public/logolanfing.svg similarity index 100% rename from public/logolanfing.svg rename to apps/web/public/logolanfing.svg diff --git a/public/low-wireframes/circleLow.svg b/apps/web/public/low-wireframes/circleLow.svg similarity index 100% rename from public/low-wireframes/circleLow.svg rename to apps/web/public/low-wireframes/circleLow.svg diff --git a/public/low-wireframes/ellipseLow.svg b/apps/web/public/low-wireframes/ellipseLow.svg similarity index 100% rename from public/low-wireframes/ellipseLow.svg rename to apps/web/public/low-wireframes/ellipseLow.svg diff --git a/public/low-wireframes/horizontalLineLow.svg b/apps/web/public/low-wireframes/horizontalLineLow.svg similarity index 100% rename from public/low-wireframes/horizontalLineLow.svg rename to apps/web/public/low-wireframes/horizontalLineLow.svg diff --git a/public/low-wireframes/imagePlaceholder.svg b/apps/web/public/low-wireframes/imagePlaceholder.svg similarity index 100% rename from public/low-wireframes/imagePlaceholder.svg rename to apps/web/public/low-wireframes/imagePlaceholder.svg diff --git a/public/low-wireframes/paragraphScribbled.svg b/apps/web/public/low-wireframes/paragraphScribbled.svg similarity index 100% rename from public/low-wireframes/paragraphScribbled.svg rename to apps/web/public/low-wireframes/paragraphScribbled.svg diff --git a/public/low-wireframes/rectangleLow.svg b/apps/web/public/low-wireframes/rectangleLow.svg similarity index 100% rename from public/low-wireframes/rectangleLow.svg rename to apps/web/public/low-wireframes/rectangleLow.svg diff --git a/public/low-wireframes/textScribbled.svg b/apps/web/public/low-wireframes/textScribbled.svg similarity index 100% rename from public/low-wireframes/textScribbled.svg rename to apps/web/public/low-wireframes/textScribbled.svg diff --git a/public/low-wireframes/verticalLineLow.svg b/apps/web/public/low-wireframes/verticalLineLow.svg similarity index 100% rename from public/low-wireframes/verticalLineLow.svg rename to apps/web/public/low-wireframes/verticalLineLow.svg diff --git a/public/manifest.webmanifest b/apps/web/public/manifest.webmanifest similarity index 100% rename from public/manifest.webmanifest rename to apps/web/public/manifest.webmanifest diff --git a/public/mstile-150x150.png b/apps/web/public/mstile-150x150.png similarity index 100% rename from public/mstile-150x150.png rename to apps/web/public/mstile-150x150.png diff --git a/public/quickmock-frame.png b/apps/web/public/quickmock-frame.png similarity index 100% rename from public/quickmock-frame.png rename to apps/web/public/quickmock-frame.png diff --git a/public/rich-components/accordion.svg b/apps/web/public/rich-components/accordion.svg similarity index 100% rename from public/rich-components/accordion.svg rename to apps/web/public/rich-components/accordion.svg diff --git a/public/rich-components/appBar.svg b/apps/web/public/rich-components/appBar.svg similarity index 100% rename from public/rich-components/appBar.svg rename to apps/web/public/rich-components/appBar.svg diff --git a/public/rich-components/audioPlayer.svg b/apps/web/public/rich-components/audioPlayer.svg similarity index 100% rename from public/rich-components/audioPlayer.svg rename to apps/web/public/rich-components/audioPlayer.svg diff --git a/public/rich-components/barchart.svg b/apps/web/public/rich-components/barchart.svg similarity index 100% rename from public/rich-components/barchart.svg rename to apps/web/public/rich-components/barchart.svg diff --git a/public/rich-components/breadcrumb.svg b/apps/web/public/rich-components/breadcrumb.svg similarity index 100% rename from public/rich-components/breadcrumb.svg rename to apps/web/public/rich-components/breadcrumb.svg diff --git a/public/rich-components/button-bar-group.svg b/apps/web/public/rich-components/button-bar-group.svg similarity index 100% rename from public/rich-components/button-bar-group.svg rename to apps/web/public/rich-components/button-bar-group.svg diff --git a/public/rich-components/calendar.svg b/apps/web/public/rich-components/calendar.svg similarity index 100% rename from public/rich-components/calendar.svg rename to apps/web/public/rich-components/calendar.svg diff --git a/public/rich-components/fab-button.svg b/apps/web/public/rich-components/fab-button.svg similarity index 100% rename from public/rich-components/fab-button.svg rename to apps/web/public/rich-components/fab-button.svg diff --git a/public/rich-components/file-tree.svg b/apps/web/public/rich-components/file-tree.svg similarity index 100% rename from public/rich-components/file-tree.svg rename to apps/web/public/rich-components/file-tree.svg diff --git a/public/rich-components/gauge.svg b/apps/web/public/rich-components/gauge.svg similarity index 100% rename from public/rich-components/gauge.svg rename to apps/web/public/rich-components/gauge.svg diff --git a/public/rich-components/horizontal-menu.svg b/apps/web/public/rich-components/horizontal-menu.svg similarity index 100% rename from public/rich-components/horizontal-menu.svg rename to apps/web/public/rich-components/horizontal-menu.svg diff --git a/public/rich-components/input-stepper.svg b/apps/web/public/rich-components/input-stepper.svg similarity index 86% rename from public/rich-components/input-stepper.svg rename to apps/web/public/rich-components/input-stepper.svg index be747f48..bc0939a8 100644 --- a/public/rich-components/input-stepper.svg +++ b/apps/web/public/rich-components/input-stepper.svg @@ -3,7 +3,7 @@ - 0 + 0 @@ -12,4 +12,4 @@ - \ No newline at end of file + diff --git a/public/rich-components/line-chart.svg b/apps/web/public/rich-components/line-chart.svg similarity index 100% rename from public/rich-components/line-chart.svg rename to apps/web/public/rich-components/line-chart.svg diff --git a/public/rich-components/loading-indicator.svg b/apps/web/public/rich-components/loading-indicator.svg similarity index 100% rename from public/rich-components/loading-indicator.svg rename to apps/web/public/rich-components/loading-indicator.svg diff --git a/public/rich-components/map.svg b/apps/web/public/rich-components/map.svg similarity index 100% rename from public/rich-components/map.svg rename to apps/web/public/rich-components/map.svg diff --git a/public/rich-components/modal.svg b/apps/web/public/rich-components/modal.svg similarity index 100% rename from public/rich-components/modal.svg rename to apps/web/public/rich-components/modal.svg diff --git a/public/rich-components/pie.svg b/apps/web/public/rich-components/pie.svg similarity index 100% rename from public/rich-components/pie.svg rename to apps/web/public/rich-components/pie.svg diff --git a/public/rich-components/table.svg b/apps/web/public/rich-components/table.svg similarity index 100% rename from public/rich-components/table.svg rename to apps/web/public/rich-components/table.svg diff --git a/public/rich-components/tabsbar.svg b/apps/web/public/rich-components/tabsbar.svg similarity index 100% rename from public/rich-components/tabsbar.svg rename to apps/web/public/rich-components/tabsbar.svg diff --git a/public/rich-components/vertical-menu.svg b/apps/web/public/rich-components/vertical-menu.svg similarity index 100% rename from public/rich-components/vertical-menu.svg rename to apps/web/public/rich-components/vertical-menu.svg diff --git a/public/rich-components/videoPlayer.svg b/apps/web/public/rich-components/videoPlayer.svg similarity index 100% rename from public/rich-components/videoPlayer.svg rename to apps/web/public/rich-components/videoPlayer.svg diff --git a/public/rich-components/videoconference.svg b/apps/web/public/rich-components/videoconference.svg similarity index 100% rename from public/rich-components/videoconference.svg rename to apps/web/public/rich-components/videoconference.svg diff --git a/public/safari-pinned-tab.svg b/apps/web/public/safari-pinned-tab.svg similarity index 100% rename from public/safari-pinned-tab.svg rename to apps/web/public/safari-pinned-tab.svg diff --git a/public/shapes/cilinder.svg b/apps/web/public/shapes/cilinder.svg similarity index 100% rename from public/shapes/cilinder.svg rename to apps/web/public/shapes/cilinder.svg diff --git a/public/shapes/circle.svg b/apps/web/public/shapes/circle.svg similarity index 100% rename from public/shapes/circle.svg rename to apps/web/public/shapes/circle.svg diff --git a/public/shapes/diamond.svg b/apps/web/public/shapes/diamond.svg similarity index 100% rename from public/shapes/diamond.svg rename to apps/web/public/shapes/diamond.svg diff --git a/public/shapes/horizontalLine.svg b/apps/web/public/shapes/horizontalLine.svg similarity index 100% rename from public/shapes/horizontalLine.svg rename to apps/web/public/shapes/horizontalLine.svg diff --git a/public/shapes/image.svg b/apps/web/public/shapes/image.svg similarity index 100% rename from public/shapes/image.svg rename to apps/web/public/shapes/image.svg diff --git a/public/shapes/largeArrow.svg b/apps/web/public/shapes/largeArrow.svg similarity index 100% rename from public/shapes/largeArrow.svg rename to apps/web/public/shapes/largeArrow.svg diff --git a/public/shapes/modalCover.svg b/apps/web/public/shapes/modalCover.svg similarity index 100% rename from public/shapes/modalCover.svg rename to apps/web/public/shapes/modalCover.svg diff --git a/public/shapes/postit.svg b/apps/web/public/shapes/postit.svg similarity index 100% rename from public/shapes/postit.svg rename to apps/web/public/shapes/postit.svg diff --git a/public/shapes/rectangle.svg b/apps/web/public/shapes/rectangle.svg similarity index 100% rename from public/shapes/rectangle.svg rename to apps/web/public/shapes/rectangle.svg diff --git a/public/shapes/star.svg b/apps/web/public/shapes/star.svg similarity index 100% rename from public/shapes/star.svg rename to apps/web/public/shapes/star.svg diff --git a/public/shapes/triangle.svg b/apps/web/public/shapes/triangle.svg similarity index 100% rename from public/shapes/triangle.svg rename to apps/web/public/shapes/triangle.svg diff --git a/public/shapes/verticalLine.svg b/apps/web/public/shapes/verticalLine.svg similarity index 100% rename from public/shapes/verticalLine.svg rename to apps/web/public/shapes/verticalLine.svg diff --git a/apps/web/public/site.webmanifest b/apps/web/public/site.webmanifest new file mode 100644 index 00000000..fa99de77 --- /dev/null +++ b/apps/web/public/site.webmanifest @@ -0,0 +1,19 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/public/tab.svg b/apps/web/public/tab.svg similarity index 100% rename from public/tab.svg rename to apps/web/public/tab.svg diff --git a/public/text/heading1.svg b/apps/web/public/text/heading1.svg similarity index 100% rename from public/text/heading1.svg rename to apps/web/public/text/heading1.svg diff --git a/public/text/heading2.svg b/apps/web/public/text/heading2.svg similarity index 100% rename from public/text/heading2.svg rename to apps/web/public/text/heading2.svg diff --git a/public/text/heading3.svg b/apps/web/public/text/heading3.svg similarity index 100% rename from public/text/heading3.svg rename to apps/web/public/text/heading3.svg diff --git a/public/text/link.svg b/apps/web/public/text/link.svg similarity index 100% rename from public/text/link.svg rename to apps/web/public/text/link.svg diff --git a/public/text/normaltext.svg b/apps/web/public/text/normaltext.svg similarity index 100% rename from public/text/normaltext.svg rename to apps/web/public/text/normaltext.svg diff --git a/public/text/paragraph.svg b/apps/web/public/text/paragraph.svg similarity index 100% rename from public/text/paragraph.svg rename to apps/web/public/text/paragraph.svg diff --git a/public/text/rich-text.svg b/apps/web/public/text/rich-text.svg similarity index 100% rename from public/text/rich-text.svg rename to apps/web/public/text/rich-text.svg diff --git a/public/text/smalltext.svg b/apps/web/public/text/smalltext.svg similarity index 100% rename from public/text/smalltext.svg rename to apps/web/public/text/smalltext.svg diff --git a/public/widgets/bombilla.webp b/apps/web/public/widgets/bombilla.webp similarity index 100% rename from public/widgets/bombilla.webp rename to apps/web/public/widgets/bombilla.webp diff --git a/public/widgets/button.svg b/apps/web/public/widgets/button.svg similarity index 100% rename from public/widgets/button.svg rename to apps/web/public/widgets/button.svg diff --git a/public/widgets/checkbox.svg b/apps/web/public/widgets/checkbox.svg similarity index 100% rename from public/widgets/checkbox.svg rename to apps/web/public/widgets/checkbox.svg diff --git a/public/widgets/chip.svg b/apps/web/public/widgets/chip.svg similarity index 100% rename from public/widgets/chip.svg rename to apps/web/public/widgets/chip.svg diff --git a/public/widgets/combobox.svg b/apps/web/public/widgets/combobox.svg similarity index 100% rename from public/widgets/combobox.svg rename to apps/web/public/widgets/combobox.svg diff --git a/public/widgets/datepicker.svg b/apps/web/public/widgets/datepicker.svg similarity index 100% rename from public/widgets/datepicker.svg rename to apps/web/public/widgets/datepicker.svg diff --git a/public/widgets/horizontalscrollbar.svg b/apps/web/public/widgets/horizontalscrollbar.svg similarity index 100% rename from public/widgets/horizontalscrollbar.svg rename to apps/web/public/widgets/horizontalscrollbar.svg diff --git a/public/widgets/icon.svg b/apps/web/public/widgets/icon.svg similarity index 100% rename from public/widgets/icon.svg rename to apps/web/public/widgets/icon.svg diff --git a/public/widgets/input.svg b/apps/web/public/widgets/input.svg similarity index 100% rename from public/widgets/input.svg rename to apps/web/public/widgets/input.svg diff --git a/public/widgets/isotype.svg b/apps/web/public/widgets/isotype.svg similarity index 100% rename from public/widgets/isotype.svg rename to apps/web/public/widgets/isotype.svg diff --git a/public/widgets/label.svg b/apps/web/public/widgets/label.svg similarity index 100% rename from public/widgets/label.svg rename to apps/web/public/widgets/label.svg diff --git a/public/widgets/listbox.svg b/apps/web/public/widgets/listbox.svg similarity index 100% rename from public/widgets/listbox.svg rename to apps/web/public/widgets/listbox.svg diff --git a/public/widgets/progressbar.svg b/apps/web/public/widgets/progressbar.svg similarity index 100% rename from public/widgets/progressbar.svg rename to apps/web/public/widgets/progressbar.svg diff --git a/public/widgets/radiobutton.svg b/apps/web/public/widgets/radiobutton.svg similarity index 100% rename from public/widgets/radiobutton.svg rename to apps/web/public/widgets/radiobutton.svg diff --git a/public/widgets/slider.svg b/apps/web/public/widgets/slider.svg similarity index 100% rename from public/widgets/slider.svg rename to apps/web/public/widgets/slider.svg diff --git a/public/widgets/textarea.svg b/apps/web/public/widgets/textarea.svg similarity index 100% rename from public/widgets/textarea.svg rename to apps/web/public/widgets/textarea.svg diff --git a/public/widgets/timepicker.svg b/apps/web/public/widgets/timepicker.svg similarity index 100% rename from public/widgets/timepicker.svg rename to apps/web/public/widgets/timepicker.svg diff --git a/public/widgets/togglelightdark.svg b/apps/web/public/widgets/togglelightdark.svg similarity index 100% rename from public/widgets/togglelightdark.svg rename to apps/web/public/widgets/togglelightdark.svg diff --git a/public/widgets/toggleswitch.svg b/apps/web/public/widgets/toggleswitch.svg similarity index 100% rename from public/widgets/toggleswitch.svg rename to apps/web/public/widgets/toggleswitch.svg diff --git a/public/widgets/tooltip.svg b/apps/web/public/widgets/tooltip.svg similarity index 100% rename from public/widgets/tooltip.svg rename to apps/web/public/widgets/tooltip.svg diff --git a/public/widgets/verticalscrollbar.svg b/apps/web/public/widgets/verticalscrollbar.svg similarity index 100% rename from public/widgets/verticalscrollbar.svg rename to apps/web/public/widgets/verticalscrollbar.svg diff --git a/src/App.tsx b/apps/web/src/App.tsx similarity index 100% rename from src/App.tsx rename to apps/web/src/App.tsx diff --git a/src/common/components/gallery/components/item-component.module.css b/apps/web/src/common/components/gallery/components/item-component.module.css similarity index 100% rename from src/common/components/gallery/components/item-component.module.css rename to apps/web/src/common/components/gallery/components/item-component.module.css diff --git a/src/common/components/gallery/components/item-component.tsx b/apps/web/src/common/components/gallery/components/item-component.tsx similarity index 96% rename from src/common/components/gallery/components/item-component.tsx rename to apps/web/src/common/components/gallery/components/item-component.tsx index 7f4b6bea..818437c8 100644 --- a/src/common/components/gallery/components/item-component.tsx +++ b/apps/web/src/common/components/gallery/components/item-component.tsx @@ -1,11 +1,11 @@ -import { useEffect, useRef, useState } from 'react'; -import { createRoot } from 'react-dom/client'; +import { ShapeDisplayName, ShapeType } from '#core/model'; import { draggable } from '@atlaskit/pragmatic-drag-and-drop/element/adapter'; import { setCustomNativeDragPreview } from '@atlaskit/pragmatic-drag-and-drop/element/set-custom-native-drag-preview'; +import { useEffect, useRef, useState } from 'react'; +import { createRoot } from 'react-dom/client'; import invariant from 'tiny-invariant'; -import { ShapeDisplayName, ShapeType } from '@/core/model'; -import { ItemInfo } from './model'; import classes from './item-component.module.css'; +import { ItemInfo } from './model'; interface Props { item: ItemInfo; @@ -83,6 +83,7 @@ const Preview: React.FC = props => { return ( {ShapeDisplayName[item.type void; diff --git a/src/common/components/inline-edit/components/index.ts b/apps/web/src/common/components/inline-edit/components/index.ts similarity index 100% rename from src/common/components/inline-edit/components/index.ts rename to apps/web/src/common/components/inline-edit/components/index.ts diff --git a/src/common/components/inline-edit/hooks/index.ts b/apps/web/src/common/components/inline-edit/hooks/index.ts similarity index 100% rename from src/common/components/inline-edit/hooks/index.ts rename to apps/web/src/common/components/inline-edit/hooks/index.ts diff --git a/src/common/components/inline-edit/hooks/use-position-hook.ts b/apps/web/src/common/components/inline-edit/hooks/use-position-hook.ts similarity index 95% rename from src/common/components/inline-edit/hooks/use-position-hook.ts rename to apps/web/src/common/components/inline-edit/hooks/use-position-hook.ts index 5bdecabe..7ff60ad3 100644 --- a/src/common/components/inline-edit/hooks/use-position-hook.ts +++ b/apps/web/src/common/components/inline-edit/hooks/use-position-hook.ts @@ -1,6 +1,6 @@ import { useCallback } from 'react'; import { addPxSuffix, calculateCoordinateValue } from '../inline-edit.utils'; -import { Coord, Size } from '@/core/model'; +import { Coord, Size } from '#core/model'; export const usePositionHook = (coords: Coord, size: Size, scale: number) => { // TODO: this can be optimized using React.useCallback, issue #90 diff --git a/src/common/components/inline-edit/hooks/use-submit-cancel-hook.ts b/apps/web/src/common/components/inline-edit/hooks/use-submit-cancel-hook.ts similarity index 96% rename from src/common/components/inline-edit/hooks/use-submit-cancel-hook.ts rename to apps/web/src/common/components/inline-edit/hooks/use-submit-cancel-hook.ts index c3d4fc2f..66c9120a 100644 --- a/src/common/components/inline-edit/hooks/use-submit-cancel-hook.ts +++ b/apps/web/src/common/components/inline-edit/hooks/use-submit-cancel-hook.ts @@ -1,5 +1,5 @@ -import { EditType } from '@/core/model'; -import { useCanvasContext } from '@/core/providers'; +import { EditType } from '#core/model'; +import { useCanvasContext } from '#core/providers'; import { useEffect, useRef, useState } from 'react'; interface Configuration { diff --git a/src/common/components/inline-edit/index.ts b/apps/web/src/common/components/inline-edit/index.ts similarity index 100% rename from src/common/components/inline-edit/index.ts rename to apps/web/src/common/components/inline-edit/index.ts diff --git a/src/common/components/inline-edit/inline-edit.model.tsx b/apps/web/src/common/components/inline-edit/inline-edit.model.tsx similarity index 100% rename from src/common/components/inline-edit/inline-edit.model.tsx rename to apps/web/src/common/components/inline-edit/inline-edit.model.tsx diff --git a/src/common/components/inline-edit/inline-edit.tsx b/apps/web/src/common/components/inline-edit/inline-edit.tsx similarity index 96% rename from src/common/components/inline-edit/inline-edit.tsx rename to apps/web/src/common/components/inline-edit/inline-edit.tsx index 23ec25d1..95f30011 100644 --- a/src/common/components/inline-edit/inline-edit.tsx +++ b/apps/web/src/common/components/inline-edit/inline-edit.tsx @@ -1,9 +1,9 @@ import React, { useRef, useState } from 'react'; import { Group } from 'react-konva'; -import { Coord, EditType, Size } from '@/core/model'; +import { Coord, EditType, Size } from '#core/model'; import { HtmlEditWidget } from './components'; import { useSubmitCancelHook, usePositionHook } from './hooks'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface Props { coords: Coord; diff --git a/src/common/components/inline-edit/inline-edit.utils.spec.ts b/apps/web/src/common/components/inline-edit/inline-edit.utils.spec.ts similarity index 100% rename from src/common/components/inline-edit/inline-edit.utils.spec.ts rename to apps/web/src/common/components/inline-edit/inline-edit.utils.spec.ts diff --git a/src/common/components/inline-edit/inline-edit.utils.ts b/apps/web/src/common/components/inline-edit/inline-edit.utils.ts similarity index 100% rename from src/common/components/inline-edit/inline-edit.utils.ts rename to apps/web/src/common/components/inline-edit/inline-edit.utils.ts diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.restrictions.ts new file mode 100644 index 00000000..2462a0f3 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const cilinderShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 110, +}; + +export const getCilinderShapeSizeRestrictions = (): ShapeSizeRestrictions => + cilinderShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.tsx similarity index 81% rename from src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.tsx index 6cbca7eb..5abe46e0 100644 --- a/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/cilinder-basic-shape.tsx @@ -1,35 +1,23 @@ -import { ShapeSizeRestrictions } from '@/core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Ellipse, Line } from 'react-konva'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const cilinderShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 110, -}; - -export const getCilinderShapeSizeRestrictions = (): ShapeSizeRestrictions => - cilinderShapeRestrictions; +import { cilinderShapeRestrictions } from './cilinder-basic-shape.restrictions'; const shapeType = 'cilinder'; export const CilinderShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.restrictions.ts new file mode 100644 index 00000000..1bfabe96 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const circleShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getCircleShapeSizeRestrictions = (): ShapeSizeRestrictions => + circleShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.tsx similarity index 70% rename from src/common/components/mock-components/front-basic-shapes/circle-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.tsx index 13cccc25..b5a9613a 100644 --- a/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/circle-basic-shape.tsx @@ -1,28 +1,17 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Circle, Group } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const circleShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getCircleShapeSizeRestrictions = (): ShapeSizeRestrictions => - circleShapeRestrictions; +import { circleShapeRestrictions } from './circle-basic-shape.restrictions'; const shapeType: ShapeType = 'circle'; export const CircleShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( circleShapeRestrictions, diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/diamond-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/diamond-shape.restrictions.ts new file mode 100644 index 00000000..2b35dc6f --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/diamond-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const diamondShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getDiamondShapeSizeRestrictions = (): ShapeSizeRestrictions => + diamondShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/diamond-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/diamond-shape.tsx similarity index 75% rename from src/common/components/mock-components/front-basic-shapes/diamond-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/diamond-shape.tsx index be4f8b83..521a5f7a 100644 --- a/src/common/components/mock-components/front-basic-shapes/diamond-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/diamond-shape.tsx @@ -1,35 +1,24 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Line } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const diamondShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getDiamondShapeSizeRestrictions = (): ShapeSizeRestrictions => - diamondShapeRestrictions; +import { diamondShapeRestrictions } from './diamond-shape.restrictions'; const shapeType: ShapeType = 'diamond'; export const DiamondShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.restrictions.ts new file mode 100644 index 00000000..1fa3a47c --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const horizontalLineShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 30, + minHeight: 10, + maxWidth: -1, + maxHeight: 10, + defaultWidth: 200, + defaultHeight: 10, +}; + +export const getHorizontalLineShapeRestrictions = (): ShapeSizeRestrictions => + horizontalLineShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.tsx similarity index 73% rename from src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.tsx index 60cc2e38..489ed029 100644 --- a/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.tsx @@ -1,35 +1,24 @@ import { forwardRef } from 'react'; import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { ShapeProps } from '../shape.model'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const horizontalLineShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 30, - minHeight: 10, - maxWidth: -1, - maxHeight: 10, - defaultWidth: 200, - defaultHeight: 10, -}; - -export const getHorizontalLineShapeRestrictions = (): ShapeSizeRestrictions => - horizontalLineShapeRestrictions; +import { horizontalLineShapeRestrictions } from './horizontal-line-basic-shape.restrictions'; const shapeType: ShapeType = 'horizontalLine'; export const HorizontalLineShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/src/common/components/mock-components/front-basic-shapes/image-shape/components/no-image.component.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/components/no-image.component.tsx similarity index 100% rename from src/common/components/mock-components/front-basic-shapes/image-shape/components/no-image.component.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/components/no-image.component.tsx diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.restrictions.ts new file mode 100644 index 00000000..210a44b2 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const imageShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 300, + defaultHeight: 300, +}; + +export const getImageShapeSizeRestrictions = (): ShapeSizeRestrictions => + imageShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.tsx similarity index 78% rename from src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.tsx index 287a0635..40615e03 100644 --- a/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/image-shape.tsx @@ -1,29 +1,18 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useEffect, useRef } from 'react'; import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Image as KonvaImage } from 'react-konva'; import { NoImageSelected } from './components/no-image.component'; import useImage from 'use-image'; import Konva from 'konva'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const imageShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 300, - defaultHeight: 300, -}; +import { imageShapeRestrictions } from './image-shape.restrictions'; const shapeType: ShapeType = 'image'; -export const getImageShapeSizeRestrictions = (): ShapeSizeRestrictions => - imageShapeRestrictions; - export const ImageShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( imageShapeRestrictions, diff --git a/src/common/components/mock-components/front-basic-shapes/image-shape/index.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/index.ts similarity index 100% rename from src/common/components/mock-components/front-basic-shapes/image-shape/index.ts rename to apps/web/src/common/components/mock-components/front-basic-shapes/image-shape/index.ts diff --git a/src/common/components/mock-components/front-basic-shapes/index.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/index.ts similarity index 88% rename from src/common/components/mock-components/front-basic-shapes/index.ts rename to apps/web/src/common/components/mock-components/front-basic-shapes/index.ts index 782ff74e..6162bfa1 100644 --- a/src/common/components/mock-components/front-basic-shapes/index.ts +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/index.ts @@ -10,3 +10,4 @@ export * from './large-arrow-shape'; export * from './image-shape'; export * from './modal-cover-shape'; export * from './cilinder-basic-shape'; +export * from './mouse-cursor/mouse-cursor-basic-shape'; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.restrictions.ts new file mode 100644 index 00000000..7f3625a1 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const LargeArrowShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 30, + minHeight: 50, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 100, + defaultHeight: 100, +}; + +export const getLargeArrowShapeSizeRestrictions = (): ShapeSizeRestrictions => + LargeArrowShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.tsx similarity index 75% rename from src/common/components/mock-components/front-basic-shapes/large-arrow-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.tsx index 3a062e6f..3426e813 100644 --- a/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/large-arrow-shape.tsx @@ -1,20 +1,12 @@ import { Group, Path } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useMemo } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const LargeArrowShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 30, - minHeight: 50, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 100, - defaultHeight: 100, -}; +import { LargeArrowShapeSizeRestrictions } from './large-arrow-shape.restrictions'; const LARGE_ARROW_FIX_WIDTH = 100; const LARGE_ARROW_FIX_HEIGHT = 100; @@ -23,10 +15,8 @@ const pathData = `M10,35 L200,35 L200,15 L300,50 L200,85 L200,65 L10,65 Z`; const shapeType: ShapeType = 'largeArrow'; -export const getLargeArrowShapeSizeRestrictions = (): ShapeSizeRestrictions => - LargeArrowShapeSizeRestrictions; export const LargeArrowShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( LargeArrowShapeSizeRestrictions, diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.restrictions.ts new file mode 100644 index 00000000..a544038a --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const modalCoverShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 50, + minHeight: 50, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 200, + defaultHeight: 200, +}; + +export const getModalCoverShapeSizeRestrictions = (): ShapeSizeRestrictions => + modalCoverShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.tsx similarity index 67% rename from src/common/components/mock-components/front-basic-shapes/modal-cover-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.tsx index d40094f4..8b3f54a3 100644 --- a/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/modal-cover-shape.tsx @@ -1,34 +1,22 @@ -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes'; -import { ShapeSizeRestrictions } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes'; import { Group, Rect } from 'react-konva'; import { useGroupShapeProps } from '../mock-components.utils'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; - -const modalCoverShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 50, - minHeight: 50, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 200, - defaultHeight: 200, -}; - -export const getModalCoverShapeSizeRestrictions = (): ShapeSizeRestrictions => - modalCoverShapeSizeRestrictions; +import { modalCoverShapeSizeRestrictions } from './modal-cover-shape.restrictions'; const shapeType = 'modalCover'; export const ModalCoverShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, - otherProps, + _id, + _onSelected, + _text, + _otherProps, ...shapeProps } = props; diff --git a/src/common/components/mock-components/front-components/icon/icon-shape.business.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/icon-shape.business.ts similarity index 88% rename from src/common/components/mock-components/front-components/icon/icon-shape.business.ts rename to apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/icon-shape.business.ts index 71b7c376..b7610723 100644 --- a/src/common/components/mock-components/front-components/icon/icon-shape.business.ts +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/icon-shape.business.ts @@ -1,4 +1,4 @@ -import { IconSize } from '@/core/model'; +import { IconSize } from '#core/model'; export const returnIconSize = (iconSize: IconSize): number[] => { switch (iconSize) { diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/index.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/index.ts new file mode 100644 index 00000000..f80cebff --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/index.ts @@ -0,0 +1 @@ +export * from './mouse-cursor-basic-shape'; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.restrictions.ts new file mode 100644 index 00000000..978e12f6 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const MouseCursorSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 25, + minHeight: 25, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 150, +}; + +export const getMouseCursorShapeSizeRestrictions = (): ShapeSizeRestrictions => + MouseCursorSizeRestrictions; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.tsx new file mode 100644 index 00000000..add1ac74 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.tsx @@ -0,0 +1,67 @@ +import { ShapeType, BASE_ICONS_URL } from '#core/model'; +import { forwardRef, useEffect, useState } from 'react'; +import { ShapeProps } from '../../shape.model'; +import { loadSvgWithFill } from '#common/utils/svg.utils'; +import { Group, Image } from 'react-konva'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { returnIconSize } from './icon-shape.business'; +import { useGroupShapeProps } from '../../mock-components.utils'; +import { useShapeProps } from '../../../shapes/use-shape-props.hook'; +import { BASIC_SHAPE } from '../../front-components/shape.const'; +import { MouseCursorSizeRestrictions } from './mouse-cursor-basic-shape.restrictions'; + +const shapeType: ShapeType = 'mouseCursor'; + +export const MouseCursorShape = forwardRef((props, ref) => { + const { + _x, + _y, + _width, + _height, + _id, + _onSelected, + _text, + iconSize, + otherProps, + ...shapeProps + } = props; + + const [iconWidth, iconHeight] = returnIconSize(iconSize); + const restrictedSize = fitSizeToShapeSizeRestrictions( + MouseCursorSizeRestrictions, + iconWidth, + iconHeight + ); + + const { width: restrictedWidth, height: restrictedHeight } = restrictedSize; + const { stroke } = useShapeProps(otherProps, BASIC_SHAPE); + const commonGroupProps = useGroupShapeProps( + props, + restrictedSize, + shapeType, + ref + ); + + const [image, setImage] = useState(null); + //const imgRef = useRef(null); + const fileName = 'cursor.svg'; + useEffect(() => { + loadSvgWithFill(`${BASE_ICONS_URL}${fileName}`, `${stroke}`).then(img => { + setImage(img); + }); + }, [stroke]); + return ( + + {image && ( + + )} + + ); +}); diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.restrictions.ts new file mode 100644 index 00000000..63eba514 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const postItShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 80, + minHeight: 80, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getPostItShapeSizeRestrictions = (): ShapeSizeRestrictions => + postItShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.tsx similarity index 83% rename from src/common/components/mock-components/front-basic-shapes/postit-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.tsx index 2a4a2726..ddae3768 100644 --- a/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/postit-basic-shape.tsx @@ -1,35 +1,24 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Text } from 'react-konva'; import { POSTIT_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const postItShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 80, - minHeight: 80, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getPostItShapeSizeRestrictions = (): ShapeSizeRestrictions => - postItShapeRestrictions; +import { postItShapeRestrictions } from './postit-basic-shape.restrictions'; const shapeType: ShapeType = 'postit'; export const PostItShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, + _id, text, - onSelected, + _onSelected, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.restrictions.ts new file mode 100644 index 00000000..6c55594a --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const rectangleShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getRectangleShapeSizeRestrictions = (): ShapeSizeRestrictions => + rectangleShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.tsx similarity index 72% rename from src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.tsx index ddd32371..7e617aa9 100644 --- a/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/rectangle-basic-shape.tsx @@ -1,35 +1,23 @@ -import { ShapeSizeRestrictions } from '@/core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect } from 'react-konva'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const rectangleShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getRectangleShapeSizeRestrictions = (): ShapeSizeRestrictions => - rectangleShapeRestrictions; +import { rectangleShapeRestrictions } from './rectangle-basic-shape.restrictions'; const shapeType = 'rectangle'; export const RectangleShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/star-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/star-shape.restrictions.ts new file mode 100644 index 00000000..c46589f7 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/star-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const starShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getStarShapeSizeRestrictions = (): ShapeSizeRestrictions => + starShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/star-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/star-shape.tsx similarity index 73% rename from src/common/components/mock-components/front-basic-shapes/star-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/star-shape.tsx index cddcf0d7..65119208 100644 --- a/src/common/components/mock-components/front-basic-shapes/star-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/star-shape.tsx @@ -1,35 +1,24 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Star } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const starShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getStarShapeSizeRestrictions = (): ShapeSizeRestrictions => - starShapeRestrictions; +import { starShapeRestrictions } from './star-shape.restrictions'; const shapeType: ShapeType = 'star'; export const StarShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.restrictions.ts new file mode 100644 index 00000000..0027371e --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.restrictions.ts @@ -0,0 +1,16 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const WIDTH = 160; +export const HEIGHT = (WIDTH * 1.732) / 2; + +export const triangleShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: WIDTH, + defaultHeight: HEIGHT, +}; + +export const getTriangleShapeSizeRestrictions = (): ShapeSizeRestrictions => + triangleShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.tsx similarity index 71% rename from src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.tsx index 5ac56d4e..64899b8b 100644 --- a/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/triangle-basic-shape.tsx @@ -1,38 +1,24 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; -import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; import { Group, Line } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const WIDTH = 160; -const HEIGHT = (WIDTH * 1.732) / 2; - -const triangleShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: WIDTH, - defaultHeight: HEIGHT, -}; +import { ShapeProps } from '../shape.model'; +import { triangleShapeRestrictions } from './triangle-basic-shape.restrictions'; const shapeType: ShapeType = 'triangle'; -export const getTriangleShapeSizeRestrictions = (): ShapeSizeRestrictions => - triangleShapeRestrictions; - export const TriangleShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.restrictions.ts new file mode 100644 index 00000000..b742b40e --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const verticalLineShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 30, + maxWidth: 10, + maxHeight: -1, + defaultWidth: 10, + defaultHeight: 200, +}; + +export const getVerticalLineShapeRestrictions = (): ShapeSizeRestrictions => + verticalLineShapeRestrictions; diff --git a/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.tsx b/apps/web/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.tsx similarity index 73% rename from src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.tsx rename to apps/web/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.tsx index a6e1d619..0c698cd0 100644 --- a/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.tsx @@ -1,35 +1,24 @@ import { forwardRef } from 'react'; import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { ShapeProps } from '../shape.model'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const verticalLineShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 30, - maxWidth: 10, - maxHeight: -1, - defaultWidth: 10, - defaultHeight: 200, -}; - -export const getVerticalLineShapeRestrictions = (): ShapeSizeRestrictions => - verticalLineShapeRestrictions; +import { verticalLineShapeRestrictions } from './vertical-line-basic-shape.restrictions'; const shapeType: ShapeType = 'verticalLine'; export const VerticalLineShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-components/button-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/button-shape.restrictions.ts new file mode 100644 index 00000000..d83f1d2c --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/button-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const buttonShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 50, + minHeight: 35, + maxWidth: -1, + maxHeight: 100, + defaultWidth: 100, + defaultHeight: 35, +}; + +export const getButtonShapeSizeRestrictions = (): ShapeSizeRestrictions => + buttonShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/button-shape.tsx b/apps/web/src/common/components/mock-components/front-components/button-shape.tsx similarity index 76% rename from src/common/components/mock-components/front-components/button-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/button-shape.tsx index 9c04b2f1..13c3765a 100644 --- a/src/common/components/mock-components/front-components/button-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/button-shape.tsx @@ -1,35 +1,24 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Text } from 'react-konva'; import { BASIC_SHAPE } from './shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; -import { DISABLED_COLOR_VALUES } from '@/common/components/mock-components/front-components/shape.const'; - -const buttonShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 50, - minHeight: 35, - maxWidth: -1, - maxHeight: 100, - defaultWidth: 100, - defaultHeight: 35, -}; - -export const getButtonShapeSizeRestrictions = (): ShapeSizeRestrictions => - buttonShapeRestrictions; +import { DISABLED_COLOR_VALUES } from '#common/components/mock-components/front-components/shape.const'; +import { buttonShapeRestrictions } from './button-shape.restrictions'; const shapeType: ShapeType = 'button'; export const ButtonShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/checkbox-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/checkbox-shape.restrictions.ts new file mode 100644 index 00000000..45ef753e --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/checkbox-shape.restrictions.ts @@ -0,0 +1,16 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from './shape.const'; + +export const CHECKBOX_DEFAULT_HEIGHT = 20; + +export const checkBoxShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: CHECKBOX_DEFAULT_HEIGHT, + maxWidth: -1, + maxHeight: CHECKBOX_DEFAULT_HEIGHT, + defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, + defaultHeight: CHECKBOX_DEFAULT_HEIGHT, +}; + +export const getCheckboxShapeSizeRestrictions = (): ShapeSizeRestrictions => + checkBoxShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/checkbox-shape.tsx b/apps/web/src/common/components/mock-components/front-components/checkbox-shape.tsx similarity index 80% rename from src/common/components/mock-components/front-components/checkbox-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/checkbox-shape.tsx index 7619f00d..8cfad6eb 100644 --- a/src/common/components/mock-components/front-components/checkbox-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/checkbox-shape.tsx @@ -1,28 +1,18 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; -import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { Group, Rect, Line, Text } from 'react-konva'; +import { Group, Line, Rect, Text } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; -import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const CHECKBOX_DEFAULT_HEIGHT = 20; - -const checkBoxShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: CHECKBOX_DEFAULT_HEIGHT, - maxWidth: -1, - maxHeight: CHECKBOX_DEFAULT_HEIGHT, - defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, - defaultHeight: CHECKBOX_DEFAULT_HEIGHT, -}; +import { ShapeProps } from '../shape.model'; +import { + CHECKBOX_DEFAULT_HEIGHT, + checkBoxShapeRestrictions, +} from './checkbox-shape.restrictions'; +import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; const shapeType: ShapeType = 'checkbox'; -export const getCheckboxShapeSizeRestrictions = (): ShapeSizeRestrictions => - checkBoxShapeRestrictions; - const marginTick = 5; const boxTickWidth = CHECKBOX_DEFAULT_HEIGHT; const tickWidth = boxTickWidth; @@ -30,12 +20,12 @@ const marginText = 3; export const CheckBoxShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/chip-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/chip-shape.restrictions.ts new file mode 100644 index 00000000..8c7a69ee --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/chip-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const ChipShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 28, + maxWidth: -1, + maxHeight: 28, + defaultWidth: 56, + defaultHeight: 28, +}; + +export const getChipShapeSizeRestrictions = (): ShapeSizeRestrictions => + ChipShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-components/chip-shape.tsx b/apps/web/src/common/components/mock-components/front-components/chip-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-components/chip-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/chip-shape.tsx index 5944ef68..f91c91b0 100644 --- a/src/common/components/mock-components/front-components/chip-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/chip-shape.tsx @@ -1,35 +1,24 @@ import { forwardRef } from 'react'; import { Group, Rect, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { CHIP_SHAPE } from '../front-components/shape.const'; import { ShapeProps } from '../shape.model'; import { useGroupShapeProps } from '../mock-components.utils'; - -const ChipShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 28, - maxWidth: -1, - maxHeight: 28, - defaultWidth: 56, - defaultHeight: 28, -}; - -export const getChipShapeSizeRestrictions = (): ShapeSizeRestrictions => - ChipShapeSizeRestrictions; +import { ChipShapeSizeRestrictions } from './chip-shape.restrictions'; const shapeType: ShapeType = 'chip'; export const ChipShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, + _id, text, - onSelected, + _onSelected, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-components/combobox-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/combobox-shape.restrictions.ts new file mode 100644 index 00000000..6794d345 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/combobox-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from './shape.const'; + +export const comboBoxShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 85, + minHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, + maxWidth: -1, + maxHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, + defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, + defaultHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, +}; + +export const getComboBoxShapeSizeRestrictions = (): ShapeSizeRestrictions => + comboBoxShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/combobox-shape.tsx b/apps/web/src/common/components/mock-components/front-components/combobox-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-components/combobox-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/combobox-shape.tsx index fe55c4b6..472867c5 100644 --- a/src/common/components/mock-components/front-components/combobox-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/combobox-shape.tsx @@ -1,34 +1,23 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Text, Rect, Line } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const comboBoxShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 85, - minHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, - maxWidth: -1, - maxHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, - defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, - defaultHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, -}; +import { comboBoxShapeRestrictions } from './combobox-shape.restrictions'; const shapeType: ShapeType = 'combobox'; -export const getComboBoxShapeSizeRestrictions = (): ShapeSizeRestrictions => - comboBoxShapeRestrictions; - export const ComboBoxShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/datepickerinput-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/datepickerinput-shape.restrictions.ts new file mode 100644 index 00000000..ceaa7b12 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/datepickerinput-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from './shape.const'; + +export const datepickerInputShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 38, + minHeight: 38, + maxWidth: -1, + maxHeight: 38, + defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, + defaultHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, +}; + +export const getDatepickerInputShapeSizeRestrictions = + (): ShapeSizeRestrictions => datepickerInputShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/datepickerinput-shape.tsx b/apps/web/src/common/components/mock-components/front-components/datepickerinput-shape.tsx similarity index 86% rename from src/common/components/mock-components/front-components/datepickerinput-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/datepickerinput-shape.tsx index 7ca6e461..d6104f21 100644 --- a/src/common/components/mock-components/front-components/datepickerinput-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/datepickerinput-shape.tsx @@ -1,7 +1,7 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Text, Image } from 'react-konva'; import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; @@ -9,30 +9,19 @@ import { useGroupShapeProps } from '../mock-components.utils'; import calendarIconSrc from '/icons/calendar.svg'; import disabledCalendarIconSrc from '/icons/calendar-disabled.svg'; - -const datepickerInputShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 38, - minHeight: 38, - maxWidth: -1, - maxHeight: 38, - defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, - defaultHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, -}; +import { datepickerInputShapeRestrictions } from './datepickerinput-shape.restrictions'; const shapeType: ShapeType = 'datepickerinput'; -export const getDatepickerInputShapeSizeRestrictions = - (): ShapeSizeRestrictions => datepickerInputShapeRestrictions; - export const DatepickerInputShape = forwardRef( (props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/horizontalscrollbar-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/horizontalscrollbar-shape.restrictions.ts new file mode 100644 index 00000000..4d1c01fe --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/horizontalscrollbar-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const HorizontalScrollBarShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 10, + maxWidth: -1, + maxHeight: 20, + defaultWidth: 250, + defaultHeight: 20, +}; + +export const getHorizontalScrollBarShapeSizeRestrictions = + (): ShapeSizeRestrictions => HorizontalScrollBarShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-components/horizontalscrollbar-shape.tsx b/apps/web/src/common/components/mock-components/front-components/horizontalscrollbar-shape.tsx similarity index 81% rename from src/common/components/mock-components/front-components/horizontalscrollbar-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/horizontalscrollbar-shape.tsx index 19561126..2c55bfe7 100644 --- a/src/common/components/mock-components/front-components/horizontalscrollbar-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/horizontalscrollbar-shape.tsx @@ -1,27 +1,16 @@ import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const HorizontalScrollBarShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 10, - maxWidth: -1, - maxHeight: 20, - defaultWidth: 250, - defaultHeight: 20, -}; - -export const getHorizontalScrollBarShapeSizeRestrictions = - (): ShapeSizeRestrictions => HorizontalScrollBarShapeSizeRestrictions; +import { HorizontalScrollBarShapeSizeRestrictions } from './horizontalscrollbar-shape.restrictions'; const shapeType: ShapeType = 'horizontalScrollBar'; export const HorizontalScrollBarShape = forwardRef( (props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( HorizontalScrollBarShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.business.ts b/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.business.ts new file mode 100644 index 00000000..b7610723 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.business.ts @@ -0,0 +1,18 @@ +import { IconSize } from '#core/model'; + +export const returnIconSize = (iconSize: IconSize): number[] => { + switch (iconSize) { + case 'XS': + return [25, 25]; + case 'S': + return [50, 50]; + case 'M': + return [100, 100]; + case 'L': + return [125, 125]; + case 'XL': + return [150, 150]; + default: + return [50, 50]; + } +}; diff --git a/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.restrictions.ts new file mode 100644 index 00000000..7f90ea14 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const iconShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 25, + minHeight: 25, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 150, +}; + +export const getIconShapeSizeRestrictions = (): ShapeSizeRestrictions => + iconShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/icon/icon-shape.tsx b/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.tsx similarity index 67% rename from src/common/components/mock-components/front-components/icon/icon-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/icon/icon-shape.tsx index 86af4394..72d172b3 100644 --- a/src/common/components/mock-components/front-components/icon/icon-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/icon/icon-shape.tsx @@ -1,37 +1,26 @@ -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { BASE_ICONS_URL, ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { forwardRef, useRef, useState, useEffect } from 'react'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { loadSvgWithFill } from '#common/utils/svg.utils'; +import { BASE_ICONS_URL, ShapeType } from '#core/model'; +import { useCanvasContext } from '#core/providers'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; +import { IconModal } from '#pods/properties/components/icon-selector/modal'; +import { forwardRef, useEffect, useRef, useState } from 'react'; import { Group, Image } from 'react-konva'; -import { ShapeProps } from '../../shape.model'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; -import { IconModal } from '@/pods/properties/components/icon-selector/modal'; -import { useCanvasContext } from '@/core/providers'; import { useGroupShapeProps } from '../../mock-components.utils'; +import { ShapeProps } from '../../shape.model'; import { returnIconSize } from './icon-shape.business'; -import { loadSvgWithFill } from '@/common/utils/svg.utils'; - -const iconShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 25, - minHeight: 25, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 150, - defaultHeight: 150, -}; - -export const getIconShapeSizeRestrictions = (): ShapeSizeRestrictions => - iconShapeRestrictions; +import { iconShapeRestrictions } from './icon-shape.restrictions'; const shapeType: ShapeType = 'icon'; export const SvgIcon = forwardRef((props, ref) => { const { - x, - y, - width, - height, - id, - onSelected, + _x, + _y, + _width, + _height, + _id, + _onSelected, iconInfo, iconSize, stroke, diff --git a/src/common/components/mock-components/front-components/icon/index.ts b/apps/web/src/common/components/mock-components/front-components/icon/index.ts similarity index 100% rename from src/common/components/mock-components/front-components/icon/index.ts rename to apps/web/src/common/components/mock-components/front-components/icon/index.ts diff --git a/src/common/components/mock-components/front-components/index.ts b/apps/web/src/common/components/mock-components/front-components/index.ts similarity index 100% rename from src/common/components/mock-components/front-components/index.ts rename to apps/web/src/common/components/mock-components/front-components/index.ts diff --git a/apps/web/src/common/components/mock-components/front-components/input-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/input-shape.restrictions.ts new file mode 100644 index 00000000..5fb60b4f --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/input-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { INPUT_SHAPE } from './shape.const'; + +export const inputShapeRestrictions: ShapeSizeRestrictions = { + minWidth: INPUT_SHAPE.DEFAULT_MIN_WIDTH, + minHeight: 38, + maxWidth: -1, + maxHeight: 38, + defaultWidth: INPUT_SHAPE.DEFAULT_TEXT_WIDTH, + defaultHeight: INPUT_SHAPE.DEFAULT_TEXT_HEIGHT, +}; + +export const getInputShapeSizeRestrictions = (): ShapeSizeRestrictions => + inputShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/input-shape.tsx b/apps/web/src/common/components/mock-components/front-components/input-shape.tsx similarity index 80% rename from src/common/components/mock-components/front-components/input-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/input-shape.tsx index 8b098f75..9c8b859e 100644 --- a/src/common/components/mock-components/front-components/input-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/input-shape.tsx @@ -1,34 +1,23 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Text } from 'react-konva'; import { DISABLED_COLOR_VALUES, INPUT_SHAPE } from './shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const inputShapeRestrictions: ShapeSizeRestrictions = { - minWidth: INPUT_SHAPE.DEFAULT_MIN_WIDTH, - minHeight: 38, - maxWidth: -1, - maxHeight: 38, - defaultWidth: INPUT_SHAPE.DEFAULT_TEXT_WIDTH, - defaultHeight: INPUT_SHAPE.DEFAULT_TEXT_HEIGHT, -}; - -export const getInputShapeSizeRestrictions = (): ShapeSizeRestrictions => - inputShapeRestrictions; +import { inputShapeRestrictions } from './input-shape.restrictions'; const shapeType: ShapeType = 'input'; export const InputShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/label-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/label-shape.restrictions.ts new file mode 100644 index 00000000..f257fdec --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/label-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const labelSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 60, + defaultHeight: 25, +}; + +export const getLabelSizeRestrictions = (): ShapeSizeRestrictions => + labelSizeRestrictions; diff --git a/src/common/components/mock-components/front-components/label-shape.tsx b/apps/web/src/common/components/mock-components/front-components/label-shape.tsx similarity index 74% rename from src/common/components/mock-components/front-components/label-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/label-shape.tsx index 6606e674..e8563d78 100644 --- a/src/common/components/mock-components/front-components/label-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/label-shape.tsx @@ -1,34 +1,23 @@ import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const labelSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 60, - defaultHeight: 25, -}; - -export const getLabelSizeRestrictions = (): ShapeSizeRestrictions => - labelSizeRestrictions; +import { labelSizeRestrictions } from './label-shape.restrictions'; const shapeType: ShapeType = 'label'; export const LabelShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-components/listbox/index.ts b/apps/web/src/common/components/mock-components/front-components/listbox/index.ts similarity index 100% rename from src/common/components/mock-components/front-components/listbox/index.ts rename to apps/web/src/common/components/mock-components/front-components/listbox/index.ts diff --git a/src/common/components/mock-components/front-components/listbox/listbox-shape.business.ts b/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.business.ts similarity index 88% rename from src/common/components/mock-components/front-components/listbox/listbox-shape.business.ts rename to apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.business.ts index bfccb964..9b3f3dcd 100644 --- a/src/common/components/mock-components/front-components/listbox/listbox-shape.business.ts +++ b/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.business.ts @@ -1,5 +1,5 @@ -import { ShapeSizeRestrictions } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeSizeRestrictions } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; interface ListBoxItemsInfo { items: string[]; diff --git a/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.restrictions.ts new file mode 100644 index 00000000..2459bfba --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const listboxShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 75, + minHeight: 200, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 120, + defaultHeight: 220, +}; + +export const getListboxShapeSizeRestrictions = (): ShapeSizeRestrictions => + listboxShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-components/listbox/listbox-shape.tsx b/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.tsx similarity index 91% rename from src/common/components/mock-components/front-components/listbox/listbox-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.tsx index 254b8226..4b45a85f 100644 --- a/src/common/components/mock-components/front-components/listbox/listbox-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/listbox/listbox-shape.tsx @@ -1,4 +1,4 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useEffect, useRef, useState } from 'react'; import { Group, Rect, Text } from 'react-konva'; import { ShapeProps } from '../../shape.model'; @@ -9,18 +9,7 @@ import { import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from '../shape.const'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const listboxShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 75, - minHeight: 200, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 120, - defaultHeight: 220, -}; - -export const getListboxShapeSizeRestrictions = (): ShapeSizeRestrictions => - listboxShapeSizeRestrictions; +import { listboxShapeSizeRestrictions } from './listbox-shape.restrictions'; interface ListBoxShapeProps extends ShapeProps { text: string; @@ -33,12 +22,12 @@ const shapeType: ShapeType = 'listbox'; export const ListBoxShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/progressbar-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/progressbar-shape.restrictions.ts new file mode 100644 index 00000000..9376afb5 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/progressbar-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const progressBarShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 20, + maxWidth: -1, + maxHeight: 30, + defaultWidth: 300, + defaultHeight: 20, +}; + +export const getProgressBarShapeSizeRestrictions = (): ShapeSizeRestrictions => + progressBarShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/progressbar-shape.tsx b/apps/web/src/common/components/mock-components/front-components/progressbar-shape.tsx similarity index 75% rename from src/common/components/mock-components/front-components/progressbar-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/progressbar-shape.tsx index 5aaa6794..53d435f9 100644 --- a/src/common/components/mock-components/front-components/progressbar-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/progressbar-shape.tsx @@ -1,28 +1,17 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useMemo } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const progressBarShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 20, - maxWidth: -1, - maxHeight: 30, - defaultWidth: 300, - defaultHeight: 20, -}; - -export const getProgressBarShapeSizeRestrictions = (): ShapeSizeRestrictions => - progressBarShapeRestrictions; +import { progressBarShapeRestrictions } from './progressbar-shape.restrictions'; const shapeType: ShapeType = 'progressbar'; export const ProgressBarShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( progressBarShapeRestrictions, diff --git a/apps/web/src/common/components/mock-components/front-components/radiobutton-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/radiobutton-shape.restrictions.ts new file mode 100644 index 00000000..7a339e7b --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/radiobutton-shape.restrictions.ts @@ -0,0 +1,16 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from './shape.const'; + +const RADIO_BUTTON_DEFAULT_HEIGHT = 18; + +export const radioButtonShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 50, + minHeight: RADIO_BUTTON_DEFAULT_HEIGHT, + maxWidth: -1, + maxHeight: RADIO_BUTTON_DEFAULT_HEIGHT, + defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, + defaultHeight: RADIO_BUTTON_DEFAULT_HEIGHT, +}; + +export const getRadioButtonShapeSizeRestrictions = (): ShapeSizeRestrictions => + radioButtonShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/radiobutton-shape.tsx b/apps/web/src/common/components/mock-components/front-components/radiobutton-shape.tsx similarity index 75% rename from src/common/components/mock-components/front-components/radiobutton-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/radiobutton-shape.tsx index 9c2ff8ad..21fc37bd 100644 --- a/src/common/components/mock-components/front-components/radiobutton-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/radiobutton-shape.tsx @@ -1,36 +1,23 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; -import { Group, Circle, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { Circle, Group, Text } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; -import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const RADIO_BUTTON_DEFAULT_HEIGHT = 18; - -const radioButtonShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 50, - minHeight: RADIO_BUTTON_DEFAULT_HEIGHT, - maxWidth: -1, - maxHeight: RADIO_BUTTON_DEFAULT_HEIGHT, - defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, - defaultHeight: RADIO_BUTTON_DEFAULT_HEIGHT, -}; - -export const getRadioButtonShapeSizeRestrictions = (): ShapeSizeRestrictions => - radioButtonShapeRestrictions; +import { ShapeProps } from '../shape.model'; +import { radioButtonShapeRestrictions } from './radiobutton-shape.restrictions'; +import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; const shapeType: ShapeType = 'radiobutton'; export const RadioButtonShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-components/shape.const.ts b/apps/web/src/common/components/mock-components/front-components/shape.const.ts similarity index 100% rename from src/common/components/mock-components/front-components/shape.const.ts rename to apps/web/src/common/components/mock-components/front-components/shape.const.ts diff --git a/apps/web/src/common/components/mock-components/front-components/slider-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/slider-shape.restrictions.ts new file mode 100644 index 00000000..ec163bc8 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/slider-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const sliderShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 20, + maxWidth: -1, + maxHeight: 30, + defaultWidth: 300, + defaultHeight: 20, +}; + +export const getSliderShapeSizeRestrictions = (): ShapeSizeRestrictions => + sliderShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/slider-shape.tsx b/apps/web/src/common/components/mock-components/front-components/slider-shape.tsx similarity index 75% rename from src/common/components/mock-components/front-components/slider-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/slider-shape.tsx index 9488212e..caaf73f2 100644 --- a/src/common/components/mock-components/front-components/slider-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/slider-shape.tsx @@ -1,28 +1,17 @@ import { forwardRef, useMemo } from 'react'; import { Group, Line, Circle } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const sliderShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 20, - maxWidth: -1, - maxHeight: 30, - defaultWidth: 300, - defaultHeight: 20, -}; - -export const getSliderShapeSizeRestrictions = (): ShapeSizeRestrictions => - sliderShapeRestrictions; +import { sliderShapeRestrictions } from './slider-shape.restrictions'; const shapeType: ShapeType = 'slider'; export const SliderShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( sliderShapeRestrictions, diff --git a/apps/web/src/common/components/mock-components/front-components/textarea-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/textarea-shape.restrictions.ts new file mode 100644 index 00000000..222c5385 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/textarea-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from './shape.const'; + +export const textAreaShapeRestrictions: ShapeSizeRestrictions = { + minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, + minHeight: 44, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 200, + defaultHeight: 55, +}; + +export const getTextAreaSizeRestrictions = (): ShapeSizeRestrictions => + textAreaShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/textarea-shape.tsx b/apps/web/src/common/components/mock-components/front-components/textarea-shape.tsx similarity index 78% rename from src/common/components/mock-components/front-components/textarea-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/textarea-shape.tsx index 81b508b6..2e5e3e1b 100644 --- a/src/common/components/mock-components/front-components/textarea-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/textarea-shape.tsx @@ -1,34 +1,23 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Text } from 'react-konva'; import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from './shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const textAreaShapeRestrictions: ShapeSizeRestrictions = { - minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, - minHeight: 44, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 200, - defaultHeight: 55, -}; - -export const getTextAreaSizeRestrictions = (): ShapeSizeRestrictions => - textAreaShapeRestrictions; +import { textAreaShapeRestrictions } from './textarea-shape.restrictions'; const shapeType: ShapeType = 'textarea'; export const TextAreaShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-components/timepickerinput/index.ts b/apps/web/src/common/components/mock-components/front-components/timepickerinput/index.ts similarity index 100% rename from src/common/components/mock-components/front-components/timepickerinput/index.ts rename to apps/web/src/common/components/mock-components/front-components/timepickerinput/index.ts diff --git a/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.business.ts b/apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.business.ts similarity index 100% rename from src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.business.ts rename to apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.business.ts diff --git a/apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.restrictions.ts new file mode 100644 index 00000000..bd035111 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const timepickerInputShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 38, + maxWidth: -1, + maxHeight: 38, + defaultWidth: 220, + defaultHeight: 38, +}; + +export const getTimepickerInputShapeSizeRestrictions = + (): ShapeSizeRestrictions => timepickerInputShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.tsx b/apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.tsx similarity index 88% rename from src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.tsx index 9d95848b..50d31b86 100644 --- a/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.tsx @@ -1,7 +1,7 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Text, Image } from 'react-konva'; import { BASIC_SHAPE, DISABLED_COLOR_VALUES } from '../shape.const'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; @@ -10,31 +10,20 @@ import { splitCSVContent, setTime } from './timepickerinput-shape.business'; import clockIconSrc from '/icons/clock.svg'; import disabledClockIconSrc from '/icons/clock-disabled.svg'; - -const timepickerInputShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 38, - maxWidth: -1, - maxHeight: 38, - defaultWidth: 220, - defaultHeight: 38, -}; +import { timepickerInputShapeRestrictions } from './timepickerinput-shape.restrictions'; const shapeType: ShapeType = 'timepickerinput'; -export const getTimepickerInputShapeSizeRestrictions = - (): ShapeSizeRestrictions => timepickerInputShapeRestrictions; - export const TimepickerInputShape = forwardRef( (props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, + _id, text, - onSelected, + _onSelected, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-components/toggleswitch-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/toggleswitch-shape.restrictions.ts new file mode 100644 index 00000000..590884c4 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/toggleswitch-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const toggleSwitchShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 50, + minHeight: 25, + maxWidth: 100, + maxHeight: 35, + defaultWidth: 60, + defaultHeight: 25, +}; + +export const getToggleSwitchShapeSizeRestrictions = (): ShapeSizeRestrictions => + toggleSwitchShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/toggleswitch-shape.tsx b/apps/web/src/common/components/mock-components/front-components/toggleswitch-shape.tsx similarity index 72% rename from src/common/components/mock-components/front-components/toggleswitch-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/toggleswitch-shape.tsx index 2df1bd50..3aad95a2 100644 --- a/src/common/components/mock-components/front-components/toggleswitch-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/toggleswitch-shape.tsx @@ -1,28 +1,17 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Circle, Group, Rect } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from './shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const toggleSwitchShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 50, - minHeight: 25, - maxWidth: 100, - maxHeight: 35, - defaultWidth: 60, - defaultHeight: 25, -}; +import { toggleSwitchShapeRestrictions } from './toggleswitch-shape.restrictions'; const shapeType: ShapeType = 'toggleswitch'; -export const getToggleSwitchShapeSizeRestrictions = (): ShapeSizeRestrictions => - toggleSwitchShapeRestrictions; - export const ToggleSwitch = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( toggleSwitchShapeRestrictions, diff --git a/apps/web/src/common/components/mock-components/front-components/tooltip-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/tooltip-shape.restrictions.ts new file mode 100644 index 00000000..926716c6 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/tooltip-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from './shape.const'; + +export const tooltipShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 80, + minHeight: 70, + maxWidth: -1, + maxHeight: 500, + defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, + defaultHeight: 100, +}; + +export const getTooltipShapeSizeRestrictions = (): ShapeSizeRestrictions => + tooltipShapeRestrictions; diff --git a/src/common/components/mock-components/front-components/tooltip-shape.tsx b/apps/web/src/common/components/mock-components/front-components/tooltip-shape.tsx similarity index 83% rename from src/common/components/mock-components/front-components/tooltip-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/tooltip-shape.tsx index db387b8a..44ec0c6e 100644 --- a/src/common/components/mock-components/front-components/tooltip-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/tooltip-shape.tsx @@ -1,34 +1,23 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Text, Group, Rect, Line } from 'react-konva'; import { BASIC_SHAPE } from './shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const tooltipShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 80, - minHeight: 70, - maxWidth: -1, - maxHeight: 500, - defaultWidth: BASIC_SHAPE.DEFAULT_TEXT_WIDTH, - defaultHeight: 100, -}; +import { tooltipShapeRestrictions } from './tooltip-shape.restrictions'; const shapeType: ShapeType = 'tooltip'; -export const getTooltipShapeSizeRestrictions = (): ShapeSizeRestrictions => - tooltipShapeRestrictions; - export const TooltipShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-components/verticalscrollbar-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-components/verticalscrollbar-shape.restrictions.ts new file mode 100644 index 00000000..554dfd5b --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-components/verticalscrollbar-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const VerticalScrollBarShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 100, + maxWidth: 20, + maxHeight: -1, + defaultWidth: 20, + defaultHeight: 250, +}; + +export const getVerticalScrollBarShapeSizeRestrictions = + (): ShapeSizeRestrictions => VerticalScrollBarShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-components/verticalscrollbar-shape.tsx b/apps/web/src/common/components/mock-components/front-components/verticalscrollbar-shape.tsx similarity index 81% rename from src/common/components/mock-components/front-components/verticalscrollbar-shape.tsx rename to apps/web/src/common/components/mock-components/front-components/verticalscrollbar-shape.tsx index 4692162f..7caf1a19 100644 --- a/src/common/components/mock-components/front-components/verticalscrollbar-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-components/verticalscrollbar-shape.tsx @@ -1,27 +1,16 @@ import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const VerticalScrollBarShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 100, - maxWidth: 20, - maxHeight: -1, - defaultWidth: 20, - defaultHeight: 250, -}; +import { VerticalScrollBarShapeSizeRestrictions } from './verticalscrollbar-shape.restrictions'; const shapeType: ShapeType = 'verticalScrollBar'; -export const getVerticalScrollBarShapeSizeRestrictions = - (): ShapeSizeRestrictions => VerticalScrollBarShapeSizeRestrictions; - export const VerticalScrollBarShape = forwardRef( (props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( VerticalScrollBarShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-containers/browserwindow-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-containers/browserwindow-shape.restrictions.ts new file mode 100644 index 00000000..d96f5e8a --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-containers/browserwindow-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const browserWindowShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 150, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 800, + defaultHeight: 600, +}; + +export const getBrowserWindowShapeSizeRestrictions = + (): ShapeSizeRestrictions => browserWindowShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-containers/browserwindow-shape.tsx b/apps/web/src/common/components/mock-components/front-containers/browserwindow-shape.tsx similarity index 83% rename from src/common/components/mock-components/front-containers/browserwindow-shape.tsx rename to apps/web/src/common/components/mock-components/front-containers/browserwindow-shape.tsx index a40eca77..f8b087aa 100644 --- a/src/common/components/mock-components/front-containers/browserwindow-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-containers/browserwindow-shape.tsx @@ -1,27 +1,17 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Rect, Circle, Text } from 'react-konva'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const browserWindowShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 150, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 800, - defaultHeight: 600, -}; - -export const getBrowserWindowShapeSizeRestrictions = - (): ShapeSizeRestrictions => browserWindowShapeSizeRestrictions; +import { browserWindowShapeSizeRestrictions } from './browserwindow-shape.restrictions'; const shapeType: ShapeType = 'browser'; export const BrowserWindowShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, text, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, text, ...shapeProps } = + props; const restrictedSize = fitSizeToShapeSizeRestrictions( browserWindowShapeSizeRestrictions, width, diff --git a/src/common/components/mock-components/front-containers/index.ts b/apps/web/src/common/components/mock-components/front-containers/index.ts similarity index 100% rename from src/common/components/mock-components/front-containers/index.ts rename to apps/web/src/common/components/mock-components/front-containers/index.ts diff --git a/apps/web/src/common/components/mock-components/front-containers/mobilephone-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-containers/mobilephone-shape.restrictions.ts new file mode 100644 index 00000000..81cafbd6 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-containers/mobilephone-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const mobilePhoneShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 150, + maxWidth: 1000, + maxHeight: 1000, + defaultWidth: 300, + defaultHeight: 560, +}; + +export const getMobilePhoneShapeSizeRestrictions = (): ShapeSizeRestrictions => + mobilePhoneShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-containers/mobilephone-shape.tsx b/apps/web/src/common/components/mock-components/front-containers/mobilephone-shape.tsx similarity index 89% rename from src/common/components/mock-components/front-containers/mobilephone-shape.tsx rename to apps/web/src/common/components/mock-components/front-containers/mobilephone-shape.tsx index 6a92abbf..84103ea8 100644 --- a/src/common/components/mock-components/front-containers/mobilephone-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-containers/mobilephone-shape.tsx @@ -1,28 +1,17 @@ import { forwardRef, useEffect, useState } from 'react'; import { Group, Rect, Circle, Image, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; -import { loadSvgWithFill } from '@/common/utils/svg.utils'; +import { loadSvgWithFill } from '#common/utils/svg.utils'; import { BASIC_SHAPE } from '../front-components/shape.const'; - -const mobilePhoneShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 150, - maxWidth: 1000, - maxHeight: 1000, - defaultWidth: 300, - defaultHeight: 560, -}; - -export const getMobilePhoneShapeSizeRestrictions = (): ShapeSizeRestrictions => - mobilePhoneShapeSizeRestrictions; +import { mobilePhoneShapeSizeRestrictions } from './mobilephone-shape.restrictions'; const shapeType: ShapeType = 'mobilePhone'; export const MobilePhoneShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( mobilePhoneShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-containers/modal-dialog-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-containers/modal-dialog-shape.restrictions.ts new file mode 100644 index 00000000..3a84077b --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-containers/modal-dialog-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const modalDialogShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 250, + minHeight: 150, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 500, + defaultHeight: 300, +}; + +export const getModalDialogShapeSizeRestrictions = (): ShapeSizeRestrictions => + modalDialogShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-containers/modal-dialog-shape.tsx b/apps/web/src/common/components/mock-components/front-containers/modal-dialog-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-containers/modal-dialog-shape.tsx rename to apps/web/src/common/components/mock-components/front-containers/modal-dialog-shape.tsx index 223c7357..054d2204 100644 --- a/src/common/components/mock-components/front-containers/modal-dialog-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-containers/modal-dialog-shape.tsx @@ -1,28 +1,18 @@ import { forwardRef } from 'react'; import { Group, Rect, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; import { BASIC_SHAPE } from '../front-components/shape.const'; - -const modalDialogShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 250, - minHeight: 150, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 500, - defaultHeight: 300, -}; - -export const getModalDialogShapeSizeRestrictions = (): ShapeSizeRestrictions => - modalDialogShapeSizeRestrictions; +import { modalDialogShapeSizeRestrictions } from './modal-dialog-shape.restrictions'; const shapeType: ShapeType = 'modalDialog'; export const ModalDialogContainer = forwardRef( (props, ref) => { - const { x, y, width, height, id, onSelected, text, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, text, ...shapeProps } = + props; const restrictedSize = fitSizeToShapeSizeRestrictions( modalDialogShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-containers/tablet-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-containers/tablet-shape.restrictions.ts new file mode 100644 index 00000000..5edf403b --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-containers/tablet-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const tabletShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 150, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 650, + defaultHeight: 500, +}; + +export const getTabletShapeSizeRestrictions = (): ShapeSizeRestrictions => + tabletShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-containers/tablet-shape.tsx b/apps/web/src/common/components/mock-components/front-containers/tablet-shape.tsx similarity index 78% rename from src/common/components/mock-components/front-containers/tablet-shape.tsx rename to apps/web/src/common/components/mock-components/front-containers/tablet-shape.tsx index 088c4588..ec6c3258 100644 --- a/src/common/components/mock-components/front-containers/tablet-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-containers/tablet-shape.tsx @@ -1,26 +1,15 @@ import { forwardRef } from 'react'; import { Group, Rect, Circle } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const tabletShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 150, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 650, - defaultHeight: 500, -}; - -export const getTabletShapeSizeRestrictions = (): ShapeSizeRestrictions => - tabletShapeSizeRestrictions; +import { tabletShapeSizeRestrictions } from './tablet-shape.restrictions'; const shapeType: ShapeType = 'tablet'; export const TabletShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( tabletShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.restrictions.ts new file mode 100644 index 00000000..1d9858af --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const circleLowShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 100, +}; + +export const getCircleLowShapeSizeRestrictions = (): ShapeSizeRestrictions => + circleLowShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.tsx similarity index 77% rename from src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.tsx index 17f8be39..3e547bf5 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/circle-low-shape.tsx @@ -1,31 +1,20 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; import { fitSizeToShapeSizeRestrictions, calculateShapeAdjustedDimensionsBasedOnStrokeHeight, -} from '@/common/utils/shapes'; +} from '#common/utils/shapes'; import { Circle, Group } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const circleLowShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 100, -}; - -export const getCircleLowShapeSizeRestrictions = (): ShapeSizeRestrictions => - circleLowShapeRestrictions; +import { circleLowShapeRestrictions } from './circle-low-shape.restrictions'; const shapeType: ShapeType = 'circleLow'; export const CircleLowShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.restrictions.ts new file mode 100644 index 00000000..eaeebfc6 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const EllipseLowShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 100, + defaultHeight: 50, +}; + +export const getEllipseLowShapeRestrictions = (): ShapeSizeRestrictions => + EllipseLowShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.tsx similarity index 75% rename from src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.tsx index 79d03a40..c4ecb1d0 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.tsx @@ -1,36 +1,25 @@ import { forwardRef } from 'react'; import { Ellipse, Group } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { ShapeProps } from '../shape.model'; import { useGroupShapeProps } from '../mock-components.utils'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; -import { calculateShapeAdjustedDimensionsBasedOnStrokeHeight } from '@/common/utils/shapes'; - -const EllipseLowShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 100, - defaultHeight: 50, -}; - -export const getEllipseLowShapeRestrictions = (): ShapeSizeRestrictions => - EllipseLowShapeRestrictions; +import { calculateShapeAdjustedDimensionsBasedOnStrokeHeight } from '#common/utils/shapes'; +import { EllipseLowShapeRestrictions } from './ellipse-low-shape.restrictions'; const shapeType: ShapeType = 'ellipseLow'; export const EllipseLowShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.restrictions.ts new file mode 100644 index 00000000..b657b3e4 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const horizontalLineLowShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 30, + minHeight: 10, + maxWidth: -1, + maxHeight: 10, + defaultWidth: 200, + defaultHeight: 10, +}; + +export const getHorizontalLineLowShapeRestrictions = + (): ShapeSizeRestrictions => horizontalLineLowShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.tsx similarity index 74% rename from src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.tsx index 105d107a..09912696 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.tsx @@ -1,36 +1,25 @@ import { forwardRef } from 'react'; import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { ShapeProps } from '../shape.model'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const horizontalLineLowShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 30, - minHeight: 10, - maxWidth: -1, - maxHeight: 10, - defaultWidth: 200, - defaultHeight: 10, -}; - -export const getHorizontalLineLowShapeRestrictions = - (): ShapeSizeRestrictions => horizontalLineLowShapeRestrictions; +import { horizontalLineLowShapeRestrictions } from './horizontal-line-low-shape.restrictions'; const shapeType: ShapeType = 'horizontalLine'; export const HorizontalLineLowShape = forwardRef( (props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.restrictions.ts new file mode 100644 index 00000000..ab0f6b2c --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const imagePlaceholderShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getImagePlaceholderShapeSizeRestrictions = + (): ShapeSizeRestrictions => imagePlaceholderShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.tsx similarity index 70% rename from src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.tsx index 335bc3f4..62e756d6 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.tsx @@ -1,35 +1,24 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Group, Line, Rect } from 'react-konva'; import { useGroupShapeProps } from '../mock-components.utils'; - -const imagePlaceholderShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getImagePlaceholderShapeSizeRestrictions = - (): ShapeSizeRestrictions => imagePlaceholderShapeRestrictions; +import { imagePlaceholderShapeRestrictions } from './image-placeholder-shape.restrictions'; const shapeType: ShapeType = 'imagePlaceholder'; export const ImagePlaceholderShape = forwardRef( (props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, - otherProps, + _id, + _onSelected, + _text, + _otherProps, ...shapeProps } = props; diff --git a/src/common/components/mock-components/front-low-wireframes-components/index.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/index.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/index.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/index.ts diff --git a/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/index.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/index.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/index.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/index.ts diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.restrictions.ts new file mode 100644 index 00000000..7d9599a9 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.restrictions.ts @@ -0,0 +1,15 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from '../../front-components/shape.const'; +import { MIN_LINE_HEIGHT } from './paragraph-scribbled.const'; + +export const paragraphScribbledShapeRestrictions: ShapeSizeRestrictions = { + minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, + minHeight: MIN_LINE_HEIGHT, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 300, + defaultHeight: 150, +}; + +export const getParagraphScribbledShapeRestrictions = + (): ShapeSizeRestrictions => paragraphScribbledShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.tsx similarity index 74% rename from src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.tsx index 5f800c09..c1c062d1 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.tsx @@ -1,26 +1,14 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes'; +import { ShapeType } from '#core/model'; import { forwardRef, useMemo } from 'react'; import { Group, Path, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { ShapeProps } from '../../shape.model'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useGroupShapeProps } from '../../mock-components.utils'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes'; -import { MIN_LINE_HEIGHT } from './paragraph-scribbled.const'; +import { ShapeProps } from '../../shape.model'; +import { paragraphScribbledShapeRestrictions } from './paragraph-scribbled-shape.restrictions'; import { calculateParagraphPaths } from './paragraph-scribbled.business'; -const paragraphScribbledShapeRestrictions: ShapeSizeRestrictions = { - minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, - minHeight: MIN_LINE_HEIGHT, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 300, - defaultHeight: 150, -}; - -export const getParagraphScribbledShapeRestrictions = - (): ShapeSizeRestrictions => paragraphScribbledShapeRestrictions; - const shapeType: ShapeType = 'paragraphScribbled'; export const ParagraphScribbled = forwardRef((props, ref) => { diff --git a/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.business.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.business.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.business.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.business.ts diff --git a/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.const.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.const.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.const.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled.const.ts diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.restrictions.ts new file mode 100644 index 00000000..64ec3c40 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const rectangleLowShapeRestriction: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 160, + defaultHeight: 160, +}; + +export const getRectangleLowShapeRestrictions = (): ShapeSizeRestrictions => + rectangleLowShapeRestriction; diff --git a/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.tsx index 94e84aa9..22b63f62 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.tsx @@ -1,38 +1,27 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { forwardRef } from 'react'; -import { ShapeProps } from '../shape.model'; import { calculateShapeAdjustedDimensionsBasedOnStrokeHeight, fitSizeToShapeSizeRestrictions, -} from '@/common/utils/shapes'; +} from '#common/utils/shapes'; +import { ShapeType } from '#core/model'; +import { forwardRef } from 'react'; import { Group, Rect } from 'react-konva'; -import { useGroupShapeProps } from '../mock-components.utils'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; - -const rectangleLowShapeRestriction: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 160, - defaultHeight: 160, -}; - -export const getRectangleLowShapeRestrictions = (): ShapeSizeRestrictions => - rectangleLowShapeRestriction; +import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; +import { rectangleLowShapeRestriction } from './rectangle-low-shape.restrictions'; const shapeType: ShapeType = 'rectangleLow'; export const RectangleLowShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.restrictions.ts new file mode 100644 index 00000000..4427e2f3 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from '../../front-components/shape.const'; + +export const textScribbledShapeRestrictions: ShapeSizeRestrictions = { + minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, + minHeight: 45, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 300, + defaultHeight: 50, +}; + +export const getTextScribbledShapeRestrictions = (): ShapeSizeRestrictions => + textScribbledShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.tsx similarity index 77% rename from src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.tsx index 14064532..9f3236b3 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.tsx @@ -1,24 +1,13 @@ import { forwardRef, useMemo } from 'react'; import { Group, Path, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { ShapeProps } from '../../shape.model'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useGroupShapeProps } from '../../mock-components.utils'; import { calculatePath } from './text-scribbled.business'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes'; - -const textScribbledShapeRestrictions: ShapeSizeRestrictions = { - minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, - minHeight: 45, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 300, - defaultHeight: 50, -}; - -export const getTextScribbledShapeRestrictions = (): ShapeSizeRestrictions => - textScribbledShapeRestrictions; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes'; +import { textScribbledShapeRestrictions } from './text-scribbled-shape.restrictions'; const shapeType: ShapeType = 'textScribbled'; diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.spec.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.spec.ts similarity index 98% rename from src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.spec.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.spec.ts index 0b8fd5e6..fa735025 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.spec.ts +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.spec.ts @@ -1,4 +1,3 @@ -import { describe, it, expect } from 'vitest'; import { calculatePath } from './text-scribbled.business'; import { AVG_CHAR_WIDTH } from './text-scribbled.const'; diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.business.ts diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.const.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.const.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.const.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.const.ts diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.spec.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.spec.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.spec.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.spec.ts diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.ts similarity index 100% rename from src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.ts rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.utils.ts diff --git a/apps/web/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.restrictions.ts new file mode 100644 index 00000000..d8aa9e1e --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const verticalLineLowShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 30, + maxWidth: 10, + maxHeight: -1, + defaultWidth: 10, + defaultHeight: 200, +}; + +export const getVerticalLineLowShapeRestrictions = (): ShapeSizeRestrictions => + verticalLineLowShapeRestrictions; diff --git a/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.tsx b/apps/web/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.tsx similarity index 74% rename from src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.tsx rename to apps/web/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.tsx index 646d8670..44789b73 100644 --- a/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.tsx @@ -1,36 +1,25 @@ import { forwardRef } from 'react'; import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { ShapeProps } from '../shape.model'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; - -const verticalLineLowShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 30, - maxWidth: 10, - maxHeight: -1, - defaultWidth: 10, - defaultHeight: 200, -}; - -export const getVerticalLineLowShapeRestrictions = (): ShapeSizeRestrictions => - verticalLineLowShapeRestrictions; +import { verticalLineLowShapeRestrictions } from './vertical-line-low-shape.restrictions'; const shapeType: ShapeType = 'verticalLineLow'; export const VerticalLineLowShape = forwardRef( (props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, - text, + _id, + _onSelected, + _text, otherProps, ...shapeProps } = props; diff --git a/src/common/components/mock-components/front-rich-components/accordion/accordion.business.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.business.spec.ts similarity index 98% rename from src/common/components/mock-components/front-rich-components/accordion/accordion.business.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.business.spec.ts index 2bbb8e99..646a3d28 100644 --- a/src/common/components/mock-components/front-rich-components/accordion/accordion.business.spec.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.business.spec.ts @@ -1,4 +1,3 @@ -import { describe, it, expect } from 'vitest'; import { mapTextToSections } from './accordion.business'; describe('mapTextToSections', () => { diff --git a/src/common/components/mock-components/front-rich-components/accordion/accordion.business.ts b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.business.ts similarity index 93% rename from src/common/components/mock-components/front-rich-components/accordion/accordion.business.ts rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.business.ts index 08422104..4e6355ee 100644 --- a/src/common/components/mock-components/front-rich-components/accordion/accordion.business.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.business.ts @@ -1,5 +1,5 @@ -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { ShapeSizeRestrictions } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeSizeRestrictions } from '#core/model'; interface SizeInfo { width: number; diff --git a/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.restrictions.ts new file mode 100644 index 00000000..194a3dd1 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const accordionShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 315, + minHeight: 225, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 315, + defaultHeight: 250, +}; + +export const getAccordionShapeSizeRestrictions = (): ShapeSizeRestrictions => + accordionShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/accordion/accordion.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.tsx similarity index 81% rename from src/common/components/mock-components/front-rich-components/accordion/accordion.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.tsx index 2cf43e36..c4caa42a 100644 --- a/src/common/components/mock-components/front-rich-components/accordion/accordion.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/accordion/accordion.tsx @@ -1,5 +1,5 @@ import { Group } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useEffect, useMemo, useState } from 'react'; import { ShapeProps } from '../../shape.model'; import { AccordionAllParts } from './components'; @@ -9,26 +9,16 @@ import { mapTextToSections, } from './accordion.business'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const accordionShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 315, - minHeight: 225, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 315, - defaultHeight: 250, -}; +import { accordionShapeSizeRestrictions } from './accordion.restrictions'; const shapeType: ShapeType = 'accordion'; -export const getAccordionShapeSizeRestrictions = (): ShapeSizeRestrictions => - accordionShapeSizeRestrictions; - const singleHeaderHeight = 50; const minimumAccordionBodyHeight = 60; export const AccordionShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, text, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, text, ...shapeProps } = + props; const [sections, setSections] = useState([ '[*] Sectión A', 'Sectión B', diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/accordion-all-parts.component.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-all-parts.component.tsx similarity index 100% rename from src/common/components/mock-components/front-rich-components/accordion/components/accordion-all-parts.component.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-all-parts.component.tsx diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/accordion-body.component.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-body.component.tsx similarity index 87% rename from src/common/components/mock-components/front-rich-components/accordion/components/accordion-body.component.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-body.component.tsx index 87a2e962..efe4b3af 100644 --- a/src/common/components/mock-components/front-rich-components/accordion/components/accordion-body.component.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-body.component.tsx @@ -1,6 +1,6 @@ import { forwardRef } from 'react'; import { Group, Rect } from 'react-konva'; -import { ShapeProps } from '@/common/components/mock-components/shape.model'; +import { ShapeProps } from '#common/components/mock-components/shape.model'; export const AccordionBody = forwardRef( ({ x, y, width, height, ...shapeProps }, ref) => { diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/accordion-header.component.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-header.component.tsx similarity index 92% rename from src/common/components/mock-components/front-rich-components/accordion/components/accordion-header.component.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-header.component.tsx index bebf6ad3..bcaeb582 100644 --- a/src/common/components/mock-components/front-rich-components/accordion/components/accordion-header.component.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/accordion-header.component.tsx @@ -1,7 +1,7 @@ import { forwardRef } from 'react'; import { Group, Rect, Text } from 'react-konva'; import { TriangleSelector } from './triangle-selector.component'; -import { ShapeProps } from '@/common/components/mock-components/shape.model'; +import { ShapeProps } from '#common/components/mock-components/shape.model'; interface Props extends ShapeProps { isSelected: boolean; diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/accordion/components/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/index.ts diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/triangle-down.component.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/triangle-down.component.tsx similarity index 100% rename from src/common/components/mock-components/front-rich-components/accordion/components/triangle-down.component.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/triangle-down.component.tsx diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/triangle-lef.component.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/triangle-lef.component.tsx similarity index 100% rename from src/common/components/mock-components/front-rich-components/accordion/components/triangle-lef.component.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/triangle-lef.component.tsx diff --git a/src/common/components/mock-components/front-rich-components/accordion/components/triangle-selector.component.tsx b/apps/web/src/common/components/mock-components/front-rich-components/accordion/components/triangle-selector.component.tsx similarity index 100% rename from src/common/components/mock-components/front-rich-components/accordion/components/triangle-selector.component.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/components/triangle-selector.component.tsx diff --git a/src/common/components/mock-components/front-rich-components/accordion/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/accordion/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/accordion/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/accordion/index.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/appBar.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/appBar.restrictions.ts new file mode 100644 index 00000000..a8c67875 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/appBar.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from '../front-components/shape.const'; + +export const AppBarShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 155, + minHeight: 38, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 250, + defaultHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, +}; + +export const getAppBarShapeSizeRestrictions = (): ShapeSizeRestrictions => + AppBarShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/appBar.tsx b/apps/web/src/common/components/mock-components/front-rich-components/appBar.tsx similarity index 83% rename from src/common/components/mock-components/front-rich-components/appBar.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/appBar.tsx index 7166baf0..60203655 100644 --- a/src/common/components/mock-components/front-rich-components/appBar.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/appBar.tsx @@ -1,37 +1,26 @@ import { forwardRef } from 'react'; import { Group, Rect, Text } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { BASIC_SHAPE } from '../front-components/shape.const'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const AppBarShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 155, - minHeight: 38, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 250, - defaultHeight: BASIC_SHAPE.DEFAULT_TEXT_HEIGHT, -}; +import { AppBarShapeSizeRestrictions } from './appBar.restrictions'; const shapeType: ShapeType = 'appBar'; -export const getAppBarShapeSizeRestrictions = (): ShapeSizeRestrictions => - AppBarShapeSizeRestrictions; - export const AppBarShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - title, - id, + _title, + _id, text, otherProps, - onSelected, + _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( diff --git a/apps/web/src/common/components/mock-components/front-rich-components/audio-player.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/audio-player.restrictions.ts new file mode 100644 index 00000000..f9086dd3 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/audio-player.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const AudioPlayerShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 280, + minHeight: 50, + maxWidth: -1, + maxHeight: 50, + defaultWidth: 280, + defaultHeight: 50, +}; + +export const getAudioPlayerShapeSizeRestrictions = (): ShapeSizeRestrictions => + AudioPlayerShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/audio-player.tsx b/apps/web/src/common/components/mock-components/front-rich-components/audio-player.tsx similarity index 88% rename from src/common/components/mock-components/front-rich-components/audio-player.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/audio-player.tsx index c9bf42f2..2f12631a 100644 --- a/src/common/components/mock-components/front-rich-components/audio-player.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/audio-player.tsx @@ -1,27 +1,17 @@ import { forwardRef } from 'react'; import { Line, Rect, Path, Group } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; +import { AudioPlayerShapeSizeRestrictions } from './audio-player.restrictions'; -const AudioPlayerShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 280, - minHeight: 50, - maxWidth: -1, - maxHeight: 50, - defaultWidth: 280, - defaultHeight: 50, -}; const PROGRESSBAR_PROGRESS = 0.5; -export const getAudioPlayerShapeSizeRestrictions = (): ShapeSizeRestrictions => - AudioPlayerShapeSizeRestrictions; - const shapeType: ShapeType = 'audioPlayer'; export const AudioPlayerShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( AudioPlayerShapeSizeRestrictions, diff --git a/apps/web/src/common/components/mock-components/front-rich-components/bar-chart.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/bar-chart.restrictions.ts new file mode 100644 index 00000000..e1d4d600 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/bar-chart.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const BarChartShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 100, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 250, + defaultHeight: 150, +}; + +export const getBarChartShapeSizeRestrictions = (): ShapeSizeRestrictions => + BarChartShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/bar-chart.tsx b/apps/web/src/common/components/mock-components/front-rich-components/bar-chart.tsx similarity index 78% rename from src/common/components/mock-components/front-rich-components/bar-chart.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/bar-chart.tsx index 610ddd59..180d5328 100644 --- a/src/common/components/mock-components/front-rich-components/bar-chart.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/bar-chart.tsx @@ -1,26 +1,15 @@ import { Group, Line, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const BarChartShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 100, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 250, - defaultHeight: 150, -}; - -export const getBarChartShapeSizeRestrictions = (): ShapeSizeRestrictions => - BarChartShapeSizeRestrictions; +import { BarChartShapeSizeRestrictions } from './bar-chart.restrictions'; const shapeType: ShapeType = 'bar'; export const BarChartShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( BarChartShapeSizeRestrictions, width, diff --git a/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.business.ts b/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.business.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.business.ts rename to apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.business.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.restrictions.ts new file mode 100644 index 00000000..c2c737c0 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const breadcrumbShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 600, + minHeight: 60, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 200, + defaultHeight: 60, +}; + +export const getBreadcrumbShapeSizeRestrictions = (): ShapeSizeRestrictions => + breadcrumbShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.tsx b/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.tsx similarity index 84% rename from src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.tsx index e6fe91b7..646c8e95 100644 --- a/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.tsx @@ -1,36 +1,24 @@ +import { ShapeType } from '#core/model'; import { forwardRef, useEffect, useRef, useState } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { ShapeProps } from '../../shape.model'; -import { calculatePositions, mapTextToSections } from './breadcrumb.business'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useGroupShapeProps } from '../../mock-components.utils'; - -export const breadcrumbShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 600, - minHeight: 60, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 200, - defaultHeight: 60, -}; +import { ShapeProps } from '../../shape.model'; +import { calculatePositions, mapTextToSections } from './breadcrumb.business'; export const GROUP_HEIGHT = 60; const shapeType: ShapeType = 'breadcrumb'; -export const getBreadcrumbShapeSizeRestrictions = (): ShapeSizeRestrictions => - breadcrumbShapeSizeRestrictions; - export const BreadcrumbShape = forwardRef((props, ref) => { const { - x, - y, - id, - width, - height, - onSelected, + _x, + _y, + _id, + _width, + _height, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-rich-components/breadcrumb/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/breadcrumb/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/breadcrumb/index.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.restrictions.ts new file mode 100644 index 00000000..c3c03c38 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const buttonBarShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 25, + maxWidth: -1, + maxHeight: 100, + defaultWidth: 500, + defaultHeight: 50, +}; + +export const getButtonBarShapeSizeRestrictions = (): ShapeSizeRestrictions => + buttonBarShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.tsx b/apps/web/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.tsx similarity index 79% rename from src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.tsx index efeddd01..81dad2c6 100644 --- a/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/buttonBar/buttonBar.tsx @@ -1,38 +1,27 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { Group, Rect, Text } from 'react-konva'; import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { forwardRef } from 'react'; import { extractCSVHeaders, splitCSVContentIntoRows, -} from '@/common/utils/active-element-selector.utils'; +} from '#common/utils/active-element-selector.utils'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const buttonBarShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 25, - maxWidth: -1, - maxHeight: 100, - defaultWidth: 500, - defaultHeight: 50, -}; - -export const getButtonBarShapeSizeRestrictions = (): ShapeSizeRestrictions => - buttonBarShapeSizeRestrictions; +import { buttonBarShapeSizeRestrictions } from './buttonBar.restrictions'; const shapeType: ShapeType = 'buttonBar'; export const ButtonBarShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-rich-components/calendar/calendar.business.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.business.spec.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/calendar/calendar.business.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.business.spec.ts diff --git a/src/common/components/mock-components/front-rich-components/calendar/calendar.business.tsx b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.business.tsx similarity index 86% rename from src/common/components/mock-components/front-rich-components/calendar/calendar.business.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.business.tsx index c5883373..e23275bd 100644 --- a/src/common/components/mock-components/front-rich-components/calendar/calendar.business.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.business.tsx @@ -14,7 +14,7 @@ export const getCurrentMonthDays = (date: Date) => { const startDay = new Date(year, date.getMonth(), 1).getDay(); const days = []; - let week = new Array(startDay).fill(null); // Fill the first week with nulls up to the start day + let week: (number | null)[] = Array.from({ length: startDay }, () => null); // Fill the first week with nulls up to the start day for (let day = 1; day <= daysInMonth; day++) { week.push(day); diff --git a/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.restrictions.ts new file mode 100644 index 00000000..b319066e --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const calendarShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 350, + minHeight: 350, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 500, + defaultHeight: 500, +}; + +export const getCalendarShapeSizeRestrictions = (): ShapeSizeRestrictions => + calendarShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/calendar/calendar.tsx b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.tsx similarity index 88% rename from src/common/components/mock-components/front-rich-components/calendar/calendar.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.tsx index a636fd90..e394db28 100644 --- a/src/common/components/mock-components/front-rich-components/calendar/calendar.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/calendar/calendar.tsx @@ -1,8 +1,8 @@ import { useState, forwardRef } from 'react'; import { Group, Rect, Text, Line } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { calculateNextMonth, calculatePreviousMonth, @@ -10,23 +10,12 @@ import { } from './calendar.business'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const calendarShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 350, - minHeight: 350, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 500, - defaultHeight: 500, -}; - -export const getCalendarShapeSizeRestrictions = (): ShapeSizeRestrictions => - calendarShapeSizeRestrictions; +import { calendarShapeSizeRestrictions } from './calendar.restrictions'; const shapeType: ShapeType = 'calendar'; export const CalendarShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( calendarShapeSizeRestrictions, width, diff --git a/src/common/components/mock-components/front-rich-components/calendar/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/calendar/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/calendar/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/calendar/index.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/fab-button/fab-button.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/fab-button/fab-button.restrictions.ts new file mode 100644 index 00000000..8d61de70 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/fab-button/fab-button.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const fabButtonShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 25, + minHeight: 25, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 85, + defaultHeight: 85, +}; + +export const getFabButtonShapeSizeRestrictions = (): ShapeSizeRestrictions => + fabButtonShapeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/fab-button/fab-button.tsx b/apps/web/src/common/components/mock-components/front-rich-components/fab-button/fab-button.tsx similarity index 70% rename from src/common/components/mock-components/front-rich-components/fab-button/fab-button.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/fab-button/fab-button.tsx index 29c11261..0c5c04b6 100644 --- a/src/common/components/mock-components/front-rich-components/fab-button/fab-button.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/fab-button/fab-button.tsx @@ -1,32 +1,21 @@ -import { BASE_ICONS_URL, ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { useShapeProps } from '#common/components/shapes/use-shape-props.hook'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes'; +import { loadSvgWithFill } from '#common/utils/svg.utils'; +import { BASE_ICONS_URL, ShapeType } from '#core/model'; +import { useCanvasContext } from '#core/providers'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; +import { IconModal } from '#pods/properties/components/icon-selector/modal'; import { forwardRef, useEffect, useState } from 'react'; import { Circle, Group, Image } from 'react-konva'; -import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes'; -import { useShapeProps } from '@/common/components/shapes/use-shape-props.hook'; -import { useGroupShapeProps } from '../../mock-components.utils'; import { BASIC_SHAPE } from '../../front-components/shape.const'; -import { IconModal } from '@/pods/properties/components/icon-selector/modal'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; -import { useCanvasContext } from '@/core/providers'; -import { loadSvgWithFill } from '@/common/utils/svg.utils'; - -const fabButtonShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 25, - minHeight: 25, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 85, - defaultHeight: 85, -}; +import { useGroupShapeProps } from '../../mock-components.utils'; +import { ShapeProps } from '../../shape.model'; +import { fabButtonShapeRestrictions } from './fab-button.restrictions'; const shapeType: ShapeType = 'fabButton'; -export const getFabButtonShapeSizeRestrictions = (): ShapeSizeRestrictions => - fabButtonShapeRestrictions; - export const FabButtonShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const [iconImage, setIconImage] = useState(null); diff --git a/src/common/components/mock-components/front-rich-components/file-tree/file-tree-resize.hook.ts b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree-resize.hook.ts similarity index 96% rename from src/common/components/mock-components/front-rich-components/file-tree/file-tree-resize.hook.ts rename to apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree-resize.hook.ts index fef5ba58..4e2622b0 100644 --- a/src/common/components/mock-components/front-rich-components/file-tree/file-tree-resize.hook.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree-resize.hook.ts @@ -1,5 +1,5 @@ -import { ElementSize, Size } from '@/core/model'; -import { useCanvasContext } from '@/core/providers'; +import { ElementSize, Size } from '#core/model'; +import { useCanvasContext } from '#core/providers'; import { useEffect, useRef } from 'react'; import { FileTreeItem, FileTreeSizeValues } from './file-tree.model'; diff --git a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.spec.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.spec.ts diff --git a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.ts b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.ts similarity index 95% rename from src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.ts rename to apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.ts index 5bddbaec..753dee0d 100644 --- a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.business.ts @@ -1,5 +1,5 @@ -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes'; -import { ElementSize, ShapeSizeRestrictions, Size } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes'; +import { ElementSize, ShapeSizeRestrictions, Size } from '#core/model'; import { FONT_SIZE_VALUES } from '../../front-components/shape.const'; import { FileTreeDynamicSizeParams, diff --git a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.model.ts b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.model.ts similarity index 93% rename from src/common/components/mock-components/front-rich-components/file-tree/file-tree.model.ts rename to apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.model.ts index 7415a168..ac385f09 100644 --- a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.model.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.model.ts @@ -1,4 +1,4 @@ -import { ShapeSizeRestrictions } from '@/core/model'; +import { ShapeSizeRestrictions } from '#core/model'; export interface FileTreeSizeValues { fontSize: number; diff --git a/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.restrictions.ts new file mode 100644 index 00000000..2ac0bbd5 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const fileTreeShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 150, + minHeight: 50, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 230, + defaultHeight: 180, +}; + +export const getFileTreeShapeSizeRestrictions = (): ShapeSizeRestrictions => + fileTreeShapeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.tsx b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.tsx similarity index 89% rename from src/common/components/mock-components/front-rich-components/file-tree/file-tree.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.tsx index bb5c064d..01c01510 100644 --- a/src/common/components/mock-components/front-rich-components/file-tree/file-tree.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/file-tree/file-tree.tsx @@ -1,27 +1,19 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { useShapeProps } from '#common/components/shapes/use-shape-props.hook'; +import { loadSvgWithFill } from '#common/utils/svg.utils'; +import { ShapeType } from '#core/model'; import { forwardRef, useEffect, useMemo, useState } from 'react'; import { Group, Image, Rect, Text } from 'react-konva'; -import { ShapeProps } from '../../shape.model'; -import { useGroupShapeProps } from '../../mock-components.utils'; -import { loadSvgWithFill } from '@/common/utils/svg.utils'; -import { useShapeProps } from '@/common/components/shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../../front-components/shape.const'; +import { useGroupShapeProps } from '../../mock-components.utils'; +import { ShapeProps } from '../../shape.model'; +import { useFileTreeResize } from './file-tree-resize.hook'; import { calculateFileTreeDynamicSize, getFileTreeSizeValues, parseFileTreeText, } from './file-tree.business'; -import { useFileTreeResize } from './file-tree-resize.hook'; import { FileTreeItem } from './file-tree.model'; - -const fileTreeShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 150, - minHeight: 50, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 230, - defaultHeight: 180, -}; +import { fileTreeShapeRestrictions } from './file-tree.restrictions'; interface FileTreeShapeProps extends ShapeProps { text: string; @@ -29,9 +21,6 @@ interface FileTreeShapeProps extends ShapeProps { const shapeType: ShapeType = 'fileTree'; -export const getFileTreeShapeSizeRestrictions = (): ShapeSizeRestrictions => - fileTreeShapeRestrictions; - export const FileTreeShape = forwardRef( (props, ref) => { const { @@ -40,7 +29,7 @@ export const FileTreeShape = forwardRef( width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.restrictions.ts new file mode 100644 index 00000000..c1e5e537 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const gaugeShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 70, + minHeight: 70, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 150, +}; + +export const getGaugeShapeSizeRestrictions = (): ShapeSizeRestrictions => + gaugeShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/gauge/gauge.tsx b/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.tsx similarity index 82% rename from src/common/components/mock-components/front-rich-components/gauge/gauge.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.tsx index 576dd0f8..e5d4c820 100644 --- a/src/common/components/mock-components/front-rich-components/gauge/gauge.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.tsx @@ -1,39 +1,28 @@ -import { Circle, Group, Path, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; -import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { Circle, Group, Path, Text } from 'react-konva'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; +import { ShapeProps } from '../../shape.model'; +import { gaugeShapeSizeRestrictions } from './gauge.restrictions'; -import { BASIC_SHAPE } from '@/common/components/mock-components/front-components/shape.const'; +import { BASIC_SHAPE } from '#common/components/mock-components/front-components/shape.const'; import { useGroupShapeProps } from '../../mock-components.utils'; import { endsWhithPercentageSymbol, extractNumbersAsTwoDigitString, } from './gauge.utils'; -const gaugeShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 70, - minHeight: 70, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 150, - defaultHeight: 150, -}; - -export const getGaugeShapeSizeRestrictions = (): ShapeSizeRestrictions => - gaugeShapeSizeRestrictions; - const shapeType: ShapeType = 'gauge'; export const Gauge = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-rich-components/gauge/gauge.utils.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.utils.spec.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/gauge/gauge.utils.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.utils.spec.ts diff --git a/src/common/components/mock-components/front-rich-components/gauge/gauge.utils.ts b/apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.utils.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/gauge/gauge.utils.ts rename to apps/web/src/common/components/mock-components/front-rich-components/gauge/gauge.utils.ts diff --git a/src/common/components/mock-components/front-rich-components/gauge/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/gauge/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/gauge/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/gauge/index.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.restrictions.ts new file mode 100644 index 00000000..7c0bb250 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const horizontalMenuShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 50, + maxWidth: -1, + maxHeight: 100, + defaultWidth: 500, + defaultHeight: 50, +}; + +export const getHorizontalMenuShapeSizeRestrictions = + (): ShapeSizeRestrictions => horizontalMenuShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.tsx b/apps/web/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.tsx similarity index 60% rename from src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.tsx index 39121266..74513176 100644 --- a/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.tsx @@ -1,27 +1,20 @@ -import { Group, Rect, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { forwardRef } from 'react'; -import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { BASIC_SHAPE } from '../../front-components/shape.const'; -import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { extractCSVHeaders, splitCSVContentIntoRows, -} from '@/common/utils/active-element-selector.utils'; +} from '#common/utils/active-element-selector.utils'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { forwardRef } from 'react'; +import { Group, Rect, Text } from 'react-konva'; +import { useShapeProps } from '../../../shapes/use-shape-props.hook'; +import { BASIC_SHAPE } from '../../front-components/shape.const'; +import { + MultipleItemsInfo, + useResizeOnFontSizeChange, +} from '../../front-text-components/front-text-hooks/resize-fontsize-change.hook'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const horizontalMenuShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 25, - maxWidth: -1, - maxHeight: 100, - defaultWidth: 500, - defaultHeight: 50, -}; - -export const getHorizontalMenuShapeSizeRestrictions = - (): ShapeSizeRestrictions => horizontalMenuShapeSizeRestrictions; +import { ShapeProps } from '../../shape.model'; +import { horizontalMenuShapeSizeRestrictions } from './horizontal-menu.restrictions'; const shapeType: ShapeType = 'horizontal-menu'; @@ -32,7 +25,7 @@ export const HorizontalMenu = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps @@ -41,7 +34,7 @@ export const HorizontalMenu = forwardRef((props, ref) => { const csvData = splitCSVContentIntoRows(text); const headers = extractCSVHeaders(csvData[0]); const itemLabels = headers.map(header => header.text); - + const totalVerticalPadding = 8; const numberOfItems = itemLabels.length; const itemSpacing = 10; @@ -51,15 +44,21 @@ export const HorizontalMenu = forwardRef((props, ref) => { height ); const { width: restrictedWidth, height: restrictedHeight } = restrictedSize; - const totalMargins = restrictedWidth - itemSpacing * (numberOfItems + 1); - const itemWidth = totalMargins / numberOfItems; + const totalHorizontalMargins = + restrictedWidth - itemSpacing * (numberOfItems + 1); + const itemWidth = totalHorizontalMargins / numberOfItems; - const { stroke, strokeStyle, fill, textColor, borderRadius } = useShapeProps( - otherProps, - BASIC_SHAPE - ); + const { + stroke, + strokeStyle, + fill, + textColor, + borderRadius, + fontSize, + fontVariant, + } = useShapeProps(otherProps, BASIC_SHAPE); - const itemVerticalPadding = 4; + const singleVerticalPadding = totalVerticalPadding / 2; const activeSelected = otherProps?.activeElement ?? 0; @@ -70,8 +69,24 @@ export const HorizontalMenu = forwardRef((props, ref) => { ref ); + const multiplesItemsInfo: MultipleItemsInfo = { + numberOfItems: numberOfItems, + horizontalSpacing: itemSpacing, + }; + + useResizeOnFontSizeChange( + id, + { x, y }, + text, + fontSize, + fontVariant, + false, + multiplesItemsInfo + ); + return ( + {/* Main Rectangle*/} ((props, ref) => { {itemLabels.map((header, index) => ( + {/* Blue selected rectangle */} ))} diff --git a/src/common/components/mock-components/front-rich-components/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/index.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/input-stepper.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/input-stepper.restrictions.ts new file mode 100644 index 00000000..23641890 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/input-stepper.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const inputStepperShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 80, + minHeight: 24, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 120, + defaultHeight: 32, +}; + +export const getInputStepperShapeSizeRestrictions = (): ShapeSizeRestrictions => + inputStepperShapeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/input-stepper.tsx b/apps/web/src/common/components/mock-components/front-rich-components/input-stepper.tsx similarity index 79% rename from src/common/components/mock-components/front-rich-components/input-stepper.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/input-stepper.tsx index 9d60dd2a..fa2a8053 100644 --- a/src/common/components/mock-components/front-rich-components/input-stepper.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/input-stepper.tsx @@ -1,29 +1,26 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Rect, Text } from 'react-konva'; -import { ShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { useGroupShapeProps } from '../mock-components.utils'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { ShapeType } from '@/core/model'; -import { ShapeProps } from '../shape.model'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { INPUT_SHAPE } from '../front-components/shape.const'; +import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; +import { inputStepperShapeRestrictions } from './input-stepper.restrictions'; // Size restrictions (igual patrón que file-tree) -export const inputStepperShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 80, - minHeight: 24, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 120, - defaultHeight: 32, -}; - -export const getInputStepperShapeSizeRestrictions = (): ShapeSizeRestrictions => - inputStepperShapeRestrictions; - export const InputWithStepper = forwardRef((props, ref) => { - const { x, y, width, height, text, onSelect, otherProps, id, ...shapeProps } = - props; + const { + _x, + _y, + width, + height, + text, + _onSelect, + otherProps, + _id, + ...shapeProps + } = props; const inputWidth = width - 30; // Reservar espacio para el stepper const buttonHeight = height / 2; @@ -66,14 +63,14 @@ export const InputWithStepper = forwardRef((props, ref) => { {/* Texto del input */} diff --git a/apps/web/src/common/components/mock-components/front-rich-components/line-chart.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/line-chart.restrictions.ts new file mode 100644 index 00000000..ebaeff40 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/line-chart.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const LineChartShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 100, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 250, + defaultHeight: 200, +}; + +export const getLineChartShapeSizeRestrictions = (): ShapeSizeRestrictions => + LineChartShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/line-chart.tsx b/apps/web/src/common/components/mock-components/front-rich-components/line-chart.tsx similarity index 86% rename from src/common/components/mock-components/front-rich-components/line-chart.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/line-chart.tsx index 4c5c45d4..dfcb316a 100644 --- a/src/common/components/mock-components/front-rich-components/line-chart.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/line-chart.tsx @@ -1,29 +1,18 @@ import { forwardRef, useMemo } from 'react'; import { Group, Line, Circle, Rect } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const LineChartShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 100, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 250, - defaultHeight: 200, -}; +import { LineChartShapeSizeRestrictions } from './line-chart.restrictions'; const LINE_CHART_WIDTH = 350; const LINE_CHART_HEIGHT = 250; -export const getLineChartShapeSizeRestrictions = (): ShapeSizeRestrictions => - LineChartShapeSizeRestrictions; - const shapeType: ShapeType = 'linechart'; export const LineChartShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( LineChartShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-rich-components/loading-indicator.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/loading-indicator.restrictions.ts new file mode 100644 index 00000000..4702e082 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/loading-indicator.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const LoadIndicatorSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 100, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 200, + defaultHeight: 100, +}; + +export const getLoadIndicatorSizeRestrictions = (): ShapeSizeRestrictions => + LoadIndicatorSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/loading-indicator.tsx b/apps/web/src/common/components/mock-components/front-rich-components/loading-indicator.tsx similarity index 83% rename from src/common/components/mock-components/front-rich-components/loading-indicator.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/loading-indicator.tsx index 5319ac8a..094eb74c 100644 --- a/src/common/components/mock-components/front-rich-components/loading-indicator.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/loading-indicator.tsx @@ -2,27 +2,16 @@ import { useRef, forwardRef } from 'react'; import { Group, Rect, Text, Circle } from 'react-konva'; import Konva from 'konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const LoadIndicatorSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 100, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 200, - defaultHeight: 100, -}; +import { LoadIndicatorSizeRestrictions } from './loading-indicator.restrictions'; const shapeType: ShapeType = 'loading-indicator'; -export const getLoadIndicatorSizeRestrictions = (): ShapeSizeRestrictions => - LoadIndicatorSizeRestrictions; - export const LoadIndicator = forwardRef((props, ref) => { - const { x, y, width, height, otherProps, ...shapeProps } = props; + const { _x, _y, width, height, otherProps, ...shapeProps } = props; const restrictedSize = { width: width || LoadIndicatorSizeRestrictions.defaultWidth, diff --git a/apps/web/src/common/components/mock-components/front-rich-components/map-chart.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/map-chart.restrictions.ts new file mode 100644 index 00000000..0b11d793 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/map-chart.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const MapChartShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 50, + minHeight: 50, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 200, + defaultHeight: 200, +}; + +export const getMapChartShapeSizeRestrictions = (): ShapeSizeRestrictions => + MapChartShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/map-chart.tsx b/apps/web/src/common/components/mock-components/front-rich-components/map-chart.tsx similarity index 84% rename from src/common/components/mock-components/front-rich-components/map-chart.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/map-chart.tsx index 5adc11c5..80574006 100644 --- a/src/common/components/mock-components/front-rich-components/map-chart.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/map-chart.tsx @@ -1,29 +1,18 @@ import { Group, Circle, Path, Rect } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useMemo } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const MapChartShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 50, - minHeight: 50, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 200, - defaultHeight: 200, -}; +import { MapChartShapeSizeRestrictions } from './map-chart.restrictions'; const MAP_FIX_WIDTH = 200; const MAP_FIX_HEIGHT = 200; -export const getMapChartShapeSizeRestrictions = (): ShapeSizeRestrictions => - MapChartShapeSizeRestrictions; - const shapeType: ShapeType = 'map'; export const MapChartShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( MapChartShapeSizeRestrictions, width, diff --git a/src/common/components/mock-components/front-rich-components/modal/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/modal/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/modal/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/modal/index.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/modal/modal.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/modal/modal.restrictions.ts new file mode 100644 index 00000000..d0b7892f --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/modal/modal.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const modalShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 235, + minHeight: 200, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 375, + defaultHeight: 225, +}; + +export const getModalShapeSizeRestrictions = (): ShapeSizeRestrictions => + modalShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/modal/modal.tsx b/apps/web/src/common/components/mock-components/front-rich-components/modal/modal.tsx similarity index 88% rename from src/common/components/mock-components/front-rich-components/modal/modal.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/modal/modal.tsx index c1996891..0f79f3c5 100644 --- a/src/common/components/mock-components/front-rich-components/modal/modal.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/modal/modal.tsx @@ -1,35 +1,24 @@ import { Group, Rect, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { darkenColor, getModalPartsText } from './modal.utils'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const modalShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 235, - minHeight: 200, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 375, - defaultHeight: 225, -}; - -export const getModalShapeSizeRestrictions = (): ShapeSizeRestrictions => - modalShapeSizeRestrictions; +import { modalShapeSizeRestrictions } from './modal.restrictions'; const shapeType: ShapeType = 'modal'; export const Modal = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-rich-components/modal/modal.utils.ts b/apps/web/src/common/components/mock-components/front-rich-components/modal/modal.utils.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/modal/modal.utils.ts rename to apps/web/src/common/components/mock-components/front-rich-components/modal/modal.utils.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/pie-chart.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/pie-chart.restrictions.ts new file mode 100644 index 00000000..b8096f60 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/pie-chart.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const PieChartShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 100, + minHeight: 100, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 500, + defaultHeight: 500, +}; + +export const getPieChartShapeSizeRestrictions = (): ShapeSizeRestrictions => + PieChartShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/pie-chart.tsx b/apps/web/src/common/components/mock-components/front-rich-components/pie-chart.tsx similarity index 77% rename from src/common/components/mock-components/front-rich-components/pie-chart.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/pie-chart.tsx index 5de47f15..3d11905b 100644 --- a/src/common/components/mock-components/front-rich-components/pie-chart.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/pie-chart.tsx @@ -1,29 +1,18 @@ import { Group, Circle, Path } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useMemo } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const PieChartShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 100, - minHeight: 100, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 500, - defaultHeight: 500, -}; +import { PieChartShapeSizeRestrictions } from './pie-chart.restrictions'; const PIE_FIX_WIDTH = 200; const PIE_FIX_HEIGHT = 200; -export const getPieChartShapeSizeRestrictions = (): ShapeSizeRestrictions => - PieChartShapeSizeRestrictions; - const shapeType: ShapeType = 'pie'; export const PieChartShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( PieChartShapeSizeRestrictions, width, diff --git a/src/common/components/mock-components/front-rich-components/table/components/filter-triangle.tsx b/apps/web/src/common/components/mock-components/front-rich-components/table/components/filter-triangle.tsx similarity index 100% rename from src/common/components/mock-components/front-rich-components/table/components/filter-triangle.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/table/components/filter-triangle.tsx diff --git a/src/common/components/mock-components/front-rich-components/table/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/table/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/table/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/table/index.ts diff --git a/src/common/components/mock-components/front-rich-components/table/table-col-width.utils.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/table/table-col-width.utils.spec.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/table/table-col-width.utils.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/table/table-col-width.utils.spec.ts diff --git a/src/common/components/mock-components/front-rich-components/table/table-col-width.utils.ts b/apps/web/src/common/components/mock-components/front-rich-components/table/table-col-width.utils.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/table/table-col-width.utils.ts rename to apps/web/src/common/components/mock-components/front-rich-components/table/table-col-width.utils.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/table/table.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/table/table.restrictions.ts new file mode 100644 index 00000000..b66ac6e1 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/table/table.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const tableSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 1, + minHeight: 75, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 300, + defaultHeight: 150, +}; + +export const getTableSizeRestrictions = (): ShapeSizeRestrictions => + tableSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/table/table.tsx b/apps/web/src/common/components/mock-components/front-rich-components/table/table.tsx similarity index 91% rename from src/common/components/mock-components/front-rich-components/table/table.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/table/table.tsx index 5c932112..9ce0afa2 100644 --- a/src/common/components/mock-components/front-rich-components/table/table.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/table/table.tsx @@ -1,8 +1,8 @@ import { forwardRef } from 'react'; import { Group, Rect, Text, Line } from 'react-konva'; import { ShapeProps } from '../../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { extractAlignments, extractDataRows, @@ -13,23 +13,13 @@ import { import { calculateCellWidths } from './table-col-width.utils'; import { Triangle } from './components/filter-triangle'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const tableSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 1, - minHeight: 75, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 300, - defaultHeight: 150, -}; - -export const getTableSizeRestrictions = (): ShapeSizeRestrictions => - tableSizeRestrictions; +import { tableSizeRestrictions } from './table.restrictions'; const shapeType: ShapeType = 'table'; export const Table = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, text, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, text, ...shapeProps } = + props; const restrictedSize = fitSizeToShapeSizeRestrictions( tableSizeRestrictions, diff --git a/src/common/components/mock-components/front-rich-components/table/table.utils.ts b/apps/web/src/common/components/mock-components/front-rich-components/table/table.utils.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/table/table.utils.ts rename to apps/web/src/common/components/mock-components/front-rich-components/table/table.utils.ts diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.spec.ts similarity index 97% rename from src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.spec.ts index a228db36..74d00fe4 100644 --- a/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.spec.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.spec.ts @@ -1,4 +1,3 @@ -import { describe, it, expect } from 'vitest'; import { balanceSpacePerItem } from './balance-space'; const _sum = (resultado: number[]) => diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.ts rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/balance-space.ts diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.spec.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.browser.spec.ts similarity index 95% rename from src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.spec.ts rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.browser.spec.ts index b6e3892f..d6cb30f1 100644 --- a/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.spec.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.browser.spec.ts @@ -1,4 +1,3 @@ -import { describe, it, expect } from 'vitest'; import { adjustTabWidths } from './tabsbar.business'; const _sum = (resultado: number[]) => diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.ts similarity index 95% rename from src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.ts rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.ts index ed119ee4..7244594d 100644 --- a/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/business/tabsbar.business.ts @@ -1,6 +1,6 @@ +import { calcTextDimensions } from '#common/utils/calc-text-dimensions'; import { Layer } from 'konva/lib/Layer'; import { balanceSpacePerItem } from './balance-space'; -import { calcTextDimensions } from '@/common/utils/calc-text-dimensions'; export const adjustTabWidths = (args: { tabs: string[]; @@ -56,7 +56,7 @@ export const adjustTabWidths = (args: { ); // This order is necessary to build layer by layer the new sizes - const ascendentTabList = arrangeTabsInfo.sort( + const ascendentTabList = arrangeTabsInfo.toSorted( (a, b) => a.desiredWidth - b.desiredWidth ); diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/tabsbar/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/index.ts diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/tab-list.hook.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tab-list.hook.ts similarity index 93% rename from src/common/components/mock-components/front-rich-components/tabsbar/tab-list.hook.ts rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tab-list.hook.ts index e115f4c2..9140ba79 100644 --- a/src/common/components/mock-components/front-rich-components/tabsbar/tab-list.hook.ts +++ b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tab-list.hook.ts @@ -3,8 +3,8 @@ import { adjustTabWidths } from './business/tabsbar.business'; import { extractCSVHeaders, splitCSVContentIntoRows, -} from '@/common/utils/active-element-selector.utils'; -import { useCanvasContext } from '@/core/providers'; +} from '#common/utils/active-element-selector.utils'; +import { useCanvasContext } from '#core/providers'; interface TabListConfig { text: string; diff --git a/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.restrictions.ts new file mode 100644 index 00000000..b25f21b6 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const tabsBarShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 450, + minHeight: 150, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 450, + defaultHeight: 180, +}; + +export const getTabsBarShapeSizeRestrictions = (): ShapeSizeRestrictions => + tabsBarShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.tsx b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.tsx similarity index 84% rename from src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.tsx index d76cb6cf..08416101 100644 --- a/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.tsx @@ -1,33 +1,22 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Rect, Text } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { ShapeProps } from '../../shape.model'; import { useGroupShapeProps } from '../../mock-components.utils'; +import { ShapeProps } from '../../shape.model'; import { useTabList } from './tab-list.hook'; - -const tabsBarShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 450, - minHeight: 150, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 450, - defaultHeight: 180, -}; - -export const getTabsBarShapeSizeRestrictions = (): ShapeSizeRestrictions => - tabsBarShapeSizeRestrictions; +import { tabsBarShapeSizeRestrictions } from './tabsbar-shape.restrictions'; const shapeType: ShapeType = 'tabsBar'; export const TabsBarShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-rich-components/togglelightdark-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/togglelightdark-shape.restrictions.ts new file mode 100644 index 00000000..6285ed77 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/togglelightdark-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const toggleLightDarkShapeRestrictions: ShapeSizeRestrictions = { + minWidth: 50, + minHeight: 25, + maxWidth: 50, + maxHeight: 25, + defaultWidth: 50, + defaultHeight: 25, +}; + +export const getToggleLightDarkShapeSizeRestrictions = + (): ShapeSizeRestrictions => toggleLightDarkShapeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/togglelightdark-shape.tsx b/apps/web/src/common/components/mock-components/front-rich-components/togglelightdark-shape.tsx similarity index 77% rename from src/common/components/mock-components/front-rich-components/togglelightdark-shape.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/togglelightdark-shape.tsx index 35d6465d..09bced88 100644 --- a/src/common/components/mock-components/front-rich-components/togglelightdark-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/togglelightdark-shape.tsx @@ -1,32 +1,21 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { Circle, Group, Rect, Image } from 'react-konva'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; import sunIconUrl from '/icons/sun.svg'; import moonIconUrl from '/icons/moonalt.svg'; +import { toggleLightDarkShapeRestrictions } from './togglelightdark-shape.restrictions'; const iconSize = 20; -const toggleLightDarkShapeRestrictions: ShapeSizeRestrictions = { - minWidth: 50, - minHeight: 25, - maxWidth: 50, - maxHeight: 25, - defaultWidth: 50, - defaultHeight: 25, -}; - const shapeType: ShapeType = 'toggleLightDark'; -export const getToggleLightDarkShapeSizeRestrictions = - (): ShapeSizeRestrictions => toggleLightDarkShapeRestrictions; - export const ToggleLightDark = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, otherProps, ...shapeProps } = + const { _x, _y, width, height, _id, _onSelected, otherProps, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( toggleLightDarkShapeRestrictions, diff --git a/src/common/components/mock-components/front-rich-components/vertical-menu/index.ts b/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/index.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/vertical-menu/index.ts rename to apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/index.ts diff --git a/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.business.ts b/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.business.ts similarity index 100% rename from src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.business.ts rename to apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.business.ts diff --git a/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.restrictions.ts new file mode 100644 index 00000000..ddff2df3 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const verticalMenuShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 220, + minHeight: 180, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 120, + defaultHeight: 180, +}; + +export const getVerticalMenuShapeSizeRestrictions = (): ShapeSizeRestrictions => + verticalMenuShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.tsx b/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.tsx similarity index 84% rename from src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.tsx index c64ccfbc..596fb86d 100644 --- a/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.tsx @@ -1,24 +1,13 @@ -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Line, Rect, Text } from 'react-konva'; import { ShapeProps } from '../../shape.model'; import { joinTextContent } from './vertical-menu.business'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../../mock-components.utils'; - -const verticalMenuShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 220, - minHeight: 180, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 120, - defaultHeight: 180, -}; - -export const getVerticalMenuShapeSizeRestrictions = (): ShapeSizeRestrictions => - verticalMenuShapeSizeRestrictions; +import { verticalMenuShapeSizeRestrictions } from './vertical-menu.restrictions'; interface VerticalMenuShapeProps extends ShapeProps { text: string; @@ -33,14 +22,14 @@ const shapeType: ShapeType = 'vertical-menu'; export const VerticalMenuShape = forwardRef( (props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, - separator = 'black', + _separator = 'black', otherProps, ...shapeProps } = props; diff --git a/apps/web/src/common/components/mock-components/front-rich-components/video-player.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/video-player.restrictions.ts new file mode 100644 index 00000000..63205ebd --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/video-player.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const videoPlayerShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 150, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 600, + defaultHeight: 400, +}; + +export const getVideoPlayerShapeSizeRestrictions = (): ShapeSizeRestrictions => + videoPlayerShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/video-player.tsx b/apps/web/src/common/components/mock-components/front-rich-components/video-player.tsx similarity index 88% rename from src/common/components/mock-components/front-rich-components/video-player.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/video-player.tsx index c65e16c9..ce165120 100644 --- a/src/common/components/mock-components/front-rich-components/video-player.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/video-player.tsx @@ -1,26 +1,15 @@ import { Group, Rect, Circle, Line } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const videoPlayerShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 150, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 600, - defaultHeight: 400, -}; - -export const getVideoPlayerShapeSizeRestrictions = (): ShapeSizeRestrictions => - videoPlayerShapeSizeRestrictions; +import { videoPlayerShapeSizeRestrictions } from './video-player.restrictions'; const shapeType: ShapeType = 'videoPlayer'; export const VideoPlayerShape = forwardRef((props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( videoPlayerShapeSizeRestrictions, width, diff --git a/apps/web/src/common/components/mock-components/front-rich-components/videoconference.restrictions.ts b/apps/web/src/common/components/mock-components/front-rich-components/videoconference.restrictions.ts new file mode 100644 index 00000000..4301f851 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-rich-components/videoconference.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const videoconferenceShapeSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 200, + minHeight: 200, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 600, + defaultHeight: 400, +}; + +export const getVideoconferenceShapeSizeRestrictions = + (): ShapeSizeRestrictions => videoconferenceShapeSizeRestrictions; diff --git a/src/common/components/mock-components/front-rich-components/videoconference.tsx b/apps/web/src/common/components/mock-components/front-rich-components/videoconference.tsx similarity index 92% rename from src/common/components/mock-components/front-rich-components/videoconference.tsx rename to apps/web/src/common/components/mock-components/front-rich-components/videoconference.tsx index 8054722d..3695d6b2 100644 --- a/src/common/components/mock-components/front-rich-components/videoconference.tsx +++ b/apps/web/src/common/components/mock-components/front-rich-components/videoconference.tsx @@ -1,27 +1,16 @@ import { Group, Rect, Circle, Line, Arc, Path } from 'react-konva'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { forwardRef, useEffect, useMemo, useState } from 'react'; import { ShapeProps } from '../shape.model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../mock-components.utils'; - -const videoconferenceShapeSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 200, - minHeight: 200, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 600, - defaultHeight: 400, -}; - -export const getVideoconferenceShapeSizeRestrictions = - (): ShapeSizeRestrictions => videoconferenceShapeSizeRestrictions; +import { videoconferenceShapeSizeRestrictions } from './videoconference.restrictions'; const shapeType: ShapeType = 'videoPlayer'; export const VideoconferenceShape = forwardRef( (props, ref) => { - const { x, y, width, height, id, onSelected, ...shapeProps } = props; + const { _x, _y, width, height, _id, _onSelected, ...shapeProps } = props; const restrictedSize = fitSizeToShapeSizeRestrictions( videoconferenceShapeSizeRestrictions, width, diff --git a/src/common/components/mock-components/front-text-components/front-text-hooks/resize-fontsize-change.hook.ts b/apps/web/src/common/components/mock-components/front-text-components/front-text-hooks/resize-fontsize-change.hook.ts similarity index 61% rename from src/common/components/mock-components/front-text-components/front-text-hooks/resize-fontsize-change.hook.ts rename to apps/web/src/common/components/mock-components/front-text-components/front-text-hooks/resize-fontsize-change.hook.ts index 6a99c601..698989f3 100644 --- a/src/common/components/mock-components/front-text-components/front-text-hooks/resize-fontsize-change.hook.ts +++ b/apps/web/src/common/components/mock-components/front-text-components/front-text-hooks/resize-fontsize-change.hook.ts @@ -1,14 +1,20 @@ -import { calcTextDimensions } from '@/common/utils/calc-text-dimensions'; -import { useCanvasContext } from '@/core/providers'; +import { calcTextDimensions } from '#common/utils/calc-text-dimensions'; +import { useCanvasContext } from '#core/providers'; import { useEffect, useRef } from 'react'; +export interface MultipleItemsInfo { + numberOfItems: number; + horizontalSpacing: number; +} + export const useResizeOnFontSizeChange = ( id: string, coords: { x: number; y: number }, text: string, fontSize: number, fontVariant: string, - multiline: boolean = false + multiline: boolean = false, + multipleItemsInfo?: MultipleItemsInfo // Just in case we have a list of items (horizontally), e.g horizontal menu ) => { const previousFontSize = useRef(fontSize); const { updateShapeSizeAndPosition, stageRef } = useCanvasContext(); @@ -21,12 +27,22 @@ export const useResizeOnFontSizeChange = ( const paragraphLines = _extractParagraphLines(text); const longestLine = _findLongestString(paragraphLines); - const { width, height } = calcTextDimensions( - multiline ? longestLine : text, - fontSize, - fontVariant, - konvaLayer - ); + const { width: longestLineWidth, height: longestLineHeight } = + calcTextDimensions( + multiline ? longestLine : text, + fontSize, + fontVariant, + konvaLayer + ); + + // We add to the longest line width the spacing between items if multiple items + const width = + longestLineWidth + + (multipleItemsInfo + ? multipleItemsInfo.horizontalSpacing * + multipleItemsInfo.numberOfItems + : 0); + const height = longestLineHeight; updateShapeSizeAndPosition( id, diff --git a/apps/web/src/common/components/mock-components/front-text-components/heading1-text-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/heading1-text-shape.restrictions.ts new file mode 100644 index 00000000..437344a3 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/heading1-text-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const heading1SizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 25, +}; + +export const getHeading1SizeRestrictions = (): ShapeSizeRestrictions => + heading1SizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/heading1-text-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/heading1-text-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-text-components/heading1-text-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/heading1-text-shape.tsx index 1e76ba40..7191cba3 100644 --- a/src/common/components/mock-components/front-text-components/heading1-text-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/heading1-text-shape.tsx @@ -1,24 +1,13 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; import { useResizeOnFontSizeChange } from './front-text-hooks/resize-fontsize-change.hook'; - -const heading1SizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 150, - defaultHeight: 25, -}; - -export const getHeading1SizeRestrictions = (): ShapeSizeRestrictions => - heading1SizeRestrictions; +import { heading1SizeRestrictions } from './heading1-text-shape.restrictions'; const shapeType: ShapeType = 'heading1'; @@ -29,7 +18,7 @@ export const Heading1Shape = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-text-components/heading2-text-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/heading2-text-shape.restrictions.ts new file mode 100644 index 00000000..c1dc39e5 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/heading2-text-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const heading2SizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 25, +}; + +export const getHeading2SizeRestrictions = (): ShapeSizeRestrictions => + heading2SizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/heading2-text-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/heading2-text-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-text-components/heading2-text-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/heading2-text-shape.tsx index 050bf45f..5c76dd82 100644 --- a/src/common/components/mock-components/front-text-components/heading2-text-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/heading2-text-shape.tsx @@ -1,24 +1,13 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; import { useResizeOnFontSizeChange } from './front-text-hooks/resize-fontsize-change.hook'; - -const heading2SizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 150, - defaultHeight: 25, -}; - -export const getHeading2SizeRestrictions = (): ShapeSizeRestrictions => - heading2SizeRestrictions; +import { heading2SizeRestrictions } from './heading2-text-shape.restrictions'; const shapeType: ShapeType = 'heading2'; @@ -29,7 +18,7 @@ export const Heading2Shape = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-text-components/heading3-text-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/heading3-text-shape.restrictions.ts new file mode 100644 index 00000000..66bc27c4 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/heading3-text-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const heading3SizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 25, +}; + +export const getHeading3SizeRestrictions = (): ShapeSizeRestrictions => + heading3SizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/heading3-text-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/heading3-text-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-text-components/heading3-text-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/heading3-text-shape.tsx index b02200e8..ffe9a1e4 100644 --- a/src/common/components/mock-components/front-text-components/heading3-text-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/heading3-text-shape.tsx @@ -1,24 +1,13 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; +import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; import { useResizeOnFontSizeChange } from './front-text-hooks/resize-fontsize-change.hook'; - -const heading3SizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 150, - defaultHeight: 25, -}; - -export const getHeading3SizeRestrictions = (): ShapeSizeRestrictions => - heading3SizeRestrictions; +import { heading3SizeRestrictions } from './heading3-text-shape.restrictions'; const shapeType: ShapeType = 'heading3'; @@ -29,7 +18,7 @@ export const Heading3Shape = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-text-components/index.ts b/apps/web/src/common/components/mock-components/front-text-components/index.ts similarity index 100% rename from src/common/components/mock-components/front-text-components/index.ts rename to apps/web/src/common/components/mock-components/front-text-components/index.ts diff --git a/apps/web/src/common/components/mock-components/front-text-components/link-text-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/link-text-shape.restrictions.ts new file mode 100644 index 00000000..f7e9e1f2 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/link-text-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const linkSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 150, + defaultHeight: 25, +}; + +export const getLinkSizeRestrictions = (): ShapeSizeRestrictions => + linkSizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/link-text-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/link-text-shape.tsx similarity index 78% rename from src/common/components/mock-components/front-text-components/link-text-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/link-text-shape.tsx index 2f012e88..b7527f0a 100644 --- a/src/common/components/mock-components/front-text-components/link-text-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/link-text-shape.tsx @@ -1,24 +1,13 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; +import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; import { useResizeOnFontSizeChange } from './front-text-hooks/resize-fontsize-change.hook'; - -const linkSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 150, - defaultHeight: 25, -}; - -export const getLinkSizeRestrictions = (): ShapeSizeRestrictions => - linkSizeRestrictions; +import { linkSizeRestrictions } from './link-text-shape.restrictions'; const shapeType: ShapeType = 'link'; @@ -29,7 +18,7 @@ export const LinkShape = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-text-components/normaltext-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/normaltext-shape.restrictions.ts new file mode 100644 index 00000000..26b537b8 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/normaltext-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const normaltextSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 40, + minHeight: 20, + maxWidth: -1, + maxHeight: 30, + defaultWidth: 500, + defaultHeight: 25, +}; + +export const getNormaltextSizeRestrictions = (): ShapeSizeRestrictions => + normaltextSizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/normaltext-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/normaltext-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-text-components/normaltext-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/normaltext-shape.tsx index 0a37b9df..08c3ed5a 100644 --- a/src/common/components/mock-components/front-text-components/normaltext-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/normaltext-shape.tsx @@ -1,24 +1,13 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; import { useResizeOnFontSizeChange } from './front-text-hooks/resize-fontsize-change.hook'; - -const normaltextSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 40, - minHeight: 20, - maxWidth: -1, - maxHeight: 30, - defaultWidth: 500, - defaultHeight: 25, -}; - -export const getNormaltextSizeRestrictions = (): ShapeSizeRestrictions => - normaltextSizeRestrictions; +import { normaltextSizeRestrictions } from './normaltext-shape.restrictions'; const shapeType: ShapeType = 'normaltext'; @@ -29,7 +18,7 @@ export const NormaltextShape = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/apps/web/src/common/components/mock-components/front-text-components/paragraph-text-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/paragraph-text-shape.restrictions.ts new file mode 100644 index 00000000..d58c0e57 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/paragraph-text-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from '../front-components/shape.const'; + +export const paragraphSizeRestrictions: ShapeSizeRestrictions = { + minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 420, + defaultHeight: 130, +}; + +export const getParagraphSizeRestrictions = (): ShapeSizeRestrictions => + paragraphSizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/paragraph-text-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/paragraph-text-shape.tsx similarity index 72% rename from src/common/components/mock-components/front-text-components/paragraph-text-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/paragraph-text-shape.tsx index f3364f64..85eef3d6 100644 --- a/src/common/components/mock-components/front-text-components/paragraph-text-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/paragraph-text-shape.tsx @@ -1,34 +1,23 @@ import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { useGroupShapeProps } from '../mock-components.utils'; - -const paragraphSizeRestrictions: ShapeSizeRestrictions = { - minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 420, - defaultHeight: 130, -}; - -export const getParagraphSizeRestrictions = (): ShapeSizeRestrictions => - paragraphSizeRestrictions; +import { paragraphSizeRestrictions } from './paragraph-text-shape.restrictions'; const shapeType: ShapeType = 'paragraph'; export const ParagraphShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, - id, - onSelected, + _id, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-text-components/rich-text/image-cache.tsx b/apps/web/src/common/components/mock-components/front-text-components/rich-text/image-cache.tsx similarity index 100% rename from src/common/components/mock-components/front-text-components/rich-text/image-cache.tsx rename to apps/web/src/common/components/mock-components/front-text-components/rich-text/image-cache.tsx diff --git a/src/common/components/mock-components/front-text-components/rich-text/index.ts b/apps/web/src/common/components/mock-components/front-text-components/rich-text/index.ts similarity index 100% rename from src/common/components/mock-components/front-text-components/rich-text/index.ts rename to apps/web/src/common/components/mock-components/front-text-components/rich-text/index.ts diff --git a/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.restrictions.ts new file mode 100644 index 00000000..742ca1f8 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.restrictions.ts @@ -0,0 +1,13 @@ +import { ShapeSizeRestrictions } from '#core/model'; + +export const richTextSizeRestrictions: ShapeSizeRestrictions = { + minWidth: 10, + minHeight: 10, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 200, + defaultHeight: 100, +}; + +export const getRichTextSizeRestrictions = (): ShapeSizeRestrictions => + richTextSizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.tsx similarity index 79% rename from src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.tsx index 735c4d68..e77a5ab7 100644 --- a/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text-shape.tsx @@ -1,35 +1,24 @@ import { forwardRef, useEffect, useRef, useState } from 'react'; import { Group, Image as KonvaImage } from 'react-konva'; import { ShapeProps } from '../../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; import { useGroupShapeProps } from '../../mock-components.utils'; import { BASIC_SHAPE } from '../../front-components/shape.const'; import { useShapeProps } from '../../../shapes/use-shape-props.hook'; import { getImage } from './image-cache'; - -const richTextSizeRestrictions: ShapeSizeRestrictions = { - minWidth: 10, - minHeight: 10, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 200, - defaultHeight: 100, -}; - -export const getRichTextSizeRestrictions = (): ShapeSizeRestrictions => - richTextSizeRestrictions; +import { richTextSizeRestrictions } from './rich-text-shape.restrictions'; const shapeType: ShapeType = 'richtext'; export const RichTextShape = forwardRef((props, ref) => { const { - x, - y, + _x, + _y, width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/front-text-components/rich-text/rich-text.utils.ts b/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text.utils.ts similarity index 89% rename from src/common/components/mock-components/front-text-components/rich-text/rich-text.utils.ts rename to apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text.utils.ts index 636c2762..64a5ea23 100644 --- a/src/common/components/mock-components/front-text-components/rich-text/rich-text.utils.ts +++ b/apps/web/src/common/components/mock-components/front-text-components/rich-text/rich-text.utils.ts @@ -10,7 +10,7 @@ export const parseTextWithFormatting = (text: string): string => { parsedText = parsedText.replace(/_(.*?)_/g, '$1'); // Replace ~text~ text - parsedText = parsedText.replace(/\~(.*?)\~/g, '$1'); + parsedText = parsedText.replace(/~(.*?)~/g, '$1'); return parsedText; }; diff --git a/apps/web/src/common/components/mock-components/front-text-components/smalltext-shape.restrictions.ts b/apps/web/src/common/components/mock-components/front-text-components/smalltext-shape.restrictions.ts new file mode 100644 index 00000000..85121f59 --- /dev/null +++ b/apps/web/src/common/components/mock-components/front-text-components/smalltext-shape.restrictions.ts @@ -0,0 +1,14 @@ +import { ShapeSizeRestrictions } from '#core/model'; +import { BASIC_SHAPE } from '../front-components/shape.const'; + +export const smalltextSizeRestrictions: ShapeSizeRestrictions = { + minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, + minHeight: 20, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 375, + defaultHeight: 25, +}; + +export const getSmalltextSizeRestrictions = (): ShapeSizeRestrictions => + smalltextSizeRestrictions; diff --git a/src/common/components/mock-components/front-text-components/smalltext-shape.tsx b/apps/web/src/common/components/mock-components/front-text-components/smalltext-shape.tsx similarity index 78% rename from src/common/components/mock-components/front-text-components/smalltext-shape.tsx rename to apps/web/src/common/components/mock-components/front-text-components/smalltext-shape.tsx index ac396400..42ff953c 100644 --- a/src/common/components/mock-components/front-text-components/smalltext-shape.tsx +++ b/apps/web/src/common/components/mock-components/front-text-components/smalltext-shape.tsx @@ -1,24 +1,13 @@ +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeType } from '#core/model'; import { forwardRef } from 'react'; import { Group, Text } from 'react-konva'; -import { ShapeProps } from '../shape.model'; -import { ShapeSizeRestrictions, ShapeType } from '@/core/model'; -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; import { useShapeProps } from '../../shapes/use-shape-props.hook'; import { BASIC_SHAPE } from '../front-components/shape.const'; import { useGroupShapeProps } from '../mock-components.utils'; +import { ShapeProps } from '../shape.model'; import { useResizeOnFontSizeChange } from './front-text-hooks/resize-fontsize-change.hook'; - -const smalltextSizeRestrictions: ShapeSizeRestrictions = { - minWidth: BASIC_SHAPE.DEFAULT_MIN_WIDTH, - minHeight: 20, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 375, - defaultHeight: 25, -}; - -export const getSmalltextSizeRestrictions = (): ShapeSizeRestrictions => - smalltextSizeRestrictions; +import { smalltextSizeRestrictions } from './smalltext-shape.restrictions'; const shapeType: ShapeType = 'smalltext'; @@ -29,7 +18,7 @@ export const SmalltextShape = forwardRef((props, ref) => { width, height, id, - onSelected, + _onSelected, text, otherProps, ...shapeProps diff --git a/src/common/components/mock-components/mock-components.utils.ts b/apps/web/src/common/components/mock-components/mock-components.utils.ts similarity index 90% rename from src/common/components/mock-components/mock-components.utils.ts rename to apps/web/src/common/components/mock-components/mock-components.utils.ts index 39f977dd..55eb034a 100644 --- a/src/common/components/mock-components/mock-components.utils.ts +++ b/apps/web/src/common/components/mock-components/mock-components.utils.ts @@ -1,11 +1,11 @@ -import { ShapeType, Size } from '@/core/model'; -import { ShapeProps } from './shape.model'; +import { ShapeType, Size } from '#core/model'; +import { KonvaEventObject } from 'konva/lib/Node'; import { useMemo } from 'react'; import { useShapeComponentSelection } from '../shapes/use-shape-selection.hook'; -import { KonvaEventObject } from 'konva/lib/Node'; +import { ShapeProps } from './shape.model'; export const useGroupShapeProps = ( - props: ShapeProps, + props: Omit, restrictedSize: Size, shapeType: ShapeType, ref: React.ForwardedRef @@ -32,7 +32,7 @@ export const useGroupShapeProps = ( }; export const generateShapeGroupCommonProps = ( - props: ShapeProps, + props: Omit, restrictedSize: Size, shapeType: ShapeType, ref: React.ForwardedRef, diff --git a/src/common/components/mock-components/shape.model.ts b/apps/web/src/common/components/mock-components/shape.model.ts similarity index 91% rename from src/common/components/mock-components/shape.model.ts rename to apps/web/src/common/components/mock-components/shape.model.ts index 08c20721..1dbd8d0e 100644 --- a/src/common/components/mock-components/shape.model.ts +++ b/apps/web/src/common/components/mock-components/shape.model.ts @@ -1,7 +1,7 @@ // Important: we extend from Shapeconfig so we can get additional shape params // TODO: we will need to add more props like for instance text content -import { OtherProps, ShapeType } from '@/core/model'; +import { OtherProps, ShapeType } from '#core/model'; import { ShapeConfig } from 'konva/lib/Shape'; // but we have to check how to pass it to the shape (there will be different types of shapes) diff --git a/src/common/components/modal-dialog/index.ts b/apps/web/src/common/components/modal-dialog/index.ts similarity index 100% rename from src/common/components/modal-dialog/index.ts rename to apps/web/src/common/components/modal-dialog/index.ts diff --git a/src/common/components/modal-dialog/modal-dialog.component.module.css b/apps/web/src/common/components/modal-dialog/modal-dialog.component.module.css similarity index 100% rename from src/common/components/modal-dialog/modal-dialog.component.module.css rename to apps/web/src/common/components/modal-dialog/modal-dialog.component.module.css diff --git a/src/common/components/modal-dialog/modal-dialog.component.tsx b/apps/web/src/common/components/modal-dialog/modal-dialog.component.tsx similarity index 90% rename from src/common/components/modal-dialog/modal-dialog.component.tsx rename to apps/web/src/common/components/modal-dialog/modal-dialog.component.tsx index 52ec230a..76d342b0 100644 --- a/src/common/components/modal-dialog/modal-dialog.component.tsx +++ b/apps/web/src/common/components/modal-dialog/modal-dialog.component.tsx @@ -1,4 +1,4 @@ -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; import classes from './modal-dialog.component.module.css'; import React, { useEffect } from 'react'; import { XIconComponent } from '../icons'; diff --git a/src/common/components/shapes/use-shape-props.hook.ts b/apps/web/src/common/components/shapes/use-shape-props.hook.ts similarity index 98% rename from src/common/components/shapes/use-shape-props.hook.ts rename to apps/web/src/common/components/shapes/use-shape-props.hook.ts index 575441f0..d27ec67c 100644 --- a/src/common/components/shapes/use-shape-props.hook.ts +++ b/apps/web/src/common/components/shapes/use-shape-props.hook.ts @@ -1,4 +1,4 @@ -import { OtherProps } from '@/core/model'; +import { OtherProps } from '#core/model'; import { useMemo } from 'react'; import { DefaultStyleShape } from '../mock-components/front-components/shape.const'; diff --git a/src/common/components/shapes/use-shape-selection.hook.ts b/apps/web/src/common/components/shapes/use-shape-selection.hook.ts similarity index 78% rename from src/common/components/shapes/use-shape-selection.hook.ts rename to apps/web/src/common/components/shapes/use-shape-selection.hook.ts index 8ee9fcd3..02a9350e 100644 --- a/src/common/components/shapes/use-shape-selection.hook.ts +++ b/apps/web/src/common/components/shapes/use-shape-selection.hook.ts @@ -1,13 +1,13 @@ -import { ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { KonvaEventObject } from 'konva/lib/Node'; import { ShapeProps } from '../mock-components/shape.model'; -import { isUserDoingMultipleSelectionUsingCtrlOrCmdKey } from '@/common/utils/shapes'; +import { isUserDoingMultipleSelectionUsingCtrlOrCmdKey } from '#common/utils/shapes'; // In the future we will refactor and include below this folder all the shapes (front, container, ...) // #307 // https://github.com/Lemoncode/quickmock/issues/307 export const useShapeComponentSelection = ( - props: ShapeProps, + props: Omit, shapeType: ShapeType ) => { const { id, onSelected } = props; diff --git a/src/common/components/tooltip/index.ts b/apps/web/src/common/components/tooltip/index.ts similarity index 100% rename from src/common/components/tooltip/index.ts rename to apps/web/src/common/components/tooltip/index.ts diff --git a/src/common/components/tooltip/tooltip.component.module.css b/apps/web/src/common/components/tooltip/tooltip.component.module.css similarity index 100% rename from src/common/components/tooltip/tooltip.component.module.css rename to apps/web/src/common/components/tooltip/tooltip.component.module.css diff --git a/src/common/components/tooltip/tooltip.component.tsx b/apps/web/src/common/components/tooltip/tooltip.component.tsx similarity index 100% rename from src/common/components/tooltip/tooltip.component.tsx rename to apps/web/src/common/components/tooltip/tooltip.component.tsx diff --git a/src/common/export/index.ts b/apps/web/src/common/export/index.ts similarity index 100% rename from src/common/export/index.ts rename to apps/web/src/common/export/index.ts diff --git a/src/common/export/save-file-modern.ts b/apps/web/src/common/export/save-file-modern.ts similarity index 97% rename from src/common/export/save-file-modern.ts rename to apps/web/src/common/export/save-file-modern.ts index 2bd6b846..3218c5e1 100644 --- a/src/common/export/save-file-modern.ts +++ b/apps/web/src/common/export/save-file-modern.ts @@ -25,7 +25,7 @@ export const saveFileModern = async ( const writableStream = await newFileHandle.createWritable(); await writableStream.write(content); await writableStream.close(); - } catch (error) { + } catch { // Nothing to do here if user aborts filename // TODO: add later on more elaborated error handling // throw new Error('Error save file: ' + error); diff --git a/src/common/file-input/index.ts b/apps/web/src/common/file-input/index.ts similarity index 100% rename from src/common/file-input/index.ts rename to apps/web/src/common/file-input/index.ts diff --git a/src/common/file-input/open-file.ts b/apps/web/src/common/file-input/open-file.ts similarity index 100% rename from src/common/file-input/open-file.ts rename to apps/web/src/common/file-input/open-file.ts diff --git a/src/common/helpers/platform.helpers.ts b/apps/web/src/common/helpers/platform.helpers.ts similarity index 100% rename from src/common/helpers/platform.helpers.ts rename to apps/web/src/common/helpers/platform.helpers.ts diff --git a/src/common/undo-redo/history-manager.business.spec.ts b/apps/web/src/common/undo-redo/history-manager.business.spec.ts similarity index 100% rename from src/common/undo-redo/history-manager.business.spec.ts rename to apps/web/src/common/undo-redo/history-manager.business.spec.ts diff --git a/src/common/undo-redo/history-manager.business.ts b/apps/web/src/common/undo-redo/history-manager.business.ts similarity index 100% rename from src/common/undo-redo/history-manager.business.ts rename to apps/web/src/common/undo-redo/history-manager.business.ts diff --git a/src/common/undo-redo/history-manager.hook.ts b/apps/web/src/common/undo-redo/history-manager.hook.ts similarity index 100% rename from src/common/undo-redo/history-manager.hook.ts rename to apps/web/src/common/undo-redo/history-manager.hook.ts diff --git a/src/common/undo-redo/index.ts b/apps/web/src/common/undo-redo/index.ts similarity index 100% rename from src/common/undo-redo/index.ts rename to apps/web/src/common/undo-redo/index.ts diff --git a/src/common/utils/active-element-selector.utils.ts b/apps/web/src/common/utils/active-element-selector.utils.ts similarity index 100% rename from src/common/utils/active-element-selector.utils.ts rename to apps/web/src/common/utils/active-element-selector.utils.ts diff --git a/src/common/utils/calc-text-dimensions.ts b/apps/web/src/common/utils/calc-text-dimensions.ts similarity index 100% rename from src/common/utils/calc-text-dimensions.ts rename to apps/web/src/common/utils/calc-text-dimensions.ts diff --git a/src/common/utils/image.utils.ts b/apps/web/src/common/utils/image.utils.ts similarity index 95% rename from src/common/utils/image.utils.ts rename to apps/web/src/common/utils/image.utils.ts index 9044d60f..d969d474 100644 --- a/src/common/utils/image.utils.ts +++ b/apps/web/src/common/utils/image.utils.ts @@ -1,4 +1,4 @@ -import { ShapeModel, Size } from '@/core/model'; +import { ShapeModel, Size } from '#core/model'; export const adjustSizeKeepingAspectRatio = ( imageSize: Size, diff --git a/src/common/utils/shapes/index.ts b/apps/web/src/common/utils/shapes/index.ts similarity index 100% rename from src/common/utils/shapes/index.ts rename to apps/web/src/common/utils/shapes/index.ts diff --git a/src/common/utils/shapes/on-click-keyboard.ts b/apps/web/src/common/utils/shapes/on-click-keyboard.ts similarity index 100% rename from src/common/utils/shapes/on-click-keyboard.ts rename to apps/web/src/common/utils/shapes/on-click-keyboard.ts diff --git a/src/common/utils/shapes/shape-adjusted-dimensions.spec.ts b/apps/web/src/common/utils/shapes/shape-adjusted-dimensions.spec.ts similarity index 99% rename from src/common/utils/shapes/shape-adjusted-dimensions.spec.ts rename to apps/web/src/common/utils/shapes/shape-adjusted-dimensions.spec.ts index d869ba38..51eef452 100644 --- a/src/common/utils/shapes/shape-adjusted-dimensions.spec.ts +++ b/apps/web/src/common/utils/shapes/shape-adjusted-dimensions.spec.ts @@ -1,5 +1,5 @@ import { calculateShapeAdjustedDimensionsBasedOnStrokeHeight } from './shape-adjusted-dimensions'; -import { ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; const functionToTest = calculateShapeAdjustedDimensionsBasedOnStrokeHeight; diff --git a/src/common/utils/shapes/shape-adjusted-dimensions.ts b/apps/web/src/common/utils/shapes/shape-adjusted-dimensions.ts similarity index 97% rename from src/common/utils/shapes/shape-adjusted-dimensions.ts rename to apps/web/src/common/utils/shapes/shape-adjusted-dimensions.ts index ce491162..d770908c 100644 --- a/src/common/utils/shapes/shape-adjusted-dimensions.ts +++ b/apps/web/src/common/utils/shapes/shape-adjusted-dimensions.ts @@ -1,4 +1,4 @@ -import { ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { AdjustedShapeDimensions } from './shape-dimension-types'; export const calculateShapeAdjustedDimensionsBasedOnStrokeHeight = ( diff --git a/src/common/utils/shapes/shape-dimension-types.ts b/apps/web/src/common/utils/shapes/shape-dimension-types.ts similarity index 100% rename from src/common/utils/shapes/shape-dimension-types.ts rename to apps/web/src/common/utils/shapes/shape-dimension-types.ts diff --git a/src/common/utils/shapes/shape-restrictions.spec.ts b/apps/web/src/common/utils/shapes/shape-restrictions.spec.ts similarity index 95% rename from src/common/utils/shapes/shape-restrictions.spec.ts rename to apps/web/src/common/utils/shapes/shape-restrictions.spec.ts index ed4d2da9..6384e91d 100644 --- a/src/common/utils/shapes/shape-restrictions.spec.ts +++ b/apps/web/src/common/utils/shapes/shape-restrictions.spec.ts @@ -1,5 +1,5 @@ -import { fitSizeToShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; -import { ShapeSizeRestrictions } from '@/common/utils/shapes/shape-restrictions'; +import { fitSizeToShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; +import { ShapeSizeRestrictions } from '#common/utils/shapes/shape-restrictions'; //Mock data const restrictions: ShapeSizeRestrictions = { diff --git a/src/common/utils/shapes/shape-restrictions.ts b/apps/web/src/common/utils/shapes/shape-restrictions.ts similarity index 91% rename from src/common/utils/shapes/shape-restrictions.ts rename to apps/web/src/common/utils/shapes/shape-restrictions.ts index 026a5d6c..95bc306a 100644 --- a/src/common/utils/shapes/shape-restrictions.ts +++ b/apps/web/src/common/utils/shapes/shape-restrictions.ts @@ -1,4 +1,4 @@ -import { ShapeSizeRestrictions, Size } from '@/core/model'; +import { ShapeSizeRestrictions, Size } from '#core/model'; // TODO Add Unit tests, issue: #45 export const fitSizeToShapeSizeRestrictions = ( diff --git a/src/common/utils/svg.utils.ts b/apps/web/src/common/utils/svg.utils.ts similarity index 100% rename from src/common/utils/svg.utils.ts rename to apps/web/src/common/utils/svg.utils.ts diff --git a/apps/web/src/core/constants/env.constants.ts b/apps/web/src/core/constants/env.constants.ts new file mode 100644 index 00000000..345acfe5 --- /dev/null +++ b/apps/web/src/core/constants/env.constants.ts @@ -0,0 +1,3 @@ +export const ENV = { + IS_TEST_ENV: import.meta.env.MODE === 'test', +}; diff --git a/src/core/constants/index.ts b/apps/web/src/core/constants/index.ts similarity index 100% rename from src/core/constants/index.ts rename to apps/web/src/core/constants/index.ts diff --git a/src/core/local-disk/index.ts b/apps/web/src/core/local-disk/index.ts similarity index 100% rename from src/core/local-disk/index.ts rename to apps/web/src/core/local-disk/index.ts diff --git a/src/core/local-disk/local-disk.model.ts b/apps/web/src/core/local-disk/local-disk.model.ts similarity index 100% rename from src/core/local-disk/local-disk.model.ts rename to apps/web/src/core/local-disk/local-disk.model.ts diff --git a/src/core/local-disk/shapes-to-document.mapper.ts b/apps/web/src/core/local-disk/shapes-to-document.mapper.ts similarity index 94% rename from src/core/local-disk/shapes-to-document.mapper.ts rename to apps/web/src/core/local-disk/shapes-to-document.mapper.ts index ddddac05..59fbddc4 100644 --- a/src/core/local-disk/shapes-to-document.mapper.ts +++ b/apps/web/src/core/local-disk/shapes-to-document.mapper.ts @@ -1,11 +1,11 @@ -import { FONT_SIZE_VALUES } from '@/common/components/mock-components/front-components/shape.const'; +import { FONT_SIZE_VALUES } from '#common/components/mock-components/front-components/shape.const'; import { ShapeModel } from '../model'; import { + APP_CONSTANTS, createDefaultCanvasSize, DocumentModel, } from '../providers/canvas/canvas.model'; import { Page, QuickMockFileContract } from './local-disk.model'; -import { APP_CONSTANTS } from '../providers/canvas/canvas.model'; export const mapFromShapesArrayToQuickMockFileDocument = ( fullDocument: DocumentModel @@ -27,7 +27,7 @@ export const mapFromQuickMockFileDocumentToApplicationDocument = ( pages: AdaptMinor_0_2_Updates(fileDocument.pages), customColors: fileDocument.customColors || - new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + Array.from({ length: APP_CONSTANTS.COLOR_SLOTS }, () => null), size: fileDocument.size ?? createDefaultCanvasSize(), }; }; @@ -179,7 +179,7 @@ export const mapFromQuickMockFileDocumentToApplicationDocumentV0_1 = ( ], customColors: fileDocument.customColors || - new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + Array.from({ length: APP_CONSTANTS.COLOR_SLOTS }, () => null), size: fileDocument.size, }; }; diff --git a/src/core/local-disk/shapes-to.document.mapper.spec.ts b/apps/web/src/core/local-disk/shapes-to.document.mapper.spec.ts similarity index 84% rename from src/core/local-disk/shapes-to.document.mapper.spec.ts rename to apps/web/src/core/local-disk/shapes-to.document.mapper.spec.ts index 056c7156..c710c6d9 100644 --- a/src/core/local-disk/shapes-to.document.mapper.spec.ts +++ b/apps/web/src/core/local-disk/shapes-to.document.mapper.spec.ts @@ -1,15 +1,15 @@ -import { - mapFromShapesArrayToQuickMockFileDocument, - mapFromQuickMockFileDocumentToApplicationDocument, - mapFromQuickMockFileDocumentToApplicationDocumentV0_1, -} from './shapes-to-document.mapper'; import { ShapeModel } from '../model'; -import { QuickMockFileContract } from './local-disk.model'; import { + APP_CONSTANTS, createDefaultCanvasSize, DocumentModel, } from '../providers/canvas/canvas.model'; -import { APP_CONSTANTS } from '../providers/canvas/canvas.model'; +import { QuickMockFileContract } from './local-disk.model'; +import { + mapFromQuickMockFileDocumentToApplicationDocument, + mapFromQuickMockFileDocumentToApplicationDocumentV0_1, + mapFromShapesArrayToQuickMockFileDocument, +} from './shapes-to-document.mapper'; describe('shapes to document mapper', () => { describe('mapFromShapesArrayToQuickMockFileDocument', () => { @@ -37,7 +37,10 @@ describe('shapes to document mapper', () => { shapes: shapes, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -50,7 +53,10 @@ describe('shapes to document mapper', () => { shapes: shapes, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; // Act @@ -94,7 +100,10 @@ describe('shapes to document mapper', () => { shapes: shapes, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -107,7 +116,10 @@ describe('shapes to document mapper', () => { shapes: shapes, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -131,7 +143,10 @@ describe('shapes to document mapper', () => { shapes: [], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -144,7 +159,10 @@ describe('shapes to document mapper', () => { shapes: [], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; //act @@ -165,7 +183,10 @@ describe('shapes to document mapper', () => { shapes: [], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -178,7 +199,10 @@ describe('shapes to document mapper', () => { shapes: [], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -211,7 +235,10 @@ describe('shapes to document mapper', () => { ], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -235,7 +262,10 @@ describe('shapes to document mapper', () => { ], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -288,7 +318,10 @@ describe('shapes to document mapper', () => { shapes: shapesPageB, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -306,7 +339,10 @@ describe('shapes to document mapper', () => { shapes: shapesPageB, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -359,7 +395,10 @@ describe('shapes to document mapper', () => { shapes: shapesPageB, }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; @@ -372,7 +411,10 @@ describe('shapes to document mapper', () => { shapes: shapespageA.concat(shapesPageB), }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from( + { length: APP_CONSTANTS.COLOR_SLOTS }, + () => null + ), size: createDefaultCanvasSize(), }; diff --git a/src/core/local-disk/use-local-disk.hook.ts b/apps/web/src/core/local-disk/use-local-disk.hook.ts similarity index 95% rename from src/core/local-disk/use-local-disk.hook.ts rename to apps/web/src/core/local-disk/use-local-disk.hook.ts index b5acf272..43d411a6 100644 --- a/src/core/local-disk/use-local-disk.hook.ts +++ b/apps/web/src/core/local-disk/use-local-disk.hook.ts @@ -1,11 +1,11 @@ -import { saveFileModern } from '@/common/export'; +import { saveFileModern } from '#common/export'; import { useCanvasContext } from '../providers'; import { mapFromShapesArrayToQuickMockFileDocument, mapFromQuickMockFileDocumentToApplicationDocument, mapFromQuickMockFileDocumentToApplicationDocumentV0_1, } from './shapes-to-document.mapper'; -import { fileInput, OnFileSelectedCallback } from '@/common/file-input'; +import { fileInput, OnFileSelectedCallback } from '#common/file-input'; import { QuickMockFileContract } from './local-disk.model'; const DEFAULT_FILE_NAME = 'mymockui'; diff --git a/src/core/model/index.ts b/apps/web/src/core/model/index.ts similarity index 98% rename from src/core/model/index.ts rename to apps/web/src/core/model/index.ts index f2dbc4b4..79f931cb 100644 --- a/src/core/model/index.ts +++ b/apps/web/src/core/model/index.ts @@ -87,7 +87,8 @@ export type ShapeType = | 'textScribbled' | 'paragraphScribbled' | 'fabButton' - | 'fileTree'; + | 'fileTree' + | 'mouseCursor'; export const ShapeDisplayName: Record = { multiple: 'multiple', @@ -164,6 +165,7 @@ export const ShapeDisplayName: Record = { paragraphScribbled: 'Paragraph Scribbled', fabButton: 'Fab Button', fileTree: 'File Tree', + mouseCursor: 'Mouse Cursor', }; export type EditType = 'input' | 'textarea' | 'imageupload'; diff --git a/src/core/providers/canvas/canvas.business.spec.ts b/apps/web/src/core/providers/canvas/canvas.business.spec.ts similarity index 98% rename from src/core/providers/canvas/canvas.business.spec.ts rename to apps/web/src/core/providers/canvas/canvas.business.spec.ts index 9ed5e5de..129c1535 100644 --- a/src/core/providers/canvas/canvas.business.spec.ts +++ b/apps/web/src/core/providers/canvas/canvas.business.spec.ts @@ -1,6 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { ShapeModel } from '#core/model'; import { removeShapesFromList } from './canvas.business'; -import { ShapeModel } from '@/core/model'; describe('canvas.business', () => { describe('removeShapeFromList', () => { diff --git a/src/core/providers/canvas/canvas.business.ts b/apps/web/src/core/providers/canvas/canvas.business.ts similarity index 93% rename from src/core/providers/canvas/canvas.business.ts rename to apps/web/src/core/providers/canvas/canvas.business.ts index be5a6b9e..0affa7ac 100644 --- a/src/core/providers/canvas/canvas.business.ts +++ b/apps/web/src/core/providers/canvas/canvas.business.ts @@ -1,4 +1,4 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { DocumentModel } from './canvas.model'; export const removeShapesFromList = ( diff --git a/src/core/providers/canvas/canvas.context.tsx b/apps/web/src/core/providers/canvas/canvas.context.tsx similarity index 100% rename from src/core/providers/canvas/canvas.context.tsx rename to apps/web/src/core/providers/canvas/canvas.context.tsx diff --git a/src/core/providers/canvas/canvas.hook.tsx b/apps/web/src/core/providers/canvas/canvas.hook.tsx similarity index 100% rename from src/core/providers/canvas/canvas.hook.tsx rename to apps/web/src/core/providers/canvas/canvas.hook.tsx diff --git a/src/core/providers/canvas/canvas.model.ts b/apps/web/src/core/providers/canvas/canvas.model.ts similarity index 97% rename from src/core/providers/canvas/canvas.model.ts rename to apps/web/src/core/providers/canvas/canvas.model.ts index 01bdf0d2..95117fce 100644 --- a/src/core/providers/canvas/canvas.model.ts +++ b/apps/web/src/core/providers/canvas/canvas.model.ts @@ -5,7 +5,7 @@ import { ShapeRefs, ShapeType, Size, -} from '@/core/model'; +} from '#core/model'; import Konva from 'konva'; import { Node, NodeConfig } from 'konva/lib/Node'; @@ -46,7 +46,7 @@ export const createDefaultDocumentModel = (): DocumentModel => ({ shapes: [], }, ], - customColors: new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null), + customColors: Array.from({ length: APP_CONSTANTS.COLOR_SLOTS }, () => null), size: createDefaultCanvasSize(), }); diff --git a/src/core/providers/canvas/canvas.provider.tsx b/apps/web/src/core/providers/canvas/canvas.provider.tsx similarity index 96% rename from src/core/providers/canvas/canvas.provider.tsx rename to apps/web/src/core/providers/canvas/canvas.provider.tsx index f47226d3..07871155 100644 --- a/src/core/providers/canvas/canvas.provider.tsx +++ b/apps/web/src/core/providers/canvas/canvas.provider.tsx @@ -1,21 +1,22 @@ +import { useHistoryManager } from '#common/undo-redo'; +import { Coord, OtherProps, ShapeModel, ShapeType, Size } from '#core/model'; +import { createShape } from '#pods/canvas/model'; +import { produce } from 'immer'; +import Konva from 'konva'; import React from 'react'; -import { Coord, OtherProps, ShapeModel, ShapeType, Size } from '@/core/model'; +import { v4 as uuidv4 } from 'uuid'; +import { isPageIndexValid, removeShapesFromList } from './canvas.business'; import { CanvasContext } from './canvas.context'; -import { useSelection } from './use-selection.hook'; -import { createShape } from '@/pods/canvas/model'; -import { useHistoryManager } from '@/common/undo-redo'; import { useStateWithInterceptor } from './canvas.hook'; import { + APP_CONSTANTS, createDefaultCanvasSize, createDefaultDocumentModel, DocumentModel, } from './canvas.model'; -import { v4 as uuidv4 } from 'uuid'; -import Konva from 'konva'; -import { isPageIndexValid, removeShapesFromList } from './canvas.business'; import { useClipboard } from './use-clipboard.hook'; -import { produce } from 'immer'; -import { APP_CONSTANTS } from './canvas.model'; +import { useSelection } from './use-selection.hook'; + interface Props { children: React.ReactNode; } @@ -173,7 +174,9 @@ export const CanvasProvider: React.FC = props => { }; const pasteShapes = (shapes: ShapeModel[]) => { - loadSampleDocument && setLoadSampleDocument(false); + if (loadSampleDocument) { + setLoadSampleDocument(false); + } const newShapes: ShapeModel[] = shapes.map(shape => { shape.id = uuidv4(); return shape; @@ -246,7 +249,9 @@ export const CanvasProvider: React.FC = props => { y: number, otherProps?: OtherProps ) => { - loadSampleDocument && setLoadSampleDocument(false); + if (loadSampleDocument) { + setLoadSampleDocument(false); + } if (!isPageIndexValid(document)) { return ''; } @@ -331,7 +336,7 @@ export const CanvasProvider: React.FC = props => { const loadDocument = (document: DocumentModel) => { setDocumentAndMarkDirtyState(document, false); - loadSampleDocument && setLoadSampleDocument(false); + if (loadSampleDocument) setLoadSampleDocument(false); setDocument(document); setHowManyLoadedDocuments(numberOfDocuments => numberOfDocuments + 1); setCustomColors(document.customColors); @@ -339,7 +344,7 @@ export const CanvasProvider: React.FC = props => { }; const [customColors, setCustomColors] = React.useState<(string | null)[]>( - new Array(APP_CONSTANTS.COLOR_SLOTS).fill(null) + Array.from({ length: APP_CONSTANTS.COLOR_SLOTS }, () => null) ); const updateColorSlot = (color: string, index: number) => { diff --git a/src/core/providers/canvas/index.ts b/apps/web/src/core/providers/canvas/index.ts similarity index 100% rename from src/core/providers/canvas/index.ts rename to apps/web/src/core/providers/canvas/index.ts diff --git a/src/core/providers/canvas/use-clipboard.hook.tsx b/apps/web/src/core/providers/canvas/use-clipboard.hook.tsx similarity index 97% rename from src/core/providers/canvas/use-clipboard.hook.tsx rename to apps/web/src/core/providers/canvas/use-clipboard.hook.tsx index fa193712..771fb18a 100644 --- a/src/core/providers/canvas/use-clipboard.hook.tsx +++ b/apps/web/src/core/providers/canvas/use-clipboard.hook.tsx @@ -1,5 +1,5 @@ import { useMemo, useRef, useState } from 'react'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { adjustShapesPosition, cloneShapes, diff --git a/src/core/providers/canvas/use-selection.hook.ts b/apps/web/src/core/providers/canvas/use-selection.hook.ts similarity index 99% rename from src/core/providers/canvas/use-selection.hook.ts rename to apps/web/src/core/providers/canvas/use-selection.hook.ts index 995a5a72..72bc89de 100644 --- a/src/core/providers/canvas/use-selection.hook.ts +++ b/apps/web/src/core/providers/canvas/use-selection.hook.ts @@ -1,6 +1,6 @@ import { useEffect, useRef, useState } from 'react'; import Konva from 'konva'; -import { OtherProps, ShapeModel, ShapeRefs, ShapeType } from '@/core/model'; +import { OtherProps, ShapeModel, ShapeRefs, ShapeType } from '#core/model'; import { DocumentModel, SelectionInfo, ZIndexAction } from './canvas.model'; import { performZIndexAction } from './zindex.util'; import { getActivePageShapes, isPageIndexValid } from './canvas.business'; diff --git a/src/core/providers/canvas/zindex.util.spec.ts b/apps/web/src/core/providers/canvas/zindex.util.spec.ts similarity index 99% rename from src/core/providers/canvas/zindex.util.spec.ts rename to apps/web/src/core/providers/canvas/zindex.util.spec.ts index 6d9d2120..5364e39a 100644 --- a/src/core/providers/canvas/zindex.util.spec.ts +++ b/apps/web/src/core/providers/canvas/zindex.util.spec.ts @@ -1,4 +1,4 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { moveZIndexDownOneLevel, moveZIndexToBottom, diff --git a/src/core/providers/canvas/zindex.util.ts b/apps/web/src/core/providers/canvas/zindex.util.ts similarity index 98% rename from src/core/providers/canvas/zindex.util.ts rename to apps/web/src/core/providers/canvas/zindex.util.ts index b2c32b52..f2d01399 100644 --- a/src/core/providers/canvas/zindex.util.ts +++ b/apps/web/src/core/providers/canvas/zindex.util.ts @@ -1,4 +1,4 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ZIndexAction } from './canvas.model'; export const moveZIndexToTop = ( diff --git a/src/core/providers/index.ts b/apps/web/src/core/providers/index.ts similarity index 100% rename from src/core/providers/index.ts rename to apps/web/src/core/providers/index.ts diff --git a/src/core/providers/interaction-mode/index.ts b/apps/web/src/core/providers/interaction-mode/index.ts similarity index 100% rename from src/core/providers/interaction-mode/index.ts rename to apps/web/src/core/providers/interaction-mode/index.ts diff --git a/src/core/providers/interaction-mode/interaction-mode.context.tsx b/apps/web/src/core/providers/interaction-mode/interaction-mode.context.tsx similarity index 100% rename from src/core/providers/interaction-mode/interaction-mode.context.tsx rename to apps/web/src/core/providers/interaction-mode/interaction-mode.context.tsx diff --git a/src/core/providers/interaction-mode/interaction-mode.model.ts b/apps/web/src/core/providers/interaction-mode/interaction-mode.model.ts similarity index 100% rename from src/core/providers/interaction-mode/interaction-mode.model.ts rename to apps/web/src/core/providers/interaction-mode/interaction-mode.model.ts diff --git a/src/core/providers/interaction-mode/interaction-mode.provider.tsx b/apps/web/src/core/providers/interaction-mode/interaction-mode.provider.tsx similarity index 97% rename from src/core/providers/interaction-mode/interaction-mode.provider.tsx rename to apps/web/src/core/providers/interaction-mode/interaction-mode.provider.tsx index 0e98afaa..d9a54a66 100644 --- a/src/core/providers/interaction-mode/interaction-mode.provider.tsx +++ b/apps/web/src/core/providers/interaction-mode/interaction-mode.provider.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { InteractionMode } from './interaction-mode.model'; +import { useCanvasContext } from '../canvas/canvas.provider'; import { InteractionModeContext } from './interaction-mode.context'; -import { useCanvasContext } from '../canvas'; +import { InteractionMode } from './interaction-mode.model'; interface Props { children: React.ReactNode; diff --git a/src/core/providers/model-dialog-providers/index.ts b/apps/web/src/core/providers/model-dialog-providers/index.ts similarity index 100% rename from src/core/providers/model-dialog-providers/index.ts rename to apps/web/src/core/providers/model-dialog-providers/index.ts diff --git a/src/core/providers/model-dialog-providers/model-dialog.context.ts b/apps/web/src/core/providers/model-dialog-providers/model-dialog.context.ts similarity index 100% rename from src/core/providers/model-dialog-providers/model-dialog.context.ts rename to apps/web/src/core/providers/model-dialog-providers/model-dialog.context.ts diff --git a/src/core/providers/model-dialog-providers/model-dialog.model.ts b/apps/web/src/core/providers/model-dialog-providers/model-dialog.model.ts similarity index 100% rename from src/core/providers/model-dialog-providers/model-dialog.model.ts rename to apps/web/src/core/providers/model-dialog-providers/model-dialog.model.ts diff --git a/src/core/providers/model-dialog-providers/model-dialog.provider.tsx b/apps/web/src/core/providers/model-dialog-providers/model-dialog.provider.tsx similarity index 100% rename from src/core/providers/model-dialog-providers/model-dialog.provider.tsx rename to apps/web/src/core/providers/model-dialog-providers/model-dialog.provider.tsx diff --git a/src/layout/main.layout.module.css b/apps/web/src/layout/main.layout.module.css similarity index 100% rename from src/layout/main.layout.module.css rename to apps/web/src/layout/main.layout.module.css diff --git a/src/layout/main.layout.tsx b/apps/web/src/layout/main.layout.tsx similarity index 87% rename from src/layout/main.layout.tsx rename to apps/web/src/layout/main.layout.tsx index fbdcd402..aa738249 100644 --- a/src/layout/main.layout.tsx +++ b/apps/web/src/layout/main.layout.tsx @@ -1,4 +1,4 @@ -import { useInteractionModeContext } from '@/core/providers'; +import { useInteractionModeContext } from '#core/providers'; import classes from './main.layout.module.css'; interface Props { diff --git a/src/main.css b/apps/web/src/main.css similarity index 100% rename from src/main.css rename to apps/web/src/main.css diff --git a/src/main.tsx b/apps/web/src/main.tsx similarity index 100% rename from src/main.tsx rename to apps/web/src/main.tsx diff --git a/src/normalize.css b/apps/web/src/normalize.css similarity index 100% rename from src/normalize.css rename to apps/web/src/normalize.css diff --git a/src/pods/about/about.pod.module.css b/apps/web/src/pods/about/about.pod.module.css similarity index 100% rename from src/pods/about/about.pod.module.css rename to apps/web/src/pods/about/about.pod.module.css diff --git a/src/pods/about/about.pod.tsx b/apps/web/src/pods/about/about.pod.tsx similarity index 89% rename from src/pods/about/about.pod.tsx rename to apps/web/src/pods/about/about.pod.tsx index 702d43aa..c682165a 100644 --- a/src/pods/about/about.pod.tsx +++ b/apps/web/src/pods/about/about.pod.tsx @@ -1,6 +1,6 @@ /* import { MemberListComponent } from './components/members.component'; import { memberList } from './members'; */ -import { QuickmockLogoComponent } from '@/common/components/icons'; +import { QuickmockLogoComponent } from '#common/components/icons'; import classes from './about.pod.module.css'; import { DevelopmentTeamComponent } from './components/developmentTeam.component'; diff --git a/src/pods/about/components/developmentTeam.component.module.css b/apps/web/src/pods/about/components/developmentTeam.component.module.css similarity index 100% rename from src/pods/about/components/developmentTeam.component.module.css rename to apps/web/src/pods/about/components/developmentTeam.component.module.css diff --git a/src/pods/about/components/developmentTeam.component.tsx b/apps/web/src/pods/about/components/developmentTeam.component.tsx similarity index 100% rename from src/pods/about/components/developmentTeam.component.tsx rename to apps/web/src/pods/about/components/developmentTeam.component.tsx diff --git a/src/pods/about/components/members.component.module.css b/apps/web/src/pods/about/components/members.component.module.css similarity index 100% rename from src/pods/about/components/members.component.module.css rename to apps/web/src/pods/about/components/members.component.module.css diff --git a/src/pods/about/components/members.component.tsx b/apps/web/src/pods/about/components/members.component.tsx similarity index 89% rename from src/pods/about/components/members.component.tsx rename to apps/web/src/pods/about/components/members.component.tsx index bd256006..f383b05d 100644 --- a/src/pods/about/components/members.component.tsx +++ b/apps/web/src/pods/about/components/members.component.tsx @@ -1,7 +1,7 @@ import React from 'react'; import classes from './members.component.module.css'; import { Member } from '../members'; -import { LinkedinIcon } from '@/common/components/icons/linkedin-icon.component'; +import { LinkedinIcon } from '#common/components/icons/linkedin-icon.component'; interface Props { member: Member; diff --git a/src/pods/about/index.ts b/apps/web/src/pods/about/index.ts similarity index 100% rename from src/pods/about/index.ts rename to apps/web/src/pods/about/index.ts diff --git a/src/pods/about/members.ts b/apps/web/src/pods/about/members.ts similarity index 100% rename from src/pods/about/members.ts rename to apps/web/src/pods/about/members.ts diff --git a/src/pods/canvas/canvas.grid.tsx b/apps/web/src/pods/canvas/canvas.grid.tsx similarity index 97% rename from src/pods/canvas/canvas.grid.tsx rename to apps/web/src/pods/canvas/canvas.grid.tsx index 8172f153..563ac94f 100644 --- a/src/pods/canvas/canvas.grid.tsx +++ b/apps/web/src/pods/canvas/canvas.grid.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react'; import { Layer, Line } from 'react-konva'; -import { Size } from '@/core/model'; +import { Size } from '#core/model'; const gridSize = 40; // Default grid size (no scaling) diff --git a/src/pods/canvas/canvas.pod.module.css b/apps/web/src/pods/canvas/canvas.pod.module.css similarity index 100% rename from src/pods/canvas/canvas.pod.module.css rename to apps/web/src/pods/canvas/canvas.pod.module.css diff --git a/src/pods/canvas/canvas.pod.tsx b/apps/web/src/pods/canvas/canvas.pod.tsx similarity index 97% rename from src/pods/canvas/canvas.pod.tsx rename to apps/web/src/pods/canvas/canvas.pod.tsx index 9efb9467..f922cbc7 100644 --- a/src/pods/canvas/canvas.pod.tsx +++ b/apps/web/src/pods/canvas/canvas.pod.tsx @@ -1,16 +1,16 @@ import React, { createRef, useEffect, useMemo, useRef, useState } from 'react'; import Konva from 'konva'; -import { useCanvasContext, useInteractionModeContext } from '@/core/providers'; +import { useCanvasContext, useInteractionModeContext } from '#core/providers'; import { Layer, Line, Rect, Stage, Transformer } from 'react-konva'; import { useTransform } from './use-transform.hook'; import { renderShapeComponent } from './shape-renderer'; import { useDropShape } from './use-drop-shape.hook'; import { useMonitorShape } from './use-monitor-shape.hook'; import classes from './canvas.pod.module.css'; -import { EditableComponent } from '@/common/components/inline-edit'; +import { EditableComponent } from '#common/components/inline-edit'; import { useSnapIn } from './use-snapin.hook'; -import { ShapeType } from '@/core/model'; -import { ENV } from '@/core/constants'; +import { ShapeType } from '#core/model'; +import { ENV } from '#core/constants'; import { useDropImageFromDesktop } from './use-drop-image-from-desktop'; import { useKeyboardDisplacement } from './use-keyboard-displacement'; import { useMultipleSelectionShapeHook } from './use-multiple-selection-shape.hook'; diff --git a/src/pods/canvas/canvas.util.spec.ts b/apps/web/src/pods/canvas/canvas.util.spec.ts similarity index 100% rename from src/pods/canvas/canvas.util.spec.ts rename to apps/web/src/pods/canvas/canvas.util.spec.ts diff --git a/src/pods/canvas/canvas.util.ts b/apps/web/src/pods/canvas/canvas.util.ts similarity index 98% rename from src/pods/canvas/canvas.util.ts rename to apps/web/src/pods/canvas/canvas.util.ts index 46d7c5aa..84e22211 100644 --- a/src/pods/canvas/canvas.util.ts +++ b/apps/web/src/pods/canvas/canvas.util.ts @@ -1,4 +1,4 @@ -import { Coord } from '@/core/model'; +import { Coord } from '#core/model'; import { DragLocationHistory } from '@atlaskit/pragmatic-drag-and-drop/dist/types/internal-types'; import { Stage } from 'konva/lib/Stage'; diff --git a/src/pods/canvas/clipboard.utils.ts b/apps/web/src/pods/canvas/clipboard.utils.ts similarity index 98% rename from src/pods/canvas/clipboard.utils.ts rename to apps/web/src/pods/canvas/clipboard.utils.ts index c6879698..50ad0608 100644 --- a/src/pods/canvas/clipboard.utils.ts +++ b/apps/web/src/pods/canvas/clipboard.utils.ts @@ -1,5 +1,5 @@ import cloneDeep from 'lodash.clonedeep'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import invariant from 'tiny-invariant'; interface Displacement { x: number; diff --git a/src/pods/canvas/model/index.ts b/apps/web/src/pods/canvas/model/index.ts similarity index 100% rename from src/pods/canvas/model/index.ts rename to apps/web/src/pods/canvas/model/index.ts diff --git a/src/pods/canvas/model/inline-editable.model.ts b/apps/web/src/pods/canvas/model/inline-editable.model.ts similarity index 98% rename from src/pods/canvas/model/inline-editable.model.ts rename to apps/web/src/pods/canvas/model/inline-editable.model.ts index cbdf7709..a943d574 100644 --- a/src/pods/canvas/model/inline-editable.model.ts +++ b/apps/web/src/pods/canvas/model/inline-editable.model.ts @@ -1,6 +1,6 @@ // src/common/shape-utils/inlineEditableShapes.ts -import { EditType, ShapeType } from '@/core/model'; +import { EditType, ShapeType } from '#core/model'; // Define which shapes allow inline editing const inlineEditableShapes = new Set([ diff --git a/src/pods/canvas/model/shape-other-props.utils.ts b/apps/web/src/pods/canvas/model/shape-other-props.utils.ts similarity index 96% rename from src/pods/canvas/model/shape-other-props.utils.ts rename to apps/web/src/pods/canvas/model/shape-other-props.utils.ts index 8ad7a6d3..89757454 100644 --- a/src/pods/canvas/model/shape-other-props.utils.ts +++ b/apps/web/src/pods/canvas/model/shape-other-props.utils.ts @@ -4,8 +4,8 @@ import { FONT_SIZE_VALUES, LINK_SHAPE, LOW_WIREFRAME_SHAPE, -} from '@/common/components/mock-components/front-components/shape.const'; -import { ShapeType, OtherProps, SizeConfig } from '@/core/model'; +} from '#common/components/mock-components/front-components/shape.const'; +import { ShapeType, OtherProps, SizeConfig } from '#core/model'; export const generateDefaultOtherProps = ( shapeType: ShapeType @@ -48,6 +48,8 @@ export const generateDefaultOtherProps = ( strokeStyle: [], borderRadius: `${BASIC_SHAPE.DEFAULT_CORNER_RADIUS}`, activeElement: 0, + fontSize: FONT_SIZE_VALUES.NORMALTEXT, + fontVariant: `${INPUT_SHAPE.DEFAULT_FONT_VARIANT}`, }; case 'input-stepper': return { @@ -266,6 +268,11 @@ export const generateDefaultOtherProps = ( iconSize: 'M', stroke: BASIC_SHAPE.DEFAULT_STROKE_COLOR, }; + case 'mouseCursor': + return { + stroke: BASIC_SHAPE.DEFAULT_STROKE_COLOR, + iconSize: 'M', + }; case 'image': return { imageSrc: '', diff --git a/apps/web/src/pods/canvas/model/shape-size.mapper.ts b/apps/web/src/pods/canvas/model/shape-size.mapper.ts new file mode 100644 index 00000000..215d351c --- /dev/null +++ b/apps/web/src/pods/canvas/model/shape-size.mapper.ts @@ -0,0 +1,172 @@ +// src/common/shape-utils/shapeSizeMap.ts +import { ShapeSizeRestrictions, ShapeType } from '#core/model'; +// front-components +import { getButtonShapeSizeRestrictions } from '#common/components/mock-components/front-components/button-shape.restrictions'; +import { getCheckboxShapeSizeRestrictions } from '#common/components/mock-components/front-components/checkbox-shape.restrictions'; +import { getChipShapeSizeRestrictions } from '#common/components/mock-components/front-components/chip-shape.restrictions'; +import { getComboBoxShapeSizeRestrictions } from '#common/components/mock-components/front-components/combobox-shape.restrictions'; +import { getDatepickerInputShapeSizeRestrictions } from '#common/components/mock-components/front-components/datepickerinput-shape.restrictions'; +import { getHorizontalScrollBarShapeSizeRestrictions } from '#common/components/mock-components/front-components/horizontalscrollbar-shape.restrictions'; +import { getIconShapeSizeRestrictions } from '#common/components/mock-components/front-components/icon/icon-shape.restrictions'; +import { getInputShapeSizeRestrictions } from '#common/components/mock-components/front-components/input-shape.restrictions'; +import { getLabelSizeRestrictions } from '#common/components/mock-components/front-components/label-shape.restrictions'; +import { getListboxShapeSizeRestrictions } from '#common/components/mock-components/front-components/listbox/listbox-shape.restrictions'; +import { getProgressBarShapeSizeRestrictions } from '#common/components/mock-components/front-components/progressbar-shape.restrictions'; +import { getRadioButtonShapeSizeRestrictions } from '#common/components/mock-components/front-components/radiobutton-shape.restrictions'; +import { getSliderShapeSizeRestrictions } from '#common/components/mock-components/front-components/slider-shape.restrictions'; +import { getTextAreaSizeRestrictions } from '#common/components/mock-components/front-components/textarea-shape.restrictions'; +import { getTimepickerInputShapeSizeRestrictions } from '#common/components/mock-components/front-components/timepickerinput/timepickerinput-shape.restrictions'; +import { getToggleSwitchShapeSizeRestrictions } from '#common/components/mock-components/front-components/toggleswitch-shape.restrictions'; +import { getTooltipShapeSizeRestrictions } from '#common/components/mock-components/front-components/tooltip-shape.restrictions'; +import { getVerticalScrollBarShapeSizeRestrictions } from '#common/components/mock-components/front-components/verticalscrollbar-shape.restrictions'; +// front-containers +import { getBrowserWindowShapeSizeRestrictions } from '#common/components/mock-components/front-containers/browserwindow-shape.restrictions'; +import { getMobilePhoneShapeSizeRestrictions } from '#common/components/mock-components/front-containers/mobilephone-shape.restrictions'; +import { getModalDialogShapeSizeRestrictions } from '#common/components/mock-components/front-containers/modal-dialog-shape.restrictions'; +import { getTabletShapeSizeRestrictions } from '#common/components/mock-components/front-containers/tablet-shape.restrictions'; +// front-basic-shapes +import { getCilinderShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/cilinder-basic-shape.restrictions'; +import { getCircleShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/circle-basic-shape.restrictions'; +import { getDiamondShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/diamond-shape.restrictions'; +import { getHorizontalLineShapeRestrictions } from '#common/components/mock-components/front-basic-shapes/horizontal-line-basic-shape.restrictions'; +import { getImageShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/image-shape/image-shape.restrictions'; +import { getLargeArrowShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/large-arrow-shape.restrictions'; +import { getModalCoverShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/modal-cover-shape.restrictions'; +import { getMouseCursorShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/mouse-cursor/mouse-cursor-basic-shape.restrictions'; +import { getPostItShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/postit-basic-shape.restrictions'; +import { getRectangleShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/rectangle-basic-shape.restrictions'; +import { getStarShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/star-shape.restrictions'; +import { getTriangleShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/triangle-basic-shape.restrictions'; +import { getVerticalLineShapeRestrictions } from '#common/components/mock-components/front-basic-shapes/vertical-line-basic-shape.restrictions'; +// front-rich-components +import { getAccordionShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/accordion/accordion.restrictions'; +import { getAppBarShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/appBar.restrictions'; +import { getAudioPlayerShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/audio-player.restrictions'; +import { getBarChartShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/bar-chart.restrictions'; +import { getBreadcrumbShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/breadcrumb/breadcrumb.restrictions'; +import { getButtonBarShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/buttonBar/buttonBar.restrictions'; +import { getCalendarShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/calendar/calendar.restrictions'; +import { getFabButtonShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/fab-button/fab-button.restrictions'; +import { getFileTreeShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/file-tree/file-tree.restrictions'; +import { getGaugeShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/gauge/gauge.restrictions'; +import { getHorizontalMenuShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/horizontal-menu/horizontal-menu.restrictions'; +import { getInputStepperShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/input-stepper.restrictions'; +import { getLineChartShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/line-chart.restrictions'; +import { getLoadIndicatorSizeRestrictions } from '#common/components/mock-components/front-rich-components/loading-indicator.restrictions'; +import { getMapChartShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/map-chart.restrictions'; +import { getModalShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/modal/modal.restrictions'; +import { getPieChartShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/pie-chart.restrictions'; +import { getTableSizeRestrictions } from '#common/components/mock-components/front-rich-components/table/table.restrictions'; +import { getTabsBarShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/tabsbar/tabsbar-shape.restrictions'; +import { getToggleLightDarkShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/togglelightdark-shape.restrictions'; +import { getVerticalMenuShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/vertical-menu/vertical-menu.restrictions'; +import { getVideoPlayerShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/video-player.restrictions'; +import { getVideoconferenceShapeSizeRestrictions } from '#common/components/mock-components/front-rich-components/videoconference.restrictions'; +// front-text-components +import { getHeading1SizeRestrictions } from '#common/components/mock-components/front-text-components/heading1-text-shape.restrictions'; +import { getHeading2SizeRestrictions } from '#common/components/mock-components/front-text-components/heading2-text-shape.restrictions'; +import { getHeading3SizeRestrictions } from '#common/components/mock-components/front-text-components/heading3-text-shape.restrictions'; +import { getLinkSizeRestrictions } from '#common/components/mock-components/front-text-components/link-text-shape.restrictions'; +import { getNormaltextSizeRestrictions } from '#common/components/mock-components/front-text-components/normaltext-shape.restrictions'; +import { getParagraphSizeRestrictions } from '#common/components/mock-components/front-text-components/paragraph-text-shape.restrictions'; +import { getRichTextSizeRestrictions } from '#common/components/mock-components/front-text-components/rich-text/rich-text-shape.restrictions'; +import { getSmalltextSizeRestrictions } from '#common/components/mock-components/front-text-components/smalltext-shape.restrictions'; +// front-low-wireframes +import { getCircleLowShapeSizeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/circle-low-shape.restrictions'; +import { getEllipseLowShapeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/ellipse-low-shape.restrictions'; +import { getHorizontalLineLowShapeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/horizontal-line-low-shape.restrictions'; +import { getImagePlaceholderShapeSizeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/image-placeholder-shape.restrictions'; +import { getParagraphScribbledShapeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape/paragraph-scribbled-shape.restrictions'; +import { getRectangleLowShapeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/rectangle-low-shape.restrictions'; +import { getTextScribbledShapeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled-shape.restrictions'; +import { getVerticalLineLowShapeRestrictions } from '#common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape.restrictions'; + +const getMultipleNodeSizeRestrictions = (): ShapeSizeRestrictions => ({ + minWidth: 0, + minHeight: 0, + maxWidth: -1, + maxHeight: -1, + defaultWidth: 0, + defaultHeight: 0, +}); + +// Map associating each ShapeType with its size restriction function +const shapeSizeMap: Record ShapeSizeRestrictions> = { + multiple: getMultipleNodeSizeRestrictions, + label: getLabelSizeRestrictions, + combobox: getComboBoxShapeSizeRestrictions, + input: getInputShapeSizeRestrictions, + toggleswitch: getToggleSwitchShapeSizeRestrictions, + toggleLightDark: getToggleLightDarkShapeSizeRestrictions, + textarea: getTextAreaSizeRestrictions, + datepickerinput: getDatepickerInputShapeSizeRestrictions, + button: getButtonShapeSizeRestrictions, + progressbar: getProgressBarShapeSizeRestrictions, + listbox: getListboxShapeSizeRestrictions, + browser: getBrowserWindowShapeSizeRestrictions, + mobilePhone: getMobilePhoneShapeSizeRestrictions, + tablet: getTabletShapeSizeRestrictions, + modalDialog: getModalDialogShapeSizeRestrictions, + timepickerinput: getTimepickerInputShapeSizeRestrictions, + rectangle: getRectangleShapeSizeRestrictions, + videoPlayer: getVideoPlayerShapeSizeRestrictions, + diamond: getDiamondShapeSizeRestrictions, + horizontalLine: getHorizontalLineShapeRestrictions, + verticalLine: getVerticalLineShapeRestrictions, + accordion: getAccordionShapeSizeRestrictions, + triangle: getTriangleShapeSizeRestrictions, + postit: getPostItShapeSizeRestrictions, + pie: getPieChartShapeSizeRestrictions, + 'horizontal-menu': getHorizontalMenuShapeSizeRestrictions, + 'input-stepper': getInputStepperShapeSizeRestrictions, + 'vertical-menu': getVerticalMenuShapeSizeRestrictions, + breadcrumb: getBreadcrumbShapeSizeRestrictions, + map: getMapChartShapeSizeRestrictions, + circle: getCircleShapeSizeRestrictions, + star: getStarShapeSizeRestrictions, + linechart: getLineChartShapeSizeRestrictions, + heading1: getHeading1SizeRestrictions, + heading2: getHeading2SizeRestrictions, + heading3: getHeading3SizeRestrictions, + normaltext: getNormaltextSizeRestrictions, + smalltext: getSmalltextSizeRestrictions, + paragraph: getParagraphSizeRestrictions, + richtext: getRichTextSizeRestrictions, + link: getLinkSizeRestrictions, + largeArrow: getLargeArrowShapeSizeRestrictions, + radiobutton: getRadioButtonShapeSizeRestrictions, + checkbox: getCheckboxShapeSizeRestrictions, + icon: getIconShapeSizeRestrictions, + bar: getBarChartShapeSizeRestrictions, + image: getImageShapeSizeRestrictions, + table: getTableSizeRestrictions, + horizontalScrollBar: getHorizontalScrollBarShapeSizeRestrictions, + calendar: getCalendarShapeSizeRestrictions, + verticalScrollBar: getVerticalScrollBarShapeSizeRestrictions, + modal: getModalShapeSizeRestrictions, + modalCover: getModalCoverShapeSizeRestrictions, + tabsBar: getTabsBarShapeSizeRestrictions, + appBar: getAppBarShapeSizeRestrictions, + buttonBar: getButtonBarShapeSizeRestrictions, + tooltip: getTooltipShapeSizeRestrictions, + slider: getSliderShapeSizeRestrictions, + audioPlayer: getAudioPlayerShapeSizeRestrictions, + cilinder: getCilinderShapeSizeRestrictions, + 'loading-indicator': getLoadIndicatorSizeRestrictions, + videoconference: getVideoconferenceShapeSizeRestrictions, + gauge: getGaugeShapeSizeRestrictions, + imagePlaceholder: getImagePlaceholderShapeSizeRestrictions, + chip: getChipShapeSizeRestrictions, + horizontalLineLow: getHorizontalLineLowShapeRestrictions, + verticalLineLow: getVerticalLineLowShapeRestrictions, + ellipseLow: getEllipseLowShapeRestrictions, + rectangleLow: getRectangleLowShapeRestrictions, + circleLow: getCircleLowShapeSizeRestrictions, + textScribbled: getTextScribbledShapeRestrictions, + fabButton: getFabButtonShapeSizeRestrictions, + fileTree: getFileTreeShapeSizeRestrictions, + paragraphScribbled: getParagraphScribbledShapeRestrictions, + mouseCursor: getMouseCursorShapeSizeRestrictions, +}; + +export default shapeSizeMap; diff --git a/src/pods/canvas/model/shape-size.utils.ts b/apps/web/src/pods/canvas/model/shape-size.utils.ts similarity index 93% rename from src/pods/canvas/model/shape-size.utils.ts rename to apps/web/src/pods/canvas/model/shape-size.utils.ts index afc853e5..ea732071 100644 --- a/src/pods/canvas/model/shape-size.utils.ts +++ b/apps/web/src/pods/canvas/model/shape-size.utils.ts @@ -1,4 +1,4 @@ -import { ShapeSizeRestrictions, ShapeType, Size } from '@/core/model'; +import { ShapeSizeRestrictions, ShapeType, Size } from '#core/model'; import shapeSizeMap from './shape-size.mapper'; export const getSizeRestrictionFromShape = ( diff --git a/src/pods/canvas/model/shape.model.ts b/apps/web/src/pods/canvas/model/shape.model.ts similarity index 93% rename from src/pods/canvas/model/shape.model.ts rename to apps/web/src/pods/canvas/model/shape.model.ts index 24343127..52af857e 100644 --- a/src/pods/canvas/model/shape.model.ts +++ b/apps/web/src/pods/canvas/model/shape.model.ts @@ -1,4 +1,4 @@ -import { Coord, ShapeType, ShapeModel, OtherProps } from '@/core/model'; +import { Coord, ShapeType, ShapeModel, OtherProps } from '#core/model'; import { v4 as uuidv4 } from 'uuid'; import { generateTypeOfTransformer } from './transformer.model'; import { diff --git a/src/pods/canvas/model/transformer.model.ts b/apps/web/src/pods/canvas/model/transformer.model.ts similarity index 97% rename from src/pods/canvas/model/transformer.model.ts rename to apps/web/src/pods/canvas/model/transformer.model.ts index e6a71e22..e40deefc 100644 --- a/src/pods/canvas/model/transformer.model.ts +++ b/apps/web/src/pods/canvas/model/transformer.model.ts @@ -1,4 +1,4 @@ -import { ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; // Snap model export const SNAP_THRESHOLD = 5; @@ -87,6 +87,7 @@ export const generateTypeOfTransformer = (shapeType: ShapeType): string[] => { 'bottom-center', ]; case 'icon': + case 'mouseCursor': case 'multiple': return []; case 'image': diff --git a/src/pods/canvas/sample-document.ts b/apps/web/src/pods/canvas/sample-document.ts similarity index 99% rename from src/pods/canvas/sample-document.ts rename to apps/web/src/pods/canvas/sample-document.ts index 17262abe..67ce5179 100644 --- a/src/pods/canvas/sample-document.ts +++ b/apps/web/src/pods/canvas/sample-document.ts @@ -1,7 +1,7 @@ import { createDefaultCanvasSize, DocumentModel, -} from '@/core/providers/canvas/canvas.model'; +} from '#core/providers/canvas/canvas.model'; export const sampleDocument: DocumentModel = { activePageIndex: 0, diff --git a/src/pods/canvas/shape-renderer/index.tsx b/apps/web/src/pods/canvas/shape-renderer/index.tsx similarity index 98% rename from src/pods/canvas/shape-renderer/index.tsx rename to apps/web/src/pods/canvas/shape-renderer/index.tsx index 62cdc417..b72552d8 100644 --- a/src/pods/canvas/shape-renderer/index.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/index.tsx @@ -1,4 +1,4 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from './model'; import { renderComboBox, @@ -65,6 +65,7 @@ import { renderLargeArrowShape, renderCilinder, renderImage, + renderMouseCursor, } from './simple-basic-shapes'; import { renderHeading1, @@ -238,6 +239,8 @@ export const renderShapeComponent = ( return renderTextScribbled(shape, shapeRenderedProps); case 'paragraphScribbled': return renderParagraphScribbled(shape, shapeRenderedProps); + case 'mouseCursor': + return renderMouseCursor(shape, shapeRenderedProps); default: return renderNotFound(shape, shapeRenderedProps); } diff --git a/src/pods/canvas/shape-renderer/model.ts b/apps/web/src/pods/canvas/shape-renderer/model.ts similarity index 88% rename from src/pods/canvas/shape-renderer/model.ts rename to apps/web/src/pods/canvas/shape-renderer/model.ts index 5e4502c2..5d4d413a 100644 --- a/src/pods/canvas/shape-renderer/model.ts +++ b/apps/web/src/pods/canvas/shape-renderer/model.ts @@ -1,4 +1,4 @@ -import { ShapeRefs, ShapeType } from '@/core/model'; +import { ShapeRefs, ShapeType } from '#core/model'; import Konva from 'konva'; import { KonvaEventObject } from 'konva/lib/Node'; diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/cilinder.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/cilinder.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/cilinder.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/cilinder.renderer.tsx index f8e28530..04262174 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/cilinder.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/cilinder.renderer.tsx @@ -1,6 +1,6 @@ -import { CilinderShape } from '@/common/components/mock-components/front-basic-shapes'; +import { CilinderShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderCilinder = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/circle.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/circle.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/circle.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/circle.renderer.tsx index 313570cc..a25e3f00 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/circle.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/circle.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { CircleShape } from '@/common/components/mock-components/front-basic-shapes'; +import { CircleShape } from '#common/components/mock-components/front-basic-shapes'; export const renderCircle = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/diamond.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/diamond.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/diamond.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/diamond.renderer.tsx index 5604e4ca..772db128 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/diamond.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/diamond.renderer.tsx @@ -1,6 +1,6 @@ -import { DiamondShape } from '@/common/components/mock-components/front-basic-shapes'; +import { DiamondShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderDiamond = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/horizontal-line.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/horizontal-line.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/horizontal-line.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/horizontal-line.renderer.tsx index 08403bfc..d29e5a74 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/horizontal-line.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/horizontal-line.renderer.tsx @@ -1,6 +1,6 @@ -import { HorizontalLineShape } from '@/common/components/mock-components/front-basic-shapes'; +import { HorizontalLineShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderHorizontalLine = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/image.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/image.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/image.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/image.renderer.tsx index 096099c4..b0616a62 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/image.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/image.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { ImageShape } from '@/common/components/mock-components/front-basic-shapes/image-shape/image-shape'; +import { ImageShape } from '#common/components/mock-components/front-basic-shapes/image-shape/image-shape'; export const renderImage = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/index.ts b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/index.ts similarity index 91% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/index.ts rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/index.ts index 60de40c8..c4727ea1 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/index.ts +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/index.ts @@ -10,3 +10,4 @@ export * from './large-arrow.renderer'; export * from './modal-cover.rerender'; export * from './cilinder.renderer'; export * from './image.renderer'; +export * from './mouse-cursor.renderer'; diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/large-arrow.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/large-arrow.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/large-arrow.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/large-arrow.renderer.tsx index 58b2ac23..8a50360f 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/large-arrow.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/large-arrow.renderer.tsx @@ -1,6 +1,6 @@ -import { LargeArrowShape } from '@/common/components/mock-components/front-basic-shapes'; +import { LargeArrowShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderLargeArrowShape = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/modal-cover.rerender.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/modal-cover.rerender.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/modal-cover.rerender.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/modal-cover.rerender.tsx index 99f0ddcd..3303d01f 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/modal-cover.rerender.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/modal-cover.rerender.tsx @@ -1,6 +1,6 @@ -import { ModalCoverShape } from '@/common/components/mock-components/front-basic-shapes'; +import { ModalCoverShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderModalCover = ( shape: ShapeModel, diff --git a/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/mouse-cursor.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/mouse-cursor.renderer.tsx new file mode 100644 index 00000000..6eb81af9 --- /dev/null +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/mouse-cursor.renderer.tsx @@ -0,0 +1,32 @@ +import { MouseCursorShape } from '#common/components/mock-components/front-basic-shapes'; +import { ShapeModel } from '#core/model'; +import { ShapeRendererProps } from '../model'; + +export const renderMouseCursor = ( + shape: ShapeModel, + shapeRenderedProps: ShapeRendererProps +) => { + const { handleSelected, shapeRefs, handleDragEnd, handleTransform } = + shapeRenderedProps; + + return ( + + ); +}; diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/postit.rerender.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/postit.rerender.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/postit.rerender.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/postit.rerender.tsx index d8694d2c..52e2f6c4 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/postit.rerender.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/postit.rerender.tsx @@ -1,6 +1,6 @@ -import { PostItShape } from '@/common/components/mock-components/front-basic-shapes'; +import { PostItShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderPostit = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/rectangle.rerender.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/rectangle.rerender.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/rectangle.rerender.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/rectangle.rerender.tsx index 909bad03..ff995c62 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/rectangle.rerender.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/rectangle.rerender.tsx @@ -1,6 +1,6 @@ -import { RectangleShape } from '@/common/components/mock-components/front-basic-shapes'; +import { RectangleShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderRectangle = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/star.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/star.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/star.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/star.renderer.tsx index a7fff704..3d7489c2 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/star.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/star.renderer.tsx @@ -1,6 +1,6 @@ -import { StarShape } from '@/common/components/mock-components/front-basic-shapes'; +import { StarShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderStar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/triangle.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/triangle.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/triangle.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/triangle.renderer.tsx index 6e296c1c..29960188 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/triangle.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/triangle.renderer.tsx @@ -1,6 +1,6 @@ -import { TriangleShape } from '@/common/components/mock-components/front-basic-shapes'; +import { TriangleShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderTriangle = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-basic-shapes/vertical-line.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/vertical-line.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-basic-shapes/vertical-line.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/vertical-line.renderer.tsx index fcfde41f..098bef5a 100644 --- a/src/pods/canvas/shape-renderer/simple-basic-shapes/vertical-line.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-basic-shapes/vertical-line.renderer.tsx @@ -1,6 +1,6 @@ -import { VerticalLineShape } from '@/common/components/mock-components/front-basic-shapes'; +import { VerticalLineShape } from '#common/components/mock-components/front-basic-shapes'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderVerticalLine = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/button.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/button.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-component/button.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/button.renderer.tsx index 682b6d5b..addfd7c3 100644 --- a/src/pods/canvas/shape-renderer/simple-component/button.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/button.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { ButtonShape } from '@/common/components/mock-components/front-components/button-shape'; +import { ButtonShape } from '#common/components/mock-components/front-components/button-shape'; export const renderButton = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/checkbox.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/checkbox.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-component/checkbox.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/checkbox.renderer.tsx index 65293e4d..62f48f56 100644 --- a/src/pods/canvas/shape-renderer/simple-component/checkbox.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/checkbox.renderer.tsx @@ -1,6 +1,6 @@ -import { CheckBoxShape } from '@/common/components/mock-components/front-components/checkbox-shape'; +import { CheckBoxShape } from '#common/components/mock-components/front-components/checkbox-shape'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderCheckbox = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/chip.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/chip.renderer.tsx similarity index 86% rename from src/pods/canvas/shape-renderer/simple-component/chip.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/chip.renderer.tsx index 51657726..d275399a 100644 --- a/src/pods/canvas/shape-renderer/simple-component/chip.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/chip.renderer.tsx @@ -1,6 +1,6 @@ -import { ChipShape } from '@/common/components/mock-components/front-components'; +import { ChipShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderChip = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/combobox.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/combobox.renderer.tsx similarity index 86% rename from src/pods/canvas/shape-renderer/simple-component/combobox.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/combobox.renderer.tsx index eda546b2..98bd6dbc 100644 --- a/src/pods/canvas/shape-renderer/simple-component/combobox.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/combobox.renderer.tsx @@ -1,6 +1,6 @@ -import { ComboBoxShape } from '@/common/components/mock-components/front-components'; +import { ComboBoxShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderComboBox = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/datepickerinput.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/datepickerinput.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-component/datepickerinput.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/datepickerinput.renderer.tsx index 0eee92a7..c3780ee0 100644 --- a/src/pods/canvas/shape-renderer/simple-component/datepickerinput.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/datepickerinput.renderer.tsx @@ -1,6 +1,6 @@ -import { DatepickerInputShape } from '@/common/components/mock-components/front-components'; +import { DatepickerInputShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderDatepickerinput = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/horizontalscrollbar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/horizontalscrollbar.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-component/horizontalscrollbar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/horizontalscrollbar.renderer.tsx index e740a5d5..5abb183f 100644 --- a/src/pods/canvas/shape-renderer/simple-component/horizontalscrollbar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/horizontalscrollbar.renderer.tsx @@ -1,6 +1,6 @@ -import { HorizontalScrollBarShape } from '@/common/components/mock-components/front-components'; +import { HorizontalScrollBarShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderHorizontalScrollBar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/icon.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/icon.renderer.tsx similarity index 86% rename from src/pods/canvas/shape-renderer/simple-component/icon.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/icon.renderer.tsx index 6cb0573b..64ac2abc 100644 --- a/src/pods/canvas/shape-renderer/simple-component/icon.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/icon.renderer.tsx @@ -1,6 +1,6 @@ -import { SvgIcon } from '@/common/components/mock-components/front-components'; +import { SvgIcon } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderIcon = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/index.ts b/apps/web/src/pods/canvas/shape-renderer/simple-component/index.ts similarity index 100% rename from src/pods/canvas/shape-renderer/simple-component/index.ts rename to apps/web/src/pods/canvas/shape-renderer/simple-component/index.ts diff --git a/src/pods/canvas/shape-renderer/simple-component/input.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/input.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-component/input.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/input.renderer.tsx index ce52801a..f46946bd 100644 --- a/src/pods/canvas/shape-renderer/simple-component/input.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/input.renderer.tsx @@ -1,6 +1,6 @@ -import { InputShape } from '@/common/components/mock-components/front-components/input-shape'; +import { InputShape } from '#common/components/mock-components/front-components/input-shape'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderInput = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/label.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/label.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-component/label.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/label.renderer.tsx index 79de1368..88a53bca 100644 --- a/src/pods/canvas/shape-renderer/simple-component/label.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/label.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import LabelShape from '@/common/components/mock-components/front-components/label-shape'; +import { ShapeModel } from '#core/model'; +import LabelShape from '#common/components/mock-components/front-components/label-shape'; export const renderLabel = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/listbox.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/listbox.renderer.tsx similarity index 86% rename from src/pods/canvas/shape-renderer/simple-component/listbox.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/listbox.renderer.tsx index 2b5dd0f3..22255dfe 100644 --- a/src/pods/canvas/shape-renderer/simple-component/listbox.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/listbox.renderer.tsx @@ -1,5 +1,5 @@ -import { ListBoxShape } from '@/common/components/mock-components/front-components'; -import { ShapeModel } from '@/core/model'; +import { ListBoxShape } from '#common/components/mock-components/front-components'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; export const renderListbox = ( diff --git a/src/pods/canvas/shape-renderer/simple-component/notfound.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/notfound.renderer.tsx similarity index 87% rename from src/pods/canvas/shape-renderer/simple-component/notfound.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/notfound.renderer.tsx index 11e33c30..cab60890 100644 --- a/src/pods/canvas/shape-renderer/simple-component/notfound.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/notfound.renderer.tsx @@ -1,7 +1,7 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; import { Group, Text } from 'react-konva'; -import { BASIC_SHAPE } from '@/common/components/mock-components/front-components/shape.const'; +import { BASIC_SHAPE } from '#common/components/mock-components/front-components/shape.const'; export const renderNotFound = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/progressbar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/progressbar.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-component/progressbar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/progressbar.renderer.tsx index 6838d3fd..8f755641 100644 --- a/src/pods/canvas/shape-renderer/simple-component/progressbar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/progressbar.renderer.tsx @@ -1,6 +1,6 @@ -import { ProgressBarShape } from '@/common/components/mock-components/front-components'; +import { ProgressBarShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderProgressbar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/radiobutton.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/radiobutton.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-component/radiobutton.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/radiobutton.renderer.tsx index 3aea1717..749725b3 100644 --- a/src/pods/canvas/shape-renderer/simple-component/radiobutton.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/radiobutton.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { RadioButtonShape } from '@/common/components/mock-components/front-components/radiobutton-shape'; +import { RadioButtonShape } from '#common/components/mock-components/front-components/radiobutton-shape'; export const renderRadioButton = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/slider.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/slider.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-component/slider.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/slider.renderer.tsx index df734d50..48b9e210 100644 --- a/src/pods/canvas/shape-renderer/simple-component/slider.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/slider.renderer.tsx @@ -1,6 +1,6 @@ -import { SliderShape } from '@/common/components/mock-components/front-components'; +import { SliderShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderSlider = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/textarea.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/textarea.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-component/textarea.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/textarea.renderer.tsx index 50748ab7..e92995db 100644 --- a/src/pods/canvas/shape-renderer/simple-component/textarea.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/textarea.renderer.tsx @@ -1,6 +1,6 @@ -import { TextAreaShape } from '@/common/components/mock-components/front-components/textarea-shape'; +import { TextAreaShape } from '#common/components/mock-components/front-components/textarea-shape'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderTextArea = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/timepickerinput.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/timepickerinput.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-component/timepickerinput.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/timepickerinput.renderer.tsx index 6476b6b6..b2d648da 100644 --- a/src/pods/canvas/shape-renderer/simple-component/timepickerinput.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/timepickerinput.renderer.tsx @@ -1,6 +1,6 @@ -import { TimepickerInputShape } from '@/common/components/mock-components/front-components'; +import { TimepickerInputShape } from '#common/components/mock-components/front-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderTimepickerinput = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/toggleswitch.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/toggleswitch.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-component/toggleswitch.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/toggleswitch.renderer.tsx index e73f296d..59d6aa96 100644 --- a/src/pods/canvas/shape-renderer/simple-component/toggleswitch.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/toggleswitch.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { ToggleSwitch } from '@/common/components/mock-components/front-components/toggleswitch-shape'; +import { ToggleSwitch } from '#common/components/mock-components/front-components/toggleswitch-shape'; export const renderToggleSwitch = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/tooltip.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/tooltip.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-component/tooltip.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/tooltip.renderer.tsx index c5756636..9eff9054 100644 --- a/src/pods/canvas/shape-renderer/simple-component/tooltip.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/tooltip.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { TooltipShape } from '@/common/components/mock-components/front-components/tooltip-shape'; +import { ShapeModel } from '#core/model'; +import { TooltipShape } from '#common/components/mock-components/front-components/tooltip-shape'; export const renderTooltip = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-component/verticalscrollbar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-component/verticalscrollbar.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-component/verticalscrollbar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-component/verticalscrollbar.renderer.tsx index 0e72e7b3..cad8416f 100644 --- a/src/pods/canvas/shape-renderer/simple-component/verticalscrollbar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-component/verticalscrollbar.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { VerticalScrollBarShape } from '@/common/components/mock-components/front-components'; +import { VerticalScrollBarShape } from '#common/components/mock-components/front-components'; export const renderVerticalScrollBar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-container/browserwindow.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-container/browserwindow.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-container/browserwindow.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-container/browserwindow.renderer.tsx index aadcf152..14cd1b14 100644 --- a/src/pods/canvas/shape-renderer/simple-container/browserwindow.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-container/browserwindow.renderer.tsx @@ -1,6 +1,6 @@ -import { BrowserWindowShape } from '@/common/components/mock-components/front-containers'; +import { BrowserWindowShape } from '#common/components/mock-components/front-containers'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderBrowserWindow = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-container/index.ts b/apps/web/src/pods/canvas/shape-renderer/simple-container/index.ts similarity index 100% rename from src/pods/canvas/shape-renderer/simple-container/index.ts rename to apps/web/src/pods/canvas/shape-renderer/simple-container/index.ts diff --git a/src/pods/canvas/shape-renderer/simple-container/mobilephonecontainer.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-container/mobilephonecontainer.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-container/mobilephonecontainer.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-container/mobilephonecontainer.renderer.tsx index 5273642f..c8cb6418 100644 --- a/src/pods/canvas/shape-renderer/simple-container/mobilephonecontainer.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-container/mobilephonecontainer.renderer.tsx @@ -1,6 +1,6 @@ -import { MobilePhoneShape } from '@/common/components/mock-components/front-containers'; +import { MobilePhoneShape } from '#common/components/mock-components/front-containers'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderMobilePhoneContainer = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-container/modal-dialog-container.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-container/modal-dialog-container.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-container/modal-dialog-container.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-container/modal-dialog-container.renderer.tsx index 20c26e69..27b952ef 100644 --- a/src/pods/canvas/shape-renderer/simple-container/modal-dialog-container.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-container/modal-dialog-container.renderer.tsx @@ -1,6 +1,6 @@ -import { ModalDialogContainer } from '@/common/components/mock-components/front-containers'; +import { ModalDialogContainer } from '#common/components/mock-components/front-containers'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderModalDialogContainer = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-container/tablet.render.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-container/tablet.render.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-container/tablet.render.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-container/tablet.render.tsx index 1609d4c4..a1cdf172 100644 --- a/src/pods/canvas/shape-renderer/simple-container/tablet.render.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-container/tablet.render.tsx @@ -1,6 +1,6 @@ -import { TabletShape } from '@/common/components/mock-components/front-containers'; +import { TabletShape } from '#common/components/mock-components/front-containers'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderTablet = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/circle-low.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/circle-low.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/circle-low.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/circle-low.renderer.tsx index 0c640ba0..53753ed1 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/circle-low.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/circle-low.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { CircleLowShape } from '@/common/components/mock-components/front-low-wireframes-components'; +import { ShapeModel } from '#core/model'; +import { CircleLowShape } from '#common/components/mock-components/front-low-wireframes-components'; export const renderCircleLow = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/ellipse-low.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/ellipse-low.renderer.tsx similarity index 81% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/ellipse-low.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/ellipse-low.renderer.tsx index b3f81746..bb879f7a 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/ellipse-low.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/ellipse-low.renderer.tsx @@ -1,6 +1,6 @@ -import { EllipseLowShape } from '@/common/components/mock-components/front-low-wireframes-components/ellipse-low-shape'; +import { EllipseLowShape } from '#common/components/mock-components/front-low-wireframes-components/ellipse-low-shape'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderEllipseLow = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/image-placeholder.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/image-placeholder.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/image-placeholder.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/image-placeholder.renderer.tsx index 9f81781c..abff9fb5 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/image-placeholder.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/image-placeholder.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { ImagePlaceholderShape } from '@/common/components/mock-components/front-low-wireframes-components'; +import { ShapeModel } from '#core/model'; +import { ImagePlaceholderShape } from '#common/components/mock-components/front-low-wireframes-components'; export const renderImagePlaceHolder = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/index.ts b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/index.ts similarity index 100% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/index.ts rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/index.ts diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-horizontal-line.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-horizontal-line.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-horizontal-line.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-horizontal-line.renderer.tsx index d2409079..7545679e 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-horizontal-line.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-horizontal-line.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { HorizontalLineLowShape } from '@/common/components/mock-components/front-low-wireframes-components'; +import { ShapeModel } from '#core/model'; +import { HorizontalLineLowShape } from '#common/components/mock-components/front-low-wireframes-components'; export const renderHorizontalLowLine = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-vertical-line.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-vertical-line.renderer.tsx similarity index 81% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-vertical-line.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-vertical-line.renderer.tsx index 5106aa10..82b933a1 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-vertical-line.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/low-vertical-line.renderer.tsx @@ -1,6 +1,6 @@ -import { VerticalLineLowShape } from '@/common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape'; +import { VerticalLineLowShape } from '#common/components/mock-components/front-low-wireframes-components/vertical-line-low-shape'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderVerticalLowLine = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/paragraph-scribbled.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/paragraph-scribbled.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/paragraph-scribbled.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/paragraph-scribbled.renderer.tsx index 85ca8d04..6da792f1 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/paragraph-scribbled.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/paragraph-scribbled.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { ParagraphScribbled } from '@/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape'; +import { ShapeModel } from '#core/model'; +import { ParagraphScribbled } from '#common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape'; export const renderParagraphScribbled = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/rectangle-low.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/rectangle-low.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/rectangle-low.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/rectangle-low.renderer.tsx index 9fe27c44..962fd8a9 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/rectangle-low.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/rectangle-low.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { RectangleLowShape } from '@/common/components/mock-components/front-low-wireframes-components'; +import { RectangleLowShape } from '#common/components/mock-components/front-low-wireframes-components'; export const renderRectangleLow = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/text-scribbled.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/text-scribbled.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-low-wireframes-components/text-scribbled.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/text-scribbled.renderer.tsx index d8d40891..9972137b 100644 --- a/src/pods/canvas/shape-renderer/simple-low-wireframes-components/text-scribbled.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-low-wireframes-components/text-scribbled.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { TextScribbled } from '@/common/components/mock-components/front-low-wireframes-components'; +import { ShapeModel } from '#core/model'; +import { TextScribbled } from '#common/components/mock-components/front-low-wireframes-components'; export const renderTextScribbled = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/accordion.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/accordion.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/accordion.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/accordion.renderer.tsx index ab790cc7..aee74fd4 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/accordion.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/accordion.renderer.tsx @@ -1,6 +1,6 @@ -import { AccordionShape } from '@/common/components/mock-components/front-rich-components'; +import { AccordionShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderAccordion = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/appBar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/appBar.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/appBar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/appBar.renderer.tsx index e82b605c..07542e3e 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/appBar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/appBar.renderer.tsx @@ -1,6 +1,6 @@ -import { AppBarShape } from '@/common/components/mock-components/front-rich-components/appBar'; +import { AppBarShape } from '#common/components/mock-components/front-rich-components/appBar'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderAppBar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/audio-player.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/audio-player.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-rich-components/audio-player.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/audio-player.renderer.tsx index 5e41d013..ff3a6d82 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/audio-player.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/audio-player.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { AudioPlayerShape } from '@/common/components/mock-components/front-rich-components/audio-player'; +import { ShapeModel } from '#core/model'; +import { AudioPlayerShape } from '#common/components/mock-components/front-rich-components/audio-player'; export const renderAudioPlayer = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/bar-chart.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/bar-chart.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-rich-components/bar-chart.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/bar-chart.renderer.tsx index f8d7c29e..a6aafe03 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/bar-chart.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/bar-chart.renderer.tsx @@ -1,6 +1,6 @@ -import { BarChartShape } from '@/common/components/mock-components/front-rich-components'; +import { BarChartShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderBarChart = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/breadcrumb.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/breadcrumb.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/breadcrumb.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/breadcrumb.renderer.tsx index af80d1c3..1f9efcdb 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/breadcrumb.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/breadcrumb.renderer.tsx @@ -1,6 +1,6 @@ -import { BreadcrumbShape } from '@/common/components/mock-components/front-rich-components'; +import { BreadcrumbShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderBreadcrumb = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/button-bar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/button-bar.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-rich-components/button-bar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/button-bar.renderer.tsx index 66b3f631..bff04039 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/button-bar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/button-bar.renderer.tsx @@ -1,6 +1,6 @@ -import { ButtonBarShape } from '@/common/components/mock-components/front-rich-components/buttonBar/buttonBar'; +import { ButtonBarShape } from '#common/components/mock-components/front-rich-components/buttonBar/buttonBar'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderButtonBar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/calendar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/calendar.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-rich-components/calendar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/calendar.renderer.tsx index 929a087a..4950b94c 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/calendar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/calendar.renderer.tsx @@ -1,6 +1,6 @@ -import { CalendarShape } from '@/common/components/mock-components/front-rich-components/calendar'; +import { CalendarShape } from '#common/components/mock-components/front-rich-components/calendar'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderCalendar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/fab-button.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/fab-button.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-rich-components/fab-button.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/fab-button.renderer.tsx index 32c88469..092c8a78 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/fab-button.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/fab-button.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { FabButtonShape } from '@/common/components/mock-components/front-rich-components/fab-button/fab-button'; +import { ShapeModel } from '#core/model'; +import { FabButtonShape } from '#common/components/mock-components/front-rich-components/fab-button/fab-button'; export const renderFabButton = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/file-tree.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/file-tree.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-rich-components/file-tree.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/file-tree.renderer.tsx index ad40072e..dd5a4bf8 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/file-tree.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/file-tree.renderer.tsx @@ -1,6 +1,6 @@ import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; -import { FileTreeShape } from '@/common/components/mock-components/front-rich-components/file-tree/file-tree'; +import { ShapeModel } from '#core/model'; +import { FileTreeShape } from '#common/components/mock-components/front-rich-components/file-tree/file-tree'; export const renderFileTree = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/gauge.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/gauge.renderer.tsx similarity index 86% rename from src/pods/canvas/shape-renderer/simple-rich-components/gauge.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/gauge.renderer.tsx index 07412cfb..027a9539 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/gauge.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/gauge.renderer.tsx @@ -1,6 +1,6 @@ -import { Gauge } from '@/common/components/mock-components/front-rich-components'; +import { Gauge } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderGauge = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/horizontal-menu.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/horizontal-menu.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/horizontal-menu.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/horizontal-menu.renderer.tsx index abf26eed..aa540f8b 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/horizontal-menu.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/horizontal-menu.renderer.tsx @@ -1,6 +1,6 @@ -import { HorizontalMenu } from '@/common/components/mock-components/front-rich-components'; +import { HorizontalMenu } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderHorizontalMenu = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/index.ts b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/index.ts similarity index 100% rename from src/pods/canvas/shape-renderer/simple-rich-components/index.ts rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/index.ts diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/input-stepper.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/input-stepper.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-rich-components/input-stepper.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/input-stepper.renderer.tsx index 2cbc2e8f..3dc4c14d 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/input-stepper.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/input-stepper.renderer.tsx @@ -1,6 +1,6 @@ -import { InputWithStepper } from '@/common/components/mock-components/front-rich-components/input-stepper'; +import { InputWithStepper } from '#common/components/mock-components/front-rich-components/input-stepper'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderInputStepper = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/line-chart.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/line-chart.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-rich-components/line-chart.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/line-chart.renderer.tsx index 02e85bb4..4ee4026c 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/line-chart.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/line-chart.renderer.tsx @@ -1,6 +1,6 @@ -import { LineChartShape } from '@/common/components/mock-components/front-rich-components'; +import { LineChartShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderLineChart = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/loading-indicator.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/loading-indicator.renderer.tsx similarity index 84% rename from src/pods/canvas/shape-renderer/simple-rich-components/loading-indicator.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/loading-indicator.renderer.tsx index 39610f09..ad59c499 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/loading-indicator.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/loading-indicator.renderer.tsx @@ -1,6 +1,6 @@ -import { LoadIndicator } from '@/common/components/mock-components/front-rich-components/loading-indicator'; +import { LoadIndicator } from '#common/components/mock-components/front-rich-components/loading-indicator'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderLoadingIndicator = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/map-chart.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/map-chart.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-rich-components/map-chart.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/map-chart.renderer.tsx index 9cd7bf01..ea84cb0d 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/map-chart.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/map-chart.renderer.tsx @@ -1,6 +1,6 @@ -import { MapChartShape } from '@/common/components/mock-components/front-rich-components'; +import { MapChartShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderMapChart = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/modal.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/modal.renderer.tsx similarity index 86% rename from src/pods/canvas/shape-renderer/simple-rich-components/modal.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/modal.renderer.tsx index 2658f119..10c07631 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/modal.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/modal.renderer.tsx @@ -1,6 +1,6 @@ -import { Modal } from '@/common/components/mock-components/front-rich-components'; +import { Modal } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderModal = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/pie-chart.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/pie-chart.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-rich-components/pie-chart.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/pie-chart.renderer.tsx index 59ae6509..943cd433 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/pie-chart.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/pie-chart.renderer.tsx @@ -1,6 +1,6 @@ -import { PieChartShape } from '@/common/components/mock-components/front-rich-components'; +import { PieChartShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderPieChart = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/table.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/table.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/table.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/table.renderer.tsx index ed8c44e4..9311c628 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/table.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/table.renderer.tsx @@ -1,6 +1,6 @@ -import { Table } from '@/common/components/mock-components/front-rich-components'; +import { Table } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderTable = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/tabsbar.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/tabsbar.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/tabsbar.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/tabsbar.renderer.tsx index 62cc8fac..73d43e6a 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/tabsbar.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/tabsbar.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { TabsBarShape } from '@/common/components/mock-components/front-rich-components/tabsbar'; +import { TabsBarShape } from '#common/components/mock-components/front-rich-components/tabsbar'; export const renderTabsBar = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/togglelightdark.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/togglelightdark.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-rich-components/togglelightdark.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/togglelightdark.renderer.tsx index 4e944d16..e8dd3fe8 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/togglelightdark.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/togglelightdark.renderer.tsx @@ -1,6 +1,6 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { ShapeRendererProps } from '../model'; -import { ToggleLightDark } from '@/common/components/mock-components/front-rich-components/togglelightdark-shape'; +import { ToggleLightDark } from '#common/components/mock-components/front-rich-components/togglelightdark-shape'; export const renderToggleLightDark = ( shape: ShapeModel, shapeRenderedProps: ShapeRendererProps diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/vertical-menu.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/vertical-menu.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-rich-components/vertical-menu.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/vertical-menu.renderer.tsx index e71312ae..978f79e6 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/vertical-menu.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/vertical-menu.renderer.tsx @@ -1,6 +1,6 @@ -import { VerticalMenuShape } from '@/common/components/mock-components/front-rich-components'; +import { VerticalMenuShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderVerticalMenuShape = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/video-player.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/video-player.renderer.tsx similarity index 82% rename from src/pods/canvas/shape-renderer/simple-rich-components/video-player.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/video-player.renderer.tsx index ea03b387..25a1c743 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/video-player.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/video-player.renderer.tsx @@ -1,6 +1,6 @@ -import { VideoPlayerShape } from '@/common/components/mock-components/front-rich-components/video-player'; +import { VideoPlayerShape } from '#common/components/mock-components/front-rich-components/video-player'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderVideoPlayer = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-rich-components/videoconference.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/videoconference.renderer.tsx similarity index 83% rename from src/pods/canvas/shape-renderer/simple-rich-components/videoconference.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-rich-components/videoconference.renderer.tsx index d5da8449..8e4bc221 100644 --- a/src/pods/canvas/shape-renderer/simple-rich-components/videoconference.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-rich-components/videoconference.renderer.tsx @@ -1,6 +1,6 @@ -import { VideoconferenceShape } from '@/common/components/mock-components/front-rich-components'; +import { VideoconferenceShape } from '#common/components/mock-components/front-rich-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderVideoconference = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/heading1.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading1.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/heading1.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading1.renderer.tsx index 732c7d1d..309bdcad 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/heading1.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading1.renderer.tsx @@ -1,6 +1,6 @@ -import { Heading1Shape } from '@/common/components/mock-components/front-text-components'; +import { Heading1Shape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderHeading1 = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/heading2.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading2.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/heading2.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading2.renderer.tsx index d789015c..219bafbc 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/heading2.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading2.renderer.tsx @@ -1,6 +1,6 @@ -import { Heading2Shape } from '@/common/components/mock-components/front-text-components'; +import { Heading2Shape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderHeading2 = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/heading3.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading3.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/heading3.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading3.renderer.tsx index 2c6a85cc..0ea62e6d 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/heading3.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/heading3.renderer.tsx @@ -1,6 +1,6 @@ -import { Heading3Shape } from '@/common/components/mock-components/front-text-components'; +import { Heading3Shape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderHeading3 = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/index.ts b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/index.ts similarity index 100% rename from src/pods/canvas/shape-renderer/simple-text-components/index.ts rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/index.ts diff --git a/src/pods/canvas/shape-renderer/simple-text-components/link.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/link.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/link.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/link.renderer.tsx index 11db6336..b7e7738e 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/link.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/link.renderer.tsx @@ -1,6 +1,6 @@ -import { LinkShape } from '@/common/components/mock-components/front-text-components'; +import { LinkShape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderLink = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/normaltext.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/normaltext.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/normaltext.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/normaltext.renderer.tsx index 3396d6cd..4961fb24 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/normaltext.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/normaltext.renderer.tsx @@ -1,6 +1,6 @@ -import { NormaltextShape } from '@/common/components/mock-components/front-text-components'; +import { NormaltextShape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderNormaltext = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/paragraph.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/paragraph.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/paragraph.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/paragraph.renderer.tsx index af9f4b7e..8792bc4c 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/paragraph.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/paragraph.renderer.tsx @@ -1,6 +1,6 @@ -import { ParagraphShape } from '@/common/components/mock-components/front-text-components'; +import { ParagraphShape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderParagraph = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/richtext.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/richtext.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/richtext.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/richtext.renderer.tsx index a17695c1..e2cb7367 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/richtext.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/richtext.renderer.tsx @@ -1,6 +1,6 @@ -import { RichTextShape } from '@/common/components/mock-components/front-text-components'; +import { RichTextShape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderRichTextParagraph = ( shape: ShapeModel, diff --git a/src/pods/canvas/shape-renderer/simple-text-components/smalltext.renderer.tsx b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/smalltext.renderer.tsx similarity index 85% rename from src/pods/canvas/shape-renderer/simple-text-components/smalltext.renderer.tsx rename to apps/web/src/pods/canvas/shape-renderer/simple-text-components/smalltext.renderer.tsx index f329b23e..cea34f86 100644 --- a/src/pods/canvas/shape-renderer/simple-text-components/smalltext.renderer.tsx +++ b/apps/web/src/pods/canvas/shape-renderer/simple-text-components/smalltext.renderer.tsx @@ -1,6 +1,6 @@ -import { SmalltextShape } from '@/common/components/mock-components/front-text-components'; +import { SmalltextShape } from '#common/components/mock-components/front-text-components'; import { ShapeRendererProps } from '../model'; -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export const renderSmalltext = ( shape: ShapeModel, diff --git a/src/pods/canvas/snap.utils.ts b/apps/web/src/pods/canvas/snap.utils.ts similarity index 100% rename from src/pods/canvas/snap.utils.ts rename to apps/web/src/pods/canvas/snap.utils.ts diff --git a/src/pods/canvas/transformer.utils.ts b/apps/web/src/pods/canvas/transformer.utils.ts similarity index 95% rename from src/pods/canvas/transformer.utils.ts rename to apps/web/src/pods/canvas/transformer.utils.ts index 9655f753..3dcfa6a6 100644 --- a/src/pods/canvas/transformer.utils.ts +++ b/apps/web/src/pods/canvas/transformer.utils.ts @@ -1,4 +1,4 @@ -import { Coord } from '@/core/model'; +import { Coord } from '#core/model'; import Konva from 'konva'; interface Box { diff --git a/src/pods/canvas/use-drop-image-from-desktop.tsx b/apps/web/src/pods/canvas/use-drop-image-from-desktop.tsx similarity index 90% rename from src/pods/canvas/use-drop-image-from-desktop.tsx rename to apps/web/src/pods/canvas/use-drop-image-from-desktop.tsx index 4f6ff4c0..28af6979 100644 --- a/src/pods/canvas/use-drop-image-from-desktop.tsx +++ b/apps/web/src/pods/canvas/use-drop-image-from-desktop.tsx @@ -1,13 +1,13 @@ -import { useCanvasContext } from '@/core/providers'; +import { getImageShapeSizeRestrictions } from '#common/components/mock-components/front-basic-shapes/image-shape/image-shape.restrictions'; +import { adjustSizeKeepingAspectRatio } from '#common/utils/image.utils'; +import { useCanvasContext } from '#core/providers'; import invariant from 'tiny-invariant'; import { calculateScaledCoordsFromCanvasDivCoordinates, getScrollFromDiv, + isDropImageFile, } from './canvas.util'; import { calculateShapeOffsetToXDropCoordinate } from './use-monitor.business'; -import { getImageShapeSizeRestrictions } from '@/common/components/mock-components/front-basic-shapes'; -import { adjustSizeKeepingAspectRatio } from '@/common/utils/image.utils'; -import { isDropImageFile } from './canvas.util'; export const useDropImageFromDesktop = ( dropRef: React.MutableRefObject diff --git a/src/pods/canvas/use-drop-shape.hook.ts b/apps/web/src/pods/canvas/use-drop-shape.hook.ts similarity index 100% rename from src/pods/canvas/use-drop-shape.hook.ts rename to apps/web/src/pods/canvas/use-drop-shape.hook.ts diff --git a/src/pods/canvas/use-keyboard-displacement.tsx b/apps/web/src/pods/canvas/use-keyboard-displacement.tsx similarity index 96% rename from src/pods/canvas/use-keyboard-displacement.tsx rename to apps/web/src/pods/canvas/use-keyboard-displacement.tsx index 81972650..53265944 100644 --- a/src/pods/canvas/use-keyboard-displacement.tsx +++ b/apps/web/src/pods/canvas/use-keyboard-displacement.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react'; -import { useCanvasContext } from '@/core/providers'; -import { Coord } from '@/core/model'; +import { useCanvasContext } from '#core/providers'; +import { Coord } from '#core/model'; const arrowKeys = { arrowUp: 'ArrowUp', diff --git a/src/pods/canvas/use-monitor-shape.hook.ts b/apps/web/src/pods/canvas/use-monitor-shape.hook.ts similarity index 95% rename from src/pods/canvas/use-monitor-shape.hook.ts rename to apps/web/src/pods/canvas/use-monitor-shape.hook.ts index 1f0b6db2..e7af1f21 100644 --- a/src/pods/canvas/use-monitor-shape.hook.ts +++ b/apps/web/src/pods/canvas/use-monitor-shape.hook.ts @@ -7,8 +7,8 @@ import { convertFromDivElementCoordsToKonvaCoords, getScrollFromDiv, } from './canvas.util'; -import { ShapeType } from '@/core/model'; -import { useCanvasContext } from '@/core/providers'; +import { ShapeType } from '#core/model'; +import { useCanvasContext } from '#core/providers'; import { calculateShapeOffsetToXDropCoordinate } from './use-monitor.business'; export const useMonitorShape = ( diff --git a/src/pods/canvas/use-monitor.business.spec.ts b/apps/web/src/pods/canvas/use-monitor.business.spec.ts similarity index 86% rename from src/pods/canvas/use-monitor.business.spec.ts rename to apps/web/src/pods/canvas/use-monitor.business.spec.ts index 19d6357d..d2c8ef94 100644 --- a/src/pods/canvas/use-monitor.business.spec.ts +++ b/apps/web/src/pods/canvas/use-monitor.business.spec.ts @@ -1,8 +1,7 @@ -import { ShapeType } from '@/core/model'; -import { vi, describe, it, expect } from 'vitest'; +import { ShapeType } from '#core/model'; import { calculateShapeOffsetToXDropCoordinate } from './use-monitor.business'; -vi.mock('@/pods/canvas/model/shape-size.utils', () => ({ +vi.mock('#pods/canvas/model/shape-size.utils', () => ({ getDefaultSizeFromShape: (shapeType: ShapeType) => { if (shapeType === 'input') { return { diff --git a/src/pods/canvas/use-monitor.business.ts b/apps/web/src/pods/canvas/use-monitor.business.ts similarity index 89% rename from src/pods/canvas/use-monitor.business.ts rename to apps/web/src/pods/canvas/use-monitor.business.ts index c5bce571..2cb4483d 100644 --- a/src/pods/canvas/use-monitor.business.ts +++ b/apps/web/src/pods/canvas/use-monitor.business.ts @@ -1,4 +1,4 @@ -import { ShapeType } from '@/core/model'; +import { ShapeType } from '#core/model'; import { getDefaultSizeFromShape } from './model'; // TODO: #156 Add unit tests to this funcion diff --git a/src/pods/canvas/use-multiple-selection-shape.hook.tsx b/apps/web/src/pods/canvas/use-multiple-selection-shape.hook.tsx similarity index 96% rename from src/pods/canvas/use-multiple-selection-shape.hook.tsx rename to apps/web/src/pods/canvas/use-multiple-selection-shape.hook.tsx index 006a415b..c7f27831 100644 --- a/src/pods/canvas/use-multiple-selection-shape.hook.tsx +++ b/apps/web/src/pods/canvas/use-multiple-selection-shape.hook.tsx @@ -1,5 +1,5 @@ -import { ShapeModel, ShapeRefs, Coord } from '@/core/model'; -import { SelectionInfo } from '@/core/providers/canvas/canvas.model'; +import { ShapeModel, ShapeRefs, Coord } from '#core/model'; +import { SelectionInfo } from '#core/providers/canvas/canvas.model'; import Konva from 'konva'; import { useState } from 'react'; import { SelectionRect } from './model'; @@ -11,9 +11,9 @@ import { import { getTransformerBoxAndCoords } from './transformer.utils'; import { calculateScaledCoordsFromCanvasDivCoordinatesNoScroll } from './canvas.util'; import { Stage } from 'konva/lib/Stage'; -import { isUserDoingMultipleSelectionUsingCtrlOrCmdKey } from '@/common/utils/shapes'; +import { isUserDoingMultipleSelectionUsingCtrlOrCmdKey } from '#common/utils/shapes'; import { KonvaEventObject } from 'konva/lib/Node'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; // There's a bug here: if you make a multiple selectin and start dragging // inside the selection but on a blank area it won't drag the selection diff --git a/src/pods/canvas/use-multiple-selection.business.ts b/apps/web/src/pods/canvas/use-multiple-selection.business.ts similarity index 97% rename from src/pods/canvas/use-multiple-selection.business.ts rename to apps/web/src/pods/canvas/use-multiple-selection.business.ts index f12be5eb..efe7df45 100644 --- a/src/pods/canvas/use-multiple-selection.business.ts +++ b/apps/web/src/pods/canvas/use-multiple-selection.business.ts @@ -1,4 +1,4 @@ -import { Coord, ShapeModel, ShapeRefs } from '@/core/model'; +import { Coord, ShapeModel, ShapeRefs } from '#core/model'; import { SelectionRect } from './model'; export const areCoordsInsideRect = ( diff --git a/src/pods/canvas/use-snapin.hook.tsx b/apps/web/src/pods/canvas/use-snapin.hook.tsx similarity index 99% rename from src/pods/canvas/use-snapin.hook.tsx rename to apps/web/src/pods/canvas/use-snapin.hook.tsx index 51700e22..66461a64 100644 --- a/src/pods/canvas/use-snapin.hook.tsx +++ b/apps/web/src/pods/canvas/use-snapin.hook.tsx @@ -4,7 +4,7 @@ import invariant from 'tiny-invariant'; import { ClosestSnapLines, SnapEdges, SnapLines } from './model'; import { getClosestSnapLines } from './snap.utils'; import { useState } from 'react'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { getTransformerBoxAndCoords } from './transformer.utils'; export const useSnapIn = ( diff --git a/src/pods/canvas/use-transform.hook.ts b/apps/web/src/pods/canvas/use-transform.hook.ts similarity index 97% rename from src/pods/canvas/use-transform.hook.ts rename to apps/web/src/pods/canvas/use-transform.hook.ts index 33f3e7ad..7ed4e1fd 100644 --- a/src/pods/canvas/use-transform.hook.ts +++ b/apps/web/src/pods/canvas/use-transform.hook.ts @@ -1,7 +1,7 @@ import { Box } from 'konva/lib/shapes/Transformer'; -import { Coord, Size } from '@/core/model'; +import { Coord, Size } from '#core/model'; import { useEffect } from 'react'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { getMinSizeFromShape } from './model'; import { KonvaEventObject, NodeConfig, Node } from 'konva/lib/Node'; diff --git a/src/pods/context-menu/components/commands.component.module.css b/apps/web/src/pods/context-menu/components/commands.component.module.css similarity index 100% rename from src/pods/context-menu/components/commands.component.module.css rename to apps/web/src/pods/context-menu/components/commands.component.module.css diff --git a/src/pods/context-menu/components/commands.component.tsx b/apps/web/src/pods/context-menu/components/commands.component.tsx similarity index 88% rename from src/pods/context-menu/components/commands.component.tsx rename to apps/web/src/pods/context-menu/components/commands.component.tsx index 231bb35b..7671d619 100644 --- a/src/pods/context-menu/components/commands.component.tsx +++ b/apps/web/src/pods/context-menu/components/commands.component.tsx @@ -1,9 +1,9 @@ -import { ZIndexOptions } from '@/pods/properties/components'; +import { ZIndexOptions } from '#pods/properties/components'; import classes from './commands.component.module.css'; import { CopyCommand } from './copy-command/copy-command.component'; import { DeleteCommand } from './delete-command/delete-command.component'; import { PasteCommand } from './paste-command/paste-command.component'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface CommandsProps { setShowContextMenu: (show: boolean) => void; diff --git a/src/pods/context-menu/components/copy-command/copy-command.component.module.css b/apps/web/src/pods/context-menu/components/copy-command/copy-command.component.module.css similarity index 100% rename from src/pods/context-menu/components/copy-command/copy-command.component.module.css rename to apps/web/src/pods/context-menu/components/copy-command/copy-command.component.module.css diff --git a/src/pods/context-menu/components/copy-command/copy-command.component.tsx b/apps/web/src/pods/context-menu/components/copy-command/copy-command.component.tsx similarity index 85% rename from src/pods/context-menu/components/copy-command/copy-command.component.tsx rename to apps/web/src/pods/context-menu/components/copy-command/copy-command.component.tsx index 6f98a54f..3f17e354 100644 --- a/src/pods/context-menu/components/copy-command/copy-command.component.tsx +++ b/apps/web/src/pods/context-menu/components/copy-command/copy-command.component.tsx @@ -1,6 +1,6 @@ -import { CopyIcon } from '@/common/components/icons'; +import { CopyIcon } from '#common/components/icons'; import classes from './copy-command.component.module.css'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface CopyCommandProps { setShowContextMenu: (show: boolean) => void; diff --git a/src/pods/context-menu/components/delete-command/delete-command.component.module.css b/apps/web/src/pods/context-menu/components/delete-command/delete-command.component.module.css similarity index 100% rename from src/pods/context-menu/components/delete-command/delete-command.component.module.css rename to apps/web/src/pods/context-menu/components/delete-command/delete-command.component.module.css diff --git a/src/pods/context-menu/components/delete-command/delete-command.component.tsx b/apps/web/src/pods/context-menu/components/delete-command/delete-command.component.tsx similarity index 84% rename from src/pods/context-menu/components/delete-command/delete-command.component.tsx rename to apps/web/src/pods/context-menu/components/delete-command/delete-command.component.tsx index 5e0506e0..fa34a471 100644 --- a/src/pods/context-menu/components/delete-command/delete-command.component.tsx +++ b/apps/web/src/pods/context-menu/components/delete-command/delete-command.component.tsx @@ -1,6 +1,6 @@ -import { DeleteIcon } from '@/common/components/icons/delete-icon.component'; +import { DeleteIcon } from '#common/components/icons/delete-icon.component'; import classes from './delete-command.component.module.css'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface DeleteCommandProps { setShowContextMenu: (show: boolean) => void; diff --git a/src/pods/context-menu/components/paste-command/paste-command.component.module.css b/apps/web/src/pods/context-menu/components/paste-command/paste-command.component.module.css similarity index 100% rename from src/pods/context-menu/components/paste-command/paste-command.component.module.css rename to apps/web/src/pods/context-menu/components/paste-command/paste-command.component.module.css diff --git a/src/pods/context-menu/components/paste-command/paste-command.component.tsx b/apps/web/src/pods/context-menu/components/paste-command/paste-command.component.tsx similarity index 85% rename from src/pods/context-menu/components/paste-command/paste-command.component.tsx rename to apps/web/src/pods/context-menu/components/paste-command/paste-command.component.tsx index 65f90bd6..c38d7cce 100644 --- a/src/pods/context-menu/components/paste-command/paste-command.component.tsx +++ b/apps/web/src/pods/context-menu/components/paste-command/paste-command.component.tsx @@ -1,6 +1,6 @@ -import { PasteIcon } from '@/common/components/icons'; +import { PasteIcon } from '#common/components/icons'; import classes from './paste-command.component.module.css'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface PasteCommandProps { setShowContextMenu: (show: boolean) => void; diff --git a/src/pods/context-menu/use-context-menu.hook.module.css b/apps/web/src/pods/context-menu/use-context-menu.hook.module.css similarity index 100% rename from src/pods/context-menu/use-context-menu.hook.module.css rename to apps/web/src/pods/context-menu/use-context-menu.hook.module.css diff --git a/src/pods/context-menu/use-context-menu.hook.tsx b/apps/web/src/pods/context-menu/use-context-menu.hook.tsx similarity index 97% rename from src/pods/context-menu/use-context-menu.hook.tsx rename to apps/web/src/pods/context-menu/use-context-menu.hook.tsx index 3b8e1177..86fe7606 100644 --- a/src/pods/context-menu/use-context-menu.hook.tsx +++ b/apps/web/src/pods/context-menu/use-context-menu.hook.tsx @@ -1,4 +1,4 @@ -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { useEffect, useState } from 'react'; import classes from './use-context-menu.hook.module.css'; import { Commands } from './components/commands.component'; diff --git a/src/pods/footer/components/index.ts b/apps/web/src/pods/footer/components/index.ts similarity index 100% rename from src/pods/footer/components/index.ts rename to apps/web/src/pods/footer/components/index.ts diff --git a/src/pods/footer/components/zoom-in-button.tsx b/apps/web/src/pods/footer/components/zoom-in-button.tsx similarity index 87% rename from src/pods/footer/components/zoom-in-button.tsx rename to apps/web/src/pods/footer/components/zoom-in-button.tsx index 7ef8d1c3..99525f3b 100644 --- a/src/pods/footer/components/zoom-in-button.tsx +++ b/apps/web/src/pods/footer/components/zoom-in-button.tsx @@ -1,4 +1,4 @@ -import { ZoomInIcon } from '@/common/components/icons/zoom-in.component'; +import { ZoomInIcon } from '#common/components/icons/zoom-in.component'; interface ZoomInButtonProps { scale: number; diff --git a/src/pods/footer/components/zoom-out-button.tsx b/apps/web/src/pods/footer/components/zoom-out-button.tsx similarity index 87% rename from src/pods/footer/components/zoom-out-button.tsx rename to apps/web/src/pods/footer/components/zoom-out-button.tsx index 2bcee2a2..f1d05a14 100644 --- a/src/pods/footer/components/zoom-out-button.tsx +++ b/apps/web/src/pods/footer/components/zoom-out-button.tsx @@ -1,4 +1,4 @@ -import { ZoomOutIcon } from '@/common/components/icons/zoom-out.component'; +import { ZoomOutIcon } from '#common/components/icons/zoom-out.component'; interface ZoomOutButtonProps { scale: number; diff --git a/src/pods/footer/footer.pod.module.css b/apps/web/src/pods/footer/footer.pod.module.css similarity index 100% rename from src/pods/footer/footer.pod.module.css rename to apps/web/src/pods/footer/footer.pod.module.css diff --git a/src/pods/footer/footer.pod.tsx b/apps/web/src/pods/footer/footer.pod.tsx similarity index 93% rename from src/pods/footer/footer.pod.tsx rename to apps/web/src/pods/footer/footer.pod.tsx index 5c8ac58a..e995d83f 100644 --- a/src/pods/footer/footer.pod.tsx +++ b/apps/web/src/pods/footer/footer.pod.tsx @@ -1,4 +1,4 @@ -import { useCanvasContext, useInteractionModeContext } from '@/core/providers'; +import { useCanvasContext, useInteractionModeContext } from '#core/providers'; import classes from './footer.pod.module.css'; import { ZoomInButton, ZoomOutButton } from './components'; diff --git a/src/pods/galleries/basic-shapes-gallery/basic-gallery-data/index.ts b/apps/web/src/pods/galleries/basic-shapes-gallery/basic-gallery-data/index.ts similarity index 85% rename from src/pods/galleries/basic-shapes-gallery/basic-gallery-data/index.ts rename to apps/web/src/pods/galleries/basic-shapes-gallery/basic-gallery-data/index.ts index 5dc3c532..dcca5d2f 100644 --- a/src/pods/galleries/basic-shapes-gallery/basic-gallery-data/index.ts +++ b/apps/web/src/pods/galleries/basic-shapes-gallery/basic-gallery-data/index.ts @@ -1,4 +1,4 @@ -import { ItemInfo } from '@/common/components/gallery/components/model'; +import { ItemInfo } from '#common/components/gallery/components/model'; export const mockBasicShapesCollection: ItemInfo[] = [ { thumbnailSrc: '/shapes/circle.svg', type: 'circle' }, @@ -13,4 +13,5 @@ export const mockBasicShapesCollection: ItemInfo[] = [ { thumbnailSrc: '/shapes/triangle.svg', type: 'triangle' }, { thumbnailSrc: '/shapes/verticalLine.svg', type: 'verticalLine' }, { thumbnailSrc: '/shapes/cilinder.svg', type: 'cilinder' }, + { thumbnailSrc: '/icons/cursor.svg', type: 'mouseCursor' }, ]; diff --git a/src/pods/galleries/basic-shapes-gallery/basic-shapes-gallery.pod.tsx b/apps/web/src/pods/galleries/basic-shapes-gallery/basic-shapes-gallery.pod.tsx similarity index 72% rename from src/pods/galleries/basic-shapes-gallery/basic-shapes-gallery.pod.tsx rename to apps/web/src/pods/galleries/basic-shapes-gallery/basic-shapes-gallery.pod.tsx index d7a6ccd8..54ed9956 100644 --- a/src/pods/galleries/basic-shapes-gallery/basic-shapes-gallery.pod.tsx +++ b/apps/web/src/pods/galleries/basic-shapes-gallery/basic-shapes-gallery.pod.tsx @@ -1,4 +1,4 @@ -import { GalleryComponent } from '@/common/components/gallery/gallery-component'; +import { GalleryComponent } from '#common/components/gallery/gallery-component'; import { mockBasicShapesCollection } from '../basic-shapes-gallery/basic-gallery-data'; export const BasicShapesGalleryPod = () => { diff --git a/src/pods/galleries/component-gallery/component-gallery-data/index.ts b/apps/web/src/pods/galleries/component-gallery/component-gallery-data/index.ts similarity index 94% rename from src/pods/galleries/component-gallery/component-gallery-data/index.ts rename to apps/web/src/pods/galleries/component-gallery/component-gallery-data/index.ts index 9a79d859..bbf0c0cb 100644 --- a/src/pods/galleries/component-gallery/component-gallery-data/index.ts +++ b/apps/web/src/pods/galleries/component-gallery/component-gallery-data/index.ts @@ -1,4 +1,4 @@ -import { ItemInfo } from '@/common/components/gallery/components/model'; +import { ItemInfo } from '#common/components/gallery/components/model'; export const mockWidgetCollection: ItemInfo[] = [ { thumbnailSrc: '/widgets/button.svg', type: 'button' }, diff --git a/src/pods/galleries/component-gallery/component-gallery.pod.tsx b/apps/web/src/pods/galleries/component-gallery/component-gallery.pod.tsx similarity index 68% rename from src/pods/galleries/component-gallery/component-gallery.pod.tsx rename to apps/web/src/pods/galleries/component-gallery/component-gallery.pod.tsx index c5082578..6a5f7303 100644 --- a/src/pods/galleries/component-gallery/component-gallery.pod.tsx +++ b/apps/web/src/pods/galleries/component-gallery/component-gallery.pod.tsx @@ -1,4 +1,4 @@ -import { GalleryComponent } from '@/common/components/gallery/gallery-component'; +import { GalleryComponent } from '#common/components/gallery/gallery-component'; import { mockWidgetCollection } from './component-gallery-data'; export const ComponentGalleryPod = () => { diff --git a/src/pods/galleries/container-gallery/container-gallery-data/index.ts b/apps/web/src/pods/galleries/container-gallery/container-gallery-data/index.ts similarity index 81% rename from src/pods/galleries/container-gallery/container-gallery-data/index.ts rename to apps/web/src/pods/galleries/container-gallery/container-gallery-data/index.ts index 6cb3a0d8..b41ef15d 100644 --- a/src/pods/galleries/container-gallery/container-gallery-data/index.ts +++ b/apps/web/src/pods/galleries/container-gallery/container-gallery-data/index.ts @@ -1,4 +1,4 @@ -import { ItemInfo } from '@/common/components/gallery/components/model'; +import { ItemInfo } from '#common/components/gallery/components/model'; export const mockContainerCollection: ItemInfo[] = [ { thumbnailSrc: '/containers/browser.svg', type: 'browser' }, diff --git a/src/pods/galleries/container-gallery/container-gallery.pod.tsx b/apps/web/src/pods/galleries/container-gallery/container-gallery.pod.tsx similarity index 69% rename from src/pods/galleries/container-gallery/container-gallery.pod.tsx rename to apps/web/src/pods/galleries/container-gallery/container-gallery.pod.tsx index a34c1f71..4233b2a8 100644 --- a/src/pods/galleries/container-gallery/container-gallery.pod.tsx +++ b/apps/web/src/pods/galleries/container-gallery/container-gallery.pod.tsx @@ -1,4 +1,4 @@ -import { GalleryComponent } from '@/common/components/gallery/gallery-component'; +import { GalleryComponent } from '#common/components/gallery/gallery-component'; import { mockContainerCollection } from './container-gallery-data'; export const ContainerGalleryPod = () => { diff --git a/src/pods/galleries/index.ts b/apps/web/src/pods/galleries/index.ts similarity index 100% rename from src/pods/galleries/index.ts rename to apps/web/src/pods/galleries/index.ts diff --git a/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery-data/index.ts b/apps/web/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery-data/index.ts similarity index 91% rename from src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery-data/index.ts rename to apps/web/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery-data/index.ts index ce07b4a5..78c2bb81 100644 --- a/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery-data/index.ts +++ b/apps/web/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery-data/index.ts @@ -1,4 +1,4 @@ -import { ItemInfo } from '@/common/components/gallery/components/model'; +import { ItemInfo } from '#common/components/gallery/components/model'; export const mockLowWireframeCollection: ItemInfo[] = [ { diff --git a/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery.pod.tsx b/apps/web/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery.pod.tsx similarity index 70% rename from src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery.pod.tsx rename to apps/web/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery.pod.tsx index e613bb7c..995885d4 100644 --- a/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery.pod.tsx +++ b/apps/web/src/pods/galleries/low-wireframe-gallery/low-wireframe-gallery.pod.tsx @@ -1,4 +1,4 @@ -import { GalleryComponent } from '@/common/components/gallery/gallery-component'; +import { GalleryComponent } from '#common/components/gallery/gallery-component'; import { mockLowWireframeCollection } from './low-wireframe-gallery-data'; export const LowWireframeGalleryPod = () => { diff --git a/src/pods/galleries/rich-components-gallery/rich-components-gallery-data/index.ts b/apps/web/src/pods/galleries/rich-components-gallery/rich-components-gallery-data/index.ts similarity index 96% rename from src/pods/galleries/rich-components-gallery/rich-components-gallery-data/index.ts rename to apps/web/src/pods/galleries/rich-components-gallery/rich-components-gallery-data/index.ts index a96a8ca5..c24a5dbb 100644 --- a/src/pods/galleries/rich-components-gallery/rich-components-gallery-data/index.ts +++ b/apps/web/src/pods/galleries/rich-components-gallery/rich-components-gallery-data/index.ts @@ -1,4 +1,4 @@ -import { ItemInfo } from '@/common/components/gallery/components/model'; +import { ItemInfo } from '#common/components/gallery/components/model'; export const mockRichComponentsCollection: ItemInfo[] = [ { thumbnailSrc: '/rich-components/accordion.svg', type: 'accordion' }, diff --git a/src/pods/galleries/rich-components-gallery/rich-shapes-gallery.pod.tsx b/apps/web/src/pods/galleries/rich-components-gallery/rich-shapes-gallery.pod.tsx similarity index 71% rename from src/pods/galleries/rich-components-gallery/rich-shapes-gallery.pod.tsx rename to apps/web/src/pods/galleries/rich-components-gallery/rich-shapes-gallery.pod.tsx index a55a4c9b..b9a5763b 100644 --- a/src/pods/galleries/rich-components-gallery/rich-shapes-gallery.pod.tsx +++ b/apps/web/src/pods/galleries/rich-components-gallery/rich-shapes-gallery.pod.tsx @@ -1,4 +1,4 @@ -import { GalleryComponent } from '@/common/components/gallery/gallery-component'; +import { GalleryComponent } from '#common/components/gallery/gallery-component'; import { mockRichComponentsCollection } from './rich-components-gallery-data'; export const RichComponentsGalleryPod = () => { diff --git a/src/pods/galleries/text-component-gallery/text-component-gallery.pod.tsx b/apps/web/src/pods/galleries/text-component-gallery/text-component-gallery.pod.tsx similarity index 69% rename from src/pods/galleries/text-component-gallery/text-component-gallery.pod.tsx rename to apps/web/src/pods/galleries/text-component-gallery/text-component-gallery.pod.tsx index 1130eab0..6ba3729c 100644 --- a/src/pods/galleries/text-component-gallery/text-component-gallery.pod.tsx +++ b/apps/web/src/pods/galleries/text-component-gallery/text-component-gallery.pod.tsx @@ -1,4 +1,4 @@ -import { GalleryComponent } from '@/common/components/gallery/gallery-component'; +import { GalleryComponent } from '#common/components/gallery/gallery-component'; import { mockTextCollection } from './text-component-galley-data'; export const TextComponetGalleryPod = () => { diff --git a/src/pods/galleries/text-component-gallery/text-component-galley-data/index.ts b/apps/web/src/pods/galleries/text-component-gallery/text-component-galley-data/index.ts similarity index 87% rename from src/pods/galleries/text-component-gallery/text-component-galley-data/index.ts rename to apps/web/src/pods/galleries/text-component-gallery/text-component-galley-data/index.ts index b29f0203..5851c277 100644 --- a/src/pods/galleries/text-component-gallery/text-component-galley-data/index.ts +++ b/apps/web/src/pods/galleries/text-component-gallery/text-component-galley-data/index.ts @@ -1,4 +1,4 @@ -import { ItemInfo } from '@/common/components/gallery/components/model'; +import { ItemInfo } from '#common/components/gallery/components/model'; export const mockTextCollection: ItemInfo[] = [ { thumbnailSrc: '/text/heading1.svg', type: 'heading1' }, diff --git a/src/pods/index.ts b/apps/web/src/pods/index.ts similarity index 100% rename from src/pods/index.ts rename to apps/web/src/pods/index.ts diff --git a/src/pods/properties/components/active-element-selector/active-element-selector.component.module.css b/apps/web/src/pods/properties/components/active-element-selector/active-element-selector.component.module.css similarity index 100% rename from src/pods/properties/components/active-element-selector/active-element-selector.component.module.css rename to apps/web/src/pods/properties/components/active-element-selector/active-element-selector.component.module.css diff --git a/src/pods/properties/components/active-element-selector/active-element-selector.component.tsx b/apps/web/src/pods/properties/components/active-element-selector/active-element-selector.component.tsx similarity index 92% rename from src/pods/properties/components/active-element-selector/active-element-selector.component.tsx rename to apps/web/src/pods/properties/components/active-element-selector/active-element-selector.component.tsx index 9b0c6b71..ee079860 100644 --- a/src/pods/properties/components/active-element-selector/active-element-selector.component.tsx +++ b/apps/web/src/pods/properties/components/active-element-selector/active-element-selector.component.tsx @@ -27,7 +27,10 @@ export const ActiveElementSelector: React.FC = ({ // Checking whether the type is tabsBar and parsing the text const isElementTypeSupported = - type === 'tabsBar' || 'buttonBar' || 'horizontal-menu' || 'timepickerinput'; + type === 'tabsBar' || + type === 'buttonBar' || + type === 'horizontal-menu' || + type === 'timepickerinput'; const elementNames = isElementTypeSupported && text ? extractElementNames(text) : []; diff --git a/src/pods/properties/components/active-element-selector/index.ts b/apps/web/src/pods/properties/components/active-element-selector/index.ts similarity index 100% rename from src/pods/properties/components/active-element-selector/index.ts rename to apps/web/src/pods/properties/components/active-element-selector/index.ts diff --git a/src/pods/properties/components/border-radius/border-radius.component.tsx b/apps/web/src/pods/properties/components/border-radius/border-radius.component.tsx similarity index 96% rename from src/pods/properties/components/border-radius/border-radius.component.tsx rename to apps/web/src/pods/properties/components/border-radius/border-radius.component.tsx index fef2a788..4d2940f0 100644 --- a/src/pods/properties/components/border-radius/border-radius.component.tsx +++ b/apps/web/src/pods/properties/components/border-radius/border-radius.component.tsx @@ -1,4 +1,4 @@ -import { BASIC_SHAPE } from '@/common/components/mock-components/front-components/shape.const'; +import { BASIC_SHAPE } from '#common/components/mock-components/front-components/shape.const'; import classes from './border-radius.module.css'; interface Props { diff --git a/src/pods/properties/components/border-radius/border-radius.module.css b/apps/web/src/pods/properties/components/border-radius/border-radius.module.css similarity index 100% rename from src/pods/properties/components/border-radius/border-radius.module.css rename to apps/web/src/pods/properties/components/border-radius/border-radius.module.css diff --git a/src/pods/properties/components/border-radius/index.ts b/apps/web/src/pods/properties/components/border-radius/index.ts similarity index 100% rename from src/pods/properties/components/border-radius/index.ts rename to apps/web/src/pods/properties/components/border-radius/index.ts diff --git a/src/pods/properties/components/checked/checked.component.module.css b/apps/web/src/pods/properties/components/checked/checked.component.module.css similarity index 100% rename from src/pods/properties/components/checked/checked.component.module.css rename to apps/web/src/pods/properties/components/checked/checked.component.module.css diff --git a/src/pods/properties/components/checked/checked.component.tsx b/apps/web/src/pods/properties/components/checked/checked.component.tsx similarity index 100% rename from src/pods/properties/components/checked/checked.component.tsx rename to apps/web/src/pods/properties/components/checked/checked.component.tsx diff --git a/src/pods/properties/components/color-picker/color-picker.component.module.css b/apps/web/src/pods/properties/components/color-picker/color-picker.component.module.css similarity index 100% rename from src/pods/properties/components/color-picker/color-picker.component.module.css rename to apps/web/src/pods/properties/components/color-picker/color-picker.component.module.css diff --git a/src/pods/properties/components/color-picker/color-picker.component.tsx b/apps/web/src/pods/properties/components/color-picker/color-picker.component.tsx similarity index 100% rename from src/pods/properties/components/color-picker/color-picker.component.tsx rename to apps/web/src/pods/properties/components/color-picker/color-picker.component.tsx diff --git a/src/pods/properties/components/color-picker/color-picker.const.ts b/apps/web/src/pods/properties/components/color-picker/color-picker.const.ts similarity index 100% rename from src/pods/properties/components/color-picker/color-picker.const.ts rename to apps/web/src/pods/properties/components/color-picker/color-picker.const.ts diff --git a/src/pods/properties/components/color-picker/index.ts b/apps/web/src/pods/properties/components/color-picker/index.ts similarity index 100% rename from src/pods/properties/components/color-picker/index.ts rename to apps/web/src/pods/properties/components/color-picker/index.ts diff --git a/src/pods/properties/components/disabled/disabled-selector.component.module.css b/apps/web/src/pods/properties/components/disabled/disabled-selector.component.module.css similarity index 100% rename from src/pods/properties/components/disabled/disabled-selector.component.module.css rename to apps/web/src/pods/properties/components/disabled/disabled-selector.component.module.css diff --git a/src/pods/properties/components/disabled/disabled-selector.component.tsx b/apps/web/src/pods/properties/components/disabled/disabled-selector.component.tsx similarity index 100% rename from src/pods/properties/components/disabled/disabled-selector.component.tsx rename to apps/web/src/pods/properties/components/disabled/disabled-selector.component.tsx diff --git a/src/pods/properties/components/disabled/index.ts b/apps/web/src/pods/properties/components/disabled/index.ts similarity index 100% rename from src/pods/properties/components/disabled/index.ts rename to apps/web/src/pods/properties/components/disabled/index.ts diff --git a/src/pods/properties/components/font-size/font-size.module.css b/apps/web/src/pods/properties/components/font-size/font-size.module.css similarity index 100% rename from src/pods/properties/components/font-size/font-size.module.css rename to apps/web/src/pods/properties/components/font-size/font-size.module.css diff --git a/src/pods/properties/components/font-size/font-size.tsx b/apps/web/src/pods/properties/components/font-size/font-size.tsx similarity index 100% rename from src/pods/properties/components/font-size/font-size.tsx rename to apps/web/src/pods/properties/components/font-size/font-size.tsx diff --git a/src/pods/properties/components/font-size/index.ts b/apps/web/src/pods/properties/components/font-size/index.ts similarity index 100% rename from src/pods/properties/components/font-size/index.ts rename to apps/web/src/pods/properties/components/font-size/index.ts diff --git a/src/pods/properties/components/font-style/font-style.module.css b/apps/web/src/pods/properties/components/font-style/font-style.module.css similarity index 100% rename from src/pods/properties/components/font-style/font-style.module.css rename to apps/web/src/pods/properties/components/font-style/font-style.module.css diff --git a/src/pods/properties/components/font-style/font-style.tsx b/apps/web/src/pods/properties/components/font-style/font-style.tsx similarity index 100% rename from src/pods/properties/components/font-style/font-style.tsx rename to apps/web/src/pods/properties/components/font-style/font-style.tsx diff --git a/src/pods/properties/components/font-style/index.ts b/apps/web/src/pods/properties/components/font-style/index.ts similarity index 100% rename from src/pods/properties/components/font-style/index.ts rename to apps/web/src/pods/properties/components/font-style/index.ts diff --git a/src/pods/properties/components/font-variant/font-variant.module.css b/apps/web/src/pods/properties/components/font-variant/font-variant.module.css similarity index 100% rename from src/pods/properties/components/font-variant/font-variant.module.css rename to apps/web/src/pods/properties/components/font-variant/font-variant.module.css diff --git a/src/pods/properties/components/font-variant/font-variant.tsx b/apps/web/src/pods/properties/components/font-variant/font-variant.tsx similarity index 100% rename from src/pods/properties/components/font-variant/font-variant.tsx rename to apps/web/src/pods/properties/components/font-variant/font-variant.tsx diff --git a/src/pods/properties/components/font-variant/index.ts b/apps/web/src/pods/properties/components/font-variant/index.ts similarity index 100% rename from src/pods/properties/components/font-variant/index.ts rename to apps/web/src/pods/properties/components/font-variant/index.ts diff --git a/src/pods/properties/components/icon-selector/icon-selector.component.module.css b/apps/web/src/pods/properties/components/icon-selector/icon-selector.component.module.css similarity index 100% rename from src/pods/properties/components/icon-selector/icon-selector.component.module.css rename to apps/web/src/pods/properties/components/icon-selector/icon-selector.component.module.css diff --git a/src/pods/properties/components/icon-selector/icon-selector.component.tsx b/apps/web/src/pods/properties/components/icon-selector/icon-selector.component.tsx similarity index 82% rename from src/pods/properties/components/icon-selector/icon-selector.component.tsx rename to apps/web/src/pods/properties/components/icon-selector/icon-selector.component.tsx index 9fd079d6..183a6d3a 100644 --- a/src/pods/properties/components/icon-selector/icon-selector.component.tsx +++ b/apps/web/src/pods/properties/components/icon-selector/icon-selector.component.tsx @@ -1,6 +1,6 @@ -import { IconInfo } from '@/core/model'; +import { IconInfo } from '#core/model'; import classes from './icon-selector.component.module.css'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; import { IconModal } from './modal'; interface Props { diff --git a/src/pods/properties/components/icon-selector/index.ts b/apps/web/src/pods/properties/components/icon-selector/index.ts similarity index 100% rename from src/pods/properties/components/icon-selector/index.ts rename to apps/web/src/pods/properties/components/icon-selector/index.ts diff --git a/src/pods/properties/components/icon-selector/modal/components/categories.component.module.css b/apps/web/src/pods/properties/components/icon-selector/modal/components/categories.component.module.css similarity index 100% rename from src/pods/properties/components/icon-selector/modal/components/categories.component.module.css rename to apps/web/src/pods/properties/components/icon-selector/modal/components/categories.component.module.css diff --git a/src/pods/properties/components/icon-selector/modal/components/categories.component.tsx b/apps/web/src/pods/properties/components/icon-selector/modal/components/categories.component.tsx similarity index 96% rename from src/pods/properties/components/icon-selector/modal/components/categories.component.tsx rename to apps/web/src/pods/properties/components/icon-selector/modal/components/categories.component.tsx index 80a8c990..96dc141e 100644 --- a/src/pods/properties/components/icon-selector/modal/components/categories.component.tsx +++ b/apps/web/src/pods/properties/components/icon-selector/modal/components/categories.component.tsx @@ -1,4 +1,4 @@ -import { Category } from '@/core/model'; +import { Category } from '#core/model'; import classes from './categories.component.module.css'; interface IconModalCategoriesProps { diff --git a/src/pods/properties/components/icon-selector/modal/components/icon-list.component.module.css b/apps/web/src/pods/properties/components/icon-selector/modal/components/icon-list.component.module.css similarity index 100% rename from src/pods/properties/components/icon-selector/modal/components/icon-list.component.module.css rename to apps/web/src/pods/properties/components/icon-selector/modal/components/icon-list.component.module.css diff --git a/src/pods/properties/components/icon-selector/modal/components/icon-list.component.tsx b/apps/web/src/pods/properties/components/icon-selector/modal/components/icon-list.component.tsx similarity index 93% rename from src/pods/properties/components/icon-selector/modal/components/icon-list.component.tsx rename to apps/web/src/pods/properties/components/icon-selector/modal/components/icon-list.component.tsx index 42312fd3..83e3171b 100644 --- a/src/pods/properties/components/icon-selector/modal/components/icon-list.component.tsx +++ b/apps/web/src/pods/properties/components/icon-selector/modal/components/icon-list.component.tsx @@ -1,4 +1,4 @@ -import { BASE_ICONS_URL, IconInfo } from '@/core/model'; +import { BASE_ICONS_URL, IconInfo } from '#core/model'; import classes from './icon-list.component.module.css'; interface IconListProps { diff --git a/src/pods/properties/components/icon-selector/modal/components/searchbar.component.module.css b/apps/web/src/pods/properties/components/icon-selector/modal/components/searchbar.component.module.css similarity index 100% rename from src/pods/properties/components/icon-selector/modal/components/searchbar.component.module.css rename to apps/web/src/pods/properties/components/icon-selector/modal/components/searchbar.component.module.css diff --git a/src/pods/properties/components/icon-selector/modal/components/searchbar.component.tsx b/apps/web/src/pods/properties/components/icon-selector/modal/components/searchbar.component.tsx similarity index 100% rename from src/pods/properties/components/icon-selector/modal/components/searchbar.component.tsx rename to apps/web/src/pods/properties/components/icon-selector/modal/components/searchbar.component.tsx diff --git a/src/pods/properties/components/icon-selector/modal/icon-modal.module.css b/apps/web/src/pods/properties/components/icon-selector/modal/icon-modal.module.css similarity index 100% rename from src/pods/properties/components/icon-selector/modal/icon-modal.module.css rename to apps/web/src/pods/properties/components/icon-selector/modal/icon-modal.module.css diff --git a/src/pods/properties/components/icon-selector/modal/icon-modal.tsx b/apps/web/src/pods/properties/components/icon-selector/modal/icon-modal.tsx similarity index 90% rename from src/pods/properties/components/icon-selector/modal/icon-modal.tsx rename to apps/web/src/pods/properties/components/icon-selector/modal/icon-modal.tsx index 90b9478c..beed45d7 100644 --- a/src/pods/properties/components/icon-selector/modal/icon-modal.tsx +++ b/apps/web/src/pods/properties/components/icon-selector/modal/icon-modal.tsx @@ -1,12 +1,12 @@ import classes from './icon-modal.module.css'; -import { IconInfo } from '@/core/model'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; +import { IconInfo } from '#core/model'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; import { useIconModal } from './use-icon-modal.hook'; import { IconModalSearchBar } from './components/searchbar.component'; import { IconModalCategories } from './components/categories.component'; import { IconList } from './components/icon-list.component'; import { useEffect } from 'react'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface IconModalProps { actualIcon: IconInfo; diff --git a/src/pods/properties/components/icon-selector/modal/icons.ts b/apps/web/src/pods/properties/components/icon-selector/modal/icons.ts similarity index 91% rename from src/pods/properties/components/icon-selector/modal/icons.ts rename to apps/web/src/pods/properties/components/icon-selector/modal/icons.ts index 8e5622a1..7c53955d 100644 --- a/src/pods/properties/components/icon-selector/modal/icons.ts +++ b/apps/web/src/pods/properties/components/icon-selector/modal/icons.ts @@ -1,4 +1,4 @@ -import { IconInfo } from '@/core/model'; +import { IconInfo } from '#core/model'; export const iconCollection: IconInfo[] = [ { @@ -209,6 +209,7 @@ export const iconCollection: IconInfo[] = [ name: 'Shopping cart', filename: 'shoppingcart.svg', searchTerms: [ + 'shopping cart', 'shopping', 'cart', 'purchase', @@ -337,6 +338,7 @@ export const iconCollection: IconInfo[] = [ 'arrive', 'land', 'stopping', + 'aeroplane', ], categories: ['IT'], }, @@ -351,6 +353,7 @@ export const iconCollection: IconInfo[] = [ 'start', 'take off', 'launch', + 'aeroplane', ], categories: ['IT'], }, @@ -367,7 +370,6 @@ export const iconCollection: IconInfo[] = [ 'surf', 'browse', 'world wide web', - 'www', 'connected', ], categories: ['IT'], @@ -406,6 +408,7 @@ export const iconCollection: IconInfo[] = [ 'notification', 'feed', 'photo', + 'x', ], categories: ['IT'], }, @@ -419,8 +422,8 @@ export const iconCollection: IconInfo[] = [ 'artificial intelligence', 'virtual reality', 'metaverse', - 'meta ai', 'smart glasses', + 'ia', ], categories: ['IT'], }, @@ -690,13 +693,13 @@ export const iconCollection: IconInfo[] = [ { name: 'Bell Off', filename: 'bellmuted.svg', - searchTerms: ['bell', 'mute', 'silent', 'sound', 'off'], + searchTerms: ['bell off', 'mute', 'silent', 'sound', 'off'], categories: ['IT'], }, { name: 'Bell snooze', filename: 'bellsnooze.svg', - searchTerms: ['bell', 'snooze', 'sleep', 'pause'], + searchTerms: ['bell snooze', 'snooze', 'sleep', 'pause'], categories: ['IT'], }, { @@ -768,7 +771,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Cloud sun', filename: 'cloudsun.svg', - searchTerms: ['cloud', 'day', 'partly', 'cloudy', 'weather'], + searchTerms: ['cloud sun', 'day', 'partly', 'cloudy', 'weather'], categories: ['IT'], }, { @@ -792,7 +795,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Sunglasses', filename: 'sunglass.svg', - searchTerms: ['sunglass', 'glasses', 'sun', 'protection'], + searchTerms: ['sunglasses', 'sunglass', 'glasses', 'sun', 'protection'], categories: ['IT'], }, { @@ -846,7 +849,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Google Chrome', filename: 'chrome.svg', - searchTerms: ['chrome', 'browser', 'internet', 'web'], + searchTerms: ['google chrome', 'chrome', 'browser', 'internet', 'web'], categories: ['IT'], }, { @@ -888,6 +891,7 @@ export const iconCollection: IconInfo[] = [ 'repository', 'version control', 'pull request', + 'fork', ], categories: ['IT'], }, @@ -972,13 +976,13 @@ export const iconCollection: IconInfo[] = [ { name: 'Eye', filename: 'eye.svg', - searchTerms: ['eye', 'visible', 'watch', 'view'], + searchTerms: ['eye', 'visible', 'watch', 'view', 'vision'], categories: ['IT'], }, { name: 'Eye slash', filename: 'eyeslash.svg', - searchTerms: ['eye', 'slash', 'invisible', 'hide'], + searchTerms: ['eye', 'slash', 'invisible', 'hide', 'vision'], categories: ['IT'], }, { @@ -990,13 +994,13 @@ export const iconCollection: IconInfo[] = [ { name: 'Smiley', filename: 'smiley.svg', - searchTerms: ['smiley', 'happy', 'face', 'emoji'], + searchTerms: ['smiley', 'smile', 'happy', 'face', 'emoji'], categories: ['IT'], }, { name: 'Smiley wink', filename: 'smileywink.svg', - searchTerms: ['wink', 'playful', 'face', 'emoji'], + searchTerms: ['smiley', 'wink', 'playful', 'face', 'emoji'], categories: ['IT'], }, { @@ -1038,7 +1042,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Fast forward', filename: 'fastforward.svg', - searchTerms: ['skip', 'forward', 'next', 'advance', 'controls'], + searchTerms: ['fast', 'skip', 'forward', 'next', 'advance', 'controls'], categories: ['IT'], }, { @@ -1056,13 +1060,13 @@ export const iconCollection: IconInfo[] = [ { name: 'Envelope', filename: 'envelope.svg', - searchTerms: ['envelope', 'mail', 'postbag', 'letter'], + searchTerms: ['envelope', 'mail', 'postbag', 'letter', 'postcard'], categories: ['IT'], }, { name: 'Envelope open', filename: 'envelopeopen.svg', - searchTerms: ['envelope', 'open', 'mail', 'postbag', 'letter'], + searchTerms: ['envelope', 'open', 'mail', 'postbag', 'letter', 'postcard'], categories: ['IT'], }, { @@ -1092,13 +1096,13 @@ export const iconCollection: IconInfo[] = [ { name: 'Map pin area', filename: 'pinarea.svg', - searchTerms: ['map', 'area', 'location', 'place', 'plat'], + searchTerms: ['map', 'pin', 'area', 'location', 'place', 'plat'], categories: ['IT'], }, { name: 'Map pin', filename: 'pin.svg', - searchTerms: ['map', 'location', 'place', 'plat'], + searchTerms: ['map', 'pin', 'location', 'place', 'plat'], categories: ['IT'], }, { @@ -1170,7 +1174,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Chat dots', filename: 'chatdots.svg', - searchTerms: ['chat', 'message', 'conversation', 'chatting'], + searchTerms: ['chat', 'dots', 'message', 'conversation', 'chatting'], categories: ['IT'], }, { @@ -1182,7 +1186,14 @@ export const iconCollection: IconInfo[] = [ { name: 'Chat slash', filename: 'chatslash.svg', - searchTerms: ['chat', 'message', 'conversation', 'chatting', 'mute'], + searchTerms: [ + 'chat', + 'slash', + 'message', + 'conversation', + 'chatting', + 'mute', + ], categories: ['IT'], }, { @@ -1266,7 +1277,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Hands clapping', filename: 'handsclapping.svg', - searchTerms: ['hand', 'clapping', 'applause', 'celebration'], + searchTerms: ['hands', 'clapping', 'applause', 'celebration'], categories: ['IT'], }, { @@ -1296,7 +1307,14 @@ export const iconCollection: IconInfo[] = [ { name: 'Cog wheel', filename: 'cogwheel.svg', - searchTerms: ['settings', 'configuration', 'options', 'preferences'], + searchTerms: [ + 'cog', + 'wheel', + 'settings', + 'configuration', + 'options', + 'preferences', + ], categories: ['IT'], }, { @@ -1338,7 +1356,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Microphone off', filename: 'microphoneslash.svg', - searchTerms: ['microphone', 'mute', 'silence', 'mic'], + searchTerms: ['microphone', 'off', 'mute', 'silence', 'mic'], categories: ['IT'], }, { @@ -1350,7 +1368,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Webcam off', filename: 'webcamslash.svg', - searchTerms: ['webcam', 'camera', 'slash', 'camcorder', 'off'], + searchTerms: ['webcam', 'off', 'camera', 'slash', 'camcorder', 'off'], categories: ['IT'], }, { @@ -1386,7 +1404,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Dots Square', filename: 'dotssquare.svg', - searchTerms: ['dots', 'square', 'menu', 'more'], + searchTerms: ['dots', 'square', 'menu', 'more', 'drag'], categories: ['IT'], }, { @@ -1404,19 +1422,26 @@ export const iconCollection: IconInfo[] = [ { name: 'Linux', filename: 'linux.svg', - searchTerms: ['linux', 'system', 'software', 'desktop'], + searchTerms: ['linux', 'system', 'software', 'desktop', 'os'], categories: ['IT'], }, { name: 'Windows', filename: 'windows.svg', - searchTerms: ['windows', 'system', 'software', 'desktop', 'microsoft'], + searchTerms: [ + 'windows', + 'system', + 'software', + 'desktop', + 'microsoft', + 'os', + ], categories: ['IT'], }, { name: 'Moon', filename: 'moon.svg', - searchTerms: ['moon', 'night', 'dark', 'sky'], + searchTerms: ['moon', 'night', 'dark', 'sky', 'satellite'], categories: ['IT'], }, { @@ -1428,31 +1453,38 @@ export const iconCollection: IconInfo[] = [ { name: 'Gitlab', filename: 'gitlab.svg', - searchTerms: ['gitlab', 'code', 'repository', 'version control'], + searchTerms: [ + 'gitlab', + 'code', + 'repository', + 'version control', + 'pull request', + 'fork', + ], categories: ['IT'], }, { name: 'List dots', filename: 'listdots.svg', - searchTerms: ['list', 'categorize', 'unordered', 'classify'], + searchTerms: ['list', 'dots', 'categorize', 'unordered', 'classify'], categories: ['IT'], }, { name: 'List checks', filename: 'listchecks.svg', - searchTerms: ['list', 'categorize', 'unordered', 'classify'], + searchTerms: ['list', 'checks', 'categorize', 'unordered', 'classify'], categories: ['IT'], }, { name: 'List dashes', filename: 'listdashes.svg', - searchTerms: ['list', 'categorize', 'unordered', 'classify'], + searchTerms: ['list', 'dashes', 'categorize', 'unordered', 'classify'], categories: ['IT'], }, { name: 'List heart', filename: 'listheart.svg', - searchTerms: ['list', 'categorize', 'unordered', 'classify'], + searchTerms: ['list', 'heart', 'categorize', 'unordered', 'classify'], categories: ['IT'], }, { @@ -1476,7 +1508,14 @@ export const iconCollection: IconInfo[] = [ { name: 'list star', filename: 'liststar.svg', - searchTerms: ['list', 'categorize', 'unordered', 'classify', 'favorite'], + searchTerms: [ + 'list', + 'star', + 'categorize', + 'unordered', + 'classify', + 'favorite', + ], categories: ['IT'], }, { @@ -1548,7 +1587,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Shield checkered', filename: 'shieldcheckered.svg', - searchTerms: ['shield', 'protection', 'security', 'defense'], + searchTerms: ['shield', 'checked', 'protection', 'security', 'defense'], categories: ['IT'], }, { @@ -1657,7 +1696,15 @@ export const iconCollection: IconInfo[] = [ { name: 'File jpg', filename: 'filejpg.svg', - searchTerms: ['file', 'jpg', 'document', 'digital', 'sheet'], + searchTerms: [ + 'file', + 'jpg', + 'document', + 'digital', + 'sheet', + 'img', + 'image', + ], categories: ['IT'], }, { @@ -1753,7 +1800,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Plug', filename: 'plug.svg', - searchTerms: ['plug', 'device', 'connect', 'power'], + searchTerms: ['plug', 'device', 'connect', 'power', 'plug in'], categories: ['IT'], }, { @@ -1807,7 +1854,7 @@ export const iconCollection: IconInfo[] = [ { name: 'First aid', filename: 'firstaid.svg', - searchTerms: ['hospital', 'medical', 'emergency', 'health'], + searchTerms: ['first', 'aid', 'hospital', 'medical', 'emergency', 'health'], categories: ['IT'], }, { @@ -2023,7 +2070,15 @@ export const iconCollection: IconInfo[] = [ { name: 'Chart line up', filename: 'chartlineup.svg', - searchTerms: ['trade', 'chart', 'graph', 'business', 'benefits'], + searchTerms: [ + 'trade', + 'chart', + 'line', + 'up', + 'graph', + 'business', + 'benefits', + ], categories: ['IT'], }, { @@ -2083,13 +2138,20 @@ export const iconCollection: IconInfo[] = [ { name: 'Eyedropper alternative', filename: 'eyedroppersample.svg', - searchTerms: ['eyedropper', 'color', 'picker', 'tool', 'paint'], + searchTerms: [ + 'eyedropper', + 'alternative', + 'color', + 'picker', + 'tool', + 'paint', + ], categories: ['IT'], }, { name: 'Folder plus', filename: 'folderplus.svg', - searchTerms: ['folder', 'add', 'create', 'new'], + searchTerms: ['folder', 'plus', 'add', 'create', 'new'], categories: ['IT'], }, { @@ -2239,13 +2301,20 @@ export const iconCollection: IconInfo[] = [ { name: 'Four users', filename: 'usersfour.svg', - searchTerms: ['users', 'people', 'group', 'team'], + searchTerms: ['four', 'users', 'people', 'group', 'team'], categories: ['IT'], }, { name: 'Virtual reality', filename: 'virtualreality.svg', - searchTerms: ['virtual', 'artificial', 'glasses', 'technology', 'vr'], + searchTerms: [ + 'virtual', + 'reality', + 'artificial', + 'glasses', + 'technology', + 'vr', + ], categories: ['IT'], }, { @@ -2365,7 +2434,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Close circle', filename: 'xcircle.svg', - searchTerms: ['close', 'cross', 'dialog', 'delete'], + searchTerms: ['close', 'circle', 'cross', 'dialog', 'delete'], categories: ['IT'], }, { @@ -2377,7 +2446,7 @@ export const iconCollection: IconInfo[] = [ { name: 'Close square', filename: 'xclosesquare.svg', - searchTerms: ['close', 'cross', 'dialog', 'delete'], + searchTerms: ['close', 'cross', 'dialog', 'delete', 'square'], categories: ['IT'], }, { @@ -2437,121 +2506,121 @@ export const iconCollection: IconInfo[] = [ { name: 'Rectangle Zero', filename: 'rectanglezero.svg', - searchTerms: ['zero', 'number', 'count', 'null'], + searchTerms: ['rectangle', 'zero', 'number', 'count', 'null'], categories: ['IT'], }, { name: 'Rectangle One', filename: 'rectangleone.svg', - searchTerms: ['one', 'number', 'count', 'first'], + searchTerms: ['rectangle', 'one', 'number', 'count', 'first'], categories: ['IT'], }, { name: 'Rectangle Two', filename: 'rectangletwo.svg', - searchTerms: ['two', 'number', 'count', 'second'], + searchTerms: ['rectangle', 'two', 'number', 'count', 'second'], categories: ['IT'], }, { name: 'Rectangle Three', filename: 'rectanglethree.svg', - searchTerms: ['three', 'number', 'count', 'third'], + searchTerms: ['rectangle', 'three', 'number', 'count', 'third'], categories: ['IT'], }, { name: 'Rectangle Four', filename: 'rectanglefour.svg', - searchTerms: ['four', 'number', 'count', 'fourth'], + searchTerms: ['rectangle', 'four', 'number', 'count', 'fourth'], categories: ['IT'], }, { name: 'Rectangle Five', filename: 'rectanglefive.svg', - searchTerms: ['five', 'number', 'count', 'fifth'], + searchTerms: ['rectangle', 'five', 'number', 'count', 'fifth'], categories: ['IT'], }, { name: 'Rectangle Six', filename: 'rectanglesix.svg', - searchTerms: ['six', 'number', 'count', 'sixth'], + searchTerms: ['rectangle', 'six', 'number', 'count', 'sixth'], categories: ['IT'], }, { name: 'Rectangle Seven', filename: 'rectangleseven.svg', - searchTerms: ['seven', 'number', 'count', 'seventh'], + searchTerms: ['rectangle', 'seven', 'number', 'count', 'seventh'], categories: ['IT'], }, { name: 'Rectangle Eight', filename: 'rectangleeight.svg', - searchTerms: ['eight', 'number', 'count', 'eighth'], + searchTerms: ['rectangle', 'eight', 'number', 'count', 'eighth'], categories: ['IT'], }, { name: 'Rectangle Nine', filename: 'rectanglenine.svg', - searchTerms: ['nine', 'number', 'count', 'ninth'], + searchTerms: ['rectangle', 'nine', 'number', 'count', 'ninth'], categories: ['IT'], }, { name: 'Circle Zero', filename: 'circlezero.svg', - searchTerms: ['zero', 'number', 'count', 'null'], + searchTerms: ['circle', 'zero', 'number', 'count', 'null'], categories: ['IT'], }, { name: 'Circle One', filename: 'circleone.svg', - searchTerms: ['one', 'number', 'count', 'first'], + searchTerms: ['circle', 'one', 'number', 'count', 'first'], categories: ['IT'], }, { name: 'Circle Two', filename: 'circletwo.svg', - searchTerms: ['two', 'number', 'count', 'second'], + searchTerms: ['circle', 'two', 'number', 'count', 'second'], categories: ['IT'], }, { name: 'Circle Three', filename: 'circlethree.svg', - searchTerms: ['three', 'number', 'count', 'third'], + searchTerms: ['circle', 'three', 'number', 'count', 'third'], categories: ['IT'], }, { name: 'Circle Four', filename: 'circlefour.svg', - searchTerms: ['four', 'number', 'count', 'fourth'], + searchTerms: ['circle', 'four', 'number', 'count', 'fourth'], categories: ['IT'], }, { name: 'Circle Five', filename: 'circlefive.svg', - searchTerms: ['five', 'number', 'count', 'fifth'], + searchTerms: ['circle', 'five', 'number', 'count', 'fifth'], categories: ['IT'], }, { name: 'Circle Six', filename: 'circlesix.svg', - searchTerms: ['six', 'number', 'count', 'sixth'], + searchTerms: ['circle', 'six', 'number', 'count', 'sixth'], categories: ['IT'], }, { name: 'Circle Seven', filename: 'circleseven.svg', - searchTerms: ['seven', 'number', 'count', 'seventh'], + searchTerms: ['circle', 'seven', 'number', 'count', 'seventh'], categories: ['IT'], }, { name: 'Circle Eight', filename: 'circleeight.svg', - searchTerms: ['eight', 'number', 'count', 'eighth'], + searchTerms: ['circle', 'eight', 'number', 'count', 'eighth'], categories: ['IT'], }, { name: 'Circle Nine', filename: 'circlenine.svg', - searchTerms: ['nine', 'number', 'count', 'ninth'], + searchTerms: ['circle', 'nine', 'number', 'count', 'ninth'], categories: ['IT'], }, { diff --git a/src/pods/properties/components/icon-selector/modal/index.ts b/apps/web/src/pods/properties/components/icon-selector/modal/index.ts similarity index 100% rename from src/pods/properties/components/icon-selector/modal/index.ts rename to apps/web/src/pods/properties/components/icon-selector/modal/index.ts diff --git a/src/pods/properties/components/icon-selector/modal/use-icon-modal.hook.tsx b/apps/web/src/pods/properties/components/icon-selector/modal/use-icon-modal.hook.tsx similarity index 97% rename from src/pods/properties/components/icon-selector/modal/use-icon-modal.hook.tsx rename to apps/web/src/pods/properties/components/icon-selector/modal/use-icon-modal.hook.tsx index 9ee3bcc9..66cfc7a8 100644 --- a/src/pods/properties/components/icon-selector/modal/use-icon-modal.hook.tsx +++ b/apps/web/src/pods/properties/components/icon-selector/modal/use-icon-modal.hook.tsx @@ -1,6 +1,6 @@ import { useState } from 'react'; import { iconCollection } from './icons'; -import { Category, IconInfo } from '@/core/model'; +import { Category, IconInfo } from '#core/model'; export const useIconModal = (initialIcon: IconInfo) => { const [selectedIcon, setSelectedIcon] = useState(initialIcon); diff --git a/src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.module.css b/apps/web/src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.module.css similarity index 100% rename from src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.module.css rename to apps/web/src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.module.css diff --git a/src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.tsx b/apps/web/src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.tsx similarity index 100% rename from src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.tsx rename to apps/web/src/pods/properties/components/image-black-and-white/image-black-and-white-selector.component.tsx diff --git a/src/pods/properties/components/image-src/image-selector.component.module.css b/apps/web/src/pods/properties/components/image-src/image-selector.component.module.css similarity index 100% rename from src/pods/properties/components/image-src/image-selector.component.module.css rename to apps/web/src/pods/properties/components/image-src/image-selector.component.module.css diff --git a/src/pods/properties/components/image-src/image-selector.component.tsx b/apps/web/src/pods/properties/components/image-src/image-selector.component.tsx similarity index 95% rename from src/pods/properties/components/image-src/image-selector.component.tsx rename to apps/web/src/pods/properties/components/image-src/image-selector.component.tsx index f64a442b..169dabdd 100644 --- a/src/pods/properties/components/image-src/image-selector.component.tsx +++ b/apps/web/src/pods/properties/components/image-src/image-selector.component.tsx @@ -1,10 +1,10 @@ import { useRef } from 'react'; import classes from './image-selector.component.module.css'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { adjustSizeKeepingAspectRatio, getShapeById, -} from '@/common/utils/image.utils'; +} from '#common/utils/image.utils'; interface Props { label: string; diff --git a/src/pods/properties/components/index.ts b/apps/web/src/pods/properties/components/index.ts similarity index 100% rename from src/pods/properties/components/index.ts rename to apps/web/src/pods/properties/components/index.ts diff --git a/src/pods/properties/components/password/index.ts b/apps/web/src/pods/properties/components/password/index.ts similarity index 100% rename from src/pods/properties/components/password/index.ts rename to apps/web/src/pods/properties/components/password/index.ts diff --git a/src/pods/properties/components/password/password.component.module.css b/apps/web/src/pods/properties/components/password/password.component.module.css similarity index 100% rename from src/pods/properties/components/password/password.component.module.css rename to apps/web/src/pods/properties/components/password/password.component.module.css diff --git a/src/pods/properties/components/password/password.component.tsx b/apps/web/src/pods/properties/components/password/password.component.tsx similarity index 100% rename from src/pods/properties/components/password/password.component.tsx rename to apps/web/src/pods/properties/components/password/password.component.tsx diff --git a/src/pods/properties/components/placeholder/index.ts b/apps/web/src/pods/properties/components/placeholder/index.ts similarity index 100% rename from src/pods/properties/components/placeholder/index.ts rename to apps/web/src/pods/properties/components/placeholder/index.ts diff --git a/src/pods/properties/components/placeholder/placeholder.component.module.css b/apps/web/src/pods/properties/components/placeholder/placeholder.component.module.css similarity index 100% rename from src/pods/properties/components/placeholder/placeholder.component.module.css rename to apps/web/src/pods/properties/components/placeholder/placeholder.component.module.css diff --git a/src/pods/properties/components/placeholder/placeholder.component.tsx b/apps/web/src/pods/properties/components/placeholder/placeholder.component.tsx similarity index 100% rename from src/pods/properties/components/placeholder/placeholder.component.tsx rename to apps/web/src/pods/properties/components/placeholder/placeholder.component.tsx diff --git a/src/pods/properties/components/progress/index.ts b/apps/web/src/pods/properties/components/progress/index.ts similarity index 100% rename from src/pods/properties/components/progress/index.ts rename to apps/web/src/pods/properties/components/progress/index.ts diff --git a/src/pods/properties/components/progress/progress.component.tsx b/apps/web/src/pods/properties/components/progress/progress.component.tsx similarity index 100% rename from src/pods/properties/components/progress/progress.component.tsx rename to apps/web/src/pods/properties/components/progress/progress.component.tsx diff --git a/src/pods/properties/components/progress/progress.module.css b/apps/web/src/pods/properties/components/progress/progress.module.css similarity index 100% rename from src/pods/properties/components/progress/progress.module.css rename to apps/web/src/pods/properties/components/progress/progress.module.css diff --git a/src/pods/properties/components/select-size/index.ts b/apps/web/src/pods/properties/components/select-size/index.ts similarity index 100% rename from src/pods/properties/components/select-size/index.ts rename to apps/web/src/pods/properties/components/select-size/index.ts diff --git a/src/pods/properties/components/select-size/select-size-v2/index.ts b/apps/web/src/pods/properties/components/select-size/select-size-v2/index.ts similarity index 100% rename from src/pods/properties/components/select-size/select-size-v2/index.ts rename to apps/web/src/pods/properties/components/select-size/select-size-v2/index.ts diff --git a/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.module.css b/apps/web/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.module.css similarity index 100% rename from src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.module.css rename to apps/web/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.module.css diff --git a/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.tsx b/apps/web/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.tsx similarity index 88% rename from src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.tsx rename to apps/web/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.tsx index 45dd2c77..e5477517 100644 --- a/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.tsx +++ b/apps/web/src/pods/properties/components/select-size/select-size-v2/select-size-v2.component.tsx @@ -1,7 +1,7 @@ -import { ElementSize, ShapeType } from '@/core/model'; +import { ElementSize, ShapeType } from '#core/model'; import classes from './select-size-v2.component.module.css'; import { sizeToStep, stepToSize } from './select-size.utils'; -import { getSizeConfigForShape } from '@/pods/canvas/model/shape-other-props.utils'; +import { getSizeConfigForShape } from '#pods/canvas/model/shape-other-props.utils'; // ⚠️ This is a temporary v2 component introduced to support shape-specific size customization. // It will replace current SelectSize once migration is complete. diff --git a/src/pods/properties/components/select-size/select-size-v2/select-size.utils.ts b/apps/web/src/pods/properties/components/select-size/select-size-v2/select-size.utils.ts similarity index 87% rename from src/pods/properties/components/select-size/select-size-v2/select-size.utils.ts rename to apps/web/src/pods/properties/components/select-size/select-size-v2/select-size.utils.ts index adb16c3e..cafaea84 100644 --- a/src/pods/properties/components/select-size/select-size-v2/select-size.utils.ts +++ b/apps/web/src/pods/properties/components/select-size/select-size-v2/select-size.utils.ts @@ -1,4 +1,4 @@ -import { ElementSize, SizeConfig } from '@/core/model'; +import { ElementSize, SizeConfig } from '#core/model'; export const sizeToStep = (config: SizeConfig, size: string): string => { const index = config.availableSizes.indexOf(size as ElementSize); diff --git a/src/pods/properties/components/select-size/select-size.component.module.css b/apps/web/src/pods/properties/components/select-size/select-size.component.module.css similarity index 100% rename from src/pods/properties/components/select-size/select-size.component.module.css rename to apps/web/src/pods/properties/components/select-size/select-size.component.module.css diff --git a/src/pods/properties/components/select-size/select-size.component.tsx b/apps/web/src/pods/properties/components/select-size/select-size.component.tsx similarity index 94% rename from src/pods/properties/components/select-size/select-size.component.tsx rename to apps/web/src/pods/properties/components/select-size/select-size.component.tsx index a7b4d25a..600d3081 100644 --- a/src/pods/properties/components/select-size/select-size.component.tsx +++ b/apps/web/src/pods/properties/components/select-size/select-size.component.tsx @@ -1,4 +1,4 @@ -import { IconSize } from '@/core/model'; +import { IconSize } from '#core/model'; import classes from './select-size.component.module.css'; import { sizeToSteps, stepsToSize } from './select-size.utils'; diff --git a/src/pods/properties/components/select-size/select-size.utils.ts b/apps/web/src/pods/properties/components/select-size/select-size.utils.ts similarity index 93% rename from src/pods/properties/components/select-size/select-size.utils.ts rename to apps/web/src/pods/properties/components/select-size/select-size.utils.ts index b89619aa..47e90fb7 100644 --- a/src/pods/properties/components/select-size/select-size.utils.ts +++ b/apps/web/src/pods/properties/components/select-size/select-size.utils.ts @@ -1,4 +1,4 @@ -import { IconSize } from '@/core/model'; +import { IconSize } from '#core/model'; export const sizeToSteps = (size: IconSize): string => { switch (size) { diff --git a/src/pods/properties/components/show-prop.tsx b/apps/web/src/pods/properties/components/show-prop.tsx similarity index 94% rename from src/pods/properties/components/show-prop.tsx rename to apps/web/src/pods/properties/components/show-prop.tsx index d95c7807..8b202ac0 100644 --- a/src/pods/properties/components/show-prop.tsx +++ b/apps/web/src/pods/properties/components/show-prop.tsx @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { CommonSelectedPropsAndValues } from '../properties.model'; -import { OtherProps } from '@/core/model'; +import { OtherProps } from '#core/model'; interface Props { singleSelection: boolean; diff --git a/src/pods/properties/components/stroke-style/index.ts b/apps/web/src/pods/properties/components/stroke-style/index.ts similarity index 100% rename from src/pods/properties/components/stroke-style/index.ts rename to apps/web/src/pods/properties/components/stroke-style/index.ts diff --git a/src/pods/properties/components/stroke-style/stroke-style.component.module.css b/apps/web/src/pods/properties/components/stroke-style/stroke-style.component.module.css similarity index 100% rename from src/pods/properties/components/stroke-style/stroke-style.component.module.css rename to apps/web/src/pods/properties/components/stroke-style/stroke-style.component.module.css diff --git a/src/pods/properties/components/stroke-style/stroke.style.component.tsx b/apps/web/src/pods/properties/components/stroke-style/stroke.style.component.tsx similarity index 100% rename from src/pods/properties/components/stroke-style/stroke.style.component.tsx rename to apps/web/src/pods/properties/components/stroke-style/stroke.style.component.tsx diff --git a/src/pods/properties/components/stroke-width/index.ts b/apps/web/src/pods/properties/components/stroke-width/index.ts similarity index 100% rename from src/pods/properties/components/stroke-width/index.ts rename to apps/web/src/pods/properties/components/stroke-width/index.ts diff --git a/src/pods/properties/components/stroke-width/stroke-width.component.module.css b/apps/web/src/pods/properties/components/stroke-width/stroke-width.component.module.css similarity index 100% rename from src/pods/properties/components/stroke-width/stroke-width.component.module.css rename to apps/web/src/pods/properties/components/stroke-width/stroke-width.component.module.css diff --git a/src/pods/properties/components/stroke-width/stroke.width.component.tsx b/apps/web/src/pods/properties/components/stroke-width/stroke.width.component.tsx similarity index 100% rename from src/pods/properties/components/stroke-width/stroke.width.component.tsx rename to apps/web/src/pods/properties/components/stroke-width/stroke.width.component.tsx diff --git a/src/pods/properties/components/text-alignment/index.ts b/apps/web/src/pods/properties/components/text-alignment/index.ts similarity index 100% rename from src/pods/properties/components/text-alignment/index.ts rename to apps/web/src/pods/properties/components/text-alignment/index.ts diff --git a/src/pods/properties/components/text-alignment/text-alignment.module.css b/apps/web/src/pods/properties/components/text-alignment/text-alignment.module.css similarity index 100% rename from src/pods/properties/components/text-alignment/text-alignment.module.css rename to apps/web/src/pods/properties/components/text-alignment/text-alignment.module.css diff --git a/src/pods/properties/components/text-alignment/text-alignment.tsx b/apps/web/src/pods/properties/components/text-alignment/text-alignment.tsx similarity index 100% rename from src/pods/properties/components/text-alignment/text-alignment.tsx rename to apps/web/src/pods/properties/components/text-alignment/text-alignment.tsx diff --git a/src/pods/properties/components/text-decoration/index.ts b/apps/web/src/pods/properties/components/text-decoration/index.ts similarity index 100% rename from src/pods/properties/components/text-decoration/index.ts rename to apps/web/src/pods/properties/components/text-decoration/index.ts diff --git a/src/pods/properties/components/text-decoration/text-decoration.module.css b/apps/web/src/pods/properties/components/text-decoration/text-decoration.module.css similarity index 100% rename from src/pods/properties/components/text-decoration/text-decoration.module.css rename to apps/web/src/pods/properties/components/text-decoration/text-decoration.module.css diff --git a/src/pods/properties/components/text-decoration/text-decoration.tsx b/apps/web/src/pods/properties/components/text-decoration/text-decoration.tsx similarity index 100% rename from src/pods/properties/components/text-decoration/text-decoration.tsx rename to apps/web/src/pods/properties/components/text-decoration/text-decoration.tsx diff --git a/src/pods/properties/components/zindex/index.ts b/apps/web/src/pods/properties/components/zindex/index.ts similarity index 100% rename from src/pods/properties/components/zindex/index.ts rename to apps/web/src/pods/properties/components/zindex/index.ts diff --git a/src/pods/properties/components/zindex/zindex-button.component.tsx b/apps/web/src/pods/properties/components/zindex/zindex-button.component.tsx similarity index 100% rename from src/pods/properties/components/zindex/zindex-button.component.tsx rename to apps/web/src/pods/properties/components/zindex/zindex-button.component.tsx diff --git a/src/pods/properties/components/zindex/zindex-option.component.tsx b/apps/web/src/pods/properties/components/zindex/zindex-option.component.tsx similarity index 90% rename from src/pods/properties/components/zindex/zindex-option.component.tsx rename to apps/web/src/pods/properties/components/zindex/zindex-option.component.tsx index 987f0165..73823e0e 100644 --- a/src/pods/properties/components/zindex/zindex-option.component.tsx +++ b/apps/web/src/pods/properties/components/zindex/zindex-option.component.tsx @@ -1,16 +1,16 @@ import { SelectionInfo, ZIndexAction, -} from '@/core/providers/canvas/canvas.model'; +} from '#core/providers/canvas/canvas.model'; import classes from './zindex-option.module.css'; import { BringForwardIcon, BringToFrontIcon, SendBackwardIcon, SendToBackIcon, -} from '@/common/components/icons'; +} from '#common/components/icons'; import { ZIndexButton } from './zindex-button.component'; -import { Tooltip } from '@/common/components/tooltip'; +import { Tooltip } from '#common/components/tooltip'; interface LayerOption { position: ZIndexAction; diff --git a/src/pods/properties/components/zindex/zindex-option.module.css b/apps/web/src/pods/properties/components/zindex/zindex-option.module.css similarity index 100% rename from src/pods/properties/components/zindex/zindex-option.module.css rename to apps/web/src/pods/properties/components/zindex/zindex-option.module.css diff --git a/src/pods/properties/index.ts b/apps/web/src/pods/properties/index.ts similarity index 100% rename from src/pods/properties/index.ts rename to apps/web/src/pods/properties/index.ts diff --git a/src/pods/properties/properties.business.ts b/apps/web/src/pods/properties/properties.business.ts similarity index 96% rename from src/pods/properties/properties.business.ts rename to apps/web/src/pods/properties/properties.business.ts index 489cfeea..3c73c0ff 100644 --- a/src/pods/properties/properties.business.ts +++ b/apps/web/src/pods/properties/properties.business.ts @@ -1,4 +1,4 @@ -import { OtherProps, ShapeModel } from '@/core/model'; +import { OtherProps, ShapeModel } from '#core/model'; import { CommonSelectedPropsAndValues, multiSelectEnabledProperties, diff --git a/src/pods/properties/properties.model.ts b/apps/web/src/pods/properties/properties.model.ts similarity index 91% rename from src/pods/properties/properties.model.ts rename to apps/web/src/pods/properties/properties.model.ts index 2a91c25a..23341c54 100644 --- a/src/pods/properties/properties.model.ts +++ b/apps/web/src/pods/properties/properties.model.ts @@ -1,4 +1,4 @@ -import { IconInfo, OtherProps } from '@/core/model'; +import { IconInfo, OtherProps } from '#core/model'; export const multiSelectEnabledProperties: (keyof OtherProps)[] = [ 'stroke', diff --git a/src/pods/properties/properties.pod.module.css b/apps/web/src/pods/properties/properties.pod.module.css similarity index 100% rename from src/pods/properties/properties.pod.module.css rename to apps/web/src/pods/properties/properties.pod.module.css diff --git a/src/pods/properties/properties.pod.tsx b/apps/web/src/pods/properties/properties.pod.tsx similarity index 99% rename from src/pods/properties/properties.pod.tsx rename to apps/web/src/pods/properties/properties.pod.tsx index 9cc41f5d..e2b363c0 100644 --- a/src/pods/properties/properties.pod.tsx +++ b/apps/web/src/pods/properties/properties.pod.tsx @@ -1,4 +1,4 @@ -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import classes from './properties.pod.module.css'; import { ZIndexOptions } from './components/zindex/zindex-option.component'; import { ColorPicker } from './components/color-picker/color-picker.component'; diff --git a/src/pods/settings/components/canvas-size-settings.component.module.css b/apps/web/src/pods/settings/components/canvas-size-settings.component.module.css similarity index 100% rename from src/pods/settings/components/canvas-size-settings.component.module.css rename to apps/web/src/pods/settings/components/canvas-size-settings.component.module.css diff --git a/src/pods/settings/components/canvas-size-settings.component.tsx b/apps/web/src/pods/settings/components/canvas-size-settings.component.tsx similarity index 95% rename from src/pods/settings/components/canvas-size-settings.component.tsx rename to apps/web/src/pods/settings/components/canvas-size-settings.component.tsx index 9e2af795..006cdcf8 100644 --- a/src/pods/settings/components/canvas-size-settings.component.tsx +++ b/apps/web/src/pods/settings/components/canvas-size-settings.component.tsx @@ -1,4 +1,4 @@ -import { CanvasSize } from '@/core/providers/canvas/canvas.model'; +import { CanvasSize } from '#core/providers/canvas/canvas.model'; import classes from './canvas-size-settings.component.module.css'; interface CanvasSizeSettingsProps { diff --git a/src/pods/settings/components/index.ts b/apps/web/src/pods/settings/components/index.ts similarity index 100% rename from src/pods/settings/components/index.ts rename to apps/web/src/pods/settings/components/index.ts diff --git a/src/pods/settings/index.ts b/apps/web/src/pods/settings/index.ts similarity index 100% rename from src/pods/settings/index.ts rename to apps/web/src/pods/settings/index.ts diff --git a/src/pods/settings/settings.pod.module.css b/apps/web/src/pods/settings/settings.pod.module.css similarity index 100% rename from src/pods/settings/settings.pod.module.css rename to apps/web/src/pods/settings/settings.pod.module.css diff --git a/src/pods/settings/settings.pod.tsx b/apps/web/src/pods/settings/settings.pod.tsx similarity index 81% rename from src/pods/settings/settings.pod.tsx rename to apps/web/src/pods/settings/settings.pod.tsx index 83a7baca..eb46b4c5 100644 --- a/src/pods/settings/settings.pod.tsx +++ b/apps/web/src/pods/settings/settings.pod.tsx @@ -1,9 +1,9 @@ -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { CanvasSizeSettings } from './components'; import classes from './settings.pod.module.css'; import { useEffect, useState } from 'react'; -import { CanvasSize } from '@/core/providers/canvas/canvas.model'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; +import { CanvasSize } from '#core/providers/canvas/canvas.model'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; export const SettingsPod = () => { const { canvasSize, setCanvasSize, setIsInlineEditing } = useCanvasContext(); diff --git a/src/pods/thumb-pages/components/context-menu/context-menu.component.module.css b/apps/web/src/pods/thumb-pages/components/context-menu/context-menu.component.module.css similarity index 100% rename from src/pods/thumb-pages/components/context-menu/context-menu.component.module.css rename to apps/web/src/pods/thumb-pages/components/context-menu/context-menu.component.module.css diff --git a/src/pods/thumb-pages/components/context-menu/context-menu.component.tsx b/apps/web/src/pods/thumb-pages/components/context-menu/context-menu.component.tsx similarity index 94% rename from src/pods/thumb-pages/components/context-menu/context-menu.component.tsx rename to apps/web/src/pods/thumb-pages/components/context-menu/context-menu.component.tsx index 62d8e73c..5972f86b 100644 --- a/src/pods/thumb-pages/components/context-menu/context-menu.component.tsx +++ b/apps/web/src/pods/thumb-pages/components/context-menu/context-menu.component.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import classes from './context-menu.component.module.css'; -import { CopyIcon, DeleteIcon, PencilIcon } from '@/common/components/icons'; +import { CopyIcon, DeleteIcon, PencilIcon } from '#common/components/icons'; interface ThumbPageContextMenuProps { contextMenuRef: React.RefObject; diff --git a/src/pods/thumb-pages/components/context-menu/index.ts b/apps/web/src/pods/thumb-pages/components/context-menu/index.ts similarity index 100% rename from src/pods/thumb-pages/components/context-menu/index.ts rename to apps/web/src/pods/thumb-pages/components/context-menu/index.ts diff --git a/src/pods/thumb-pages/components/drag-drop-thumb.hook.ts b/apps/web/src/pods/thumb-pages/components/drag-drop-thumb.hook.ts similarity index 96% rename from src/pods/thumb-pages/components/drag-drop-thumb.hook.ts rename to apps/web/src/pods/thumb-pages/components/drag-drop-thumb.hook.ts index 530b8149..893557ab 100644 --- a/src/pods/thumb-pages/components/drag-drop-thumb.hook.ts +++ b/apps/web/src/pods/thumb-pages/components/drag-drop-thumb.hook.ts @@ -1,4 +1,4 @@ -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { draggable, dropTargetForElements, diff --git a/src/pods/thumb-pages/components/index.ts b/apps/web/src/pods/thumb-pages/components/index.ts similarity index 100% rename from src/pods/thumb-pages/components/index.ts rename to apps/web/src/pods/thumb-pages/components/index.ts diff --git a/src/pods/thumb-pages/components/page-title-inline-edit.component.tsx b/apps/web/src/pods/thumb-pages/components/page-title-inline-edit.component.tsx similarity index 96% rename from src/pods/thumb-pages/components/page-title-inline-edit.component.tsx rename to apps/web/src/pods/thumb-pages/components/page-title-inline-edit.component.tsx index da42d0fd..0c5bb7c8 100644 --- a/src/pods/thumb-pages/components/page-title-inline-edit.component.tsx +++ b/apps/web/src/pods/thumb-pages/components/page-title-inline-edit.component.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; interface PageTitleInlineEditProps { pageIndex: number; diff --git a/src/pods/thumb-pages/components/thumb-page.business.ts b/apps/web/src/pods/thumb-pages/components/thumb-page.business.ts similarity index 88% rename from src/pods/thumb-pages/components/thumb-page.business.ts rename to apps/web/src/pods/thumb-pages/components/thumb-page.business.ts index 42096b6b..dedb1a91 100644 --- a/src/pods/thumb-pages/components/thumb-page.business.ts +++ b/apps/web/src/pods/thumb-pages/components/thumb-page.business.ts @@ -1,5 +1,5 @@ -import { ShapeModel, Size } from '@/core/model'; -import { calculateCanvasBounds } from '@/pods/toolbar/components/export-button/export-button.utils'; +import { ShapeModel, Size } from '#core/model'; +import { calculateCanvasBounds } from '#pods/toolbar/components/export-button/export-button.utils'; export const calculateScaleBasedOnBounds = ( shapes: ShapeModel[], diff --git a/src/pods/thumb-pages/components/thumb-page.module.css b/apps/web/src/pods/thumb-pages/components/thumb-page.module.css similarity index 100% rename from src/pods/thumb-pages/components/thumb-page.module.css rename to apps/web/src/pods/thumb-pages/components/thumb-page.module.css diff --git a/src/pods/thumb-pages/components/thumb-page.tsx b/apps/web/src/pods/thumb-pages/components/thumb-page.tsx similarity index 93% rename from src/pods/thumb-pages/components/thumb-page.tsx rename to apps/web/src/pods/thumb-pages/components/thumb-page.tsx index 4334ef57..66b1e50b 100644 --- a/src/pods/thumb-pages/components/thumb-page.tsx +++ b/apps/web/src/pods/thumb-pages/components/thumb-page.tsx @@ -1,19 +1,19 @@ -import { ShapeRefs, Size } from '@/core/model'; -import { useCanvasContext, useInteractionModeContext } from '@/core/providers'; -import { renderShapeComponent } from '@/pods/canvas/shape-renderer'; +import { ShapeRefs, Size } from '#core/model'; +import { useCanvasContext, useInteractionModeContext } from '#core/providers'; +import { renderShapeComponent } from '#pods/canvas/shape-renderer'; import { KonvaEventObject } from 'konva/lib/Node'; import { createRef, useRef } from 'react'; import { Layer, Stage } from 'react-konva'; import { calculateScaleBasedOnBounds } from './thumb-page.business'; import { ThumbPageContextMenu } from './context-menu'; import { useContextMenu } from '../use-context-menu-thumb.hook'; -import { CaretDown } from '@/common/components/icons'; +import { CaretDown } from '#common/components/icons'; import classes from './thumb-page.module.css'; import React from 'react'; import { useDragDropThumb } from './drag-drop-thumb.hook'; import Konva from 'konva'; -import { ENV } from '@/core/constants'; +import { ENV } from '#core/constants'; interface Props { pageIndex: number; @@ -87,7 +87,7 @@ export const ThumbPage: React.FunctionComponent = props => { return () => { window.removeEventListener('resize', handleResizeAndForceRedraw); }; - }, [divRef.current]); + }, []); const { showContextMenu, diff --git a/src/pods/thumb-pages/index.ts b/apps/web/src/pods/thumb-pages/index.ts similarity index 100% rename from src/pods/thumb-pages/index.ts rename to apps/web/src/pods/thumb-pages/index.ts diff --git a/src/pods/thumb-pages/monitor-drop-thumb.hook.ts b/apps/web/src/pods/thumb-pages/monitor-drop-thumb.hook.ts similarity index 93% rename from src/pods/thumb-pages/monitor-drop-thumb.hook.ts rename to apps/web/src/pods/thumb-pages/monitor-drop-thumb.hook.ts index c2d8e151..39d0decf 100644 --- a/src/pods/thumb-pages/monitor-drop-thumb.hook.ts +++ b/apps/web/src/pods/thumb-pages/monitor-drop-thumb.hook.ts @@ -1,6 +1,6 @@ import { useEffect } from 'react'; import { monitorForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; export const useMonitorDropThumb = () => { const { fullDocument, swapPages } = useCanvasContext(); diff --git a/src/pods/thumb-pages/thumb-pages.module.css b/apps/web/src/pods/thumb-pages/thumb-pages.module.css similarity index 100% rename from src/pods/thumb-pages/thumb-pages.module.css rename to apps/web/src/pods/thumb-pages/thumb-pages.module.css diff --git a/src/pods/thumb-pages/thumb-pages.pod.tsx b/apps/web/src/pods/thumb-pages/thumb-pages.pod.tsx similarity index 89% rename from src/pods/thumb-pages/thumb-pages.pod.tsx rename to apps/web/src/pods/thumb-pages/thumb-pages.pod.tsx index 9c87087a..2139b72d 100644 --- a/src/pods/thumb-pages/thumb-pages.pod.tsx +++ b/apps/web/src/pods/thumb-pages/thumb-pages.pod.tsx @@ -1,9 +1,9 @@ +import { PlusIcon } from '#common/components/icons'; +import { useCanvasContext, useInteractionModeContext } from '#core/providers'; import React from 'react'; -import classes from './thumb-pages.module.css'; -import { useCanvasContext, useInteractionModeContext } from '@/core/providers'; import { PageTitleInlineEdit, ThumbPage } from './components'; -import { PlusIcon } from '@/common/components/icons'; import { useMonitorDropThumb } from './monitor-drop-thumb.hook'; +import classes from './thumb-pages.module.css'; interface Props { isVisible: boolean; @@ -54,7 +54,9 @@ export const ThumbPagesPod: React.FC = props => { ) : (
{ - interactionMode === 'edit' && setPageTitleBeingEdited(index); + if (interactionMode === 'edit') { + setPageTitleBeingEdited(index); + } }} className={ page.id === getActivePage().id ? classes.activeText : '' diff --git a/src/pods/thumb-pages/use-context-menu-thumb.hook.tsx b/apps/web/src/pods/thumb-pages/use-context-menu-thumb.hook.tsx similarity index 95% rename from src/pods/thumb-pages/use-context-menu-thumb.hook.tsx rename to apps/web/src/pods/thumb-pages/use-context-menu-thumb.hook.tsx index 5d5a65a6..71b52f7c 100644 --- a/src/pods/thumb-pages/use-context-menu-thumb.hook.tsx +++ b/apps/web/src/pods/thumb-pages/use-context-menu-thumb.hook.tsx @@ -1,4 +1,4 @@ -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { useEffect, useRef, useState } from 'react'; export const useContextMenu = () => { diff --git a/apps/web/src/pods/toolbar/components/about-button/about-button.tsx b/apps/web/src/pods/toolbar/components/about-button/about-button.tsx new file mode 100644 index 00000000..2a15dce2 --- /dev/null +++ b/apps/web/src/pods/toolbar/components/about-button/about-button.tsx @@ -0,0 +1,22 @@ +import { AboutIcon } from '#common/components/icons/about-icon.component'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; +import { AboutPod } from '#pods/about'; +import { ToolbarButton } from '#pods/toolbar/components/toolbar-button/toolbar-button'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; + +export const AboutButton = () => { + const { openModal } = useModalDialogContext(); + + const handleClick = () => { + openModal(, 'About us'); + }; + + return ( + } + label="About" + /> + ); +}; diff --git a/src/pods/toolbar/components/about-button/index.ts b/apps/web/src/pods/toolbar/components/about-button/index.ts similarity index 100% rename from src/pods/toolbar/components/about-button/index.ts rename to apps/web/src/pods/toolbar/components/about-button/index.ts diff --git a/src/pods/toolbar/components/copy-paste-button/copy-paste-button.tsx b/apps/web/src/pods/toolbar/components/copy-paste-button/copy-paste-button.tsx similarity index 86% rename from src/pods/toolbar/components/copy-paste-button/copy-paste-button.tsx rename to apps/web/src/pods/toolbar/components/copy-paste-button/copy-paste-button.tsx index ad128dd6..4a27db92 100644 --- a/src/pods/toolbar/components/copy-paste-button/copy-paste-button.tsx +++ b/apps/web/src/pods/toolbar/components/copy-paste-button/copy-paste-button.tsx @@ -1,7 +1,7 @@ -import { CopyIcon, PasteIcon } from '@/common/components/icons'; +import { CopyIcon, PasteIcon } from '#common/components/icons'; import { ToolbarButton } from '../toolbar-button'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; -import { useCanvasContext } from '@/core/providers'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; +import { useCanvasContext } from '#core/providers'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; export const CopyButton = () => { diff --git a/src/pods/toolbar/components/copy-paste-button/index.ts b/apps/web/src/pods/toolbar/components/copy-paste-button/index.ts similarity index 100% rename from src/pods/toolbar/components/copy-paste-button/index.ts rename to apps/web/src/pods/toolbar/components/copy-paste-button/index.ts diff --git a/src/pods/toolbar/components/delete-button/delete-button.tsx b/apps/web/src/pods/toolbar/components/delete-button/delete-button.tsx similarity index 77% rename from src/pods/toolbar/components/delete-button/delete-button.tsx rename to apps/web/src/pods/toolbar/components/delete-button/delete-button.tsx index 7bcc0cad..b3233b78 100644 --- a/src/pods/toolbar/components/delete-button/delete-button.tsx +++ b/apps/web/src/pods/toolbar/components/delete-button/delete-button.tsx @@ -1,7 +1,7 @@ -import { DeleteIcon } from '@/common/components/icons/delete-icon.component'; +import { DeleteIcon } from '#common/components/icons/delete-icon.component'; import { ToolbarButton } from '../toolbar-button'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; -import { useCanvasContext } from '@/core/providers'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; +import { useCanvasContext } from '#core/providers'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; export const DeleteButton = () => { diff --git a/src/pods/toolbar/components/delete-button/index.ts b/apps/web/src/pods/toolbar/components/delete-button/index.ts similarity index 100% rename from src/pods/toolbar/components/delete-button/index.ts rename to apps/web/src/pods/toolbar/components/delete-button/index.ts diff --git a/src/pods/toolbar/components/export-button/export-button.tsx b/apps/web/src/pods/toolbar/components/export-button/export-button.tsx similarity index 90% rename from src/pods/toolbar/components/export-button/export-button.tsx rename to apps/web/src/pods/toolbar/components/export-button/export-button.tsx index c611e698..5f5839ee 100644 --- a/src/pods/toolbar/components/export-button/export-button.tsx +++ b/apps/web/src/pods/toolbar/components/export-button/export-button.tsx @@ -1,6 +1,6 @@ -import { ExportIcon } from '@/common/components/icons/export-icon.component'; -import { useCanvasContext } from '@/core/providers'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; +import { ExportIcon } from '#common/components/icons/export-icon.component'; +import { useCanvasContext } from '#core/providers'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; import { calculateCanvasBounds, buildExportFileName, diff --git a/src/pods/toolbar/components/export-button/export-button.utils.spec.ts b/apps/web/src/pods/toolbar/components/export-button/export-button.utils.spec.ts similarity index 99% rename from src/pods/toolbar/components/export-button/export-button.utils.spec.ts rename to apps/web/src/pods/toolbar/components/export-button/export-button.utils.spec.ts index da0f5eef..4ec45aeb 100644 --- a/src/pods/toolbar/components/export-button/export-button.utils.spec.ts +++ b/apps/web/src/pods/toolbar/components/export-button/export-button.utils.spec.ts @@ -1,4 +1,4 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; import { calculateCanvasBounds, CanvasBounds } from './export-button.utils'; describe('calculateCanvasBounds', () => { diff --git a/src/pods/toolbar/components/export-button/export-button.utils.ts b/apps/web/src/pods/toolbar/components/export-button/export-button.utils.ts similarity index 97% rename from src/pods/toolbar/components/export-button/export-button.utils.ts rename to apps/web/src/pods/toolbar/components/export-button/export-button.utils.ts index 91b50acc..3b2cd14f 100644 --- a/src/pods/toolbar/components/export-button/export-button.utils.ts +++ b/apps/web/src/pods/toolbar/components/export-button/export-button.utils.ts @@ -1,4 +1,4 @@ -import { ShapeModel } from '@/core/model'; +import { ShapeModel } from '#core/model'; export interface CanvasBounds { x: number; diff --git a/src/pods/toolbar/components/export-button/index.ts b/apps/web/src/pods/toolbar/components/export-button/index.ts similarity index 100% rename from src/pods/toolbar/components/export-button/index.ts rename to apps/web/src/pods/toolbar/components/export-button/index.ts diff --git a/src/pods/toolbar/components/index.ts b/apps/web/src/pods/toolbar/components/index.ts similarity index 100% rename from src/pods/toolbar/components/index.ts rename to apps/web/src/pods/toolbar/components/index.ts diff --git a/src/pods/toolbar/components/new-button/index.ts b/apps/web/src/pods/toolbar/components/new-button/index.ts similarity index 100% rename from src/pods/toolbar/components/new-button/index.ts rename to apps/web/src/pods/toolbar/components/new-button/index.ts diff --git a/src/pods/toolbar/components/new-button/new-button.tsx b/apps/web/src/pods/toolbar/components/new-button/new-button.tsx similarity index 70% rename from src/pods/toolbar/components/new-button/new-button.tsx rename to apps/web/src/pods/toolbar/components/new-button/new-button.tsx index 478c1eb4..147843d3 100644 --- a/src/pods/toolbar/components/new-button/new-button.tsx +++ b/apps/web/src/pods/toolbar/components/new-button/new-button.tsx @@ -1,6 +1,6 @@ -import { NewIcon } from '@/common/components/icons/new-button.components'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; -import { useCanvasContext } from '@/core/providers'; +import { NewIcon } from '#common/components/icons/new-button.components'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; +import { useCanvasContext } from '#core/providers'; import { ToolbarButton } from '../toolbar-button'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; diff --git a/src/pods/toolbar/components/open-button/index.ts b/apps/web/src/pods/toolbar/components/open-button/index.ts similarity index 100% rename from src/pods/toolbar/components/open-button/index.ts rename to apps/web/src/pods/toolbar/components/open-button/index.ts diff --git a/src/pods/toolbar/components/open-button/open-button.tsx b/apps/web/src/pods/toolbar/components/open-button/open-button.tsx similarity index 67% rename from src/pods/toolbar/components/open-button/open-button.tsx rename to apps/web/src/pods/toolbar/components/open-button/open-button.tsx index a980602c..a53b83c3 100644 --- a/src/pods/toolbar/components/open-button/open-button.tsx +++ b/apps/web/src/pods/toolbar/components/open-button/open-button.tsx @@ -1,7 +1,7 @@ -import { OpenIcon } from '@/common/components/icons/open-icon.component'; +import { OpenIcon } from '#common/components/icons/open-icon.component'; import { ToolbarButton } from '../toolbar-button'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; -import { useLocalDisk } from '@/core/local-disk'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; +import { useLocalDisk } from '#core/local-disk'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; export const OpenButton = () => { diff --git a/src/pods/toolbar/components/redo-button/index.ts b/apps/web/src/pods/toolbar/components/redo-button/index.ts similarity index 100% rename from src/pods/toolbar/components/redo-button/index.ts rename to apps/web/src/pods/toolbar/components/redo-button/index.ts diff --git a/src/pods/toolbar/components/redo-button/redo-button.tsx b/apps/web/src/pods/toolbar/components/redo-button/redo-button.tsx similarity index 71% rename from src/pods/toolbar/components/redo-button/redo-button.tsx rename to apps/web/src/pods/toolbar/components/redo-button/redo-button.tsx index dd96735b..cf1220ce 100644 --- a/src/pods/toolbar/components/redo-button/redo-button.tsx +++ b/apps/web/src/pods/toolbar/components/redo-button/redo-button.tsx @@ -1,7 +1,7 @@ -import { RedoIcon } from '@/common/components/icons/redo-icon.component'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; +import { RedoIcon } from '#common/components/icons/redo-icon.component'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; import { ToolbarButton } from '../toolbar-button'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; export const RedoButton = () => { diff --git a/src/pods/toolbar/components/save-button/index.ts b/apps/web/src/pods/toolbar/components/save-button/index.ts similarity index 100% rename from src/pods/toolbar/components/save-button/index.ts rename to apps/web/src/pods/toolbar/components/save-button/index.ts diff --git a/src/pods/toolbar/components/save-button/save-button.tsx b/apps/web/src/pods/toolbar/components/save-button/save-button.tsx similarity index 68% rename from src/pods/toolbar/components/save-button/save-button.tsx rename to apps/web/src/pods/toolbar/components/save-button/save-button.tsx index 9ca2688c..5b6499dd 100644 --- a/src/pods/toolbar/components/save-button/save-button.tsx +++ b/apps/web/src/pods/toolbar/components/save-button/save-button.tsx @@ -1,9 +1,9 @@ -import { SaveIcon } from '@/common/components/icons/save-icon.component'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; +import { SaveIcon } from '#common/components/icons/save-icon.component'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; import { ToolbarButton } from '../toolbar-button'; -import { useLocalDisk } from '@/core/local-disk'; +import { useLocalDisk } from '#core/local-disk'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; export const SaveButton: React.FC = () => { const { handleSave } = useLocalDisk(); diff --git a/src/pods/toolbar/components/settings-button/index.ts b/apps/web/src/pods/toolbar/components/settings-button/index.ts similarity index 100% rename from src/pods/toolbar/components/settings-button/index.ts rename to apps/web/src/pods/toolbar/components/settings-button/index.ts diff --git a/src/pods/toolbar/components/settings-button/settings-button.tsx b/apps/web/src/pods/toolbar/components/settings-button/settings-button.tsx similarity index 53% rename from src/pods/toolbar/components/settings-button/settings-button.tsx rename to apps/web/src/pods/toolbar/components/settings-button/settings-button.tsx index dca0de5c..2aead942 100644 --- a/src/pods/toolbar/components/settings-button/settings-button.tsx +++ b/apps/web/src/pods/toolbar/components/settings-button/settings-button.tsx @@ -1,8 +1,8 @@ -import { SettingsIcon } from '@/common/components/icons/'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; -import { SettingsPod } from '@/pods'; -import { ToolbarButton } from '@/pods/toolbar/components/toolbar-button/toolbar-button'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; +import { SettingsIcon } from '#common/components/icons/'; +import { useModalDialogContext } from '#core/providers/model-dialog-providers/model-dialog.provider'; +import { SettingsPod } from '#pods/settings/settings.pod'; +import { ToolbarButton } from '#pods/toolbar/components/toolbar-button/toolbar-button'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; export const SettingsButton = () => { diff --git a/src/pods/toolbar/components/toolbar-button/index.ts b/apps/web/src/pods/toolbar/components/toolbar-button/index.ts similarity index 100% rename from src/pods/toolbar/components/toolbar-button/index.ts rename to apps/web/src/pods/toolbar/components/toolbar-button/index.ts diff --git a/src/pods/toolbar/components/toolbar-button/toolbar-button.tsx b/apps/web/src/pods/toolbar/components/toolbar-button/toolbar-button.tsx similarity index 93% rename from src/pods/toolbar/components/toolbar-button/toolbar-button.tsx rename to apps/web/src/pods/toolbar/components/toolbar-button/toolbar-button.tsx index 130383f5..ea075b62 100644 --- a/src/pods/toolbar/components/toolbar-button/toolbar-button.tsx +++ b/apps/web/src/pods/toolbar/components/toolbar-button/toolbar-button.tsx @@ -1,7 +1,7 @@ -//import { isMacOS } from '@/common/helpers/platform.helpers'; +//import { isMacOS } from '#common/helpers/platform.helpers'; import { useShortcut } from '../../shortcut/shortcut.hook'; import { ShortcutOptions } from '../../shortcut/shortcut.model'; -import { Tooltip } from '@/common/components/tooltip'; +import { Tooltip } from '#common/components/tooltip'; interface Props { onClick?: () => void; diff --git a/src/pods/toolbar/components/undo-button/index.ts b/apps/web/src/pods/toolbar/components/undo-button/index.ts similarity index 100% rename from src/pods/toolbar/components/undo-button/index.ts rename to apps/web/src/pods/toolbar/components/undo-button/index.ts diff --git a/src/pods/toolbar/components/undo-button/undo-button.tsx b/apps/web/src/pods/toolbar/components/undo-button/undo-button.tsx similarity index 71% rename from src/pods/toolbar/components/undo-button/undo-button.tsx rename to apps/web/src/pods/toolbar/components/undo-button/undo-button.tsx index 781b695c..06a2dcc5 100644 --- a/src/pods/toolbar/components/undo-button/undo-button.tsx +++ b/apps/web/src/pods/toolbar/components/undo-button/undo-button.tsx @@ -1,7 +1,7 @@ -import { UndoIcon } from '@/common/components/icons/undo-icon.component'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; +import { UndoIcon } from '#common/components/icons/undo-icon.component'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; import { ToolbarButton } from '../toolbar-button/toolbar-button'; -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; export const UndoButton = () => { diff --git a/src/pods/toolbar/components/zoom-in-button/index.ts b/apps/web/src/pods/toolbar/components/zoom-in-button/index.ts similarity index 100% rename from src/pods/toolbar/components/zoom-in-button/index.ts rename to apps/web/src/pods/toolbar/components/zoom-in-button/index.ts diff --git a/src/pods/toolbar/components/zoom-in-button/zoom-in-button.tsx b/apps/web/src/pods/toolbar/components/zoom-in-button/zoom-in-button.tsx similarity index 78% rename from src/pods/toolbar/components/zoom-in-button/zoom-in-button.tsx rename to apps/web/src/pods/toolbar/components/zoom-in-button/zoom-in-button.tsx index 800a2712..6c7c5653 100644 --- a/src/pods/toolbar/components/zoom-in-button/zoom-in-button.tsx +++ b/apps/web/src/pods/toolbar/components/zoom-in-button/zoom-in-button.tsx @@ -1,6 +1,6 @@ -import classes from '@/pods/toolbar/toolbar.pod.module.css'; -import { ZoomInIcon } from '@/common/components/icons/zoom-in.component'; -import { useCanvasContext, useInteractionModeContext } from '@/core/providers'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; +import { ZoomInIcon } from '#common/components/icons/zoom-in.component'; +import { useCanvasContext, useInteractionModeContext } from '#core/providers'; import { ToolbarButton } from '../toolbar-button'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; diff --git a/src/pods/toolbar/components/zoom-out-component/index.ts b/apps/web/src/pods/toolbar/components/zoom-out-component/index.ts similarity index 100% rename from src/pods/toolbar/components/zoom-out-component/index.ts rename to apps/web/src/pods/toolbar/components/zoom-out-component/index.ts diff --git a/src/pods/toolbar/components/zoom-out-component/zoom-out-button.tsx b/apps/web/src/pods/toolbar/components/zoom-out-component/zoom-out-button.tsx similarity index 78% rename from src/pods/toolbar/components/zoom-out-component/zoom-out-button.tsx rename to apps/web/src/pods/toolbar/components/zoom-out-component/zoom-out-button.tsx index 4e839e69..47724148 100644 --- a/src/pods/toolbar/components/zoom-out-component/zoom-out-button.tsx +++ b/apps/web/src/pods/toolbar/components/zoom-out-component/zoom-out-button.tsx @@ -1,6 +1,6 @@ -import { ZoomOutIcon } from '@/common/components/icons/zoom-out.component'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; -import { useCanvasContext, useInteractionModeContext } from '@/core/providers'; +import { ZoomOutIcon } from '#common/components/icons/zoom-out.component'; +import classes from '#pods/toolbar/toolbar.pod.module.css'; +import { useCanvasContext, useInteractionModeContext } from '#core/providers'; import { ToolbarButton } from '../toolbar-button'; import { SHORTCUTS } from '../../shortcut/shortcut.const'; diff --git a/src/pods/toolbar/shortcut/shortcut.const.ts b/apps/web/src/pods/toolbar/shortcut/shortcut.const.ts similarity index 100% rename from src/pods/toolbar/shortcut/shortcut.const.ts rename to apps/web/src/pods/toolbar/shortcut/shortcut.const.ts diff --git a/src/pods/toolbar/shortcut/shortcut.hook.tsx b/apps/web/src/pods/toolbar/shortcut/shortcut.hook.tsx similarity index 92% rename from src/pods/toolbar/shortcut/shortcut.hook.tsx rename to apps/web/src/pods/toolbar/shortcut/shortcut.hook.tsx index b1ee7198..498951a4 100644 --- a/src/pods/toolbar/shortcut/shortcut.hook.tsx +++ b/apps/web/src/pods/toolbar/shortcut/shortcut.hook.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react'; -import { isMacOS } from '@/common/helpers/platform.helpers'; -import { useCanvasContext } from '@/core/providers'; +import { isMacOS } from '#common/helpers/platform.helpers'; +import { useCanvasContext } from '#core/providers'; export interface ShortcutHookProps { targetKey: string[]; diff --git a/src/pods/toolbar/shortcut/shortcut.model.ts b/apps/web/src/pods/toolbar/shortcut/shortcut.model.ts similarity index 100% rename from src/pods/toolbar/shortcut/shortcut.model.ts rename to apps/web/src/pods/toolbar/shortcut/shortcut.model.ts diff --git a/src/pods/toolbar/toolbar.pod.module.css b/apps/web/src/pods/toolbar/toolbar.pod.module.css similarity index 100% rename from src/pods/toolbar/toolbar.pod.module.css rename to apps/web/src/pods/toolbar/toolbar.pod.module.css diff --git a/src/pods/toolbar/toolbar.pod.tsx b/apps/web/src/pods/toolbar/toolbar.pod.tsx similarity index 96% rename from src/pods/toolbar/toolbar.pod.tsx rename to apps/web/src/pods/toolbar/toolbar.pod.tsx index acf08729..ff9e7b75 100644 --- a/src/pods/toolbar/toolbar.pod.tsx +++ b/apps/web/src/pods/toolbar/toolbar.pod.tsx @@ -13,7 +13,7 @@ import { } from './components/index'; import classes from './toolbar.pod.module.css'; import { SettingsButton } from './components/settings-button'; -import { useInteractionModeContext } from '@/core/providers'; +import { useInteractionModeContext } from '#core/providers'; export const ToolbarPod: React.FC = () => { const { interactionMode } = useInteractionModeContext(); diff --git a/src/reset.css b/apps/web/src/reset.css similarity index 97% rename from src/reset.css rename to apps/web/src/reset.css index d463d953..c9ac8726 100644 --- a/src/reset.css +++ b/apps/web/src/reset.css @@ -22,8 +22,8 @@ dd { } /* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ -ul[role="list"], -ol[role="list"] { +ul[role='list'], +ol[role='list'] { list-style: none; } diff --git a/src/scenes/accordion-section-visibility.hook.ts b/apps/web/src/scenes/accordion-section-visibility.hook.ts similarity index 95% rename from src/scenes/accordion-section-visibility.hook.ts rename to apps/web/src/scenes/accordion-section-visibility.hook.ts index adfbc522..70753fb7 100644 --- a/src/scenes/accordion-section-visibility.hook.ts +++ b/apps/web/src/scenes/accordion-section-visibility.hook.ts @@ -1,4 +1,4 @@ -import { useCanvasContext } from '@/core/providers'; +import { useCanvasContext } from '#core/providers'; import { useEffect, useRef, useState } from 'react'; export const useAccordionSectionVisibility = () => { diff --git a/src/scenes/main.module.css b/apps/web/src/scenes/main.module.css similarity index 100% rename from src/scenes/main.module.css rename to apps/web/src/scenes/main.module.css diff --git a/src/scenes/main.scene.tsx b/apps/web/src/scenes/main.scene.tsx similarity index 89% rename from src/scenes/main.scene.tsx rename to apps/web/src/scenes/main.scene.tsx index 6a9d43bf..aa2eef41 100644 --- a/src/scenes/main.scene.tsx +++ b/apps/web/src/scenes/main.scene.tsx @@ -1,4 +1,4 @@ -import { MainLayout } from '@/layout/main.layout'; +import { MainLayout } from '#layout/main.layout'; import classes from './main.module.css'; import { @@ -10,12 +10,12 @@ import { RichComponentsGalleryPod, TextComponetGalleryPod, LowWireframeGalleryPod, -} from '@/pods'; -import { PropertiesPod } from '@/pods/properties'; -import { FooterPod } from '@/pods/footer/footer.pod'; -import { ThumbPagesPod } from '@/pods/thumb-pages'; +} from '#pods'; +import { PropertiesPod } from '#pods/properties'; +import { FooterPod } from '#pods/footer/footer.pod'; +import { ThumbPagesPod } from '#pods/thumb-pages'; import { useAccordionSectionVisibility } from './accordion-section-visibility.hook'; -import { useInteractionModeContext } from '@/core/providers'; +import { useInteractionModeContext } from '#core/providers'; export const MainScene = () => { const { isThumbPagesPodOpen, thumbPagesPodRef } = diff --git a/src/vite-env.d.ts b/apps/web/src/vite-env.d.ts similarity index 100% rename from src/vite-env.d.ts rename to apps/web/src/vite-env.d.ts diff --git a/apps/web/src/vitest.d.ts b/apps/web/src/vitest.d.ts new file mode 100644 index 00000000..9896c472 --- /dev/null +++ b/apps/web/src/vitest.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json new file mode 100644 index 00000000..fc889add --- /dev/null +++ b/apps/web/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@lemoncode/typescript-config/browser", + "include": ["src", "e2e", "./global.d.ts"], + "compilerOptions": { + "rootDir": ".", + "allowImportingTsExtensions": true, + "moduleDetection": "force", + "verbatimModuleSyntax": false, + "noUncheckedIndexedAccess": false, + "paths": { + "#*": ["./src/*"] + } + } +} diff --git a/apps/web/vite.config.ts b/apps/web/vite.config.ts new file mode 100644 index 00000000..20ea3c5b --- /dev/null +++ b/apps/web/vite.config.ts @@ -0,0 +1,19 @@ +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + build: { + rolldownOptions: { + input: { + main: './index.html', + editor: './editor.html', + }, + }, + }, + server: { + port: 5173, + open: true, + }, +}); diff --git a/apps/web/vitest.config.ts b/apps/web/vitest.config.ts new file mode 100644 index 00000000..af5add4a --- /dev/null +++ b/apps/web/vitest.config.ts @@ -0,0 +1 @@ +export { browserVitestConfig as default } from '@lemoncode/vitest-config/browser'; diff --git a/local-npm-registry/.gitignore b/local-npm-registry/.gitignore new file mode 100644 index 00000000..fa780e25 --- /dev/null +++ b/local-npm-registry/.gitignore @@ -0,0 +1 @@ +storage diff --git a/local-npm-registry/config/config.yaml b/local-npm-registry/config/config.yaml new file mode 100644 index 00000000..1baba65b --- /dev/null +++ b/local-npm-registry/config/config.yaml @@ -0,0 +1,14 @@ +storage: ./storage + +uplinks: + npmjs: + url: https://registry.npmjs.org/ + +packages: + '@lemoncode/*': + access: $anonymous + publish: $anonymous + '**': + access: $anonymous + publish: $anonymous + proxy: npmjs diff --git a/local-npm-registry/docker-compose.yaml b/local-npm-registry/docker-compose.yaml new file mode 100644 index 00000000..f5715fd1 --- /dev/null +++ b/local-npm-registry/docker-compose.yaml @@ -0,0 +1,9 @@ +services: + local-npm-registry: + image: verdaccio/verdaccio + ports: + - '4873:4873' + volumes: + - ./config:/verdaccio/conf +volumes: + config: diff --git a/local-npm-registry/package.json b/local-npm-registry/package.json new file mode 100644 index 00000000..9c9da06a --- /dev/null +++ b/local-npm-registry/package.json @@ -0,0 +1,10 @@ +{ + "name": "local-npm-registry", + "private": true, + "type": "module", + "scripts": { + "prestart": "npm stop", + "start": "docker compose up -d", + "stop": "docker compose down --remove-orphans" + } +} diff --git a/local-npm-registry/publish.js b/local-npm-registry/publish.js new file mode 100644 index 00000000..c3a6efec --- /dev/null +++ b/local-npm-registry/publish.js @@ -0,0 +1,26 @@ +import childProcess from 'node:child_process'; +import fs from 'node:fs/promises'; +import path from 'node:path'; + +const [...publishCommandArgs] = process.argv.slice(2); +const localRegistryConfig = `registry=http://localhost:4873 +//localhost:4873/:_authToken="local-token" +@lemoncode:registry=http://localhost:4873 +`; +const publishCommand = publishCommandArgs.join(' '); +const NPMRC_FILE_PATH = path.resolve(process.cwd(), '.npmrc'); + +let originalContent = ''; +try { + originalContent = await fs.readFile(NPMRC_FILE_PATH, 'utf-8'); +} catch { + originalContent = ''; +} + +try { + const newContent = originalContent.trimEnd() + '\n' + localRegistryConfig; + await fs.writeFile(NPMRC_FILE_PATH, newContent); + childProcess.execSync(`${publishCommand}`, { stdio: 'inherit', shell: true }); +} finally { + await fs.writeFile(NPMRC_FILE_PATH, originalContent); +} diff --git a/oxlint.config.ts b/oxlint.config.ts new file mode 100644 index 00000000..aeb66ff8 --- /dev/null +++ b/oxlint.config.ts @@ -0,0 +1,40 @@ +import { defineConfig } from 'oxlint'; + +export default defineConfig({ + plugins: ['typescript', 'import', 'oxc', 'unicorn'], + ignorePatterns: ['dist', 'coverage', 'node_modules'], + categories: { + correctness: 'error', + suspicious: 'warn', + perf: 'warn', + }, + rules: { + 'typescript/no-explicit-any': 'warn', + 'typescript/no-non-null-assertion': 'warn', + 'import/no-cycle': 'error', + 'import/no-self-import': 'error', + 'unicorn/no-null': 'off', + 'unicorn/no-useless-spread': 'off', + }, + overrides: [ + { + files: ['apps/web/**/*.{ts,tsx}'], + plugins: ['react', 'jsx-a11y'], + rules: { + 'react/react-in-jsx-scope': 'off', + 'react/no-direct-mutation-state': 'error', + 'react/jsx-no-target-blank': 'error', + 'jsx-a11y/alt-text': 'error', + 'jsx-a11y/anchor-has-content': 'error', + }, + }, + { + files: ['**/*.spec.ts', '**/*.spec.tsx'], + plugins: ['vitest'], + rules: { + 'typescript/no-explicit-any': 'off', + 'typescript/no-non-null-assertion': 'off', + }, + }, + ], +}); diff --git a/package-lock.json b/package-lock.json index c8a6ac69..ca010420 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,344 +1,432 @@ { - "name": "quickmock", - "version": "0.0.0", + "name": "@lemoncode/monorepo", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "quickmock", + "name": "@lemoncode/monorepo", + "workspaces": [ + "apps/*", + "packages/*", + "tooling/*" + ], + "devDependencies": { + "@changesets/cli": "2.30.0", + "@types/node": "24.12.2", + "husky": "9.1.7", + "lint-staged": "16.4.0", + "oxlint": "1.60.0", + "prettier": "3.8.3", + "tsx": "4.21.0", + "turbo": "2.9.6", + "typescript": "6.0.2" + }, + "engines": { + "node": ">=24", + "npm": ">=11" + } + }, + "apps/web": { + "name": "@lemoncode/web", "version": "0.0.0", - "hasInstallScript": true, "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.2.1", - "@fontsource-variable/montserrat": "^5.0.20", - "@fontsource/balsamiq-sans": "^5.0.21", - "@types/lodash.clonedeep": "^4.5.9", - "@uiw/react-color-chrome": "^2.3.2", - "html2canvas": "^1.4.1", - "immer": "^10.1.1", - "konva": "^9.3.12", - "lodash.clonedeep": "^4.5.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-konva": "^18.2.10", - "react-konva-utils": "^1.0.6", - "tiny-invariant": "^1.3.3", - "use-debounce": "^10.0.4", - "use-image": "^1.1.1", - "uuid": "^10.0.0" + "@atlaskit/pragmatic-drag-and-drop": "1.7.10", + "@fontsource-variable/montserrat": "5.0.20", + "@fontsource/balsamiq-sans": "5.0.21", + "@uiw/react-color-chrome": "2.10.1", + "html2canvas": "1.4.1", + "immer": "10.1.1", + "konva": "9.3.22", + "lodash.clonedeep": "4.5.0", + "react": "18.3.1", + "react-dom": "18.3.1", + "react-konva": "18.2.14", + "react-konva-utils": "1.1.3", + "tiny-invariant": "1.3.3", + "use-debounce": "10.0.4", + "use-image": "1.1.1", + "uuid": "10.0.0" }, "devDependencies": { - "@dotenvx/dotenvx": "^1.14.2", - "@playwright/test": "^1.47.2", - "@types/jest": "^29.5.12", - "@types/node": "^22.5.5", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@types/uuid": "^10.0.0", - "@types/wicg-file-system-access": "^2023.10.5", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", - "@vitejs/plugin-react": "^4.3.1", - "eslint": "^8.57.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.7", - "husky": "^9.0.11", - "jsdom": "^24.1.0", - "lint-staged": "^15.2.7", - "prettier": "^3.3.2", - "typescript": "^5.2.2", - "vite": "^5.3.1", - "vitest": "^1.6.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "@lemoncode/typescript-config": "*", + "@lemoncode/vitest-config": "*", + "@playwright/test": "1.59.1", + "@types/lodash.clonedeep": "4.5.9", + "@types/react": "18.3.28", + "@types/react-dom": "18.3.7", + "@types/uuid": "10.0.0", + "@types/wicg-file-system-access": "2023.10.7", + "@vitejs/plugin-react": "6.0.1", + "vite": "8.0.8" + } + }, + "apps/web/node_modules/@fontsource-variable/montserrat": { + "version": "5.0.20", + "license": "OFL-1.1" + }, + "apps/web/node_modules/@fontsource/balsamiq-sans": { + "version": "5.0.21", + "license": "OFL-1.1" + }, + "apps/web/node_modules/immer": { + "version": "10.1.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "apps/web/node_modules/use-debounce": { + "version": "10.0.4", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "apps/web/node_modules/use-image": { + "version": "1.1.1", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" } }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, "node_modules/@atlaskit/pragmatic-drag-and-drop": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-1.2.1.tgz", - "integrity": "sha512-gW2wJblFAeg94YXITHg0YdhFM2nmFAdDmX0LKYBIm79yEbIrOiuHHukgSjII07M4U5JpJ0Ff/4BaADjN23ix+A==", + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-1.7.10.tgz", + "integrity": "sha512-2oHJbThv26CVxM+N8w1X9iyvnts9f8n5+XdCHyG2DtLtqk97rsvbykUyRV2m2llpH06ZdBycycz/+H7eBgRN4A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.0.0", "bind-event-listener": "^3.0.0", "raf-schd": "^4.0.3" } }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "node_modules/@azu/format-text": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@azu/format-text/-/format-text-1.0.2.tgz", + "integrity": "sha512-Swi4N7Edy1Eqq82GxgEECXSSLyn6GOb5htRFPzBDdUkECGXtlf12ynO5oJSpWKPwCaUssOu7NfhDcCWpIC6Ywg==", "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@azu/style-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azu/style-format/-/style-format-1.0.1.tgz", + "integrity": "sha512-AHcTojlNBdD/3/KxIKlg8sxIWHfOtQszLvOpagLTO+bjC3u7SAszu1lf//u7JJC50aUSH+BVWDD/KvaA6Gfn5g==", + "dev": true, + "license": "WTFPL", "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@azu/format-text": "^1.0.1" } }, - "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=18.0.0" } }, - "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "node_modules/@azure/core-auth": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz", + "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==", "dev": true, + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=20.0.0" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@azure/core-client": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.1.tgz", + "integrity": "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "node_modules/@azure/core-rest-pipeline": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.23.0.tgz", + "integrity": "sha512-Evs1INHo+jUjwHi1T6SG6Ua/LHOQBCLuKEEE6efIpt4ZOoNonaT1kP32GoOcdNDbfqsD2445CPri3MubBy5DEQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=20.0.0" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "node_modules/@azure/core-tracing": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz", + "integrity": "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=20.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@azure/core-util": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz", + "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "node_modules/@azure/identity": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.13.1.tgz", + "integrity": "sha512-5C/2WD5Vb1lHnZS16dNQRPMjN6oV/Upba+C9nBIs15PmOi6A3ZGs4Lr2u60zw4S04gi+u3cEXiqTVP7M4Pz3kw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^5.5.0", + "@azure/msal-node": "^5.1.0", + "open": "^10.1.0", + "tslib": "^2.2.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=20.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "node_modules/@azure/logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz", + "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=20.0.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "node_modules/@azure/msal-browser": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-5.6.3.tgz", + "integrity": "sha512-sTjMtUm+bJpENU/1WlRzHEsgEHppZDZ1EtNyaOODg/sQBtMxxJzGB+MOCM+T2Q5Qe1fKBrdxUmjyRxm0r7Ez9w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@azure/msal-common": "16.4.1" }, "engines": { - "node": ">=6.9.0" + "node": ">=0.8.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "node_modules/@azure/msal-common": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-16.4.1.tgz", + "integrity": "sha512-Bl8f+w37xkXsYh7QRkAKCFGYtWMYuOVO7Lv+BxILrvGz3HbIEF22Pt0ugyj0QPOl6NLrHcnNUQ9yeew98P/5iw==", "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=0.8.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "node_modules/@azure/msal-node": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-5.1.2.tgz", + "integrity": "sha512-DoeSJ9U5KPAIZoHsPywvfEj2MhBniQe0+FSpjLUTdWoIkI999GB5USkW6nNEHnIaLVxROHXvprWA1KzdS1VQ4A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" + "@azure/msal-common": "16.4.1", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" }, "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "node": ">=20" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "node_modules/@azure/msal-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "engines": { - "node": ">=6.9.0" + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "node_modules/@babel/code-frame/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/generator": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0-rc.3.tgz", + "integrity": "sha512-em37/13/nR320G4jab/nIIHZgc2Wz2y/D39lxnTyxB4/D/omPQncl/lSdlnJY1OhQcRGugTSIF2l/69o31C9dA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@babel/parser": "^8.0.0-rc.3", + "@babel/types": "^8.0.0-rc.3", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" }, "engines": { - "node": ">=6.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "node_modules/@babel/generator/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.3.tgz", + "integrity": "sha512-AmwWFx1m8G/a5cXkxLxTiWl+YEoWuoFLUCwqMlNuWO1tqAYITQAbCRPUkyBHv1VOFgfjVOqEj6L3u15J5ZCzTA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "node_modules/@babel/generator/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.3.tgz", + "integrity": "sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "node_modules/@babel/generator/node_modules/@babel/parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.3.tgz", + "integrity": "sha512-B20dvP3MfNc/XS5KKCHy/oyWl5IA6Cn9YjXRdDlCjNmUFrjvLXMNUfQq/QUy9fnG2gYkKKcrto2YaF9B32ToOQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.0-rc.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">=6.9.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "node_modules/@babel/generator/node_modules/@babel/types": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.3.tgz", + "integrity": "sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/helper-string-parser": "^8.0.0-rc.3", + "@babel/helper-validator-identifier": "^8.0.0-rc.3" }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -346,1038 +434,1013 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": ">=18" } }, - "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "node_modules/@blazediff/core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@blazediff/core/-/core-1.9.1.tgz", + "integrity": "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==", "dev": true, + "license": "MIT" + }, + "node_modules/@changesets/apply-release-plan": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.1.0.tgz", + "integrity": "sha512-yq8ML3YS7koKQ/9bk1PqO0HMzApIFNwjlwCnwFEXMzNe8NpzeeYYKCmnhWJGkN8g7E51MnWaSbqRcTcdIxUgnQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@changesets/config": "^3.1.3", + "@changesets/get-version-range-type": "^0.4.0", + "@changesets/git": "^3.0.4", + "@changesets/should-skip-package": "^0.1.2", + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3", + "detect-indent": "^6.0.0", + "fs-extra": "^7.0.1", + "lodash.startcase": "^4.4.0", + "outdent": "^0.5.0", + "prettier": "^2.7.1", + "resolve-from": "^5.0.0", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "node_modules/@changesets/assemble-release-plan": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.9.tgz", + "integrity": "sha512-tPgeeqCHIwNo8sypKlS3gOPmsS3wP0zHt67JDuL20P4QcXiw/O4Hl7oXiuLnP9yg+rXLQ2sScdV1Kkzde61iSQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.3", + "@changesets/should-skip-package": "^0.1.2", + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3", + "semver": "^7.5.3" } }, - "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "node_modules/@changesets/changelog-git": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.1.tgz", + "integrity": "sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" + "@changesets/types": "^6.1.0" } }, - "node_modules/@dotenvx/dotenvx": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.14.2.tgz", - "integrity": "sha512-88lviNO27WUGpZ/ya1VF7AseiWsCl1YRnm9pNYp7pIOZyu/gXM11wpJ8/DViV6oxSkrF4mi3ZalmaukHj5F8Ow==", + "node_modules/@changesets/cli": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.30.0.tgz", + "integrity": "sha512-5D3Nk2JPqMI1wK25pEymeWRSlSMdo5QOGlyfrKg0AOufrUcjEE3RQgaCpHoBiM31CSNrtSgdJ0U6zL1rLDDfBA==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "commander": "^11.1.0", - "dotenv": "^16.4.5", - "eciesjs": "^0.4.6", - "execa": "^5.1.1", - "fdir": "^6.2.0", - "ignore": "^5.3.0", - "object-treeify": "1.1.33", - "picomatch": "^4.0.2", - "which": "^4.0.0" + "@changesets/apply-release-plan": "^7.1.0", + "@changesets/assemble-release-plan": "^6.0.9", + "@changesets/changelog-git": "^0.2.1", + "@changesets/config": "^3.1.3", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.3", + "@changesets/get-release-plan": "^4.0.15", + "@changesets/git": "^3.0.4", + "@changesets/logger": "^0.1.1", + "@changesets/pre": "^2.0.2", + "@changesets/read": "^0.6.7", + "@changesets/should-skip-package": "^0.1.2", + "@changesets/types": "^6.1.0", + "@changesets/write": "^0.4.0", + "@inquirer/external-editor": "^1.0.2", + "@manypkg/get-packages": "^1.1.3", + "ansi-colors": "^4.1.3", + "enquirer": "^2.4.1", + "fs-extra": "^7.0.1", + "mri": "^1.2.0", + "package-manager-detector": "^0.2.0", + "picocolors": "^1.1.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.3", + "spawndamnit": "^3.0.1", + "term-size": "^2.1.0" }, "bin": { - "dotenvx": "src/cli/dotenvx.js", - "git-dotenvx": "src/cli/dotenvx.js" - }, - "funding": { - "url": "https://dotenvx.com" + "changeset": "bin.js" } }, - "node_modules/@dotenvx/dotenvx/node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "node_modules/@changesets/config": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.1.3.tgz", + "integrity": "sha512-vnXjcey8YgBn2L1OPWd3ORs0bGC4LoYcK/ubpgvzNVr53JXV5GiTVj7fWdMRsoKUH7hhhMAQnsJUqLr21EncNw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=16" + "dependencies": { + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.3", + "@changesets/logger": "^0.1.1", + "@changesets/should-skip-package": "^0.1.2", + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1", + "micromatch": "^4.0.8" } }, - "node_modules/@dotenvx/dotenvx/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/@changesets/errors": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz", + "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "extendable-error": "^0.1.5" } }, - "node_modules/@dotenvx/dotenvx/node_modules/fdir": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.0.tgz", - "integrity": "sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==", + "node_modules/@changesets/get-dependents-graph": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.3.tgz", + "integrity": "sha512-gphr+v0mv2I3Oxt19VdWRRUxq3sseyUpX9DaHpTUmLj92Y10AGy+XOtV+kbM6L/fDcpx7/ISDFK6T8A/P3lOdQ==", "dev": true, "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "dependencies": { + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3", + "picocolors": "^1.1.0", + "semver": "^7.5.3" } }, - "node_modules/@dotenvx/dotenvx/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/@changesets/get-release-plan": { + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.15.tgz", + "integrity": "sha512-Q04ZaRPuEVZtA+auOYgFaVQQSA98dXiVe/yFaZfY7hoSmQICHGvP0TF4u3EDNHWmmCS4ekA/XSpKlSM2PyTS2g==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@changesets/assemble-release-plan": "^6.0.9", + "@changesets/config": "^3.1.3", + "@changesets/pre": "^2.0.2", + "@changesets/read": "^0.6.7", + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3" } }, - "node_modules/@dotenvx/dotenvx/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/@changesets/get-version-range-type": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz", + "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" + "license": "MIT" + }, + "node_modules/@changesets/git": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.4.tgz", + "integrity": "sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@changesets/errors": "^0.2.0", + "@manypkg/get-packages": "^1.1.3", + "is-subdir": "^1.1.1", + "micromatch": "^4.0.8", + "spawndamnit": "^3.0.1" } }, - "node_modules/@dotenvx/dotenvx/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/@changesets/logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.1.tgz", + "integrity": "sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "picocolors": "^1.1.0" } }, - "node_modules/@dotenvx/dotenvx/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/@changesets/parse": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.3.tgz", + "integrity": "sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" + "license": "MIT", + "dependencies": { + "@changesets/types": "^6.1.0", + "js-yaml": "^4.1.1" } }, - "node_modules/@dotenvx/dotenvx/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/@changesets/pre": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.2.tgz", + "integrity": "sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "dependencies": { + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1" } }, - "node_modules/@dotenvx/dotenvx/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/@changesets/read": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.7.tgz", + "integrity": "sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" + "@changesets/git": "^3.0.4", + "@changesets/logger": "^0.1.1", + "@changesets/parse": "^0.4.3", + "@changesets/types": "^6.1.0", + "fs-extra": "^7.0.1", + "p-filter": "^2.1.0", + "picocolors": "^1.1.0" } }, - "node_modules/@dotenvx/dotenvx/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/@changesets/should-skip-package": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@changesets/should-skip-package/-/should-skip-package-0.1.2.tgz", + "integrity": "sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@changesets/types": "^6.1.0", + "@manypkg/get-packages": "^1.1.3" } }, - "node_modules/@dotenvx/dotenvx/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "node_modules/@changesets/types": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.1.0.tgz", + "integrity": "sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@changesets/write": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.4.0.tgz", + "integrity": "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@changesets/types": "^6.1.0", + "fs-extra": "^7.0.1", + "human-id": "^4.1.1", + "prettier": "^2.7.1" + } + }, + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, "engines": { - "node": ">=12" + "node": ">=10.13.0" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@clack/core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.2.0.tgz", + "integrity": "sha512-qfxof/3T3t9DPU/Rj3OmcFyZInceqj/NVtO9rwIuJqCUgh32gwPjpFQQp/ben07qKlhpwq7GzfWpST4qdJ5Drg==", + "license": "MIT", + "dependencies": { + "fast-wrap-ansi": "^0.1.3", + "sisteransi": "^1.0.5" + } + }, + "node_modules/@clack/prompts": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.2.0.tgz", + "integrity": "sha512-4jmztR9fMqPMjz6H/UZXj0zEmE43ha1euENwkckKKel4XpSfokExPo5AiVStdHSAlHekz4d0CA/r45Ok1E4D3w==", + "license": "MIT", + "dependencies": { + "@clack/core": "1.2.0", + "fast-string-width": "^1.1.0", + "fast-wrap-ansi": "^0.1.3", + "sisteransi": "^1.0.5" } }, - "node_modules/@dotenvx/dotenvx/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", "dev": true, - "license": "ISC" + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } }, - "node_modules/@dotenvx/dotenvx/node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" + "optional": true, + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@dotenvx/dotenvx/node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, - "license": "ISC", + "license": "MIT", + "optional": true, "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "tslib": "^2.4.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "node_modules/@isaacs/cliui": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, + "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "MIT", + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } + "node_modules/@lemoncode/quickmock-mcp": { + "resolved": "packages/mcp", + "link": true }, - "node_modules/@fontsource-variable/montserrat": { - "version": "5.0.20", - "resolved": "https://registry.npmjs.org/@fontsource-variable/montserrat/-/montserrat-5.0.20.tgz", - "integrity": "sha512-/D+j5M68+GnSbi1A0K+0qnVpnu8O2rd5zsmE7COgD7EK/G9tNEE8emcg7+HkKsyViMmYuQ+t4o0FmB6pU/aBRQ==" + "node_modules/@lemoncode/quickmock-vscode-extension": { + "resolved": "packages/vscode-extension", + "link": true }, - "node_modules/@fontsource/balsamiq-sans": { - "version": "5.0.21", - "resolved": "https://registry.npmjs.org/@fontsource/balsamiq-sans/-/balsamiq-sans-5.0.21.tgz", - "integrity": "sha512-LAFerSBxVKNHFy3B9kyKgkQUIG6Om2RLQ6vDayd4IQFlRmhuxdV9nOarUjoVHwKWYk8VqT+C6fBMW+EGMJ1eFA==" + "node_modules/@lemoncode/tsdown-config": { + "resolved": "tooling/tsdown", + "link": true }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@lemoncode/typescript-config": { + "resolved": "tooling/typescript", + "link": true + }, + "node_modules/@lemoncode/vitest-config": { + "resolved": "tooling/vitest", + "link": true + }, + "node_modules/@lemoncode/web": { + "resolved": "apps/web", + "link": true + }, + "node_modules/@manypkg/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", "dev": true, + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@manypkg/find-root/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } + "license": "MIT" }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@manypkg/find-root/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": "*" + "node": ">=6 <7 || >=8" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@manypkg/get-packages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.3.tgz", + "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.5.5", + "@changesets/types": "^4.0.1", + "@manypkg/find-root": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "read-yaml-file": "^1.1.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz", + "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==", + "dev": true, + "license": "MIT" }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "node_modules/@manypkg/get-packages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, + "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@tybys/wasm-util": "^0.10.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@noble/ciphers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", - "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", - "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.5.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { "node": ">= 8" @@ -1388,6 +1451,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -1397,6 +1461,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -1405,2082 +1470,5319 @@ "node": ">= 8" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "node_modules/@oxc-project/types": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, + "license": "MIT", "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/@playwright/test": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.47.2.tgz", - "integrity": "sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "playwright": "1.47.2" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=18" + "url": "https://github.com/sponsors/Boshen" } }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", - "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "node_modules/@oxlint/binding-android-arm-eabi": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm-eabi/-/binding-android-arm-eabi-1.60.0.tgz", + "integrity": "sha512-YdeJKaZckDQL1qa62a1aKq/goyq48aX3yOxaaWqWb4sau4Ee4IiLbamftNLU3zbePky6QsDj6thnSSzHRBjDfA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", - "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "node_modules/@oxlint/binding-android-arm64": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-android-arm64/-/binding-android-arm64-1.60.0.tgz", + "integrity": "sha512-7ANS7PpXCfq84xZQ8E5WPs14gwcuPcl+/8TFNXfpSu0CQBXz3cUo2fDpHT8v8HJN+Ut02eacvMAzTnc9s6X4tw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", - "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "node_modules/@oxlint/binding-darwin-arm64": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-arm64/-/binding-darwin-arm64-1.60.0.tgz", + "integrity": "sha512-pJsgd9AfplLGBm1fIr25V6V14vMrayhx4uIQvlfH7jWs2SZwSrvi3TfgfJySB8T+hvyEH8K2zXljQiUnkgUnfQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", - "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "node_modules/@oxlint/binding-darwin-x64": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-darwin-x64/-/binding-darwin-x64-1.60.0.tgz", + "integrity": "sha512-Ue1aXHX49ivwflKqGJc7zcd/LeLgbhaTcDCQStgx5x06AXgjEAZmvrlMuIkWd4AL4FHQe6QJ9f33z04Cg448VQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-freebsd-x64": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-freebsd-x64/-/binding-freebsd-x64-1.60.0.tgz", + "integrity": "sha512-YCyQzsQtusQw+gNRW9rRTifSO+Dt/+dtCl2NHoDMZqJlRTEZ/Oht9YnuporI9yiTx7+cB+eqzX3MtHHVHGIWhg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", - "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "node_modules/@oxlint/binding-linux-arm-gnueabihf": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.60.0.tgz", + "integrity": "sha512-c7dxM2Zksa45Qw16i2iGY3Fti2NirJ38FrsBsKw+qcJ0OtqTsBgKJLF0xV+yLG56UH01Z8WRPgsw31e0MoRoGQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", - "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "node_modules/@oxlint/binding-linux-arm-musleabihf": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-1.60.0.tgz", + "integrity": "sha512-ZWALoA42UYqBEP1Tbw9OWURgFGS1nWj2AAvLdY6ZcGx/Gj93qVCBKjcvwXMupZibYwFbi9s/rzqkZseb/6gVtQ==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", - "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "node_modules/@oxlint/binding-linux-arm64-gnu": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.60.0.tgz", + "integrity": "sha512-tpy+1w4p9hN5CicMCxqNy6ymfRtV5ayE573vFNjp1k1TN/qhLFgflveZoE/0++RlkHikBz2vY545NWm/hp7big==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", - "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "node_modules/@oxlint/binding-linux-arm64-musl": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.60.0.tgz", + "integrity": "sha512-eDYDXZGhQAXyn6GwtwiX/qcLS0HlOLPJ/+iiIY8RYr+3P8oKBmgKxADLlniL6FtWfE7pPk7IGN9/xvDEvDvFeg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", - "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "node_modules/@oxlint/binding-linux-ppc64-gnu": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.60.0.tgz", + "integrity": "sha512-nxehly5XYBHUWI9VJX1bqCf9j/B43DaK/aS/T1fcxCpX3PA4Rm9BB54nPD1CKayT8xg6REN1ao+01hSRNgy8OA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", - "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "node_modules/@oxlint/binding-linux-riscv64-gnu": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-1.60.0.tgz", + "integrity": "sha512-j1qf/NaUfOWQutjeoooNG1Q0zsK0XGmSu1uDLq3cctquRF3j7t9Hxqf/76ehCc5GEUAanth2W4Fa+XT1RFg/nw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", - "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "node_modules/@oxlint/binding-linux-riscv64-musl": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-1.60.0.tgz", + "integrity": "sha512-YELKPRefQ/q/h3RUmeRfPCUhh2wBvgV1RyZ/F9M9u8cDyXsQW2ojv1DeWQTt466yczDITjZnIOg/s05pk7Ve2A==", "cpu": [ - "s390x" + "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", - "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "node_modules/@oxlint/binding-linux-s390x-gnu": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.60.0.tgz", + "integrity": "sha512-JkO3C6Gki7Y6h/MiIkFKvHFOz98/YWvQ4WYbK9DLXACMP2rjULzkeGyAzorJE5S1dzLQGFgeqvN779kSFwoV1g==", "cpu": [ - "x64" + "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", - "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "node_modules/@oxlint/binding-linux-x64-gnu": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.60.0.tgz", + "integrity": "sha512-XjKHdFVCpZZZSWBCKyyqCq65s2AKXykMXkjLoKYODrD+f5toLhlwsMESscu8FbgnJQ4Y/dpR/zdazsahmgBJIA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", - "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "node_modules/@oxlint/binding-linux-x64-musl": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-linux-x64-musl/-/binding-linux-x64-musl-1.60.0.tgz", + "integrity": "sha512-js29ZWIuPhNWzY8NC7KoffEMEeWG105vbmm+8EOJsC+T/jHBiKIJEUF78+F/IrgEWMMP9N0kRND4Pp75+xAhKg==", "cpu": [ - "arm64" + "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "win32" - ] + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", - "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "node_modules/@oxlint/binding-openharmony-arm64": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-openharmony-arm64/-/binding-openharmony-arm64-1.60.0.tgz", + "integrity": "sha512-H+PUITKHk04stFpWj3x3Kg08Afp/bcXSBi0EhasR5a0Vw7StXHTzdl655PUI0fB4qdh2Wsu6Dsi+3ACxPoyQnA==", "cpu": [ - "ia32" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ - "win32" - ] + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", - "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "node_modules/@oxlint/binding-win32-arm64-msvc": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.60.0.tgz", + "integrity": "sha512-WA/yc7f7ZfCefBXVzNHn1Ztulb1EFwNBb4jMZ6pjML0zz6pHujlF3Q3jySluz3XHl/GNeMTntG1seUBWVMlMag==", "cpu": [ - "x64" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" - ] - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-ia32-msvc": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.60.0.tgz", + "integrity": "sha512-33YxL1sqwYNZXtn3MD/4dno6s0xeedXOJlT1WohkVD565WvohClZUr7vwKdAk954n4xiEWJkewiCr+zLeq7AeA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@oxlint/binding-win32-x64-msvc": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@oxlint/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.60.0.tgz", + "integrity": "sha512-JOro4ZcfBLamJCyfURQmOQByoorgOdx3ZjAkSqnb/CyG/i+lN3KoV5LAgk5ZAW6DPq7/Cx7n23f8DuTWXTWgyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@playwright/test": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.59.1.tgz", + "integrity": "sha512-PG6q63nQg5c9rIi4/Z5lR5IVF7yU5MqmKaPOe0HSc0O2cX1fPi96sUQu5j7eo4gKCkB2AnNGoWt7y4/Xx3Kcqg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright": "1.59.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@quansync/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@quansync/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "quansync": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/@quansync/fs/node_modules/quansync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-1.0.0.tgz", + "integrity": "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz", + "integrity": "sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/config-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/config-loader": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "ajv": "^8.17.1", + "debug": "^4.4.1", + "rc-config-loader": "^4.1.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "structured-source": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", + "debug": "^4.4.1", + "pluralize": "^8.0.0", + "strip-ansi": "^7.1.0", + "table": "^6.9.0", + "terminal-link": "^4.0.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/formatter/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@secretlint/node": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", + "debug": "^4.4.1", + "p-map": "^7.0.3" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/node/node_modules/p-map": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@secretlint/profiler": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/resolver": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@secretlint/secretlint-formatter-sarif": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-sarif-builder": "^3.2.0" + } + }, + "node_modules/@secretlint/secretlint-rule-no-dotenv": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/secretlint-rule-preset-recommend": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/source-creator": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@secretlint/types": "^10.2.2", + "istextorbinary": "^9.5.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@secretlint/types": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@textlint/ast-node-types": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.5.4.tgz", + "integrity": "sha512-bVtB6VEy9U9DpW8cTt25k5T+lz86zV5w6ImePZqY1AXzSuPhqQNT77lkMPxonXzUducEIlSvUu3o7sKw3y9+Sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.5.4.tgz", + "integrity": "sha512-D9qJedKBLmAo+kiudop4UKgSxXMi4O8U86KrCidVXZ9RsK0NSVIw6+r2rlMUOExq79iEY81FRENyzmNVRxDBsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azu/format-text": "^1.0.2", + "@azu/style-format": "^1.0.1", + "@textlint/module-interop": "15.5.4", + "@textlint/resolver": "15.5.4", + "@textlint/types": "15.5.4", + "chalk": "^4.1.2", + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "lodash": "^4.18.1", + "pluralize": "^2.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "table": "^6.9.0", + "text-table": "^0.2.0" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/linter-formatter/node_modules/pluralize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-2.0.0.tgz", + "integrity": "sha512-TqNZzQCD4S42De9IfnnBvILN7HAW7riLqsCyp8lgjXeysyPlX5HhqKAcJHHHb9XskE4/a+7VGC9zzx8Ls0jOAw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/linter-formatter/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@textlint/module-interop": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.5.4.tgz", + "integrity": "sha512-JyAUd26ll3IFF87LP0uGoa8Tzw5ZKiYvGs6v8jLlzyND1lUYCI4+2oIAslrODLkf0qwoCaJrBQWM3wsw+asVGQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/resolver": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.5.4.tgz", + "integrity": "sha512-5GUagtpQuYcmhlOzBGdmVBvDu5lKgVTjwbxtdfoidN4OIqblIxThJHHjazU+ic+/bCIIzI2JcOjHGSaRmE8Gcg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@textlint/types": { + "version": "15.5.4", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.5.4.tgz", + "integrity": "sha512-mY28j2U7nrWmZbxyKnRvB8vJxJab4AxqOobLfb6iozrLelJbqxcOTvBQednadWPfAk9XWaZVMqUr9Nird3mutg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@textlint/ast-node-types": "15.5.4" + } + }, + "node_modules/@turbo/darwin-64": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@turbo/darwin-64/-/darwin-64-2.9.6.tgz", + "integrity": "sha512-X/56SnVXIQZBLKwniGTwEQTGmtE5brSACnKMBWpY3YafuxVYefrC2acamfjgxP7BG5w3I+6jf0UrLoSzgPcSJg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@turbo/darwin-arm64": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@turbo/darwin-arm64/-/darwin-arm64-2.9.6.tgz", + "integrity": "sha512-aalBeSl4agT/QtYGDyf/XLajedWzUC9Vg/pm/YO6QQ93vkQ91Vz5uK1ta5RbVRDozQSz4njxUNqRNmOXDzW+qw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@turbo/linux-64": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@turbo/linux-64/-/linux-64-2.9.6.tgz", + "integrity": "sha512-YKi05jnNHaD7vevgYwahpzGwbsNNTwzU2c7VZdmdFm7+cGDP4oREUWSsainiMfRqjRuolQxBwRn8wf1jmu+YZA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@turbo/linux-arm64": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@turbo/linux-arm64/-/linux-arm64-2.9.6.tgz", + "integrity": "sha512-02o/ZS69cOYEDczXvOB2xmyrtzjQ2hVFtWZK1iqxXUfzMmTjZK4UumrfNnjckSg+gqeBfnPRHa0NstA173Ik3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@turbo/windows-64": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@turbo/windows-64/-/windows-64-2.9.6.tgz", + "integrity": "sha512-wVdQjvnBI15wB6JrA+43CtUtagjIMmX6XYO758oZHAsCNSxqRlJtdyujih0D8OCnwCRWiGWGI63zAxR0hO6s9g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@turbo/windows-arm64": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/@turbo/windows-arm64/-/windows-arm64-2.9.6.tgz", + "integrity": "sha512-1XUUyWW0W6FTSqGEhU8RHVqb2wP1SPkr7hIvBlMEwH9jr+sJQK5kqeosLJ/QaUv4ecSAd1ZhIrLoW7qslAzT4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.9", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz", + "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "24.12.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.12.2.tgz", + "integrity": "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.28.tgz", + "integrity": "sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/react-reconciler": { + "version": "0.28.9", + "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz", + "integrity": "sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/sarif": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/sarif/-/sarif-2.1.7.tgz", + "integrity": "sha512-kRz0VEkJqWLf1LLVN4pT1cg1Z9wAuvI6L97V3m2f5B76Tg8d413ddvLBPTEHAZJlnn4XSvu0FkZtViCQGVyrXQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/vscode": { + "version": "1.116.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.116.0.tgz", + "integrity": "sha512-sYHp4MO6BqJ2PD7Hjt0hlIS3tMaYsVPJrd0RUjDJ8HtOYnyJIEej0bLSccM8rE77WrC+Xox/kdBwEFDO8MsxNA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/wicg-file-system-access": { + "version": "2023.10.7", + "resolved": "https://registry.npmjs.org/@types/wicg-file-system-access/-/wicg-file-system-access-2023.10.7.tgz", + "integrity": "sha512-g49ijasEJvCd7ifmAY2D0wdEtt1xRjBbA33PJTiv8mKBr7DoMsPeISoJ8oQOTopSRi+FBWPpPW5ouDj2QPKtGA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.5.tgz", + "integrity": "sha512-yURCknZhvywvQItHMMmFSo+fq5arCUIyz/CVk7jD89MSai7dkaX8ufjCWp3NttLojoTVbcE72ri+be/TnEbMHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@uiw/color-convert": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/color-convert/-/color-convert-2.10.1.tgz", + "integrity": "sha512-/Z3YfBiX+SErRM59yQH88Id+Xy/k10nnkfTuqhX6RB2yYUcG57DoFqb6FudhiQ5fwzKvKf1k4xq9lfT1UTFUKQ==", + "license": "MIT", + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0" + } + }, + "node_modules/@uiw/react-color-alpha": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-alpha/-/react-color-alpha-2.10.1.tgz", + "integrity": "sha512-3mllAyb3TgC0lRWGMLiwawgCuv3jIQWnarnxwggZ87HWvL4GLCWuVRxheYdLJTjAc6qd4Cd+d0jHMfkKXIdMFA==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-drag-event-interactive": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-chrome": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-chrome/-/react-color-chrome-2.10.1.tgz", + "integrity": "sha512-V5Li6un5GOCVh+H1sCPSPHB3uQ/Cipm167C4aoHKVl6jb5oEeFM39p2egIP2+8HzuNHWzUnOKm1KphqTvAEyEw==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-color-alpha": "2.10.1", + "@uiw/react-color-editable-input": "2.10.1", + "@uiw/react-color-editable-input-hsla": "2.10.1", + "@uiw/react-color-editable-input-rgba": "2.10.1", + "@uiw/react-color-github": "2.10.1", + "@uiw/react-color-hue": "2.10.1", + "@uiw/react-color-saturation": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-editable-input": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-editable-input/-/react-color-editable-input-2.10.1.tgz", + "integrity": "sha512-jMim8eAw/5hz7gaZwBy3vM5wMxPMocOG+u1+wcKbqvavHaeg/wHq7Y29uRyFKj80s4FXvUKehXRQl0F68mA7jQ==", + "license": "MIT", + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-editable-input-hsla": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-editable-input-hsla/-/react-color-editable-input-hsla-2.10.1.tgz", + "integrity": "sha512-+n26sbqj5UYNer/QXdJCNJfmJTsLmA+eRiJEZd4fLBZ15eScPQFvmJojF4mSMTMksOGlkx4clsfk9P3Z5fXMiA==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-color-editable-input-rgba": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-editable-input-rgba": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-editable-input-rgba/-/react-color-editable-input-rgba-2.10.1.tgz", + "integrity": "sha512-ffjmwu9aD3hiHKEV4toT0inRGChEVxx6zh7YLZoaYwLZaISEL7ohKGcY/WREckGojnlnDF79GYGKVGc/pu9q2A==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-color-editable-input": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-github": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-github/-/react-color-github-2.10.1.tgz", + "integrity": "sha512-iqJhIjRV/ZMFKYgQr8wDGwtkSNzGzuqedxBWwnEJOeDkYUYxU7xh2qqPoq5XpLdQjfa3IAtmXfMUb9fRNcdJCw==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-color-swatch": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-hue": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-hue/-/react-color-hue-2.10.1.tgz", + "integrity": "sha512-88O/gDu68U0cJp9ijn3cfnPOQfTY0jGWKbyBCMnHTEeiePBo+oMyuWZ3YU3Vp1zOXRD0SWcp3wNfuIYLOl77yg==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-color-alpha": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-saturation": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-saturation/-/react-color-saturation-2.10.1.tgz", + "integrity": "sha512-d6aE8oR5RVtIwM6V5+pBkClhs33VyCKzUWXi+Gf4qNwPoOKD9mQ4pqGd3nvqBzwNtnnX1gzyGAN1vDdSh7cV1A==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1", + "@uiw/react-drag-event-interactive": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-color-swatch": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-color-swatch/-/react-color-swatch-2.10.1.tgz", + "integrity": "sha512-DuGlaIszNcvtsY8BfW+RiUkEK1yVmnAamkzc/S5cQZwaAA5bCKhwwyaKPqh1/XWs7pR4pysjSNlMaeqaSOO34A==", + "license": "MIT", + "dependencies": { + "@uiw/color-convert": "2.10.1" + }, + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@uiw/react-drag-event-interactive": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@uiw/react-drag-event-interactive/-/react-drag-event-interactive-2.10.1.tgz", + "integrity": "sha512-eArtX/XdSrg5aQs8CV0vne9vChybw2GkNZCP9H68zjBBzucuYgjURqKBJ/+3jid06YpRZ5zz/YTnAlySqOt0Ag==", + "license": "MIT", + "funding": { + "url": "https://jaywcjlove.github.io/#/sponsor" + }, + "peerDependencies": { + "@babel/runtime": ">=7.19.0", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz", + "integrity": "sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.7" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/@vitest/browser": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.4.tgz", + "integrity": "sha512-TrNaY/yVOwxtrxNsDUC/wQ56xSwplpytTeRAqF/197xV/ZddxxulBsxR6TrhVMyniJmp9in8d5u0AcDaNRY30w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@blazediff/core": "1.9.1", + "@vitest/mocker": "4.1.4", + "@vitest/utils": "4.1.4", + "magic-string": "^0.30.21", + "pngjs": "^7.0.0", + "sirv": "^3.0.2", + "tinyrainbow": "^3.1.0", + "ws": "^8.19.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.1.4" + } + }, + "node_modules/@vitest/browser-playwright": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.4.tgz", + "integrity": "sha512-q3PchVhZINX23Pv+RERgAtDlp6wzVkID/smOPnZ5YGWpeWUe3jMNYppeVh15j4il3G7JIJty1d1Kicpm0HSMig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/browser": "4.1.4", + "@vitest/mocker": "4.1.4", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "playwright": "*", + "vitest": "4.1.4" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false + } + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.1.4.tgz", + "integrity": "sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.1.4", + "ast-v8-to-istanbul": "^1.0.0", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.2", + "obug": "^2.1.1", + "std-env": "^4.0.0-rc.1", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.1.4", + "vitest": "4.1.4" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.4.tgz", + "integrity": "sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.1.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.1.4", + "@vitest/utils": "4.1.4", + "chai": "^6.2.2", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.4.tgz", + "integrity": "sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.1.4", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.4.tgz", + "integrity": "sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.4.tgz", + "integrity": "sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.4", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.4.tgz", + "integrity": "sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.4", + "@vitest/utils": "4.1.4", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.4.tgz", + "integrity": "sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/ui": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-4.1.4.tgz", + "integrity": "sha512-EgFR7nlj5iTDYZYCvavjFokNYwr3c3ry0sFiCg+N7B233Nwp+NNx7eoF/XvMWDCKY71xXAG3kFkt97ZHBJVL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.1.4", + "fflate": "^0.8.2", + "flatted": "^3.4.2", + "pathe": "^2.0.3", + "sirv": "^3.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "vitest": "4.1.4" + } + }, + "node_modules/@vitest/utils": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.4.tgz", + "integrity": "sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.1.4", + "convert-source-map": "^2.0.0", + "tinyrainbow": "^3.1.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vscode/vsce": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.9.0.tgz", + "integrity": "sha512-Dfql2kgPHpTKS+G4wTqYBKzK1KqX2gMxTC9dpnYge+aIZL+thh1Z6GXs4zOtNwo7DCPmS7BCfaHUAmNLxKiXkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@azure/identity": "^4.1.0", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", + "@vscode/vsce-sign": "^2.0.0", + "azure-devops-node-api": "^12.5.0", + "chalk": "^4.1.2", + "cheerio": "^1.0.0-rc.9", + "cockatiel": "^3.1.2", + "commander": "^12.1.0", + "form-data": "^4.0.0", + "glob": "^11.0.0", + "hosted-git-info": "^4.0.2", + "jsonc-parser": "^3.2.0", + "leven": "^3.1.0", + "markdown-it": "^14.1.0", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "secretlint": "^10.1.2", + "semver": "^7.5.2", + "tmp": "^0.2.3", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.5.0", + "yauzl": "^3.2.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 20" + }, + "optionalDependencies": { + "keytar": "^7.7.0" + } + }, + "node_modules/@vscode/vsce-sign": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.9.tgz", + "integrity": "sha512-8IvaRvtFyzUnGGl3f5+1Cnor3LqaUWvhaUjAYO8Y39OUYlOf3cRd+dowuQYLpZcP3uwSG+mURwjEBOSq4SOJ0g==", + "dev": true, + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optionalDependencies": { + "@vscode/vsce-sign-alpine-arm64": "2.0.6", + "@vscode/vsce-sign-alpine-x64": "2.0.6", + "@vscode/vsce-sign-darwin-arm64": "2.0.6", + "@vscode/vsce-sign-darwin-x64": "2.0.6", + "@vscode/vsce-sign-linux-arm": "2.0.6", + "@vscode/vsce-sign-linux-arm64": "2.0.6", + "@vscode/vsce-sign-linux-x64": "2.0.6", + "@vscode/vsce-sign-win32-arm64": "2.0.6", + "@vscode/vsce-sign-win32-x64": "2.0.6" + } + }, + "node_modules/@vscode/vsce-sign-alpine-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz", + "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-alpine-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz", + "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "alpine" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz", + "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-darwin-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz", + "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz", + "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz", + "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-linux-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz", + "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@vscode/vsce-sign-win32-arm64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz", + "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce-sign-win32-x64": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz", + "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "SEE LICENSE IN LICENSE.txt", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vscode/vsce/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.3.0.tgz", + "integrity": "sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-kit": { + "version": "3.0.0-beta.1", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-3.0.0-beta.1.tgz", + "integrity": "sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0-beta.4", + "estree-walker": "^3.0.3", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/ast-kit/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.3.tgz", + "integrity": "sha512-AmwWFx1m8G/a5cXkxLxTiWl+YEoWuoFLUCwqMlNuWO1tqAYITQAbCRPUkyBHv1VOFgfjVOqEj6L3u15J5ZCzTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/ast-kit/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.3.tgz", + "integrity": "sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/ast-kit/node_modules/@babel/parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.3.tgz", + "integrity": "sha512-B20dvP3MfNc/XS5KKCHy/oyWl5IA6Cn9YjXRdDlCjNmUFrjvLXMNUfQq/QUy9fnG2gYkKKcrto2YaF9B32ToOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.0-rc.3" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/ast-kit/node_modules/@babel/types": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.3.tgz", + "integrity": "sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0-rc.3", + "@babel/helper-validator-identifier": "^8.0.0-rc.3" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/ast-v8-to-istanbul": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-1.0.0.tgz", + "integrity": "sha512-1fSfIwuDICFA4LKkCzRPO7F0hzFf0B7+Xqrl27ynQaa+Rh0e1Es0v6kWHPott3lU10AyAr7oKHa65OppjLn3Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^10.0.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/azure-devops-node-api": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz", + "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-windows": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/binaryextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-6.11.0.tgz", + "integrity": "sha512-sXnYK/Ij80TO3lcqZVV2YgfKN5QjUWIRk/XSm2J/4bd/lPko3lvk0O4ZppH6m+6hB2/GTu+ptNwVFe1xh+QLQw==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/bind-event-listener": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bind-event-listener/-/bind-event-listener-3.0.0.tgz", + "integrity": "sha512-PJvH288AWQhKs2v9zyfYdPzlPqf5bXbGMmhmUIY9x4dAUGIWgomO771oBQNwJnMQSnUIXhKu6sgzpBRXTlvb8Q==", + "license": "MIT" + }, + "node_modules/birpc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-4.0.0.tgz", + "integrity": "sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/boundary": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/boundary/-/boundary-2.0.0.tgz", + "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/brace-expansion": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chai": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chardet": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-5.2.0.tgz", + "integrity": "sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^8.0.0", + "string-width": "^8.2.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cockatiel": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", + "integrity": "sha512-gfrHV6ZPkquExvMh9IOkKsBzNDk6sDuZ6DdBGUBkvFnTCqCxzpuq48RySgP0AnaqQkw2zynOFj9yly6T1Q2G5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-line-break": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", + "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dev-cli": { + "resolved": "tooling/dev-cli", + "link": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dts-resolver": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/dts-resolver/-/dts-resolver-2.1.3.tgz", + "integrity": "sha512-bihc7jPC90VrosXNzK0LTE2cuLP6jr0Ro8jk+kMugHReJVLIpHz/xadeq3MhuwyO4TD4OA3L1Q8pBBFRc08Tsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "oxc-resolver": ">=11.0.0" + }, + "peerDependenciesMeta": { + "oxc-resolver": { + "optional": true + } + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/editions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-6.22.0.tgz", + "integrity": "sha512-UgGlf8IW75je7HZjNDpJdCv4cGJWIi6yumFdZ0R7A8/CIhQiWUjyGLCxdHpd8bmyD1gnkfUNK0oeOXqUS2cpfQ==", + "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "version-range": "^4.15.0" + }, + "engines": { + "ecmascript": ">= es5", + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/empathic": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", + "integrity": "sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/encoding-sniffer/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@types/estree": "^1.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", + "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/expect-type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "node_modules/extendable-error": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", + "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-string-truncated-width": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-1.2.1.tgz", + "integrity": "sha512-Q9acT/+Uu3GwGj+5w/zsGuQjh9O1TyywhIwAxHudtWrgF09nHOPrvTLhQevPbttcxjr/SNN7mJmfOw/B1bXgow==", + "license": "MIT" + }, + "node_modules/fast-string-width": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-1.1.0.tgz", + "integrity": "sha512-O3fwIVIH5gKB38QNbdg+3760ZmGz0SZMgvwJbA1b2TGXceKE6A2cOlfogh1iw8lr049zPyd7YADHy+B7U4W9bQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "fast-string-truncated-width": "^1.2.0" } }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true + "node_modules/fast-wrap-ansi": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.1.6.tgz", + "integrity": "sha512-HlUwET7a5gqjURj70D5jl7aC3Zmy4weA1SHUfM0JFI0Ptq987NH2TwbBFLoERhfwk+E+eaq4EK3jXoT+R3yp3w==", + "license": "MIT", + "dependencies": { + "fast-string-width": "^1.1.0" + } }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, + "license": "ISC", "dependencies": { - "@types/istanbul-lib-coverage": "*" + "reusify": "^1.0.4" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true, + "license": "MIT" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/istanbul-lib-report": "*" + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "license": "MIT", "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==" + "node_modules/flatted": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" }, - "node_modules/@types/lodash.clonedeep": { - "version": "4.5.9", - "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.9.tgz", - "integrity": "sha512-19429mWC+FyaAhOLzsS8kZUsI+/GmBAQ0HFiCPsKGU+7pBXOQWhyrY6xNNDwUSX8SMZMJvuFVMF9O5dQOlQK9Q==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", "dependencies": { - "@types/lodash": "*" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@types/node": { - "version": "22.5.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", - "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~6.19.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.5.0.tgz", + "integrity": "sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, + "license": "MIT", + "optional": true }, - "node_modules/@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "node_modules/glob": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { - "@types/react": "*" + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/@types/react-reconciler": { - "version": "0.28.8", - "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.8.tgz", - "integrity": "sha512-SN9c4kxXZonFhbX4hJrZy37yw9e7EIxcpHCxQv5JUS18wDE5ovkQKlqQEkufdJCCMfuI9BnjUJvhYeJ9x5Ra7g==", - "dependencies": { - "@types/react": "*" + "node_modules/glob/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" } }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true - }, - "node_modules/@types/wicg-file-system-access": { - "version": "2023.10.5", - "resolved": "https://registry.npmjs.org/@types/wicg-file-system-access/-/wicg-file-system-access-2023.10.5.tgz", - "integrity": "sha512-e9kZO9kCdLqT2h9Tw38oGv9UNzBBWaR1MzuAavxPcsV/7FJ3tWbU6RI3uB+yKIDPGLkGVbplS52ub0AcRLvrhA==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, + "license": "MIT", "dependencies": { - "@types/yargs-parser": "*" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.15.0.tgz", - "integrity": "sha512-uiNHpyjZtFrLwLDpHnzaDlP3Tt6sGMqTCiqmxaN4n4RP0EfYZDODJyddiFDF44Hjwxr5xAcaYxVKm9QKQFJFLA==", + "node_modules/glob/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/type-utils": "7.15.0", - "@typescript-eslint/utils": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "18 || 20 || >=22" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/parser": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.15.0.tgz", - "integrity": "sha512-k9fYuQNnypLFcqORNClRykkGOMOj+pV6V91R4GO/l1FDGwpqmSwoOQrOHo3cGaH63e+D3ZiCAOsuS/D2c99j/A==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", - "debug": "^4.3.4" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.15.0.tgz", - "integrity": "sha512-Q/1yrF/XbxOTvttNVPihxh1b9fxamjEoz2Os/Pe38OHwxC24CyCqXxGTOdpb4lt6HYtqw9HetA/Rf6gDGaMPlw==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0" - }, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.15.0.tgz", - "integrity": "sha512-SkgriaeV6PDvpA6253PDVep0qCqgbO1IOBiycjnXsszNTVQe5flN5wR5jiczoEoDEnAqYFSFFc9al9BSGVltkg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "7.15.0", - "@typescript-eslint/utils": "7.15.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.15.0.tgz", - "integrity": "sha512-aV1+B1+ySXbQH0pLK0rx66I3IkiZNidYobyfn0WFsdGhSXw+P3YOqeTq5GED458SfB24tg+ux3S+9g118hjlTw==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.15.0.tgz", - "integrity": "sha512-gjyB/rHAopL/XxfmYThQbXbzRMGhZzGw6KpcMbfe8Q3nNQKStpxnUKeXb0KiN/fFDR42Z43szs6rY7eHk0zdGQ==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/visitor-keys": "7.15.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "has-symbols": "^1.0.3" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/utils": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.15.0.tgz", - "integrity": "sha512-hfDMDqaqOqsUVGiEPSMLR/AjTSCsmJwjpKkYQRo1FNbmW4tBwBspYDwO9eh7sKSTwMQgBw9/T4DHudPaqshRWA==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.15.0", - "@typescript-eslint/types": "7.15.0", - "@typescript-eslint/typescript-estree": "7.15.0" + "function-bind": "^1.1.2" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "node": ">= 0.4" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.15.0.tgz", - "integrity": "sha512-Hqgy/ETgpt2L5xueA/zHHIl4fJI2O4XUE9l4+OIfbJIRSnTJb/QscncdqqZzofQegIJugRIF57OJea1khw2SDw==", + "node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { - "@typescript-eslint/types": "7.15.0", - "eslint-visitor-keys": "^3.4.3" + "lru-cache": "^6.0.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=10" } }, - "node_modules/@uiw/color-convert": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/color-convert/-/color-convert-2.3.2.tgz", - "integrity": "sha512-Txs0oAcOGhvM15yi7NqDJSws6htpuGx75EblFlZmh4h4AyUYXaeN2HNcOAUt835M3SN1j7rqMC+XERIE4r776Q==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html2canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", + "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "license": "MIT", - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" + "dependencies": { + "css-line-break": "^2.1.0", + "text-segmentation": "^1.0.3" }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/@uiw/react-color-alpha": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-alpha/-/react-color-alpha-2.3.2.tgz", - "integrity": "sha512-+yh+KEpNKjxNFFODQrB3Lki2hu6kznoSCngHgptlWBUtAC3e/e7tIiTTedSpCGr7fwIpC0CWrKwxENA3tyY/2Q==", + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "license": "MIT", "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-drag-event-interactive": "2.3.2" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" }, "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/@uiw/react-color-chrome": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-chrome/-/react-color-chrome-2.3.2.tgz", - "integrity": "sha512-WvA8dg2y+vgoyy8GFBM3B1+SeJ29ov5OVEei1kACMKxThADPdI4w3RRmhYIMnSeFGVW3bGuBMq6JimjIKZirCQ==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, "license": "MIT", "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-color-alpha": "2.3.2", - "@uiw/react-color-editable-input": "2.3.2", - "@uiw/react-color-editable-input-hsla": "2.3.2", - "@uiw/react-color-editable-input-rgba": "2.3.2", - "@uiw/react-color-github": "2.3.2", - "@uiw/react-color-hue": "2.3.2", - "@uiw/react-color-saturation": "2.3.2" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "engines": { + "node": ">= 14" } }, - "node_modules/@uiw/react-color-editable-input": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-editable-input/-/react-color-editable-input-2.3.2.tgz", - "integrity": "sha512-DDl9pCN7hH5Q+OB6LiFGFmkqIQw81EDIEvDi6rr6G9U+k+oqZ9JCBKSZ9qNKSa4MqnuISOkFv0vL3Jh8fSyqcg==", + "node_modules/human-id": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.1.3.tgz", + "integrity": "sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==", + "dev": true, "license": "MIT", - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" + "bin": { + "human-id": "dist/cli.js" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/@uiw/react-color-editable-input-hsla": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-editable-input-hsla/-/react-color-editable-input-hsla-2.3.2.tgz", - "integrity": "sha512-lLO8K+Zv5L9HKBgM3zYSqeLKisBkpXCxlQmF8iCKYcIgeRilM26qqylskA4n6pVixfSooL0hyL/HwfNmbCIrrg==", + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dev": true, "license": "MIT", "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-color-editable-input-rgba": "2.3.2" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" + "engines": { + "node": ">=0.10.0" }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/@uiw/react-color-editable-input-rgba": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-editable-input-rgba/-/react-color-editable-input-rgba-2.3.2.tgz", - "integrity": "sha512-HV0+5zzpaNG5v6EyVgmPfInd9UzYknQI7gdsVmmXKzB13L3RFhiv77r6o+q3IZMEnoDZ3U92uX4FeRaM1NrwYw==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, "license": "MIT", - "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-color-editable-input": "2.3.2" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "engines": { + "node": ">= 4" } }, - "node_modules/@uiw/react-color-github": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-github/-/react-color-github-2.3.2.tgz", - "integrity": "sha512-3QxpEOKYXbbV/L1cYsf7nhoOnl19/zWTpRRgda8LOe3SuRhFrFM3ZLa+UJUEXgO1cg9h64gxSKINh2st/FawpQ==", + "node_modules/import-without-cache": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/import-without-cache/-/import-without-cache-0.3.3.tgz", + "integrity": "sha512-bDxwDdF04gm550DfZHgffvlX+9kUlcz32UD0AeBTmVPFiWkrexF2XVmiuFFbDhiFuP8fQkrkvI2KdSNPYWAXkQ==", + "dev": true, "license": "MIT", - "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-color-swatch": "2.3.2" + "engines": { + "node": ">=20.19.0" }, "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "url": "https://github.com/sponsors/sxzz" } }, - "node_modules/@uiw/react-color-hue": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-hue/-/react-color-hue-2.3.2.tgz", - "integrity": "sha512-aAveo++GAghw09Ngc8Zzwxhj9mGaJfw8q40fDGFrVNxdrwrAjySIKHzlOSg5kw6WnEp4tUjhkMXDfCZWUhqmPA==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, "license": "MIT", - "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-color-alpha": "2.3.2" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "engines": { + "node": ">=8" } }, - "node_modules/@uiw/react-color-saturation": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-saturation/-/react-color-saturation-2.3.2.tgz", - "integrity": "sha512-aDKMhjylBUb4dH4oTQYz+U4mhpOebbQ2J0Y8y5aX1tfZ3fZuBqnXtWzu7Ffj3ksdKwkQHPddxT5IDTbAChF/og==", + "node_modules/index-to-position": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.2.0.tgz", + "integrity": "sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==", + "dev": true, "license": "MIT", - "dependencies": { - "@uiw/color-convert": "2.3.2", - "@uiw/react-drag-event-interactive": "2.3.2" + "engines": { + "node": ">=18" }, "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@uiw/react-color-swatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-color-swatch/-/react-color-swatch-2.3.2.tgz", - "integrity": "sha512-AjkEcSdlpxiFm9yull4WDujuHr0tD9/+XkLtcus/MH768zSQbb+rj6cY1nZ8L8FI6LRDGRaVJqFaXm4ZOAaIZw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, "license": "MIT", - "dependencies": { - "@uiw/color-convert": "2.3.2" + "bin": { + "is-docker": "cli.js" }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@uiw/react-drag-event-interactive": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@uiw/react-drag-event-interactive/-/react-drag-event-interactive-2.3.2.tgz", - "integrity": "sha512-lG5pJCtqbYBv7Dj0r12PE9q9yg7P2CzlQodw5ZHPY9GCSZVXHJc0g4lGvCbe/4Y8HYqM8aU4CYS8LplpX+mIQw==", - "license": "MIT", "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.19.0", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, + "license": "MIT", "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "node": ">=0.10.0" } }, - "node_modules/@vitest/expect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz", - "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==", + "node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, + "license": "MIT", "dependencies": { - "@vitest/spy": "1.6.0", - "@vitest/utils": "1.6.0", - "chai": "^4.3.10" + "get-east-asian-width": "^1.3.1" + }, + "engines": { + "node": ">=18" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@vitest/runner": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz", - "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { - "@vitest/utils": "1.6.0", - "p-limit": "^5.0.0", - "pathe": "^1.1.1" + "is-extglob": "^2.1.1" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", - "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, + "license": "MIT", "dependencies": { - "yocto-queue": "^1.0.0" + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.12.0" } }, - "node_modules/@vitest/snapshot": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", - "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "node_modules/is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", "dev": true, + "license": "MIT", "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" + "better-path-resolve": "1.0.0" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=4" } }, - "node_modules/@vitest/spy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz", - "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==", + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, - "dependencies": { - "tinyspy": "^2.2.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@vitest/utils": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz", - "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==", + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", "dev": true, + "license": "MIT", "dependencies": { - "diff-sequences": "^29.6.3", - "estree-walker": "^3.0.3", - "loupe": "^2.3.7", - "pretty-format": "^29.7.0" + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" }, "funding": { - "url": "https://opencollective.com/vitest" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } + "license": "ISC" }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" } }, - "node_modules/acorn-walk": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", - "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "acorn": "^8.11.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "debug": "^4.3.4" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, "engines": { - "node": ">= 14" + "node": ">=8" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/istextorbinary": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-9.5.0.tgz", + "integrity": "sha512-5mbUj3SiZXCuRf9fT3ibzbSSEWiy63gFfksmGfdOzujPjW3k+z8WvIBxcJHBoQNlaZaiyB25deviif2+osLmLw==", "dev": true, + "license": "Artistic-2.0", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "binaryextensions": "^6.11.0", + "editions": "^6.21.0", + "textextensions": "^6.11.0" + }, + "engines": { + "node": ">=4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://bevry.me/fund" } }, - "node_modules/ansi-escapes": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", - "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "node_modules/its-fine": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.2.5.tgz", + "integrity": "sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==", + "license": "MIT", + "dependencies": { + "@types/react-reconciler": "^0.28.0" + }, + "peerDependencies": { + "react": ">=18.0" + } + }, + "node_modules/jackspeak": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^9.0.0" + }, "engines": { - "node": ">=14.16" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/js-tokens": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" + "license": "MIT", + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "engines": { - "node": "*" + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "dev": true, "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=12", + "npm": ">=6" } }, - "node_modules/bind-event-listener": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bind-event-listener/-/bind-event-listener-3.0.0.tgz", - "integrity": "sha512-PJvH288AWQhKs2v9zyfYdPzlPqf5bXbGMmhmUIY9x4dAUGIWgomO771oBQNwJnMQSnUIXhKu6sgzpBRXTlvb8Q==" - }, - "node_modules/brace-expansion": { + "node_modules/jwa": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", "dev": true, + "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "node_modules/keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, + "node_modules/konva": { + "version": "9.3.22", + "resolved": "https://registry.npmjs.org/konva/-/konva-9.3.22.tgz", + "integrity": "sha512-yQI5d1bmELlD/fowuyfOp9ff+oamg26WOCkyqUyc+nczD/lhRa3EvD2MZOoc4c1293TAubW9n34fSQLgSeEgSw==", "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" + "type": "patreon", + "url": "https://www.patreon.com/lavrton" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" + "type": "opencollective", + "url": "https://opencollective.com/konva" }, { "type": "github", - "url": "https://github.com/sponsors/ai" + "url": "https://github.com/sponsors/lavrton" } ], + "license": "MIT" + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "detect-libc": "^2.0.3" }, - "bin": { - "browserslist": "cli.js" + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001639", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001639.tgz", - "integrity": "sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==", + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } }, - "node_modules/chai": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", - "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "*" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" ], "engines": { - "node": ">=8" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/cli-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "restore-cursor": "^4.0.0" + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">= 12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/cli-truncate": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", - "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/lint-staged": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-16.4.0.tgz", + "integrity": "sha512-lBWt8hujh/Cjysw5GYVmZpFHXDCgZzhrOm8vbcUdobADZNOK/bRshr2kM3DfgrrtR1DQhfupW9gnIXOfiFi+bw==", "dev": true, + "license": "MIT", "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^7.0.0" + "commander": "^14.0.3", + "listr2": "^9.0.5", + "picomatch": "^4.0.3", + "string-argv": "^0.3.2", + "tinyexec": "^1.0.4", + "yaml": "^2.8.2" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": ">=18" + "node": ">=20.17" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/lint-staged" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20.0.0" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">= 0.8" + "node": ">=8" } }, - "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true, - "engines": { - "node": ">=18" - } + "license": "MIT" }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", + "license": "MIT" }, - "node_modules/confbox": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", - "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", - "dev": true + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true, + "license": "MIT" }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true, + "license": "MIT" }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } + "license": "MIT" }, - "node_modules/css-line-break": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", - "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", - "license": "MIT", - "dependencies": { - "utrie": "^1.0.2" - } + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" }, - "node_modules/cssstyle": { + "node_modules/lodash.isstring": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", - "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, + "license": "MIT", "dependencies": { - "rrweb-cssom": "^0.6.0" + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" }, "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cssstyle/node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", - "dev": true - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, + "license": "MIT", "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" }, "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=6.0" + "node": ">=12" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { - "type-detect": "^4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "engines": { - "node": ">=6" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "node_modules/loose-envify/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { - "node": ">=0.4.0" + "node": ">=10" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/magicast": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.2.tgz", + "integrity": "sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==", "dev": true, + "license": "MIT", "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "source-map-js": "^1.2.1" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "semver": "^7.5.3" }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://dotenvx.com" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eciesjs": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.8.tgz", - "integrity": "sha512-U2wAn6yEOVBP9lOVh3nryufg3hQTKVicG+qjEfqB/70m/mU9DzwWNdK0mC5zuxlJH42EGAezFlHVWI0snwg1nw==", + "node_modules/markdown-it": { + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "dev": true, "license": "MIT", "dependencies": { - "@noble/ciphers": "^1.0.0", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0" + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": ">=16.0.0" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">= 8" } }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8.6" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - }, + "license": "MIT", "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=8.6" }, "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "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 - } + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "engines": { - "node": ">=10" + "license": "MIT", + "bin": { + "mime": "cli.js" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "engines": { + "node": ">=4" } }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", - "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true, - "peerDependencies": { - "eslint": ">=7" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, + "license": "MIT", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "mime-db": "1.52.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">= 0.6" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, + "license": "MIT", + "optional": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "optional": true, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=7.0.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT", + "optional": true }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "license": "ISC" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": "*" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-abi": { + "version": "3.89.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.89.0.tgz", + "integrity": "sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==", + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "has-flag": "^4.0.0" + "semver": "^7.3.5" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/node-sarif-builder": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.4.0.tgz", + "integrity": "sha512-tGnJW6OKRii9u/b2WiUViTJS+h7Apxx17qsMUjsUeNDiMMX5ZFf8F8Fcz7PAQ6omvOxHZtvDTmOYKJQwmfpjeg==", "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=20" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/node-sarif-builder/node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.1.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=0.10" + "node": ">=14.14" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/node-sarif-builder/node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, + "license": "MIT", "dependencies": { - "estraverse": "^5.2.0" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=4.0" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/node-sarif-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">= 10.0.0" } }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@types/estree": "^1.0.0" + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "dev": true + "node_modules/normalize-package-data/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" }, - "node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" + "boolbase": "^1.0.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "optional": true, + "dependencies": { + "wrappy": "1" + } }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "mimic-function": "^5.0.0" }, "engines": { - "node": ">=8.6.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" }, "engines": { - "node": ">= 6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/outdent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", + "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } + "license": "MIT" }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/oxlint": { + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/oxlint/-/oxlint-1.60.0.tgz", + "integrity": "sha512-tnRzTWiWJ9pg3ftRWnD0+Oqh78L6ZSwcEudvCZaER0PIqiAnNyXj5N1dPwjmNpDalkKS9m/WMLN1CTPUBPmsgw==", "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" + "license": "MIT", + "bin": { + "oxlint": "bin/oxlint" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/Boshen" + }, + "optionalDependencies": { + "@oxlint/binding-android-arm-eabi": "1.60.0", + "@oxlint/binding-android-arm64": "1.60.0", + "@oxlint/binding-darwin-arm64": "1.60.0", + "@oxlint/binding-darwin-x64": "1.60.0", + "@oxlint/binding-freebsd-x64": "1.60.0", + "@oxlint/binding-linux-arm-gnueabihf": "1.60.0", + "@oxlint/binding-linux-arm-musleabihf": "1.60.0", + "@oxlint/binding-linux-arm64-gnu": "1.60.0", + "@oxlint/binding-linux-arm64-musl": "1.60.0", + "@oxlint/binding-linux-ppc64-gnu": "1.60.0", + "@oxlint/binding-linux-riscv64-gnu": "1.60.0", + "@oxlint/binding-linux-riscv64-musl": "1.60.0", + "@oxlint/binding-linux-s390x-gnu": "1.60.0", + "@oxlint/binding-linux-x64-gnu": "1.60.0", + "@oxlint/binding-linux-x64-musl": "1.60.0", + "@oxlint/binding-openharmony-arm64": "1.60.0", + "@oxlint/binding-win32-arm64-msvc": "1.60.0", + "@oxlint/binding-win32-ia32-msvc": "1.60.0", + "@oxlint/binding-win32-x64-msvc": "1.60.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "peerDependencies": { + "oxlint-tsgolint": ">=0.18.0" + }, + "peerDependenciesMeta": { + "oxlint-tsgolint": { + "optional": true + } } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "p-map": "^2.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "p-limit": "^2.2.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, + "license": "MIT", "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "license": "MIT", "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=6" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, - "engines": { - "node": ">=6.9.0" + "license": "BlueOak-1.0.0" + }, + "node_modules/package-manager-detector": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.11.tgz", + "integrity": "sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "quansync": "^0.2.7" } }, - "node_modules/get-east-asian-width": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", - "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "node_modules/parse-json": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" + }, "engines": { "node": ">=18" }, @@ -3488,983 +6790,968 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "node_modules/parse-semver": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", + "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==", "dev": true, - "engines": { - "node": "*" + "license": "MIT", + "dependencies": { + "semver": "^5.1.0" } }, - "node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "node_modules/parse-semver/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" + "entities": "^6.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "domhandler": "^5.0.3", + "parse5": "^7.0.0" }, - "engines": { - "node": ">=10.13.0" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/path-scurry": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, + "license": "BlueOak-1.0.0", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=10" + "node": "18 || 20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.3.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.5.tgz", + "integrity": "sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==", "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=4" + "node": "20 || >=22" } }, - "node_modules/html-encoding-sniffer": { + "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/html2canvas": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", - "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "license": "MIT", - "dependencies": { - "css-line-break": "^2.1.0", - "text-segmentation": "^1.0.3" - }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } + "license": "MIT" }, - "node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 14" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { - "node": ">=16.17.0" + "node": ">=6" } }, - "node_modules/husky": { - "version": "9.0.11", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.0.11.tgz", - "integrity": "sha512-AB6lFlbwwyIqMdHYhwPe+kjOC3Oc5P3nThEoW/AaO2BX3vJDjWPFxYLxokUZOo6RNX20He3AaT8sESs9NJcmEw==", + "node_modules/playwright": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.59.1.tgz", + "integrity": "sha512-C8oWjPR3F81yljW9o5OxcWzfh6avkVwDD2VYdwIGqTkl+OGFISgypqzfu7dOe4QNLL2aqcWBmI3PMtLIK233lw==", "dev": true, + "license": "Apache-2.0", + "dependencies": { + "playwright-core": "1.59.1" + }, "bin": { - "husky": "bin.mjs" + "playwright": "cli.js" }, "engines": { "node": ">=18" }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "optionalDependencies": { + "fsevents": "2.3.2" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/playwright-core": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.59.1.tgz", + "integrity": "sha512-HBV/RJg81z5BiiZ9yPzIiClYV/QMsDCKUyogwH9p3MCP6IYjUFu/MActgYAvK0oWyV9NlwM3GLBjADyWgydVyg==", "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "license": "Apache-2.0", + "bin": { + "playwright-core": "cli.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/playwright/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immer": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/pngjs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", + "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.19" + "node": ">=14.19.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "node_modules/prettier": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.3.tgz", + "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": ">=6" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/qs": { + "version": "6.15.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz", + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, "engines": { - "node": ">=8" + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" }, - "node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==", + "license": "MIT" }, - "node_modules/its-fine": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-1.2.5.tgz", - "integrity": "sha512-fXtDA0X0t0eBYAGLVM5YsgJGsJ5jEmqZEPrGbzdf5awjv0xE7nqv3TVnvtUF060Tkes15DbDAKW/I48vsb6SyA==", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, "dependencies": { - "@types/react-reconciler": "^0.28.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, - "peerDependencies": { - "react": ">=18.0" + "bin": { + "rc": "cli.js" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/rc-config-loader": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-4.1.4.tgz", + "integrity": "sha512-3GiwEzklkbXTDp52UR5nT8iXgYAx1V9ZG/kDZT7p60u2GCv2XTwQq4NzinMoMpNtXhmt3WkhYXcj6HH8HdwCEQ==", "dev": true, + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "debug": "^4.4.3", + "js-yaml": "^4.1.1", + "json5": "^2.2.3", + "require-from-string": "^2.0.2" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "loose-envify": "^1.1.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "react": "^18.3.1" } }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, + "node_modules/react-konva": { + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/react-konva/-/react-konva-18.2.14.tgz", + "integrity": "sha512-lBDe/5fTgquMdg1AHI0B16YZdAOvEhWMBWuo12ioyY0icdxcz9Cf12j86fsCJCHdnvjUOlZeC0f5q+siyHbD4Q==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/lavrton" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/konva" + }, + { + "type": "github", + "url": "https://github.com/sponsors/lavrton" + } + ], + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@types/react-reconciler": "^0.28.2", + "its-fine": "^1.1.1", + "react-reconciler": "~0.29.0", + "scheduler": "^0.23.0" }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" + "peerDependencies": { + "konva": "^8.0.1 || ^7.2.5 || ^9.0.0 || ^10.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0" } }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, + "node_modules/react-konva-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/react-konva-utils/-/react-konva-utils-1.1.3.tgz", + "integrity": "sha512-v5cEI9OxZ/EioclOVH94rEkYX/CVKFh+D84VCPcqR51NoO9JLaP+Hp92RKSsh60z7jFkQMusw9i7Pc1Bge+1RQ==", + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "use-image": "^1.1.1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependencies": { + "konva": "^8.3.5 || ^9.0.0", + "react": "^18.2.0 || ^19.0.0", + "react-dom": "^18.2.0 || ^19.0.0", + "react-konva": "^18.2.10 || ^19.0.1" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, + "node_modules/react-reconciler": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", + "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", + "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" + }, + "peerDependencies": { + "react": "^18.3.1" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", "dev": true, + "license": "ISC", "dependencies": { - "color-convert": "^2.0.1" + "mute-stream": "~0.0.4" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.8" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/read-pkg": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@types/normalize-package-data": "^2.4.3", + "normalize-package-data": "^6.0.0", + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/read-yaml-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", + "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "graceful-fs": "^4.1.5", + "js-yaml": "^3.6.1", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/read-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" } }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/read-yaml-file/node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=0.10.0" } }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "MIT", "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, + "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", "dev": true, + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" + }, + "bin": { + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" + } + }, + "node_modules/rolldown-plugin-dts": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/rolldown-plugin-dts/-/rolldown-plugin-dts-0.23.2.tgz", + "integrity": "sha512-PbSqLawLgZBGcOGT3yqWBGn4cX+wh2nt5FuBGdcMHyOhoukmjbhYAl8NT9sE4U38Cm9tqLOIQeOrvzeayM0DLQ==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@babel/generator": "8.0.0-rc.3", + "@babel/helper-validator-identifier": "8.0.0-rc.3", + "@babel/parser": "8.0.0-rc.3", + "@babel/types": "8.0.0-rc.3", + "ast-kit": "^3.0.0-beta.1", + "birpc": "^4.0.0", + "dts-resolver": "^2.1.3", + "get-tsconfig": "^4.13.7", + "obug": "^2.1.1", + "picomatch": "^4.0.4" }, "engines": { - "node": ">=10" + "node": ">=20.19.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" + "url": "https://github.com/sponsors/sxzz" }, - "engines": { - "node": ">=7.0.0" + "peerDependencies": { + "@ts-macro/tsc": "^0.3.6", + "@typescript/native-preview": ">=7.0.0-dev.20260325.1", + "rolldown": "^1.0.0-rc.12", + "typescript": "^5.0.0 || ^6.0.0", + "vue-tsc": "~3.2.0" + }, + "peerDependenciesMeta": { + "@ts-macro/tsc": { + "optional": true + }, + "@typescript/native-preview": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/rolldown-plugin-dts/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.3.tgz", + "integrity": "sha512-AmwWFx1m8G/a5cXkxLxTiWl+YEoWuoFLUCwqMlNuWO1tqAYITQAbCRPUkyBHv1VOFgfjVOqEj6L3u15J5ZCzTA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/rolldown-plugin-dts/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.3.tgz", + "integrity": "sha512-8AWCJ2VJJyDFlGBep5GpaaQ9AAaE/FjAcrqI7jyssYhtL7WGV0DOKpJsQqM037xDbpRLHXsY8TwU7zDma7coOw==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/rolldown-plugin-dts/node_modules/@babel/parser": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.3.tgz", + "integrity": "sha512-B20dvP3MfNc/XS5KKCHy/oyWl5IA6Cn9YjXRdDlCjNmUFrjvLXMNUfQq/QUy9fnG2gYkKKcrto2YaF9B32ToOQ==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "@babel/types": "^8.0.0-rc.3" }, "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz", - "integrity": "sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==", - "dev": true, - "dependencies": { - "cssstyle": "^4.0.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.4", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.10", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.7.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.4", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.17.0", - "xml-name-validator": "^5.0.0" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^2.11.2" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/rolldown-plugin-dts/node_modules/@babel/types": { + "version": "8.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.3.tgz", + "integrity": "sha512-mOm5ZrYmphGfqVWoH5YYMTITb3cDXsFgmvFlvkvWDMsR9X8RFnt7a0Wb6yNIdoFsiMO9WjYLq+U/FMtqIYAF8Q==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0-rc.3", + "@babel/helper-validator-identifier": "^8.0.0-rc.3" }, "engines": { - "node": ">=4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", + "dev": true, + "license": "MIT" }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, - "bin": { - "json5": "lib/cli.js" - }, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "queue-microtask": "^1.2.2" } }, - "node_modules/konva": { - "version": "9.3.12", - "resolved": "https://registry.npmjs.org/konva/-/konva-9.3.12.tgz", - "integrity": "sha512-IxX+ka+gVGm63APkB/taepMxpbUdjfLBUA1OIqx7nbH3126Df6eAuVWasH3qh3vg4ctRseops031sZO0b2O33A==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { - "type": "patreon", - "url": "https://www.patreon.com/lavrton" + "type": "github", + "url": "https://github.com/sponsors/feross" }, { - "type": "opencollective", - "url": "https://opencollective.com/konva" + "type": "patreon", + "url": "https://www.patreon.com/feross" }, { - "type": "github", - "url": "https://github.com/sponsors/lavrton" + "type": "consulting", + "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } + "license": "MIT" }, - "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "dev": true, + "license": "BlueOak-1.0.0", "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lint-staged": { - "version": "15.2.7", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.7.tgz", - "integrity": "sha512-+FdVbbCZ+yoh7E/RosSdqKJyUM2OEjTciH0TFNkawKgvFp1zbGlEC39RADg+xKBG1R4mhoH2j85myBQZ5wR+lw==", - "dev": true, - "dependencies": { - "chalk": "~5.3.0", - "commander": "~12.1.0", - "debug": "~4.3.4", - "execa": "~8.0.1", - "lilconfig": "~3.1.1", - "listr2": "~8.2.1", - "micromatch": "~4.0.7", - "pidtree": "~0.6.0", - "string-argv": "~0.3.2", - "yaml": "~2.4.2" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": ">=18.12.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" + "node": ">=11.0.0" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", - "dev": true, - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" } }, - "node_modules/listr2": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.3.tgz", - "integrity": "sha512-Lllokma2mtoniUOS94CcOErHWAug5iu7HOmDrvWgpw8jyQH2fomgB+7lZS4HWZxytUuQwkGOwe49FvwVaA85Xw==", + "node_modules/secretlint": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", "dev": true, + "license": "MIT", "dependencies": { - "cli-truncate": "^4.0.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^6.0.0", - "rfdc": "^1.4.1", - "wrap-ansi": "^9.0.0" + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "debug": "^4.4.1", + "globby": "^14.1.0", + "read-pkg": "^9.0.1" + }, + "bin": { + "secretlint": "bin/secretlint.js" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, - "node_modules/local-pkg": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", - "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "node_modules/secretlint/node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", "dev": true, + "license": "MIT", "dependencies": { - "mlly": "^1.4.2", - "pkg-types": "^1.0.3" + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/antfu" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/secretlint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, + "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 4" } }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-update": { + "node_modules/secretlint/node_modules/path-type": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz", - "integrity": "sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", "dev": true, - "dependencies": { - "ansi-escapes": "^6.2.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^7.0.0", - "strip-ansi": "^7.1.0", - "wrap-ansi": "^9.0.0" - }, + "license": "MIT", "engines": { "node": ">=18" }, @@ -4472,38 +7759,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/secretlint/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=14.16" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/is-fullwidth-code-point": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", - "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "node_modules/secretlint/node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", "dev": true, - "dependencies": { - "get-east-asian-width": "^1.0.0" - }, + "license": "MIT", "engines": { "node": ">=18" }, @@ -4511,1417 +7785,1664 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", - "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, - "dependencies": { - "ansi-styles": "^6.2.1", - "is-fullwidth-code-point": "^5.0.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=10" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "shebang-regex": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "node": ">=8" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/mlly": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", - "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", "dev": true, - "dependencies": { - "acorn": "^8.11.3", - "pathe": "^1.1.2", - "pkg-types": "^1.1.1", - "ufo": "^1.5.3" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/ai" + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } ], "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "optional": true, + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", - "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", "dev": true, + "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=18" } }, - "node_modules/nwsapi": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", - "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==", - "dev": true + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, - "node_modules/object-treeify": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", - "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "license": "MIT", "engines": { - "node": ">= 10" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" + "node": ">=8" } }, - "node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/slice-ansi": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-8.0.0.tgz", + "integrity": "sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "ansi-styles": "^6.2.3", + "is-fullwidth-code-point": "^5.1.0" }, "engines": { - "node": ">=12" + "node": ">=20" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/spawndamnit": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-3.0.1.tgz", + "integrity": "sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==", "dev": true, + "license": "SEE LICENSE IN LICENSE", "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "cross-spawn": "^7.0.5", + "signal-exit": "^4.0.1" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } + "license": "CC-BY-3.0" }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "CC0-1.0" }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "BSD-3-Clause" }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "node_modules/std-env": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", + "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathe": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", - "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", - "dev": true + "license": "MIT" }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, - "engines": { - "node": "*" + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "node": ">=0.6.19" } }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "node_modules/string-width": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.0.tgz", + "integrity": "sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==", "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" }, "engines": { - "node": ">=0.10" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-types": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", - "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, - "dependencies": { - "confbox": "^0.1.7", - "mlly": "^1.7.1", - "pathe": "^1.1.2" + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/playwright": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.47.2.tgz", - "integrity": "sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "playwright-core": "1.47.2" - }, - "bin": { - "playwright": "cli.js" + "ansi-regex": "^6.2.2" }, "engines": { - "node": ">=18" + "node": ">=12" }, - "optionalDependencies": { - "fsevents": "2.3.2" + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/playwright-core": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.47.2.tgz", - "integrity": "sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright-core": "cli.js" + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/playwright/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=4" } }, - "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" + "min-indent": "^1.0.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=8" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, + "license": "MIT", + "optional": true, "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/prettier": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", - "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "node_modules/structured-source": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-4.0.0.tgz", + "integrity": "sha512-qGzRFNJDjFieQkl/sVOI2dUjHKRyL9dAJi2gCPGJLbJHBIkyOHxjuocpIEfbLioX+qSJpvbYdT49/YCdMznKxA==", "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" + "license": "BSD-2-Clause", + "dependencies": { + "boundary": "^2.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "engines": { + "node": ">=8" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, + "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10.0.0" } }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "node_modules/table/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/table/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/raf-schd": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", - "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "node_modules/table/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, - "peerDependencies": { - "react": "^18.3.1" + "engines": { + "node": ">=8" } }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true + "node_modules/tar-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } }, - "node_modules/react-konva": { - "version": "18.2.10", - "resolved": "https://registry.npmjs.org/react-konva/-/react-konva-18.2.10.tgz", - "integrity": "sha512-ohcX1BJINL43m4ynjZ24MxFI1syjBdrXhqVxYVDw2rKgr3yuS0x/6m1Y2Z4sl4T/gKhfreBx8KHisd0XC6OT1g==", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/lavrton" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/konva" - }, - { - "type": "github", - "url": "https://github.com/sponsors/lavrton" - } - ], + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "@types/react-reconciler": "^0.28.2", - "its-fine": "^1.1.1", - "react-reconciler": "~0.29.0", - "scheduler": "^0.23.0" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, - "peerDependencies": { - "konva": "^8.0.1 || ^7.2.5 || ^9.0.0", - "react": ">=18.0.0", - "react-dom": ">=18.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/react-konva-utils": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/react-konva-utils/-/react-konva-utils-1.0.6.tgz", - "integrity": "sha512-011+jyXwadFDkbIUdlTarKwbqME0ljX1vPeW5oyLQx4rtHdcsDr43tdOdSsMT3XpZyl8clgM9I/eK0lBuBuFHg==", - "dependencies": { - "react-konva": "^18.0.0-0", - "use-image": "^1.1.0" + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" }, - "peerDependencies": { - "konva": "^8.3.5 || ^9.0.0", - "react": "^18.2.0", - "react-dom": "^18.2.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/react-reconciler": { - "version": "0.29.2", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.2.tgz", - "integrity": "sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==", + "node_modules/terminal-link": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", + "dev": true, + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" }, - "peerDependencies": { - "react": "^18.3.1" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-segmentation": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", + "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "license": "MIT", + "dependencies": { + "utrie": "^1.0.2" } }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/textextensions": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-6.11.0.tgz", + "integrity": "sha512-tXJwSr9355kFJI3lbCkPpUH5cP8/M0GGy2xLO34aZCjMXBaK3SoPnZwr/oWmo1FdCnELcs4npdCIOFtq9W3ruQ==", "dev": true, + "license": "Artistic-2.0", + "dependencies": { + "editions": "^6.21.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/tinyexec": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.1.tgz", + "integrity": "sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/restore-cursor": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, + "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.4" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=12.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/restore-cursor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/tinyrainbow": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", + "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=14.0.0" } }, - "node_modules/restore-cursor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { - "mimic-fn": "^2.1.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.0" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, + "license": "MIT", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", - "dev": true + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/tsdown": { + "version": "0.21.9", + "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.21.9.tgz", + "integrity": "sha512-tZPv2zMaMnjj9H9h0SDqpSXa9YWVZWHlG46DnSgNTFX6aq001MSI8kuBzJumr/u099nWj+1v5S7rhbnHk5jCHA==", "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "ansis": "^4.2.0", + "cac": "^7.0.0", + "defu": "^6.1.7", + "empathic": "^2.0.0", + "hookable": "^6.1.1", + "import-without-cache": "^0.3.3", + "obug": "^2.1.1", + "picomatch": "^4.0.4", + "rolldown": "1.0.0-rc.16", + "rolldown-plugin-dts": "^0.23.2", + "semver": "^7.7.4", + "tinyexec": "^1.1.1", + "tinyglobby": "^0.2.16", + "tree-kill": "^1.2.2", + "unconfig-core": "^7.5.0", + "unrun": "^0.2.36" }, "bin": { - "rimraf": "bin.js" + "tsdown": "dist/run.mjs" + }, + "engines": { + "node": ">=20.19.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@arethetypeswrong/core": "^0.18.1", + "@tsdown/css": "0.21.9", + "@tsdown/exe": "0.21.9", + "@vitejs/devtools": "*", + "publint": "^0.3.0", + "typescript": "^5.0.0 || ^6.0.0", + "unplugin-unused": "^0.5.0" + }, + "peerDependenciesMeta": { + "@arethetypeswrong/core": { + "optional": true + }, + "@tsdown/css": { + "optional": true + }, + "@tsdown/exe": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "publint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "unplugin-unused": { + "optional": true + } + } + }, + "node_modules/tsdown/node_modules/@oxc-project/types": { + "version": "0.126.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.126.0.tgz", + "integrity": "sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/tsdown/node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.16.tgz", + "integrity": "sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/rollup": { - "version": "4.22.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", - "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "node_modules/tsdown/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.16.tgz", + "integrity": "sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.22.4", - "@rollup/rollup-android-arm64": "4.22.4", - "@rollup/rollup-darwin-arm64": "4.22.4", - "@rollup/rollup-darwin-x64": "4.22.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", - "@rollup/rollup-linux-arm-musleabihf": "4.22.4", - "@rollup/rollup-linux-arm64-gnu": "4.22.4", - "@rollup/rollup-linux-arm64-musl": "4.22.4", - "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", - "@rollup/rollup-linux-riscv64-gnu": "4.22.4", - "@rollup/rollup-linux-s390x-gnu": "4.22.4", - "@rollup/rollup-linux-x64-gnu": "4.22.4", - "@rollup/rollup-linux-x64-musl": "4.22.4", - "@rollup/rollup-win32-arm64-msvc": "4.22.4", - "@rollup/rollup-win32-ia32-msvc": "4.22.4", - "@rollup/rollup-win32-x64-msvc": "4.22.4", - "fsevents": "~2.3.2" - } - }, - "node_modules/rrweb-cssom": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", - "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", - "dev": true + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/tsdown/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.16.tgz", + "integrity": "sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==", + "cpu": [ + "x64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" ], - "dependencies": { - "queue-microtask": "^1.2.2" + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "node_modules/tsdown/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.16.tgz", + "integrity": "sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.16.tgz", + "integrity": "sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==", + "cpu": [ + "arm" + ], "dev": true, - "bin": { - "semver": "bin/semver.js" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.16.tgz", + "integrity": "sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/siginfo": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==", + "cpu": [ + "s390x" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/tsdown/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.16.tgz", + "integrity": "sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "node_modules/tsdown/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.16.tgz", + "integrity": "sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=0.10.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "node_modules/tsdown/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.16.tgz", + "integrity": "sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==", + "cpu": [ + "wasm32" + ], "dev": true, + "license": "MIT", + "optional": true, "dependencies": { - "escape-string-regexp": "^2.0.0" + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { - "node": ">=10" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/tsdown/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.16.tgz", + "integrity": "sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=8" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "node_modules/std-env": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", - "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", - "dev": true - }, - "node_modules/string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "node_modules/tsdown/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.16.tgz", + "integrity": "sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=0.6.19" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "node_modules/tsdown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.16.tgz", + "integrity": "sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tsdown/node_modules/rolldown": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.16.tgz", + "integrity": "sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==", "dev": true, + "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", - "strip-ansi": "^7.1.0" + "@oxc-project/types": "=0.126.0", + "@rolldown/pluginutils": "1.0.0-rc.16" + }, + "bin": { + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.16", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.16", + "@rolldown/binding-darwin-x64": "1.0.0-rc.16", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.16", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.16", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.16", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.16", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.16", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.16", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.16", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.16" } }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, "engines": { - "node": ">=12" + "node": ">=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dev": true, + "license": "Apache-2.0", + "optional": true, "dependencies": { - "ansi-regex": "^6.0.1" + "safe-buffer": "^5.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": "*" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/turbo": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-2.9.6.tgz", + "integrity": "sha512-+v2QJey7ZUeUiuigkU+uFfklvNUyPI2VO2vBpMYJA+a1hKFLFiKtUYlRHdb3P9CrAvMzi0upbjI4WT+zKtqkBg==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" + "license": "MIT", + "bin": { + "turbo": "bin/turbo" }, - "engines": { - "node": ">=8" + "optionalDependencies": { + "@turbo/darwin-64": "2.9.6", + "@turbo/darwin-arm64": "2.9.6", + "@turbo/linux-64": "2.9.6", + "@turbo/linux-arm64": "2.9.6", + "@turbo/windows-64": "2.9.6", + "@turbo/windows-arm64": "2.9.6" } }, - "node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=12" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/typed-rest-client": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "node_modules/typescript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", + "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=14.17" } }, - "node_modules/strip-literal": { + "node_modules/uc.micro": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz", - "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/unconfig-core": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/unconfig-core/-/unconfig-core-7.5.0.tgz", + "integrity": "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==", "dev": true, + "license": "MIT", "dependencies": { - "js-tokens": "^9.0.0" + "@quansync/fs": "^1.0.0", + "quansync": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/antfu" } }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz", - "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", - "dev": true + "node_modules/unconfig-core/node_modules/quansync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-1.0.0.tgz", + "integrity": "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/underscore": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=20.18.1" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" }, - "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, - "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" - }, + "license": "MIT", "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=18" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/text-segmentation": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", - "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "license": "MIT", - "dependencies": { - "utrie": "^1.0.2" + "engines": { + "node": ">= 4.0.0" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + "node_modules/unrun": { + "version": "0.2.36", + "resolved": "https://registry.npmjs.org/unrun/-/unrun-0.2.36.tgz", + "integrity": "sha512-ICAGv44LHSKjCdI4B4rk99lJLHXBweutO4MUwu3cavMlYtXID0Tn5e1Kwe/Uj6BSAuHHXfi1JheFVCYhcXHfAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "rolldown": "1.0.0-rc.16" + }, + "bin": { + "unrun": "dist/cli.mjs" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/Gugustinette" + }, + "peerDependencies": { + "synckit": "^0.11.11" + }, + "peerDependenciesMeta": { + "synckit": { + "optional": true + } + } }, - "node_modules/tinybench": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz", - "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==", - "dev": true + "node_modules/unrun/node_modules/@oxc-project/types": { + "version": "0.126.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.126.0.tgz", + "integrity": "sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } }, - "node_modules/tinypool": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", - "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "node_modules/unrun/node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.16.tgz", + "integrity": "sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/tinyspy": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", - "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "node_modules/unrun/node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.16.tgz", + "integrity": "sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=14.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/unrun/node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.16.tgz", + "integrity": "sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/unrun/node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.16.tgz", + "integrity": "sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=8.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "node_modules/unrun/node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.16.tgz", + "integrity": "sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "node_modules/unrun/node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "punycode": "^2.3.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=18" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "node_modules/unrun/node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.16.tgz", + "integrity": "sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==", + "cpu": [ + "arm64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true + "node_modules/unrun/node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/unrun/node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 0.8.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "node_modules/unrun/node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.16.tgz", + "integrity": "sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/unrun/node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.16.tgz", + "integrity": "sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==", + "cpu": [ + "x64" + ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/typescript": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", - "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "node_modules/unrun/node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.16.tgz", + "integrity": "sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], "engines": { - "node": ">=14.17" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/ufo": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", - "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", - "dev": true - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true, - "license": "MIT" - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "node_modules/unrun/node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.16.tgz", + "integrity": "sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==", + "cpu": [ + "wasm32" + ], "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.4" + }, "engines": { - "node": ">= 4.0.0" + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "node_modules/unrun/node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.16.tgz", + "integrity": "sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" ], - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/unrun/node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.16.tgz", + "integrity": "sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/unrun/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.16.tgz", + "integrity": "sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==", "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } + "license": "MIT" }, - "node_modules/use-debounce": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", - "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", + "node_modules/unrun/node_modules/rolldown": { + "version": "1.0.0-rc.16", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.16.tgz", + "integrity": "sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==", + "dev": true, "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.126.0", + "@rolldown/pluginutils": "1.0.0-rc.16" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, "engines": { - "node": ">= 16.0.0" + "node": "^20.19.0 || >=22.12.0" }, - "peerDependencies": { - "react": "*" - } + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.16", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.16", + "@rolldown/binding-darwin-x64": "1.0.0-rc.16", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.16", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.16", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.16", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.16", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.16", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.16", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.16", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.16", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.16" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" }, "node_modules/use-image": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/use-image/-/use-image-1.1.1.tgz", - "integrity": "sha512-n4YO2k8AJG/BcDtxmBx8Aa+47kxY5m335dJiCQA5tTeVU4XdhrhqR6wT0WISRXwdMEOv5CSjqekDZkEMiiWaYQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/use-image/-/use-image-1.1.4.tgz", + "integrity": "sha512-P+swhszzHHgEb2X2yQ+vQNPCq/8Ks3hyfdXAVN133pvnvK7UK++bUaZUa5E+A3S02Mw8xOCBr9O6CLhk2fjrWA==", + "license": "MIT", "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/utrie": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", @@ -5939,26 +9460,53 @@ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/version-range": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/version-range/-/version-range-4.15.0.tgz", + "integrity": "sha512-Ck0EJbAGxHwprkzFO966t4/5QkRuzh+/I1RxhLgUKKwEn+Cd8NwM60mE3AqBZg5gYODoXW0EFsQvbZjRlvdqbg==", + "dev": true, + "license": "Artistic-2.0", + "engines": { + "node": ">=4" + }, + "funding": { + "url": "https://bevry.me/fund" + } + }, "node_modules/vite": { - "version": "5.4.14", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", - "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.15", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -5967,23 +9515,33 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, - "less": { + "@vitejs/devtools": { "optional": true }, - "lightningcss": { + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { "optional": true }, "sass": { @@ -6000,83 +9558,89 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite-node": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz", - "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==", + "node_modules/vitest": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.4.tgz", + "integrity": "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==", "dev": true, + "license": "MIT", "dependencies": { - "cac": "^6.7.14", - "debug": "^4.3.4", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^5.0.0" - }, - "bin": { - "vite-node": "vite-node.mjs" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/vitest": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz", - "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==", - "dev": true, - "dependencies": { - "@vitest/expect": "1.6.0", - "@vitest/runner": "1.6.0", - "@vitest/snapshot": "1.6.0", - "@vitest/spy": "1.6.0", - "@vitest/utils": "1.6.0", - "acorn-walk": "^8.3.2", - "chai": "^4.3.10", - "debug": "^4.3.4", - "execa": "^8.0.1", - "local-pkg": "^0.5.0", - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.5.0", - "strip-literal": "^2.0.0", - "tinybench": "^2.5.1", - "tinypool": "^0.8.3", - "vite": "^5.0.0", - "vite-node": "1.6.0", - "why-is-node-running": "^2.2.2" + "@vitest/expect": "4.1.4", + "@vitest/mocker": "4.1.4", + "@vitest/pretty-format": "4.1.4", + "@vitest/runner": "4.1.4", + "@vitest/snapshot": "4.1.4", + "@vitest/spy": "4.1.4", + "@vitest/utils": "4.1.4", + "es-module-lexer": "^2.0.0", + "expect-type": "^1.3.0", + "magic-string": "^0.30.21", + "obug": "^2.1.1", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^4.0.0-rc.1", + "tinybench": "^2.9.0", + "tinyexec": "^1.0.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.1.0", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/node": "^18.0.0 || >=20.0.0", - "@vitest/browser": "1.6.0", - "@vitest/ui": "1.6.0", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.1.4", + "@vitest/browser-preview": "4.1.4", + "@vitest/browser-webdriverio": "4.1.4", + "@vitest/coverage-istanbul": "4.1.4", + "@vitest/coverage-v8": "4.1.4", + "@vitest/ui": "4.1.4", "happy-dom": "*", - "jsdom": "*" + "jsdom": "*", + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@opentelemetry/api": { + "optional": true + }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { "optional": true }, "@vitest/ui": { @@ -6087,40 +9651,37 @@ }, "jsdom": { "optional": true + }, + "vite": { + "optional": false } } }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", "dev": true, + "license": "MIT", "dependencies": { - "xml-name-validator": "^5.0.0" + "iconv-lite": "0.6.3" }, "engines": { "node": ">=18" } }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { - "iconv-lite": "0.6.3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=18" + "node": ">=0.10.0" } }, "node_modules/whatwg-mimetype": { @@ -6128,19 +9689,7 @@ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", - "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", - "dev": true, - "dependencies": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - }, + "license": "MIT", "engines": { "node": ">=18" } @@ -6150,6 +9699,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -6161,10 +9711,11 @@ } }, "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, + "license": "MIT", "dependencies": { "siginfo": "^2.0.0", "stackback": "0.0.2" @@ -6176,20 +9727,12 @@ "node": ">=8" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", - "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^6.2.1", "string-width": "^7.0.0", @@ -6203,10 +9746,11 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -6214,25 +9758,32 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -6245,13 +9796,16 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC", + "optional": true }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -6268,49 +9822,144 @@ } } }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, "engines": { "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } }, "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" }, "node_modules/yaml": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", - "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", "dev": true, + "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "node_modules/yauzl": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.3.0.tgz", + "integrity": "sha512-PtGEvEP30p7sbIBJKUBjUnqgTVOyMURc4dLo9iNyAJnNIEz9pm88cCXF21w94Kg3k6RXkeZh5DHOGS0qEONvNQ==", "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, "engines": { - "node": ">=10" + "node": ">=12" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + }, + "packages/mcp": { + "name": "@lemoncode/quickmock-mcp", + "version": "0.0.0", + "devDependencies": { + "@lemoncode/tsdown-config": "*", + "@lemoncode/typescript-config": "*", + "@lemoncode/vitest-config": "*" + } + }, + "packages/vscode-extension": { + "name": "@lemoncode/quickmock-vscode-extension", + "version": "0.0.0", + "license": "MIT", + "devDependencies": { + "@lemoncode/tsdown-config": "*", + "@lemoncode/typescript-config": "*", + "@lemoncode/vitest-config": "*", + "@types/vscode": "1.116.0", + "@vscode/vsce": "3.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "vscode": "^1.105.0" + } + }, + "tooling/dev-cli": { + "dependencies": { + "@clack/prompts": "1.2.0" + } + }, + "tooling/tsdown": { + "name": "@lemoncode/tsdown-config", + "version": "0.0.0", + "devDependencies": { + "tsdown": "^0.21.9" + } + }, + "tooling/typescript": { + "name": "@lemoncode/typescript-config", + "version": "0.0.0" + }, + "tooling/vitest": { + "name": "@lemoncode/vitest-config", + "version": "0.0.0", + "devDependencies": { + "@testing-library/jest-dom": "6.9.1", + "@vitest/browser": "4.1.4", + "@vitest/browser-playwright": "4.1.4", + "@vitest/coverage-v8": "4.1.4", + "@vitest/ui": "4.1.4", + "playwright": "1.59.1", + "vitest": "4.1.4" } } } diff --git a/package.json b/package.json index 83cb09be..63982d7f 100644 --- a/package.json +++ b/package.json @@ -1,63 +1,38 @@ { - "name": "quickmock", + "name": "@lemoncode/monorepo", "private": true, - "version": "0.0.0", "type": "module", - "scripts": { - "postinstall": "npm run install:e2e-browsers", - "install:e2e-browsers": "npx playwright install", - "dev": "vite", - "build": "tsc -b && vite build", - "test": "vitest", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview", - "prepare": "husky || \"No need to install husky\"", - "tsc-check": "tsc --noEmit", - "e2e": "playwright test --ui", - "ci:e2e": "playwright test" - }, - "dependencies": { - "@atlaskit/pragmatic-drag-and-drop": "^1.2.1", - "@fontsource-variable/montserrat": "^5.0.20", - "@fontsource/balsamiq-sans": "^5.0.21", - "@types/lodash.clonedeep": "^4.5.9", - "@uiw/react-color-chrome": "^2.3.2", - "html2canvas": "^1.4.1", - "immer": "^10.1.1", - "konva": "^9.3.12", - "lodash.clonedeep": "^4.5.0", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "react-konva": "^18.2.10", - "react-konva-utils": "^1.0.6", - "tiny-invariant": "^1.3.3", - "use-debounce": "^10.0.4", - "use-image": "^1.1.1", - "uuid": "^10.0.0" + "packageManager": "npm@11.9.0", + "engines": { + "node": ">=24", + "npm": ">=11" }, - "devDependencies": { - "@dotenvx/dotenvx": "^1.14.2", - "@playwright/test": "^1.47.2", - "@types/jest": "^29.5.12", - "@types/node": "^22.5.5", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@types/uuid": "^10.0.0", - "@types/wicg-file-system-access": "^2023.10.5", - "@typescript-eslint/eslint-plugin": "^7.13.1", - "@typescript-eslint/parser": "^7.13.1", - "@vitejs/plugin-react": "^4.3.1", - "eslint": "^8.57.0", - "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.7", - "husky": "^9.0.11", - "jsdom": "^24.1.0", - "lint-staged": "^15.2.7", - "prettier": "^3.3.2", - "typescript": "^5.2.2", - "vite": "^5.3.1", - "vitest": "^1.6.0" + "workspaces": [ + "apps/*", + "packages/*", + "tooling/*" + ], + "scripts": { + "start": "node --run dev", + "dev": "tsx tooling/dev-cli/dev.ts", + "build": "turbo build", + "test": "turbo test", + "test:watch": "tsx tooling/dev-cli/test-watch.ts", + "test:coverage": "turbo test:coverage", + "check-types": "turbo check-types", + "e2e": "turbo e2e", + "ci:e2e": "turbo ci:e2e", + "install:test-browsers": "npx playwright install --with-deps", + "lint": "oxlint .", + "lint:fix": "oxlint --fix .", + "format": "prettier --write .", + "format:check": "prettier --check .", + "changeset": "changeset", + "publish-packages": "changeset publish", + "start:local-npm-registry": "npm run build && cd ./local-npm-registry && npm start", + "stop:local-npm-registry": "cd ./local-npm-registry && npm stop", + "local:publish": "node --run start:local-npm-registry && changeset version && node local-npm-registry/publish.js changeset publish", + "prepare": "husky || \"No need to install husky\"" }, "lint-staged": { "*.{ts,tsx}": [ @@ -66,5 +41,16 @@ "*.css": [ "prettier --write" ] + }, + "devDependencies": { + "@changesets/cli": "2.30.0", + "@types/node": "24.12.2", + "husky": "9.1.7", + "lint-staged": "16.4.0", + "oxlint": "1.60.0", + "prettier": "3.8.3", + "tsx": "4.21.0", + "turbo": "2.9.6", + "typescript": "6.0.2" } } diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md new file mode 100644 index 00000000..e7be37d0 --- /dev/null +++ b/packages/mcp/CHANGELOG.md @@ -0,0 +1,7 @@ +# @lemoncode/quickmock-mcp + +## 0.0.1 + +### Patch Changes + +- 53588d0: Initial version diff --git a/packages/mcp/package.json b/packages/mcp/package.json new file mode 100644 index 00000000..e248807f --- /dev/null +++ b/packages/mcp/package.json @@ -0,0 +1,29 @@ +{ + "name": "@lemoncode/quickmock-mcp", + "version": "0.0.1", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.mts", + "default": "./dist/index.mjs" + } + }, + "imports": { + "#*": "./src/*" + }, + "files": [ + "dist" + ], + "scripts": { + "build": "tsdown", + "check-types": "tsc --noEmit", + "test": "vitest run", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage" + }, + "devDependencies": { + "@lemoncode/typescript-config": "*", + "@lemoncode/tsdown-config": "*", + "@lemoncode/vitest-config": "*" + } +} diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/packages/mcp/src/index.ts @@ -0,0 +1 @@ +export {}; diff --git a/packages/mcp/src/vitest.d.ts b/packages/mcp/src/vitest.d.ts new file mode 100644 index 00000000..9896c472 --- /dev/null +++ b/packages/mcp/src/vitest.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/mcp/tsconfig.json b/packages/mcp/tsconfig.json new file mode 100644 index 00000000..38115089 --- /dev/null +++ b/packages/mcp/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@lemoncode/typescript-config/node", + "include": ["src"], + "compilerOptions": { + "rootDir": "src", + "paths": { + "#*": ["./src/*"] + } + } +} diff --git a/packages/mcp/tsdown.config.ts b/packages/mcp/tsdown.config.ts new file mode 100644 index 00000000..33d5ceda --- /dev/null +++ b/packages/mcp/tsdown.config.ts @@ -0,0 +1,6 @@ +import { baseTsdownConfig } from '@lemoncode/tsdown-config/base'; + +export default { + ...baseTsdownConfig, + entry: ['src/index.ts'], +}; diff --git a/packages/mcp/vitest.config.ts b/packages/mcp/vitest.config.ts new file mode 100644 index 00000000..4fc033f9 --- /dev/null +++ b/packages/mcp/vitest.config.ts @@ -0,0 +1,6 @@ +import { baseVitestConfig } from '@lemoncode/vitest-config/base'; +import { mergeConfig } from 'vitest/config'; + +export default mergeConfig(baseVitestConfig, { + test: {}, +}); diff --git a/packages/vscode-extension/CHANGELOG.md b/packages/vscode-extension/CHANGELOG.md new file mode 100644 index 00000000..66de67b2 --- /dev/null +++ b/packages/vscode-extension/CHANGELOG.md @@ -0,0 +1,7 @@ +# @lemoncode/quickmock-vscode-extension + +## 0.0.1 + +### Patch Changes + +- 53588d0: Initial version diff --git a/packages/vscode-extension/assets/app-icon.webp b/packages/vscode-extension/assets/app-icon.webp new file mode 100644 index 00000000..c13be599 Binary files /dev/null and b/packages/vscode-extension/assets/app-icon.webp differ diff --git a/packages/vscode-extension/package.json b/packages/vscode-extension/package.json new file mode 100644 index 00000000..b647d45e --- /dev/null +++ b/packages/vscode-extension/package.json @@ -0,0 +1,65 @@ +{ + "name": "@lemoncode/quickmock-vscode-extension", + "version": "0.0.1", + "type": "module", + "main": "./dist/index.mjs", + "imports": { + "#*": "./src/*" + }, + "files": [ + "dist" + ], + "scripts": { + "dev": "node --run build -- --watch --sourcemap", + "build": "tsdown", + "check-types": "tsc --noEmit", + "test": "vitest run", + "test:watch": "vitest", + "test:coverage": "vitest run --coverage" + }, + "devDependencies": { + "@lemoncode/tsdown-config": "*", + "@lemoncode/typescript-config": "*", + "@lemoncode/vitest-config": "*", + "@types/vscode": "1.116.0", + "@vscode/vsce": "3.9.0" + }, + "publisher": "Lemoncoders", + "displayName": "Quickmock", + "description": "Quickmock VSCode extension for your free, open source wireframing tool. Share your ideas as low-fidelity mocks in minutes, perfect for getting started.", + "keywords": [ + "wireframe", + "mockup", + "prototype", + "low-fidelity", + "design", + "ui", + "ux", + "sketch", + "quickmock" + ], + "categories": [ + "Visualization", + "Other" + ], + "author": "Lemoncode", + "license": "MIT", + "engines": { + "vscode": "^1.105.0" + }, + "icon": "./assets/app-icon.webp", + "galleryBanner": { + "color": "#17191E", + "theme": "dark" + }, + "qna": false, + "activationEvents": [], + "contributes": { + "commands": [ + { + "command": "quickmock.helloWorld", + "title": "Quickmock: Hello World" + } + ] + } +} diff --git a/packages/vscode-extension/src/index.ts b/packages/vscode-extension/src/index.ts new file mode 100644 index 00000000..c0a7ab1d --- /dev/null +++ b/packages/vscode-extension/src/index.ts @@ -0,0 +1,14 @@ +import * as vscode from 'vscode'; + +export const activate = (context: vscode.ExtensionContext) => { + const disposable = vscode.commands.registerCommand( + 'quickmock.helloWorld', + () => { + vscode.window.showInformationMessage('Quickmock extension is running!'); + } + ); + + context.subscriptions.push(disposable); +}; + +export const deactivate = () => {}; diff --git a/packages/vscode-extension/src/vitest.d.ts b/packages/vscode-extension/src/vitest.d.ts new file mode 100644 index 00000000..9896c472 --- /dev/null +++ b/packages/vscode-extension/src/vitest.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/vscode-extension/tsconfig.json b/packages/vscode-extension/tsconfig.json new file mode 100644 index 00000000..38115089 --- /dev/null +++ b/packages/vscode-extension/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@lemoncode/typescript-config/node", + "include": ["src"], + "compilerOptions": { + "rootDir": "src", + "paths": { + "#*": ["./src/*"] + } + } +} diff --git a/packages/vscode-extension/tsdown.config.ts b/packages/vscode-extension/tsdown.config.ts new file mode 100644 index 00000000..6462135d --- /dev/null +++ b/packages/vscode-extension/tsdown.config.ts @@ -0,0 +1,7 @@ +import { baseTsdownConfig } from '@lemoncode/tsdown-config/base'; + +export default { + ...baseTsdownConfig, + entry: ['src/index.ts'], + external: ['vscode'], +}; diff --git a/packages/vscode-extension/vitest.config.ts b/packages/vscode-extension/vitest.config.ts new file mode 100644 index 00000000..4fc033f9 --- /dev/null +++ b/packages/vscode-extension/vitest.config.ts @@ -0,0 +1,6 @@ +import { baseVitestConfig } from '@lemoncode/vitest-config/base'; +import { mergeConfig } from 'vitest/config'; + +export default mergeConfig(baseVitestConfig, { + test: {}, +}); diff --git a/public/site.webmanifest b/public/site.webmanifest deleted file mode 100644 index b20abb7c..00000000 --- a/public/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "", - "short_name": "", - "icons": [ - { - "src": "/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.model.ts b/src/common/components/mock-components/front-low-wireframes-components/text-scribbled-shape/text-scribbled.model.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/core/constants/env.constants.ts b/src/core/constants/env.constants.ts deleted file mode 100644 index 0ea23b7e..00000000 --- a/src/core/constants/env.constants.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const ENV = { - IS_TEST_ENV: process.env.NODE_ENV === 'test', -}; diff --git a/src/core/providers/canvas/use-selection.business.ts b/src/core/providers/canvas/use-selection.business.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/dummy.spec.ts b/src/dummy.spec.ts deleted file mode 100644 index d9d242f0..00000000 --- a/src/dummy.spec.ts +++ /dev/null @@ -1,5 +0,0 @@ -describe('Dummy test', () => { - it('should pass', () => { - expect(true).toBe(true); - }); -}); diff --git a/src/pods/canvas/model/shape-size.mapper.ts b/src/pods/canvas/model/shape-size.mapper.ts deleted file mode 100644 index 19dcbf18..00000000 --- a/src/pods/canvas/model/shape-size.mapper.ts +++ /dev/null @@ -1,182 +0,0 @@ -// src/common/shape-utils/shapeSizeMap.ts -import { ShapeType, ShapeSizeRestrictions } from '@/core/model'; -import { getInputStepperShapeSizeRestrictions } from '@/common/components/mock-components/front-rich-components/input-stepper'; -import { - getButtonShapeSizeRestrictions, - getCheckboxShapeSizeRestrictions, - getComboBoxShapeSizeRestrictions, - getDatepickerInputShapeSizeRestrictions, - getHorizontalScrollBarShapeSizeRestrictions, - getIconShapeSizeRestrictions, - getInputShapeSizeRestrictions, - getLabelSizeRestrictions, - getListboxShapeSizeRestrictions, - getProgressBarShapeSizeRestrictions, - getRadioButtonShapeSizeRestrictions, - // import all other necessary functions - getSliderShapeSizeRestrictions, - getTextAreaSizeRestrictions, - getTimepickerInputShapeSizeRestrictions, - getToggleSwitchShapeSizeRestrictions, - getTooltipShapeSizeRestrictions, - getVerticalScrollBarShapeSizeRestrictions, - getChipShapeSizeRestrictions, -} from '@/common/components/mock-components/front-components'; -import { - getBrowserWindowShapeSizeRestrictions, - getMobilePhoneShapeSizeRestrictions, - getModalDialogShapeSizeRestrictions, - getTabletShapeSizeRestrictions, - // other imports -} from '@/common/components/mock-components/front-containers'; -import { - getTriangleShapeSizeRestrictions, - getCircleShapeSizeRestrictions, - getDiamondShapeSizeRestrictions, - getImageShapeSizeRestrictions, - getLargeArrowShapeSizeRestrictions, - getHorizontalLineShapeRestrictions, - getVerticalLineShapeRestrictions, - getPostItShapeSizeRestrictions, - getRectangleShapeSizeRestrictions, - getStarShapeSizeRestrictions, - getModalCoverShapeSizeRestrictions, - getCilinderShapeSizeRestrictions, - // other imports -} from '@/common/components/mock-components/front-basic-shapes'; -import { - getAccordionShapeSizeRestrictions, - getAppBarShapeSizeRestrictions, - getAudioPlayerShapeSizeRestrictions, - getBarChartShapeSizeRestrictions, - getBreadcrumbShapeSizeRestrictions, - getButtonBarShapeSizeRestrictions, - getCalendarShapeSizeRestrictions, - getHorizontalMenuShapeSizeRestrictions, - getLineChartShapeSizeRestrictions, - getLoadIndicatorSizeRestrictions, - getMapChartShapeSizeRestrictions, - getModalShapeSizeRestrictions, - getPieChartShapeSizeRestrictions, - getTableSizeRestrictions, - getTabsBarShapeSizeRestrictions, - getToggleLightDarkShapeSizeRestrictions, - getVerticalMenuShapeSizeRestrictions, - getVideoPlayerShapeSizeRestrictions, - getVideoconferenceShapeSizeRestrictions, - getGaugeShapeSizeRestrictions, - getFabButtonShapeSizeRestrictions, - getFileTreeShapeSizeRestrictions, - // other imports -} from '@/common/components/mock-components/front-rich-components'; -import { - getHeading1SizeRestrictions, - getHeading2SizeRestrictions, - getHeading3SizeRestrictions, - getLinkSizeRestrictions, - getNormaltextSizeRestrictions, - getParagraphSizeRestrictions, - getSmalltextSizeRestrictions, - getRichTextSizeRestrictions, - // other imports -} from '@/common/components/mock-components/front-text-components'; - -import { - getHorizontalLineLowShapeRestrictions, - getImagePlaceholderShapeSizeRestrictions, - getVerticalLineLowShapeRestrictions, - getRectangleLowShapeRestrictions, - getEllipseLowShapeRestrictions, - getCircleLowShapeSizeRestrictions, - getTextScribbledShapeRestrictions, -} from '@/common/components/mock-components/front-low-wireframes-components'; -import { getParagraphScribbledShapeRestrictions } from '@/common/components/mock-components/front-low-wireframes-components/paragraph-scribbled-shape'; - -const getMultipleNodeSizeRestrictions = (): ShapeSizeRestrictions => ({ - minWidth: 0, - minHeight: 0, - maxWidth: -1, - maxHeight: -1, - defaultWidth: 0, - defaultHeight: 0, -}); - -// Map associating each ShapeType with its size restriction function -const shapeSizeMap: Record ShapeSizeRestrictions> = { - multiple: getMultipleNodeSizeRestrictions, - label: getLabelSizeRestrictions, - combobox: getComboBoxShapeSizeRestrictions, - input: getInputShapeSizeRestrictions, - toggleswitch: getToggleSwitchShapeSizeRestrictions, - toggleLightDark: getToggleLightDarkShapeSizeRestrictions, - textarea: getTextAreaSizeRestrictions, - datepickerinput: getDatepickerInputShapeSizeRestrictions, - button: getButtonShapeSizeRestrictions, - progressbar: getProgressBarShapeSizeRestrictions, - listbox: getListboxShapeSizeRestrictions, - browser: getBrowserWindowShapeSizeRestrictions, - mobilePhone: getMobilePhoneShapeSizeRestrictions, - tablet: getTabletShapeSizeRestrictions, - modalDialog: getModalDialogShapeSizeRestrictions, - timepickerinput: getTimepickerInputShapeSizeRestrictions, - rectangle: getRectangleShapeSizeRestrictions, - videoPlayer: getVideoPlayerShapeSizeRestrictions, - diamond: getDiamondShapeSizeRestrictions, - horizontalLine: getHorizontalLineShapeRestrictions, - verticalLine: getVerticalLineShapeRestrictions, - accordion: getAccordionShapeSizeRestrictions, - triangle: getTriangleShapeSizeRestrictions, - postit: getPostItShapeSizeRestrictions, - pie: getPieChartShapeSizeRestrictions, - 'horizontal-menu': getHorizontalMenuShapeSizeRestrictions, - 'input-stepper': getInputStepperShapeSizeRestrictions, - 'vertical-menu': getVerticalMenuShapeSizeRestrictions, - breadcrumb: getBreadcrumbShapeSizeRestrictions, - map: getMapChartShapeSizeRestrictions, - circle: getCircleShapeSizeRestrictions, - star: getStarShapeSizeRestrictions, - linechart: getLineChartShapeSizeRestrictions, - heading1: getHeading1SizeRestrictions, - heading2: getHeading2SizeRestrictions, - heading3: getHeading3SizeRestrictions, - normaltext: getNormaltextSizeRestrictions, - smalltext: getSmalltextSizeRestrictions, - paragraph: getParagraphSizeRestrictions, - richtext: getRichTextSizeRestrictions, - link: getLinkSizeRestrictions, - largeArrow: getLargeArrowShapeSizeRestrictions, - radiobutton: getRadioButtonShapeSizeRestrictions, - checkbox: getCheckboxShapeSizeRestrictions, - icon: getIconShapeSizeRestrictions, - bar: getBarChartShapeSizeRestrictions, - image: getImageShapeSizeRestrictions, - table: getTableSizeRestrictions, - horizontalScrollBar: getHorizontalScrollBarShapeSizeRestrictions, - calendar: getCalendarShapeSizeRestrictions, - verticalScrollBar: getVerticalScrollBarShapeSizeRestrictions, - modal: getModalShapeSizeRestrictions, - modalCover: getModalCoverShapeSizeRestrictions, - tabsBar: getTabsBarShapeSizeRestrictions, - appBar: getAppBarShapeSizeRestrictions, - buttonBar: getButtonBarShapeSizeRestrictions, - tooltip: getTooltipShapeSizeRestrictions, - slider: getSliderShapeSizeRestrictions, - audioPlayer: getAudioPlayerShapeSizeRestrictions, - cilinder: getCilinderShapeSizeRestrictions, - 'loading-indicator': getLoadIndicatorSizeRestrictions, - videoconference: getVideoconferenceShapeSizeRestrictions, - gauge: getGaugeShapeSizeRestrictions, - imagePlaceholder: getImagePlaceholderShapeSizeRestrictions, - chip: getChipShapeSizeRestrictions, - horizontalLineLow: getHorizontalLineLowShapeRestrictions, - verticalLineLow: getVerticalLineLowShapeRestrictions, - ellipseLow: getEllipseLowShapeRestrictions, - rectangleLow: getRectangleLowShapeRestrictions, - circleLow: getCircleLowShapeSizeRestrictions, - textScribbled: getTextScribbledShapeRestrictions, - fabButton: getFabButtonShapeSizeRestrictions, - fileTree: getFileTreeShapeSizeRestrictions, - paragraphScribbled: getParagraphScribbledShapeRestrictions, -}; - -export default shapeSizeMap; diff --git a/src/pods/toolbar/components/about-button/about-button.tsx b/src/pods/toolbar/components/about-button/about-button.tsx deleted file mode 100644 index b7e6e177..00000000 --- a/src/pods/toolbar/components/about-button/about-button.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { AboutIcon } from '@/common/components/icons/about-icon.component'; -import { useModalDialogContext } from '@/core/providers/model-dialog-providers/model-dialog.provider'; -import { AboutPod } from '@/pods/about'; -import { ToolbarButton } from '@/pods/toolbar/components/toolbar-button/toolbar-button'; -import classes from '@/pods/toolbar/toolbar.pod.module.css'; - -export const AboutButton = () => { - const { openModal } = useModalDialogContext(); - - const handleClick = () => { - openModal(, 'About us'); - }; - - return ( - } - label="About" - /> - ); -}; diff --git a/tooling/dev-cli/dev.ts b/tooling/dev-cli/dev.ts new file mode 100644 index 00000000..4c85defc --- /dev/null +++ b/tooling/dev-cli/dev.ts @@ -0,0 +1,56 @@ +import * as p from '@clack/prompts'; +import { spawn } from 'node:child_process'; +import { filterByScript, getWorkspacePackages } from './lib/workspace.ts'; + +const main = async () => { + p.intro('Dev CLI'); + + const packages = getWorkspacePackages(); + const devPackages = filterByScript(packages, 'dev'); + + if (devPackages.length === 0) { + p.cancel('No packages with a `dev` script found.'); + process.exit(0); + } + + // Single package: skip prompt and auto-select + const selected: string[] = + devPackages.length === 1 + ? [devPackages[0].name] + : await (async () => { + const result = await p.multiselect({ + message: 'Which packages to run in dev mode?', + options: devPackages.map(pkg => ({ + value: pkg.name, + label: pkg.name, + hint: pkg.dir, + })), + required: true, + }); + + if (p.isCancel(result)) { + p.cancel('Cancelled.'); + process.exit(0); + } + + return result as string[]; + })(); + + const filters = selected.map(name => `--filter=${name}...`).join(' '); + + p.outro(`Running: turbo dev check-types:watch ${filters}`); + + const child = spawn( + 'turbo', + ['dev', 'check-types:watch', ...filters.split(' ')], + { + cwd: process.cwd(), + stdio: 'inherit', + shell: true, + } + ); + + child.on('exit', code => process.exit(code ?? 0)); +}; + +main(); diff --git a/tooling/dev-cli/lib/workspace.ts b/tooling/dev-cli/lib/workspace.ts new file mode 100644 index 00000000..d309a0f3 --- /dev/null +++ b/tooling/dev-cli/lib/workspace.ts @@ -0,0 +1,37 @@ +import { existsSync, globSync, readFileSync } from 'node:fs'; +import { basename, resolve } from 'node:path'; + +interface WorkspacePackage { + name: string; + dir: string; + scripts: Record; +} + +const ROOT = resolve(import.meta.dirname, '../../..'); + +export const getWorkspacePackages = (): WorkspacePackage[] => { + const rootPkg = JSON.parse( + readFileSync(resolve(ROOT, 'package.json'), 'utf-8') + ); + + const patterns: string[] = rootPkg.workspaces ?? []; + const dirs = patterns.flatMap(pattern => globSync(pattern, { cwd: ROOT })); + + return dirs + .map(dir => { + const pkgPath = resolve(ROOT, dir, 'package.json'); + if (!existsSync(pkgPath)) return null; + const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8')); + return { + name: pkg.name ?? basename(dir), + dir, + scripts: pkg.scripts ?? {}, + }; + }) + .filter((pkg): pkg is WorkspacePackage => pkg !== null); +}; + +export const filterByScript = ( + packages: WorkspacePackage[], + scriptName: string +): WorkspacePackage[] => packages.filter(pkg => scriptName in pkg.scripts); diff --git a/tooling/dev-cli/package.json b/tooling/dev-cli/package.json new file mode 100644 index 00000000..81cad0d1 --- /dev/null +++ b/tooling/dev-cli/package.json @@ -0,0 +1,8 @@ +{ + "name": "dev-cli", + "type": "module", + "private": true, + "dependencies": { + "@clack/prompts": "1.2.0" + } +} diff --git a/tooling/dev-cli/test-watch.ts b/tooling/dev-cli/test-watch.ts new file mode 100644 index 00000000..69d64911 --- /dev/null +++ b/tooling/dev-cli/test-watch.ts @@ -0,0 +1,73 @@ +import * as p from '@clack/prompts'; +import { spawn } from 'node:child_process'; +import { resolve } from 'node:path'; +import { filterByScript, getWorkspacePackages } from './lib/workspace.ts'; + +const ROOT = resolve(import.meta.dirname, '../..'); + +const main = async () => { + p.intro('Test Watch CLI'); + + const packages = getWorkspacePackages(); + const testPackages = filterByScript(packages, 'test'); + + if (testPackages.length === 0) { + p.cancel('No packages with a `test` script found.'); + process.exit(0); + } + + // Single package: skip prompt and auto-select + const names: string[] = + testPackages.length === 1 + ? [testPackages[0].name] + : await (async () => { + const result = await p.multiselect({ + message: 'Which packages to test in watch mode?', + options: testPackages.map(pkg => ({ + value: pkg.name, + label: pkg.name, + hint: pkg.dir, + })), + required: true, + }); + + if (p.isCancel(result)) { + p.cancel('Cancelled.'); + process.exit(0); + } + + return result as string[]; + })(); + + // Single package: spawn vitest directly for interactive stdin (keyboard shortcuts) + if (names.length === 1) { + const pkg = testPackages.find(tp => tp.name === names[0])!; + const pkgDir = resolve(ROOT, pkg.dir); + + p.outro(`Running: vitest (interactive) in ${pkg.dir}`); + + const child = spawn('npx', ['vitest'], { + cwd: pkgDir, + stdio: 'inherit', + shell: true, + }); + + child.on('exit', code => process.exit(code ?? 0)); + return; + } + + // Multiple packages: use turbo (no interactive stdin, but parallel output) + const filters = names.map(name => `--filter=${name}...`).join(' '); + + p.outro(`Running: turbo test:watch ${filters}`); + + const child = spawn('turbo', ['test:watch', ...filters.split(' ')], { + cwd: process.cwd(), + stdio: 'inherit', + shell: true, + }); + + child.on('exit', code => process.exit(code ?? 0)); +}; + +main(); diff --git a/tooling/tsdown/base.ts b/tooling/tsdown/base.ts new file mode 100644 index 00000000..f6462c67 --- /dev/null +++ b/tooling/tsdown/base.ts @@ -0,0 +1,8 @@ +import { defineConfig } from 'tsdown'; + +export const baseTsdownConfig = defineConfig({ + format: 'esm', + dts: true, + clean: true, + target: 'es2024', +}); diff --git a/tooling/tsdown/package.json b/tooling/tsdown/package.json new file mode 100644 index 00000000..8e9cf462 --- /dev/null +++ b/tooling/tsdown/package.json @@ -0,0 +1,12 @@ +{ + "name": "@lemoncode/tsdown-config", + "private": true, + "version": "0.0.0", + "type": "module", + "exports": { + "./base": "./base.ts" + }, + "devDependencies": { + "tsdown": "0.21.9" + } +} diff --git a/tooling/typescript/base.json b/tooling/typescript/base.json new file mode 100644 index 00000000..23c1c083 --- /dev/null +++ b/tooling/typescript/base.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "composite": false, + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "strict": true, + "skipLibCheck": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noUncheckedIndexedAccess": true, + "verbatimModuleSyntax": true, + "resolveJsonModule": true + }, + "exclude": ["node_modules", "dist"] +} diff --git a/tooling/typescript/browser.json b/tooling/typescript/browser.json new file mode 100644 index 00000000..f3434e90 --- /dev/null +++ b/tooling/typescript/browser.json @@ -0,0 +1,9 @@ +{ + "extends": "./base.json", + "compilerOptions": { + "target": "ES2024", + "lib": ["ES2024", "DOM", "DOM.Iterable"], + "jsx": "react-jsx", + "noEmit": true + } +} diff --git a/tooling/typescript/node.json b/tooling/typescript/node.json new file mode 100644 index 00000000..14b2f8e8 --- /dev/null +++ b/tooling/typescript/node.json @@ -0,0 +1,8 @@ +{ + "extends": "./base.json", + "compilerOptions": { + "target": "ES2024", + "lib": ["ES2024"], + "noEmit": true + } +} diff --git a/tooling/typescript/package.json b/tooling/typescript/package.json new file mode 100644 index 00000000..59edeec6 --- /dev/null +++ b/tooling/typescript/package.json @@ -0,0 +1,10 @@ +{ + "name": "@lemoncode/typescript-config", + "private": true, + "version": "0.0.0", + "exports": { + "./base": "./base.json", + "./browser": "./browser.json", + "./node": "./node.json" + } +} diff --git a/tooling/vitest/base.ts b/tooling/vitest/base.ts new file mode 100644 index 00000000..b3e4dbe5 --- /dev/null +++ b/tooling/vitest/base.ts @@ -0,0 +1,41 @@ +import { defineConfig } from 'vitest/config'; + +export const baseVitestConfig = defineConfig({ + test: { + globals: true, + clearMocks: true, + restoreMocks: true, + passWithNoTests: true, + coverage: { + provider: 'v8', + reporter: ['text', 'html', 'lcov'], + exclude: [ + // Test & config files + '**/*.spec.{ts,tsx}', + '**/*.bench.ts', + '**/*.factory.ts', + '**/test/**', + '**/*.d.ts', + '**/vitest.*.ts', + // Type-only files (no runtime logic) + '**/index.ts', + '**/types.ts', + '**/*.api-model.ts', + '**/*.db-model.ts', + '**/*.model.ts', + '**/*.vm.ts', + // Configuration / wiring (no business logic) + '**/*.validation.ts', + '**/*.constant.ts', + '**/*.context.ts', + '**/*.api.ts', + '**/*.query.ts', + '**/*.style.ts', + '**/*.module.css', + // Structural layers (no logic) + '**/scenes/**', + '**/layouts/**', + ], + }, + }, +}); diff --git a/tooling/vitest/browser-setup.ts b/tooling/vitest/browser-setup.ts new file mode 100644 index 00000000..bb02c60c --- /dev/null +++ b/tooling/vitest/browser-setup.ts @@ -0,0 +1 @@ +import '@testing-library/jest-dom/vitest'; diff --git a/tooling/vitest/browser.ts b/tooling/vitest/browser.ts new file mode 100644 index 00000000..ab486dc5 --- /dev/null +++ b/tooling/vitest/browser.ts @@ -0,0 +1,33 @@ +import { playwright } from '@vitest/browser-playwright'; +import { mergeConfig } from 'vitest/config'; +import { baseVitestConfig } from './base.ts'; + +export const browserVitestConfig = mergeConfig(baseVitestConfig, { + test: { + projects: [ + { + extends: true, + test: { + name: 'node', + environment: 'node', + include: ['src/**/*.spec.ts'], + exclude: ['**/*.browser.spec.{ts,tsx}'], + }, + }, + { + extends: true, + test: { + name: 'browser', + setupFiles: [new URL('./browser-setup.ts', import.meta.url).pathname], + browser: { + enabled: true, + provider: playwright(), + headless: true, + instances: [{ browser: 'chromium' }], + }, + include: ['src/**/*.browser.spec.{ts,tsx}'], + }, + }, + ], + }, +}); diff --git a/tooling/vitest/package.json b/tooling/vitest/package.json new file mode 100644 index 00000000..2e0f753f --- /dev/null +++ b/tooling/vitest/package.json @@ -0,0 +1,19 @@ +{ + "name": "@lemoncode/vitest-config", + "private": true, + "version": "0.0.0", + "type": "module", + "exports": { + "./base": "./base.ts", + "./browser": "./browser.ts" + }, + "devDependencies": { + "@testing-library/jest-dom": "6.9.1", + "@vitest/browser": "4.1.4", + "@vitest/browser-playwright": "4.1.4", + "@vitest/coverage-v8": "4.1.4", + "@vitest/ui": "4.1.4", + "playwright": "1.59.1", + "vitest": "4.1.4" + } +} diff --git a/tooling/vitest/spa.ts b/tooling/vitest/spa.ts new file mode 100644 index 00000000..c82e5adc --- /dev/null +++ b/tooling/vitest/spa.ts @@ -0,0 +1,33 @@ +import { playwright } from '@vitest/browser-playwright'; +import { mergeConfig } from 'vitest/config'; +import { baseVitestConfig } from './base.ts'; + +export const spaVitestConfig = mergeConfig(baseVitestConfig, { + test: { + projects: [ + { + extends: true, + test: { + name: 'node', + environment: 'node', + include: ['src/**/*.spec.ts'], + exclude: ['**/*.browser.spec.{ts,tsx}'], + }, + }, + { + extends: true, + test: { + name: 'browser', + setupFiles: [new URL('./browser-setup.ts', import.meta.url).pathname], + browser: { + enabled: true, + provider: playwright(), + headless: true, + instances: [{ browser: 'chromium' }], + }, + include: ['src/**/*.browser.spec.{ts,tsx}'], + }, + }, + ], + }, +}); diff --git a/tsconfig.app.json b/tsconfig.app.json deleted file mode 100644 index fbc22e0a..00000000 --- a/tsconfig.app.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - "baseUrl": "src", - "paths": { - "@/*": ["*"] - }, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src", "e2e", "./global.d.ts"] -} diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index ea9d0cd8..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "files": [], - "references": [ - { - "path": "./tsconfig.app.json" - }, - { - "path": "./tsconfig.node.json" - } - ] -} diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index 3afdd6e3..00000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true, - "strict": true, - "noEmit": true - }, - "include": ["vite.config.ts"] -} diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..b8353db9 --- /dev/null +++ b/turbo.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://turbo.build/schema.json", + "tasks": { + "topo": { + "dependsOn": ["^topo"] + }, + "build": { + "dependsOn": ["^build"], + "outputs": ["dist/**"] + }, + "dev": { + "cache": false, + "persistent": true + }, + "check-types": { + "dependsOn": ["topo"] + }, + "check-types:watch": { + "cache": false, + "persistent": true, + "dependsOn": ["topo"] + }, + "test": { + "dependsOn": ["topo"] + }, + "test:watch": { + "cache": false, + "persistent": true, + "dependsOn": ["topo"] + }, + "test:coverage": { + "dependsOn": ["topo"], + "outputs": ["coverage/**"] + }, + "e2e": { + "cache": false, + "persistent": true + }, + "ci:e2e": { + "cache": false + } + } +} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index 7592c060..00000000 --- a/vite.config.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { defineConfig } from 'vite'; -import { fileURLToPath, URL } from 'node:url'; -import react from '@vitejs/plugin-react'; -import { configDefaults } from 'vitest/config'; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - build: { - rollupOptions: { - input: { - main: './index.html', - editor: './editor.html', - }, - }, - }, - test: { - globals: true, - environment: 'jsdom', - restoreMocks: true, - include: ['./src/**/*.spec.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - exclude: [...configDefaults.exclude, 'e2e/*'], - }, - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)), - }, - }, - server: { - port: 5173, // Usa el mismo puerto que te muestra la terminal - open: true, // Esto abrirá el navegador automáticamente - }, -});