diff --git a/.cursor/rules/changelog-process.mdc b/.cursor/rules/changelog-process.mdc index e6a5bbb671..120d6b81bc 100644 --- a/.cursor/rules/changelog-process.mdc +++ b/.cursor/rules/changelog-process.mdc @@ -106,34 +106,35 @@ Replace `{VERSION}` with the actual version number (e.g., `1.9.0`) ### 2. Create File Structure **Create changelog file:** -- Path: `packages/twenty-website/src/content/releases/{VERSION}.mdx` -- Example: `packages/twenty-website/src/content/releases/1.9.0.mdx` +- Path: `packages/twenty-website-new/src/content/releases/{VERSION}.mdx` +- Example: `packages/twenty-website-new/src/content/releases/1.9.0.mdx` **Create image folder:** -- Path: `packages/twenty-website/public/images/releases/{MINOR_VERSION}/` -- Example for version 1.9.0: `packages/twenty-website/public/images/releases/1.9/` -- Example for version 2.0.0: `packages/twenty-website/public/images/releases/2.0/` +- Path: `packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/` +- Example for version 1.9.0: `packages/twenty-website-new/public/images/releases/1.9/` +- Example for version 2.0.0: `packages/twenty-website-new/public/images/releases/2.0/` ```bash # Create the image folder -mkdir -p packages/twenty-website/public/images/releases/{MINOR_VERSION} +mkdir -p packages/twenty-website-new/public/images/releases/{MINOR_VERSION} ``` ### 3. Move Illustration Files **Source:** `/Users/thomascolasdesfrancs/Downloads/🆕` -**Destination:** `packages/twenty-website/public/images/releases/{MINOR_VERSION}/` +**Destination:** `packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/` -**Naming Convention:** `{VERSION}-descriptive-name.png` +**Naming Convention:** `{VERSION}-descriptive-name.webp` Examples: -- `1.9.0-feature-name.png` -- `1.9.0-another-feature.png` +- `1.9.0-feature-name.webp` +- `1.9.0-another-feature.webp` ```bash -# Move and rename files -cp ~/Downloads/🆕/source-file.png packages/twenty-website/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-name.png +# Move and rename source files, then convert to webp if needed +cp ~/Downloads/🆕/source-file.png packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-name.png +cd packages/twenty-website-new && node scripts/convert-png-to-webp.mjs ``` ### 4. Research Features (if needed) @@ -158,19 +159,19 @@ Date: {YYYY-MM-DD} Short description explaining what the feature does and why it's useful. Keep it user-focused and concise (1-2 sentences). -![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.png) +![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.webp) # Feature 2 Name Another short description of the second feature. -![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.png) +![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.webp) # Feature 3 Name Description of the third feature. -![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-3.png) +![](/images/releases/{MINOR_VERSION}/{VERSION}-feature-3.webp) ``` **Style Guidelines:** @@ -182,7 +183,7 @@ Description of the third feature. - **NEVER mention the brand name "Twenty"** in changelog text - use "your workspace", "the platform", or similar neutral references instead **Reference Previous Changelogs:** -- Check `packages/twenty-website/src/content/releases/` for examples +- Check `packages/twenty-website-new/src/content/releases/` for examples - Recent releases: 1.7.0.mdx, 1.6.0.mdx, 1.5.0.mdx ### 6. Review @@ -190,10 +191,10 @@ Description of the third feature. Open the changelog file for review: ```bash # Open in Cursor -cursor packages/twenty-website/src/content/releases/{VERSION}.mdx +cursor packages/twenty-website-new/src/content/releases/{VERSION}.mdx # Open image folder to verify illustrations -open packages/twenty-website/public/images/releases/{MINOR_VERSION} +open packages/twenty-website-new/public/images/releases/{MINOR_VERSION} ``` Review checklist: @@ -221,8 +222,8 @@ I've created the changelog for version {VERSION}. Here's the content for your re [Show full MDX content] Images moved to: -- packages/twenty-website/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.png -- packages/twenty-website/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.png +- packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-1.webp +- packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/{VERSION}-feature-2.webp Please review the content. Once you approve, I'll commit the changes and create the pull request. ``` @@ -241,8 +242,8 @@ Possible user responses: git status # Add files -git add packages/twenty-website/src/content/releases/{VERSION}.mdx -git add packages/twenty-website/public/images/releases/{MINOR_VERSION}/ +git add packages/twenty-website-new/src/content/releases/{VERSION}.mdx +git add packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/ # Commit git commit -m "Add {VERSION} release changelog" @@ -265,7 +266,7 @@ This release includes: - Feature 2 - Feature 3 -Changelog file: \`packages/twenty-website/src/content/releases/{VERSION}.mdx\` +Changelog file: \`packages/twenty-website-new/src/content/releases/{VERSION}.mdx\` Release date: {DATE}" \ --base main \ --head {VERSION} @@ -279,21 +280,21 @@ Or visit: `https://github.com/twentyhq/twenty/pull/new/{VERSION}` - **Format**: `{MAJOR}.{MINOR}.{PATCH}.mdx` - **Convention**: One file per complete version - **Examples**: `1.6.0.mdx`, `1.7.0.mdx`, `2.0.0.mdx` -- **Location**: `packages/twenty-website/src/content/releases/` +- **Location**: `packages/twenty-website-new/src/content/releases/` ### Image Folders - **Format**: `{MAJOR}.{MINOR}/` - **Convention**: One folder per minor version (shared across patches) - **Examples**: `1.6/`, `1.7/`, `2.0/` -- **Location**: `packages/twenty-website/public/images/releases/` +- **Location**: `packages/twenty-website-new/public/images/releases/` ### Image Files -- **Format**: `{VERSION}-descriptive-name.png` +- **Format**: `{VERSION}-descriptive-name.webp` - **Convention**: Kebab-case descriptive names - **Examples**: - - `1.8.0-workflow-iterator.png` - - `1.8.0-bulk-select.png` - - `1.9.0-new-feature.png` + - `1.8.0-workflow-iterator.webp` + - `1.8.0-bulk-select.webp` + - `1.9.0-new-feature.webp` ## Quick Reference Template @@ -310,8 +311,8 @@ Features to document: 3. ___________________________ Branch name: {VERSION} -Changelog path: packages/twenty-website/src/content/releases/{VERSION}.mdx -Images path: packages/twenty-website/public/images/releases/{MINOR_VERSION}/ +Changelog path: packages/twenty-website-new/src/content/releases/{VERSION}.mdx +Images path: packages/twenty-website-new/public/images/releases/{MINOR_VERSION}/ ``` ## Tips diff --git a/.github/workflows/ci-website.yaml b/.github/workflows/ci-website.yaml deleted file mode 100644 index e59ef3094c..0000000000 --- a/.github/workflows/ci-website.yaml +++ /dev/null @@ -1,71 +0,0 @@ -name: CI Website - -permissions: - contents: read - -on: - pull_request: - merge_group: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} - -jobs: - changed-files-check: - if: github.event_name != 'merge_group' - uses: ./.github/workflows/changed-files.yaml - with: - files: | - package.json - packages/twenty-website/** - website-build: - needs: changed-files-check - if: needs.changed-files-check.outputs.any_changed == 'true' - timeout-minutes: 10 - runs-on: ubuntu-latest - services: - postgres: - image: postgres:18 - env: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 10 - - - name: Install dependencies - uses: ./.github/actions/yarn-install - - - name: Server / Create DB - run: PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d postgres -c 'CREATE DATABASE "default";' - - - name: Website / Run migrations - run: npx nx database:migrate twenty-website - env: - DATABASE_PG_URL: postgres://postgres:postgres@localhost:5432/default - - name: Website / Build Website - run: npx nx build twenty-website - env: - DATABASE_PG_URL: postgres://postgres:postgres@localhost:5432/default - KEYSTATIC_GITHUB_CLIENT_ID: xxx - KEYSTATIC_GITHUB_CLIENT_SECRET: xxx - KEYSTATIC_SECRET: xxx - NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG: xxx - ci-website-status-check: - if: always() && !cancelled() - timeout-minutes: 5 - runs-on: ubuntu-latest - needs: [changed-files-check, website-build] - steps: - - name: Fail job if any needs failed - if: contains(needs.*.result, 'failure') - run: exit 1 diff --git a/CLAUDE.md b/CLAUDE.md index c0200c5c7c..d410fbea2b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -110,7 +110,8 @@ packages/ ├── twenty-ui/ # Shared UI components library ├── twenty-shared/ # Common types and utilities ├── twenty-emails/ # Email templates with React Email -├── twenty-website/ # Next.js documentation website +├── twenty-website-new/ # Next.js marketing website +├── twenty-docs/ # Documentation website ├── twenty-zapier/ # Zapier integration └── twenty-e2e-testing/ # Playwright E2E tests ``` diff --git a/README.md b/README.md index aa61e3f43c..e0f619793f 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@

- Twenty logo + Twenty logo

The #1 Open-Source CRM

-

Website · Documentation · Roadmap · Discord · Figma

+

Website · Documentation · Roadmap · Discord · Figma

- - - Twenty banner + + + Twenty banner

@@ -24,17 +24,17 @@ Twenty gives technical teams the building blocks for a custom CRM that meets complex business needs and quickly adapts as the business evolves. Twenty is the CRM you build, ship, and version like the rest of your stack. - Learn more about why we built Twenty + Learn more about why we built Twenty
# Installation -### Cloud +### Cloud The fastest way to get started. Sign up at [twenty.com](https://twenty.com) and spin up a workspace in under a minute, with no infrastructure to manage and always up to date. -### Build an app +### Build an app Scaffold a new app with the Twenty CLI: @@ -68,7 +68,7 @@ npx twenty deploy See the [app development guide](https://docs.twenty.com/developers/extend/apps/getting-started) for objects, views, agents, and logic functions. -### Self-hosting +### Self-hosting Run Twenty on your own infrastructure with [Docker Compose](https://docs.twenty.com/developers/self-host/capabilities/docker-compose), or contribute locally via the [local setup guide](https://docs.twenty.com/developers/contribute/capabilities/local-setup). @@ -79,61 +79,61 @@ Run Twenty on your own infrastructure with [Docker Compose](https://docs.twenty. Twenty gives you the building blocks of a modern CRM (objects, views, workflows, and agents) and lets you extend them as code. Here's a tour of what's in the box. -Want to go deeper? Read the User Guide for product walkthroughs, or the Documentation for developer reference. +Want to go deeper? Read the User Guide for product walkthroughs, or the Documentation for developer reference.
- - - Create your apps + + + Create your apps -

Learn more about apps in doc

+

Learn more about apps in doc

- - - Stay on top with version control + + + Stay on top with version control -

Learn more about version control in doc

+

Learn more about version control in doc

- - - All the tools you need to build anything + + + All the tools you need to build anything -

Learn more about primitives in doc

+

Learn more about primitives in doc

- - - Customize your layouts + + + Customize your layouts -

Learn more about layouts in doc

+

Learn more about layouts in doc

- - - AI agents and chats + + + AI agents and chats -

Learn more about AI in doc

+

Learn more about AI in doc

- - - Plus all the tools of a good CRM + + + Plus all the tools of a good CRM -

Learn more about CRM features in doc

+

Learn more about CRM features in doc

@@ -142,23 +142,23 @@ Want to go deeper? Read the TypeScript -- Nx -- NestJS, with BullMQ, PostgreSQL, Redis -- React, with Jotai, Linaria and Lingui +- TypeScript +- Nx +- NestJS, with BullMQ, PostgreSQL, Redis +- React, with Jotai, Linaria and Lingui # Thanks

- Chromatic + Chromatic      - Greptile + Greptile      - Sentry + Sentry      - Crowdin + Crowdin

Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin). @@ -166,4 +166,4 @@ Want to go deeper? Read the Star the repo · Discord · Feature requests · Releases · X · LinkedIn · Crowdin · Contribute

+

Star the repo · Discord · Feature requests · Releases · X · LinkedIn · Crowdin · Contribute

diff --git a/package.json b/package.json index e679aa7a04..171b9139cd 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "packages/twenty-ui", "packages/twenty-utils", "packages/twenty-zapier", - "packages/twenty-website", "packages/twenty-website-new", "packages/twenty-docs", "packages/twenty-e2e-testing", diff --git a/packages/create-twenty-app/README.md b/packages/create-twenty-app/README.md index ba6ec5e545..85660d03c6 100644 --- a/packages/create-twenty-app/README.md +++ b/packages/create-twenty-app/README.md @@ -1,7 +1,7 @@
- Twenty logo + Twenty logo

Create Twenty App

diff --git a/packages/twenty-docker/Makefile b/packages/twenty-docker/Makefile index d2d1203746..188e70b1a3 100644 --- a/packages/twenty-docker/Makefile +++ b/packages/twenty-docker/Makefile @@ -26,11 +26,11 @@ prod-run: prod-postgres-run: @docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres --name twenty-postgres twenty-postgres:$(TAG) -prod-website-build: - @cd ../.. && docker build -f ./packages/twenty-docker/twenty-website/Dockerfile --platform $(PLATFORM) --tag twenty-website:$(TAG) . && cd - +prod-website-new-build: + @cd ../.. && docker build -f ./packages/twenty-docker/twenty-website-new/Dockerfile --platform $(PLATFORM) --tag twenty-website-new:$(TAG) . && cd - -prod-website-run: - @docker run -d -p 3000:3000 --name twenty-website twenty-website:$(TAG) +prod-website-new-run: + @docker run -d -p 3000:3000 --name twenty-website-new twenty-website-new:$(TAG) # ============================================================================= # Local Development Services diff --git a/packages/twenty-docker/twenty-website/Dockerfile b/packages/twenty-docker/twenty-website/Dockerfile deleted file mode 100644 index dfd77f5ac0..0000000000 --- a/packages/twenty-docker/twenty-website/Dockerfile +++ /dev/null @@ -1,43 +0,0 @@ -FROM node:24-alpine AS twenty-website-build - - -WORKDIR /app - -COPY ./package.json . -COPY ./yarn.lock . -COPY ./.yarnrc.yml . -COPY ./.yarn/releases /app/.yarn/releases -COPY ./.yarn/patches /app/.yarn/patches -COPY ./packages/twenty-oxlint-rules /app/packages/twenty-oxlint-rules -COPY ./packages/twenty-ui/package.json /app/packages/twenty-ui/ -COPY ./packages/twenty-shared/package.json /app/packages/twenty-shared/ -COPY ./packages/twenty-website/package.json /app/packages/twenty-website/package.json - -RUN yarn - -ENV KEYSTATIC_GITHUB_CLIENT_ID="" -ENV KEYSTATIC_GITHUB_CLIENT_SECRET="" -ENV KEYSTATIC_SECRET="" -ENV NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG="" - -COPY ./packages/twenty-ui /app/packages/twenty-ui -COPY ./packages/twenty-website /app/packages/twenty-website -RUN npx nx build twenty-website - -FROM node:24-alpine AS twenty-website - -WORKDIR /app/packages/twenty-website - -COPY --from=twenty-website-build /app /app - -WORKDIR /app/packages/twenty-website - -LABEL org.opencontainers.image.source=https://github.com/twentyhq/twenty -LABEL org.opencontainers.image.description="This image provides a consistent and reproducible environment for the website." - -RUN chown -R 1000 /app - -# Use non root user with uid 1000 -USER 1000 - -CMD ["/bin/sh", "-c", "npx nx start"] diff --git a/packages/twenty-docs/MIGRATION.md b/packages/twenty-docs/MIGRATION.md index dee8f6be15..b017d4d894 100644 --- a/packages/twenty-docs/MIGRATION.md +++ b/packages/twenty-docs/MIGRATION.md @@ -77,14 +77,10 @@ To deploy to Mintlify: 3. Set subdirectory to `packages/twenty-docs` 4. Mintlify will auto-deploy and generate search embeddings -## Next Steps +## Status -1. **Manual Review** - Check for any component conversion issues -2. **Fix Image Paths** - Verify all images render correctly -3. **Test Navigation** - Ensure all internal links work -4. **Deploy** - Push to production Mintlify -5. **Update Helper Agent** - Verify searchArticles tool works with full content -6. **Deprecate twenty-website docs** - Once migration is confirmed working +This migration has been completed. The legacy `packages/twenty-website` package +has been removed, and documentation now lives in `packages/twenty-docs`. ## Known Issues to Review @@ -92,4 +88,3 @@ To deploy to Mintlify: - Some images may have incorrect paths - Custom styled components may need adjustment - Video embeds might need review - diff --git a/packages/twenty-oxlint-rules/rules/enforce-module-boundaries.ts b/packages/twenty-oxlint-rules/rules/enforce-module-boundaries.ts index a214ff6372..6e93f7b55d 100644 --- a/packages/twenty-oxlint-rules/rules/enforce-module-boundaries.ts +++ b/packages/twenty-oxlint-rules/rules/enforce-module-boundaries.ts @@ -12,7 +12,6 @@ const PACKAGE_TAG_MAP: Record = { 'twenty-zapier': ['scope:zapier'], 'twenty-oxlint-rules': ['scope:shared'], 'twenty-docs': ['scope:docs'], - 'twenty-website': ['scope:docs'], 'twenty-e2e-testing': ['scope:testing'], 'create-twenty-app': ['scope:create-app'], }; diff --git a/packages/twenty-sdk/README.md b/packages/twenty-sdk/README.md index 1bf794a970..0b9629b138 100644 --- a/packages/twenty-sdk/README.md +++ b/packages/twenty-sdk/README.md @@ -1,7 +1,7 @@
- Twenty logo + Twenty logo

Twenty SDK

diff --git a/packages/twenty-website/public/.well-known/microsoft-identity-association.json b/packages/twenty-website-new/public/.well-known/microsoft-identity-association.json similarity index 100% rename from packages/twenty-website/public/.well-known/microsoft-identity-association.json rename to packages/twenty-website-new/public/.well-known/microsoft-identity-association.json diff --git a/packages/twenty-website/public/.well-known/security.txt b/packages/twenty-website-new/public/.well-known/security.txt similarity index 100% rename from packages/twenty-website/public/.well-known/security.txt rename to packages/twenty-website-new/public/.well-known/security.txt diff --git a/packages/twenty-website/public/images/core/logo-mini.png b/packages/twenty-website-new/public/images/core/logo-mini.png similarity index 100% rename from packages/twenty-website/public/images/core/logo-mini.png rename to packages/twenty-website-new/public/images/core/logo-mini.png diff --git a/packages/twenty-website/public/images/core/logo.svg b/packages/twenty-website-new/public/images/core/logo.svg similarity index 100% rename from packages/twenty-website/public/images/core/logo.svg rename to packages/twenty-website-new/public/images/core/logo.svg diff --git a/packages/twenty-website/public/images/readme/book-icon.svg b/packages/twenty-website-new/public/images/readme/book-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/book-icon.svg rename to packages/twenty-website-new/public/images/readme/book-icon.svg diff --git a/packages/twenty-website/public/images/readme/chromatic.png b/packages/twenty-website-new/public/images/readme/chromatic.png similarity index 100% rename from packages/twenty-website/public/images/readme/chromatic.png rename to packages/twenty-website-new/public/images/readme/chromatic.png diff --git a/packages/twenty-website/public/images/readme/code-icon.svg b/packages/twenty-website-new/public/images/readme/code-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/code-icon.svg rename to packages/twenty-website-new/public/images/readme/code-icon.svg diff --git a/packages/twenty-website/public/images/readme/crowdin.png b/packages/twenty-website-new/public/images/readme/crowdin.png similarity index 100% rename from packages/twenty-website/public/images/readme/crowdin.png rename to packages/twenty-website-new/public/images/readme/crowdin.png diff --git a/packages/twenty-website/public/images/readme/data-model-dark.png b/packages/twenty-website-new/public/images/readme/data-model-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/data-model-dark.png rename to packages/twenty-website-new/public/images/readme/data-model-dark.png diff --git a/packages/twenty-website/public/images/readme/data-model-light.png b/packages/twenty-website-new/public/images/readme/data-model-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/data-model-light.png rename to packages/twenty-website-new/public/images/readme/data-model-light.png diff --git a/packages/twenty-website/public/images/readme/discord-icon.svg b/packages/twenty-website-new/public/images/readme/discord-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/discord-icon.svg rename to packages/twenty-website-new/public/images/readme/discord-icon.svg diff --git a/packages/twenty-website/public/images/readme/e2b.svg b/packages/twenty-website-new/public/images/readme/e2b.svg similarity index 100% rename from packages/twenty-website/public/images/readme/e2b.svg rename to packages/twenty-website-new/public/images/readme/e2b.svg diff --git a/packages/twenty-website/public/images/readme/figma-icon.png b/packages/twenty-website-new/public/images/readme/figma-icon.png similarity index 100% rename from packages/twenty-website/public/images/readme/figma-icon.png rename to packages/twenty-website-new/public/images/readme/figma-icon.png diff --git a/packages/twenty-website/public/images/readme/github-cover-dark.png b/packages/twenty-website-new/public/images/readme/github-cover-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/github-cover-dark.png rename to packages/twenty-website-new/public/images/readme/github-cover-dark.png diff --git a/packages/twenty-website/public/images/readme/github-cover-light.png b/packages/twenty-website-new/public/images/readme/github-cover-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/github-cover-light.png rename to packages/twenty-website-new/public/images/readme/github-cover-light.png diff --git a/packages/twenty-website/public/images/readme/globe-icon.svg b/packages/twenty-website-new/public/images/readme/globe-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/globe-icon.svg rename to packages/twenty-website-new/public/images/readme/globe-icon.svg diff --git a/packages/twenty-website/public/images/readme/greptile.png b/packages/twenty-website-new/public/images/readme/greptile.png similarity index 100% rename from packages/twenty-website/public/images/readme/greptile.png rename to packages/twenty-website-new/public/images/readme/greptile.png diff --git a/packages/twenty-website/public/images/readme/hacktoberfest2025.png b/packages/twenty-website-new/public/images/readme/hacktoberfest2025.png similarity index 100% rename from packages/twenty-website/public/images/readme/hacktoberfest2025.png rename to packages/twenty-website-new/public/images/readme/hacktoberfest2025.png diff --git a/packages/twenty-website/public/images/readme/language-icon.svg b/packages/twenty-website-new/public/images/readme/language-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/language-icon.svg rename to packages/twenty-website-new/public/images/readme/language-icon.svg diff --git a/packages/twenty-website/public/images/readme/linkedin-icon.svg b/packages/twenty-website-new/public/images/readme/linkedin-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/linkedin-icon.svg rename to packages/twenty-website-new/public/images/readme/linkedin-icon.svg diff --git a/packages/twenty-website/public/images/readme/map-icon.svg b/packages/twenty-website-new/public/images/readme/map-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/map-icon.svg rename to packages/twenty-website-new/public/images/readme/map-icon.svg diff --git a/packages/twenty-website/public/images/readme/message-icon.svg b/packages/twenty-website-new/public/images/readme/message-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/message-icon.svg rename to packages/twenty-website-new/public/images/readme/message-icon.svg diff --git a/packages/twenty-website/public/images/readme/monitor-icon.svg b/packages/twenty-website-new/public/images/readme/monitor-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/monitor-icon.svg rename to packages/twenty-website-new/public/images/readme/monitor-icon.svg diff --git a/packages/twenty-website/public/images/readme/permissions-dark.png b/packages/twenty-website-new/public/images/readme/permissions-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/permissions-dark.png rename to packages/twenty-website-new/public/images/readme/permissions-dark.png diff --git a/packages/twenty-website/public/images/readme/permissions-light.png b/packages/twenty-website-new/public/images/readme/permissions-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/permissions-light.png rename to packages/twenty-website-new/public/images/readme/permissions-light.png diff --git a/packages/twenty-website/public/images/readme/planner-icon.svg b/packages/twenty-website-new/public/images/readme/planner-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/planner-icon.svg rename to packages/twenty-website-new/public/images/readme/planner-icon.svg diff --git a/packages/twenty-website/public/images/readme/plus-other-features-dark.png b/packages/twenty-website-new/public/images/readme/plus-other-features-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/plus-other-features-dark.png rename to packages/twenty-website-new/public/images/readme/plus-other-features-dark.png diff --git a/packages/twenty-website/public/images/readme/plus-other-features-light.png b/packages/twenty-website-new/public/images/readme/plus-other-features-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/plus-other-features-light.png rename to packages/twenty-website-new/public/images/readme/plus-other-features-light.png diff --git a/packages/twenty-website/public/images/readme/product-hunt-banner-dark.png b/packages/twenty-website-new/public/images/readme/product-hunt-banner-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/product-hunt-banner-dark.png rename to packages/twenty-website-new/public/images/readme/product-hunt-banner-dark.png diff --git a/packages/twenty-website/public/images/readme/product-hunt-banner-light.png b/packages/twenty-website-new/public/images/readme/product-hunt-banner-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/product-hunt-banner-light.png rename to packages/twenty-website-new/public/images/readme/product-hunt-banner-light.png diff --git a/packages/twenty-website/public/images/readme/product-hunt-banner.png b/packages/twenty-website-new/public/images/readme/product-hunt-banner.png similarity index 100% rename from packages/twenty-website/public/images/readme/product-hunt-banner.png rename to packages/twenty-website-new/public/images/readme/product-hunt-banner.png diff --git a/packages/twenty-website/public/images/readme/rocket-icon.svg b/packages/twenty-website-new/public/images/readme/rocket-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/rocket-icon.svg rename to packages/twenty-website-new/public/images/readme/rocket-icon.svg diff --git a/packages/twenty-website/public/images/readme/sentry.png b/packages/twenty-website-new/public/images/readme/sentry.png similarity index 100% rename from packages/twenty-website/public/images/readme/sentry.png rename to packages/twenty-website-new/public/images/readme/sentry.png diff --git a/packages/twenty-website/public/images/readme/stack-nestjs.svg b/packages/twenty-website-new/public/images/readme/stack-nestjs.svg similarity index 100% rename from packages/twenty-website/public/images/readme/stack-nestjs.svg rename to packages/twenty-website-new/public/images/readme/stack-nestjs.svg diff --git a/packages/twenty-website/public/images/readme/stack-nx.svg b/packages/twenty-website-new/public/images/readme/stack-nx.svg similarity index 100% rename from packages/twenty-website/public/images/readme/stack-nx.svg rename to packages/twenty-website-new/public/images/readme/stack-nx.svg diff --git a/packages/twenty-website/public/images/readme/stack-postgresql.svg b/packages/twenty-website-new/public/images/readme/stack-postgresql.svg similarity index 100% rename from packages/twenty-website/public/images/readme/stack-postgresql.svg rename to packages/twenty-website-new/public/images/readme/stack-postgresql.svg diff --git a/packages/twenty-website/public/images/readme/stack-react.svg b/packages/twenty-website-new/public/images/readme/stack-react.svg similarity index 100% rename from packages/twenty-website/public/images/readme/stack-react.svg rename to packages/twenty-website-new/public/images/readme/stack-react.svg diff --git a/packages/twenty-website/public/images/readme/stack-redis.svg b/packages/twenty-website-new/public/images/readme/stack-redis.svg similarity index 100% rename from packages/twenty-website/public/images/readme/stack-redis.svg rename to packages/twenty-website-new/public/images/readme/stack-redis.svg diff --git a/packages/twenty-website/public/images/readme/stack-typescript.svg b/packages/twenty-website-new/public/images/readme/stack-typescript.svg similarity index 100% rename from packages/twenty-website/public/images/readme/stack-typescript.svg rename to packages/twenty-website-new/public/images/readme/stack-typescript.svg diff --git a/packages/twenty-website/public/images/readme/star-icon.svg b/packages/twenty-website-new/public/images/readme/star-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/star-icon.svg rename to packages/twenty-website-new/public/images/readme/star-icon.svg diff --git a/packages/twenty-website/public/images/readme/v2-ai-agents-dark.png b/packages/twenty-website-new/public/images/readme/v2-ai-agents-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-ai-agents-dark.png rename to packages/twenty-website-new/public/images/readme/v2-ai-agents-dark.png diff --git a/packages/twenty-website/public/images/readme/v2-ai-agents-light.png b/packages/twenty-website-new/public/images/readme/v2-ai-agents-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-ai-agents-light.png rename to packages/twenty-website-new/public/images/readme/v2-ai-agents-light.png diff --git a/packages/twenty-website/public/images/readme/v2-ai-agents.png b/packages/twenty-website-new/public/images/readme/v2-ai-agents.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-ai-agents.png rename to packages/twenty-website-new/public/images/readme/v2-ai-agents.png diff --git a/packages/twenty-website/public/images/readme/v2-all-tools-dark.png b/packages/twenty-website-new/public/images/readme/v2-all-tools-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-all-tools-dark.png rename to packages/twenty-website-new/public/images/readme/v2-all-tools-dark.png diff --git a/packages/twenty-website/public/images/readme/v2-all-tools-light.png b/packages/twenty-website-new/public/images/readme/v2-all-tools-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-all-tools-light.png rename to packages/twenty-website-new/public/images/readme/v2-all-tools-light.png diff --git a/packages/twenty-website/public/images/readme/v2-build-apps-dark.png b/packages/twenty-website-new/public/images/readme/v2-build-apps-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-build-apps-dark.png rename to packages/twenty-website-new/public/images/readme/v2-build-apps-dark.png diff --git a/packages/twenty-website/public/images/readme/v2-build-apps-light.png b/packages/twenty-website-new/public/images/readme/v2-build-apps-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-build-apps-light.png rename to packages/twenty-website-new/public/images/readme/v2-build-apps-light.png diff --git a/packages/twenty-website/public/images/readme/v2-build-apps.png b/packages/twenty-website-new/public/images/readme/v2-build-apps.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-build-apps.png rename to packages/twenty-website-new/public/images/readme/v2-build-apps.png diff --git a/packages/twenty-website/public/images/readme/v2-crm-tools-dark.png b/packages/twenty-website-new/public/images/readme/v2-crm-tools-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-crm-tools-dark.png rename to packages/twenty-website-new/public/images/readme/v2-crm-tools-dark.png diff --git a/packages/twenty-website/public/images/readme/v2-crm-tools-light.png b/packages/twenty-website-new/public/images/readme/v2-crm-tools-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-crm-tools-light.png rename to packages/twenty-website-new/public/images/readme/v2-crm-tools-light.png diff --git a/packages/twenty-website/public/images/readme/v2-crm-tools.png b/packages/twenty-website-new/public/images/readme/v2-crm-tools.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-crm-tools.png rename to packages/twenty-website-new/public/images/readme/v2-crm-tools.png diff --git a/packages/twenty-website/public/images/readme/v2-tools-dark.png b/packages/twenty-website-new/public/images/readme/v2-tools-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-tools-dark.png rename to packages/twenty-website-new/public/images/readme/v2-tools-dark.png diff --git a/packages/twenty-website/public/images/readme/v2-tools-light.png b/packages/twenty-website-new/public/images/readme/v2-tools-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-tools-light.png rename to packages/twenty-website-new/public/images/readme/v2-tools-light.png diff --git a/packages/twenty-website/public/images/readme/v2-tools.png b/packages/twenty-website-new/public/images/readme/v2-tools.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-tools.png rename to packages/twenty-website-new/public/images/readme/v2-tools.png diff --git a/packages/twenty-website/public/images/readme/v2-version-control-dark.png b/packages/twenty-website-new/public/images/readme/v2-version-control-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-version-control-dark.png rename to packages/twenty-website-new/public/images/readme/v2-version-control-dark.png diff --git a/packages/twenty-website/public/images/readme/v2-version-control-light.png b/packages/twenty-website-new/public/images/readme/v2-version-control-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-version-control-light.png rename to packages/twenty-website-new/public/images/readme/v2-version-control-light.png diff --git a/packages/twenty-website/public/images/readme/v2-version-control.png b/packages/twenty-website-new/public/images/readme/v2-version-control.png similarity index 100% rename from packages/twenty-website/public/images/readme/v2-version-control.png rename to packages/twenty-website-new/public/images/readme/v2-version-control.png diff --git a/packages/twenty-website/public/images/readme/views-dark.png b/packages/twenty-website-new/public/images/readme/views-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/views-dark.png rename to packages/twenty-website-new/public/images/readme/views-dark.png diff --git a/packages/twenty-website/public/images/readme/views-light.png b/packages/twenty-website-new/public/images/readme/views-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/views-light.png rename to packages/twenty-website-new/public/images/readme/views-light.png diff --git a/packages/twenty-website/public/images/readme/workflows-dark.png b/packages/twenty-website-new/public/images/readme/workflows-dark.png similarity index 100% rename from packages/twenty-website/public/images/readme/workflows-dark.png rename to packages/twenty-website-new/public/images/readme/workflows-dark.png diff --git a/packages/twenty-website/public/images/readme/workflows-light.png b/packages/twenty-website-new/public/images/readme/workflows-light.png similarity index 100% rename from packages/twenty-website/public/images/readme/workflows-light.png rename to packages/twenty-website-new/public/images/readme/workflows-light.png diff --git a/packages/twenty-website/public/images/readme/x-icon.svg b/packages/twenty-website-new/public/images/readme/x-icon.svg similarity index 100% rename from packages/twenty-website/public/images/readme/x-icon.svg rename to packages/twenty-website-new/public/images/readme/x-icon.svg diff --git a/packages/twenty-website/.env.example b/packages/twenty-website/.env.example deleted file mode 100644 index ce643bedf5..0000000000 --- a/packages/twenty-website/.env.example +++ /dev/null @@ -1,9 +0,0 @@ -GITHUB_TOKEN=your_github_token -DATABASE_PG_URL=postgres://website:website@localhost:5432/website # only if using postgres -NEXT_PUBLIC_ALGOLIA_APP_ID=twenty_appId -NEXT_PUBLIC_ALGOLIA_API_KEY=twenty_apiKey - -KEYSTATIC_GITHUB_CLIENT_ID="xxx" -KEYSTATIC_GITHUB_CLIENT_SECRET="xxx" -KEYSTATIC_SECRET="xxx" -NEXT_PUBLIC_KEYSTATIC_GITHUB_APP_SLUG="xxx" diff --git a/packages/twenty-website/.gitignore b/packages/twenty-website/.gitignore deleted file mode 100644 index 301c67f0cd..0000000000 --- a/packages/twenty-website/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -/node_modules -/.pnp -.pnp.js -.yarn/install-state.gz - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env*.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts - -# DB -*.sqlite \ No newline at end of file diff --git a/packages/twenty-website/.oxlintrc.json b/packages/twenty-website/.oxlintrc.json deleted file mode 100644 index 3402a729a8..0000000000 --- a/packages/twenty-website/.oxlintrc.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "$schema": "./node_modules/oxlint/configuration_schema.json", - "plugins": ["react", "typescript", "import", "unicorn"], - "categories": { - "correctness": "off" - }, - "ignorePatterns": ["node_modules"], - "rules": { - "func-style": ["error", "declaration", { "allowArrowFunctions": true }], - "no-console": "off", - "no-control-regex": "off", - "no-debugger": "error", - "no-duplicate-imports": "error", - "no-undef": "off", - "no-unused-vars": "off", - "no-redeclare": "off", - "import/no-duplicates": "error", - "typescript/no-redeclare": "error", - "typescript/ban-ts-comment": "error", - "typescript/consistent-type-imports": ["error", { - "prefer": "type-imports", - "fixStyle": "inline-type-imports" - }], - "typescript/explicit-function-return-type": "off", - "typescript/explicit-module-boundary-types": "off", - "typescript/no-empty-object-type": ["error", { - "allowInterfaces": "with-single-extends" - }], - "typescript/no-empty-function": "off", - "typescript/no-explicit-any": "off", - "typescript/no-unused-vars": ["warn", { - "vars": "all", - "varsIgnorePattern": "^_", - "args": "after-used", - "argsIgnorePattern": "^_" - }], - "react/no-unescaped-entities": "off", - "react/prop-types": "off", - "react/jsx-key": "off", - "react/display-name": "off", - "react/jsx-uses-react": "off", - "react/react-in-jsx-scope": "off", - "react/jsx-no-useless-fragment": "off", - "react/jsx-props-no-spreading": ["error", { "explicitSpread": "ignore" }], - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "warn" - } -} diff --git a/packages/twenty-website/README.md b/packages/twenty-website/README.md deleted file mode 100644 index 0944f14957..0000000000 --- a/packages/twenty-website/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Twenty-Website - -This is used for the marketing website (twenty.com). -This is not related in any way to the main app, which you can find in twenty-front and twenty-server. - -## Getting Started - -We're using Next.js -We're using Postgres for the database. Mandatory for the website to work, even locally. - -1. Copy the .env.example file to .env and fill in the values. - -2. Run the migrations: - -```bash -npx nx run twenty-website:database:migrate -``` - -3. From the root directory: - -```bash -npx nx run twenty-website:dev -``` - -Then open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -Or to build in prod: - -```bash -npx nx run twenty-website:build -npx nx run twenty-website:start -``` diff --git a/packages/twenty-website/keystatic.config.ts b/packages/twenty-website/keystatic.config.ts deleted file mode 100644 index 8b00839383..0000000000 --- a/packages/twenty-website/keystatic.config.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { collection, config, fields } from '@keystatic/core'; - -export default config({ - storage: { - kind: 'github', - repo: { - owner: 'twentyhq', - name: 'twenty', - }, - pathPrefix: 'packages/twenty-website', - }, - collections: { - releases: collection({ - label: 'Releases', - slugField: 'release', - path: 'src/content/releases/*', - format: { contentField: 'content' }, - schema: { - release: fields.slug({ - name: { - label: 'Release', - validation: { - pattern: { - regex: /^\d+\.\d+\.\d+$/, - message: 'The release must be in the format major.minor.patch', - }, - }, - }, - slug: { - generate: (name) => name, - validation: { - pattern: { - regex: /^\d+\.\d+\.\d+$/, - message: 'The release must be in the format major.minor.patch', - }, - }, - }, - }), - // TODO: Define the date with a normalized format - Date: fields.text({ label: 'Date' }), - content: fields.mdx({ - label: 'Content', - options: { - image: { - directory: 'public/images/releases', - publicPath: '/images/releases/', - }, - }, - }), - }, - parseSlugForSort: (slug) => { - const [major, minor, patch] = slug.split('.'); - - return `${major.padStart(4, '0')}.${minor.padStart(4, '0')}.${patch.padStart(4, '0')}`; - }, - }), - }, -}); diff --git a/packages/twenty-website/next.config.js b/packages/twenty-website/next.config.js deleted file mode 100644 index d5436e3abd..0000000000 --- a/packages/twenty-website/next.config.js +++ /dev/null @@ -1,76 +0,0 @@ -/** @type {import('next').NextConfig} */ -const withLinaria = require('next-with-linaria'); - -const nextConfig = { - images: { - remotePatterns: [ - { - protocol: 'https', - hostname: 'avatars.githubusercontent.com', - }, - ], - }, - async redirects() { - return [ - { - source: '/user-guide', - destination: 'https://docs.twenty.com/user-guide/introduction', - permanent: true, - }, - { - source: '/user-guide/section/:folder/:slug*', - destination: 'https://docs.twenty.com/user-guide/:folder/:slug*', - permanent: true, - }, - { - source: '/user-guide/:folder/:slug*', - destination: 'https://docs.twenty.com/user-guide/:folder/:slug*', - permanent: true, - }, - - { - source: '/developers', - destination: 'https://docs.twenty.com/developers/introduction', - permanent: true, - }, - { - source: '/developers/section/:folder/:slug*', - destination: 'https://docs.twenty.com/developers/:folder/:slug*', - permanent: true, - }, - { - source: '/developers/:folder/:slug*', - destination: 'https://docs.twenty.com/developers/:folder/:slug*', - permanent: true, - }, - { - source: '/developers/:slug', - destination: 'https://docs.twenty.com/developers/:slug', - permanent: true, - }, - - { - source: '/twenty-ui', - destination: 'https://docs.twenty.com/twenty-ui/introduction', - permanent: true, - }, - { - source: '/twenty-ui/section/:folder/:slug*', - destination: 'https://docs.twenty.com/twenty-ui/:folder/:slug*', - permanent: true, - }, - { - source: '/twenty-ui/:folder/:slug*', - destination: 'https://docs.twenty.com/twenty-ui/:folder/:slug*', - permanent: true, - }, - { - source: '/twenty-ui/:slug', - destination: 'https://docs.twenty.com/twenty-ui/:slug', - permanent: true, - }, - ]; - }, -}; - -module.exports = withLinaria(nextConfig); diff --git a/packages/twenty-website/package.json b/packages/twenty-website/package.json deleted file mode 100644 index 833b1a08c7..0000000000 --- a/packages/twenty-website/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "twenty-website", - "private": true, - "scripts": { - "nx": "NX_DEFAULT_PROJECT=twenty-website node ../../node_modules/nx/bin/nx.js", - "dev": "npx next dev", - "build": "npx next build", - "start": "npx next start", - "github:sync": "npx tsx src/github/github-sync.ts", - "github:init": "npx tsx src/github/github-sync.ts --isFullSync", - "database:migrate": "npx tsx src/database/migrate-database.ts", - "database:generate:pg": "npx drizzle-kit generate --config=src/database/drizzle-posgres.config.ts" - }, - "dependencies": { - "@codesandbox/sandpack-react": "^2.13.5", - "@docsearch/react": "^3.6.2", - "@keystatic/core": "^0.5.45", - "@keystatic/next": "^5.0.3", - "@markdoc/markdoc": "^0.5.1", - "@nivo/calendar": "^0.99.0", - "date-fns": "^2.30.0", - "drizzle-orm": "^0.44.7", - "facepaint": "^1.2.1", - "framer-motion": "^11.18.0", - "gray-matter": "^4.0.3", - "hex-rgb": "^5.0.0", - "next": "^14.2.25", - "next-mdx-remote": "^6.0.0", - "next-runtime-env": "^3.3.0", - "postgres": "^3.4.3", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-tooltip": "^5.13.1", - "stripe": "^20.3.1", - "twenty-ui": "workspace:*" - }, - "devDependencies": { - "@types/facepaint": "^1.2.5", - "drizzle-kit": "^0.31.5" - } -} diff --git a/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-settings.jpg b/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-settings.jpg deleted file mode 100644 index 6378e55384..0000000000 Binary files a/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-settings.jpg and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-test-result.jpg b/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-test-result.jpg deleted file mode 100644 index d13ecd0419..0000000000 Binary files a/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-test-result.jpg and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-test.jpg b/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-test.jpg deleted file mode 100644 index 9651d818a9..0000000000 Binary files a/packages/twenty-website/public/images/docs/developers/self-hosting/webhook-test.jpg and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/getting-started/api.png b/packages/twenty-website/public/images/docs/getting-started/api.png deleted file mode 100644 index 4176f14f14..0000000000 Binary files a/packages/twenty-website/public/images/docs/getting-started/api.png and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/getting-started/doc-preview.png b/packages/twenty-website/public/images/docs/getting-started/doc-preview.png deleted file mode 100644 index a9274e57f7..0000000000 Binary files a/packages/twenty-website/public/images/docs/getting-started/doc-preview.png and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/getting-started/webhooks.png b/packages/twenty-website/public/images/docs/getting-started/webhooks.png deleted file mode 100644 index 997ce2a0ad..0000000000 Binary files a/packages/twenty-website/public/images/docs/getting-started/webhooks.png and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/server/add-custom-objects.jpeg b/packages/twenty-website/public/images/docs/server/add-custom-objects.jpeg deleted file mode 100644 index 7437e1ee5e..0000000000 Binary files a/packages/twenty-website/public/images/docs/server/add-custom-objects.jpeg and /dev/null differ diff --git a/packages/twenty-website/public/images/docs/server/custom-object-schema.png b/packages/twenty-website/public/images/docs/server/custom-object-schema.png deleted file mode 100644 index f3c6210a0e..0000000000 Binary files a/packages/twenty-website/public/images/docs/server/custom-object-schema.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-ai-enabled.png b/packages/twenty-website/public/images/lab/is-ai-enabled.png deleted file mode 100644 index 965249afc0..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-ai-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-calendar-view-enabled.png b/packages/twenty-website/public/images/lab/is-calendar-view-enabled.png deleted file mode 100644 index 1d51013b28..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-calendar-view-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-custom-domain-enabled.png b/packages/twenty-website/public/images/lab/is-custom-domain-enabled.png deleted file mode 100644 index 71b8597391..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-custom-domain-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-fields-permissions-enabled.png b/packages/twenty-website/public/images/lab/is-fields-permissions-enabled.png deleted file mode 100644 index a5ed29b9db..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-fields-permissions-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-if-else-enabled.png b/packages/twenty-website/public/images/lab/is-if-else-enabled.png deleted file mode 100644 index 0d870b706e..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-if-else-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-imap-smtp-caldav-enabled.png b/packages/twenty-website/public/images/lab/is-imap-smtp-caldav-enabled.png deleted file mode 100644 index c741d352cf..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-imap-smtp-caldav-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-permissions-enabled.png b/packages/twenty-website/public/images/lab/is-permissions-enabled.png deleted file mode 100644 index 98160edf61..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-permissions-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-real-time-enabled.png b/packages/twenty-website/public/images/lab/is-real-time-enabled.png deleted file mode 100644 index 24567f497e..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-real-time-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-row-level-permission-predicates-enabled.png b/packages/twenty-website/public/images/lab/is-row-level-permission-predicates-enabled.png deleted file mode 100644 index 709301b7a4..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-row-level-permission-predicates-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-two-factors-auth-enabled.png b/packages/twenty-website/public/images/lab/is-two-factors-auth-enabled.png deleted file mode 100644 index ae4f40c94d..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-two-factors-auth-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/lab/is-workflow-iterator-enabled.png b/packages/twenty-website/public/images/lab/is-workflow-iterator-enabled.png deleted file mode 100644 index 0e71fa7a51..0000000000 Binary files a/packages/twenty-website/public/images/lab/is-workflow-iterator-enabled.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.10/0.10-currency.png b/packages/twenty-website/public/images/releases/0.10/0.10-currency.png deleted file mode 100644 index 35bcb187e3..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.10/0.10-currency.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.10/0.10-datetime.png b/packages/twenty-website/public/images/releases/0.10/0.10-datetime.png deleted file mode 100644 index 6a4bf3a621..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.10/0.10-datetime.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.10/0.10-json.png b/packages/twenty-website/public/images/releases/0.10/0.10-json.png deleted file mode 100644 index e4209dc885..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.10/0.10-json.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.10/0.10-multi-select.png b/packages/twenty-website/public/images/releases/0.10/0.10-multi-select.png deleted file mode 100644 index 037ffc297d..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.10/0.10-multi-select.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.10/0.10-remote.png b/packages/twenty-website/public/images/releases/0.10/0.10-remote.png deleted file mode 100644 index e25ae7c78d..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.10/0.10-remote.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.11/0.11-calendar.png b/packages/twenty-website/public/images/releases/0.11/0.11-calendar.png deleted file mode 100644 index 81b01e6006..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.11/0.11-calendar.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.11/0.11-speed.png b/packages/twenty-website/public/images/releases/0.11/0.11-speed.png deleted file mode 100644 index 4c95bc4681..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.11/0.11-speed.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.12/0.12-database-diagram.png b/packages/twenty-website/public/images/releases/0.12/0.12-database-diagram.png deleted file mode 100644 index 927aa02f0f..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.12/0.12-database-diagram.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.12/0.12-link-field.png b/packages/twenty-website/public/images/releases/0.12/0.12-link-field.png deleted file mode 100644 index f7efbafe8f..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.12/0.12-link-field.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.12/0.12-loader.png b/packages/twenty-website/public/images/releases/0.12/0.12-loader.png deleted file mode 100644 index 226734a20e..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.12/0.12-loader.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.12/0.12-notifications.png b/packages/twenty-website/public/images/releases/0.12/0.12-notifications.png deleted file mode 100644 index b686c004dc..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.12/0.12-notifications.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.2.3_relations.png b/packages/twenty-website/public/images/releases/0.2.3_relations.png deleted file mode 100644 index dd0c2bd14f..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.2.3_relations.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.2.3_webhooks.png b/packages/twenty-website/public/images/releases/0.2.3_webhooks.png deleted file mode 100644 index 25c214fdea..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.2.3_webhooks.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.20/0.20-blocklist.png b/packages/twenty-website/public/images/releases/0.20/0.20-blocklist.png deleted file mode 100644 index 92fbf686ba..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.20/0.20-blocklist.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.20/0.20-onboarding.png b/packages/twenty-website/public/images/releases/0.20/0.20-onboarding.png deleted file mode 100644 index b29133411c..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.20/0.20-onboarding.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.20/0.20-timeline.png b/packages/twenty-website/public/images/releases/0.20/0.20-timeline.png deleted file mode 100644 index 20fbd8a773..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.20/0.20-timeline.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.21/0.21-advanced-email-settings.png b/packages/twenty-website/public/images/releases/0.21/0.21-advanced-email-settings.png deleted file mode 100644 index cc69c0cca7..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.21/0.21-advanced-email-settings.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.21/0.21-many-many.png b/packages/twenty-website/public/images/releases/0.21/0.21-many-many.png deleted file mode 100644 index c76dbdc5ec..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.21/0.21-many-many.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.22/0.22-kanban-improvements.png b/packages/twenty-website/public/images/releases/0.22/0.22-kanban-improvements.png deleted file mode 100644 index e9625df622..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.22/0.22-kanban-improvements.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.22/0.22-mass-deletion.png b/packages/twenty-website/public/images/releases/0.22/0.22-mass-deletion.png deleted file mode 100644 index f09ab65148..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.22/0.22-mass-deletion.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.22/0.22-navbar.png b/packages/twenty-website/public/images/releases/0.22/0.22-navbar.png deleted file mode 100644 index 6b0bb59762..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.22/0.22-navbar.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.23/0.23-created-by.png b/packages/twenty-website/public/images/releases/0.23/0.23-created-by.png deleted file mode 100644 index 2bf3b6df69..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.23/0.23-created-by.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.23/0.23-filter-webhooks.png b/packages/twenty-website/public/images/releases/0.23/0.23-filter-webhooks.png deleted file mode 100644 index 7e9126c627..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.23/0.23-filter-webhooks.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.23/0.23-notes-tasks.png b/packages/twenty-website/public/images/releases/0.23/0.23-notes-tasks.png deleted file mode 100644 index ad4c3e202a..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.23/0.23-notes-tasks.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.24/0.24-soft-delete.png b/packages/twenty-website/public/images/releases/0.24/0.24-soft-delete.png deleted file mode 100644 index d7761b0105..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.24/0.24-soft-delete.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.3.0_rating.png b/packages/twenty-website/public/images/releases/0.3.0_rating.png deleted file mode 100644 index ba7d61ea44..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.3.0_rating.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.3.1_contributors.png b/packages/twenty-website/public/images/releases/0.3.1_contributors.png deleted file mode 100644 index e50da30b4f..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.3.1_contributors.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.3.2_new_layout.png b/packages/twenty-website/public/images/releases/0.3.2_new_layout.png deleted file mode 100644 index 1b3d2123b8..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.3.2_new_layout.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.3.3_emails.png b/packages/twenty-website/public/images/releases/0.3.3_emails.png deleted file mode 100644 index 2b7b72f704..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.3.3_emails.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.3.3_kanban.png b/packages/twenty-website/public/images/releases/0.3.3_kanban.png deleted file mode 100644 index 8bbf281e22..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.3.3_kanban.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.3.3_sign_up.png b/packages/twenty-website/public/images/releases/0.3.3_sign_up.png deleted file mode 100644 index cc9618b4d7..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.3.3_sign_up.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.30/0.30-array-field.png b/packages/twenty-website/public/images/releases/0.30/0.30-array-field.png deleted file mode 100644 index 84736fe547..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.30/0.30-array-field.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.30/0.30-emails.png b/packages/twenty-website/public/images/releases/0.30/0.30-emails.png deleted file mode 100644 index d22595abb5..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.30/0.30-emails.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.30/0.30-new-settings.png b/packages/twenty-website/public/images/releases/0.30/0.30-new-settings.png deleted file mode 100644 index 264a182a4d..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.30/0.30-new-settings.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.31/0.31-advanced-settings.png b/packages/twenty-website/public/images/releases/0.31/0.31-advanced-settings.png deleted file mode 100644 index d6f094b5b9..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.31/0.31-advanced-settings.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.31/0.31-search.png b/packages/twenty-website/public/images/releases/0.31/0.31-search.png deleted file mode 100644 index 2d1d6882a9..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.31/0.31-search.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.32/0.32-improved-cmdk.png b/packages/twenty-website/public/images/releases/0.32/0.32-improved-cmdk.png deleted file mode 100644 index 5b08beccc4..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.32/0.32-improved-cmdk.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.32/0.32-webhooks.png b/packages/twenty-website/public/images/releases/0.32/0.32-webhooks.png deleted file mode 100644 index 1b01b9a43e..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.32/0.32-webhooks.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.33/0.33-multiselect-filter.png b/packages/twenty-website/public/images/releases/0.33/0.33-multiselect-filter.png deleted file mode 100644 index aa018e5079..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.33/0.33-multiselect-filter.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.33/0.33-percentage-number.png b/packages/twenty-website/public/images/releases/0.33/0.33-percentage-number.png deleted file mode 100644 index 8729970d87..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.33/0.33-percentage-number.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.34/0.34-subdomains.png b/packages/twenty-website/public/images/releases/0.34/0.34-subdomains.png deleted file mode 100644 index b3f244a7e2..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.34/0.34-subdomains.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.35/0.35-Favorites.png b/packages/twenty-website/public/images/releases/0.35/0.35-Favorites.png deleted file mode 100644 index 06a80e1f0e..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.35/0.35-Favorites.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.4/0.4-address-field-type.png b/packages/twenty-website/public/images/releases/0.4/0.4-address-field-type.png deleted file mode 100644 index c16ddee10f..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.4/0.4-address-field-type.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.4/0.4-expand-relation-card.png b/packages/twenty-website/public/images/releases/0.4/0.4-expand-relation-card.png deleted file mode 100644 index 59eaf3d56e..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.4/0.4-expand-relation-card.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.4/0.4-multi-workspace.png b/packages/twenty-website/public/images/releases/0.4/0.4-multi-workspace.png deleted file mode 100644 index fee3f98e14..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.4/0.4-multi-workspace.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.40/0.40-aggregates.png b/packages/twenty-website/public/images/releases/0.40/0.40-aggregates.png deleted file mode 100644 index 26f2c6fcfc..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.40/0.40-aggregates.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.40/0.40-group-by.png b/packages/twenty-website/public/images/releases/0.40/0.40-group-by.png deleted file mode 100644 index 80a0718b7d..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.40/0.40-group-by.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.41/0.41-labs.png b/packages/twenty-website/public/images/releases/0.41/0.41-labs.png deleted file mode 100644 index bf9a82df74..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.41/0.41-labs.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.42/0.42-document-viewer.png b/packages/twenty-website/public/images/releases/0.42/0.42-document-viewer.png deleted file mode 100644 index c57027f51b..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.42/0.42-document-viewer.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.42/0.42-microsoft.png b/packages/twenty-website/public/images/releases/0.42/0.42-microsoft.png deleted file mode 100644 index 0a1f3ae01a..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.42/0.42-microsoft.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.42/0.42-translation.png b/packages/twenty-website/public/images/releases/0.42/0.42-translation.png deleted file mode 100644 index 128447dc78..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.42/0.42-translation.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.43.0/email-privacy.png b/packages/twenty-website/public/images/releases/0.43.0/email-privacy.png deleted file mode 100644 index 06f6fc7d44..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.43.0/email-privacy.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.43.0/search-upgrade.png b/packages/twenty-website/public/images/releases/0.43.0/search-upgrade.png deleted file mode 100644 index 884f1fcac9..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.43.0/search-upgrade.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.44/0.44-admin-panel.png b/packages/twenty-website/public/images/releases/0.44/0.44-admin-panel.png deleted file mode 100644 index ef7a2b7601..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.44/0.44-admin-panel.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.44/0.44-side-panel.png b/packages/twenty-website/public/images/releases/0.44/0.44-side-panel.png deleted file mode 100644 index 29fdf1b50e..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.44/0.44-side-panel.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.50/0.50-advanced-filters.png b/packages/twenty-website/public/images/releases/0.50/0.50-advanced-filters.png deleted file mode 100644 index 16267cc215..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.50/0.50-advanced-filters.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.50/0.50-permissions.png b/packages/twenty-website/public/images/releases/0.50/0.50-permissions.png deleted file mode 100644 index 3100074b53..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.50/0.50-permissions.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.51.0/0.51-options-menu.png b/packages/twenty-website/public/images/releases/0.51.0/0.51-options-menu.png deleted file mode 100644 index 3b2057c09c..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.51.0/0.51-options-menu.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.52.0/0.52-custom-date-format.png b/packages/twenty-website/public/images/releases/0.52.0/0.52-custom-date-format.png deleted file mode 100644 index 00dc914ea8..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.52.0/0.52-custom-date-format.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/0.52.0/0.52-filtered-views-records.png b/packages/twenty-website/public/images/releases/0.52.0/0.52-filtered-views-records.png deleted file mode 100644 index 8054d86931..0000000000 Binary files a/packages/twenty-website/public/images/releases/0.52.0/0.52-filtered-views-records.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.00/1.00-import-update.png b/packages/twenty-website/public/images/releases/1.00/1.00-import-update.png deleted file mode 100644 index 9e135ecbdd..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.00/1.00-import-update.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.00/1.00-performance-improvement.png b/packages/twenty-website/public/images/releases/1.00/1.00-performance-improvement.png deleted file mode 100644 index 6b389367cc..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.00/1.00-performance-improvement.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.00/1.00-permissions.png b/packages/twenty-website/public/images/releases/1.00/1.00-permissions.png deleted file mode 100644 index eee6fffff0..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.00/1.00-permissions.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.00/1.00-subfield-filtering.png b/packages/twenty-website/public/images/releases/1.00/1.00-subfield-filtering.png deleted file mode 100644 index 5663e7034d..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.00/1.00-subfield-filtering.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.00/1.00-workflow.png b/packages/twenty-website/public/images/releases/1.00/1.00-workflow.png deleted file mode 100644 index 41cadc9538..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.00/1.00-workflow.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.1/1.1-multi-manual-trigger.png b/packages/twenty-website/public/images/releases/1.1/1.1-multi-manual-trigger.png deleted file mode 100644 index 9fbc0cada1..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.1/1.1-multi-manual-trigger.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.10/1.10.0-calendar.png b/packages/twenty-website/public/images/releases/1.10/1.10.0-calendar.png deleted file mode 100644 index 9338cae2eb..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.10/1.10.0-calendar.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.10/1.10.0-dashboards.png b/packages/twenty-website/public/images/releases/1.10/1.10.0-dashboards.png deleted file mode 100644 index 6b9f9c4960..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.10/1.10.0-dashboards.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.11/1.11.0-morph-relations.png b/packages/twenty-website/public/images/releases/1.11/1.11.0-morph-relations.png deleted file mode 100644 index f9ac781e8d..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.11/1.11.0-morph-relations.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.11/1.11.0-unlisted-views.png b/packages/twenty-website/public/images/releases/1.11/1.11.0-unlisted-views.png deleted file mode 100644 index 0238741caa..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.11/1.11.0-unlisted-views.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.12/1.12.0-folder-sync.png b/packages/twenty-website/public/images/releases/1.12/1.12.0-folder-sync.png deleted file mode 100644 index dbcda3cd56..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.12/1.12.0-folder-sync.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.12/1.12.0-side-panel.png b/packages/twenty-website/public/images/releases/1.12/1.12.0-side-panel.png deleted file mode 100644 index 57380b5a46..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.12/1.12.0-side-panel.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.2/1.2-any-fields.png b/packages/twenty-website/public/images/releases/1.2/1.2-any-fields.png deleted file mode 100644 index 66f9b48f94..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.2/1.2-any-fields.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.2/1.2-import-relations.png b/packages/twenty-website/public/images/releases/1.2/1.2-import-relations.png deleted file mode 100644 index 9f44ccd704..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.2/1.2-import-relations.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.3/1.3-IMAP.png b/packages/twenty-website/public/images/releases/1.3/1.3-IMAP.png deleted file mode 100644 index 5e0b4a1cef..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.3/1.3-IMAP.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.3/1.3-merge.png b/packages/twenty-website/public/images/releases/1.3/1.3-merge.png deleted file mode 100644 index e3a391af30..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.3/1.3-merge.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.4/1.4-field-permissions.png b/packages/twenty-website/public/images/releases/1.4/1.4-field-permissions.png deleted file mode 100644 index 6a826cfa21..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.4/1.4-field-permissions.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.4/1.4-two-factor-auth.png b/packages/twenty-website/public/images/releases/1.4/1.4-two-factor-auth.png deleted file mode 100644 index 3d24e4794a..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.4/1.4-two-factor-auth.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.4/1.4-workflow-filters.png b/packages/twenty-website/public/images/releases/1.4/1.4-workflow-filters.png deleted file mode 100644 index f74ef80376..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.4/1.4-workflow-filters.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.5/1.5-workflow-branches.png b/packages/twenty-website/public/images/releases/1.5/1.5-workflow-branches.png deleted file mode 100644 index 8501bf6f71..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.5/1.5-workflow-branches.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.6/1.6-workflows-improvements.png b/packages/twenty-website/public/images/releases/1.6/1.6-workflows-improvements.png deleted file mode 100644 index aadaa38e39..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.6/1.6-workflows-improvements.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.7/1.7-impersonating.png b/packages/twenty-website/public/images/releases/1.7/1.7-impersonating.png deleted file mode 100644 index 4b0a136b92..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.7/1.7-impersonating.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.7/1.7-upsert.png b/packages/twenty-website/public/images/releases/1.7/1.7-upsert.png deleted file mode 100644 index 7fed3b4336..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.7/1.7-upsert.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.8/1.8-bulk-select.png b/packages/twenty-website/public/images/releases/1.8/1.8-bulk-select.png deleted file mode 100644 index 921f14ac69..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.8/1.8-bulk-select.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.8/1.8-search-limit.png b/packages/twenty-website/public/images/releases/1.8/1.8-search-limit.png deleted file mode 100644 index 2ec878557f..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.8/1.8-search-limit.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/1.8/1.8-workflow-iterator.png b/packages/twenty-website/public/images/releases/1.8/1.8-workflow-iterator.png deleted file mode 100644 index cc36f534e8..0000000000 Binary files a/packages/twenty-website/public/images/releases/1.8/1.8-workflow-iterator.png and /dev/null differ diff --git a/packages/twenty-website/public/images/releases/labs/translation.png b/packages/twenty-website/public/images/releases/labs/translation.png deleted file mode 100644 index 018c81a9c1..0000000000 Binary files a/packages/twenty-website/public/images/releases/labs/translation.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/api/api-overview.png b/packages/twenty-website/public/images/user-guide/api/api-overview.png deleted file mode 100644 index 10fd5fd89f..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/api/api-overview.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/api/api.png b/packages/twenty-website/public/images/user-guide/api/api.png deleted file mode 100644 index 2b46ceef34..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/api/api.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/create-workspace/choose-plan.png b/packages/twenty-website/public/images/user-guide/create-workspace/choose-plan.png deleted file mode 100644 index c699e8e7ba..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/create-workspace/choose-plan.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/create-workspace/workspace-cover.png b/packages/twenty-website/public/images/user-guide/create-workspace/workspace-cover.png deleted file mode 100644 index e6104f0127..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/create-workspace/workspace-cover.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/emails/auto-creation.png b/packages/twenty-website/public/images/user-guide/emails/auto-creation.png deleted file mode 100644 index 89e53fa66b..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/emails/auto-creation.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/emails/connect-account.png b/packages/twenty-website/public/images/user-guide/emails/connect-account.png deleted file mode 100644 index a46462e834..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/emails/connect-account.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/emails/emails_header.png b/packages/twenty-website/public/images/user-guide/emails/emails_header.png deleted file mode 100644 index 867897e9bf..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/emails/emails_header.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/emails/privacy-settings.png b/packages/twenty-website/public/images/user-guide/emails/privacy-settings.png deleted file mode 100644 index 5313265f17..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/emails/privacy-settings.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/emails/show-inbox.png b/packages/twenty-website/public/images/user-guide/emails/show-inbox.png deleted file mode 100644 index 60bb3a721b..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/emails/show-inbox.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/custom-fields.png b/packages/twenty-website/public/images/user-guide/fields/custom-fields.png deleted file mode 100644 index e26a76a322..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/custom-fields.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/custom_data_model.png b/packages/twenty-website/public/images/user-guide/fields/custom_data_model.png deleted file mode 100644 index 03a7b4732d..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/custom_data_model.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/data_model.png b/packages/twenty-website/public/images/user-guide/fields/data_model.png deleted file mode 100644 index 56917dd704..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/data_model.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/deactivate-field.png b/packages/twenty-website/public/images/user-guide/fields/deactivate-field.png deleted file mode 100644 index 4b55672d21..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/deactivate-field.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/field.png b/packages/twenty-website/public/images/user-guide/fields/field.png deleted file mode 100644 index 85e2e051dd..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/field.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/quick-new-field.png b/packages/twenty-website/public/images/user-guide/fields/quick-new-field.png deleted file mode 100644 index a10b0785e1..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/quick-new-field.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/relations_field.png b/packages/twenty-website/public/images/user-guide/fields/relations_field.png deleted file mode 100644 index f8a9454412..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/relations_field.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/fields/standard-fields.png b/packages/twenty-website/public/images/user-guide/fields/standard-fields.png deleted file mode 100644 index 09387e0512..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/fields/standard-fields.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/github/discord-welcome.png b/packages/twenty-website/public/images/user-guide/github/discord-welcome.png deleted file mode 100644 index e787a35aab..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/github/discord-welcome.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/github/github-conversations.png b/packages/twenty-website/public/images/user-guide/github/github-conversations.png deleted file mode 100644 index bd698a1a13..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/github/github-conversations.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/github/github-edit-content.png b/packages/twenty-website/public/images/user-guide/github/github-edit-content.png deleted file mode 100644 index e61b8b0e69..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/github/github-edit-content.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/github/github-header.png b/packages/twenty-website/public/images/user-guide/github/github-header.png deleted file mode 100644 index 0b8f9d6b5f..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/github/github-header.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/github/good-first-issues.png b/packages/twenty-website/public/images/user-guide/github/good-first-issues.png deleted file mode 100644 index 296952f51b..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/github/good-first-issues.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/github/new-issue.png b/packages/twenty-website/public/images/user-guide/github/new-issue.png deleted file mode 100644 index b790129fad..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/github/new-issue.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/glossary/glossary.png b/packages/twenty-website/public/images/user-guide/glossary/glossary.png deleted file mode 100644 index a86006fff2..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/glossary/glossary.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/home/contact-and-account-management.png b/packages/twenty-website/public/images/user-guide/home/contact-and-account-management.png deleted file mode 100644 index 9b15f0c2ac..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/home/contact-and-account-management.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/home/create-a-workspace.png b/packages/twenty-website/public/images/user-guide/home/create-a-workspace.png deleted file mode 100644 index 8ac88afd6b..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/home/create-a-workspace.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/home/custom-objects.png b/packages/twenty-website/public/images/user-guide/home/custom-objects.png deleted file mode 100644 index 1898c044fb..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/home/custom-objects.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/home/import-your-data.png b/packages/twenty-website/public/images/user-guide/home/import-your-data.png deleted file mode 100644 index 27593d7d12..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/home/import-your-data.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/home/what-is-twenty.png b/packages/twenty-website/public/images/user-guide/home/what-is-twenty.png deleted file mode 100644 index 45e1fa0057..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/home/what-is-twenty.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/import-export-data/cloud.png b/packages/twenty-website/public/images/user-guide/import-export-data/cloud.png deleted file mode 100644 index 9b753248f1..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/import-export-data/cloud.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/import-export-data/match-columns.png b/packages/twenty-website/public/images/user-guide/import-export-data/match-columns.png deleted file mode 100644 index 2a6a443453..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/import-export-data/match-columns.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/integrations/plug.png b/packages/twenty-website/public/images/user-guide/integrations/plug.png deleted file mode 100644 index 08be755828..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/integrations/plug.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/kanban-views/compact-view.png b/packages/twenty-website/public/images/user-guide/kanban-views/compact-view.png deleted file mode 100644 index 0344ea8739..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/kanban-views/compact-view.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/kanban-views/edit-stage.png b/packages/twenty-website/public/images/user-guide/kanban-views/edit-stage.png deleted file mode 100644 index 5886224a9e..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/kanban-views/edit-stage.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/kanban-views/filter.png b/packages/twenty-website/public/images/user-guide/kanban-views/filter.png deleted file mode 100644 index 4412fce247..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/kanban-views/filter.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/kanban-views/kanban.png b/packages/twenty-website/public/images/user-guide/kanban-views/kanban.png deleted file mode 100644 index 048c543ae0..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/kanban-views/kanban.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/notes/add-note.png b/packages/twenty-website/public/images/user-guide/notes/add-note.png deleted file mode 100644 index fd494ea094..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/notes/add-note.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/notes/notes_header.png b/packages/twenty-website/public/images/user-guide/notes/notes_header.png deleted file mode 100644 index 4e2d886925..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/notes/notes_header.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/objects/custom-objects.png b/packages/twenty-website/public/images/user-guide/objects/custom-objects.png deleted file mode 100644 index 2c8eb71d62..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/objects/custom-objects.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/objects/customize-fields.png b/packages/twenty-website/public/images/user-guide/objects/customize-fields.png deleted file mode 100644 index 0dd2255c29..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/objects/customize-fields.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/objects/objects.png b/packages/twenty-website/public/images/user-guide/objects/objects.png deleted file mode 100644 index 04dac83c5e..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/objects/objects.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/objects/objects_orange.png b/packages/twenty-website/public/images/user-guide/objects/objects_orange.png deleted file mode 100644 index 4d3abe119c..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/objects/objects_orange.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/objects/standard-objects.png b/packages/twenty-website/public/images/user-guide/objects/standard-objects.png deleted file mode 100644 index 0a81863d8f..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/objects/standard-objects.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/permissions/permissions.png b/packages/twenty-website/public/images/user-guide/permissions/permissions.png deleted file mode 100644 index d7b76b1b6d..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/permissions/permissions.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/placeholder-header.png b/packages/twenty-website/public/images/user-guide/placeholder-header.png deleted file mode 100644 index 368d660e86..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/placeholder-header.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/reporting/reporting.png b/packages/twenty-website/public/images/user-guide/reporting/reporting.png deleted file mode 100644 index 573a296fe5..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/reporting/reporting.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/admin-panel-config-variables.png b/packages/twenty-website/public/images/user-guide/setup/admin-panel-config-variables.png deleted file mode 100644 index a40fb42caf..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/admin-panel-config-variables.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/domains-settings.png b/packages/twenty-website/public/images/user-guide/setup/domains-settings.png deleted file mode 100644 index bc6b9fc350..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/domains-settings.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/experience.png b/packages/twenty-website/public/images/user-guide/setup/experience.png deleted file mode 100644 index 99d5b1f7c4..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/experience.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/members.png b/packages/twenty-website/public/images/user-guide/setup/members.png deleted file mode 100644 index ad510217ca..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/members.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/pricing.png b/packages/twenty-website/public/images/user-guide/setup/pricing.png deleted file mode 100644 index 96dde8dd9e..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/pricing.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/profile.png b/packages/twenty-website/public/images/user-guide/setup/profile.png deleted file mode 100644 index b503e7a29c..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/profile.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/releases.png b/packages/twenty-website/public/images/user-guide/setup/releases.png deleted file mode 100644 index bf723c73f9..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/releases.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/setup/settings.png b/packages/twenty-website/public/images/user-guide/setup/settings.png deleted file mode 100644 index 27b516ed34..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/setup/settings.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/table-views/table.png b/packages/twenty-website/public/images/user-guide/table-views/table.png deleted file mode 100644 index 4e3e7ca528..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/table-views/table.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/tasks/tasks_header.png b/packages/twenty-website/public/images/user-guide/tasks/tasks_header.png deleted file mode 100644 index d8bc179fe8..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/tasks/tasks_header.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/tips/favorites.png b/packages/twenty-website/public/images/user-guide/tips/favorites.png deleted file mode 100644 index 7f4cced6a0..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/tips/favorites.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/tips/light-bulb.png b/packages/twenty-website/public/images/user-guide/tips/light-bulb.png deleted file mode 100644 index bd400d1517..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/tips/light-bulb.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/views/default-view.png b/packages/twenty-website/public/images/user-guide/views/default-view.png deleted file mode 100644 index 28b9672c32..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/views/default-view.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/views/filter.png b/packages/twenty-website/public/images/user-guide/views/filter.png deleted file mode 100644 index b41406882e..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/views/filter.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/what-is-twenty/20.png b/packages/twenty-website/public/images/user-guide/what-is-twenty/20.png deleted file mode 100644 index a14e5aeb06..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/what-is-twenty/20.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/what-is-twenty/faq.png b/packages/twenty-website/public/images/user-guide/what-is-twenty/faq.png deleted file mode 100644 index d79ad7bec0..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/what-is-twenty/faq.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/what-is-twenty/getting_around.png b/packages/twenty-website/public/images/user-guide/what-is-twenty/getting_around.png deleted file mode 100644 index 368fbd2b08..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/what-is-twenty/getting_around.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/what-is-twenty/getting_started.png b/packages/twenty-website/public/images/user-guide/what-is-twenty/getting_started.png deleted file mode 100644 index cc2fc6d438..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/what-is-twenty/getting_started.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/what-is-twenty/implementation_services.png b/packages/twenty-website/public/images/user-guide/what-is-twenty/implementation_services.png deleted file mode 100644 index aeb666b38f..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/what-is-twenty/implementation_services.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/what-is-twenty/migrating_crm.png b/packages/twenty-website/public/images/user-guide/what-is-twenty/migrating_crm.png deleted file mode 100644 index 27eaa2e37f..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/what-is-twenty/migrating_crm.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/workflows/internal-automations.png b/packages/twenty-website/public/images/user-guide/workflows/internal-automations.png deleted file mode 100644 index 63d1ef11b6..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/workflows/internal-automations.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/workflows/robot.png b/packages/twenty-website/public/images/user-guide/workflows/robot.png deleted file mode 100644 index ab2154afac..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/workflows/robot.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/workflows/sales-use-cases.png b/packages/twenty-website/public/images/user-guide/workflows/sales-use-cases.png deleted file mode 100644 index e7a3d35da0..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/workflows/sales-use-cases.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/workflows/workflow-credits.png b/packages/twenty-website/public/images/user-guide/workflows/workflow-credits.png deleted file mode 100644 index 3ffb1a0eed..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/workflows/workflow-credits.png and /dev/null differ diff --git a/packages/twenty-website/public/images/user-guide/workflows/workflow.png b/packages/twenty-website/public/images/user-guide/workflows/workflow.png deleted file mode 100644 index b11b64ca4b..0000000000 Binary files a/packages/twenty-website/public/images/user-guide/workflows/workflow.png and /dev/null differ diff --git a/packages/twenty-website/src/app/(cms)/keystatic/[[...params]]/page.tsx b/packages/twenty-website/src/app/(cms)/keystatic/[[...params]]/page.tsx deleted file mode 100644 index 67e0859135..0000000000 --- a/packages/twenty-website/src/app/(cms)/keystatic/[[...params]]/page.tsx +++ /dev/null @@ -1,3 +0,0 @@ -export default function Page() { - return null; -} diff --git a/packages/twenty-website/src/app/(cms)/keystatic/keystatic.ts b/packages/twenty-website/src/app/(cms)/keystatic/keystatic.ts deleted file mode 100644 index 17ed1d54f0..0000000000 --- a/packages/twenty-website/src/app/(cms)/keystatic/keystatic.ts +++ /dev/null @@ -1,6 +0,0 @@ -'use client'; - -import { makePage } from '@keystatic/next/ui/app'; -import config from '../../../../keystatic.config'; - -export default makePage(config); diff --git a/packages/twenty-website/src/app/(cms)/keystatic/layout.tsx b/packages/twenty-website/src/app/(cms)/keystatic/layout.tsx deleted file mode 100644 index b1f325866f..0000000000 --- a/packages/twenty-website/src/app/(cms)/keystatic/layout.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import KeystaticApp from './keystatic'; - -export default function Layout() { - return ; -} diff --git a/packages/twenty-website/src/app/(cms)/layout.tsx b/packages/twenty-website/src/app/(cms)/layout.tsx deleted file mode 100644 index 3f913267af..0000000000 --- a/packages/twenty-website/src/app/(cms)/layout.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { type Metadata } from 'next'; - -export const metadata: Metadata = { - title: 'Twenty.com', - description: 'Open Source CRM', - icons: '/images/core/logo.svg', -}; - -export default function RootLayout({ - children, -}: { - children: React.ReactNode; -}) { - return ( - - -
{children}
- - - ); -} diff --git a/packages/twenty-website/src/app/(public)/contributors/[slug]/page.tsx b/packages/twenty-website/src/app/(public)/contributors/[slug]/page.tsx deleted file mode 100644 index ff5949b55a..0000000000 --- a/packages/twenty-website/src/app/(public)/contributors/[slug]/page.tsx +++ /dev/null @@ -1,82 +0,0 @@ -export const dynamic = 'force-dynamic'; - -import { type Metadata } from 'next'; - -import { getContributorActivity } from '@/app/(public)/contributors/utils/get-contributor-activity'; -import { ActivityLog } from '@/app/_components/contributors/ActivityLog'; -import { Breadcrumb } from '@/app/_components/contributors/Breadcrumb'; -import { ContentContainer } from '@/app/_components/contributors/ContentContainer'; -import { ProfileCard } from '@/app/_components/contributors/ProfileCard'; -import { ProfileInfo } from '@/app/_components/contributors/ProfileInfo'; -import { ProfileSharing } from '@/app/_components/contributors/ProfileSharing'; -import { PullRequests } from '@/app/_components/contributors/PullRequests'; -import { ThankYou } from '@/app/_components/contributors/ThankYou'; -import { Background } from '@/app/_components/oss-friends/Background'; - -export async function generateMetadata(props: { params: Promise<{ slug: string }> }): Promise { - const { slug } = await props.params; - return { - metadataBase: new URL(`https://twenty.com`), - title: 'Twenty - ' + slug, - description: - 'Explore the impactful contributions of ' + - slug + - ' on the Twenty Github Repo. Discover their merged pull requests, ongoing work, and top ranking. Join and contribute to the #1 Open-Source CRM thriving community!', - openGraph: { - images: [`https://twenty.com/api/contributors/${slug}/og.png`], - }, - }; -} - -export default async function Page(props: { params: Promise<{ slug: string }> }) { - const { slug } = await props.params; - try { - const contributorActivity = await getContributorActivity(slug); - if (contributorActivity) { - const { - firstContributionAt, - mergedPRsCount, - rank, - activeDays, - pullRequestActivityArray, - contributorPullRequests, - contributor, - } = contributorActivity; - - return ( - - - - - - - - - - - - ); - } - } catch (error) { - console.error('error: ', error); - } -} diff --git a/packages/twenty-website/src/app/(public)/contributors/page.tsx b/packages/twenty-website/src/app/(public)/contributors/page.tsx deleted file mode 100644 index a888d2083e..0000000000 --- a/packages/twenty-website/src/app/(public)/contributors/page.tsx +++ /dev/null @@ -1,53 +0,0 @@ -export const dynamic = 'force-dynamic'; - -import AvatarGrid from '@/app/_components/contributors/AvatarGrid'; -import { Header } from '@/app/_components/contributors/Header'; -import { Background } from '@/app/_components/oss-friends/Background'; -import { ContentContainer } from '@/app/_components/oss-friends/ContentContainer'; -import { findAll } from '@/database/database'; -import { pullRequestModel, userModel } from '@/database/model'; -import { TWENTY_TEAM_MEMBERS } from '@/shared-utils/listTeamMembers'; - -export const metadata = { - title: 'Twenty - Contributors', - description: - 'Discover the brilliant minds behind Twenty.com. Meet our contributors and explore how their expertise contributes to making Twenty the leading open-source CRM. Join our community today.', - icons: '/images/core/logo.svg', -}; - -interface Contributor { - id: string; - avatarUrl: string; -} - -const Contributors = async () => { - const contributors = await findAll(userModel); - const pullRequests = await findAll(pullRequestModel); - - const pullRequestByAuthor = pullRequests.reduce((acc, pr) => { - acc[pr.authorId] = acc[pr.authorId] ? acc[pr.authorId] + 1 : 1; - return acc; - }, {}); - - const fitlerContributors = contributors - .filter((contributor) => contributor.isEmployee === '0') - .filter((contributor) => !TWENTY_TEAM_MEMBERS.includes(contributor.id)) - .map((contributor) => { - contributor.pullRequestCount = pullRequestByAuthor[contributor.id] || 0; - - return contributor; - }) - .sort((a, b) => b.pullRequestCount - a.pullRequestCount) - .filter((contributor) => contributor.pullRequestCount > 0); - - return ( - - -
- - - - ); -}; - -export default Contributors; diff --git a/packages/twenty-website/src/app/(public)/contributors/utils/get-activity-end-date.tsx b/packages/twenty-website/src/app/(public)/contributors/utils/get-activity-end-date.tsx deleted file mode 100644 index 101d9b041f..0000000000 --- a/packages/twenty-website/src/app/(public)/contributors/utils/get-activity-end-date.tsx +++ /dev/null @@ -1,22 +0,0 @@ -const TOTAL_DAYS_TO_FULL_WIDTH = 232; - -export const getActivityEndDate = ( - activityDates: { value: number; day: string }[], -) => { - const startDate = new Date(activityDates[0].day); - const endDate = new Date(activityDates[activityDates.length - 1].day); - - const differenceInMilliseconds = endDate.getTime() - startDate.getTime(); - - const numberOfDays = Math.floor( - differenceInMilliseconds / (1000 * 60 * 60 * 24), - ); - - const daysToAdd = TOTAL_DAYS_TO_FULL_WIDTH - numberOfDays; - - if (daysToAdd > 0) { - endDate.setDate(endDate.getDate() + daysToAdd); - } - - return endDate; -}; diff --git a/packages/twenty-website/src/app/(public)/contributors/utils/get-contributor-activity.ts b/packages/twenty-website/src/app/(public)/contributors/utils/get-contributor-activity.ts deleted file mode 100644 index a436cacf62..0000000000 --- a/packages/twenty-website/src/app/(public)/contributors/utils/get-contributor-activity.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { findAll } from '@/database/database'; -import { pullRequestModel, userModel } from '@/database/model'; -import { TWENTY_TEAM_MEMBERS } from '@/shared-utils/listTeamMembers'; - -export const getContributorActivity = async (username: string) => { - const contributors = await findAll(userModel); - - const contributor = contributors.find((contributor) => { - return contributor.id === username; - }); - - if (!contributor) { - return; - } - - const pullRequests = await findAll(pullRequestModel); - const mergedPullRequests = pullRequests - .filter((pr) => pr.mergedAt !== null) - .filter((pr) => !TWENTY_TEAM_MEMBERS.includes(pr.authorId)); - - const contributorPullRequests = pullRequests.filter( - (pr) => pr.authorId === contributor.id, - ); - const mergedContributorPullRequests = contributorPullRequests.filter( - (pr) => pr.mergedAt !== null, - ); - - const mergedContributorPullRequestsByContributor = mergedPullRequests.reduce( - (acc, pr) => { - acc[pr.authorId] = (acc[pr.authorId] || 0) + 1; - return acc; - }, - {}, - ); - - const mergedContributorPullRequestsByContributorArray = Object.entries( - mergedContributorPullRequestsByContributor, - ) - .map(([authorId, value]) => ({ authorId, value })) - .sort((a, b) => b.value - a.value); - - const contributorRank = - ((mergedContributorPullRequestsByContributorArray.findIndex( - (contributor) => contributor.authorId === username, - ) + - 1) / - contributors.length) * - 100; - - const pullRequestActivity = contributorPullRequests.reduce((acc, pr) => { - const date = new Date(pr.createdAt).toISOString().split('T')[0]; - acc[date] = (acc[date] || 0) + 1; - return acc; - }, []); - - const pullRequestActivityArray = Object.entries(pullRequestActivity) - .map(([day, value]) => ({ day, value })) - .sort((a, b) => new Date(a.day).getTime() - new Date(b.day).getTime()); - - const firstContributionAt = pullRequestActivityArray[0]?.day; - const mergedPRsCount = mergedContributorPullRequests.length; - const rank = Math.ceil(Number(contributorRank)).toFixed(0); - const activeDays = pullRequestActivityArray.length; - const contributorAvatar = contributor.avatarUrl; - - return { - firstContributionAt, - mergedPRsCount, - rank, - activeDays, - pullRequestActivityArray, - contributorPullRequests, - contributorAvatar, - contributor, - }; -}; diff --git a/packages/twenty-website/src/app/(public)/enterprise/activate/page.tsx b/packages/twenty-website/src/app/(public)/enterprise/activate/page.tsx deleted file mode 100644 index 554dcf5089..0000000000 --- a/packages/twenty-website/src/app/(public)/enterprise/activate/page.tsx +++ /dev/null @@ -1,172 +0,0 @@ -'use client'; - -import { useSearchParams } from 'next/navigation'; -import { useEffect, useState } from 'react'; - -import { ContentContainer } from '@/app/_components/ui/layout/ContentContainer'; - -type ActivationResult = { - enterpriseKey: string; - licensee: string; - subscriptionId: string; -}; - -export default function EnterpriseActivatePage() { - const searchParams = useSearchParams(); - const sessionId = searchParams.get('session_id'); - const [result, setResult] = useState(null); - const [error, setError] = useState(null); - const [loading, setLoading] = useState(true); - const [copied, setCopied] = useState(false); - - useEffect(() => { - if (!sessionId) { - setError('No session ID provided. Please complete the checkout first.'); - setLoading(false); - - return; - } - - const activate = async () => { - try { - const response = await fetch( - `/api/enterprise/activate?session_id=${sessionId}`, - ); - const data = await response.json(); - - if (!response.ok) { - setError(data.error || 'Activation failed'); - - return; - } - - setResult(data); - } catch { - setError('Failed to activate enterprise key. Please try again.'); - } finally { - setLoading(false); - } - }; - - activate(); - }, [sessionId]); - - const handleCopy = async () => { - if (!result) return; - - await navigator.clipboard.writeText(result.enterpriseKey); - setCopied(true); - setTimeout(() => setCopied(false), 2000); - }; - - return ( - -
-

- Enterprise Activation -

- - {loading &&

Activating your enterprise license...

} - - {error && ( -
- {error} -
- )} - - {result && ( -
-

- Your enterprise license has been activated successfully. -

- -
- Licensee: {result.licensee} -
- -
- Your Enterprise Key: -
-

- Copy this key and paste it into your Twenty self-hosted instance - settings. -

- -
- {result.enterpriseKey} - -
- -
- Next steps: -
    -
  1. Copy the enterprise key above
  2. -
  3. - Open your Twenty self-hosted instance Settings → - Enterprise -
  4. -
  5. Paste the key and click Activate
  6. -
-
-
- )} -
-
- ); -} diff --git a/packages/twenty-website/src/app/(public)/layout.css b/packages/twenty-website/src/app/(public)/layout.css deleted file mode 100644 index acff6bd601..0000000000 --- a/packages/twenty-website/src/app/(public)/layout.css +++ /dev/null @@ -1,126 +0,0 @@ -*, -*::before, -*::after { - box-sizing: border-box; - font-smooth: antialiased; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -body { - box-sizing: border-box; - padding: 0; - margin: 0; - word-wrap: break-word; - font-family: var(--font-gabarito); -} - -@media (max-width: 810px) { - body { - -ms-overflow-style: none; - scrollbar-width: none; - } - - body::-webkit-scrollbar { - display: none; - } -} - -.container { - display: flex; - flex-direction: column; - align-items: center; - padding-top: 53px; -} - -.warning { - color: rgb(94, 30, 4); -} - -a { - color: rgb(129, 129, 129); - &:hover { - color: #000; - } -} - -@media (max-width: 1199px) { - nav { - display: none; - } -} - -html { - scroll-behavior: smooth; -} - -nav.toc { - width: 20%; - position: fixed; - top: 135px; - right: 0; - font-family: var(--font-gabarito); - font-size: 12px; -} - -nav.toc ol { - list-style-type: none; - margin-top: 0px; -} - -nav.toc li { - margin-top: 0px; - margin-bottom: 0px; -} - -.toc-link { - padding: 5px; - border-radius: 4px; -} - -.toc-link.toc-link-h2 { - color: rgb(129, 129, 129); - margin-left: -16px; -} - -.toc-link.toc-link-h2:hover,.toc-link.toc-link-h3:hover, .toc-link.toc-link-h4:hover, .toc-link.toc-link-h5:hover { - background: #1414140a; -} - -.toc-link.toc-link-h2:active,.toc-link.toc-link-h3:active, .toc-link.toc-link-h4:active, .toc-link.toc-link-h5:active { - background: #1414140f; -} - - -.toc-link.toc-link-h3 { - color: rgb(129, 129, 129); - margin-left: -40px; -} - -.toc-link.toc-link-h4 { - color: rgb(129, 129, 129); - margin-left: -64px; -} - -.toc-link.toc-link-h5 { - color: rgb(129, 129, 129); - margin-left: -88px; -} - -nav.toc a { - color: #141414; - font-family: var(--font-inter); - font-size: 12px; - font-weight: 500; - text-decoration: none; - margin-top: 12px; -} - -strong, - b { - color: #141414; - -webkit-font-smoothing: auto; - font-family: var(--font-inter); - font-weight: 500; - text-decoration: none; -} diff --git a/packages/twenty-website/src/app/(public)/layout.tsx b/packages/twenty-website/src/app/(public)/layout.tsx deleted file mode 100644 index 475fb2acb9..0000000000 --- a/packages/twenty-website/src/app/(public)/layout.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { type Metadata } from 'next'; -import { PublicEnvScript } from 'next-runtime-env'; -import { Gabarito, Inter } from 'next/font/google'; - -import { AppHeader } from '@/app/_components/ui/layout/header'; - -import { FooterDesktop } from '../_components/ui/layout/FooterDesktop'; - -import './layout.css'; - -export const dynamic = 'force-dynamic'; - -export const metadata: Metadata = { - title: 'Twenty.com', - description: 'Open Source CRM', - icons: '/images/core/logo.svg', -}; - -const gabarito = Gabarito({ - weight: ['400', '500', '600', '700'], - subsets: ['latin'], - display: 'swap', - adjustFontFallback: false, - variable: '--font-gabarito', -}); - -const inter = Inter({ - weight: ['400', '500', '600', '700'], - subsets: ['latin'], - display: 'swap', - adjustFontFallback: false, - variable: '--font-inter', -}); - -export default function RootLayout({ - children, -}: { - children: React.ReactNode; -}) { - return ( - - - - -
{children}
- - - - ); -} diff --git a/packages/twenty-website/src/app/(public)/oss-friends/page.tsx b/packages/twenty-website/src/app/(public)/oss-friends/page.tsx deleted file mode 100644 index 506e645c9b..0000000000 --- a/packages/twenty-website/src/app/(public)/oss-friends/page.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Background } from '@/app/_components/oss-friends/Background'; -import { Card, type OssData } from '@/app/_components/oss-friends/Card'; -import { CardContainer } from '@/app/_components/oss-friends/CardContainer'; -import { ContentContainer } from '@/app/_components/oss-friends/ContentContainer'; -import { Header } from '@/app/_components/oss-friends/Header'; - -export const metadata = { - title: 'Twenty - OSS friends', - description: - 'At Twenty, we are proud to be part of a global open-source movement. Here are some of our fellow open source friends.', - icons: '/images/core/logo.svg', -}; - -export const dynamic = 'force-dynamic'; - -export default async function OssFriends() { - const ossList = await fetch('https://formbricks.com/api/oss-friends'); - - const listJson = await ossList.json(); - - return ( - - -
- - {listJson.data.map((data: OssData, index: number) => ( - - ))} - - - - ); -} diff --git a/packages/twenty-website/src/app/(public)/page.tsx b/packages/twenty-website/src/app/(public)/page.tsx deleted file mode 100644 index 413fcfeb99..0000000000 --- a/packages/twenty-website/src/app/(public)/page.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { ContentContainer } from '../_components/ui/layout/ContentContainer'; - -export const dynamic = 'force-dynamic'; - -export default function Home() { - return ( - -
- Part of the website is built directly with Framer, including the - homepage.
- We use Cloudflare to split the traffic between the two sites. -
-
- ); -} diff --git a/packages/twenty-website/src/app/(public)/releases/api/route.tsx b/packages/twenty-website/src/app/(public)/releases/api/route.tsx deleted file mode 100644 index b72e6c7923..0000000000 --- a/packages/twenty-website/src/app/(public)/releases/api/route.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { type NextRequest, NextResponse } from 'next/server'; - -import { getReleases } from '@/app/(public)/releases/utils/get-releases'; - -export interface ReleaseNote { - slug: string; - date: string; - release: string; - content: string; -} - -export const dynamic = 'force-dynamic'; - -export async function GET(request: NextRequest) { - const host = request.nextUrl.hostname; - const protocol = request.nextUrl.protocol; - const baseUrl = `${protocol}//${host}`; - - console.log(baseUrl); - - return NextResponse.json(await getReleases(baseUrl), { status: 200 }); -} diff --git a/packages/twenty-website/src/app/(public)/releases/page.tsx b/packages/twenty-website/src/app/(public)/releases/page.tsx deleted file mode 100644 index c96fe4ead6..0000000000 --- a/packages/twenty-website/src/app/(public)/releases/page.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { desc } from 'drizzle-orm'; -import { type Metadata } from 'next'; - -import { - getMdxReleasesContent, - getReleases, -} from '@/app/(public)/releases/utils/get-releases'; -import { getVisibleReleases } from '@/app/(public)/releases/utils/get-visible-releases'; -import { ReleaseContainer } from '@/app/_components/releases/ReleaseContainer'; -import { Title } from '@/app/_components/releases/StyledTitle'; -import { ContentContainer } from '@/app/_components/ui/layout/ContentContainer'; -import { findAll } from '@/database/database'; -import { type GithubReleases, githubReleasesModel } from '@/database/model'; -import { pgGithubReleasesModel } from '@/database/schema-postgres'; - -export const metadata: Metadata = { - title: 'Twenty - Releases', - description: - 'Discover the newest features and improvements in Twenty, the #1 open-source CRM.', -}; - -export const dynamic = 'force-dynamic'; - -const Home = async () => { - const githubReleases = (await findAll( - githubReleasesModel, - desc(pgGithubReleasesModel.publishedAt), - )) as GithubReleases[]; - - const latestGithubRelease = githubReleases[0]; - const releaseNotes = await getReleases(); - - const visibleReleasesNotes = getVisibleReleases( - releaseNotes, - latestGithubRelease?.tagName || 'v0.0.0', - ); - - const mdxReleasesContent = await getMdxReleasesContent(visibleReleasesNotes); - - return ( - - - <ReleaseContainer - visibleReleasesNotes={visibleReleasesNotes} - githubReleases={githubReleases} - mdxReleasesContent={mdxReleasesContent} - /> - </ContentContainer> - ); -}; - -export default Home; diff --git a/packages/twenty-website/src/app/(public)/releases/utils/get-formatted-release-number.ts b/packages/twenty-website/src/app/(public)/releases/utils/get-formatted-release-number.ts deleted file mode 100644 index ebdb33cc77..0000000000 --- a/packages/twenty-website/src/app/(public)/releases/utils/get-formatted-release-number.ts +++ /dev/null @@ -1,19 +0,0 @@ -export const getFormattedReleaseNumber = (versionNumber: string) => { - const formattedVersion = versionNumber.replace('v', ''); - - const parts = formattedVersion.split('.').map(Number); - - if (parts.length !== 3) { - throw new Error('Version must be in the format major.minor.patch'); - } - - // Assign weights. Adjust these based on your needs. - const majorWeight = 10000; - const minorWeight = 100; - const patchWeight = 1; - - const numericVersion = - parts[0] * majorWeight + parts[1] * minorWeight + parts[2] * patchWeight; - - return numericVersion; -}; diff --git a/packages/twenty-website/src/app/(public)/releases/utils/get-github-release-date-from-release-note.ts b/packages/twenty-website/src/app/(public)/releases/utils/get-github-release-date-from-release-note.ts deleted file mode 100644 index 6d885d97a1..0000000000 --- a/packages/twenty-website/src/app/(public)/releases/utils/get-github-release-date-from-release-note.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { type GithubReleases } from '@/database/model'; - -// Return an ISO date string so downstream components can format consistently -export const getGithubReleaseDateFromReleaseNote = ( - githubReleases: GithubReleases[], - noteTagName: string, - noteDate: string, -) => { - const formattedNoteTagName = `v${noteTagName}`; - const publishedAt = githubReleases?.find?.( - (githubRelease) => githubRelease?.tagName === formattedNoteTagName, - )?.publishedAt; - - // If we have a GitHub publishedAt date, return it as-is (ISO date string) - if (publishedAt) { - return publishedAt; - } - - // Fall back to the MDX frontmatter date - return noteDate; -}; - diff --git a/packages/twenty-website/src/app/(public)/releases/utils/get-releases.tsx b/packages/twenty-website/src/app/(public)/releases/utils/get-releases.tsx deleted file mode 100644 index ba3c832b7b..0000000000 --- a/packages/twenty-website/src/app/(public)/releases/utils/get-releases.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import fs from 'fs'; -import matter from 'gray-matter'; -import { compileMDX } from 'next-mdx-remote/rsc'; -import { type JSXElementConstructor, type ReactElement } from 'react'; -import gfm from 'remark-gfm'; - -import { type ReleaseNote } from '@/app/(public)/releases/api/route'; -import { compareSemanticVersions } from '@/shared-utils/compareSemanticVersions'; - -// WARNING: This API is used by twenty-front, not just by twenty-website -// Make sure you don't change it without updating twenty-front at the same time -export async function getReleases(baseUrl?: string): Promise<ReleaseNote[]> { - const files = fs.readdirSync('src/content/releases'); - const releasenotes: ReleaseNote[] = []; - - for (const fileName of files) { - if (!fileName.endsWith('.md') && !fileName.endsWith('.mdx')) { - continue; - } - const file = fs.readFileSync(`src/content/releases/${fileName}`, 'utf-8'); - const { data: frontmatter, content } = matter(file); - - let updatedContent; - if (baseUrl) { - updatedContent = content.replace( - /!\[(.*?)\]\((?!http)(.*?)\)/g, - (match: string, alt: string, src: string) => { - // Check if src is a relative path (not starting with http:// or https://) - if (!src.startsWith('/')) { - src = `${baseUrl}/${src}`; - } else { - src = `${baseUrl}${src}`; - } - return `![${alt}](${src})`; - }, - ); - } - - releasenotes.push({ - slug: fileName.slice(0, -4), - date: frontmatter.Date, - release: frontmatter.release, - content: updatedContent ?? content, - }); - } - - releasenotes.sort((a, b) => compareSemanticVersions(b.release, a.release)); - - return releasenotes; -} - -export async function getMdxReleasesContent( - releases: ReleaseNote[], -): Promise<ReactElement<any, string | JSXElementConstructor<any>>[]> { - const mdxSourcesPromises = releases.map(async (release) => { - const mdxSource = await compileMDX<{ title: string; position?: number }>({ - source: release.content, - options: { - parseFrontmatter: true, - mdxOptions: { - development: process.env.NODE_ENV === 'development', - remarkPlugins: [gfm], - }, - }, - }); - return mdxSource.content; - }); - - return await Promise.all(mdxSourcesPromises); -} diff --git a/packages/twenty-website/src/app/(public)/releases/utils/get-visible-releases.ts b/packages/twenty-website/src/app/(public)/releases/utils/get-visible-releases.ts deleted file mode 100644 index 7276f4e44e..0000000000 --- a/packages/twenty-website/src/app/(public)/releases/utils/get-visible-releases.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { type ReleaseNote } from '@/app/(public)/releases/api/route'; -import { getFormattedReleaseNumber } from '@/app/(public)/releases/utils/get-formatted-release-number'; - -export const getVisibleReleases = ( - releaseNotes: ReleaseNote[], - publishedReleaseVersion: string, -) => { - if (process.env.NODE_ENV !== 'production') return releaseNotes; - - const publishedVersionNumber = getFormattedReleaseNumber( - publishedReleaseVersion, - ); - - return releaseNotes.filter( - (releaseNote) => - getFormattedReleaseNumber(releaseNote.release) <= publishedVersionNumber, - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/ActivityLog.tsx b/packages/twenty-website/src/app/_components/contributors/ActivityLog.tsx deleted file mode 100644 index 4eed880cf5..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/ActivityLog.tsx +++ /dev/null @@ -1,49 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { TimeRange } from '@nivo/calendar'; - -import { getActivityEndDate } from '@/app/(public)/contributors/utils/get-activity-end-date'; -import { CardContainer } from '@/app/_components/contributors/CardContainer'; -import { Title } from '@/app/_components/contributors/Title'; - -const CalendarContentContainer = styled.div` - @media (max-width: 890px) { - overflow-x: auto; - &::-webkit-scrollbar { - display: none; - } - } -`; - -export const ActivityLog = ({ - data, -}: { - data: { value: number; day: string }[]; -}) => { - if (!data.length) { - return null; - } - const endDate = getActivityEndDate(data); - - return ( - <CardContainer> - <Title>Activity - - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/AnimatedFigures.tsx b/packages/twenty-website/src/app/_components/contributors/AnimatedFigures.tsx deleted file mode 100644 index 0b5ccbab35..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/AnimatedFigures.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { useEffect, useRef } from 'react'; -import { styled } from '@linaria/react'; -import { - animate, - motion, - useInView, - useMotionValue, - useTransform, -} from 'framer-motion'; - -import { Theme } from '@/app/_components/ui/theme/theme'; - -const Container = styled.div` - display: flex; - flex-direction: row; - font-size: 56px; - font-weight: 700; - color: ${Theme.text.color.secondary}; - - @media (max-width: 810px) { - font-size: 32px; - } -`; - -interface AnimatedFiguresProps { - value: number; - children?: React.ReactNode; -} - -export const AnimatedFigures = ({ value, children }: AnimatedFiguresProps) => { - const count = useMotionValue(0); - const rounded = useTransform(count, (latest) => { - return Math.round(latest); - }); - const ref = useRef(null); - const inView = useInView(ref); - - useEffect(() => { - if (inView) { - animate(count, value, { duration: 2 }); - } - }, [count, inView, value]); - - return ( - - {rounded} - {children} - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/AvatarGrid.tsx b/packages/twenty-website/src/app/_components/contributors/AvatarGrid.tsx deleted file mode 100644 index 679a2aabee..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/AvatarGrid.tsx +++ /dev/null @@ -1,94 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import Link from 'next/link'; - -import MotionContainer from '@/app/_components/ui/layout/LoaderAnimation'; - -export interface User { - id: string; - avatarUrl: string; -} - -const StyledImg = styled.img` - width: 100%; // Adjust width as needed - height: 100%; // Adjust height as needed - object-fit: cover; // Keeps the aspect ratio and covers the area - position: absolute; // Similar to layout="fill" in Next Image - top: 0; - left: 0; -`; - -const AvatarGridContainer = styled.div` - margin: 0 auto; - max-width: 1024px; - justify-items: center; - display: flex; - justify-content: center; - gap: 32px; - flex-wrap: wrap; -`; - -const AvatarItem = styled.div` - position: relative; - width: 124px; - height: 124px; - border: 3px solid #141414; - border-radius: 16px; - overflow: hidden; - transition: 200ms; - background-color: white; - - &:hover { - -webkit-box-shadow: -6px 6px 0px 1px rgba(0, 0, 0, 1); - -moz-box-shadow: -6px 6px 0px 1px rgba(0, 0, 0, 1); - box-shadow: -6px 6px 0px 1px rgba(0, 0, 0, 1); - } - - .username { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - background-color: rgba(0, 0, 0, 0.7); - color: white; - text-align: center; - visibility: hidden; - opacity: 0; - transition: - opacity 0.3s ease, - visibility 0.3s; - border-bottom-left-radius: 8px; - border-bottom-right-radius: 8px; - } - - &:hover .username { - visibility: visible; - opacity: 1; - } -`; - -import React from 'react'; - -const AvatarGrid = ({ users }: { users: User[] }) => { - return ( - - - {users.map((user) => ( - - - - {user.id} - - - ))} - - - ); -}; - -export default AvatarGrid; diff --git a/packages/twenty-website/src/app/_components/contributors/Breadcrumb.tsx b/packages/twenty-website/src/app/_components/contributors/Breadcrumb.tsx deleted file mode 100644 index ea54b05ff3..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/Breadcrumb.tsx +++ /dev/null @@ -1,16 +0,0 @@ -'use client'; - -import { Breadcrumbs } from '@/app/_components/ui/layout/Breadcrumbs'; - -const BREADCRUMB_ITEMS = [ - { - uri: '/contributors', - label: 'Contributors', - }, -]; - -export const Breadcrumb = ({ active }: { active: string }) => { - return ( - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/CardContainer.tsx b/packages/twenty-website/src/app/_components/contributors/CardContainer.tsx deleted file mode 100644 index 02cfa4c245..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/CardContainer.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { styled } from '@linaria/react'; - -export const CardContainer = styled.div` - border: 3px solid #141414; - width: 100%; - border-radius: 12px; - padding: 40px; - display: flex; - gap: 32px; - flex-direction: column; - background-color: #fafafa; - - @media (max-width: 810px) { - padding: 24px; - } -`; diff --git a/packages/twenty-website/src/app/_components/contributors/ContentContainer.tsx b/packages/twenty-website/src/app/_components/contributors/ContentContainer.tsx deleted file mode 100644 index 7857db23e3..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/ContentContainer.tsx +++ /dev/null @@ -1,32 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -import MotionContainer from '@/app/_components/ui/layout/LoaderAnimation'; - -const Container = styled.div` - display: flex; - flex-direction: column; - align-items: flex-start; - width: 100%; - max-width: 898px; - padding: 40px; - gap: 40px; - @media (max-width: 809px) { - width: 100%; - padding: 40px 24px 40px 24px; - gap: 24px; - } -`; - -export const ContentContainer = ({ - children, -}: { - children?: React.ReactNode; -}) => { - return ( - - {children} - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/Header.tsx b/packages/twenty-website/src/app/_components/contributors/Header.tsx deleted file mode 100644 index 21941b8095..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/Header.tsx +++ /dev/null @@ -1,39 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { motion } from 'framer-motion'; - -const Title = styled.h2` - font-size: 56px; - font-weight: bold; - color: #b3b3b3; - margin-bottom: 32px; - margin-top: 64px; - text-align: center; - display: flex; - justify-items: center; - align-items: center; - flex-direction: column; - - @media (max-width: 810px) { - font-size: 32px; - margin-bottom: 22px; - } -`; - -export const Header = () => { - return ( - <> - - - Our amazing <br /> - <span style={{ color: '#141414' }}>Contributors</span> - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/ProfileCard.tsx b/packages/twenty-website/src/app/_components/contributors/ProfileCard.tsx deleted file mode 100644 index aea911c1b2..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/ProfileCard.tsx +++ /dev/null @@ -1,110 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { format } from 'date-fns'; - -import { GithubIcon } from '@/app/_components/ui/icons/SvgIcons'; - -const ProfileContainer = styled.div` - display: flex; - gap: 32px; - width: 100%; - align-items: center; - @media (max-width: 600px) { - flex-direction: column; - align-items: start; - } -`; - -const Avatar = styled.div` - border: 3px solid #141414; - width: 96px; - height: 96px; - border-radius: 16px; - overflow: hidden; - flex-shrink: 0; - - img { - width: 100%; - display: block; - height: 100%; - object-fit: cover; - } -`; - -const Details = styled.div` - display: flex; - flex-direction: column; - gap: 4px; - - @media (max-width: 810px) { - gap: 8px; - } - - .username { - font-size: 40px; - font-weight: 700; - line-height: 48px; - margin: 0; - display: flex; - gap: 12px; - - @media (max-width: 810px) { - font-size: 32px; - line-height: 28.8px; - } - } - - .duration { - font-size: 24px; - font-weight: 400; - color: #818181; - margin: 0; - - @media (max-width: 810px) { - font-size: 20px; - line-height: 28px; - } - } -`; - -const StyledGithubIcon = styled(GithubIcon)` - @media (max-width: 810px) { - width: 20px; - height: 20px; - } -`; - -interface ProfileCardProps { - username: string; - avatarUrl: string; - firstContributionAt: string; -} - -export const ProfileCard = ({ - username, - avatarUrl, - firstContributionAt, -}: ProfileCardProps) => { - return ( - - - {username} - -
-

- @{username} - - - -

- {firstContributionAt && ( -

- Contributing since{' '} - {format(new Date(firstContributionAt), 'MMMM yyyy')} -

- )} -
-
- ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/ProfileInfo.tsx b/packages/twenty-website/src/app/_components/contributors/ProfileInfo.tsx deleted file mode 100644 index 48a116639f..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/ProfileInfo.tsx +++ /dev/null @@ -1,90 +0,0 @@ -'use client'; - -import React from 'react'; -import { styled } from '@linaria/react'; - -import { AnimatedFigures } from '@/app/_components/contributors/AnimatedFigures'; -import { CardContainer } from '@/app/_components/contributors/CardContainer'; -import { Theme } from '@/app/_components/ui/theme/theme'; - -const Container = styled(CardContainer)` - flex-direction: row; - - @media (max-width: 810px) { - flex-direction: column; - } - - .item { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - flex-grow: 1; - flex-basis: 0; - - .title { - font-size: 24px; - color: ${Theme.text.color.quarternary}; - margin: 8px; - - @media (max-width: 810px) { - font-size: 20px; - } - } - - .value { - font-size: 56px; - font-weight: 700; - color: ${Theme.text.color.secondary}; - - @media (max-width: 810px) { - font-size: 32px; - } - } - } - - .separator { - width: 2px; - background-color: #141414; - border-radius: 40px; - - @media (max-width: 810px) { - width: 100%; - height: 2px; - } - } -`; - -interface ProfileInfoProps { - mergedPRsCount: number; - rank: string; - activeDays: number; -} - -export const ProfileInfo = ({ - mergedPRsCount, - rank, - activeDays, -}: ProfileInfoProps) => { - const parsedValue = parseFloat(rank.replace('%', '')); - return ( - <> - -
-

Merged PR

- -
-
-
-

Ranking

- % -
-
-
-

Active Days

- -
-
- - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/ProfileSharing.tsx b/packages/twenty-website/src/app/_components/contributors/ProfileSharing.tsx deleted file mode 100644 index a06c4b5ab4..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/ProfileSharing.tsx +++ /dev/null @@ -1,111 +0,0 @@ -'use client'; - -import { useState } from 'react'; -import { styled } from '@linaria/react'; -import { IconDownload } from '@tabler/icons-react'; - -import { CardContainer } from '@/app/_components/contributors/CardContainer'; -import Spinner from '@/app/_components/contributors/Spinner'; -import { LinkedInIcon, XIcon } from '@/app/_components/ui/icons/SvgIcons'; -import { Theme } from '@/app/_components/ui/theme/theme'; - -const Container = styled(CardContainer)` - flex-direction: row; - justify-content: center; - align-items: baseline; - gap: 32px; - padding: 40px 0px; - @media (min-width: 800px) and (max-width: 855px) { - padding: 40px 24px; - gap: 24px; - } - @media (max-width: 800px) { - flex-direction: column; - align-items: center; - } -`; - -const StyledButton = styled.a` - display: flex; - flex-direction: row; - font-size: ${Theme.font.size.lg}; - font-weight: ${Theme.font.weight.medium}; - padding: 14px 24px; - color: ${Theme.text.color.primary}; - font-family: var(--font-gabarito); - background-color: #fafafa; - border: 2px solid ${Theme.color.gray60}; - border-radius: 12px; - gap: 12px; - cursor: pointer; - text-decoration: none; - - box-shadow: - -6px 6px 0px 1px #fafafa, - -6px 6px 0px 3px ${Theme.color.gray60}; - - &:hover { - box-shadow: -6px 6px 0px 1px ${Theme.color.gray60}; - } -`; - -interface ProfileProps { - username: string; -} - -export const ProfileSharing = ({ username }: ProfileProps) => { - const [loading, setLoading] = useState(false); - const baseUrl = 'https://twenty.com'; - const contributorUrl = `${baseUrl}/contributors/${username}`; - - const handleDownload = async () => { - setLoading(true); - const imageSrc = `${baseUrl}/api/contributors/og-image/${username}`; - try { - const response = await fetch(imageSrc); - const blob = await response.blob(); - const url = window.URL.createObjectURL(blob); - - const a = document.createElement('a'); - a.href = url; - a.download = `twenty-${username}.png`; - document.body.appendChild(a); - a.click(); - a.remove(); - window.URL.revokeObjectURL(url); - } catch (error) { - console.error('Error downloading the image:', error); - } finally { - setLoading(false); - } - }; - - return ( - - - - Share on LinkedIn - - - {loading ? ( - <> - Downloading - - ) : ( - <> - Download Image - - )} - - - Share on X - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/PullRequestItem.tsx b/packages/twenty-website/src/app/_components/contributors/PullRequestItem.tsx deleted file mode 100644 index 6ae3cb2674..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/PullRequestItem.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { styled } from '@linaria/react'; -import { format } from 'date-fns'; -import { Tooltip } from 'react-tooltip'; - -import { PullRequestIcon } from '@/app/_components/ui/icons/SvgIcons'; -import { Theme } from '@/app/_components/ui/theme/theme'; -import { formatIntoRelativeDate } from '@/shared-utils/formatIntoRelativeDate'; - -const Item = styled.div` - display: flex; - gap: 17px; -`; - -const StyledTitle = styled.a` - font-size: 24px; - font-weight: 400; - color: ${Theme.text.color.secondary}; - margin: 0; - text-decoration: none; - - @media (max-width: 810px) { - font-size: 20px; - } -`; - -const StyledPrLink = styled.a` - cursor: pointer; - text-decoration: none; - color: ${Theme.text.color.quarternary} !important; - - &:hover { - text-decoration: underline; - color: #474747; - } -`; - -const StyledDescription = styled.div` - font-size: 20px; - line-height: 28px; - font-weight: 500; - color: ${Theme.text.color.quarternary}; - margin-top: 4px; - - @media (max-width: 810px) { - font-size: 18px; - } -`; - -const StyledPullRequestIcon = styled(PullRequestIcon)` - @media screen { - width: 20px; - height: 20px; - } -`; - -interface PullRequestItemProps { - id: string; - title: string; - url: string; - createdAt: string; - mergedAt: string | null; - authorId: string; -} - -export const PullRequestItem = ({ - id, - title, - url, - createdAt, - mergedAt, - authorId, -}: PullRequestItemProps) => { - const prNumber = url.split('/').slice(-1)[0]; - return ( - -
- -
-
- - {title} - - - - #{prNumber} - {' '} - by {authorId} was {mergedAt ? `merged` : `opened`}{' '} - - {formatIntoRelativeDate(mergedAt ? mergedAt : createdAt)} - - - -
-
- ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/PullRequests.tsx b/packages/twenty-website/src/app/_components/contributors/PullRequests.tsx deleted file mode 100644 index bd276fdfc3..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/PullRequests.tsx +++ /dev/null @@ -1,45 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -import { CardContainer } from '@/app/_components/contributors/CardContainer'; -import { PullRequestItem } from '@/app/_components/contributors/PullRequestItem'; -import { Title } from '@/app/_components/contributors/Title'; - -const List = styled.div` - display: flex; - gap: 24px; - flex-direction: column; - overflow: hidden; -`; -interface PullRequestsProps { - list: { - id: string; - title: string; - url: string; - createdAt: string; - mergedAt: string | null; - authorId: string; - }[]; -} - -export const PullRequests = ({ list }: PullRequestsProps) => { - return ( - - Pull Requests - - {list.map((pr) => ( - - ))} - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/Spinner.tsx b/packages/twenty-website/src/app/_components/contributors/Spinner.tsx deleted file mode 100644 index c659867478..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/Spinner.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { styled } from '@linaria/react'; - -const SpinnerWrapper = styled.div` - width: 24px; - height: 24px; - border: 4px solid rgba(0, 0, 0, 0.1); - border-top: 4px solid black; - border-radius: 50%; - animation: spin 1s linear infinite; - - @keyframes spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } - } -`; - -const Spinner = () => ; - -export default Spinner; diff --git a/packages/twenty-website/src/app/_components/contributors/ThankYou.tsx b/packages/twenty-website/src/app/_components/contributors/ThankYou.tsx deleted file mode 100644 index 987f8d5ca8..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/ThankYou.tsx +++ /dev/null @@ -1,38 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -import { CardContainer } from '@/app/_components/contributors/CardContainer'; -import { HeartIcon } from '@/app/_components/ui/icons/SvgIcons'; - -const StyledTitle = styled.div` - font-size: 24px; - font-weight: 500; - gap: 8px; - - @media (max-width: 810px) { - font-size: 20px; - } -`; - -const StyledHeartIcon = styled(HeartIcon)` - @media (max-width: 810px) { - display: inline-block !important; - width: 16px !important; - height: 16px !important; - } -`; - -interface ThankYouProps { - username: string; -} - -export const ThankYou = ({ username }: ThankYouProps) => { - return ( - - - Thank you @{username} - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/contributors/Title.tsx b/packages/twenty-website/src/app/_components/contributors/Title.tsx deleted file mode 100644 index bf4b5223aa..0000000000 --- a/packages/twenty-website/src/app/_components/contributors/Title.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { styled } from '@linaria/react'; - -export const Title = styled.h3` - margin: 0; - font-size: 32px; - line-height: 41.6px; - font-weight: 500; - - @media (max-width: 810px) { - font-size: 24px; - line-height: 31.2px; - } -`; diff --git a/packages/twenty-website/src/app/_components/oss-friends/Background.tsx b/packages/twenty-website/src/app/_components/oss-friends/Background.tsx deleted file mode 100644 index 1fa61b405f..0000000000 --- a/packages/twenty-website/src/app/_components/oss-friends/Background.tsx +++ /dev/null @@ -1,104 +0,0 @@ -'use client'; -import React from 'react'; -import { styled } from '@linaria/react'; - -const BACKGROUND_ROTATION = -5; - -const BACKGROUND_IMAGE_URL = - 'https://framerusercontent.com/images/nqEmdwe7yDXNsOZovuxG5zvj2E.png'; - -const BackgroundImage = styled.div` - position: absolute; - height: calc(100% - 350px); - width: 200%; - top: 250px; - overflow: visible; - z-index: -3; - background-image: url(${BACKGROUND_IMAGE_URL}); - transform: rotate(${BACKGROUND_ROTATION}deg); - background-size: auto 20px; - background-repeat: repeat; - transform-origin: center center; - - @media (max-width: 1024px) { - transform: rotate(-1deg); - top: 100px; - height: 100%; - } - - @media (max-width: 800px) { - display: none; - } -`; - -const Container = styled.div` - position: relative; - display: flex; - align-items: center; - justify-content: center; - height: 100%; - width: 100%; - overflow: hidden; - min-width: 100vw; - max-width: 100vw; - z-index: 0; - - &::before { - content: ''; - position: absolute; - top: 150px; - left: 0; - height: 300px; - width: 200%; - background: linear-gradient( - to bottom, - rgba(255, 255, 255, 1), - rgba(255, 255, 255, 0) - ); - transform: rotate(${BACKGROUND_ROTATION}deg); - z-index: -2; - pointer-events: none; - - @media (max-width: 1024px) { - height: 200px; - top: 50px; - transform: rotate(-1deg); - } - } - - &::after { - content: ''; - position: absolute; - bottom: 140px; - left: -20px; - height: 300px; - width: 220%; - background: linear-gradient( - to top, - rgba(255, 255, 255, 1), - rgba(255, 255, 255, 0) - ); - transform: rotate(${BACKGROUND_ROTATION}deg); - z-index: -2; - pointer-events: none; - - @media (max-width: 1024px) { - height: 200px; - transform: rotate(-1deg); - bottom: 0px; - } - } -`; - -type BackgroundProps = { - children: React.ReactNode; -}; - -export const Background = ({ children }: BackgroundProps) => { - return ( - - {children} - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/oss-friends/Card.tsx b/packages/twenty-website/src/app/_components/oss-friends/Card.tsx deleted file mode 100644 index 097cf36cc6..0000000000 --- a/packages/twenty-website/src/app/_components/oss-friends/Card.tsx +++ /dev/null @@ -1,135 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { Gabarito } from 'next/font/google'; - -import { Theme } from '@/app/_components/ui/theme/theme'; - -export interface OssData { - name: string; - description: string; - href: string; -} - -const Container = styled.div` - display: flex; - flex-direction: column; - justify-content: space-between; - width: 312px; - height: 360px; - background-color: #fafafa; - border: 2px solid black; - text-align: left; - padding: 32px; - border-radius: 8px; - cursor: pointer; - transition: 200ms; - max-width: 400px; - &:hover { - -webkit-box-shadow: -3px 3px 2px 0px rgba(0, 0, 0, 1); - -moz-box-shadow: -3px 3px 2px 0px rgba(0, 0, 0, 1); - box-shadow: -3px 3px 2px 0px rgba(0, 0, 0, 1); - } - - @media (max-width: 1200px) { - width: 45%; - } - - @media (max-width: 810px) { - width: 100%; - } -`; - -const StyledContent = styled.div` - display: flex; - flex-direction: column; - align-items: flex-start; - align-content: flex-start; -`; - -const Title = styled.p` - font-size: 32px; - font-weight: 700; - color: ${Theme.text.color.secondary}; - margin: 16px 0px; - @media (max-width: 1200px) { - font-size: 24px; - } -`; - -const Description = styled.p` - font-size: 16px; - font-weight: 500; - color: #b3b3b3; - line-height: ${Theme.text.lineHeight.lg}; - margin: 0; -`; - -const Button = styled.a` - border: 2px solid black; - border-radius: 12px; - padding: 16px 24px; - font-size: 20px; - font-weight: 500; - color: black; - background-color: white; - cursor: pointer; - text-align: center; - text-decoration: none; - position: relative; - height: 60px; - - @media (max-width: 800px) { - font-size: 18px; - } - - &:after { - content: 'Visit Website'; - border: 2px solid black; - border-radius: 12px; - position: absolute; - display: block; - left: 8px; - bottom: 7px; - height: 60px; - line-height: 60px; - width: 100%; - background-color: white; - transition: 200ms; - } - - &:hover:after { - left: 4px; - bottom: 3px; - } -`; - -const gabarito = Gabarito({ - weight: ['400', '500'], - subsets: ['latin'], - display: 'swap', - adjustFontFallback: false, -}); - -const Icon = styled.img` - height: 24px; - width: 24px; - border-radius: 4px; -`; - -// remove the protocol from the url -const removeProtocol = (url: string) => url.replace(/(^\w+:|^)\/\//, ''); - -export const Card = ({ data }: { data: OssData }) => { - return ( - - - - {data.name} - {data.description} - - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/oss-friends/CardContainer.tsx b/packages/twenty-website/src/app/_components/oss-friends/CardContainer.tsx deleted file mode 100644 index d8e2f0ef46..0000000000 --- a/packages/twenty-website/src/app/_components/oss-friends/CardContainer.tsx +++ /dev/null @@ -1,23 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -const Container = styled.div` - display: flex; - flex-wrap: wrap; - gap: 32px; - justify-content: center; - max-width: 1000px; - margin: 0 auto; - width: 95%; - margin-bottom: 24px; - @media (max-width: 800px) { - width: 100%; - margin: 0; - justify-content: center; - } -`; - -export const CardContainer = ({ children }: { children?: React.ReactNode }) => { - return {children}; -}; diff --git a/packages/twenty-website/src/app/_components/oss-friends/ContentContainer.tsx b/packages/twenty-website/src/app/_components/oss-friends/ContentContainer.tsx deleted file mode 100644 index 48c7eaa643..0000000000 --- a/packages/twenty-website/src/app/_components/oss-friends/ContentContainer.tsx +++ /dev/null @@ -1,23 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -const Container = styled.div` - display: flex; - text-align: center; - flex-direction: column; - width: 100%; - gap: 64px; - @media (max-width: 809px) { - width: 100%; - padding: 0px 20px 40px 20px; - } -`; - -export const ContentContainer = ({ - children, -}: { - children?: React.ReactNode; -}) => { - return {children}; -}; diff --git a/packages/twenty-website/src/app/_components/oss-friends/Header.tsx b/packages/twenty-website/src/app/_components/oss-friends/Header.tsx deleted file mode 100644 index fcdf9972a7..0000000000 --- a/packages/twenty-website/src/app/_components/oss-friends/Header.tsx +++ /dev/null @@ -1,52 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { motion } from 'framer-motion'; - -import { Theme } from '@/app/_components/ui/theme/theme'; - -const Title = styled.h1` - font-size: 56px; - font-weight: 700; - color: #b3b3b3; - margin-bottom: 24px; - margin-top: 64px; - - @media (max-width: 1200px) { - font-size: 32px; - } -`; - -const Description = styled.h2` - font-size: 20px; - color: #818181; - margin-top: 0px; - margin-bottom: 36px; - font-weight: 400; - line-height: ${Theme.text.lineHeight.lg}; - margin: 0 auto; - max-width: 600px; - @media (max-width: 810px) { - font-size: 18px; - } -`; - -export const Header = () => { - return ( - <> - - - Open-source <br /> <span style={{ color: 'black' }}>friends</span> - - - - We are proud to collaborate with a diverse group of partners to promote - open-source software. - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/releases/Line.tsx b/packages/twenty-website/src/app/_components/releases/Line.tsx deleted file mode 100644 index b99a916ecc..0000000000 --- a/packages/twenty-website/src/app/_components/releases/Line.tsx +++ /dev/null @@ -1,35 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -const StyledLineContainer = styled.div` - width: 810px; - margin: 0 auto; - display: flex; - - @media (max-width: 810px) { - width: auto; - display: block; - margin: 24px 0px 64px; - } -`; - -const StyledLine = styled.div` - height: 1px; - background-color: #d9d9d9; - margin-left: 148px; - margin-top: 40px; - width: 100%; - - @media (max-width: 810px) { - margin: 0; - } -`; - -export const Line = () => { - return ( - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/releases/Release.tsx b/packages/twenty-website/src/app/_components/releases/Release.tsx deleted file mode 100644 index d28a1a7be0..0000000000 --- a/packages/twenty-website/src/app/_components/releases/Release.tsx +++ /dev/null @@ -1,90 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { Gabarito } from 'next/font/google'; -import { type JSXElementConstructor, type ReactElement } from 'react'; - -import { type ReleaseNote } from '@/app/(public)/releases/api/route'; -import { ArticleContent } from '@/app/_components/ui/layout/articles/ArticleContent'; -import MotionContainer from '@/app/_components/ui/layout/LoaderAnimation'; -import { Theme } from '@/app/_components/ui/theme/theme'; -import { formatGithubPublishedAtDisplayDate } from '@/shared-utils/formatDisplayDate'; - -const StyledContainer = styled.div` - width: 810px; - margin: 0 auto; - display: flex; - font-weight: 400; - - @media (max-width: 810px) { - width: auto; - display: block; - } -`; - -const StyledVersion = styled.div` - text-align: center; - width: 148px; - min-width: 148px; - font-size: 24px; - display: flex; - flex-flow: column; - align-items: start; - font-weight: 500; - margin-top: 64px; - - @media (max-width: 810px) { - width: 100%; - min-width: unset; - font-size: 20px; - flex-flow: row; - justify-content: space-between; - margin-bottom: -48px; - margin-top: 0px; - } -`; - -const StyledRelease = styled.span` - color: ${Theme.text.color.quarternary}; - line-height: 140%; -`; - -const StyledDate = styled.span` - color: ${Theme.text.color.secondary}; - font-weight: 400; - font-size: ${Theme.font.size.sm}; - white-space: nowrap; - margin-top: 4px; -`; - -const gabarito = Gabarito({ - weight: ['400', '500', '600', '700'], - subsets: ['latin'], - display: 'swap', - adjustFontFallback: false, - variable: '--font-gabarito', -}); - -export const Release = ({ - release, - mdxReleaseContent, - githubPublishedAt, -}: { - release: ReleaseNote; - githubPublishedAt: string; - mdxReleaseContent: ReactElement>; -}) => { - return ( - - - - {release.release} - - {formatGithubPublishedAtDisplayDate(githubPublishedAt)} - - - {mdxReleaseContent} - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/releases/ReleaseContainer.tsx b/packages/twenty-website/src/app/_components/releases/ReleaseContainer.tsx deleted file mode 100644 index fadfa80504..0000000000 --- a/packages/twenty-website/src/app/_components/releases/ReleaseContainer.tsx +++ /dev/null @@ -1,90 +0,0 @@ -'use client'; -import React, { useEffect, useRef, useState } from 'react'; - -import { type ReleaseNote } from '@/app/(public)/releases/api/route'; -import { getGithubReleaseDateFromReleaseNote } from '@/app/(public)/releases/utils/get-github-release-date-from-release-note'; -import { Line } from '@/app/_components/releases/Line'; -import { Release } from '@/app/_components/releases/Release'; -import { type GithubReleases } from '@/database/model'; - -interface ReleaseProps { - visibleReleasesNotes: ReleaseNote[]; - githubReleases: GithubReleases[]; - mdxReleasesContent: any; -} - -export const ReleaseContainer = ({ - visibleReleasesNotes, - githubReleases, - mdxReleasesContent, -}: ReleaseProps) => { - const [page, setPage] = useState(1); - const [releases, setReleases] = useState( - visibleReleasesNotes.slice(0, 5), - ); - const [loading, setLoading] = useState(false); - const loaderRef = useRef(null); - - useEffect(() => { - if (page === 1) return; - - const loadMoreReleases = () => { - const start = (page - 1) * 5; - const end = start + 5; - const newReleases = visibleReleasesNotes.slice(start, end); - setReleases((prevReleases) => [...prevReleases, ...newReleases]); - }; - - setLoading(true); - loadMoreReleases(); - setLoading(false); - }, [page]); - - useEffect(() => { - const observer = new IntersectionObserver( - (entries) => { - if (entries[0].isIntersecting && !loading) { - setPage((prevPage) => prevPage + 1); - } - }, - { - threshold: 1.0, - }, - ); - - if (loaderRef.current) { - observer.observe(loaderRef.current); - } - - return () => { - if (loaderRef.current) { - observer.unobserve(loaderRef.current); - } - }; - }, [loading]); - - return ( - <> - {releases.map((note, index) => { - const mdxIndex = visibleReleasesNotes.findIndex( - (vNote) => vNote.slug === note.slug, - ); - return ( - - - {index != releases.length - 1 && } - - ); - })} -
{loading &&

Loading more releases...

}
- - ); -}; diff --git a/packages/twenty-website/src/app/_components/releases/StyledTitle.tsx b/packages/twenty-website/src/app/_components/releases/StyledTitle.tsx deleted file mode 100644 index 3f7348c627..0000000000 --- a/packages/twenty-website/src/app/_components/releases/StyledTitle.tsx +++ /dev/null @@ -1,38 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { motion } from 'framer-motion'; - -const StyledTitle = styled.div` - margin: 64px auto 0px; - text-align: center; - font-size: 1.8em; - - @media (max-width: 810px) { - font-size: 1em; - margin: 64px auto; - } -`; -const StyledHeader = styled.h1` - color: #b3b3b3; - margin: 0; -`; -const StyledSubHeader = styled.h1` - color: #141414; - margin: 0; -`; - -export const Title = () => { - return ( - - - Latest - Releases - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/icons/SvgIcons.tsx b/packages/twenty-website/src/app/_components/ui/icons/SvgIcons.tsx deleted file mode 100644 index 99c6ee2586..0000000000 --- a/packages/twenty-website/src/app/_components/ui/icons/SvgIcons.tsx +++ /dev/null @@ -1,198 +0,0 @@ -const getSize = (size: string) => { - switch (size) { - case 'S': - return '14px'; - case 'M': - return '24px'; - case 'L': - return '48px'; - default: - return size; - } -}; - -export const GithubIcon = ({ - size = 'S', - color = 'rgb(179, 179, 179)', - className, -}: { - size?: string; - color?: string; - className?: string; -}) => { - const dimension = getSize(size); - return ( -
- - - -
- ); -}; - -export const LinkedInIcon = ({ size = 'S', color = 'rgb(179, 179, 179)' }) => { - const dimension = getSize(size); - - return ( -
- - - - - -
- ); -}; - -export const DiscordIcon = ({ size = 'S', color = 'rgb(179, 179, 179)' }) => { - const dimension = getSize(size); - return ( -
- - - - - -
- ); -}; - -export const XIcon = ({ size = 'S', color = 'rgb(179, 179, 179)' }) => { - const dimension = getSize(size); - return ( -
- - - - -
- ); -}; - -export const GithubIcon2 = ({ size = 'S', color = 'rgb(179, 179, 179)' }) => { - const dimension = getSize(size); - return ( -
- - - - - -
- ); -}; - -export const PullRequestIcon = ({ - size = 'S', - color = 'rgb(179,179,179)', - className, -}: { - size?: string; - color?: string; - className?: string; -}) => { - const dimension = getSize(size); - return ( -
- - - -
- ); -}; - -export const HeartIcon = ({ - size = 'S', - color = 'rgb(179,179,179)', - className, -}: { - size?: string; - color?: string; - className?: string; -}) => { - const dimension = getSize(size); - return ( - - - - - - ); -}; - -export const ExternalArrow = () => { - return ( -
- - - - - -
- ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/icons/index.ts b/packages/twenty-website/src/app/_components/ui/icons/index.ts deleted file mode 100644 index 0b543b6472..0000000000 --- a/packages/twenty-website/src/app/_components/ui/icons/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export { - IconBook, - IconChevronDown, - IconChevronLeft, - IconChevronRight, -} from '@tabler/icons-react'; -export type { IconProps as TablerIconsProps } from '@tabler/icons-react'; diff --git a/packages/twenty-website/src/app/_components/ui/layout/Breadcrumbs.tsx b/packages/twenty-website/src/app/_components/ui/layout/Breadcrumbs.tsx deleted file mode 100644 index 121e9e07f4..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/Breadcrumbs.tsx +++ /dev/null @@ -1,102 +0,0 @@ -'use client'; - -import React from 'react'; -import { styled } from '@linaria/react'; -import { IconChevronLeft } from '@tabler/icons-react'; -import Link from 'next/link'; - -import { Theme } from '@/app/_components/ui/theme/theme'; - -const Container = styled.div` - display: none; - gap: ${Theme.spacing(2)}; - color: #b3b3b3; - @media (min-width: 810px) { - display: flex; - } -`; - -const InternalLinkItem = styled(Link)` - text-decoration: none; - color: #b3b3b3; - &:hover { - color: ${Theme.text.color.quarternary}; - text-decoration: underline; - } - font-family: var(--font-gabarito); -`; - -const ExternalLinkItem = styled.a` - text-decoration: none; - color: #b3b3b3; -`; - -const ActivePage = styled.span` - color: ${Theme.text.color.primary}; - font-weight: ${Theme.font.weight.medium}; - font-family: var(--font-gabarito); -`; - -const StyledSection = styled.div` - font-size: ${Theme.font.size.sm}; - font-weight: ${Theme.font.weight.medium}; - color: ${Theme.text.color.quarternary}; - display: flex; - flex-direction: row; - gap: ${Theme.spacing(2)}; -`; - -const StyledMobileContainer = styled.div` - display: flex; - flex-direction: row; - align-items: center; - gap: ${Theme.spacing(1)}; - color: ${Theme.text.color.quarternary}; - font-size: ${Theme.font.size.sm}; - @media (min-width: 810px) { - display: none; - } -`; - -interface BreadcrumbsProps { - items: { - uri: string; - label: string; - isExternal?: boolean; - }[]; - activePage: string; - separator: string; - style?: boolean; -} - -export const Breadcrumbs = ({ - items, - activePage, - separator, -}: BreadcrumbsProps) => { - const lastItem = items[items.length - 1]; - - return ( -
- - - - {lastItem.label} - - - - {items.map((item, index) => ( - - {item.isExternal ? ( - {item.label} - ) : ( - {item.label} - )} -
{separator}
-
- ))} - {activePage} -
-
- ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/ContentContainer.tsx b/packages/twenty-website/src/app/_components/ui/layout/ContentContainer.tsx deleted file mode 100644 index 10d9e8a95c..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/ContentContainer.tsx +++ /dev/null @@ -1,22 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -const Container = styled.div` - display: flex; - flex-direction: column; - width: 100%; - padding: 0px 96px 0px 96px; - @media (max-width: 809px) { - width: 100%; - padding: 0px 24px 0px 24px; - } -`; - -export const ContentContainer = ({ - children, -}: { - children?: React.ReactNode; -}) => { - return {children}; -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/FooterDesktop.tsx b/packages/twenty-website/src/app/_components/ui/layout/FooterDesktop.tsx deleted file mode 100644 index 3fa33c4715..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/FooterDesktop.tsx +++ /dev/null @@ -1,169 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -import { - DiscordIcon, - GithubIcon2, - LinkedInIcon, - XIcon, -} from '../icons/SvgIcons'; - -import { Logo } from './Logo'; - -const FooterContainer = styled.div` - padding: 64px 96px 64px 96px; - display: flex; - flex-direction: column; - color: rgb(129, 129, 129); - gap: 32px; - @media (max-width: 809px) { - padding: 36px 24px; - } -`; - -const LeftSideFooter = styled.div` - width: 36Opx; - display: flex; - flex-direction: column; - gap: 16px; - @media (max-width: 809px) { - display: none; - } -`; - -const RightSideFooter = styled.div` - display: flex; - justify-content: space-between; - gap: 48px; - height: 146px; - @media (max-width: 809px) { - flex-direction: column; - height: fit-content; - } -`; - -const RightSideFooterColumn = styled.div` - width: 160px; - display: flex; - flex-direction: column; - gap: 8px; -`; - -const RightSideFooterLink = styled.a` - color: rgb(129, 129, 129); - text-decoration: none; - &:hover { - text-decoration: underline; - color: #000; - } -`; - -const RightSideFooterColumnTitle = styled.div` - font-size: 20px; - font-weight: 500; - color: #000; -`; - -export const FooterDesktop = () => { - return ( - -
- - -
The #1 Open Source CRM
-
- - - Company - Pricing - Story - - - Resources - - Developers - - - User-Guide - - Releases - Jobs - - - Other - - Contributors - - - OSS Friends - - - Terms of Service - - - Privacy Policy - - - -
-
-
- © - {new Date().getFullYear()} Twenty PBC -
- -
-
- ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/LoaderAnimation.tsx b/packages/twenty-website/src/app/_components/ui/layout/LoaderAnimation.tsx deleted file mode 100644 index f178d3d1a2..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/LoaderAnimation.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { styled } from '@linaria/react'; -import { motion } from 'framer-motion'; - -const StyledMotionDiv = styled(motion.div)` - max-width: 100%; -`; - -const containerVariants = { - hidden: { opacity: 0, y: 20 }, - visible: { - opacity: 1, - y: 0, - transition: { duration: 0.2, ease: 'easeOut' }, - }, -}; - -const MotionContainer = ({ children }: { children?: React.ReactNode }) => ( - - {children} - -); - -export default MotionContainer; diff --git a/packages/twenty-website/src/app/_components/ui/layout/Logo.tsx b/packages/twenty-website/src/app/_components/ui/layout/Logo.tsx deleted file mode 100644 index 5f273682a7..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/Logo.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { styled } from '@linaria/react'; - -const Link = styled.a` - display: block; - image-rendering: pixelated; - flex-shrink: 0; - background-size: 100% 100%; - border-radius: 8px; - height: 40px; - width: 40px; - background-image: url('/images/core/logo.svg'); - opacity: 1; -`; - -export const Logo = () => { - return ; -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/PostImage.tsx b/packages/twenty-website/src/app/_components/ui/layout/PostImage.tsx deleted file mode 100644 index 00e215aa77..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/PostImage.tsx +++ /dev/null @@ -1,9 +0,0 @@ -export const PostImage = ({ - sources, - style, -}: { - sources: { light: string; dark: string }; - style?: React.CSSProperties; -}) => { - return {sources.light}; -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleContent.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleContent.tsx deleted file mode 100644 index e8b03d1d3a..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleContent.tsx +++ /dev/null @@ -1,199 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; -import { type ReactNode } from 'react'; - -import { Theme } from '@/app/_components/ui/theme/theme'; -import { wrapHeadingsWithAnchor } from '@/shared-utils/wrapHeadingsWithAnchor'; - -const StyledContent = styled.div` - flex: 1; - max-width: 950px; - - code { - overflow: auto; - white-space: pre-wrap; - word-wrap: break-word; - max-width: 100%; - line-height: 1.8; - color: black; - padding: 4px; - border-radius: 4px; - background: #1414140a; - } - - pre { - background: #1414140a; - padding: 4px; - border-radius: 4px; - - code { - padding: 0; - border-radius: 0; - background: none; - } - } - - p { - color: ${Theme.text.color.secondary}; - font-family: ${Theme.font.family}; - font-size: ${Theme.font.size.sm}; - line-height: 28.8px; - font-weight: ${Theme.font.weight.regular}; - margin: 32px 0px 0px; - text-align: justify; - code { - font-size: 13px; - } - } - - h1, - h2, - h3, - h4 { - margin-bottom: 8px; - font-family: var(--font-gabarito); - color: ${Theme.text.color.primary}; - font-weight: 700; - a { - text-decoration: none; - color: ${Theme.text.color.primary}; - } - - code { - font-size: 24px; - } - } - - h1 { - margin-top: 64px; - font-size: 40px; - } - - h2, - h3, - h4 { - margin-top: 40px; - } - - h2 { - font-size: 32px; - } - - h3 { - font-size: 28px; - } - - h4 { - font-size: 24px; - } - - h5 { - font-size: 20px; - } - - @media (max-width: 810px) { - h1 { - font-size: 28px; - } - h2 { - font-size: 24px; - } - h3 { - font-size: 20px; - } - h4 { - font-size: 16px; - } - h1, - h2, - h3, - h4 { - code { - font-size: 16px; - } - } - } - - ol { - margin: 32px 0px 0px; - } - - li { - margin: 16px 0px 0px; - line-height: 28.8px; - font-family: ${Theme.font.family}; - color: ${Theme.text.color.secondary}; - } - - img { - margin: 32px 0px 0px; - max-width: 100%; - } - - details { - margin: 24px 0px 0px; - border: 1px solid ${Theme.border.color.plain}; - border-radius: ${Theme.border.radius.md}; - background: ${Theme.background.secondary}; - } - - details summary { - padding: 16px 20px; - cursor: pointer; - font-family: var(--font-gabarito); - font-size: ${Theme.font.size.sm}; - font-weight: ${Theme.font.weight.medium}; - color: ${Theme.text.color.primary}; - list-style: none; - border-radius: ${Theme.border.radius.md}; - transition: background-color 0.2s ease; - - &::-webkit-details-marker { - display: none; - } - - &::marker { - display: none; - } - - &:hover { - background: ${Theme.background.transparent.light}; - } - - &::after { - content: '+'; - float: right; - font-size: 20px; - font-weight: 300; - color: ${Theme.text.color.tertiary}; - } - } - - details[open] summary { - border-bottom: 1px solid ${Theme.border.color.plain}; - border-radius: ${Theme.border.radius.md} ${Theme.border.radius.md} 0 0; - - &::after { - content: '−'; - } - } - - details > *:not(summary) { - padding: 20px; - margin: 0; - font-family: ${Theme.font.family}; - font-size: ${Theme.font.size.sm}; - line-height: 28.8px; - color: ${Theme.text.color.secondary}; - } - - details strong { - font-weight: ${Theme.font.weight.medium}; - color: ${Theme.text.color.primary}; - } -`; - -export const ArticleContent = ({ children }: { children: ReactNode }) => { - return {wrapHeadingsWithAnchor(children)}; -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleEditContent.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleEditContent.tsx deleted file mode 100644 index 9abbac9a7f..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleEditContent.tsx +++ /dev/null @@ -1,114 +0,0 @@ -'use client'; -import { styled } from '@linaria/react'; -import { usePathname } from 'next/navigation'; - -import { StyledButton } from '@/app/_components/ui/layout/header/styled'; -import { Theme } from '@/app/_components/ui/theme/theme'; - -const StyledContainer = styled.div` - margin-top: 64px; - padding: 32px; - border: 2px solid #141414; - border-radius: 16px; - display: flex; - flex-direction: row; - - h2 { - margin: 0px; - font-size: ${Theme.font.size.lg}; - } - - p { - font-size: ${Theme.font.size.xs}; - margin: 24px 0px 32px; - color: ${Theme.text.color.tertiary}; - line-height: 1.5; - text-align: left; - } - - @media (min-width: 950px) { - padding: 32px 0px 0px 32px; - } -`; - -const StyledButtonText = styled.div` - margin-left: 8px; - text-decoration: none; -`; - -const StyledRightColumn = styled.div` - display: flex; - border-bottom-right-radius: 16px; - overflow: hidden; - min-width: 40%; - @media (max-width: 950px) { - display: none; - } - - @media (min-width: 1530px) { - justify-content: end; - } - - img { - background-size: cover; - background-position: center; - background-repeat: no-repeat; - max-width: fit-content; - margin: 0; - } -`; - -const StyledButtonContainer = styled.div` - text-decoration: none; - - @media (min-width: 950px) { - padding-bottom: 32px; - } -`; - -export default function ArticleEditContent() { - const pathname = usePathname().replace('/section', ''); - return ( - -
-

Noticed something to change?

-

- As an open-source company, we welcome contributions through Github. - Help us keep it up-to-date, accurate, and easy to understand by - getting involved and sharing your ideas! -

- - - - - - - Edit Content - - - -
- - twenty github image - -
- ); -} diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleLink.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleLink.tsx deleted file mode 100644 index 4ce5756c49..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleLink.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React, { type ReactNode } from 'react'; - -interface ArticleLinkProps { - href: string; - children: ReactNode; -} - -const ArticleLink: React.FC = ({ href, children }) => ( - - {children} - -); - -export default ArticleLink; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticlePropsTable.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticlePropsTable.tsx deleted file mode 100644 index 6966968ff5..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticlePropsTable.tsx +++ /dev/null @@ -1,82 +0,0 @@ -'use client'; -import React from 'react'; -import { styled } from '@linaria/react'; -import PropTypes from 'prop-types'; - -const StyledTableContainer = styled.div` - width: 100%; - overflow-x: auto; - margin-top: 32px; -`; - -const StyledTable = styled.table` - width: fit-content; - margin-top: 32px; - border-collapse: collapse; -`; - -const StyledTableHeader = styled.th` - padding: 8px; - border: 1px solid #ddd; - border-collapse: collapse; - background-color: #f1f1f1; -`; - -const StyledTableRow = styled.tr<{ isEven: boolean }>` - background-color: ${(props) => (props.isEven ? '#f1f1f1' : 'transparent')}; -`; - -const StyledDescription = styled.td` - border: 1px solid #ddd; - font-size: 12px; - padding: 20px 8px; - text-align: center; -`; - -const StyledVariable = styled.td` - border: 1px solid #ddd; - font-size: 12px; - text-align: center; - padding: 8px; -`; - -interface ArticleTableProps { - options: [string, string, string, string][]; -} - -const OptionTable = ({ options }: ArticleTableProps) => { - let display = true; - if (!options[0][3]) { - display = false; - } - return ( - - - - - Props - Type - Description - {display ? Default : null} - - - - {options.map(([props, type, description, defaultValue], index) => ( - - {props} - {type} - {description} - {display ? {defaultValue} : null} - - ))} - - - - ); -}; - -OptionTable.propTypes = { - options: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired, -}; - -export default OptionTable; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTab.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTab.tsx deleted file mode 100644 index 1a686b86d5..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTab.tsx +++ /dev/null @@ -1,5 +0,0 @@ -const TabItem = ({ children }: any) => { - return
{children}
; -}; - -export default TabItem; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTable.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTable.tsx deleted file mode 100644 index 98ea460a51..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTable.tsx +++ /dev/null @@ -1,81 +0,0 @@ -'use client'; -import React from 'react'; -import { styled } from '@linaria/react'; -import PropTypes from 'prop-types'; - -const StyledTableContainer = styled.div` - width: 100%; - overflow-x: auto; - margin-top: 32px; -`; - -const StyledTable = styled.table` - width: 100%; - border-collapse: collapse; -`; - -const StyledTableHeader = styled.th` - padding: 8px; - border-bottom: 1px solid #ddd; -`; - -const StyledDescription = styled.td` - border-bottom: 1px solid #ddd; - font-size: 12px; - padding: 10px 0px 10px 20px; - text-align: center; -`; - -const StyledExample = styled.td` - border-bottom: 1px solid #ddd; - padding-right: 20px; - font-size: 12px; - text-align: center; -`; - -const StyledVariable = styled.td` - border-bottom: 1px solid #ddd; - padding-right: 20px; - font-size: 12px; - font-weight: 600; - color: #538ce9; -`; - -const StyledTableRow = styled.tr<{ isEven: boolean }>` - background-color: ${(props) => (props.isEven ? '#f1f1f1' : 'transparent')}; -`; - -interface ArticleTableProps { - options: [string, string, string][]; -} - -const OptionTable = ({ options }: ArticleTableProps) => { - return ( - - - - - Variable - Example - Description - - - - {options.map(([variable, defaultValue, description], index) => ( - - {variable} - {defaultValue} - {description} - - ))} - - - - ); -}; - -OptionTable.propTypes = { - options: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)).isRequired, -}; - -export default OptionTable; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTabs.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTabs.tsx deleted file mode 100644 index 9e8cc10dcf..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleTabs.tsx +++ /dev/null @@ -1,52 +0,0 @@ -'use client'; -import React, { useState } from 'react'; -import { styled } from '@linaria/react'; - -const StyledContainer = styled.div` - display: flex; - cursor: pointer; - margin-top: 32px; - margin-bottom: 16px; - width: 80%; - overflow: none; -`; - -const StyledTab = styled.div<{ active: boolean }>` - padding: 10px 20px; - border-bottom: 2px solid ${(props) => (props.active ? '#000' : 'transparent')}; - font-weight: ${(props) => (props.active ? 'bold' : 'normal')}; -`; - -interface ArticleTabsProps { - children: any; - label1: string; - label2: string; - label3?: string; -} - -const Tabs = ({ children, label1, label2, label3 }: ArticleTabsProps) => { - const [activeTab, setActiveTab] = useState(0); - - const labels = label3 ? [label1, label2, label3] : [label1, label2]; - - return ( -
- - {labels.map((label, index) => { - return ( - setActiveTab(index)} - key={label} - active={activeTab === index} - > - {label} - - ); - })} - -
{children[activeTab]}
-
- ); -}; - -export default Tabs; diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleWarning.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleWarning.tsx deleted file mode 100644 index 3672af8dcd..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/ArticleWarning.tsx +++ /dev/null @@ -1,41 +0,0 @@ -'use client'; -import { type ReactNode } from 'react'; -import { styled } from '@linaria/react'; -import { IconAlertCircle } from '@tabler/icons-react'; - -const StyledContainer = styled.div` - display: flex; - flex-direction: row; - background: var(--Palette-Red-10, #feecec); - gap: 12px; - border-radius: 8px; - padding: 16px 24px; - margin: 32px 0px; -`; - -const StyledIconContainer = styled.div` - color: var(--Palette-Red-50, #b43232); - padding-top: 1px; -`; - -const StyledText = styled.div` - h1 { - margin: 0px !important; - } - p { - color: var(--Palette-Red-50, #b43232) !important; - margin: 0px !important; - text-align: left; - } -`; - -export default function ArticleWarning({ children }: { children: ReactNode }) { - return ( - - - - - {children} - - ); -} diff --git a/packages/twenty-website/src/app/_components/ui/layout/articles/SandpackEditor.tsx b/packages/twenty-website/src/app/_components/ui/layout/articles/SandpackEditor.tsx deleted file mode 100644 index 9c68b2dbb7..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/articles/SandpackEditor.tsx +++ /dev/null @@ -1,40 +0,0 @@ -'use client'; -import { - SandpackCodeEditor, - SandpackLayout, - SandpackProvider, -} from '@codesandbox/sandpack-react'; -import { styled } from '@linaria/react'; - -const Sandpack = styled.div` - max-width: 600px; -`; - -const SandpackContainer = styled.div` - height: 100%; - overflow: auto; - width: 100%; -`; - -interface SandpackEditorProps { - content: string; -} - -export default function SandpackEditor({ content }: SandpackEditorProps) { - return ( - - - - - - - - - - ); -} diff --git a/packages/twenty-website/src/app/_components/ui/layout/header/HeaderDesktop.tsx b/packages/twenty-website/src/app/_components/ui/layout/header/HeaderDesktop.tsx deleted file mode 100644 index dbd447b585..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/header/HeaderDesktop.tsx +++ /dev/null @@ -1,160 +0,0 @@ -'use client'; - -import React, { useEffect, useRef, useState } from 'react'; -import { styled } from '@linaria/react'; -import { IconBook, IconChevronDown, IconRobotFace } from '@tabler/icons-react'; - -import { ExternalArrow, GithubIcon } from '@/app/_components/ui/icons/SvgIcons'; -import { CallToAction } from '@/app/_components/ui/layout/header/callToAction'; -import { - DesktopNav, - LinkList, - ListItem, - LogoContainer, -} from '@/app/_components/ui/layout/header/styled'; -import { Logo } from '@/app/_components/ui/layout/Logo'; -import { Theme } from '@/app/_components/ui/theme/theme'; -import { formatNumberOfStars } from '@/shared-utils/formatNumberOfStars'; - -const DropdownMenu = styled.ul<{ open: boolean }>` - display: ${(props) => (props.open ? 'block' : 'none')}; - position: absolute; - top: 100%; - left: 0; - list-style: none; - background: white; - border: 1px solid black; - border-radius: 8px; - padding: 2px 0; - margin: 4px 0px; - width: 150px; -`; - -const DropdownItem = styled.a` - color: rgb(71, 71, 71); - text-decoration: none; - padding-left: 14px; - padding-right: 14px; - display: flex; - align-items: center; - gap: 6px; - height: 40px; - margin: 0px 2px; - border-radius: 4px; - font-size: 15px; - &:hover { - background-color: #f1f1f1; - } -`; - -const Dropdown = styled.div` - color: rgb(71, 71, 71); - text-decoration: none; - display: flex; - gap: 4px; - align-items: center; - border-radius: 8px; - height: 40px; - padding-left: 16px; - padding-right: 16px; - position: relative; - cursor: pointer; - &:hover { - background-color: #f1f1f1; - } -`; - -const StyledIconContainer = styled.div` - border: 1px solid ${Theme.text.color.secondary}; - border-radius: ${Theme.border.radius.sm}; - display: flex; - align-items: center; - padding: 2px; -`; - -const StyledChevron = styled.div` - display: flex; - align-items: center; - margin-top: 2px; - color: rgb(179, 179, 179); -`; - -const Arrow = styled.div<{ open: boolean }>` - display: inline-block; - margin-left: 5px; - transition: transform 0.3s; - transform: ${(props) => (props.open ? 'rotate(180deg)' : 'rotate(0deg)')}; -`; - -type Props = { - numberOfStars: number; -}; - -export const HeaderDesktop = ({ numberOfStars }: Props) => { - const [dropdownOpen, setDropdownOpen] = useState(false); - const dropdownRef = useRef(null); - - const toggleDropdown = () => { - setDropdownOpen((prev) => !prev); - }; - - const handleClickOutside = (event: MouseEvent) => { - if ( - dropdownRef.current && - !dropdownRef.current.contains(event.target as Node) - ) { - setDropdownOpen(false); - } - }; - - useEffect(() => { - document.addEventListener('mousedown', handleClickOutside); - return () => { - document.removeEventListener('mousedown', handleClickOutside); - }; - }, []); - return ( - - - - - - Story - Pricing - Releases - - Docs - - - - - - - - - - - User Guide - - - - - - Developers - - - - - - {formatNumberOfStars(numberOfStars)} - - - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/header/HeaderMobile.tsx b/packages/twenty-website/src/app/_components/ui/layout/header/HeaderMobile.tsx deleted file mode 100644 index fbb2a2d3b8..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/header/HeaderMobile.tsx +++ /dev/null @@ -1,79 +0,0 @@ -'use client'; - -import { useState } from 'react'; -import { IBM_Plex_Mono } from 'next/font/google'; - -import { ExternalArrow, GithubIcon } from '@/app/_components/ui/icons/SvgIcons'; -import { CallToAction } from '@/app/_components/ui/layout/header/callToAction'; -import { - HamburgerContainer, - HamburgerLine1, - HamburgerLine2, - ListItem, - LogoAddon, - LogoContainer, - MobileLinkList, - MobileMenu, - MobileNav, - NavOpen, -} from '@/app/_components/ui/layout/header/styled'; -import { Logo } from '@/app/_components/ui/layout/Logo'; -import { formatNumberOfStars } from '@/shared-utils/formatNumberOfStars'; - -const IBMPlexMono = IBM_Plex_Mono({ - weight: '500', - subsets: ['latin'], - display: 'swap', -}); - -type Props = { - numberOfStars: number; -}; - -export const HeaderMobile = ({ numberOfStars }: Props) => { - const isTwentyDev = false; - - const [menuOpen, setMenuOpen] = useState(false); - - const toggleMenu = () => { - setMenuOpen(!menuOpen); - }; - - return ( - - - - - {isTwentyDev && ( - - for Developers - - )} - - - - - - - - - - Story - Pricing - Releases - User Guide - Developers - - {' '} - {formatNumberOfStars(numberOfStars)} - - - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/header/callToAction.tsx b/packages/twenty-website/src/app/_components/ui/layout/header/callToAction.tsx deleted file mode 100644 index c61145e874..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/header/callToAction.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { - CallToActionContainer, - LinkNextToCTA, - StyledButton, -} from '@/app/_components/ui/layout/header/styled'; - -export const CallToAction = () => { - return ( - - Sign in - - Get Started - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/header/index.tsx b/packages/twenty-website/src/app/_components/ui/layout/header/index.tsx deleted file mode 100644 index e650895742..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/header/index.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { desc } from 'drizzle-orm'; - -import { HeaderDesktop } from '@/app/_components/ui/layout/header/HeaderDesktop'; -import { HeaderMobile } from '@/app/_components/ui/layout/header/HeaderMobile'; -import { findOne } from '@/database/database'; -import { githubStarsModel } from '@/database/model'; - -export const AppHeader = async () => { - const githubStars = await findOne( - githubStarsModel, - desc(githubStarsModel.timestamp), - ); - - return ( - <> - - - - ); -}; diff --git a/packages/twenty-website/src/app/_components/ui/layout/header/styled.ts b/packages/twenty-website/src/app/_components/ui/layout/header/styled.ts deleted file mode 100644 index 89453b8b15..0000000000 --- a/packages/twenty-website/src/app/_components/ui/layout/header/styled.ts +++ /dev/null @@ -1,206 +0,0 @@ -'use client'; - -import { styled } from '@linaria/react'; - -export const DesktopNav = styled.nav` - display: flex; - flex-direction: row; - flex-wrap: nowrap; - justify-content: space-between; - align-items: center; - overflow: visible; - padding: 12px 16px 12px 16px; - position: fixed; - width: 100%; - background-color: white; - z-index: 4; - transform-origin: 50% 50% 0px; - border-bottom: 1px solid rgba(20, 20, 20, 0.08); - font-family: var(--font-gabarito); - - @media (max-width: 809px) { - display: none; - } -`; - -export const MobileNav = styled.nav` - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - overflow: visible; - padding: 0 12px; - position: fixed; - width: 100%; - background-color: white; - z-index: 4; - transform-origin: 50% 50% 0px; - border-bottom: 1px solid rgba(20, 20, 20, 0.08); - height: 64px; - width: 100%; -`; - -export const LinkList = styled.div` - display: flex; - flex-direction: row; - gap: 2px; - margin-right: auto; - @media (min-width: 1200px) { - margin-right: 0; - } -`; - -export const MobileLinkList = styled.div` - display: flex; - flex-direction: column; - gap: 16px; - align-items: center; -`; - -export const ListItem = styled.a` - color: rgb(71, 71, 71); - text-decoration: none; - display: flex; - gap: 4px; - align-items: center; - border-radius: 8px; - height: 40px; - padding-left: 16px; - padding-right: 16px; - &:hover { - background-color: #f1f1f1; - } -`; - -export const LogoContainer = styled.div` - display: flex; - align-items: center; - gap: 8px; - width: auto; - @media (min-width: 1200px) { - width: 202px; - } -`; - -export const LogoAddon = styled.div` - font-size: 12px; - font-style: normal; - font-weight: 500; - line-height: 150%; -`; - -export const StyledButton = styled.div` - display: flex; - height: 40px; - padding-left: 16px; - padding-right: 16px; - align-items: center; - background-color: #000; - color: #fff; - border-radius: 8px; - font-weight: 500; - border: none; - outline: inherit; - cursor: pointer; - max-width: fit-content; - font-family: var(--font-gabarito); -`; - -export const CallToActionContainer = styled.div` - display: flex; - align-items: center; - gap: 8px; - a { - text-decoration: none; - } -`; - -export const LinkNextToCTA = styled.a` - display: flex; - align-items: center; - color: rgb(71, 71, 71); - padding: 0px 16px 0px 16px; - span { - text-decoration: underline; - } -`; - -export const HamburgerContainer = styled.div` - height: 44px; - width: 44px; - position: relative; - - input { - cursor: pointer; - height: 44px; - width: 44px; - opacity: 0; - z-index: 1; - } - - #line1 { - transition: transform 0.5s; - transition-timing-function: ease-in-out; - z-index: 0; - } - - #line2 { - transition: transform 0.5s; - transition-timing-function: ease-in-out; - z-index: 0; - } - - #menu-input:checked ~ #line1 { - transform: rotate(45deg) translate(7px); - } - - #menu-input:checked ~ #line2 { - transform: rotate(-45deg) translate(7px); - } -`; - -export const HamburgerLine1 = styled.div` - height: 2px; - left: calc(50.00000000000002% - 20px / 2); - position: absolute; - top: calc(37.50000000000002% - 2px / 2); - width: 20px; - border-radius: 10px; - background-color: rgb(179, 179, 179); - z-index: 0; -`; - -export const HamburgerLine2 = styled.div` - height: 2px; - left: calc(50.00000000000002% - 20px / 2); - position: absolute; - top: calc(62.50000000000002% - 2px / 2); - width: 20px; - border-radius: 10px; - background-color: rgb(179, 179, 179); - z-index: 0; -`; - -export const NavOpen = styled.div` - flex-direction: column; - align-items: center; - position: fixed; - inset: 0px; - top: 63px; - background-color: #fff; - gap: 33px; - padding-top: 32px; - z-index: 100; - transition: transform 0.2s ease-in; - display: flex; - transform-origin: top; -`; - -export const MobileMenu = styled.div` - display: flex; - flex-direction: column; - width: 100%; - @media (min-width: 810px) { - display: none; - } -`; diff --git a/packages/twenty-website/src/app/_components/ui/theme/background.ts b/packages/twenty-website/src/app/_components/ui/theme/background.ts deleted file mode 100644 index f5597fbff0..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/background.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Color, rgba } from './colors'; - -export const Background = { - primary: Color.white, - secondary: Color.gray10, - tertiary: Color.gray20, - transparent: { - strong: rgba(Color.gray60, 0.16), - medium: rgba(Color.gray60, 0.08), - light: rgba(Color.gray60, 0.06), - lighter: rgba(Color.gray60, 0.04), - }, -}; diff --git a/packages/twenty-website/src/app/_components/ui/theme/border.ts b/packages/twenty-website/src/app/_components/ui/theme/border.ts deleted file mode 100644 index 84b02f4aee..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/border.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Color } from './colors'; - -const common = { - radius: { - xs: '2px', - sm: '4px', - md: '8px', - xl: '20px', - pill: '999px', - rounded: '100%', - }, -}; - -export const Border = { - color: { - plain: Color.gray60, - }, - ...common, -}; diff --git a/packages/twenty-website/src/app/_components/ui/theme/colors.ts b/packages/twenty-website/src/app/_components/ui/theme/colors.ts deleted file mode 100644 index dac86ad2b5..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/colors.ts +++ /dev/null @@ -1,24 +0,0 @@ -import hexRgb from 'hex-rgb'; - -export const mainColors = { - white: '#ffffff', -}; - -export const secondaryColors = { - gray60: '#141414', - gray50: '#474747', - gray40: '#818181', - gray30: '#b3b3b3', - gray20: '#f1f1f1', - gray10: '#fafafa', -}; - -export const Color = { - ...mainColors, - ...secondaryColors, -}; - -export const rgba = (hex: string, alpha: number) => { - const rgb = hexRgb(hex, { format: 'array' }).slice(0, -1).join(','); - return `rgba(${rgb},${alpha})`; -}; diff --git a/packages/twenty-website/src/app/_components/ui/theme/font.ts b/packages/twenty-website/src/app/_components/ui/theme/font.ts deleted file mode 100644 index f2628f10e2..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/font.ts +++ /dev/null @@ -1,14 +0,0 @@ -export const Font = { - size: { - xs: '0.875rem', - sm: '1rem', - base: '1.125rem', - lg: '1.25rem', - xl: '1.5rem', - }, - weight: { - regular: 400, - medium: 500, - }, - family: 'Inter, sans-serif', -}; diff --git a/packages/twenty-website/src/app/_components/ui/theme/icon.ts b/packages/twenty-website/src/app/_components/ui/theme/icon.ts deleted file mode 100644 index ca4170250b..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/icon.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const Icon = { - size: { - sm: 14, - md: 16, - lg: 20, - xl: 40, - }, - stroke: { - sm: 1.6, - md: 2, - lg: 2.5, - }, -}; diff --git a/packages/twenty-website/src/app/_components/ui/theme/mq.ts b/packages/twenty-website/src/app/_components/ui/theme/mq.ts deleted file mode 100644 index 7aefe8ba84..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/mq.ts +++ /dev/null @@ -1,7 +0,0 @@ -import facepaint from 'facepaint'; - -const breakpoints = [810, 1200]; - -const mq = facepaint(breakpoints.map((bp) => `@media (min-width: ${bp}px)`)); - -export default mq; diff --git a/packages/twenty-website/src/app/_components/ui/theme/text.ts b/packages/twenty-website/src/app/_components/ui/theme/text.ts deleted file mode 100644 index 05dcf3df6b..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/text.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Color } from './colors'; - -export const Text = { - color: { - primary: Color.gray60, - secondary: Color.gray50, - tertiary: Color.gray40, - quarternary: Color.gray30, - Inverted: Color.white, - }, - lineHeight: { - lg: 1.5, - md: 1.2, - }, - - iconSizeMedium: 16, - iconSizeSmall: 14, - - iconStrikeLight: 1.6, - iconStrikeMedium: 2, - iconStrikeBold: 2.5, -}; diff --git a/packages/twenty-website/src/app/_components/ui/theme/theme.ts b/packages/twenty-website/src/app/_components/ui/theme/theme.ts deleted file mode 100644 index 23fe85b477..0000000000 --- a/packages/twenty-website/src/app/_components/ui/theme/theme.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Background } from '@/app/_components/ui/theme/background'; -import { Border } from '@/app/_components/ui/theme/border'; -import { Color } from '@/app/_components/ui/theme/colors'; -import { Font } from '@/app/_components/ui/theme/font'; -import { Icon } from '@/app/_components/ui/theme/icon'; -import { Text } from '@/app/_components/ui/theme/text'; - -export const Theme = { - color: Color, - border: Border, - background: Background, - text: Text, - spacingMultiplicator: 4, - icon: Icon, - font: Font, - spacing: (...args: number[]) => - args.map((multiplicator) => `${multiplicator * 4}px`).join(' '), -}; diff --git a/packages/twenty-website/src/app/_server-utils/get-posts.tsx b/packages/twenty-website/src/app/_server-utils/get-posts.tsx deleted file mode 100644 index 9815cef34d..0000000000 --- a/packages/twenty-website/src/app/_server-utils/get-posts.tsx +++ /dev/null @@ -1,172 +0,0 @@ -import fs from 'fs'; -import { compileMDX } from 'next-mdx-remote/rsc'; -import path from 'path'; -import { type ReactElement } from 'react'; -import gfm from 'remark-gfm'; - -import ArticleEditContent from '@/app/_components/ui/layout/articles/ArticleEditContent'; -import ArticleLink from '@/app/_components/ui/layout/articles/ArticleLink'; -import ArticlePropsTable from '@/app/_components/ui/layout/articles/ArticlePropsTable'; -import ArticleTab from '@/app/_components/ui/layout/articles/ArticleTab'; -import ArticleTable from '@/app/_components/ui/layout/articles/ArticleTable'; -import ArticleTabs from '@/app/_components/ui/layout/articles/ArticleTabs'; -import ArticleWarning from '@/app/_components/ui/layout/articles/ArticleWarning'; -import SandpackEditor from '@/app/_components/ui/layout/articles/SandpackEditor'; - -interface ItemInfo { - title: string; - position?: number; - path: string; - type: 'file' | 'directory'; - icon?: string; - info?: string; - image?: string; -} - -export interface FileContent { - content: ReactElement; - itemInfo: ItemInfo; -} - -export interface Directory { - [key: string]: FileContent | Directory | ItemInfo; - itemInfo: ItemInfo; -} - -async function getFiles( - filePath: string, - basePath: string, - position = 0, -): Promise { - const entries = fs.readdirSync(filePath, { withFileTypes: true }); - - const urlpath = path.toString().split(basePath); - const pathName = urlpath.length > 1 ? urlpath[1] : path.basename(filePath); - - const directory: Directory = { - itemInfo: { - title: path.basename(filePath), - position, - type: 'directory', - path: pathName, - }, - }; - - for (const entry of entries) { - if (entry.isDirectory()) { - directory[entry.name] = await getFiles( - path.join(filePath, entry.name), - basePath, - position++, - ); - } else if (entry.isFile() && path.extname(entry.name) === '.mdx') { - const { content, frontmatter } = await compileMDXFile( - path.join(filePath, entry.name), - ); - directory[entry.name] = { - content, - itemInfo: { - ...frontmatter, - type: 'file', - path: pathName + '/' + entry.name.replace(/\.mdx$/, ''), - }, - }; - } - } - - return directory; -} - -async function parseFrontMatterAndCategory( - directory: Directory, - dirPath: string, -): Promise { - const parsedDirectory: Directory = { - itemInfo: directory.itemInfo, - }; - - for (const entry in directory) { - if (entry !== 'itemInfo' && directory[entry] instanceof Object) { - parsedDirectory[entry] = await parseFrontMatterAndCategory( - directory[entry] as Directory, - path.join(dirPath, entry), - ); - } - } - - const categoryPath = path.join(dirPath, '_category_.json'); - - if (fs.existsSync(categoryPath)) { - const categoryJson: ItemInfo = JSON.parse( - fs.readFileSync(categoryPath, 'utf8'), - ); - parsedDirectory.itemInfo = categoryJson; - } - - return parsedDirectory; -} - -export async function compileMDXFile(filePath: string) { - const fileContent = fs.readFileSync(filePath, 'utf8'); - const compiled = await compileMDX<{ title: string; position?: number }>({ - source: fileContent, - components: { - ArticleWarning(properties) { - return ; - }, - ArticleEditContent(properties) { - return ; - }, - ArticleLink(properties) { - return ; - }, - ArticleTabs(properties) { - return ; - }, - ArticleTab(properties) { - return ; - }, - ArticleTable(properties) { - return ; - }, - ArticlePropsTable(properties) { - return ; - }, - SandpackEditor(properties) { - return ; - }, - }, - options: { - parseFrontmatter: true, - mdxOptions: { - development: process.env.NODE_ENV === 'development', - remarkPlugins: [gfm], - }, - }, - }); - - return compiled; -} - -export async function getPosts(basePath: string): Promise { - const postsDirectory = path.join(process.cwd(), basePath); - const directory = await getFiles(postsDirectory, basePath); - return parseFrontMatterAndCategory(directory, postsDirectory); -} - -export async function getPost( - slug: string, - basePath: string, -): Promise { - const postsDirectory = path.join(process.cwd(), basePath); - const filePath = path.join(postsDirectory, `${slug}.mdx`); - - if (!fs.existsSync(filePath)) { - return null; - } - const { content, frontmatter } = await compileMDXFile(filePath); - return { - content, - itemInfo: { ...frontmatter, type: 'file', path: slug }, - }; -} diff --git a/packages/twenty-website/src/app/api/contributors/[slug]/og.png/route.tsx b/packages/twenty-website/src/app/api/contributors/[slug]/og.png/route.tsx deleted file mode 100644 index d6f67aa96c..0000000000 --- a/packages/twenty-website/src/app/api/contributors/[slug]/og.png/route.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { format } from 'date-fns'; -import { ImageResponse } from 'next/og'; - -import { getContributorActivity } from '@/app/(public)/contributors/utils/get-contributor-activity'; -import { - backgroundImage, - container, - contributorInfo, - contributorInfoBox, - contributorInfoContainer, - contributorInfoStats, - contributorInfoTitle, - infoSeparator, - profileContainer, - profileContributionHeader, - profileInfoContainer, - profileUsernameHeader, - styledContributorAvatar, -} from '@/app/api/contributors/[slug]/og.png/style'; - -const GABARITO_FONT_CDN_URL = - 'https://fonts.cdnfonts.com/s/105143/Gabarito-Medium-BF651cdf1f3f18e.woff'; - -const getGabarito = async () => { - const fontGabarito = await fetch(GABARITO_FONT_CDN_URL).then((res) => - res.arrayBuffer(), - ); - - return fontGabarito; -}; - -export async function GET(request: Request) { - try { - const url = request.url; - const splitUrl = url.split('/'); - const usernameIndex = - splitUrl.findIndex((part) => part === 'contributors') + 1; - const username = splitUrl[usernameIndex]; - - const contributorActivity = await getContributorActivity(username); - if (contributorActivity) { - const { - firstContributionAt, - mergedPRsCount, - rank, - activeDays, - contributorAvatar, - } = contributorActivity; - - const imageResponse = await new ImageResponse( - ( -
-
-
- -
-

@{username} x Twenty

-

- Since {format(new Date(firstContributionAt), 'MMMM yyyy')} -

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

Merged PR

-

{mergedPRsCount}

-
-
-
-
-
-

Ranking

-

{rank}%

-
-
-
-
-
-

Active Days

-

{activeDays}

-
-
-
-
- ), - { - width: 1200, - height: 630, - fonts: [ - { - name: 'Gabarito', - data: await getGabarito(), - style: 'normal', - }, - ], - }, - ); - return imageResponse; - } - } catch (error) { - return new Response(`error: ${error}`, { - status: 500, - }); - } -} diff --git a/packages/twenty-website/src/app/api/contributors/[slug]/og.png/style.ts b/packages/twenty-website/src/app/api/contributors/[slug]/og.png/style.ts deleted file mode 100644 index f79bedb741..0000000000 --- a/packages/twenty-website/src/app/api/contributors/[slug]/og.png/style.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { type CSSProperties } from 'react'; - -const BACKGROUND_IMAGE_URL = - 'https://framerusercontent.com/images/nqEmdwe7yDXNsOZovuxG5zvj2E.png'; - -export const container: CSSProperties = { - display: 'flex', - flexDirection: 'column', - width: '1200px', - height: '630px', - alignItems: 'center', - justifyContent: 'center', - backgroundColor: 'white', - fontFamily: 'Gabarito', -}; - -export const backgroundImage: CSSProperties = { - position: 'absolute', - width: '1250px', - height: '850px', - transform: 'rotate(-7deg)', - opacity: '0.8', - backgroundImage: ` - linear-gradient( - 158.4deg, - rgba(255, 255, 255, 0.8) 30.69%, - #FFFFFF 35.12%, - rgba(255, 255, 255, 0.8) 60.27%, - rgba(255, 255, 255, 0.64) 38.88% - ), - url(${BACKGROUND_IMAGE_URL})`, -}; - -export const profileContainer: CSSProperties = { - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-between', - width: '970px', - height: '134px', - margin: '0px 0px 55px', -}; - -export const styledContributorAvatar = { - display: 'flex', - width: '134px', - height: '134px', - margin: '0px', - border: '3px solid #141414', - borderRadius: '16px', -}; - -export const profileInfoContainer: CSSProperties = { - display: 'flex', - flexDirection: 'column', - gap: '8px', - alignItems: 'center', - justifyContent: 'center', -}; - -export const profileUsernameHeader: CSSProperties = { - margin: '0px', - fontSize: '39px', - fontWeight: '700', - color: '#141414', - fontFamily: 'Gabarito', -}; - -export const profileContributionHeader: CSSProperties = { - margin: '0px', - color: '#818181', - fontSize: '27px', - fontWeight: '400', -}; - -export const contributorInfoContainer: CSSProperties = { - border: '3px solid #141414', - borderRadius: '12px', - display: 'flex', - flexDirection: 'row', - justifyContent: 'space-around', - width: '970px', - height: '209px', - backgroundColor: '#F1F1F1', -}; - -export const contributorInfoBox: CSSProperties = { - flex: 1, - display: 'flex', - flexDirection: 'row', - justifyContent: 'center', - alignItems: 'center', - position: 'relative', -}; - -export const contributorInfo: CSSProperties = { - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - margin: '32px', - gap: '16px', -}; - -export const contributorInfoTitle = { - color: '#B3B3B3', - margin: '0px', - fontWeight: '500', - fontSize: '33px', -}; - -export const contributorInfoStats = { - color: '#474747', - margin: '0px', - fontWeight: '700', - fontSize: '55px', -}; - -export const infoSeparator: CSSProperties = { - position: 'absolute', - right: 0, - display: 'flex', - width: '2px', - height: '120px', - backgroundColor: '#141414', -}; diff --git a/packages/twenty-website/src/app/api/contributors/contributorStats/[slug]/route.tsx b/packages/twenty-website/src/app/api/contributors/contributorStats/[slug]/route.tsx deleted file mode 100644 index c58b81ac42..0000000000 --- a/packages/twenty-website/src/app/api/contributors/contributorStats/[slug]/route.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { getContributorActivity } from '@/app/(public)/contributors/utils/get-contributor-activity'; -import { executePartialSync } from '@/github/execute-partial-sync'; - -export const dynamic = 'force-dynamic'; - -export async function GET(request: Request) { - try { - const url = request.url; - - const username = url.split('/')?.pop() || ''; - - await executePartialSync(); - - const contributorActivity = await getContributorActivity(username); - - if (contributorActivity) { - const mergedPRsCount = contributorActivity.mergedPRsCount; - const rank = contributorActivity.rank; - return Response.json({ mergedPRsCount, rank }); - } - } catch (error: any) { - return new Response(`Contributor stats error: ${error?.message}`, { - status: 500, - }); - } -} diff --git a/packages/twenty-website/src/app/api/enterprise/activate/route.ts b/packages/twenty-website/src/app/api/enterprise/activate/route.ts deleted file mode 100644 index eb629cb6ca..0000000000 --- a/packages/twenty-website/src/app/api/enterprise/activate/route.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { signEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; - -export const dynamic = 'force-dynamic'; - -export async function GET(request: Request) { - try { - const url = new URL(request.url); - const sessionId = url.searchParams.get('session_id'); - - if (!sessionId) { - return new Response( - JSON.stringify({ error: 'Missing session_id parameter' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const stripe = getStripeClient(); - - const session = await stripe.checkout.sessions.retrieve(sessionId, { - expand: ['subscription', 'customer'], - }); - - if (session.payment_status !== 'paid') { - return new Response( - JSON.stringify({ error: 'Payment not completed' }), - { status: 402, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const subscription = session.subscription; - - if (!subscription || typeof subscription === 'string') { - return new Response( - JSON.stringify({ error: 'Subscription not found' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const customer = session.customer; - const licensee = - customer && typeof customer !== 'string' && !customer.deleted - ? (customer.name ?? customer.email ?? 'Unknown') - : 'Unknown'; - - const enterpriseKey = signEnterpriseKey(subscription.id, licensee); - - return Response.json({ - enterpriseKey, - licensee, - subscriptionId: subscription.id, - }); - } catch (error: unknown) { - const message = - error instanceof Error ? error.message : 'Unknown error'; - - return new Response( - JSON.stringify({ error: `Activation error: ${message}` }), - { status: 500, headers: { 'Content-Type': 'application/json' } }, - ); - } -} diff --git a/packages/twenty-website/src/app/api/enterprise/checkout/route.ts b/packages/twenty-website/src/app/api/enterprise/checkout/route.ts deleted file mode 100644 index 302a95f39f..0000000000 --- a/packages/twenty-website/src/app/api/enterprise/checkout/route.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { - getEnterprisePriceId, - getStripeClient, -} from '@/shared/enterprise/stripe-client'; - -export const dynamic = 'force-dynamic'; - -export async function POST(request: Request) { - try { - const stripe = getStripeClient(); - const body = await request.json(); - const billingInterval = body.billingInterval === 'yearly' ? 'yearly' : 'monthly'; - const priceId = getEnterprisePriceId(billingInterval); - const successUrl = - body.successUrl ?? - `${process.env.NEXT_PUBLIC_WEBSITE_URL}/enterprise/activate?session_id={CHECKOUT_SESSION_ID}`; - - - const session = await stripe.checkout.sessions.create({ - mode: 'subscription', - line_items: [ - { - price: priceId, - quantity: body.seatCount ?? 1, - }, - ], - success_url: successUrl, - subscription_data: { - trial_period_days: 30, - metadata: { - source: 'enterprise-self-hosted', - }, - }, - }); - - return Response.json({ url: session.url }); - } catch (error: unknown) { - console.error(error); - const message = - error instanceof Error ? error.message : 'Unknown error'; - - return new Response( - JSON.stringify({ error: `Checkout error: ${message}` }), - { status: 500, headers: { 'Content-Type': 'application/json' } }, - ); - } -} diff --git a/packages/twenty-website/src/app/api/enterprise/portal/route.ts b/packages/twenty-website/src/app/api/enterprise/portal/route.ts deleted file mode 100644 index f9e4ac3a1a..0000000000 --- a/packages/twenty-website/src/app/api/enterprise/portal/route.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { verifyEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { - getStripeClient -} from '@/shared/enterprise/stripe-client'; - -export const dynamic = 'force-dynamic'; - -export async function POST(request: Request) { - try { - const body = await request.json(); - const { enterpriseKey, returnUrl } = body; - - if (!enterpriseKey || typeof enterpriseKey !== 'string') { - return new Response( - JSON.stringify({ error: 'Missing enterpriseKey' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const payload = verifyEnterpriseKey(enterpriseKey); - - if (!payload) { - return new Response( - JSON.stringify({ error: 'Invalid enterprise key' }), - { status: 403, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const stripe = getStripeClient(); - const subscription = await stripe.subscriptions.retrieve(payload.sub); - - const customerId = - typeof subscription.customer === 'string' - ? subscription.customer - : subscription.customer.id; - - const frontendUrl = process.env.NEXT_PUBLIC_WEBSITE_URL; - const fullReturnUrl = returnUrl - ? `${frontendUrl}${returnUrl}` - : frontendUrl; - - const session = await stripe.billingPortal.sessions.create({ - customer: customerId, - return_url: fullReturnUrl, - }); - - return Response.json({ url: session.url }); - } catch (error: unknown) { - const message = - error instanceof Error ? error.message : 'Unknown error'; - - return new Response( - JSON.stringify({ error: `Portal error: ${message}` }), - { status: 500, headers: { 'Content-Type': 'application/json' } }, - ); - } -} diff --git a/packages/twenty-website/src/app/api/enterprise/seats/route.ts b/packages/twenty-website/src/app/api/enterprise/seats/route.ts deleted file mode 100644 index 367bcd114d..0000000000 --- a/packages/twenty-website/src/app/api/enterprise/seats/route.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { verifyEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; - -export const dynamic = 'force-dynamic'; - -export async function POST(request: Request) { - try { - const body = await request.json(); - const { enterpriseKey, seatCount } = body; - - if (!enterpriseKey || typeof enterpriseKey !== 'string') { - return new Response( - JSON.stringify({ error: 'Missing enterpriseKey' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - if (typeof seatCount !== 'number' || seatCount < 1) { - return new Response( - JSON.stringify({ error: 'Invalid seatCount' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const payload = verifyEnterpriseKey(enterpriseKey); - - if (!payload) { - return new Response( - JSON.stringify({ error: 'Invalid enterprise key' }), - { status: 403, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const stripe = getStripeClient(); - - const subscription = await stripe.subscriptions.retrieve(payload.sub); - - const NON_UPDATABLE_STATUSES = [ - 'canceled', - 'incomplete_expired', - ]; - - if ( - NON_UPDATABLE_STATUSES.includes(subscription.status) || - subscription.cancel_at_period_end - ) { - return Response.json({ - success: false, - reason: 'Subscription is canceled or scheduled for cancellation', - seatCount: subscription.items.data[0]?.quantity ?? 0, - subscriptionId: payload.sub, - }); - } - - if (!subscription.items.data[0]) { - return new Response( - JSON.stringify({ error: 'No subscription item found' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const subscriptionItemId = subscription.items.data[0].id; - - await stripe.subscriptions.update(payload.sub, { - items: [ - { - id: subscriptionItemId, - quantity: seatCount, - }, - ], - proration_behavior: 'create_prorations', - }); - - return Response.json({ - success: true, - seatCount, - subscriptionId: payload.sub, - }); - } catch (error: unknown) { - console.error(error); - const message = - error instanceof Error ? error.message : 'Unknown error'; - - return new Response( - JSON.stringify({ error: `Seat update error: ${message}` }), - { status: 500, headers: { 'Content-Type': 'application/json' } }, - ); - } -} diff --git a/packages/twenty-website/src/app/api/enterprise/status/route.ts b/packages/twenty-website/src/app/api/enterprise/status/route.ts deleted file mode 100644 index fb4006df59..0000000000 --- a/packages/twenty-website/src/app/api/enterprise/status/route.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { verifyEnterpriseKey } from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; - -export const dynamic = 'force-dynamic'; - -export async function POST(request: Request) { - try { - const body = await request.json(); - const { enterpriseKey } = body; - - if (!enterpriseKey || typeof enterpriseKey !== 'string') { - return new Response( - JSON.stringify({ error: 'Missing enterpriseKey' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const payload = verifyEnterpriseKey(enterpriseKey); - - if (!payload) { - return new Response( - JSON.stringify({ error: 'Invalid enterprise key' }), - { status: 403, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const stripe = getStripeClient(); - const subscription = await stripe.subscriptions.retrieve(payload.sub); - - const rawCancelAt = subscription.cancel_at; - const rawCancelAtPeriodEnd = subscription.cancel_at_period_end; - const rawCurrentPeriodEnd = (subscription as any).current_period_end as - | number - | null; - - const effectiveCancelAt = - rawCancelAt ?? (rawCancelAtPeriodEnd ? rawCurrentPeriodEnd : null); - - const isCancellationScheduled = - subscription.status !== 'canceled' && effectiveCancelAt !== null; - - return Response.json({ - subscriptionId: subscription.id, - status: subscription.status, - cancelAt: effectiveCancelAt, - currentPeriodEnd: rawCurrentPeriodEnd, - isCancellationScheduled, - }); - } catch (error: unknown) { - const message = - error instanceof Error ? error.message : 'Unknown error'; - - return new Response( - JSON.stringify({ error: `Status error: ${message}` }), - { status: 500, headers: { 'Content-Type': 'application/json' } }, - ); - } -} diff --git a/packages/twenty-website/src/app/api/enterprise/validate/route.ts b/packages/twenty-website/src/app/api/enterprise/validate/route.ts deleted file mode 100644 index c020e9ed3f..0000000000 --- a/packages/twenty-website/src/app/api/enterprise/validate/route.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { - signValidityToken, - verifyEnterpriseKey, -} from '@/shared/enterprise/enterprise-jwt'; -import { getStripeClient } from '@/shared/enterprise/stripe-client'; - -export const dynamic = 'force-dynamic'; - -export async function POST(request: Request) { - try { - const body = await request.json(); - const { enterpriseKey } = body; - - if (!enterpriseKey || typeof enterpriseKey !== 'string') { - return new Response( - JSON.stringify({ error: 'Missing enterpriseKey' }), - { status: 400, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const payload = verifyEnterpriseKey(enterpriseKey); - - if (!payload) { - return new Response( - JSON.stringify({ error: 'Invalid enterprise key' }), - { status: 403, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const stripe = getStripeClient(); - - const subscription = await stripe.subscriptions.retrieve(payload.sub); - - const activeStatuses = ['active', 'trialing']; - - if (!activeStatuses.includes(subscription.status)) { - return new Response( - JSON.stringify({ - error: 'Subscription is not active', - status: subscription.status, - }), - { status: 403, headers: { 'Content-Type': 'application/json' } }, - ); - } - - const rawCancelAt = subscription.cancel_at; - const rawCancelAtPeriodEnd = subscription.cancel_at_period_end; - const rawCurrentPeriodEnd = (subscription as { current_period_end?: number }) - .current_period_end; - const effectiveCancelAt = - rawCancelAt ?? - (rawCancelAtPeriodEnd && rawCurrentPeriodEnd ? rawCurrentPeriodEnd : null); - - const validityToken = signValidityToken(payload.sub, { - subscriptionCancelAt: effectiveCancelAt, - }); - - return Response.json({ - validityToken, - licensee: payload.licensee, - subscriptionId: payload.sub, - subscriptionStatus: subscription.status, - }); - } catch (error: unknown) { - const message = - error instanceof Error ? error.message : 'Unknown error'; - - return new Response( - JSON.stringify({ error: `Validation error: ${message}` }), - { status: 500, headers: { 'Content-Type': 'application/json' } }, - ); - } -} diff --git a/packages/twenty-website/src/app/api/github-stars/route.tsx b/packages/twenty-website/src/app/api/github-stars/route.tsx deleted file mode 100644 index 39adfad7ec..0000000000 --- a/packages/twenty-website/src/app/api/github-stars/route.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { desc } from 'drizzle-orm'; - -import { findOne } from '@/database/database'; -import { githubStarsModel } from '@/database/model'; -import { formatNumberOfStars } from '@/shared-utils/formatNumberOfStars'; - -export const dynamic = 'force-dynamic'; - -export async function GET() { - try { - const githubStars = await findOne( - githubStarsModel, - desc(githubStarsModel.timestamp), - ); - - const githubNumberOfStars = formatNumberOfStars( - githubStars[0].numberOfStars, - ); - - return Response.json({ githubNumberOfStars }); - } catch (error: any) { - return new Response(`Github stars error: ${error?.message}`, { - status: 500, - }); - } -} diff --git a/packages/twenty-website/src/app/api/keystatic/[...params]/route.ts b/packages/twenty-website/src/app/api/keystatic/[...params]/route.ts deleted file mode 100644 index 0378fe5a82..0000000000 --- a/packages/twenty-website/src/app/api/keystatic/[...params]/route.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { makeRouteHandler } from '@keystatic/next/route-handler'; -import config from '../../../../../keystatic.config'; - -const { GET: _GET, POST: _POST } = makeRouteHandler({ config }); - -function rewriteUrl(request: Request) { - const forwardedHost = request.headers.get('x-forwarded-host'); - const forwardedProto = request.headers.get('x-forwarded-proto'); - const forwardedPort = request.headers.get('x-forwarded-port'); - - if (forwardedHost && forwardedProto) { - const url = new URL(request.url); - - url.hostname = forwardedHost; - url.protocol = forwardedProto; - url.port = forwardedPort ?? ''; - - return new Request(url, request); - } - - return request; -} - -export function GET(request: Request) { - return _GET(rewriteUrl(request)); -} - -export function POST(request: Request) { - return _POST(rewriteUrl(request)); -} diff --git a/packages/twenty-website/src/app/api/releases/route.tsx b/packages/twenty-website/src/app/api/releases/route.tsx deleted file mode 100644 index 4c090599cc..0000000000 --- a/packages/twenty-website/src/app/api/releases/route.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { desc } from 'drizzle-orm'; - -import { getGithubReleaseDateFromReleaseNote } from '@/app/(public)/releases/utils/get-github-release-date-from-release-note'; -import { getReleases } from '@/app/(public)/releases/utils/get-releases'; -import { getVisibleReleases } from '@/app/(public)/releases/utils/get-visible-releases'; -import { findAll } from '@/database/database'; -import { type GithubReleases, githubReleasesModel } from '@/database/model'; - -export const dynamic = 'force-dynamic'; - -export async function GET() { - try { - const githubReleases = (await findAll( - githubReleasesModel, - desc(githubReleasesModel.publishedAt), - )) as GithubReleases[]; - - const latestGithubRelease = githubReleases[0]; - const releaseNotes = await getReleases(); - - const visibleReleasesNotes = getVisibleReleases( - releaseNotes, - latestGithubRelease.tagName, - ); - - const formattedReleasesNotes = visibleReleasesNotes.map((releaseNote) => { - const updatedContent = releaseNote.content.replace( - /!\[(.*?)\]\((\/images\/.*?)\)/g, - (match, altText, imagePath) => { - return `![${altText}](https://twenty.com${imagePath})`; - }, - ); - - return { - ...releaseNote, - content: updatedContent, - publishedAt: getGithubReleaseDateFromReleaseNote( - githubReleases, - releaseNote.release, - releaseNote.date, - ), - }; - }); - - return Response.json(formattedReleasesNotes); - } catch (error: any) { - return new Response(`Github releases error: ${error?.message}`, { - status: 500, - }); - } -} diff --git a/packages/twenty-website/src/content/jobs/business-intern.md b/packages/twenty-website/src/content/jobs/business-intern.md deleted file mode 100644 index 63b97093ac..0000000000 --- a/packages/twenty-website/src/content/jobs/business-intern.md +++ /dev/null @@ -1,40 +0,0 @@ -# Founders Associate (Intern) - -📮 **Apply:** Send LinkedIn or resume + a few words, by email to founders(at)twenty.com -📍 **Location:** Paris, France (on-site or hybrid, no full remote) -💰 **Salary:** 1.5k€/month + meal/transporation - - -## Product - -Creating a good CRM is hard because it's a balancing act. For each business, the requirements seem straightforward, yet everyone's needs are distinct. The result is a CRM that's either too basic, or one that's attempting to be a jack-of-all-trades but ending up as a master of none. - -At first, Twenty looks like most CRMs you already know: you can track deals, organize contacts, manage tasks and notes. But what sets it apart is our approach to extensibility. We are building an open platform that provides the building blocks for you to solve your unique business problems. - -We value universal principles and common patterns over feature lists. And Open Source is the bedrock of our approach, ensuring that Twenty evolves with its community, for its community. - -## Company - -Twenty is an Open Source and Public Benefits Company. - -- One of the fastest growing open source project ever launched with 200+ contributors and 10k+ stars in less than 12 months -- Backed by YC and some of the best investors/founders in the world -- Operating in a the biggest software market (crm). -- Engineering-driven culture, with a passion for craft and quality - -Android, Wordpress or VScode all lead their respective market by a large margin not because they came first but because Open Source is the best second-mover advantage in large markets. - -We're betting that one day a large Open Source software will have greater usage than all proprietary CRMs combined. Given that we're #1, we're in a good position to take that lead. But the road ahead will be long and steep! - -## Role - -**You:** -- Entrepreneurial and owner mindset -- Passionate, eager to learn -- Studying at a top school and/or you can show great side-projects - -**Day-to-day:** -This is very versatile role and the specific tasks will depend on your interests and skills. Example tasks include: -- Building small data pipelines and dashboards with Metabase -- Help setup business processes like product-led sales workflows -- Support customers and work hand-in-hand with eng team to fix their issues \ No newline at end of file diff --git a/packages/twenty-website/src/content/jobs/senior-software-eng.md b/packages/twenty-website/src/content/jobs/senior-software-eng.md deleted file mode 100644 index 04cf165373..0000000000 --- a/packages/twenty-website/src/content/jobs/senior-software-eng.md +++ /dev/null @@ -1,50 +0,0 @@ -# Senior Software Engineer - -📮 **Apply:** Send LinkedIn or resume + a few words to founders(at)twenty.com -📍 **Location:** Paris, France (on-site or hybrid, no full remote) -💰 **Salary range:** €65k-75k + 0,2%-0,3% equity -🏝️ **Benefits:** ~35 PTO days + 100% health insurance + 50% transportation - -## Role - -**You:** -- 5+ years experience in a startup or leading tech company -- Open to working full-stack, with a strong expertise on either side -- Care about Open Source, enjoys interacting with the community -- Entrepreneurial and owner mindset - -**Example tasks:** -- Designing and implementing a permission system that support row-level and column-level conditions + that's highly efficient + intuitive for users -- Designing and implementing a mechanism for people to build full-fledge apps that would still run securely in our multi-tenant cloud -- Designing and implementing a cross-platform layout builder to let users create their own page layout - -**Stack:** -- Backend: Typescript, Node, NestJS, GraphQL -- Frontend: Typescript, React, Apollo -- AWS, Pulumi, Postgres, Redis - -## Product - -Creating a good CRM is hard because it's a balancing act. For each business, the requirements seem straightforward, yet everyone's needs are distinct. The result is a CRM that's either too basic, or one that's attempting to be a jack-of-all-trades but ending up as a master of none. - -At first, Twenty looks like most CRMs you already know: you can track deals, organize contacts, manage tasks and notes. But what sets it apart is our approach to extensibility. We are building an open platform that provides the building blocks for you to solve your unique business problems. - -We value universal principles and common patterns over feature lists. And Open Source is the bedrock of our approach, ensuring that Twenty evolves with its community, for its community. - -## Company - -Twenty is an Open Source + Public Benefits Company. - -- One of the fastest growing open source project ever launched with 200+ contributors and 10k+ stars in less than 12 months -- Backed by YC and some of the best investors/founders in the world -- Operating in a the biggest market in software (CRM) -- Engineering-driven culture, with a passion for craft and quality - -Android, WordPress or VSCode all lead their respective market because being Open Source is the best second-mover advantage. Our bet is that the same shift will happen to the CRM Market. And given that we're #1, we should be in a good position to take the lead. But the road ahead will be long and steep! - -## Apply - -Send LinkedIn or resume + a few words, by email to founders(at)twenty.com - -We reply quickly and to all candidates. If we think it could be a fit, we'll reply by email with a link for you to book a 30 minutes interview (mostly non-technical), eventually followed by 2 hours technical interview (coding + architecture). - diff --git a/packages/twenty-website/src/content/jobs/software-eng-intern.md b/packages/twenty-website/src/content/jobs/software-eng-intern.md deleted file mode 100644 index 2d4256f20c..0000000000 --- a/packages/twenty-website/src/content/jobs/software-eng-intern.md +++ /dev/null @@ -1,45 +0,0 @@ -# Software Engineer (Intern) - -📮 **Apply:** Send LinkedIn or resume + a few words, by email to founders(at)twenty.com -📍 **Location:** Paris, France (on-site or hybrid, no full remote) -💰 **Salary:** 1.5k€/month + meal/transporation - - -## Product - -Creating a good CRM is hard because it's a balancing act. For each business, the requirements seem straightforward, yet everyone's needs are distinct. The result is a CRM that's either too basic, or one that's attempting to be a jack-of-all-trades but ending up as a master of none. - -At first, Twenty looks like most CRMs you already know: you can track deals, organize contacts, manage tasks and notes. But what sets it apart is our approach to extensibility. We are building an open platform that provides the building blocks for you to solve your unique business problems. - -We value universal principles and common patterns over feature lists. And Open Source is the bedrock of our approach, ensuring that Twenty evolves with its community, for its community. - -## Company - -Twenty is an Open Source and Public Benefits Company. - -- One of the fastest growing open source project ever launched with 200+ contributors and 10k+ stars in less than 12 months -- Backed by YC and some of the best investors/founders in the world -- Operating in a the biggest software market ($70Bn+ annual spend) -- Engineering-driven culture, with a passion for craft and quality - -Android, Wordpress or VScode all lead their respective market by a large margin not because they came first but because Open Source is the best second-mover advantage in large markets. - -We're betting that one day a large Open Source software will have greater usage than all proprietary CRMs combined. Given that we're #1, we're in a good position to take that lead. But the road ahead will be long and steep! - -## Role - -**You:** -- Entrepreneurial and owner mindset -- Some experience with Typescript would be great -- Passionate, eager to learn - -**Example tasks:** -- You would start by tackling the kind of issues that are labelled "good first issues" on our repo -- Then you'll expand your scope to bigger end-to-end features, for example building a small chrome extension or solving an issue labelled "good for experienced contributors" - -**Stack:** -- Backend: Typescript, Node, NestJS, GraphQL -- Frontend: Typescript, React, Apollo -- AWS, Pulumi, Postgres, Redis - - diff --git a/packages/twenty-website/src/database/database.ts b/packages/twenty-website/src/database/database.ts deleted file mode 100644 index 17d164d9ca..0000000000 --- a/packages/twenty-website/src/database/database.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { drizzle, type PostgresJsDatabase } from 'drizzle-orm/postgres-js'; -import { migrate as postgresMigrate } from 'drizzle-orm/postgres-js/migrator'; -import postgres from 'postgres'; -import * as schema from './schema-postgres'; - -import 'dotenv/config'; - -let pgDb: PostgresJsDatabase; - -if (process.env.DATABASE_PG_URL) { - const pgClient = postgres(`${process.env.DATABASE_PG_URL}`); - pgDb = drizzle(pgClient, { schema, logger: false }); -} - -const migrate = async () => { - await postgresMigrate(pgDb, { - migrationsFolder: './src/database/migrations', - }); -}; - -const findOne = (model: any, orderBy: any) => { - return pgDb.select().from(model).orderBy(orderBy).limit(1).execute(); -}; - -const findAll = (model: any, orderBy?: any) => { - if (orderBy) { - return pgDb.select().from(model).orderBy(orderBy).execute(); - } - return pgDb.select().from(model).execute(); -}; - -const insertMany = async ( - model: any, - data: any, - options?: { - onConflictKey?: string; - onConflictUpdateObject?: any; - onConflictDoNothing?: boolean; - }, -) => { - const query = pgDb.insert(model).values(data); - - if (options?.onConflictUpdateObject) { - if (options?.onConflictKey) { - return query - .onConflictDoUpdate({ - target: [model[options.onConflictKey]], - set: options.onConflictUpdateObject, - }) - .execute(); - } - } - - if (options?.onConflictDoNothing && !options?.onConflictKey) { - return query.onConflictDoNothing().execute(); - } - - if (options?.onConflictKey) { - return query - .onConflictDoNothing({ - target: [model[options.onConflictKey]], - }) - .execute(); - } - return query.execute(); -}; - -export { findAll, findOne, insertMany, migrate }; diff --git a/packages/twenty-website/src/database/drizzle-posgres.config.ts b/packages/twenty-website/src/database/drizzle-posgres.config.ts deleted file mode 100644 index efcdd7aa3d..0000000000 --- a/packages/twenty-website/src/database/drizzle-posgres.config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import "dotenv/config"; -import { type Config } from "drizzle-kit"; - -const dbUrl = new URL(process.env.DATABASE_PG_URL!); - -export default { - schema: "./src/database/schema-postgres.ts", - out: "./src/database/migrations", - dialect: "postgresql", - dbCredentials: { - host: dbUrl.hostname, - port: Number(dbUrl.port), - user: dbUrl.username, - password: dbUrl.password, - database: dbUrl.pathname.slice(1), - }, -} satisfies Config; diff --git a/packages/twenty-website/src/database/init-database.ts b/packages/twenty-website/src/database/init-database.ts deleted file mode 100644 index 440f1b39e1..0000000000 --- a/packages/twenty-website/src/database/init-database.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { migrate } from '@/database/database'; - -export const initDatabase = async () => { - await migrate(); - process.exit(0); -}; - -initDatabase(); diff --git a/packages/twenty-website/src/database/migrate-database.ts b/packages/twenty-website/src/database/migrate-database.ts deleted file mode 100644 index 4627be9395..0000000000 --- a/packages/twenty-website/src/database/migrate-database.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { migrate } from '@/database/database'; - -export const migrateDatabase = async () => { - await migrate(); - process.exit(0); -}; - -migrateDatabase(); diff --git a/packages/twenty-website/src/database/migrations/0000_absent_giant_man.sql b/packages/twenty-website/src/database/migrations/0000_absent_giant_man.sql deleted file mode 100644 index aeb1824e94..0000000000 --- a/packages/twenty-website/src/database/migrations/0000_absent_giant_man.sql +++ /dev/null @@ -1,84 +0,0 @@ -CREATE TABLE IF NOT EXISTS "issueLabels" ( - "issueId" text, - "labelId" text -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "issues" ( - "id" text PRIMARY KEY NOT NULL, - "externalId" text, - "title" text, - "body" text, - "url" text, - "createdAt" text, - "updatedAt" text, - "closedAt" text, - "authorId" text -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "labels" ( - "id" text PRIMARY KEY NOT NULL, - "externalId" text, - "name" text, - "color" text, - "description" text -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "pullRequestLabels" ( - "pullRequestExternalId" text, - "labelId" text -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "pullRequests" ( - "id" text PRIMARY KEY NOT NULL, - "title" text, - "body" text, - "url" text, - "createdAt" text, - "updatedAt" text, - "closedAt" text, - "mergedAt" text, - "authorId" text -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "users" ( - "id" text PRIMARY KEY NOT NULL, - "avatarUrl" text, - "url" text, - "isEmployee" text -); ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "issueLabels" ADD CONSTRAINT "issueLabels_issueId_issues_id_fk" FOREIGN KEY ("issueId") REFERENCES "issues"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "issueLabels" ADD CONSTRAINT "issueLabels_labelId_labels_id_fk" FOREIGN KEY ("labelId") REFERENCES "labels"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "issues" ADD CONSTRAINT "issues_authorId_users_id_fk" FOREIGN KEY ("authorId") REFERENCES "users"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "pullRequestLabels" ADD CONSTRAINT "pullRequestLabels_pullRequestExternalId_pullRequests_id_fk" FOREIGN KEY ("pullRequestExternalId") REFERENCES "pullRequests"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "pullRequestLabels" ADD CONSTRAINT "pullRequestLabels_labelId_labels_id_fk" FOREIGN KEY ("labelId") REFERENCES "labels"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; ---> statement-breakpoint -DO $$ BEGIN - ALTER TABLE "pullRequests" ADD CONSTRAINT "pullRequests_authorId_users_id_fk" FOREIGN KEY ("authorId") REFERENCES "users"("id") ON DELETE no action ON UPDATE no action; -EXCEPTION - WHEN duplicate_object THEN null; -END $$; \ No newline at end of file diff --git a/packages/twenty-website/src/database/migrations/0001_marvelous_eddie_brock.sql b/packages/twenty-website/src/database/migrations/0001_marvelous_eddie_brock.sql deleted file mode 100644 index 92c4f965c0..0000000000 --- a/packages/twenty-website/src/database/migrations/0001_marvelous_eddie_brock.sql +++ /dev/null @@ -1,4 +0,0 @@ -CREATE TABLE IF NOT EXISTS "githubStars" ( - "timestamp" timestamp DEFAULT now() NOT NULL, - "numberOfStars" integer -); diff --git a/packages/twenty-website/src/database/migrations/0002_demonic_matthew_murdock.sql b/packages/twenty-website/src/database/migrations/0002_demonic_matthew_murdock.sql deleted file mode 100644 index c4b1eceb6a..0000000000 --- a/packages/twenty-website/src/database/migrations/0002_demonic_matthew_murdock.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE IF NOT EXISTS "githubReleases" ( - "tagName" text PRIMARY KEY NOT NULL, - "publishedAt" date NOT NULL -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "githubStars" ( - "timestamp" timestamp DEFAULT now() NOT NULL, - "numberOfStars" integer -); diff --git a/packages/twenty-website/src/database/migrations/0003_polite_lorna_dane.sql b/packages/twenty-website/src/database/migrations/0003_polite_lorna_dane.sql deleted file mode 100644 index c4b1eceb6a..0000000000 --- a/packages/twenty-website/src/database/migrations/0003_polite_lorna_dane.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE IF NOT EXISTS "githubReleases" ( - "tagName" text PRIMARY KEY NOT NULL, - "publishedAt" date NOT NULL -); ---> statement-breakpoint -CREATE TABLE IF NOT EXISTS "githubStars" ( - "timestamp" timestamp DEFAULT now() NOT NULL, - "numberOfStars" integer -); diff --git a/packages/twenty-website/src/database/migrations/meta/0000_snapshot.json b/packages/twenty-website/src/database/migrations/meta/0000_snapshot.json deleted file mode 100644 index 133df52794..0000000000 --- a/packages/twenty-website/src/database/migrations/meta/0000_snapshot.json +++ /dev/null @@ -1,365 +0,0 @@ -{ - "version": "7", - "dialect": "postgresql", - "tables": { - "public.issueLabels": { - "name": "issueLabels", - "schema": "", - "columns": { - "issueId": { - "name": "issueId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "labelId": { - "name": "labelId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "issueLabels_issueId_issues_id_fk": { - "name": "issueLabels_issueId_issues_id_fk", - "tableFrom": "issueLabels", - "columnsFrom": [ - "issueId" - ], - "tableTo": "issues", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - }, - "issueLabels_labelId_labels_id_fk": { - "name": "issueLabels_labelId_labels_id_fk", - "tableFrom": "issueLabels", - "columnsFrom": [ - "labelId" - ], - "tableTo": "labels", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.issues": { - "name": "issues", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "externalId": { - "name": "externalId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "body": { - "name": "body", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "createdAt": { - "name": "createdAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "closedAt": { - "name": "closedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "authorId": { - "name": "authorId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "issues_authorId_users_id_fk": { - "name": "issues_authorId_users_id_fk", - "tableFrom": "issues", - "columnsFrom": [ - "authorId" - ], - "tableTo": "users", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.labels": { - "name": "labels", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "externalId": { - "name": "externalId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "color": { - "name": "color", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.pullRequestLabels": { - "name": "pullRequestLabels", - "schema": "", - "columns": { - "pullRequestExternalId": { - "name": "pullRequestExternalId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "labelId": { - "name": "labelId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "pullRequestLabels_pullRequestExternalId_pullRequests_id_fk": { - "name": "pullRequestLabels_pullRequestExternalId_pullRequests_id_fk", - "tableFrom": "pullRequestLabels", - "columnsFrom": [ - "pullRequestExternalId" - ], - "tableTo": "pullRequests", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - }, - "pullRequestLabels_labelId_labels_id_fk": { - "name": "pullRequestLabels_labelId_labels_id_fk", - "tableFrom": "pullRequestLabels", - "columnsFrom": [ - "labelId" - ], - "tableTo": "labels", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.pullRequests": { - "name": "pullRequests", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "body": { - "name": "body", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "createdAt": { - "name": "createdAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "closedAt": { - "name": "closedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "mergedAt": { - "name": "mergedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "authorId": { - "name": "authorId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "pullRequests_authorId_users_id_fk": { - "name": "pullRequests_authorId_users_id_fk", - "tableFrom": "pullRequests", - "columnsFrom": [ - "authorId" - ], - "tableTo": "users", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "avatarUrl": { - "name": "avatarUrl", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "isEmployee": { - "name": "isEmployee", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - } - }, - "enums": {}, - "schemas": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - }, - "id": "a7895a79-44a3-4fad-b750-f89d8c04d85c", - "prevId": "00000000-0000-0000-0000-000000000000", - "sequences": {}, - "policies": {}, - "views": {}, - "roles": {} -} \ No newline at end of file diff --git a/packages/twenty-website/src/database/migrations/meta/0003_snapshot.json b/packages/twenty-website/src/database/migrations/meta/0003_snapshot.json deleted file mode 100644 index ec1e1da4d4..0000000000 --- a/packages/twenty-website/src/database/migrations/meta/0003_snapshot.json +++ /dev/null @@ -1,416 +0,0 @@ -{ - "version": "7", - "dialect": "postgresql", - "tables": { - "public.githubReleases": { - "name": "githubReleases", - "schema": "", - "columns": { - "tagName": { - "name": "tagName", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "publishedAt": { - "name": "publishedAt", - "type": "date", - "primaryKey": false, - "notNull": true - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.githubStars": { - "name": "githubStars", - "schema": "", - "columns": { - "timestamp": { - "name": "timestamp", - "type": "timestamp", - "primaryKey": false, - "notNull": true, - "default": "now()" - }, - "numberOfStars": { - "name": "numberOfStars", - "type": "integer", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.issueLabels": { - "name": "issueLabels", - "schema": "", - "columns": { - "issueId": { - "name": "issueId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "labelId": { - "name": "labelId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "issueLabels_issueId_issues_id_fk": { - "name": "issueLabels_issueId_issues_id_fk", - "tableFrom": "issueLabels", - "columnsFrom": [ - "issueId" - ], - "tableTo": "issues", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - }, - "issueLabels_labelId_labels_id_fk": { - "name": "issueLabels_labelId_labels_id_fk", - "tableFrom": "issueLabels", - "columnsFrom": [ - "labelId" - ], - "tableTo": "labels", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.issues": { - "name": "issues", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "externalId": { - "name": "externalId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "body": { - "name": "body", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "createdAt": { - "name": "createdAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "closedAt": { - "name": "closedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "authorId": { - "name": "authorId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "issues_authorId_users_id_fk": { - "name": "issues_authorId_users_id_fk", - "tableFrom": "issues", - "columnsFrom": [ - "authorId" - ], - "tableTo": "users", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.labels": { - "name": "labels", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "externalId": { - "name": "externalId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "color": { - "name": "color", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "description": { - "name": "description", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.pullRequestLabels": { - "name": "pullRequestLabels", - "schema": "", - "columns": { - "pullRequestExternalId": { - "name": "pullRequestExternalId", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "labelId": { - "name": "labelId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "pullRequestLabels_pullRequestExternalId_pullRequests_id_fk": { - "name": "pullRequestLabels_pullRequestExternalId_pullRequests_id_fk", - "tableFrom": "pullRequestLabels", - "columnsFrom": [ - "pullRequestExternalId" - ], - "tableTo": "pullRequests", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - }, - "pullRequestLabels_labelId_labels_id_fk": { - "name": "pullRequestLabels_labelId_labels_id_fk", - "tableFrom": "pullRequestLabels", - "columnsFrom": [ - "labelId" - ], - "tableTo": "labels", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.pullRequests": { - "name": "pullRequests", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "body": { - "name": "body", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "createdAt": { - "name": "createdAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "updatedAt": { - "name": "updatedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "closedAt": { - "name": "closedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "mergedAt": { - "name": "mergedAt", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "authorId": { - "name": "authorId", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": { - "pullRequests_authorId_users_id_fk": { - "name": "pullRequests_authorId_users_id_fk", - "tableFrom": "pullRequests", - "columnsFrom": [ - "authorId" - ], - "tableTo": "users", - "columnsTo": [ - "id" - ], - "onUpdate": "no action", - "onDelete": "no action" - } - }, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - }, - "public.users": { - "name": "users", - "schema": "", - "columns": { - "id": { - "name": "id", - "type": "text", - "primaryKey": true, - "notNull": true - }, - "avatarUrl": { - "name": "avatarUrl", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "url": { - "name": "url", - "type": "text", - "primaryKey": false, - "notNull": false - }, - "isEmployee": { - "name": "isEmployee", - "type": "text", - "primaryKey": false, - "notNull": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {}, - "policies": {}, - "isRLSEnabled": false, - "checkConstraints": {} - } - }, - "enums": {}, - "schemas": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - }, - "id": "b3a89784-eb82-49d8-b081-31c49e6906dc", - "prevId": "a7895a79-44a3-4fad-b750-f89d8c04d85c", - "sequences": {}, - "policies": {}, - "views": {}, - "roles": {} -} \ No newline at end of file diff --git a/packages/twenty-website/src/database/migrations/meta/_journal.json b/packages/twenty-website/src/database/migrations/meta/_journal.json deleted file mode 100644 index dc0fddb547..0000000000 --- a/packages/twenty-website/src/database/migrations/meta/_journal.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "version": "5", - "dialect": "pg", - "entries": [ - { - "idx": 0, - "version": "5", - "when": 1707921820164, - "tag": "0000_absent_giant_man", - "breakpoints": true - }, - { - "idx": 1, - "version": "5", - "when": 1713792223113, - "tag": "0001_marvelous_eddie_brock", - "breakpoints": true - }, - { - "idx": 2, - "version": "5", - "when": 1714375499735, - "tag": "0002_demonic_matthew_murdock", - "breakpoints": true - } - ] -} diff --git a/packages/twenty-website/src/database/model.ts b/packages/twenty-website/src/database/model.ts deleted file mode 100644 index 7344f7be80..0000000000 --- a/packages/twenty-website/src/database/model.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { - pgGithubReleasesModel, - pgGithubStars, - pgIssueLabels, - pgIssues, - pgLabels, - pgPullRequestLabels, - pgPullRequests, - pgUsers, -} from '@/database/schema-postgres'; - -export const userModel = pgUsers; -export const pullRequestModel = pgPullRequests; -export const issueModel = pgIssues; -export const labelModel = pgLabels; -export const pullRequestLabelModel = pgPullRequestLabels; -export const issueLabelModel = pgIssueLabels; - -export const githubStarsModel = pgGithubStars; -export const githubReleasesModel = pgGithubReleasesModel; - -export type User = typeof pgUsers.$inferSelect; -export type PullRequest = typeof pgPullRequests.$inferSelect; -export type Issue = typeof pgIssues.$inferSelect; -export type Label = typeof pgLabels.$inferSelect; -export type PullRequestLabel = typeof pgPullRequestLabels.$inferSelect; -export type IssueLabel = typeof pgIssueLabels.$inferSelect; - -export type UserInsert = typeof pgUsers.$inferInsert; -export type PullRequestInsert = typeof pgPullRequests.$inferInsert; -export type IssueInsert = typeof pgIssues.$inferInsert; -export type LabelInsert = typeof pgLabels.$inferInsert; -export type PullRequestLabelInsert = typeof pgPullRequestLabels.$inferInsert; -export type IssueLabelInsert = typeof pgIssueLabels.$inferInsert; -export type GithubStars = typeof pgGithubStars.$inferInsert; -export type GithubReleases = typeof pgGithubReleasesModel.$inferInsert; diff --git a/packages/twenty-website/src/database/schema-postgres.ts b/packages/twenty-website/src/database/schema-postgres.ts deleted file mode 100644 index b9c50c99bb..0000000000 --- a/packages/twenty-website/src/database/schema-postgres.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { date, integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core'; - -export const pgUsers = pgTable('users', { - id: text('id').primaryKey(), - avatarUrl: text('avatarUrl'), - url: text('url'), - isEmployee: text('isEmployee'), -}); - -export const pgPullRequests = pgTable('pullRequests', { - id: text('id').primaryKey(), - title: text('title'), - body: text('body'), - url: text('url'), - createdAt: text('createdAt'), - updatedAt: text('updatedAt'), - closedAt: text('closedAt'), - mergedAt: text('mergedAt'), - authorId: text('authorId').references(() => pgUsers.id), -}); - -export const pgIssues = pgTable('issues', { - id: text('id').primaryKey(), - externalId: text('externalId'), - title: text('title'), - body: text('body'), - url: text('url'), - createdAt: text('createdAt'), - updatedAt: text('updatedAt'), - closedAt: text('closedAt'), - authorId: text('authorId').references(() => pgUsers.id), -}); - -export const pgLabels = pgTable('labels', { - id: text('id').primaryKey(), - externalId: text('externalId'), - name: text('name'), - color: text('color'), - description: text('description'), -}); - -export const pgPullRequestLabels = pgTable('pullRequestLabels', { - pullRequestId: text('pullRequestExternalId').references( - () => pgPullRequests.id, - ), - labelId: text('labelId').references(() => pgLabels.id), -}); - -export const pgIssueLabels = pgTable('issueLabels', { - issueId: text('issueId').references(() => pgIssues.id), - labelId: text('labelId').references(() => pgLabels.id), -}); - -export const pgGithubStars = pgTable('githubStars', { - timestamp: timestamp('timestamp').notNull().defaultNow(), - numberOfStars: integer('numberOfStars'), -}); - -export const pgGithubReleasesModel = pgTable('githubReleases', { - tagName: text('tagName').primaryKey(), - publishedAt: date('publishedAt', { mode: 'string' }).notNull(), -}); diff --git a/packages/twenty-website/src/github/contributors/fetch-assignable-users.tsx b/packages/twenty-website/src/github/contributors/fetch-assignable-users.tsx deleted file mode 100644 index 13693ebbb2..0000000000 --- a/packages/twenty-website/src/github/contributors/fetch-assignable-users.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { type graphql } from '@octokit/graphql'; - -import { type Repository } from '@/github/contributors/types'; - -export async function fetchAssignableUsers( - query: typeof graphql, -): Promise> { - const { repository } = await query(` - query { - repository(owner: "twentyhq", name: "twenty") { - assignableUsers(first: 100) { - nodes { - login - } - } - } - } - `); - - return new Set(repository.assignableUsers.nodes.map((user) => user.login)); -} diff --git a/packages/twenty-website/src/github/contributors/fetch-issues-prs.tsx b/packages/twenty-website/src/github/contributors/fetch-issues-prs.tsx deleted file mode 100644 index b69dc0de1c..0000000000 --- a/packages/twenty-website/src/github/contributors/fetch-issues-prs.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { type graphql } from '@octokit/graphql'; - -import { - type IssueNode, - type PullRequestNode, - type Repository, -} from '@/github/contributors/types'; - -export async function fetchIssuesPRs( - query: typeof graphql, - cursor: string | null = null, - isIssues = false, - accumulatedData: Array = [], -): Promise> { - const { repository } = await query( - ` - query ($cursor: String) { - repository(owner: "twentyhq", name: "twenty") { - pullRequests(first: 100, after: $cursor, orderBy: {field: CREATED_AT, direction: DESC}) @skip(if: ${isIssues}) { - nodes { - id - title - body - url - createdAt - updatedAt - closedAt - mergedAt - author { - resourcePath - login - avatarUrl(size: 460) - url - } - labels(first: 100) { - nodes { - id - name - color - description - } - } - } - pageInfo { - hasNextPage - endCursor - } - } - issues(first: 100, after: $cursor, orderBy: {field: CREATED_AT, direction: DESC}) @skip(if: ${!isIssues}) { - nodes { - id - title - body - url - createdAt - updatedAt - closedAt - author { - resourcePath - login - avatarUrl - url - } - labels(first: 100) { - nodes { - id - name - color - description - } - } - } - pageInfo { - hasNextPage - endCursor - } - } - } - } - `, - { cursor }, - ); - - const newAccumulatedData: Array = [ - ...accumulatedData, - ...(isIssues ? repository.issues.nodes : repository.pullRequests.nodes), - ]; - const pageInfo = isIssues - ? repository.issues.pageInfo - : repository.pullRequests.pageInfo; - - if (pageInfo.hasNextPage) { - return fetchIssuesPRs( - query, - pageInfo.endCursor, - isIssues, - newAccumulatedData, - ); - } else { - return newAccumulatedData; - } -} diff --git a/packages/twenty-website/src/github/contributors/get-latest-update.tsx b/packages/twenty-website/src/github/contributors/get-latest-update.tsx deleted file mode 100644 index 9f8a87ead1..0000000000 --- a/packages/twenty-website/src/github/contributors/get-latest-update.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { desc } from 'drizzle-orm'; - -import { findOne } from '@/database/database'; -import { issueModel, pullRequestModel } from '@/database/model'; - -export async function getLatestUpdate() { - const latestPR = await findOne( - pullRequestModel, - desc(pullRequestModel.updatedAt), - ); - const latestIssue = await findOne(issueModel, desc(issueModel.updatedAt)); - const prDate = latestPR[0] - ? new Date(latestPR[0].updatedAt) - : new Date('2023-01-01'); - const issueDate = latestIssue[0] - ? new Date(latestIssue[0].updatedAt) - : new Date('2023-01-01'); - return (prDate > issueDate ? prDate : issueDate).toISOString(); -} diff --git a/packages/twenty-website/src/github/contributors/save-issues-to-db.tsx b/packages/twenty-website/src/github/contributors/save-issues-to-db.tsx deleted file mode 100644 index 6d482cc7b4..0000000000 --- a/packages/twenty-website/src/github/contributors/save-issues-to-db.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { insertMany } from '@/database/database'; -import { - issueLabelModel, - issueModel, - labelModel, - userModel, -} from '@/database/model'; -import { type IssueNode } from '@/github/contributors/types'; - -export async function saveIssuesToDB( - issues: Array, - assignableUsers: Set, -) { - for (const issue of issues) { - if (issue.author == null) { - continue; - } - await insertMany( - userModel, - [ - { - id: issue.author.login, - avatarUrl: issue.author.avatarUrl, - url: issue.author.url, - isEmployee: assignableUsers.has(issue.author.login) ? '1' : '0', - }, - ], - { - onConflictKey: 'id', - onConflictUpdateObject: { - avatarUrl: issue.author.avatarUrl, - url: issue.author.url, - isEmployee: assignableUsers.has(issue.author.login) ? '1' : '0', - }, - }, - ); - - await insertMany( - issueModel, - [ - { - id: issue.id, - title: issue.title, - body: issue.body, - url: issue.url, - createdAt: issue.createdAt, - updatedAt: issue.updatedAt, - closedAt: issue.closedAt, - authorId: issue.author.login, - }, - ], - { - onConflictKey: 'id', - onConflictUpdateObject: { - title: issue.title, - body: issue.body, - url: issue.url, - updatedAt: issue.updatedAt, - closedAt: issue.closedAt, - authorId: issue.author.login, - }, - }, - ); - - for (const label of issue.labels.nodes) { - await insertMany( - labelModel, - [ - { - id: label.id, - name: label.name, - color: label.color, - description: label.description, - }, - ], - { - onConflictKey: 'id', - onConflictUpdateObject: { - name: label.name, - color: label.color, - description: label.description, - }, - }, - ); - await insertMany( - issueLabelModel, - [ - { - issueId: issue.id, - labelId: label.id, - }, - ], - { - onConflictDoNothing: true, - }, - ); - } - } -} diff --git a/packages/twenty-website/src/github/contributors/save-prs-to-db.tsx b/packages/twenty-website/src/github/contributors/save-prs-to-db.tsx deleted file mode 100644 index 7923e1b432..0000000000 --- a/packages/twenty-website/src/github/contributors/save-prs-to-db.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { insertMany } from '@/database/database'; -import { - labelModel, - pullRequestLabelModel, - pullRequestModel, - userModel, -} from '@/database/model'; -import { type PullRequestNode } from '@/github/contributors/types'; - -export async function savePRsToDB( - prs: Array, - assignableUsers: Set, -) { - for (const pr of prs) { - if (pr.author == null) { - continue; - } - - await insertMany( - userModel, - [ - { - id: pr.author.login, - avatarUrl: pr.author.avatarUrl, - url: pr.author.url, - isEmployee: assignableUsers.has(pr.author.login) ? '1' : '0', - }, - ], - { - onConflictKey: 'id', - onConflictUpdateObject: { - avatarUrl: pr.author.avatarUrl, - url: pr.author.url, - isEmployee: assignableUsers.has(pr.author.login) ? '1' : '0', - }, - }, - ); - - await insertMany( - pullRequestModel, - [ - { - id: pr.id, - title: pr.title, - body: pr.body, - url: pr.url, - createdAt: pr.createdAt, - updatedAt: pr.updatedAt, - closedAt: pr.closedAt, - mergedAt: pr.mergedAt, - authorId: pr.author.login, - }, - ], - { - onConflictKey: 'id', - onConflictUpdateObject: { - title: pr.title, - body: pr.body, - url: pr.url, - updatedAt: pr.updatedAt, - closedAt: pr.closedAt, - mergedAt: pr.mergedAt, - authorId: pr.author.login, - }, - }, - ); - - for (const label of pr.labels.nodes) { - await insertMany( - labelModel, - [ - { - id: label.id, - name: label.name, - color: label.color, - description: label.description, - }, - ], - { - onConflictKey: 'id', - onConflictUpdateObject: { - name: label.name, - color: label.color, - description: label.description, - }, - }, - ); - await insertMany( - pullRequestLabelModel, - [ - { - pullRequestId: pr.id, - labelId: label.id, - }, - ], - { - onConflictDoNothing: true, - }, - ); - } - } -} diff --git a/packages/twenty-website/src/github/contributors/search-issues-prs.tsx b/packages/twenty-website/src/github/contributors/search-issues-prs.tsx deleted file mode 100644 index be38ad8a31..0000000000 --- a/packages/twenty-website/src/github/contributors/search-issues-prs.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { type graphql } from '@octokit/graphql'; - -import { getLatestUpdate } from '@/github/contributors/get-latest-update'; -import { - type IssueNode, - type PullRequestNode, - type SearchIssuesPRsQuery, -} from '@/github/contributors/types'; - -export async function searchIssuesPRs( - query: typeof graphql, - cursor: string | null = null, - isIssues = false, - accumulatedData: Array = [], -): Promise> { - const since = await getLatestUpdate(); - const { search } = await query( - ` - query searchPullRequestsAndIssues($cursor: String) { - search(query: "repo:twentyhq/twenty ${ - isIssues ? 'is:issue' : 'is:pr' - } updated:>${since}", type: ISSUE, first: 100, after: $cursor) { - edges { - node { - ... on PullRequest { - id - title - body - url - createdAt - updatedAt - closedAt - mergedAt - author { - resourcePath - login - avatarUrl(size: 460) - url - } - labels(first: 100) { - nodes { - id - name - color - description - } - } - } - ... on Issue { - id - title - body - url - createdAt - updatedAt - closedAt - author { - resourcePath - login - avatarUrl - url - } - labels(first: 100) { - nodes { - id - name - color - description - } - } - } - } - } - pageInfo { - hasNextPage - endCursor - } - } - } - `, - { - cursor, - }, - ); - - const newAccumulatedData: Array = [ - ...accumulatedData, - ...search.edges.map(({ node }) => node), - ]; - const pageInfo = search.pageInfo; - - if (pageInfo.hasNextPage) { - return searchIssuesPRs( - query, - pageInfo.endCursor, - isIssues, - newAccumulatedData, - ); - } else { - return newAccumulatedData; - } -} diff --git a/packages/twenty-website/src/github/contributors/types.tsx b/packages/twenty-website/src/github/contributors/types.tsx deleted file mode 100644 index 0290e62b44..0000000000 --- a/packages/twenty-website/src/github/contributors/types.tsx +++ /dev/null @@ -1,103 +0,0 @@ -export interface LabelNode { - id: string; - name: string; - color: string; - description: string; -} - -export interface AuthorNode { - resourcePath: string; - login: string; - avatarUrl: string; - url: string; -} - -export interface PullRequestNode { - id: string; - title: string; - body: string; - url: string; - createdAt: string; - updatedAt: string; - closedAt: string; - mergedAt: string; - author: AuthorNode; - labels: { - nodes: LabelNode[]; - }; -} - -export interface IssueNode { - id: string; - title: string; - body: string; - url: string; - createdAt: string; - updatedAt: string; - closedAt: string; - author: AuthorNode; - labels: { - nodes: LabelNode[]; - }; -} - -export interface PageInfo { - hasNextPage: boolean; - endCursor: string | null; -} - -export interface PullRequests { - nodes: PullRequestNode[]; - pageInfo: PageInfo; -} - -export interface Issues { - nodes: IssueNode[]; - pageInfo: PageInfo; -} - -export interface AssignableUserNode { - login: string; -} - -export interface AssignableUsers { - nodes: AssignableUserNode[]; -} - -export interface Stargazers { - totalCount: number; -} - -export interface Releases { - nodes: ReleaseNode[]; -} - -export interface ReleaseNode { - tagName: string; - name: string; - description: string; - publishedAt: string; -} - -export interface Repository { - repository: { - pullRequests: PullRequests; - issues: Issues; - assignableUsers: AssignableUsers; - stargazers: Stargazers; - releases: Releases; - }; -} - -export interface SearchEdgeNode { - node: IssueNode | PullRequestNode; -} - -export interface SearchEdges { - edges: SearchEdgeNode[]; - pageInfo: PageInfo; -} - -export interface SearchIssuesPRsQuery { - search: SearchEdges; -} diff --git a/packages/twenty-website/src/github/execute-partial-sync.ts b/packages/twenty-website/src/github/execute-partial-sync.ts deleted file mode 100644 index 0c491aac5f..0000000000 --- a/packages/twenty-website/src/github/execute-partial-sync.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { graphql } from '@octokit/graphql'; - -import { fetchAssignableUsers } from '@/github/contributors/fetch-assignable-users'; -import { saveIssuesToDB } from '@/github/contributors/save-issues-to-db'; -import { savePRsToDB } from '@/github/contributors/save-prs-to-db'; -import { searchIssuesPRs } from '@/github/contributors/search-issues-prs'; -import { - type IssueNode, - type PullRequestNode, -} from '@/github/contributors/types'; -import { fetchAndSaveGithubReleases } from '@/github/github-releases/fetch-and-save-github-releases'; -import { fetchAndSaveGithubStars } from '@/github/github-stars/fetch-and-save-github-stars'; - -export const executePartialSync = async () => { - if (!global.process.env.GITHUB_TOKEN) { - return new Error('No GitHub token provided'); - } - - console.log('Syncing data... (partial sync)'); - - const query = graphql.defaults({ - headers: { - Authorization: 'bearer ' + global.process.env.GITHUB_TOKEN, - }, - }); - - await fetchAndSaveGithubStars(query); - await fetchAndSaveGithubReleases(query); - - const assignableUsers = await fetchAssignableUsers(query); - - const fetchedPRs = (await searchIssuesPRs( - query, - null, - false, - [], - )) as Array; - const fetchedIssues = (await searchIssuesPRs( - query, - null, - true, - [], - )) as Array; - - await savePRsToDB(fetchedPRs, assignableUsers); - await saveIssuesToDB(fetchedIssues, assignableUsers); - - console.log('data synched!'); -}; diff --git a/packages/twenty-website/src/github/fetch-and-save-github-data.ts b/packages/twenty-website/src/github/fetch-and-save-github-data.ts deleted file mode 100644 index b598d5f25b..0000000000 --- a/packages/twenty-website/src/github/fetch-and-save-github-data.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { graphql } from '@octokit/graphql'; - -import { fetchAssignableUsers } from '@/github/contributors/fetch-assignable-users'; -import { fetchIssuesPRs } from '@/github/contributors/fetch-issues-prs'; -import { saveIssuesToDB } from '@/github/contributors/save-issues-to-db'; -import { savePRsToDB } from '@/github/contributors/save-prs-to-db'; -import { - type IssueNode, - type PullRequestNode, -} from '@/github/contributors/types'; -import { fetchAndSaveGithubReleases } from '@/github/github-releases/fetch-and-save-github-releases'; -import { fetchAndSaveGithubStars } from '@/github/github-stars/fetch-and-save-github-stars'; - -export const fetchAndSaveGithubData = async () => { - if (!process.env.GITHUB_TOKEN) { - return new Error('No GitHub token provided'); - } - - console.log('Syncing data...'); - - const query = graphql.defaults({ - headers: { - Authorization: 'bearer ' + process.env.GITHUB_TOKEN, - }, - }); - - await fetchAndSaveGithubStars(query); - await fetchAndSaveGithubReleases(query); - - const assignableUsers = await fetchAssignableUsers(query); - const fetchedPRs = (await fetchIssuesPRs( - query, - null, - false, - [], - )) as Array; - const fetchedIssues = (await fetchIssuesPRs( - query, - null, - true, - [], - )) as Array; - - await savePRsToDB(fetchedPRs, assignableUsers); - await saveIssuesToDB(fetchedIssues, assignableUsers); - - console.log('data synched!'); -}; diff --git a/packages/twenty-website/src/github/github-releases/fetch-and-save-github-releases.tsx b/packages/twenty-website/src/github/github-releases/fetch-and-save-github-releases.tsx deleted file mode 100644 index 1a478e0e20..0000000000 --- a/packages/twenty-website/src/github/github-releases/fetch-and-save-github-releases.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { type graphql } from '@octokit/graphql'; - -import { insertMany } from '@/database/database'; -import { githubReleasesModel } from '@/database/model'; -import { type Repository } from '@/github/contributors/types'; - -export const fetchAndSaveGithubReleases = async ( - query: typeof graphql, -): Promise => { - const { repository } = await query(` - query { - repository(owner: "twentyhq", name: "twenty") { - releases(first: 100) { - nodes { - tagName - publishedAt - } - } - } - } - `); - - await insertMany(githubReleasesModel, repository.releases.nodes, { - onConflictKey: 'tagName', - }); -}; diff --git a/packages/twenty-website/src/github/github-stars/fetch-and-save-github-stars.tsx b/packages/twenty-website/src/github/github-stars/fetch-and-save-github-stars.tsx deleted file mode 100644 index 3a23f3f7f6..0000000000 --- a/packages/twenty-website/src/github/github-stars/fetch-and-save-github-stars.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { type graphql } from '@octokit/graphql'; - -import { insertMany } from '@/database/database'; -import { githubStarsModel } from '@/database/model'; -import { type Repository } from '@/github/contributors/types'; - -export const fetchAndSaveGithubStars = async ( - query: typeof graphql, -): Promise => { - const { repository } = await query(` - query { - repository(owner: "twentyhq", name: "twenty") { - stargazers { - totalCount - } - } - } - `); - - const numberOfStars = repository.stargazers.totalCount; - - await insertMany(githubStarsModel, [ - { - numberOfStars, - }, - ]); -}; diff --git a/packages/twenty-website/src/github/github-sync.ts b/packages/twenty-website/src/github/github-sync.ts deleted file mode 100644 index 4e0e29f59b..0000000000 --- a/packages/twenty-website/src/github/github-sync.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { executePartialSync } from '@/github/execute-partial-sync'; -import { fetchAndSaveGithubData } from '@/github/fetch-and-save-github-data'; - -export const githubSync = async () => { - const isFullSyncFlagIndex = process.argv.indexOf('--isFullSync'); - const isFullSync = isFullSyncFlagIndex > -1; - - if (isFullSync) { - await fetchAndSaveGithubData(); - } else { - await executePartialSync(); - } - - process.exit(0); -}; - -githubSync(); diff --git a/packages/twenty-website/src/middleware.ts b/packages/twenty-website/src/middleware.ts deleted file mode 100644 index 7497532447..0000000000 --- a/packages/twenty-website/src/middleware.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { NextResponse } from 'next/server'; - -export function middleware() { - const res = NextResponse.next(); - - res.headers.append('Access-Control-Allow-Origin', '*'); - res.headers.append('Access-Control-Allow-Credentials', 'true'); - res.headers.append( - 'Access-Control-Allow-Methods', - 'GET,DELETE,PATCH,POST,PUT', - ); - res.headers.append( - 'Access-Control-Allow-Headers', - 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version', - ); - - return res; -} - -export const config = { - matcher: '/api/:path*', -}; diff --git a/packages/twenty-website/src/shared-utils/compareSemanticVersions.ts b/packages/twenty-website/src/shared-utils/compareSemanticVersions.ts deleted file mode 100644 index ff97a26974..0000000000 --- a/packages/twenty-website/src/shared-utils/compareSemanticVersions.ts +++ /dev/null @@ -1,16 +0,0 @@ -export function compareSemanticVersions(a: string, b: string) { - const a1 = a.split('.'); - const b1 = b.split('.'); - - const len = Math.min(a1.length, b1.length); - - for (let i = 0; i < len; i++) { - const a2 = +a1[i] || 0; - const b2 = +b1[i] || 0; - - if (a2 !== b2) { - return a2 > b2 ? 1 : -1; - } - } - return b1.length - a1.length; -} diff --git a/packages/twenty-website/src/shared-utils/formatDisplayDate.ts b/packages/twenty-website/src/shared-utils/formatDisplayDate.ts deleted file mode 100644 index 9134f27c8f..0000000000 --- a/packages/twenty-website/src/shared-utils/formatDisplayDate.ts +++ /dev/null @@ -1,17 +0,0 @@ -export const formatGithubPublishedAtDisplayDate = ( - dateString: string, -): string => { - const date = new Date(dateString); - if (Number.isNaN(date.getTime())) return ''; - - const now = new Date(); - const isCurrentYear = date.getFullYear() === now.getFullYear(); - - const formatter = new Intl.DateTimeFormat('en-US', { - month: isCurrentYear ? 'long' : 'short', - day: 'numeric', - ...(isCurrentYear ? {} : { year: 'numeric' }), - }); - - return formatter.format(date); -}; diff --git a/packages/twenty-website/src/shared-utils/formatIntoRelativeDate.ts b/packages/twenty-website/src/shared-utils/formatIntoRelativeDate.ts deleted file mode 100644 index 91aa777546..0000000000 --- a/packages/twenty-website/src/shared-utils/formatIntoRelativeDate.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { differenceInDays, formatDistance } from 'date-fns'; - -const formatIntoRelativeDate = (dateString: string) => { - if (!dateString) return ''; - const inputDate = new Date(dateString); - const currentDate = new Date(); - - const daysDifference = differenceInDays(currentDate, inputDate); - let formattedDate = ''; - if (daysDifference === 0) { - formattedDate = 'today'; - } else if (daysDifference === 1) { - formattedDate = 'yesterday'; - } else if (daysDifference < 7) { - formattedDate = formatDistance(inputDate, currentDate, { addSuffix: true }); - } else if (daysDifference < 14) { - formattedDate = 'last week'; - } else if (daysDifference < 30) { - formattedDate = Math.floor(daysDifference / 7) + ' weeks ago'; - } else if (daysDifference < 60) { - formattedDate = 'last month'; - } else if (daysDifference < 365) { - formattedDate = Math.floor(daysDifference / 30) + ' months'; - } else if (daysDifference < 730) { - formattedDate = 'last year'; - } else { - formattedDate = Math.floor(daysDifference / 365) + ' years ago'; - } - return formattedDate; -}; - -export { formatIntoRelativeDate }; diff --git a/packages/twenty-website/src/shared-utils/formatNumberOfStars.ts b/packages/twenty-website/src/shared-utils/formatNumberOfStars.ts deleted file mode 100644 index fed51b2446..0000000000 --- a/packages/twenty-website/src/shared-utils/formatNumberOfStars.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const formatNumberOfStars = (numberOfStars: number) => { - return Math.round(numberOfStars / 100) / 10 + 'k'; -}; diff --git a/packages/twenty-website/src/shared-utils/formatSlug.ts b/packages/twenty-website/src/shared-utils/formatSlug.ts deleted file mode 100644 index aee82e8f93..0000000000 --- a/packages/twenty-website/src/shared-utils/formatSlug.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function formatSlug(slug: string): string { - return slug - .split('-') - .map((word: string) => word?.charAt(0)?.toUpperCase?.() + word?.slice?.(1)) - .join(' '); -} diff --git a/packages/twenty-website/src/shared-utils/listTeamMembers.ts b/packages/twenty-website/src/shared-utils/listTeamMembers.ts deleted file mode 100644 index 7ce9993acf..0000000000 --- a/packages/twenty-website/src/shared-utils/listTeamMembers.ts +++ /dev/null @@ -1,22 +0,0 @@ -export const TWENTY_TEAM_MEMBERS = [ - 'dependabot', - 'cyborch', - 'emilienchvt', - 'Samox', - 'charlesBochet', - 'gitstart-app', - 'thaisguigon', - 'lucasbordeau', - 'magrinj', - 'Weiko', - 'gitstart-twenty', - 'bosiraphael', - 'martmull', - 'FelixMalfait', - 'thomtrp', - 'Bonapara', - 'nimraahmed', - 'ady-beraud', - 'Freebios', - 'ijreilly', -]; diff --git a/packages/twenty-website/src/shared-utils/pathUtils.tsx b/packages/twenty-website/src/shared-utils/pathUtils.tsx deleted file mode 100644 index b27c756045..0000000000 --- a/packages/twenty-website/src/shared-utils/pathUtils.tsx +++ /dev/null @@ -1,48 +0,0 @@ -export const startsWithAny = ( - pathname: string, - prefixes: string[], -): boolean => { - return prefixes.some((prefix) => pathname.startsWith(prefix)); -}; - -export const isSectionPath = (pathname: string | undefined): boolean => { - if (!pathname) return false; - return startsWithAny(pathname, [ - '/developers/section', - '/user-guide/section', - '/twenty-ui/section', - ]); -}; - -export const isDocsSection = (pathname: string | undefined): boolean => { - return isSectionPath(pathname) && pathname?.split('/').length === 4; -}; - -export const isPlaygroundPage = (pathname: string | undefined): boolean => { - if (!pathname) return false; - return startsWithAny(pathname, [ - '/developers/rest-api', - '/developers/graphql', - ]); -}; - -export const shouldShowEmptySidebar = ( - pathname: string | undefined, -): boolean => { - if (!pathname) return false; - return ( - ['/user-guide', '/developers', '/twenty-ui'].includes(pathname) || - isDocsSection(pathname) || - isPlaygroundPage(pathname) - ); -}; - -export const getUriAndLabel = (pathname: string) => { - if (pathname.includes('user-guide')) { - return { uri: '/user-guide', label: 'User Guide' }; - } - if (pathname.includes('developers')) { - return { uri: '/developers', label: 'Developers' }; - } - return { uri: '/twenty-ui', label: 'UI Components' }; -}; diff --git a/packages/twenty-website/src/shared-utils/wrapHeadingsWithAnchor.tsx b/packages/twenty-website/src/shared-utils/wrapHeadingsWithAnchor.tsx deleted file mode 100644 index 41baa67010..0000000000 --- a/packages/twenty-website/src/shared-utils/wrapHeadingsWithAnchor.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { - Children, - cloneElement, - isValidElement, - type ReactElement, - type ReactNode, -} from 'react'; - -export const wrapHeadingsWithAnchor = (children: ReactNode): ReactNode => { - const hasChildren = ( - element: ReactElement, - ): element is ReactElement<{ children: ReactNode }> => { - return element.props.children !== undefined; - }; - const idCounts = new Map(); - - return Children.map(children, (child) => { - if ( - isValidElement(child) && - typeof child.type === 'string' && - ['h1', 'h2', 'h3', 'h4'].includes(child.type) - ) { - const baseId = child.props.children - .toString() - .replace(/\s+/g, '-') - .toLowerCase(); - const idCount = idCounts.get(baseId) ?? 0; - - const id = idCount === 0 ? baseId : `${baseId}-${idCount}`; - idCounts.set(baseId, idCount + 1); - - return cloneElement(child as ReactElement, { - id, - className: 'anchor', - children: {child.props.children}, - }); - } - - if (isValidElement(child) && hasChildren(child)) { - return cloneElement(child, { - children: wrapHeadingsWithAnchor(child.props.children), - }); - } - - return child; - }); -}; diff --git a/packages/twenty-website/src/shared/enterprise/enterprise-jwt.ts b/packages/twenty-website/src/shared/enterprise/enterprise-jwt.ts deleted file mode 100644 index 168ebf4fd2..0000000000 --- a/packages/twenty-website/src/shared/enterprise/enterprise-jwt.ts +++ /dev/null @@ -1,188 +0,0 @@ -import * as crypto from 'crypto'; - -export type EnterpriseKeyPayload = { - sub: string; - licensee: string; - iat: number; -}; - -export type EnterpriseValidityPayload = { - sub: string; - status: 'valid'; - iat: number; - exp: number; -}; - -const ALGORITHM = 'RS256'; -const DEFAULT_VALIDITY_TOKEN_DURATION_DAYS= 30; - -const getValidityTokenDurationDays = (): number => { - const value = process.env.ENTERPRISE_VALIDITY_TOKEN_DURATION_DAYS; - - if (value === undefined || value === '') { - return DEFAULT_VALIDITY_TOKEN_DURATION_DAYS; - } - - const parsed = parseInt(value, 10); - - if (Number.isNaN(parsed) || parsed < 1) { - return DEFAULT_VALIDITY_TOKEN_DURATION_DAYS; - } - - return parsed; -}; - -export type SignValidityTokenOptions = { - subscriptionCancelAt: number | null; -}; - -const computeValidityExp = ( - nowSeconds: number, - durationDays: number, - subscriptionCancelAt: number | null, -): number => { - const defaultExp = nowSeconds + durationDays * 24 * 60 * 60; - - if (subscriptionCancelAt === null || subscriptionCancelAt <= 0) { - return defaultExp; - } - - return Math.min(defaultExp, subscriptionCancelAt); -}; - -const getPrivateKey = (): string => { - const key = process.env.ENTERPRISE_JWT_PRIVATE_KEY; - - if (!key) { - throw new Error('ENTERPRISE_JWT_PRIVATE_KEY is not configured'); - } - - return key.replace(/\\n/g, '\n'); -}; - -const base64UrlEncode = (data: string): string => { - return Buffer.from(data) - .toString('base64') - .replace(/\+/g, '-') - .replace(/\//g, '_') - .replace(/=+$/, ''); -}; - -const base64UrlDecode = (data: string): string => { - const padded = data + '='.repeat((4 - (data.length % 4)) % 4); - const base64 = padded.replace(/-/g, '+').replace(/_/g, '/'); - - return Buffer.from(base64, 'base64').toString('utf-8'); -}; - -const signJwt = ( - payload: Record, - privateKey: string, -): string => { - const header = { alg: ALGORITHM, typ: 'JWT' }; - const encodedHeader = base64UrlEncode(JSON.stringify(header)); - const encodedPayload = base64UrlEncode(JSON.stringify(payload)); - const signingInput = `${encodedHeader}.${encodedPayload}`; - - const signature = crypto - .sign('sha256', Buffer.from(signingInput), { - key: privateKey, - padding: crypto.constants.RSA_PKCS1_PADDING, - }) - .toString('base64') - .replace(/\+/g, '-') - .replace(/\//g, '_') - .replace(/=+$/, ''); - - return `${signingInput}.${signature}`; -}; - -export const verifyJwt = >( - token: string, - publicKey: string, -): T | null => { - try { - const parts = token.split('.'); - - if (parts.length !== 3) { - return null; - } - - const [encodedHeader, encodedPayload, signature] = parts; - const signingInput = `${encodedHeader}.${encodedPayload}`; - - const signatureBuffer = Buffer.from( - signature.replace(/-/g, '+').replace(/_/g, '/') + - '='.repeat((4 - (signature.length % 4)) % 4), - 'base64', - ); - - const isValid = crypto.verify( - 'sha256', - Buffer.from(signingInput), - { - key: publicKey, - padding: crypto.constants.RSA_PKCS1_PADDING, - }, - signatureBuffer, - ); - - if (!isValid) { - return null; - } - - return JSON.parse(base64UrlDecode(encodedPayload)) as T; - } catch { - return null; - } -}; - -export const signEnterpriseKey = ( - subscriptionId: string, - licensee: string, -): string => { - const payload: EnterpriseKeyPayload = { - sub: subscriptionId, - licensee, - iat: Math.floor(Date.now() / 1000), - }; - - return signJwt(payload, getPrivateKey()); -}; - -export const signValidityToken = ( - subscriptionId: string, - options?: SignValidityTokenOptions, -): string => { - const now = Math.floor(Date.now() / 1000); - const durationDays = getValidityTokenDurationDays(); - const subscriptionCancelAt = options?.subscriptionCancelAt ?? null; - const exp = computeValidityExp(now, durationDays, subscriptionCancelAt); - - const payload: EnterpriseValidityPayload = { - sub: subscriptionId, - status: 'valid', - iat: now, - exp, - }; - - return signJwt(payload, getPrivateKey()); -}; - -export const verifyEnterpriseKey = ( - token: string, -): EnterpriseKeyPayload | null => { - const publicKey = getPublicKey(); - - return verifyJwt(token, publicKey); -}; - -const getPublicKey = (): string => { - const key = process.env.ENTERPRISE_JWT_PUBLIC_KEY; - - if (!key) { - throw new Error('ENTERPRISE_JWT_PUBLIC_KEY is not configured'); - } - - return key.replace(/\\n/g, '\n'); -}; diff --git a/packages/twenty-website/src/shared/enterprise/stripe-client.ts b/packages/twenty-website/src/shared/enterprise/stripe-client.ts deleted file mode 100644 index 133801c30e..0000000000 --- a/packages/twenty-website/src/shared/enterprise/stripe-client.ts +++ /dev/null @@ -1,34 +0,0 @@ -import Stripe from 'stripe'; - -let stripeInstance: Stripe | null = null; - -export const getStripeClient = (): Stripe => { - if (!stripeInstance) { - const secretKey = process.env.STRIPE_SECRET_KEY; - - if (!secretKey) { - throw new Error('STRIPE_SECRET_KEY is not configured'); - } - - stripeInstance = new Stripe(secretKey, {}); - } - - return stripeInstance; -}; - -export const getEnterprisePriceId = ( - billingInterval: 'monthly' | 'yearly' = 'monthly', -): string => { - const envKey = - billingInterval === 'yearly' - ? 'STRIPE_ENTERPRISE_YEARLY_PRICE_ID' - : 'STRIPE_ENTERPRISE_MONTHLY_PRICE_ID'; - - const priceId = process.env[envKey]; - - if (!priceId) { - throw new Error(`${envKey} is not configured`); - } - - return priceId; -}; diff --git a/packages/twenty-website/tsconfig.json b/packages/twenty-website/tsconfig.json deleted file mode 100644 index 9194388bf5..0000000000 --- a/packages/twenty-website/tsconfig.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "target": "es2020", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} diff --git a/yarn.lock b/yarn.lock index bc85a72e45..c8ad61871e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,18 +5,6 @@ __metadata: version: 8 cacheKey: 10c0 -"@0no-co/graphql.web@npm:^1.0.5": - version: 1.1.1 - resolution: "@0no-co/graphql.web@npm:1.1.1" - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - checksum: 10c0/b7831f3483ac325b146fde4f040dad49e43704a52f3796f0d9be781e264133266c2c2093448edfc89a4c52af5d203b2e8d315a639321f4be716970481b11bf91 - languageName: node - linkType: hard - "@adobe/css-tools@npm:^4.4.0": version: 4.4.0 resolution: "@adobe/css-tools@npm:4.4.0" @@ -203,200 +191,6 @@ __metadata: languageName: node linkType: hard -"@algolia/autocomplete-core@npm:1.9.3": - version: 1.9.3 - resolution: "@algolia/autocomplete-core@npm:1.9.3" - dependencies: - "@algolia/autocomplete-plugin-algolia-insights": "npm:1.9.3" - "@algolia/autocomplete-shared": "npm:1.9.3" - checksum: 10c0/a751b20f15c9a30b8b2d5a4f1f62fb4dbd012fb7ffec1b12308d6e7388b5a4dc83af52176634f17facb57a7727204843c5aa2f6e80efafaaf244275f44af11d9 - languageName: node - linkType: hard - -"@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3": - version: 1.9.3 - resolution: "@algolia/autocomplete-plugin-algolia-insights@npm:1.9.3" - dependencies: - "@algolia/autocomplete-shared": "npm:1.9.3" - peerDependencies: - search-insights: ">= 1 < 3" - checksum: 10c0/574196f66fe828be1029439032376685020524d6c729dea99caef336cc7be244d2539fa91b3fe80db80efe3420c2c05063cab3534514be6c637bf1914b17a6f6 - languageName: node - linkType: hard - -"@algolia/autocomplete-preset-algolia@npm:1.9.3": - version: 1.9.3 - resolution: "@algolia/autocomplete-preset-algolia@npm:1.9.3" - dependencies: - "@algolia/autocomplete-shared": "npm:1.9.3" - peerDependencies: - "@algolia/client-search": ">= 4.9.1 < 6" - algoliasearch: ">= 4.9.1 < 6" - checksum: 10c0/38c1872db4dae69b4eec622db940c7a992d8530e33fbac7df593473ef404312076d9933b4a7ea25c2d401ea5b62ebd64b56aa25b5cdd8e8ba3fd309a39d9d816 - languageName: node - linkType: hard - -"@algolia/autocomplete-shared@npm:1.9.3": - version: 1.9.3 - resolution: "@algolia/autocomplete-shared@npm:1.9.3" - peerDependencies: - "@algolia/client-search": ">= 4.9.1 < 6" - algoliasearch: ">= 4.9.1 < 6" - checksum: 10c0/1aa926532c32be6bb5384c8c0ae51a312c9d79ed7486371218dfcb61c8ea1ed46171bdc9f9b596a266aece104a0ef76d6aac2f9a378a5a6eb4460e638d59f6ae - languageName: node - linkType: hard - -"@algolia/cache-browser-local-storage@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/cache-browser-local-storage@npm:4.24.0" - dependencies: - "@algolia/cache-common": "npm:4.24.0" - checksum: 10c0/68823c3b1c07dab093de98e678e2ff7fcf7a40915a157715f6f51d073e3865086be98cbbe554b7bf9e0514db5dd9e726033e27e566d9e5db059cb5059c3436cc - languageName: node - linkType: hard - -"@algolia/cache-common@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/cache-common@npm:4.24.0" - checksum: 10c0/ad481ad50d7ea92d0cce525757627f4a647b5373dc6d3cbed6405d05cb83f21a110919e7133e5233d5b13c2c8f59ed9e927efdbc82e70571707709075b07d2c6 - languageName: node - linkType: hard - -"@algolia/cache-in-memory@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/cache-in-memory@npm:4.24.0" - dependencies: - "@algolia/cache-common": "npm:4.24.0" - checksum: 10c0/2956600b2722f113373dbb71449f546afb5a0fb1a3d1558a1a3e957b7a630d1f25045c29646c8dbb44cdffe6ff4c9d1219bf63fc9fd8e4d5467381c7150e09f9 - languageName: node - linkType: hard - -"@algolia/client-account@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/client-account@npm:4.24.0" - dependencies: - "@algolia/client-common": "npm:4.24.0" - "@algolia/client-search": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/3dd52dd692a2194eb45844280e6261192d5a4ef99aec729a09a01da5cf071fd77b37c6d164bf8877823efc1484d576068d76ada764a4f0624238a3475bc199b2 - languageName: node - linkType: hard - -"@algolia/client-analytics@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/client-analytics@npm:4.24.0" - dependencies: - "@algolia/client-common": "npm:4.24.0" - "@algolia/client-search": "npm:4.24.0" - "@algolia/requester-common": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/8d02e6d0eb0dcde099832c62fa7d7e9910b2757b4d37e07e1eefb65a12fef7e7ce3d73fda23e8ee02d53953a91efc15086016b1af5e9fea9227dfc0fc61c9f63 - languageName: node - linkType: hard - -"@algolia/client-common@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/client-common@npm:4.24.0" - dependencies: - "@algolia/requester-common": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/9e75d0bb51bb04f099e823e4397d1bac6659e1ecb7c7a73a5eaf9153632d544bd6c62a4961b606490220b236361eb8b7b77a5e4c47f12aefdd2952b14ce2fd18 - languageName: node - linkType: hard - -"@algolia/client-personalization@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/client-personalization@npm:4.24.0" - dependencies: - "@algolia/client-common": "npm:4.24.0" - "@algolia/requester-common": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/9193e032841ae991ce6dd8c8988608d0d83a6785681abf26055812506aaf070db8d8f44403d0270384ff39530677603d103c330a869a397181d594bebe46b4b0 - languageName: node - linkType: hard - -"@algolia/client-search@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/client-search@npm:4.24.0" - dependencies: - "@algolia/client-common": "npm:4.24.0" - "@algolia/requester-common": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/d161235014fa73acc0ff04d737c695b7357c060d31db6d602464b27ba846208c6aeb35b179e76d4c33b51329b77de0c460f6cb21b66d364c18a5534874c7b987 - languageName: node - linkType: hard - -"@algolia/logger-common@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/logger-common@npm:4.24.0" - checksum: 10c0/1ebe93901a2b3ce41696b535d028337c1c6a98a4262868117c16dd603cc8bb106b840e45cf53c08d098cf518e07bedc64a59cc86bef18795dc49031c2c208d31 - languageName: node - linkType: hard - -"@algolia/logger-console@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/logger-console@npm:4.24.0" - dependencies: - "@algolia/logger-common": "npm:4.24.0" - checksum: 10c0/fdfa3983e6c38cc7b69d66e1085ac702e009d693bd49d64b27cad9ba4197788a8784529a8ed9c25e6ccd51cc4ad3a2427241ecc322c22ca2c8ce6a8d4d94fe69 - languageName: node - linkType: hard - -"@algolia/recommend@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/recommend@npm:4.24.0" - dependencies: - "@algolia/cache-browser-local-storage": "npm:4.24.0" - "@algolia/cache-common": "npm:4.24.0" - "@algolia/cache-in-memory": "npm:4.24.0" - "@algolia/client-common": "npm:4.24.0" - "@algolia/client-search": "npm:4.24.0" - "@algolia/logger-common": "npm:4.24.0" - "@algolia/logger-console": "npm:4.24.0" - "@algolia/requester-browser-xhr": "npm:4.24.0" - "@algolia/requester-common": "npm:4.24.0" - "@algolia/requester-node-http": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/685fb5c1d85d7b9fd39d9246b49da5be4199fecc144bb350ed92fc191b66e4e1101ee6df9ca857ac5096f587638fa3366e01ddca0258f11000aa092ed68daea3 - languageName: node - linkType: hard - -"@algolia/requester-browser-xhr@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/requester-browser-xhr@npm:4.24.0" - dependencies: - "@algolia/requester-common": "npm:4.24.0" - checksum: 10c0/2d277b291bcc0a388f114116879c15a96c057f698b026c32e719b354c2e2e03e05b3c304f45d2354eb4dd8dfa519d481af51ce8ef19b6fb4fd6d384cf41373de - languageName: node - linkType: hard - -"@algolia/requester-common@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/requester-common@npm:4.24.0" - checksum: 10c0/cf88ca1f04f4243515bbfa05d7cf51afe6a57904390d9e1ccab799bae20f6fa77e954d9eee9d5c718086582aeb478e271ccf1d5a6a5ab943494250dce820268e - languageName: node - linkType: hard - -"@algolia/requester-node-http@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/requester-node-http@npm:4.24.0" - dependencies: - "@algolia/requester-common": "npm:4.24.0" - checksum: 10c0/e9cef1463f29035a44f12941ddeb343a213ff512c61ade46a07db19b2023f49a5ac12024a3f56d8b9c0c5b2bd32466030c5e27b26a6a6e17773b810388ddb3b7 - languageName: node - linkType: hard - -"@algolia/transporter@npm:4.24.0": - version: 4.24.0 - resolution: "@algolia/transporter@npm:4.24.0" - dependencies: - "@algolia/cache-common": "npm:4.24.0" - "@algolia/logger-common": "npm:4.24.0" - "@algolia/requester-common": "npm:4.24.0" - checksum: 10c0/9eee8e6613c8d2a5562e4df284dc7b0804a7bf80586fd8512ad769dc4829f947a334480378d94efd3cc57ca4d400886eb677786a3c5664f85881093f9e27cab7 - languageName: node - linkType: hard - "@alloc/quick-lru@npm:^5.2.0": version: 5.2.0 resolution: "@alloc/quick-lru@npm:5.2.0" @@ -1824,7 +1618,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": +"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": version: 7.29.0 resolution: "@babel/code-frame@npm:7.29.0" dependencies: @@ -3564,7 +3358,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.8, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.24.1, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": version: 7.28.4 resolution: "@babel/runtime@npm:7.28.4" checksum: 10c0/792ce7af9750fb9b93879cc9d1db175701c4689da890e6ced242ea0207c9da411ccf16dc04e689cc01158b28d7898c40d75598f4559109f761c12ce01e959bf7 @@ -3904,13 +3698,6 @@ __metadata: languageName: node linkType: hard -"@braintree/sanitize-url@npm:^6.0.2": - version: 6.0.4 - resolution: "@braintree/sanitize-url@npm:6.0.4" - checksum: 10c0/5d7bac57f3e49931db83f65aaa4fd22f96caa323bf0c7fcf6851fdbed179a8cf29eaa5dd372d340fc51ca5f44345ea5bc0196b36c8b16179888a7c9044313420 - languageName: node - linkType: hard - "@bufbuild/protobuf@npm:^2.6.2": version: 2.10.1 resolution: "@bufbuild/protobuf@npm:2.10.1" @@ -4004,7 +3791,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.18.3, @codemirror/autocomplete@npm:^6.4.0": +"@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.18.3": version: 6.18.6 resolution: "@codemirror/autocomplete@npm:6.18.6" dependencies: @@ -4016,7 +3803,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.1.3, @codemirror/commands@npm:^6.7.1": +"@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.7.1": version: 6.8.0 resolution: "@codemirror/commands@npm:6.8.0" dependencies: @@ -4028,7 +3815,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.0.1, @codemirror/lang-css@npm:^6.3.1": +"@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.3.1": version: 6.3.1 resolution: "@codemirror/lang-css@npm:6.3.1" dependencies: @@ -4041,7 +3828,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-html@npm:^6.4.0, @codemirror/lang-html@npm:^6.4.8": +"@codemirror/lang-html@npm:^6.4.8": version: 6.4.9 resolution: "@codemirror/lang-html@npm:6.4.9" dependencies: @@ -4058,7 +3845,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.1.2": +"@codemirror/lang-javascript@npm:^6.0.0": version: 6.2.2 resolution: "@codemirror/lang-javascript@npm:6.2.2" dependencies: @@ -4112,7 +3899,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.10.7, @codemirror/language@npm:^6.3.2, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0": +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.10.7, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0": version: 6.10.8 resolution: "@codemirror/language@npm:6.10.8" dependencies: @@ -4148,7 +3935,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.2.0, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.5.0": +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.5.0": version: 6.5.2 resolution: "@codemirror/state@npm:6.5.2" dependencies: @@ -4157,7 +3944,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.35.0, @codemirror/view@npm:^6.35.3, @codemirror/view@npm:^6.7.1": +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.35.0, @codemirror/view@npm:^6.35.3": version: 6.36.4 resolution: "@codemirror/view@npm:6.36.4" dependencies: @@ -4168,60 +3955,6 @@ __metadata: languageName: node linkType: hard -"@codesandbox/nodebox@npm:0.1.8": - version: 0.1.8 - resolution: "@codesandbox/nodebox@npm:0.1.8" - dependencies: - outvariant: "npm:^1.4.0" - strict-event-emitter: "npm:^0.4.3" - checksum: 10c0/f7c3da0d371ea8801aa362259eb8fc5c1a102d9fc49167236fef6a18452fd1dfd60d302b34b5f166aeee336fd9f066d643609beddedcb86451c3a2c290444225 - languageName: node - linkType: hard - -"@codesandbox/sandpack-client@npm:^2.18.2": - version: 2.18.2 - resolution: "@codesandbox/sandpack-client@npm:2.18.2" - dependencies: - "@codesandbox/nodebox": "npm:0.1.8" - buffer: "npm:^6.0.3" - dequal: "npm:^2.0.2" - mime-db: "npm:^1.52.0" - outvariant: "npm:1.4.0" - static-browser-server: "npm:1.0.3" - checksum: 10c0/e25397fc452a6ca0e92638a5420219a2c895c5c33a1390f7fcde25f275d881ab4cdf196ceac168755f5a2d58f160f9e4fdeb0d28d1b22fc761ed2287571fd7ae - languageName: node - linkType: hard - -"@codesandbox/sandpack-react@npm:^2.13.5": - version: 2.18.2 - resolution: "@codesandbox/sandpack-react@npm:2.18.2" - dependencies: - "@codemirror/autocomplete": "npm:^6.4.0" - "@codemirror/commands": "npm:^6.1.3" - "@codemirror/lang-css": "npm:^6.0.1" - "@codemirror/lang-html": "npm:^6.4.0" - "@codemirror/lang-javascript": "npm:^6.1.2" - "@codemirror/language": "npm:^6.3.2" - "@codemirror/state": "npm:^6.2.0" - "@codemirror/view": "npm:^6.7.1" - "@codesandbox/sandpack-client": "npm:^2.18.2" - "@lezer/highlight": "npm:^1.1.3" - "@react-hook/intersection-observer": "npm:^3.1.1" - "@stitches/core": "npm:^1.2.6" - anser: "npm:^2.1.1" - clean-set: "npm:^1.1.2" - dequal: "npm:^2.0.2" - escape-carriage: "npm:^1.3.1" - lz-string: "npm:^1.4.4" - react-devtools-inline: "npm:4.4.0" - react-is: "npm:^17.0.2" - peerDependencies: - react: ^16.8.0 || ^17 || ^18 - react-dom: ^16.8.0 || ^17 || ^18 - checksum: 10c0/6030f6bdd8a6ee1814273d31984345275d48bdc4a436f1898ee66167e06c3b439c4a274112b3cd59471617851f401fa8ba62c4a0741d2a6d1be66628fd5ace33 - languageName: node - linkType: hard - "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" @@ -4441,46 +4174,6 @@ __metadata: languageName: node linkType: hard -"@docsearch/css@npm:3.6.2": - version: 3.6.2 - resolution: "@docsearch/css@npm:3.6.2" - checksum: 10c0/f9f8af55814a8a8dfbac78972cff2c264d4e5508de61d893dbc07544c8e1dcb044803ba150c56f4d245f8f5f88d84fa7f6226038b813850bd602f4bf48123793 - languageName: node - linkType: hard - -"@docsearch/react@npm:^3.6.2": - version: 3.6.2 - resolution: "@docsearch/react@npm:3.6.2" - dependencies: - "@algolia/autocomplete-core": "npm:1.9.3" - "@algolia/autocomplete-preset-algolia": "npm:1.9.3" - "@docsearch/css": "npm:3.6.2" - algoliasearch: "npm:^4.19.1" - peerDependencies: - "@types/react": ">= 16.8.0 < 19.0.0" - react: ">= 16.8.0 < 19.0.0" - react-dom: ">= 16.8.0 < 19.0.0" - search-insights: ">= 1 < 3" - peerDependenciesMeta: - "@types/react": - optional: true - react: - optional: true - react-dom: - optional: true - search-insights: - optional: true - checksum: 10c0/8fcf47de8786d097005912347fe566577361193026d58b610d5540ef26fd3bf1b30bfe986e23357fd1ee5b97f0a5deb102de3bda79c069536e49a9f3d4b0fc76 - languageName: node - linkType: hard - -"@drizzle-team/brocli@npm:^0.10.2": - version: 0.10.2 - resolution: "@drizzle-team/brocli@npm:0.10.2" - checksum: 10c0/3d8b99d680f0b14fea32b45c59b938b6665e0840cc67f04801b1aa3c6747da3c7d01c00e321645034fa100abdba7e0c20ce07cf46fc2ca769ee4cafd97562484 - languageName: node - linkType: hard - "@e2b/code-interpreter@npm:^1.0.4": version: 1.5.1 resolution: "@e2b/code-interpreter@npm:1.5.1" @@ -5102,7 +4795,7 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.13.5, @emotion/cache@npm:^11.14.0": +"@emotion/cache@npm:^11.14.0": version: 11.14.0 resolution: "@emotion/cache@npm:11.14.0" dependencies: @@ -5115,19 +4808,6 @@ __metadata: languageName: node linkType: hard -"@emotion/css@npm:^11.13.5": - version: 11.13.5 - resolution: "@emotion/css@npm:11.13.5" - dependencies: - "@emotion/babel-plugin": "npm:^11.13.5" - "@emotion/cache": "npm:^11.13.5" - "@emotion/serialize": "npm:^1.3.3" - "@emotion/sheet": "npm:^1.4.0" - "@emotion/utils": "npm:^1.4.2" - checksum: 10c0/45d444b08c1a9776046786f1ad8b93297d9e0fb79e6a40b73e9f9c5c20a071f83bae2408e7b98fe526fc123774a18b12ae3c8dc5b5883b8169685ee7b8df9463 - languageName: node - linkType: hard - "@emotion/hash@npm:^0.9.2": version: 0.9.2 resolution: "@emotion/hash@npm:0.9.2" @@ -5274,13 +4954,6 @@ __metadata: languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.0": - version: 0.3.1 - resolution: "@emotion/weak-memoize@npm:0.3.1" - checksum: 10c0/ed514b3cb94bbacece4ac2450d98898066c0a0698bdeda256e312405ca53634cb83c75889b25cd8bbbe185c80f4c05a1f0a0091e1875460ba6be61d0334f0b8a - languageName: node - linkType: hard - "@emotion/weak-memoize@npm:^0.4.0": version: 0.4.0 resolution: "@emotion/weak-memoize@npm:0.4.0" @@ -5317,26 +4990,6 @@ __metadata: languageName: node linkType: hard -"@esbuild-kit/core-utils@npm:^3.3.2": - version: 3.3.2 - resolution: "@esbuild-kit/core-utils@npm:3.3.2" - dependencies: - esbuild: "npm:~0.18.20" - source-map-support: "npm:^0.5.21" - checksum: 10c0/d856f5bd720814593f911d781ed7558a3f8ec1a39802f3831d0eea0d1306e0e2dc11b7b2443af621c413ec6557f1f3034a9a4f1472a4cb40e52cd6e3b356aa05 - languageName: node - linkType: hard - -"@esbuild-kit/esm-loader@npm:^2.5.5": - version: 2.6.5 - resolution: "@esbuild-kit/esm-loader@npm:2.6.5" - dependencies: - "@esbuild-kit/core-utils": "npm:^3.3.2" - get-tsconfig: "npm:^4.7.0" - checksum: 10c0/6894b29176eda62bdce0d458d57f32daed5cb8fcff14cb3ddfbc995cfe3e2fa8599f3b0b1af66db446903b30167f57069f27e9cf79a69cf9b41f557115811cde - languageName: node - linkType: hard - "@esbuild-plugins/node-modules-polyfill@npm:^0.2.2": version: 0.2.2 resolution: "@esbuild-plugins/node-modules-polyfill@npm:0.2.2" @@ -5356,13 +5009,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/aix-ppc64@npm:0.25.11" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/aix-ppc64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/aix-ppc64@npm:0.25.5" @@ -5384,13 +5030,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm64@npm:0.18.20" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm64@npm:0.21.5" @@ -5398,13 +5037,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/android-arm64@npm:0.25.11" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm64@npm:0.25.5" @@ -5426,13 +5058,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-arm@npm:0.18.20" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm@npm:0.21.5" @@ -5440,13 +5065,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/android-arm@npm:0.25.11" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm@npm:0.25.5" @@ -5468,13 +5086,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/android-x64@npm:0.18.20" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-x64@npm:0.21.5" @@ -5482,13 +5093,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/android-x64@npm:0.25.11" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-x64@npm:0.25.5" @@ -5510,13 +5114,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-arm64@npm:0.18.20" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-arm64@npm:0.21.5" @@ -5524,13 +5121,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/darwin-arm64@npm:0.25.11" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-arm64@npm:0.25.5" @@ -5552,13 +5142,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/darwin-x64@npm:0.18.20" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-x64@npm:0.21.5" @@ -5566,13 +5149,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/darwin-x64@npm:0.25.11" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-x64@npm:0.25.5" @@ -5594,13 +5170,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-arm64@npm:0.18.20" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-arm64@npm:0.21.5" @@ -5608,13 +5177,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/freebsd-arm64@npm:0.25.11" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-arm64@npm:0.25.5" @@ -5636,13 +5198,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/freebsd-x64@npm:0.18.20" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-x64@npm:0.21.5" @@ -5650,13 +5205,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/freebsd-x64@npm:0.25.11" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-x64@npm:0.25.5" @@ -5678,13 +5226,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm64@npm:0.18.20" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm64@npm:0.21.5" @@ -5692,13 +5233,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-arm64@npm:0.25.11" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm64@npm:0.25.5" @@ -5720,13 +5254,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-arm@npm:0.18.20" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm@npm:0.21.5" @@ -5734,13 +5261,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-arm@npm:0.25.11" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm@npm:0.25.5" @@ -5762,13 +5282,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ia32@npm:0.18.20" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ia32@npm:0.21.5" @@ -5776,13 +5289,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-ia32@npm:0.25.11" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ia32@npm:0.25.5" @@ -5804,13 +5310,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-loong64@npm:0.18.20" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-loong64@npm:0.21.5" @@ -5818,13 +5317,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-loong64@npm:0.25.11" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-loong64@npm:0.25.5" @@ -5846,13 +5338,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-mips64el@npm:0.18.20" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-mips64el@npm:0.21.5" @@ -5860,13 +5345,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-mips64el@npm:0.25.11" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-mips64el@npm:0.25.5" @@ -5888,13 +5366,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-ppc64@npm:0.18.20" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ppc64@npm:0.21.5" @@ -5902,13 +5373,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-ppc64@npm:0.25.11" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ppc64@npm:0.25.5" @@ -5930,13 +5394,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-riscv64@npm:0.18.20" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-riscv64@npm:0.21.5" @@ -5944,13 +5401,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-riscv64@npm:0.25.11" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-riscv64@npm:0.25.5" @@ -5972,13 +5422,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-s390x@npm:0.18.20" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-s390x@npm:0.21.5" @@ -5986,13 +5429,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-s390x@npm:0.25.11" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-s390x@npm:0.25.5" @@ -6014,13 +5450,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/linux-x64@npm:0.18.20" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-x64@npm:0.21.5" @@ -6028,13 +5457,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/linux-x64@npm:0.25.11" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-x64@npm:0.25.5" @@ -6056,13 +5478,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/netbsd-arm64@npm:0.25.11" - conditions: os=netbsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/netbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-arm64@npm:0.25.5" @@ -6084,13 +5499,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/netbsd-x64@npm:0.18.20" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/netbsd-x64@npm:0.21.5" @@ -6098,13 +5506,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/netbsd-x64@npm:0.25.11" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-x64@npm:0.25.5" @@ -6126,13 +5527,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/openbsd-arm64@npm:0.25.11" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/openbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-arm64@npm:0.25.5" @@ -6154,13 +5548,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/openbsd-x64@npm:0.18.20" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/openbsd-x64@npm:0.21.5" @@ -6168,13 +5555,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/openbsd-x64@npm:0.25.11" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-x64@npm:0.25.5" @@ -6196,13 +5576,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openharmony-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/openharmony-arm64@npm:0.25.11" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/openharmony-arm64@npm:0.25.8": version: 0.25.8 resolution: "@esbuild/openharmony-arm64@npm:0.25.8" @@ -6217,13 +5590,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/sunos-x64@npm:0.18.20" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/sunos-x64@npm:0.21.5" @@ -6231,13 +5597,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/sunos-x64@npm:0.25.11" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/sunos-x64@npm:0.25.5" @@ -6259,13 +5618,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-arm64@npm:0.18.20" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-arm64@npm:0.21.5" @@ -6273,13 +5625,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/win32-arm64@npm:0.25.11" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-arm64@npm:0.25.5" @@ -6301,13 +5646,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-ia32@npm:0.18.20" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-ia32@npm:0.21.5" @@ -6315,13 +5653,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/win32-ia32@npm:0.25.11" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-ia32@npm:0.25.5" @@ -6343,13 +5674,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.18.20": - version: 0.18.20 - resolution: "@esbuild/win32-x64@npm:0.18.20" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-x64@npm:0.21.5" @@ -6357,13 +5681,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.25.11": - version: 0.25.11 - resolution: "@esbuild/win32-x64@npm:0.25.11" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-x64@npm:0.25.5" @@ -6528,7 +5845,7 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react@npm:^0.24.0, @floating-ui/react@npm:^0.24.3": +"@floating-ui/react@npm:^0.24.3": version: 0.24.8 resolution: "@floating-ui/react@npm:0.24.8" dependencies: @@ -6616,57 +5933,6 @@ __metadata: languageName: node linkType: hard -"@formatjs/ecma402-abstract@npm:2.3.3": - version: 2.3.3 - resolution: "@formatjs/ecma402-abstract@npm:2.3.3" - dependencies: - "@formatjs/fast-memoize": "npm:2.2.6" - "@formatjs/intl-localematcher": "npm:0.6.0" - decimal.js: "npm:10" - tslib: "npm:2" - checksum: 10c0/63de990c380a1800bc54d97c4aa13a88a92e73b1680f0f561d03f9bf3e23289b7aafd1a92037527c285bd587a44e20504258ac2cbd4564a4138ce2b4612c1495 - languageName: node - linkType: hard - -"@formatjs/fast-memoize@npm:2.2.6": - version: 2.2.6 - resolution: "@formatjs/fast-memoize@npm:2.2.6" - dependencies: - tslib: "npm:2" - checksum: 10c0/dccdc21105af673e58ec7b04eb17cd6fde1fb1a7e7a446273ca43f7ab97c26d5c0fcc2b9e80d5b54bf9b80354f9e1e681273c0ed26633ec72f0adc2d116dfd7f - languageName: node - linkType: hard - -"@formatjs/icu-messageformat-parser@npm:2.11.1": - version: 2.11.1 - resolution: "@formatjs/icu-messageformat-parser@npm:2.11.1" - dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.3" - "@formatjs/icu-skeleton-parser": "npm:1.8.13" - tslib: "npm:2" - checksum: 10c0/2e4106d564ede73cc52c97fc4270002f2460c3ded10715a095ec6765c48f951b1e9744cc55679abe046e24e4e22c345e738f7477c43d440d1d10a0235b12df37 - languageName: node - linkType: hard - -"@formatjs/icu-skeleton-parser@npm:1.8.13": - version: 1.8.13 - resolution: "@formatjs/icu-skeleton-parser@npm:1.8.13" - dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.3" - tslib: "npm:2" - checksum: 10c0/eddea5b7c43745d05178211b25641319e054747e40b42ffaa93ae9940fd42e6f5654d12d42e6998b91b4de4b67a24e3ed779a37394262ec1dd46e693c166729a - languageName: node - linkType: hard - -"@formatjs/intl-localematcher@npm:0.6.0": - version: 0.6.0 - resolution: "@formatjs/intl-localematcher@npm:0.6.0" - dependencies: - tslib: "npm:2" - checksum: 10c0/90238e633426ff7237ab2bbe017be044fb2fb185a8d59a0652096ddab9cb1ddf64106d58fafd711ea19c4d3455bd966516ab93574ac3b169d9af2325875fae59 - languageName: node - linkType: hard - "@gar/promisify@npm:^1.0.1, @gar/promisify@npm:^1.1.3": version: 1.1.3 resolution: "@gar/promisify@npm:1.1.3" @@ -9236,7 +8502,7 @@ __metadata: languageName: node linkType: hard -"@internationalized/date@npm:^3.5.4, @internationalized/date@npm:^3.7.0": +"@internationalized/date@npm:^3.5.4": version: 3.7.0 resolution: "@internationalized/date@npm:3.7.0" dependencies: @@ -9245,16 +8511,6 @@ __metadata: languageName: node linkType: hard -"@internationalized/message@npm:^3.1.6": - version: 3.1.6 - resolution: "@internationalized/message@npm:3.1.6" - dependencies: - "@swc/helpers": "npm:^0.5.0" - intl-messageformat: "npm:^10.1.0" - checksum: 10c0/8ccb0ed3f39e07c039670fd8a0c24d646c66893acf90f0d937cfbfcd398337004a6599291e32f1ad5c8e5a655042b876f1aefec1bda17a2e54829f4f8dd79586 - languageName: node - linkType: hard - "@internationalized/number@npm:3.6.5": version: 3.6.5 resolution: "@internationalized/number@npm:3.6.5" @@ -9264,7 +8520,7 @@ __metadata: languageName: node linkType: hard -"@internationalized/number@npm:^3.5.3, @internationalized/number@npm:^3.6.0": +"@internationalized/number@npm:^3.5.3": version: 3.6.0 resolution: "@internationalized/number@npm:3.6.0" dependencies: @@ -9273,15 +8529,6 @@ __metadata: languageName: node linkType: hard -"@internationalized/string@npm:^3.2.5": - version: 3.2.5 - resolution: "@internationalized/string@npm:3.2.5" - dependencies: - "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/cb58fdc69857e558bdde5aa7c256af42cfc86cc72cf74893b91c812124e00cc671ff4ef9360052433b43a6b16090345e6b27be267820ca939a21933321bf1f48 - languageName: node - linkType: hard - "@ioredis/commands@npm:^1.1.1": version: 1.2.0 resolution: "@ioredis/commands@npm:1.2.0" @@ -10093,13 +9340,6 @@ __metadata: languageName: node linkType: hard -"@juggle/resize-observer@npm:^3.4.0": - version: 3.4.0 - resolution: "@juggle/resize-observer@npm:3.4.0" - checksum: 10c0/12930242357298c6f2ad5d4ec7cf631dfb344ca7c8c830ab7f64e6ac11eb1aae486901d8d880fd08fb1b257800c160a0da3aee1e7ed9adac0ccbb9b7c5d93347 - languageName: node - linkType: hard - "@kamilkisiela/fast-url-parser@npm:^1.1.4": version: 1.1.4 resolution: "@kamilkisiela/fast-url-parser@npm:1.1.4" @@ -10107,207 +9347,6 @@ __metadata: languageName: node linkType: hard -"@keystar/ui@npm:^0.7.17": - version: 0.7.17 - resolution: "@keystar/ui@npm:0.7.17" - dependencies: - "@babel/runtime": "npm:^7.18.3" - "@emotion/css": "npm:^11.13.5" - "@floating-ui/react": "npm:^0.24.0" - "@internationalized/date": "npm:^3.7.0" - "@internationalized/string": "npm:^3.2.5" - "@react-aria/actiongroup": "npm:^3.7.12" - "@react-aria/breadcrumbs": "npm:^3.5.20" - "@react-aria/button": "npm:^3.11.1" - "@react-aria/calendar": "npm:^3.7.0" - "@react-aria/checkbox": "npm:^3.15.1" - "@react-aria/combobox": "npm:^3.11.1" - "@react-aria/datepicker": "npm:^3.13.0" - "@react-aria/dialog": "npm:^3.5.21" - "@react-aria/dnd": "npm:^3.8.1" - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/gridlist": "npm:^3.10.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/link": "npm:^3.7.8" - "@react-aria/listbox": "npm:^3.14.0" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/menu": "npm:^3.17.0" - "@react-aria/meter": "npm:^3.4.19" - "@react-aria/numberfield": "npm:^3.11.10" - "@react-aria/overlays": "npm:^3.25.0" - "@react-aria/progress": "npm:^3.4.19" - "@react-aria/radio": "npm:^3.10.11" - "@react-aria/searchfield": "npm:^3.8.0" - "@react-aria/select": "npm:^3.15.1" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/separator": "npm:^3.4.5" - "@react-aria/ssr": "npm:^3.9.7" - "@react-aria/switch": "npm:^3.6.11" - "@react-aria/table": "npm:^3.16.1" - "@react-aria/tabs": "npm:^3.9.9" - "@react-aria/tag": "npm:^3.4.9" - "@react-aria/textfield": "npm:^3.16.0" - "@react-aria/toast": "npm:3.0.0-beta.19" - "@react-aria/tooltip": "npm:^3.7.11" - "@react-aria/utils": "npm:^3.27.0" - "@react-aria/virtualizer": "npm:^4.1.1" - "@react-aria/visually-hidden": "npm:^3.8.19" - "@react-stately/calendar": "npm:^3.7.0" - "@react-stately/checkbox": "npm:^3.6.11" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/combobox": "npm:^3.10.2" - "@react-stately/data": "npm:^3.12.1" - "@react-stately/datepicker": "npm:^3.12.0" - "@react-stately/dnd": "npm:^3.5.1" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/layout": "npm:^4.1.1" - "@react-stately/list": "npm:^3.11.2" - "@react-stately/menu": "npm:^3.9.1" - "@react-stately/numberfield": "npm:^3.9.9" - "@react-stately/overlays": "npm:^3.6.13" - "@react-stately/radio": "npm:^3.10.10" - "@react-stately/searchfield": "npm:^3.5.9" - "@react-stately/select": "npm:^3.6.10" - "@react-stately/selection": "npm:^3.19.0" - "@react-stately/table": "npm:^3.13.1" - "@react-stately/tabs": "npm:^3.7.1" - "@react-stately/toast": "npm:3.0.0-beta.7" - "@react-stately/toggle": "npm:^3.8.1" - "@react-stately/tooltip": "npm:^3.5.1" - "@react-stately/tree": "npm:^3.8.7" - "@react-stately/utils": "npm:^3.10.5" - "@react-stately/virtualizer": "npm:^4.2.1" - "@react-types/actionbar": "npm:^3.1.12" - "@react-types/actiongroup": "npm:^3.4.14" - "@react-types/breadcrumbs": "npm:^3.7.10" - "@react-types/button": "npm:^3.10.2" - "@react-types/calendar": "npm:^3.6.0" - "@react-types/combobox": "npm:^3.13.2" - "@react-types/datepicker": "npm:^3.10.0" - "@react-types/grid": "npm:^3.2.11" - "@react-types/menu": "npm:^3.9.14" - "@react-types/numberfield": "npm:^3.8.8" - "@react-types/overlays": "npm:^3.8.12" - "@react-types/radio": "npm:^3.8.6" - "@react-types/select": "npm:^3.9.9" - "@react-types/shared": "npm:^3.27.0" - "@react-types/switch": "npm:^3.5.8" - "@react-types/table": "npm:^3.10.4" - "@react-types/tabs": "npm:^3.3.12" - "@types/react": "npm:^19.0.8" - emery: "npm:^1.4.1" - facepaint: "npm:^1.2.1" - peerDependencies: - next: ">=14" - react: ^18.2.0 || ^19.0.0 - react-dom: ^18.2.0 || ^19.0.0 - peerDependenciesMeta: - next: - optional: true - checksum: 10c0/5e22881471ef345a5611f1dd3f27e9644390718590e387b0fd6dab38cfdedda3f9257dd9898ef2385bc7c96ae06d7cc647c3512f237ef14badf5766e10803400 - languageName: node - linkType: hard - -"@keystatic/core@npm:^0.5.45": - version: 0.5.45 - resolution: "@keystatic/core@npm:0.5.45" - dependencies: - "@babel/runtime": "npm:^7.18.3" - "@braintree/sanitize-url": "npm:^6.0.2" - "@emotion/weak-memoize": "npm:^0.3.0" - "@floating-ui/react": "npm:^0.24.0" - "@internationalized/string": "npm:^3.2.5" - "@keystar/ui": "npm:^0.7.17" - "@markdoc/markdoc": "npm:^0.4.0" - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/overlays": "npm:^3.25.0" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-aria/visually-hidden": "npm:^3.8.19" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/list": "npm:^3.11.2" - "@react-stately/overlays": "npm:^3.6.13" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/shared": "npm:^3.27.0" - "@sindresorhus/slugify": "npm:^1.1.2" - "@toeverything/y-indexeddb": "npm:^0.10.0-canary.9" - "@ts-gql/tag": "npm:^0.7.3" - "@types/react": "npm:^19.0.8" - "@urql/core": "npm:^5.0.4" - "@urql/exchange-auth": "npm:^2.2.0" - "@urql/exchange-graphcache": "npm:^7.1.2" - "@urql/exchange-persisted": "npm:^4.3.0" - cookie: "npm:^1.0.0" - emery: "npm:^1.4.1" - escape-string-regexp: "npm:^4.0.0" - fast-deep-equal: "npm:^3.1.3" - graphql: "npm:^16.6.0" - idb-keyval: "npm:^6.2.1" - ignore: "npm:^5.2.4" - is-hotkey: "npm:^0.2.0" - js-yaml: "npm:^4.1.0" - lib0: "npm:^0.2.88" - lru-cache: "npm:^10.2.0" - match-sorter: "npm:^6.3.1" - mdast-util-from-markdown: "npm:^2.0.0" - mdast-util-gfm-autolink-literal: "npm:^2.0.0" - mdast-util-gfm-strikethrough: "npm:^2.0.0" - mdast-util-gfm-table: "npm:^2.0.0" - mdast-util-mdx: "npm:^3.0.0" - mdast-util-to-markdown: "npm:^2.1.0" - micromark-extension-gfm-autolink-literal: "npm:^2.0.0" - micromark-extension-gfm-strikethrough: "npm:^2.0.0" - micromark-extension-gfm-table: "npm:^2.0.0" - micromark-extension-mdxjs: "npm:^3.0.0" - minimatch: "npm:^9.0.3" - partysocket: "npm:^0.0.22" - prosemirror-commands: "npm:^1.5.1" - prosemirror-history: "npm:^1.3.0" - prosemirror-keymap: "npm:^1.2.1" - prosemirror-model: "npm:^1.19.0" - prosemirror-state: "npm:^1.4.2" - prosemirror-tables: "npm:^1.3.4" - prosemirror-transform: "npm:^1.7.1" - prosemirror-view: "npm:^1.30.2" - scroll-into-view-if-needed: "npm:^3.0.3" - slate: "npm:^0.91.4" - slate-history: "npm:^0.86.0" - slate-react: "npm:^0.91.9" - superstruct: "npm:^1.0.4" - unist-util-visit: "npm:^5.0.0" - urql: "npm:^4.1.0" - y-prosemirror: "npm:^1.2.2" - y-protocols: "npm:^1.0.6" - yjs: "npm:^13.6.11" - peerDependencies: - react: ^18.2.0 || ^19.0.0 - react-dom: ^18.2.0 || ^19.0.0 - checksum: 10c0/780b2f4236c97d37ea43a0d6854ab81ecf7fb57b6bbf5f90780b65f2372610245420fd5b519a15780aadf465b0f8527e287457211f5362764cb5af8c0ac6340f - languageName: node - linkType: hard - -"@keystatic/next@npm:^5.0.3": - version: 5.0.3 - resolution: "@keystatic/next@npm:5.0.3" - dependencies: - "@babel/runtime": "npm:^7.18.3" - "@types/react": "npm:^19.0.8" - chokidar: "npm:^3.5.3" - server-only: "npm:^0.0.1" - peerDependencies: - "@keystatic/core": "*" - next: ">=14" - react: ^18.2.0 || ^19.0.0 - react-dom: ^18.2.0 || ^19.0.0 - checksum: 10c0/5b6f101c8400efc1bd8a5753285842447f4f867950f64f8af0457f6dffc6abf92287ecdcf2f618039def64a2679b7843f5786743a20a7dde9131b6975795cab7 - languageName: node - linkType: hard - "@leichtgewicht/ip-codec@npm:^2.0.1": version: 2.0.5 resolution: "@leichtgewicht/ip-codec@npm:2.0.5" @@ -10775,50 +9814,7 @@ __metadata: languageName: node linkType: hard -"@markdoc/markdoc@npm:^0.4.0": - version: 0.4.0 - resolution: "@markdoc/markdoc@npm:0.4.0" - dependencies: - "@types/markdown-it": "npm:12.2.3" - peerDependencies: - "@types/react": "*" - react: "*" - dependenciesMeta: - "@types/markdown-it": - optional: true - peerDependenciesMeta: - "@types/react": - optional: true - react: - optional: true - checksum: 10c0/32619bfa682681ad5feb337997050bf1c65e732787ac7a63aa7e25e4224a73d9a07cf9c2c18660342d3f4b1d0fa4c15194761fd72657be2e5d20f9a7a8e81988 - languageName: node - linkType: hard - -"@markdoc/markdoc@npm:^0.5.1": - version: 0.5.1 - resolution: "@markdoc/markdoc@npm:0.5.1" - dependencies: - "@types/linkify-it": "npm:^3.0.1" - "@types/markdown-it": "npm:12.2.3" - peerDependencies: - "@types/react": "*" - react: "*" - dependenciesMeta: - "@types/linkify-it": - optional: true - "@types/markdown-it": - optional: true - peerDependenciesMeta: - "@types/react": - optional: true - react: - optional: true - checksum: 10c0/cbbfa2454f730316007517cf948023612b876a77bfd62ddb396df95bcf16aafec1d93bc9fc5d9cec3267b3eb4693777783b164baa0d6174dc3f4cf062544cd0a - languageName: node - linkType: hard - -"@mdx-js/mdx@npm:^3.0.1, @mdx-js/mdx@npm:^3.1.1": +"@mdx-js/mdx@npm:^3.1.1": version: 3.1.1 resolution: "@mdx-js/mdx@npm:3.1.1" dependencies: @@ -10851,7 +9847,7 @@ __metadata: languageName: node linkType: hard -"@mdx-js/react@npm:^3.0.0, @mdx-js/react@npm:^3.0.1, @mdx-js/react@npm:^3.1.1": +"@mdx-js/react@npm:^3.0.0, @mdx-js/react@npm:^3.1.1": version: 3.1.1 resolution: "@mdx-js/react@npm:3.1.1" dependencies: @@ -12537,13 +11533,6 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.2.35": - version: 14.2.35 - resolution: "@next/env@npm:14.2.35" - checksum: 10c0/e042f1771f91d4f69b296aa7f633df216464df5844e5e1ea46105b76b2e519093dff4b25df9a24576916811b65a7e896202b2540649af5aa54bd7f8b19d7b6ab - languageName: node - linkType: hard - "@next/env@npm:16.0.10": version: 16.0.10 resolution: "@next/env@npm:16.0.10" @@ -12558,13 +11547,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-darwin-arm64@npm:14.2.33" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@next/swc-darwin-arm64@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-darwin-arm64@npm:16.0.10" @@ -12579,13 +11561,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-darwin-x64@npm:14.2.33" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@next/swc-darwin-x64@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-darwin-x64@npm:16.0.10" @@ -12600,13 +11575,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-linux-arm64-gnu@npm:14.2.33" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - "@next/swc-linux-arm64-gnu@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-linux-arm64-gnu@npm:16.0.10" @@ -12621,13 +11589,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-linux-arm64-musl@npm:14.2.33" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - "@next/swc-linux-arm64-musl@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-linux-arm64-musl@npm:16.0.10" @@ -12642,13 +11603,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-linux-x64-gnu@npm:14.2.33" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - "@next/swc-linux-x64-gnu@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-linux-x64-gnu@npm:16.0.10" @@ -12663,13 +11617,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-linux-x64-musl@npm:14.2.33" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - "@next/swc-linux-x64-musl@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-linux-x64-musl@npm:16.0.10" @@ -12684,13 +11631,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-win32-arm64-msvc@npm:14.2.33" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@next/swc-win32-arm64-msvc@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-win32-arm64-msvc@npm:16.0.10" @@ -12705,20 +11645,6 @@ __metadata: languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-win32-ia32-msvc@npm:14.2.33" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@next/swc-win32-x64-msvc@npm:14.2.33": - version: 14.2.33 - resolution: "@next/swc-win32-x64-msvc@npm:14.2.33" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@next/swc-win32-x64-msvc@npm:16.0.10": version: 16.0.10 resolution: "@next/swc-win32-x64-msvc@npm:16.0.10" @@ -12785,28 +11711,6 @@ __metadata: languageName: node linkType: hard -"@nivo/calendar@npm:^0.99.0": - version: 0.99.0 - resolution: "@nivo/calendar@npm:0.99.0" - dependencies: - "@nivo/core": "npm:0.99.0" - "@nivo/legends": "npm:0.99.0" - "@nivo/text": "npm:0.99.0" - "@nivo/theming": "npm:0.99.0" - "@nivo/tooltip": "npm:0.99.0" - "@types/d3-scale": "npm:^4.0.8" - "@types/d3-time": "npm:^1.0.10" - "@types/d3-time-format": "npm:^3.0.0" - d3-scale: "npm:^4.0.2" - d3-time: "npm:^1.0.10" - d3-time-format: "npm:^3.0.0" - lodash: "npm:^4.17.21" - peerDependencies: - react: ^16.14 || ^17.0 || ^18.0 || ^19.0 - checksum: 10c0/b647566eb890e7fc839bc36de99c5426f62c11b35841fcb54afca167c45150ea159ef4a7a1706c3b1ca2ca12da99d6b8b26fe5499656d037deea92e35a4cfa9a - languageName: node - linkType: hard - "@nivo/colors@npm:0.99.0": version: 0.99.0 resolution: "@nivo/colors@npm:0.99.0" @@ -14305,7 +13209,7 @@ __metadata: languageName: node linkType: hard -"@open-draft/deferred-promise@npm:^2.1.0, @open-draft/deferred-promise@npm:^2.2.0": +"@open-draft/deferred-promise@npm:^2.2.0": version: 2.2.0 resolution: "@open-draft/deferred-promise@npm:2.2.0" checksum: 10c0/eafc1b1d0fc8edb5e1c753c5e0f3293410b40dde2f92688211a54806d4136887051f39b98c1950370be258483deac9dfd17cf8b96557553765198ef2547e4549 @@ -17220,829 +16124,6 @@ __metadata: languageName: node linkType: hard -"@react-aria/actiongroup@npm:^3.7.12": - version: 3.7.12 - resolution: "@react-aria/actiongroup@npm:3.7.12" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/list": "npm:^3.11.2" - "@react-types/actiongroup": "npm:^3.4.14" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/78856145df20a03a4122adcd48915ad4396678bea2d03c53e3797badfb66d0e6e446387a64c00cb24e8941fc244101062577ebaf15a7663b3879ebbe3fa371a2 - languageName: node - linkType: hard - -"@react-aria/breadcrumbs@npm:^3.5.20": - version: 3.5.20 - resolution: "@react-aria/breadcrumbs@npm:3.5.20" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/link": "npm:^3.7.8" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/breadcrumbs": "npm:^3.7.10" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7fe0da9572c3e028abe406a2723c33a2be33b883f217b2b98f5a6edf69c06b5a25b285ec1390169fa003003b4e48d14d398ab676e1f02a5fc70dcac2079cea93 - languageName: node - linkType: hard - -"@react-aria/button@npm:^3.11.1": - version: 3.11.1 - resolution: "@react-aria/button@npm:3.11.1" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/toolbar": "npm:3.0.0-beta.12" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/toggle": "npm:^3.8.1" - "@react-types/button": "npm:^3.10.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/65ceb0f5520c83495cc6cdea93bd268c33ce06d6bcd1817efb6fad55724e3df99285a330efcc5a50f6cc81d124d47bdd99e3d84825c9f4a8c7f2b03e13a9ec1d - languageName: node - linkType: hard - -"@react-aria/calendar@npm:^3.7.0": - version: 3.7.0 - resolution: "@react-aria/calendar@npm:3.7.0" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/calendar": "npm:^3.7.0" - "@react-types/button": "npm:^3.10.2" - "@react-types/calendar": "npm:^3.6.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9a93cf7e4ed3c646fe6931e1d692f8f78e06c063612b49c4bd9c4a0a900cb270ab110be1e9854ec529eef2203a6697b3ddf58d78291898eff6718b6f87ec8d34 - languageName: node - linkType: hard - -"@react-aria/checkbox@npm:^3.15.1": - version: 3.15.1 - resolution: "@react-aria/checkbox@npm:3.15.1" - dependencies: - "@react-aria/form": "npm:^3.0.12" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/toggle": "npm:^3.10.11" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/checkbox": "npm:^3.6.11" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/toggle": "npm:^3.8.1" - "@react-types/checkbox": "npm:^3.9.1" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/599c268cf6f70fe9a3aa32848d6514b7a6342852eef5baa1237d4c3fbc724cc283359b3c41490cd81b81e52451f4e1cf4518907962fe28d5f9e921f7e8fa3add - languageName: node - linkType: hard - -"@react-aria/combobox@npm:^3.11.1": - version: 3.11.1 - resolution: "@react-aria/combobox@npm:3.11.1" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/listbox": "npm:^3.14.0" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/menu": "npm:^3.17.0" - "@react-aria/overlays": "npm:^3.25.0" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/textfield": "npm:^3.16.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/combobox": "npm:^3.10.2" - "@react-stately/form": "npm:^3.1.1" - "@react-types/button": "npm:^3.10.2" - "@react-types/combobox": "npm:^3.13.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/963854852adf59d7620f8c1bf0c226a3fb33ec1981d25aa5ad48e0399e3edb2167b4fd01dd147ceeb6a3ec7dd81ed0cc79032393e52347b5330cf05f18bcbe33 - languageName: node - linkType: hard - -"@react-aria/datepicker@npm:^3.13.0": - version: 3.13.0 - resolution: "@react-aria/datepicker@npm:3.13.0" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@internationalized/number": "npm:^3.6.0" - "@internationalized/string": "npm:^3.2.5" - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/form": "npm:^3.0.12" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/spinbutton": "npm:^3.6.11" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/datepicker": "npm:^3.12.0" - "@react-stately/form": "npm:^3.1.1" - "@react-types/button": "npm:^3.10.2" - "@react-types/calendar": "npm:^3.6.0" - "@react-types/datepicker": "npm:^3.10.0" - "@react-types/dialog": "npm:^3.5.15" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a366ea5ec458ca5a56fb1f4c096bcf4139966420eaa357ee86b382ab3ac14ada5aa49a1a6ba4d2055c2faae170ff8127bbee9882c65ab809004879d070ab37bf - languageName: node - linkType: hard - -"@react-aria/dialog@npm:^3.5.21": - version: 3.5.21 - resolution: "@react-aria/dialog@npm:3.5.21" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/overlays": "npm:^3.25.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/dialog": "npm:^3.5.15" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/1a54912edea81917a089bb3568530f880ac131af30d13f608447d84dbabbdf8c69ef15c6d336cdda748ff734f75b06e2157849d4a1b9cfc20b70f984a728dfd2 - languageName: node - linkType: hard - -"@react-aria/dnd@npm:^3.8.1": - version: 3.8.1 - resolution: "@react-aria/dnd@npm:3.8.1" - dependencies: - "@internationalized/string": "npm:^3.2.5" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/overlays": "npm:^3.25.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/dnd": "npm:^3.5.1" - "@react-types/button": "npm:^3.10.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/282c85752c155b4f5d1e5788a94cf6a047c538bc25ff07687402bb4535763ea62d17a6f4756e2309fb81ede29c84369692bf5d490c5c189775966ebc3a35da2f - languageName: node - linkType: hard - -"@react-aria/focus@npm:^3.19.1": - version: 3.19.1 - resolution: "@react-aria/focus@npm:3.19.1" - dependencies: - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - clsx: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3cc0c971dea11a187cbda3ff35b43a8f6d85d1b889c70dc3ffd4ede3aaa0d6038809f868be95f23d84c04c4738ec654bf97fb8de501f2ee0765e1e5ba1482102 - languageName: node - linkType: hard - -"@react-aria/form@npm:^3.0.12": - version: 3.0.12 - resolution: "@react-aria/form@npm:3.0.12" - dependencies: - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/form": "npm:^3.1.1" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/1a880f4aacdb2f31cc0c013e3636fc0b8908dfc404e9b5b0d3907eb6391141a40084377b1e53e5e6ed59aa9e6d3a4ee9b5e80a696364d6d036ab88d503b43691 - languageName: node - linkType: hard - -"@react-aria/grid@npm:^3.11.1": - version: 3.11.1 - resolution: "@react-aria/grid@npm:3.11.1" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/grid": "npm:^3.10.1" - "@react-stately/selection": "npm:^3.19.0" - "@react-types/checkbox": "npm:^3.9.1" - "@react-types/grid": "npm:^3.2.11" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/37c98866b9c7c39328011e34412e29ac62ce08d19c35ab9236db89d0844b72087c4d092b8d760963ff25338d4c40d1c88688e479182d8cc9ccee7f54dc8ee462 - languageName: node - linkType: hard - -"@react-aria/gridlist@npm:^3.10.1": - version: 3.10.1 - resolution: "@react-aria/gridlist@npm:3.10.1" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/grid": "npm:^3.11.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/list": "npm:^3.11.2" - "@react-stately/tree": "npm:^3.8.7" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/aa1cb5d99d01b1fdd951abfa7642110085717d7b1b817e20639aad0bb85b78e6a6eaa94e94bde89cc3e7ad6fae0a8ef1885a946dac6d0b1d702a666b12ef6ad1 - languageName: node - linkType: hard - -"@react-aria/i18n@npm:^3.12.5": - version: 3.12.5 - resolution: "@react-aria/i18n@npm:3.12.5" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@internationalized/message": "npm:^3.1.6" - "@internationalized/number": "npm:^3.6.0" - "@internationalized/string": "npm:^3.2.5" - "@react-aria/ssr": "npm:^3.9.7" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d87afa6029a2f94e88b76ad74f34b478fe0aab6425c73e3569c90d83f12c1f01c473d6a79018d3e0e15b28f3a123aed7eb4ab9ca371ce48e875d77e5521b39df - languageName: node - linkType: hard - -"@react-aria/interactions@npm:^3.23.0": - version: 3.23.0 - resolution: "@react-aria/interactions@npm:3.23.0" - dependencies: - "@react-aria/ssr": "npm:^3.9.7" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/913c6e0c585a8a58af4efc6c5081093b1588d12e92e5f072471481e64c8690f16f233ee41765e79956c7f83400c17e6e1da7e82437581e393a3344d691177891 - languageName: node - linkType: hard - -"@react-aria/label@npm:^3.7.14": - version: 3.7.14 - resolution: "@react-aria/label@npm:3.7.14" - dependencies: - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/07545e8d4706246be6b181cdf9b628b3c8471aea2ed8168f26193142672c45958b31ea92c5cac5498f324d3c96a2cde73d36d26bf70a460c39cf5fe1db36911b - languageName: node - linkType: hard - -"@react-aria/landmark@npm:3.0.0-beta.18": - version: 3.0.0-beta.18 - resolution: "@react-aria/landmark@npm:3.0.0-beta.18" - dependencies: - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - use-sync-external-store: "npm:^1.2.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/17c15f06ca1c997bde48ad3fcf611c0eb4d62125ebea445d5bf87ac6a13ec438cd6a5577c179982b2f8897816c58a6e2c4a9a93a9ea5ff186c3520b9f9729895 - languageName: node - linkType: hard - -"@react-aria/link@npm:^3.7.8": - version: 3.7.8 - resolution: "@react-aria/link@npm:3.7.8" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/link": "npm:^3.5.10" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/bc7c3175e4acde4d8803307175dec0ecf21f6ce9544e254b94742b81057a73f13286fc06d2fd4e045486a4a34aa0b8f081f58c76d5fe18b238a54f85110d4a9b - languageName: node - linkType: hard - -"@react-aria/listbox@npm:^3.14.0": - version: 3.14.0 - resolution: "@react-aria/listbox@npm:3.14.0" - dependencies: - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/list": "npm:^3.11.2" - "@react-types/listbox": "npm:^3.5.4" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/fbf1992e77efd943be5559ac9230c50a871079c52443f4ccbf32cf4534b9719dc476d7cde1f92f70c413d68542d183e5dfc017a1cf442e0612ed3ee7be351a89 - languageName: node - linkType: hard - -"@react-aria/live-announcer@npm:^3.4.1": - version: 3.4.1 - resolution: "@react-aria/live-announcer@npm:3.4.1" - dependencies: - "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/285ce2e72e607c6e2793a3e8978bdaa388aad34168de3211bc88f78ec994a393ce1a4f3e728d8c57d7acc8a7ce1ca1e926c8badc371e547af7f4e3d55a99c1c8 - languageName: node - linkType: hard - -"@react-aria/menu@npm:^3.17.0": - version: 3.17.0 - resolution: "@react-aria/menu@npm:3.17.0" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/overlays": "npm:^3.25.0" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/menu": "npm:^3.9.1" - "@react-stately/selection": "npm:^3.19.0" - "@react-stately/tree": "npm:^3.8.7" - "@react-types/button": "npm:^3.10.2" - "@react-types/menu": "npm:^3.9.14" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ee209278cf8dad43de526072d5f971ea3132eaee9071864221fbb9ab376ac01a70627667b0eff9c0e01a353feec82eb05aacfd2dbbdd3f64a555676ef8555a88 - languageName: node - linkType: hard - -"@react-aria/meter@npm:^3.4.19": - version: 3.4.19 - resolution: "@react-aria/meter@npm:3.4.19" - dependencies: - "@react-aria/progress": "npm:^3.4.19" - "@react-types/meter": "npm:^3.4.6" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/c6a688f410c588a5735b09804b2b86ee8a2ba1db01ebc8f0fe9aaa0661f1f28fe0de718f49f7a90b476bcb2d8eec0b005828bcfdabeacffe8607caf47afb23d3 - languageName: node - linkType: hard - -"@react-aria/numberfield@npm:^3.11.10": - version: 3.11.10 - resolution: "@react-aria/numberfield@npm:3.11.10" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/spinbutton": "npm:^3.6.11" - "@react-aria/textfield": "npm:^3.16.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/numberfield": "npm:^3.9.9" - "@react-types/button": "npm:^3.10.2" - "@react-types/numberfield": "npm:^3.8.8" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/4b456f208c31086df14d6d5494fdae22fc184f54c2f1965f71a911fb62e77b0379c8f892223112ce4bca022ce3fdcf8579fc3c51fbf5730c2e98ac8731e9ac56 - languageName: node - linkType: hard - -"@react-aria/overlays@npm:^3.25.0": - version: 3.25.0 - resolution: "@react-aria/overlays@npm:3.25.0" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/ssr": "npm:^3.9.7" - "@react-aria/utils": "npm:^3.27.0" - "@react-aria/visually-hidden": "npm:^3.8.19" - "@react-stately/overlays": "npm:^3.6.13" - "@react-types/button": "npm:^3.10.2" - "@react-types/overlays": "npm:^3.8.12" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b10e39a4c489340623d685e13980fcbc47d7091d7ac7a90cd6df2cd2821add4e2ed7c4481782cd90cc53f05ad399ff93de7779d8a75c910dfdb1450bf39d4cce - languageName: node - linkType: hard - -"@react-aria/progress@npm:^3.4.19": - version: 3.4.19 - resolution: "@react-aria/progress@npm:3.4.19" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/progress": "npm:^3.5.9" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/0fbcebfd03e1f21f47230e1a09d5485873b7267902dc0621844282d9727d9bc136e9d55dc904a3d0a44157cbd5274e786e416f87661eaf8f1a4f6649dc9e9b63 - languageName: node - linkType: hard - -"@react-aria/radio@npm:^3.10.11": - version: 3.10.11 - resolution: "@react-aria/radio@npm:3.10.11" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/form": "npm:^3.0.12" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/radio": "npm:^3.10.10" - "@react-types/radio": "npm:^3.8.6" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/219b44d0cbd62047a60bd980b3c0ef097f25e6b096a7cc738d098ca6311f44773d21fad8c29b0ce7760fba2776088f471c8794d105c97e581a55169c46a23156 - languageName: node - linkType: hard - -"@react-aria/searchfield@npm:^3.8.0": - version: 3.8.0 - resolution: "@react-aria/searchfield@npm:3.8.0" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/textfield": "npm:^3.16.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/searchfield": "npm:^3.5.9" - "@react-types/button": "npm:^3.10.2" - "@react-types/searchfield": "npm:^3.5.11" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/37b6a747e6fa0dbacf575fbcdc1ed538a712bc7713a315ea2c5709389652973eb8846476ee614c0eb1c46cc350c9930ae34bebaa8104e0d2fb61900bdf7199f4 - languageName: node - linkType: hard - -"@react-aria/select@npm:^3.15.1": - version: 3.15.1 - resolution: "@react-aria/select@npm:3.15.1" - dependencies: - "@react-aria/form": "npm:^3.0.12" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/listbox": "npm:^3.14.0" - "@react-aria/menu": "npm:^3.17.0" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-aria/visually-hidden": "npm:^3.8.19" - "@react-stately/select": "npm:^3.6.10" - "@react-types/button": "npm:^3.10.2" - "@react-types/select": "npm:^3.9.9" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/60ddef50070d0aa819dbaed4c5a969941a9baa16697cb8c8741a3d9c6d636ca10b078aef82253b0a76a7a91eebbbb226624fa1b0d65410115190971aecf91966 - languageName: node - linkType: hard - -"@react-aria/selection@npm:^3.22.0": - version: 3.22.0 - resolution: "@react-aria/selection@npm:3.22.0" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/selection": "npm:^3.19.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/eeac43f98e6b76f63e2f44df85f01e7a201a04c8935fa95c73e072bc0bfcc8598f48ec61a20b8219a22e577817ac2194f16104f8b4e7e9bd0693a39ab2a503b6 - languageName: node - linkType: hard - -"@react-aria/separator@npm:^3.4.5": - version: 3.4.5 - resolution: "@react-aria/separator@npm:3.4.5" - dependencies: - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a3146ad965f29c32d9d1d25a1974985496c76e9006d48174ee5a4cfe060b69f6c10db776c9af3e5c59dba91f1be3703ceca4a161277b13485f81376d13ffa7e6 - languageName: node - linkType: hard - -"@react-aria/spinbutton@npm:^3.6.11": - version: 3.6.11 - resolution: "@react-aria/spinbutton@npm:3.6.11" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/button": "npm:^3.10.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/33b6a090c2956de7feb6971d5aaca6bfa5238688f88295e0bbacb8d026979a88332c8b1d100a38b1091ca38803ca90b5bb91c9dec90b1f29200d1b8823593e29 - languageName: node - linkType: hard - -"@react-aria/ssr@npm:^3.9.7": - version: 3.9.7 - resolution: "@react-aria/ssr@npm:3.9.7" - dependencies: - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/37168cd81b1e8223aedb906c1333381f3c436dadf58cbd675606ced314605ce5c49eee5c831309648bfbab78a8598c344be636a85962c742ebf11ae7e87ee93e - languageName: node - linkType: hard - -"@react-aria/switch@npm:^3.6.11": - version: 3.6.11 - resolution: "@react-aria/switch@npm:3.6.11" - dependencies: - "@react-aria/toggle": "npm:^3.10.11" - "@react-stately/toggle": "npm:^3.8.1" - "@react-types/shared": "npm:^3.27.0" - "@react-types/switch": "npm:^3.5.8" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/632244350b935544b70322b81f3ec0381f28433c693a351772131c9f67df836cb518635faea791de740391a1c4ee09e3dabb686bafc4534014e7d23cdfac7721 - languageName: node - linkType: hard - -"@react-aria/table@npm:^3.16.1": - version: 3.16.1 - resolution: "@react-aria/table@npm:3.16.1" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/grid": "npm:^3.11.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/live-announcer": "npm:^3.4.1" - "@react-aria/utils": "npm:^3.27.0" - "@react-aria/visually-hidden": "npm:^3.8.19" - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/flags": "npm:^3.0.5" - "@react-stately/table": "npm:^3.13.1" - "@react-types/checkbox": "npm:^3.9.1" - "@react-types/grid": "npm:^3.2.11" - "@react-types/shared": "npm:^3.27.0" - "@react-types/table": "npm:^3.10.4" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2592a2cbb28de3b3d07bf7697cac552129dcd6c6033afb5b27dbc77308132255564a38cba36d42e50c527ec5b077590b922f7309354d6fb0a8483c7e11645f10 - languageName: node - linkType: hard - -"@react-aria/tabs@npm:^3.9.9": - version: 3.9.9 - resolution: "@react-aria/tabs@npm:3.9.9" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/tabs": "npm:^3.7.1" - "@react-types/shared": "npm:^3.27.0" - "@react-types/tabs": "npm:^3.3.12" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ba89e1f590d282659752230b9b039239b6b583425bf49b70ad14e23c378ba08e0484580b28f44d0bccfe0e6fd55cc82057249a8d478277f1ed34674aa84a1a9e - languageName: node - linkType: hard - -"@react-aria/tag@npm:^3.4.9": - version: 3.4.9 - resolution: "@react-aria/tag@npm:3.4.9" - dependencies: - "@react-aria/gridlist": "npm:^3.10.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/selection": "npm:^3.22.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/list": "npm:^3.11.2" - "@react-types/button": "npm:^3.10.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b4bbd2bc09668862029c758dcc65406d3b6d2578a61c30b1254a0ac06b47e4ecd5a4c5bb889c3db7a3d7c560f78f7a44d23cf6acc3317937a5fc23031228abb6 - languageName: node - linkType: hard - -"@react-aria/textfield@npm:^3.16.0": - version: 3.16.0 - resolution: "@react-aria/textfield@npm:3.16.0" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/form": "npm:^3.0.12" - "@react-aria/label": "npm:^3.7.14" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/shared": "npm:^3.27.0" - "@react-types/textfield": "npm:^3.11.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3ac88e2d550494fff16adff40914ba035ed8f5c83628a79048966362619a395800367adb3510610643cc07cf3465412db6835a719ddb3033a1de2ec5752d2549 - languageName: node - linkType: hard - -"@react-aria/toast@npm:3.0.0-beta.19": - version: 3.0.0-beta.19 - resolution: "@react-aria/toast@npm:3.0.0-beta.19" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/landmark": "npm:3.0.0-beta.18" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/toast": "npm:3.0.0-beta.7" - "@react-types/button": "npm:^3.10.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6d58fd255708605b7d7c7258a60da5de42bedcf709f987cd75f6f7463b9b4e8415f43105874de4f3ee1d124ed75d107644002e68b0423a748d73d3558f13f582 - languageName: node - linkType: hard - -"@react-aria/toggle@npm:^3.10.11": - version: 3.10.11 - resolution: "@react-aria/toggle@npm:3.10.11" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/toggle": "npm:^3.8.1" - "@react-types/checkbox": "npm:^3.9.1" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/f240962c2bc85b541f73a24dde49456580ad99822756dbe5203bd72949055e5dbda9b033e9a654ebc7d8979332af4bb671c33edca0c069a82c708753b35541b3 - languageName: node - linkType: hard - -"@react-aria/toolbar@npm:3.0.0-beta.12": - version: 3.0.0-beta.12 - resolution: "@react-aria/toolbar@npm:3.0.0-beta.12" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ef311befb605c2c1b2dbf14177828940b9f59c9a9dd4cc465ae14b75e676b583842e9212d798d88460cce9b8e4aff29940418ab687671e544698975122fbf287 - languageName: node - linkType: hard - -"@react-aria/tooltip@npm:^3.7.11": - version: 3.7.11 - resolution: "@react-aria/tooltip@npm:3.7.11" - dependencies: - "@react-aria/focus": "npm:^3.19.1" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/tooltip": "npm:^3.5.1" - "@react-types/shared": "npm:^3.27.0" - "@react-types/tooltip": "npm:^3.4.14" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/85f61f0ea6184be4ed7c798131364f09f05605c66f83d5cda3cb9437024a5d3331680095e526cd848557900192ece936e603755ab41292b6154fe9dd83c3e885 - languageName: node - linkType: hard - -"@react-aria/utils@npm:^3.27.0": - version: 3.27.0 - resolution: "@react-aria/utils@npm:3.27.0" - dependencies: - "@react-aria/ssr": "npm:^3.9.7" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - clsx: "npm:^2.0.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/28f12eb6e416567244ffa88a91392d10a719b68fb6e5f14871aa934c163ab36aa70f79ba3fda46d8eb9dd047c0fa2af7fd08e9d05eefde2395ebbe3c260d63da - languageName: node - linkType: hard - -"@react-aria/virtualizer@npm:^4.1.1": - version: 4.1.1 - resolution: "@react-aria/virtualizer@npm:4.1.1" - dependencies: - "@react-aria/i18n": "npm:^3.12.5" - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-stately/virtualizer": "npm:^4.2.1" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d62588f5ca42c84e7152529ed621ccca7b8366bdb82a599ab494eaf938c600ebb704fd81a0d8ef59a15a2cfe72eff7f777c9c101ee9261e1742feca82ff518d3 - languageName: node - linkType: hard - -"@react-aria/visually-hidden@npm:^3.8.19": - version: 3.8.19 - resolution: "@react-aria/visually-hidden@npm:3.8.19" - dependencies: - "@react-aria/interactions": "npm:^3.23.0" - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b43d483c88eb9d6826f76280b9df6ed63bd58ad15526648cebb7564b334a07d75fc9d01e6d49cdaf618a8f22f925bb73e37b1912745698333e34e3482bd4f4e9 - languageName: node - linkType: hard - "@react-email/body@npm:0.1.0": version: 0.1.0 resolution: "@react-email/body@npm:0.1.0" @@ -18271,27 +16352,6 @@ __metadata: languageName: node linkType: hard -"@react-hook/intersection-observer@npm:^3.1.1": - version: 3.1.2 - resolution: "@react-hook/intersection-observer@npm:3.1.2" - dependencies: - "@react-hook/passive-layout-effect": "npm:^1.2.0" - intersection-observer: "npm:^0.10.0" - peerDependencies: - react: ">=16.8" - checksum: 10c0/e462cb9dc4d22538bbdac7e2f2df47f7d5a087d0b2120232270b76218a1d444754259170dfe8d2aab9bc6f3709251f98d7b71c7ad981b454880bdf193370ae09 - languageName: node - linkType: hard - -"@react-hook/passive-layout-effect@npm:^1.2.0": - version: 1.2.1 - resolution: "@react-hook/passive-layout-effect@npm:1.2.1" - peerDependencies: - react: ">=16.8" - checksum: 10c0/5c9e6b3df1c91fc2b1d4f711ca96b5f8cb3f6a13a2e97dac7cce623e58d7ee57999c45db3778d0af0b2522b3a5b7463232ef21cb3ee9900437172d48f766d933 - languageName: node - linkType: hard - "@react-pdf/fns@npm:3.1.2": version: 3.1.2 resolution: "@react-pdf/fns@npm:3.1.2" @@ -18526,390 +16586,6 @@ __metadata: languageName: node linkType: hard -"@react-stately/calendar@npm:^3.7.0": - version: 3.7.0 - resolution: "@react-stately/calendar@npm:3.7.0" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/calendar": "npm:^3.6.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/f11002ffb3a6ddc35fcc3ae8ecd4e902d7e8ce8732810f57b514d47b06258bb426d25328254c4d382629e67490a83e1c1b4f20818aeaaf938582c84342712e0c - languageName: node - linkType: hard - -"@react-stately/checkbox@npm:^3.6.11": - version: 3.6.11 - resolution: "@react-stately/checkbox@npm:3.6.11" - dependencies: - "@react-stately/form": "npm:^3.1.1" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/checkbox": "npm:^3.9.1" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/142203ace8408ab12d55c77df363f78f240979b766a22ff01d38dea78bb7969720489c5a98040eaa4f61e9e46252632722e54cfd3208b1f2fd02323124a48563 - languageName: node - linkType: hard - -"@react-stately/collections@npm:^3.12.1": - version: 3.12.1 - resolution: "@react-stately/collections@npm:3.12.1" - dependencies: - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/eab655b101f1efbeabfb14a1e49a7c744fa45ed48b81627701f09439b57a9c3b126f19f06cf7ca74f4e2aac75e7bc109f4967650028667946975864cdbea1450 - languageName: node - linkType: hard - -"@react-stately/combobox@npm:^3.10.2": - version: 3.10.2 - resolution: "@react-stately/combobox@npm:3.10.2" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/list": "npm:^3.11.2" - "@react-stately/overlays": "npm:^3.6.13" - "@react-stately/select": "npm:^3.6.10" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/combobox": "npm:^3.13.2" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/560c5d86c9ad07b64f2e03f70a5867436f9a00f5d77dd845742ced3ecc9722705e574a3a198cfce31f74835589d01f8fdd518d76e71f5c1ea332b14e9d29dbe2 - languageName: node - linkType: hard - -"@react-stately/data@npm:^3.12.1": - version: 3.12.1 - resolution: "@react-stately/data@npm:3.12.1" - dependencies: - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/fba7d562879aebfe780a214ecc199954b909556e269e5712f98b3fc7674524f310a04229bbb95155f2e3cb153c9b46ee252c6a0b54d1e371cc2276c5f57774b7 - languageName: node - linkType: hard - -"@react-stately/datepicker@npm:^3.12.0": - version: 3.12.0 - resolution: "@react-stately/datepicker@npm:3.12.0" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@internationalized/string": "npm:^3.2.5" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/overlays": "npm:^3.6.13" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/datepicker": "npm:^3.10.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/85c71518db40de5bb13870a5fcf2f4e1ac8b59dc6fd970cac02dc940c6007a607c82d6c32479b1898d59fa4c533344ccc9b2d6760e6d2131212d7f6ec9840cd7 - languageName: node - linkType: hard - -"@react-stately/dnd@npm:^3.5.1": - version: 3.5.1 - resolution: "@react-stately/dnd@npm:3.5.1" - dependencies: - "@react-stately/selection": "npm:^3.19.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6a7314da47dc311eb0a25939f9d41bf8367915b19075ff61ec29bccaa114ef562e638ff35d4a5e2b40ddbb457e5e00bdc09598f469261eca004e7192d4c5b6c3 - languageName: node - linkType: hard - -"@react-stately/flags@npm:^3.0.5": - version: 3.0.5 - resolution: "@react-stately/flags@npm:3.0.5" - dependencies: - "@swc/helpers": "npm:^0.5.0" - checksum: 10c0/7cc8e1c1768f4c482cc0c402d42ff0c2f062bffc2197a2222c011db1851ad0becd8710c290ddf0b716cd4bed853885778a098d87a1021931d09e7cd1eec95401 - languageName: node - linkType: hard - -"@react-stately/form@npm:^3.1.1": - version: 3.1.1 - resolution: "@react-stately/form@npm:3.1.1" - dependencies: - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/fca8b0cd2891e51db51577d34b0c98a87175b7c2983187d66ef185201e0d19d0033c20d6dc56cf1f92f8636f831ce8fc81ebfe934ccc2ec73e6c7424bb2a5726 - languageName: node - linkType: hard - -"@react-stately/grid@npm:^3.10.1": - version: 3.10.1 - resolution: "@react-stately/grid@npm:3.10.1" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/selection": "npm:^3.19.0" - "@react-types/grid": "npm:^3.2.11" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/5a3eb34b505b509890a08be3d9fe86cfb9a22396e0ec99cc1df82144d3c2ab8120834b5c3f973eb5fce35e7fe42102edc3b9a1c646d6653c86eacf0040dcb2a1 - languageName: node - linkType: hard - -"@react-stately/layout@npm:^4.1.1": - version: 4.1.1 - resolution: "@react-stately/layout@npm:4.1.1" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/table": "npm:^3.13.1" - "@react-stately/virtualizer": "npm:^4.2.1" - "@react-types/grid": "npm:^3.2.11" - "@react-types/shared": "npm:^3.27.0" - "@react-types/table": "npm:^3.10.4" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/ebae2724bbb6200d4da4372614592b38b5b2242bc4e195ef9e81f1762facb29e63eb779eff877e6b5620ed603b40353f87669273f69b847a52c7e5213fd5a70f - languageName: node - linkType: hard - -"@react-stately/list@npm:^3.11.2": - version: 3.11.2 - resolution: "@react-stately/list@npm:3.11.2" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/selection": "npm:^3.19.0" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/a66a46c7560c31a4253f6d4aefb4831bb6b6df59b982a52dad0a777be37faa4f7486c092a580e5e3361d17f58c0a8bc9167fa777920d81e200c41ddb1447c6eb - languageName: node - linkType: hard - -"@react-stately/menu@npm:^3.9.1": - version: 3.9.1 - resolution: "@react-stately/menu@npm:3.9.1" - dependencies: - "@react-stately/overlays": "npm:^3.6.13" - "@react-types/menu": "npm:^3.9.14" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9369d734c2583167be10ca61d6bf13fac3f273275b91015d191cf0b424a785f5ff4b815406a45ac3ef3dd52f16ba376fb9ad1e362f643549f187eb40e806fc89 - languageName: node - linkType: hard - -"@react-stately/numberfield@npm:^3.9.9": - version: 3.9.9 - resolution: "@react-stately/numberfield@npm:3.9.9" - dependencies: - "@internationalized/number": "npm:^3.6.0" - "@react-stately/form": "npm:^3.1.1" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/numberfield": "npm:^3.8.8" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3ee9569ea541dce3dd89eb9b360819cc3eb2266c2b9db18c1d2294f4d7fb0f2ec3b344f62389947e002609afb2201ee65398d51109add38db258da5ffffa79be - languageName: node - linkType: hard - -"@react-stately/overlays@npm:^3.6.13": - version: 3.6.13 - resolution: "@react-stately/overlays@npm:3.6.13" - dependencies: - "@react-stately/utils": "npm:^3.10.5" - "@react-types/overlays": "npm:^3.8.12" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/4a808fbfea6694978a40bb45816bc1a82a2cf26d975d0cf751b583179a5626679d145c2afdb539c994689235b80410f740df9e6d1f15ed9daf97a3d7ad104955 - languageName: node - linkType: hard - -"@react-stately/radio@npm:^3.10.10": - version: 3.10.10 - resolution: "@react-stately/radio@npm:3.10.10" - dependencies: - "@react-stately/form": "npm:^3.1.1" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/radio": "npm:^3.8.6" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d9a91545c96184e603d13785522b531b6612e18b058de5b82212a4d8220847a4b3dbb3b06e4ffc3ea4e0e787df40ab802795eefb27696cf038cc944c1b22e3d8 - languageName: node - linkType: hard - -"@react-stately/searchfield@npm:^3.5.9": - version: 3.5.9 - resolution: "@react-stately/searchfield@npm:3.5.9" - dependencies: - "@react-stately/utils": "npm:^3.10.5" - "@react-types/searchfield": "npm:^3.5.11" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/915f62ee6a7ff7aa01b93cd72eda80ed4ec695d38448bb3fe47352079d3edcd8e8adef0e0348fcddd86ba6fa68505d556c507994c94daa516320bd8974127314 - languageName: node - linkType: hard - -"@react-stately/select@npm:^3.6.10": - version: 3.6.10 - resolution: "@react-stately/select@npm:3.6.10" - dependencies: - "@react-stately/form": "npm:^3.1.1" - "@react-stately/list": "npm:^3.11.2" - "@react-stately/overlays": "npm:^3.6.13" - "@react-types/select": "npm:^3.9.9" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/06d7a8e944c46d5ce75c6c90c0efc5cf7e44ee443e783c3658a80ef6ccfb3e51ef2c8444ba754537e85963902ee8ebd92fe79a59ebf2f46d925d86c690fb6d0c - languageName: node - linkType: hard - -"@react-stately/selection@npm:^3.19.0": - version: 3.19.0 - resolution: "@react-stately/selection@npm:3.19.0" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d064fb571a7d08e48db0a537a3458e024da2ebf8328131fd285c9f07b3412ff7cc2600dadbe1227318abb4ae5b1fa4982a2b4c8503ae114f85c1e3865f94ac10 - languageName: node - linkType: hard - -"@react-stately/table@npm:^3.13.1": - version: 3.13.1 - resolution: "@react-stately/table@npm:3.13.1" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/flags": "npm:^3.0.5" - "@react-stately/grid": "npm:^3.10.1" - "@react-stately/selection": "npm:^3.19.0" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/grid": "npm:^3.2.11" - "@react-types/shared": "npm:^3.27.0" - "@react-types/table": "npm:^3.10.4" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2ed5b4046ef847c52fe55cfa273a6db8fd5c40323084dcc2d75c02011416d1399c45e4fa8da19069272d4dd70e61764237488fbc5850181b2df4fb6f2646daaa - languageName: node - linkType: hard - -"@react-stately/tabs@npm:^3.7.1": - version: 3.7.1 - resolution: "@react-stately/tabs@npm:3.7.1" - dependencies: - "@react-stately/list": "npm:^3.11.2" - "@react-types/shared": "npm:^3.27.0" - "@react-types/tabs": "npm:^3.3.12" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/30571157dfd8c065ef314b05b653ca71a89d2e54988f6288d021f989d1e63af40f42706444e97e38f5b1acf3e7ea8f6016ffa21a8cb1d12bcd1088ecd64a0eba - languageName: node - linkType: hard - -"@react-stately/toast@npm:3.0.0-beta.7": - version: 3.0.0-beta.7 - resolution: "@react-stately/toast@npm:3.0.0-beta.7" - dependencies: - "@swc/helpers": "npm:^0.5.0" - use-sync-external-store: "npm:^1.2.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/46a86ccaaa9776e760389ef5cbb308f220010ee3a19fcb297272aa9a3bb249abec573fb1a681f728af590451ed56d19c7ec8dc6b7bc8943a2130bff4c39cf37d - languageName: node - linkType: hard - -"@react-stately/toggle@npm:^3.8.1": - version: 3.8.1 - resolution: "@react-stately/toggle@npm:3.8.1" - dependencies: - "@react-stately/utils": "npm:^3.10.5" - "@react-types/checkbox": "npm:^3.9.1" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/675fda59149c4240cc053476f5edac8ed591cd1a42b20da02ad9e316afc56cb1b8d8978211b050350467391dc1cb5e32da4e3a6bea7e93a6048ffa62b6e6f4b7 - languageName: node - linkType: hard - -"@react-stately/tooltip@npm:^3.5.1": - version: 3.5.1 - resolution: "@react-stately/tooltip@npm:3.5.1" - dependencies: - "@react-stately/overlays": "npm:^3.6.13" - "@react-types/tooltip": "npm:^3.4.14" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/e9c0492dc28b6db61093bd60d2494cbe63911a76b03a0838c5d58c2c038e7dea64f89a3ad232122f1106b6cbacc33ea5cf04efce20e39ff7f6946aebc10bb671 - languageName: node - linkType: hard - -"@react-stately/tree@npm:^3.8.7": - version: 3.8.7 - resolution: "@react-stately/tree@npm:3.8.7" - dependencies: - "@react-stately/collections": "npm:^3.12.1" - "@react-stately/selection": "npm:^3.19.0" - "@react-stately/utils": "npm:^3.10.5" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/99f5f4f7c8db4cef70245aaaffc6abfc9ec5f9b057ca367f3d7bcabdcbd97d9f83931ad1a0fe776d0aae23fe9fe6f800beb6fc9cb6cbfe1004ad6706dec5ec14 - languageName: node - linkType: hard - -"@react-stately/utils@npm:^3.10.5": - version: 3.10.5 - resolution: "@react-stately/utils@npm:3.10.5" - dependencies: - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/188500fef26361515d1a6c506ad347f68c82a1d61a13a09109080966a195e1cf97686991143e0d5684fd0b1a3c6a0a1e0149c92c0665bcc34c2026cd9730af1c - languageName: node - linkType: hard - -"@react-stately/virtualizer@npm:^4.2.1": - version: 4.2.1 - resolution: "@react-stately/virtualizer@npm:4.2.1" - dependencies: - "@react-aria/utils": "npm:^3.27.0" - "@react-types/shared": "npm:^3.27.0" - "@swc/helpers": "npm:^0.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/43ed5d8a2be21a366b51fff1dc67522c710894eb0aa30c6a50f6cebbad441794d73a3ebc36ab5271bad8ffd56417e38c5f2c211cb4e0070d020e2c0f81148fa0 - languageName: node - linkType: hard - "@react-three/drei@npm:^10.7.7": version: 10.7.7 resolution: "@react-three/drei@npm:10.7.7" @@ -18987,300 +16663,6 @@ __metadata: languageName: node linkType: hard -"@react-types/actionbar@npm:^3.1.12": - version: 3.1.12 - resolution: "@react-types/actionbar@npm:3.1.12" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/bb7f997ebad85f538084e3ea19cb7462a525a064f6fdff1c967f5a1aea680c0abf726d632e42fe4e53938f34759b18cd6486ed7fb36856e045d0ffbd0dcf281f - languageName: node - linkType: hard - -"@react-types/actiongroup@npm:^3.4.14": - version: 3.4.14 - resolution: "@react-types/actiongroup@npm:3.4.14" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/35e061c09a12873389c38df47e07873b06ead5dc2778250f77861b6281aa428e30bb79368546e380209d2095030bf4f17659dfc8da654f6457d31148159395d2 - languageName: node - linkType: hard - -"@react-types/breadcrumbs@npm:^3.7.10": - version: 3.7.10 - resolution: "@react-types/breadcrumbs@npm:3.7.10" - dependencies: - "@react-types/link": "npm:^3.5.10" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/3c7ce2f5a3ea2e3320b5da84c312e67249dc327ba4bc3c0ea4b755760d44dd38bf7a6c6efd0a3fa69f99d130874975ea05880bd315a2911358da3c840be35009 - languageName: node - linkType: hard - -"@react-types/button@npm:^3.10.2": - version: 3.10.2 - resolution: "@react-types/button@npm:3.10.2" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/973ef42e495218287d392876844ad0fe3c866fac1c1b20f8050df1e4f3abc96aeb8f7089054371a68b525ddda6d3956bd8bb67880a740e6a14d08c2a2fc80d5d - languageName: node - linkType: hard - -"@react-types/calendar@npm:^3.6.0": - version: 3.6.0 - resolution: "@react-types/calendar@npm:3.6.0" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/0a228229e23e8234502bd00f77a2ce36c7327e7e4633ffae87cfa8b9c5774f361d4eedb50c53c39f9b5380825b7cdabea69d8d292ba45d373ed054fb484bca7a - languageName: node - linkType: hard - -"@react-types/checkbox@npm:^3.9.1": - version: 3.9.1 - resolution: "@react-types/checkbox@npm:3.9.1" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/9cadd1e523f214308ff65340e28608a036e59dae9bac544c79f122d1c49df0d632db7637fdeb1569b1b7611f359c0cea1d6324442ab986c1ce7b14ac1722bf75 - languageName: node - linkType: hard - -"@react-types/combobox@npm:^3.13.2": - version: 3.13.2 - resolution: "@react-types/combobox@npm:3.13.2" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/acf4186342236ccb55ad3565024954d4ca7c54768f9670ba9992088780b548d56e9c13ec0cb6538109bfd912f20ee73257491c25b2942e2aae0dd4db2f70f5ec - languageName: node - linkType: hard - -"@react-types/datepicker@npm:^3.10.0": - version: 3.10.0 - resolution: "@react-types/datepicker@npm:3.10.0" - dependencies: - "@internationalized/date": "npm:^3.7.0" - "@react-types/calendar": "npm:^3.6.0" - "@react-types/overlays": "npm:^3.8.12" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/b19ec51fa3843ec5725dbea1d94c74acfebfacf1ec705f3d8fe6010b6a04d9b8a08a04447dc6591cecbece857d5a5433b6b4dc2f34cb6ec20cbbf8b74d23a52f - languageName: node - linkType: hard - -"@react-types/dialog@npm:^3.5.15": - version: 3.5.15 - resolution: "@react-types/dialog@npm:3.5.15" - dependencies: - "@react-types/overlays": "npm:^3.8.12" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2c86301dd044d967f62a8049cd99cc40e8c96fa3cd32c154f45065f36a919f25d9951970fbbd11f4cabd2a9c0f416624135a0db4d1df1db313dbc809b529553d - languageName: node - linkType: hard - -"@react-types/grid@npm:^3.2.11": - version: 3.2.11 - resolution: "@react-types/grid@npm:3.2.11" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7badbdd89b4445cd9327e64e81c04c61b62990617224c8fc5a4649e8e2c254fc256c2a6eddf4ef3150fca9a19640d51c09270af0a5e49c1f35dcecd8fa4f10b4 - languageName: node - linkType: hard - -"@react-types/link@npm:^3.5.10": - version: 3.5.10 - resolution: "@react-types/link@npm:3.5.10" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/49a9730b71862e92fcdb66b1549989a26cc24df04ce58b6a82f16498719396aeb0729b29aba590a3684dcf7580487526fc4e606b619ea595cc932ccacbe1b16b - languageName: node - linkType: hard - -"@react-types/listbox@npm:^3.5.4": - version: 3.5.4 - resolution: "@react-types/listbox@npm:3.5.4" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/197576b0a62e97a58d648eb460cb3575a4d4490f4e689c16b2aec87f61603ad9be369389c76427fccf3ddff6157d20d8bae924a59dec4e1fe1bf5ae34ec630c0 - languageName: node - linkType: hard - -"@react-types/menu@npm:^3.9.14": - version: 3.9.14 - resolution: "@react-types/menu@npm:3.9.14" - dependencies: - "@react-types/overlays": "npm:^3.8.12" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/080d0cd6870c04be55160002242aafa8b19b2b203213f6b440ae7f4a61ec5c4e664db8c3d3e0b60b8ebd255ba7054eaf2039dedf70ba8143480c4dc627435647 - languageName: node - linkType: hard - -"@react-types/meter@npm:^3.4.6": - version: 3.4.6 - resolution: "@react-types/meter@npm:3.4.6" - dependencies: - "@react-types/progress": "npm:^3.5.9" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/0f962e27b6736e9c1a33fdf7baa2101555ac50ea363a7a4da5bb1f78ad3d8fe0e09d0d97937af818c11840cb426f7533a0efda7fff0585850cca794418c69e91 - languageName: node - linkType: hard - -"@react-types/numberfield@npm:^3.8.8": - version: 3.8.8 - resolution: "@react-types/numberfield@npm:3.8.8" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/1f580aee682668f7a5949977a44cfa71246779d778155702f2026fe2c501ca154185fe6df328e830b7e708f39343ba2184a7016b560d98c8247edc7ab3ed1bb6 - languageName: node - linkType: hard - -"@react-types/overlays@npm:^3.8.12": - version: 3.8.12 - resolution: "@react-types/overlays@npm:3.8.12" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/4223961e8c685d3c98d7c2302fe26caa7f665b5bc718c95677bfc95b7442406de58a364a3fb0dedb56e280e7457dadb1163823cd2338b1aeab2ea981956b76cb - languageName: node - linkType: hard - -"@react-types/progress@npm:^3.5.9": - version: 3.5.9 - resolution: "@react-types/progress@npm:3.5.9" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d28cd1d63b97f6dd28f0035fa9565095d3701470c6330afb59d1a6092d391517d52a7b36072d306498c57821df752ff02e2933ccde11a1d27c9d181116f0ef7c - languageName: node - linkType: hard - -"@react-types/radio@npm:^3.8.6": - version: 3.8.6 - resolution: "@react-types/radio@npm:3.8.6" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/24bac2b2df9fbb6b05e001db984a08a700b5702049da7caed243776433967ee2b169f6ef1f9e4c7c58ec4a41e7a9c04da905de7a5aa621ffb93e6e5a06f1057b - languageName: node - linkType: hard - -"@react-types/searchfield@npm:^3.5.11": - version: 3.5.11 - resolution: "@react-types/searchfield@npm:3.5.11" - dependencies: - "@react-types/shared": "npm:^3.27.0" - "@react-types/textfield": "npm:^3.11.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/971fedf47134c3723710563c97319ad8eef3afeeb6785da43c04ec2f40d219dac7d87121027596122f28c2538e9b1e3d1fe6a679a68a7604afc11ea8bfd25704 - languageName: node - linkType: hard - -"@react-types/select@npm:^3.9.9": - version: 3.9.9 - resolution: "@react-types/select@npm:3.9.9" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/d4c0ec686af30d747a083b663f4df6d9a5e0b091ab84651626eca65be0c9d2a52e55697f58280ecc37355312ecbd675839abefa3abf3fac02f0aeeb0e44fcada - languageName: node - linkType: hard - -"@react-types/shared@npm:^3.27.0": - version: 3.27.0 - resolution: "@react-types/shared@npm:3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/7d710d776dcb6a832d3dc5ec281a81cd00a5b5aec1ecfcf7799c73bdb62c8739e574e29dafe04f7710a0ea568e4e11621091658a9c73d3191e1b0f5f3ff21f95 - languageName: node - linkType: hard - -"@react-types/switch@npm:^3.5.8": - version: 3.5.8 - resolution: "@react-types/switch@npm:3.5.8" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6f40dc847b528755dbfd70ad4f57e8d15208f38bbf200a21dab8e74108aeda7dde94e5b9f119764db73cc72fa223770f25216f8f92112866beac6a548f46ff85 - languageName: node - linkType: hard - -"@react-types/table@npm:^3.10.4": - version: 3.10.4 - resolution: "@react-types/table@npm:3.10.4" - dependencies: - "@react-types/grid": "npm:^3.2.11" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/6088bc1ab3c73caf8d363f89a02aa252853f5fa0c728eccc32190f788fc54032c16503d905ca849eb990d7945a947b2b2cfa7af922ae4e653d4fe2d549f923b4 - languageName: node - linkType: hard - -"@react-types/tabs@npm:^3.3.12": - version: 3.3.12 - resolution: "@react-types/tabs@npm:3.3.12" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2fe176975e7243a0ecdabd7fbecea0239883a4cc68937e0607a09cb9652f2aefeeaf20862f9728abd93e7df7512dcc7d2a7646d918abbdcb00a95b339d5c87a6 - languageName: node - linkType: hard - -"@react-types/textfield@npm:^3.11.0": - version: 3.11.0 - resolution: "@react-types/textfield@npm:3.11.0" - dependencies: - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/5e058c82738a1a6edc50ca650a9b769e557e2e0f2cfe22311fd7d8654f7fd9a758d614c6ea98c59d12efb231611b2f36c67a4485e40ee401cdaaa965ce22d1d3 - languageName: node - linkType: hard - -"@react-types/tooltip@npm:^3.4.14": - version: 3.4.14 - resolution: "@react-types/tooltip@npm:3.4.14" - dependencies: - "@react-types/overlays": "npm:^3.8.12" - "@react-types/shared": "npm:^3.27.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - checksum: 10c0/2eacf7ed585b8e6e6f191d0cf30c693a09a006314eb0d8def9b96de02b4f54db594e0c60480e6444dc36cd79958abf35c8e7142a57898cc9899b999ab565a5cb - languageName: node - linkType: hard - "@recallai/desktop-sdk@npm:^2.0.0": version: 2.0.8 resolution: "@recallai/desktop-sdk@npm:2.0.8" @@ -20737,16 +18119,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/slugify@npm:^1.1.2": - version: 1.1.2 - resolution: "@sindresorhus/slugify@npm:1.1.2" - dependencies: - "@sindresorhus/transliterate": "npm:^0.1.1" - escape-string-regexp: "npm:^4.0.0" - checksum: 10c0/f129267252a07f660bcc0e97d1ae10719b20ae6dd3b36ed343b99364df826fad1e65c0063b9cc2c1ddbeee36562d417a352aefc4d737a9908807d34d09211736 - languageName: node - linkType: hard - "@sindresorhus/slugify@npm:^2.1.1": version: 2.2.1 resolution: "@sindresorhus/slugify@npm:2.2.1" @@ -20757,16 +18129,6 @@ __metadata: languageName: node linkType: hard -"@sindresorhus/transliterate@npm:^0.1.1": - version: 0.1.2 - resolution: "@sindresorhus/transliterate@npm:0.1.2" - dependencies: - escape-string-regexp: "npm:^2.0.0" - lodash.deburr: "npm:^4.1.0" - checksum: 10c0/cc5afdcc0eab23c784d5383b3ddf2d15c736f48a404d5fbed6f1db78784e8429f41d1db664f6e68cc81eb73bf769a15ba6afeb176bc4f845b9a5186a40519491 - languageName: node - linkType: hard - "@sindresorhus/transliterate@npm:^1.0.0": version: 1.6.0 resolution: "@sindresorhus/transliterate@npm:1.6.0" @@ -21541,13 +18903,6 @@ __metadata: languageName: node linkType: hard -"@stitches/core@npm:^1.2.6": - version: 1.2.8 - resolution: "@stitches/core@npm:1.2.8" - checksum: 10c0/f2ddf5aba3f3794529ceda10e573d61d649899c1d6e4f72f0fb77915577bb4e5a1ffc6e0cebd2bc19a1e6f93d5e1e91ff0790c7a8dfb452e90b090b1a5f1c531 - languageName: node - linkType: hard - "@stoplight/better-ajv-errors@npm:1.0.3": version: 1.0.3 resolution: "@stoplight/better-ajv-errors@npm:1.0.3" @@ -22386,16 +19741,6 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:0.5.5": - version: 0.5.5 - resolution: "@swc/helpers@npm:0.5.5" - dependencies: - "@swc/counter": "npm:^0.1.3" - tslib: "npm:^2.4.0" - checksum: 10c0/21a9b9cfe7e00865f9c9f3eb4c1cc5b397143464f7abee76a2c5366e591e06b0155b5aac93fe8269ef8d548df253f6fd931e9ddfc0fd12efd405f90f45506e7d - languageName: node - linkType: hard - "@swc/helpers@npm:^0.5.0, @swc/helpers@npm:^0.5.12, @swc/helpers@npm:^0.5.17": version: 0.5.17 resolution: "@swc/helpers@npm:0.5.17" @@ -22983,19 +20328,6 @@ __metadata: languageName: node linkType: hard -"@toeverything/y-indexeddb@npm:^0.10.0-canary.9": - version: 0.10.0-canary.9 - resolution: "@toeverything/y-indexeddb@npm:0.10.0-canary.9" - dependencies: - idb: "npm:^7.1.1" - nanoid: "npm:^5.0.1" - y-provider: "npm:0.10.0-canary.9" - peerDependencies: - yjs: ^13 - checksum: 10c0/5a68e380923ce696ce48d141323e8412bd7782611bd50d9319d8e87c5642df71fcf6f3bbd047f2beb62ff85dbff866b8f1180524edbf01f695afa62d136fef1b - languageName: node - linkType: hard - "@tokenizer/inflate@npm:^0.2.6": version: 0.2.7 resolution: "@tokenizer/inflate@npm:0.2.7" @@ -23045,18 +20377,6 @@ __metadata: languageName: node linkType: hard -"@ts-gql/tag@npm:^0.7.3": - version: 0.7.3 - resolution: "@ts-gql/tag@npm:0.7.3" - dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - graphql-tag: "npm:^2.12.6" - peerDependencies: - graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || 14 || 15 || 16 - checksum: 10c0/5572094b9189355b13a9037580712cecbe821b4957ae16d5cdf51cbf990cd5905a96eabada2e5da3b03c6843efa274e267f34de20b9357dbbc00607a0b5b76ed - languageName: node - linkType: hard - "@ts-morph/common@npm:~0.26.0": version: 0.26.1 resolution: "@ts-morph/common@npm:0.26.1" @@ -23525,7 +20845,7 @@ __metadata: languageName: node linkType: hard -"@types/d3-time@npm:^1.0.10, @types/d3-time@npm:^1.1.1": +"@types/d3-time@npm:^1.1.1": version: 1.1.4 resolution: "@types/d3-time@npm:1.1.4" checksum: 10c0/d1dafa4605c10739de216bdf3dfe9c3953e583e849dc5586216525897c96bbbae8972c50e9c11a4c54e700c089914cf7a9764e9806d316a84838ecf9e5c52722 @@ -23715,13 +21035,6 @@ __metadata: languageName: node linkType: hard -"@types/facepaint@npm:^1.2.5": - version: 1.2.5 - resolution: "@types/facepaint@npm:1.2.5" - checksum: 10c0/e759fef0858f2f691625c47d59124e35d745c33d7229b99607158361ac0346f012ffad5c24a7312b49d54c097862ca7fe66a3ca37dbf8074154edb093b9fa0fc - languageName: node - linkType: hard - "@types/file-saver@npm:^2.0.7": version: 2.0.7 resolution: "@types/file-saver@npm:2.0.7" @@ -23877,13 +21190,6 @@ __metadata: languageName: node linkType: hard -"@types/is-hotkey@npm:^0.1.1": - version: 0.1.10 - resolution: "@types/is-hotkey@npm:0.1.10" - checksum: 10c0/8ce7cc70a42e4191ba9871905a68fa6586a9da0bfa9940e20fe67e573b34bc79bfc23158e842c7bd3288ebf9c82ee5cce0c7fa1fe8245f6845c2f9b9f3afc536 - languageName: node - linkType: hard - "@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1, @types/istanbul-lib-coverage@npm:^2.0.4, @types/istanbul-lib-coverage@npm:^2.0.6": version: 2.0.6 resolution: "@types/istanbul-lib-coverage@npm:2.0.6" @@ -24041,20 +21347,13 @@ __metadata: languageName: node linkType: hard -"@types/linkify-it@npm:*, @types/linkify-it@npm:^5": +"@types/linkify-it@npm:^5": version: 5.0.0 resolution: "@types/linkify-it@npm:5.0.0" checksum: 10c0/7bbbf45b9dde17bf3f184fee585aef0e7342f6954f0377a24e4ff42ab5a85d5b806aaa5c8d16e2faf2a6b87b2d94467a196b7d2b85c9c7de2f0eaac5487aaab8 languageName: node linkType: hard -"@types/linkify-it@npm:^3.0.1": - version: 3.0.5 - resolution: "@types/linkify-it@npm:3.0.5" - checksum: 10c0/696e09975991c649ba37c5585714929fdebf5c64a8bfb99910613ef838337dbbba6c608fccdfa03d6347432586ef12e139bc0e947ae6fec569096fef5cc1c550 - languageName: node - linkType: hard - "@types/lodash.camelcase@npm:^4.3.7": version: 4.3.9 resolution: "@types/lodash.camelcase@npm:4.3.9" @@ -24217,7 +21516,7 @@ __metadata: languageName: node linkType: hard -"@types/lodash@npm:*, @types/lodash@npm:^4.14.149": +"@types/lodash@npm:*": version: 4.17.15 resolution: "@types/lodash@npm:4.17.15" checksum: 10c0/2eb2dc6d231f5fb4603d176c08c8d7af688f574d09af47466a179cd7812d9f64144ba74bb32ca014570ffdc544eedc51b7a5657212bad083b6eecbd72223f9bb @@ -24248,16 +21547,6 @@ __metadata: languageName: node linkType: hard -"@types/markdown-it@npm:12.2.3": - version: 12.2.3 - resolution: "@types/markdown-it@npm:12.2.3" - dependencies: - "@types/linkify-it": "npm:*" - "@types/mdurl": "npm:*" - checksum: 10c0/f72e08f69d76be2e30cd367fd6e5302c6878aa44e5b1a952fe7e41280044502bcb9bac8459ad94f6bb5e4f9c4cb52803950609ad66786f0fddc3a8bd533f777d - languageName: node - linkType: hard - "@types/markdown-it@npm:^14.0.0": version: 14.1.2 resolution: "@types/markdown-it@npm:14.1.2" @@ -24293,7 +21582,7 @@ __metadata: languageName: node linkType: hard -"@types/mdurl@npm:*, @types/mdurl@npm:^2": +"@types/mdurl@npm:^2": version: 2.0.0 resolution: "@types/mdurl@npm:2.0.0" checksum: 10c0/cde7bb571630ed1ceb3b92a28f7b59890bb38b8f34cd35326e2df43eebfc74985e6aa6fd4184e307393bad8a9e0783a519a3f9d13c8e03788c0f98e5ec869c5e @@ -24801,7 +22090,7 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:^19, @types/react@npm:^19.0.8": +"@types/react@npm:*, @types/react@npm:^19": version: 19.1.0 resolution: "@types/react@npm:19.1.0" dependencies: @@ -25533,53 +22822,6 @@ __metadata: languageName: node linkType: hard -"@urql/core@npm:^5.0.0, @urql/core@npm:^5.0.4, @urql/core@npm:^5.1.0": - version: 5.1.0 - resolution: "@urql/core@npm:5.1.0" - dependencies: - "@0no-co/graphql.web": "npm:^1.0.5" - wonka: "npm:^6.3.2" - checksum: 10c0/9792a5094ced7e7f9d8b38593c386e0b38f9549fff8cfde74d4d851d9538e3dea5f05e4bcf766787a8178e0cc9c0cfd8043f37a3bcf0121342b1391999edbe1d - languageName: node - linkType: hard - -"@urql/exchange-auth@npm:^2.2.0": - version: 2.2.0 - resolution: "@urql/exchange-auth@npm:2.2.0" - dependencies: - "@urql/core": "npm:^5.0.0" - wonka: "npm:^6.3.2" - peerDependencies: - "@urql/core": ^5.0.0 - checksum: 10c0/75141d592640ebfa15781bfedaf36d878fa7adfc9b73421f57c31b01d099c0c2388bf1b4cf2ebf3ffbb4634f7f6837d2018175f543d1e5d9362dc9d0a09aef9b - languageName: node - linkType: hard - -"@urql/exchange-graphcache@npm:^7.1.2": - version: 7.2.2 - resolution: "@urql/exchange-graphcache@npm:7.2.2" - dependencies: - "@0no-co/graphql.web": "npm:^1.0.5" - "@urql/core": "npm:^5.1.0" - wonka: "npm:^6.3.2" - peerDependencies: - "@urql/core": ^5.0.0 - checksum: 10c0/05cdea0221837da6808ac516b13c9d329501322afbb0929b9a710aa80ffb58d2f3dfed4b6a88e7e695355894be4378cc2e95e5b290b0eec84375f505f36c9678 - languageName: node - linkType: hard - -"@urql/exchange-persisted@npm:^4.3.0": - version: 4.3.0 - resolution: "@urql/exchange-persisted@npm:4.3.0" - dependencies: - "@urql/core": "npm:^5.0.0" - wonka: "npm:^6.3.2" - peerDependencies: - "@urql/core": ^5.0.0 - checksum: 10c0/3004fb94b12e41566e6181a9cf1adccd368be942cdb1443c1632b110f041a1b367ae11cfd0e4d89914318881471b5dbb48b43ed6c56ceacabae3be5e11e775e1 - languageName: node - linkType: hard - "@use-gesture/core@npm:10.3.1": version: 10.3.1 resolution: "@use-gesture/core@npm:10.3.1" @@ -28472,29 +25714,6 @@ __metadata: languageName: node linkType: hard -"algoliasearch@npm:^4.19.1": - version: 4.24.0 - resolution: "algoliasearch@npm:4.24.0" - dependencies: - "@algolia/cache-browser-local-storage": "npm:4.24.0" - "@algolia/cache-common": "npm:4.24.0" - "@algolia/cache-in-memory": "npm:4.24.0" - "@algolia/client-account": "npm:4.24.0" - "@algolia/client-analytics": "npm:4.24.0" - "@algolia/client-common": "npm:4.24.0" - "@algolia/client-personalization": "npm:4.24.0" - "@algolia/client-search": "npm:4.24.0" - "@algolia/logger-common": "npm:4.24.0" - "@algolia/logger-console": "npm:4.24.0" - "@algolia/recommend": "npm:4.24.0" - "@algolia/requester-browser-xhr": "npm:4.24.0" - "@algolia/requester-common": "npm:4.24.0" - "@algolia/requester-node-http": "npm:4.24.0" - "@algolia/transporter": "npm:4.24.0" - checksum: 10c0/ef09096619191181f3ea3376ed46b5bb2de1cd7d97a8d016f7cfe8e93c89d34f38cac8db5835314f8d97c939ad007c3dde716c1609953540258352edb25d12c2 - languageName: node - linkType: hard - "alien-signals@npm:^0.4.9": version: 0.4.14 resolution: "alien-signals@npm:0.4.14" @@ -28502,13 +25721,6 @@ __metadata: languageName: node linkType: hard -"anser@npm:^2.1.1": - version: 2.1.1 - resolution: "anser@npm:2.1.1" - checksum: 10c0/47a844fea847ffd580c37587c97c49e505390cb034e397b02c38aafc23d52c64d40fbeefe04a86b83867cfb7093d8884826a0551211b69dda473b1f76ce38e98 - languageName: node - linkType: hard - "ansi-align@npm:^3.0.0": version: 3.0.1 resolution: "ansi-align@npm:3.0.1" @@ -30723,7 +27935,7 @@ __metadata: languageName: node linkType: hard -"busboy@npm:1.6.0, busboy@npm:^1.6.0": +"busboy@npm:^1.6.0": version: 1.6.0 resolution: "busboy@npm:1.6.0" dependencies: @@ -31543,13 +28755,6 @@ __metadata: languageName: node linkType: hard -"clean-set@npm:^1.1.2": - version: 1.1.2 - resolution: "clean-set@npm:1.1.2" - checksum: 10c0/f77a1204ea1f90d85a21fe434a08f3ec09753eb416544db1f37612653caf40ac52d5941c61f76d367aea5b46a2c29c0b0e7e05029e88c02abb136de5d17283d5 - languageName: node - linkType: hard - "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" @@ -32412,20 +29617,6 @@ __metadata: languageName: node linkType: hard -"compute-scroll-into-view@npm:^1.0.20": - version: 1.0.20 - resolution: "compute-scroll-into-view@npm:1.0.20" - checksum: 10c0/19034322590bfce59cb6939b3603e7aaf6f0d4128b8627bbc136e71c8714905e2f8bf2ba0cb7f153c6e8cdb8ad907ffd6d0188ccc7625dc05790a59ae6a81f01 - languageName: node - linkType: hard - -"compute-scroll-into-view@npm:^3.0.2": - version: 3.1.1 - resolution: "compute-scroll-into-view@npm:3.1.1" - checksum: 10c0/59761ed62304a9599b52ad75d0d6fbf0669ee2ab7dd472fdb0ad9da36628414c014dea7b5810046560180ad30ffec52a953d19297f66a1d4f3aa0999b9d2521d - languageName: node - linkType: hard - "computeds@npm:^0.0.1": version: 0.0.1 resolution: "computeds@npm:0.0.1" @@ -32684,13 +29875,6 @@ __metadata: languageName: node linkType: hard -"cookie@npm:^1.0.0": - version: 1.0.2 - resolution: "cookie@npm:1.0.2" - checksum: 10c0/fd25fe79e8fbcfcaf6aa61cd081c55d144eeeba755206c058682257cb38c4bd6795c6620de3f064c740695bb65b7949ebb1db7a95e4636efb8357a335ad3f54b - languageName: node - linkType: hard - "cookie@npm:^1.0.2": version: 1.1.1 resolution: "cookie@npm:1.1.1" @@ -33503,7 +30687,7 @@ __metadata: languageName: node linkType: hard -"d3-time@npm:^1.0.10, d3-time@npm:^1.0.11": +"d3-time@npm:^1.0.11": version: 1.1.0 resolution: "d3-time@npm:1.1.0" checksum: 10c0/69ab137adff5b22d0fa148ea514a207bd9cd7d2c042ccf34a268f2ef73720b404f0be6e7b56c95650c53caf52080b5254e2a27f0a676f41d1dd22ef8872c8335 @@ -33545,16 +30729,6 @@ __metadata: languageName: node linkType: hard -"d@npm:1, d@npm:^1.0.1, d@npm:^1.0.2": - version: 1.0.2 - resolution: "d@npm:1.0.2" - dependencies: - es5-ext: "npm:^0.10.64" - type: "npm:^2.7.2" - checksum: 10c0/3e6ede10cd3b77586c47da48423b62bed161bf1a48bdbcc94d87263522e22f5dfb0e678a6dba5323fdc14c5d8612b7f7eb9e7d9e37b2e2d67a7bf9f116dabe5a - languageName: node - linkType: hard - "danger-plugin-todos@npm:^1.3.1": version: 1.3.1 resolution: "danger-plugin-todos@npm:1.3.1" @@ -33890,7 +31064,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:10, decimal.js@npm:^10.4.3, decimal.js@npm:^10.5.0": +"decimal.js@npm:^10.4.3, decimal.js@npm:^10.5.0": version: 10.5.0 resolution: "decimal.js@npm:10.5.0" checksum: 10c0/785c35279df32762143914668df35948920b6c1c259b933e0519a69b7003fc0a5ed2a766b1e1dda02574450c566b21738a45f15e274b47c2ac02072c0d1f3ac3 @@ -34221,7 +31395,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.0, dequal@npm:^2.0.2, dequal@npm:^2.0.3": +"dequal@npm:^2.0.0, dequal@npm:^2.0.3": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 @@ -34441,15 +31615,6 @@ __metadata: languageName: node linkType: hard -"direction@npm:^1.0.3": - version: 1.0.4 - resolution: "direction@npm:1.0.4" - bin: - direction: cli.js - checksum: 10c0/2257006edba01b3294322311a212a3f0e7c656d710ab164fd95123a2a9daaec536252c60da6a9df5be2bb89e9030684e9d1c7804fe82c9b3f510c2f737adeada - languageName: node - linkType: hard - "dlv@npm:^1.1.3": version: 1.1.3 resolution: "dlv@npm:1.1.3" @@ -34719,115 +31884,6 @@ __metadata: languageName: node linkType: hard -"drizzle-kit@npm:^0.31.5": - version: 0.31.8 - resolution: "drizzle-kit@npm:0.31.8" - dependencies: - "@drizzle-team/brocli": "npm:^0.10.2" - "@esbuild-kit/esm-loader": "npm:^2.5.5" - esbuild: "npm:^0.25.4" - esbuild-register: "npm:^3.5.0" - bin: - drizzle-kit: bin.cjs - checksum: 10c0/e5818433d06449c24b5dea61c1f97ffeb82dc2dde8f2adbe2dbe1c3030659c05a9263724916f58c411a8c4b0b170bc08842e5bc50287bef6902d11952fa55834 - languageName: node - linkType: hard - -"drizzle-orm@npm:^0.44.7": - version: 0.44.7 - resolution: "drizzle-orm@npm:0.44.7" - peerDependencies: - "@aws-sdk/client-rds-data": ">=3" - "@cloudflare/workers-types": ">=4" - "@electric-sql/pglite": ">=0.2.0" - "@libsql/client": ">=0.10.0" - "@libsql/client-wasm": ">=0.10.0" - "@neondatabase/serverless": ">=0.10.0" - "@op-engineering/op-sqlite": ">=2" - "@opentelemetry/api": ^1.4.1 - "@planetscale/database": ">=1.13" - "@prisma/client": "*" - "@tidbcloud/serverless": "*" - "@types/better-sqlite3": "*" - "@types/pg": "*" - "@types/sql.js": "*" - "@upstash/redis": ">=1.34.7" - "@vercel/postgres": ">=0.8.0" - "@xata.io/client": "*" - better-sqlite3: ">=7" - bun-types: "*" - expo-sqlite: ">=14.0.0" - gel: ">=2" - knex: "*" - kysely: "*" - mysql2: ">=2" - pg: ">=8" - postgres: ">=3" - sql.js: ">=1" - sqlite3: ">=5" - peerDependenciesMeta: - "@aws-sdk/client-rds-data": - optional: true - "@cloudflare/workers-types": - optional: true - "@electric-sql/pglite": - optional: true - "@libsql/client": - optional: true - "@libsql/client-wasm": - optional: true - "@neondatabase/serverless": - optional: true - "@op-engineering/op-sqlite": - optional: true - "@opentelemetry/api": - optional: true - "@planetscale/database": - optional: true - "@prisma/client": - optional: true - "@tidbcloud/serverless": - optional: true - "@types/better-sqlite3": - optional: true - "@types/pg": - optional: true - "@types/sql.js": - optional: true - "@upstash/redis": - optional: true - "@vercel/postgres": - optional: true - "@xata.io/client": - optional: true - better-sqlite3: - optional: true - bun-types: - optional: true - expo-sqlite: - optional: true - gel: - optional: true - knex: - optional: true - kysely: - optional: true - mysql2: - optional: true - pg: - optional: true - postgres: - optional: true - prisma: - optional: true - sql.js: - optional: true - sqlite3: - optional: true - checksum: 10c0/6adfe19179c83be397490c21573433e38ed7eff890bbb1c3b39157ec57d6b7420e9dcfebb8fe0e6ea534b29a53a33b2ec75c77dd2ac6b474b7055965ee7df00d - languageName: node - linkType: hard - "ds-store@npm:^0.1.5": version: 0.1.6 resolution: "ds-store@npm:0.1.6" @@ -35111,13 +32167,6 @@ __metadata: languageName: node linkType: hard -"emery@npm:^1.4.1": - version: 1.4.3 - resolution: "emery@npm:1.4.3" - checksum: 10c0/942800021a768dc5d16378e5f8be8a3ad458ba19c46f139354fbed917ebe354b5fab9ec64aec7abd61b3a6e855788229062c1f2359d69091f9676b570fb1da08 - languageName: node - linkType: hard - "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -35535,18 +32584,6 @@ __metadata: languageName: node linkType: hard -"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.62, es5-ext@npm:^0.10.64, es5-ext@npm:~0.10.14": - version: 0.10.64 - resolution: "es5-ext@npm:0.10.64" - dependencies: - es6-iterator: "npm:^2.0.3" - es6-symbol: "npm:^3.1.3" - esniff: "npm:^2.0.1" - next-tick: "npm:^1.1.0" - checksum: 10c0/4459b6ae216f3c615db086e02437bdfde851515a101577fd61b19f9b3c1ad924bab4d197981eb7f0ccb915f643f2fc10ff76b97a680e96cbb572d15a27acd9a3 - languageName: node - linkType: hard - "es6-error@npm:^4.1.1": version: 4.1.1 resolution: "es6-error@npm:4.1.1" @@ -35554,27 +32591,6 @@ __metadata: languageName: node linkType: hard -"es6-iterator@npm:^2.0.3": - version: 2.0.3 - resolution: "es6-iterator@npm:2.0.3" - dependencies: - d: "npm:1" - es5-ext: "npm:^0.10.35" - es6-symbol: "npm:^3.1.1" - checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8 - languageName: node - linkType: hard - -"es6-symbol@npm:^3, es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": - version: 3.1.4 - resolution: "es6-symbol@npm:3.1.4" - dependencies: - d: "npm:^1.0.2" - ext: "npm:^1.7.0" - checksum: 10c0/777bf3388db5d7919e09a0fd175aa5b8a62385b17cb2227b7a137680cba62b4d9f6193319a102642aa23d5840d38a62e4784f19cfa5be4a2210a3f0e9b23d15d - languageName: node - linkType: hard - "esast-util-from-estree@npm:^2.0.0": version: 2.0.0 resolution: "esast-util-from-estree@npm:2.0.0" @@ -35599,17 +32615,6 @@ __metadata: languageName: node linkType: hard -"esbuild-register@npm:^3.5.0": - version: 3.6.0 - resolution: "esbuild-register@npm:3.6.0" - dependencies: - debug: "npm:^4.3.4" - peerDependencies: - esbuild: ">=0.12 <1" - checksum: 10c0/77193b7ca32ba9f81b35ddf3d3d0138efb0b1429d71b39480cfee932e1189dd2e492bd32bf04a4d0bc3adfbc7ec7381ceb5ffd06efe35f3e70904f1f686566d5 - languageName: node - linkType: hard - "esbuild@npm:0.25.5": version: 0.25.5 resolution: "esbuild@npm:0.25.5" @@ -35954,172 +32959,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.25.4": - version: 0.25.11 - resolution: "esbuild@npm:0.25.11" - dependencies: - "@esbuild/aix-ppc64": "npm:0.25.11" - "@esbuild/android-arm": "npm:0.25.11" - "@esbuild/android-arm64": "npm:0.25.11" - "@esbuild/android-x64": "npm:0.25.11" - "@esbuild/darwin-arm64": "npm:0.25.11" - "@esbuild/darwin-x64": "npm:0.25.11" - "@esbuild/freebsd-arm64": "npm:0.25.11" - "@esbuild/freebsd-x64": "npm:0.25.11" - "@esbuild/linux-arm": "npm:0.25.11" - "@esbuild/linux-arm64": "npm:0.25.11" - "@esbuild/linux-ia32": "npm:0.25.11" - "@esbuild/linux-loong64": "npm:0.25.11" - "@esbuild/linux-mips64el": "npm:0.25.11" - "@esbuild/linux-ppc64": "npm:0.25.11" - "@esbuild/linux-riscv64": "npm:0.25.11" - "@esbuild/linux-s390x": "npm:0.25.11" - "@esbuild/linux-x64": "npm:0.25.11" - "@esbuild/netbsd-arm64": "npm:0.25.11" - "@esbuild/netbsd-x64": "npm:0.25.11" - "@esbuild/openbsd-arm64": "npm:0.25.11" - "@esbuild/openbsd-x64": "npm:0.25.11" - "@esbuild/openharmony-arm64": "npm:0.25.11" - "@esbuild/sunos-x64": "npm:0.25.11" - "@esbuild/win32-arm64": "npm:0.25.11" - "@esbuild/win32-ia32": "npm:0.25.11" - "@esbuild/win32-x64": "npm:0.25.11" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-arm64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/openharmony-arm64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/7f819b16a9f502091ddc6e1855291eaa5ede32c2b792cd8a8a60cc24faee469e3c7b607e2f22ea8684eb7c7bc377b2509e9f1cd50f10b3bf5042d1e9e4234be3 - languageName: node - linkType: hard - -"esbuild@npm:~0.18.20": - version: 0.18.20 - resolution: "esbuild@npm:0.18.20" - dependencies: - "@esbuild/android-arm": "npm:0.18.20" - "@esbuild/android-arm64": "npm:0.18.20" - "@esbuild/android-x64": "npm:0.18.20" - "@esbuild/darwin-arm64": "npm:0.18.20" - "@esbuild/darwin-x64": "npm:0.18.20" - "@esbuild/freebsd-arm64": "npm:0.18.20" - "@esbuild/freebsd-x64": "npm:0.18.20" - "@esbuild/linux-arm": "npm:0.18.20" - "@esbuild/linux-arm64": "npm:0.18.20" - "@esbuild/linux-ia32": "npm:0.18.20" - "@esbuild/linux-loong64": "npm:0.18.20" - "@esbuild/linux-mips64el": "npm:0.18.20" - "@esbuild/linux-ppc64": "npm:0.18.20" - "@esbuild/linux-riscv64": "npm:0.18.20" - "@esbuild/linux-s390x": "npm:0.18.20" - "@esbuild/linux-x64": "npm:0.18.20" - "@esbuild/netbsd-x64": "npm:0.18.20" - "@esbuild/openbsd-x64": "npm:0.18.20" - "@esbuild/sunos-x64": "npm:0.18.20" - "@esbuild/win32-arm64": "npm:0.18.20" - "@esbuild/win32-ia32": "npm:0.18.20" - "@esbuild/win32-x64": "npm:0.18.20" - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10c0/473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 - languageName: node - linkType: hard - "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -36127,13 +32966,6 @@ __metadata: languageName: node linkType: hard -"escape-carriage@npm:^1.3.1": - version: 1.3.1 - resolution: "escape-carriage@npm:1.3.1" - checksum: 10c0/ef82888d664d93a0b7246eecf33859235da4a1059c14ce4102894145bc31f82d095579ffd405c01eb8b77a7ee751d1e29e25df85a4b0769ad1c79afa8e983de5 - languageName: node - linkType: hard - "escape-goat@npm:^2.0.0": version: 2.1.1 resolution: "escape-goat@npm:2.1.1" @@ -36218,18 +33050,6 @@ __metadata: languageName: node linkType: hard -"esniff@npm:^2.0.1": - version: 2.0.1 - resolution: "esniff@npm:2.0.1" - dependencies: - d: "npm:^1.0.1" - es5-ext: "npm:^0.10.62" - event-emitter: "npm:^0.3.5" - type: "npm:^2.7.2" - checksum: 10c0/7efd8d44ac20e5db8cb0ca77eb65eca60628b2d0f3a1030bcb05e71cc40e6e2935c47b87dba3c733db12925aa5b897f8e0e7a567a2c274206f184da676ea2e65 - languageName: node - linkType: hard - "espree@npm:^10.0.1": version: 10.4.0 resolution: "espree@npm:10.4.0" @@ -36390,16 +33210,6 @@ __metadata: languageName: node linkType: hard -"event-emitter@npm:^0.3.5": - version: 0.3.5 - resolution: "event-emitter@npm:0.3.5" - dependencies: - d: "npm:1" - es5-ext: "npm:~0.10.14" - checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0 - languageName: node - linkType: hard - "event-target-shim@npm:^5.0.0": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" @@ -36407,13 +33217,6 @@ __metadata: languageName: node linkType: hard -"event-target-shim@npm:^6.0.2": - version: 6.0.2 - resolution: "event-target-shim@npm:6.0.2" - checksum: 10c0/e40b89effb1bd0fdd44dd198e3b61669c2bff89b680a8156c50480b5df8d4364208d1db09fbe823211005651558415691cb3ff72c22618eb154e55282b8b0481 - languageName: node - linkType: hard - "eventemitter2@npm:6.4.9": version: 6.4.9 resolution: "eventemitter2@npm:6.4.9" @@ -36741,15 +33544,6 @@ __metadata: languageName: node linkType: hard -"ext@npm:^1.7.0": - version: 1.7.0 - resolution: "ext@npm:1.7.0" - dependencies: - type: "npm:^2.7.2" - checksum: 10c0/a8e5f34e12214e9eee3a4af3b5c9d05ba048f28996450975b369fc86e5d0ef13b6df0615f892f5396a9c65d616213c25ec5b0ad17ef42eac4a500512a19da6c7 - languageName: node - linkType: hard - "extend-shallow@npm:^2.0.1": version: 2.0.1 resolution: "extend-shallow@npm:2.0.1" @@ -36848,13 +33642,6 @@ __metadata: languageName: node linkType: hard -"facepaint@npm:^1.2.1": - version: 1.2.1 - resolution: "facepaint@npm:1.2.1" - checksum: 10c0/bc4e974f4db7e860afb86cfeaf25720f4058e100a0cc79d42e69b0518363a538643de18753f6ed0161cc9d7280ff49d9f07351dc1d614b5dc79a28837dd6cd50 - languageName: node - linkType: hard - "fast-content-type-parse@npm:^3.0.0": version: 3.0.0 resolution: "fast-content-type-parse@npm:3.0.0" @@ -38302,7 +35089,7 @@ __metadata: languageName: node linkType: hard -"get-tsconfig@npm:^4.7.0, get-tsconfig@npm:^4.7.5": +"get-tsconfig@npm:^4.7.5": version: 4.7.6 resolution: "get-tsconfig@npm:4.7.6" dependencies: @@ -40267,20 +37054,6 @@ __metadata: languageName: node linkType: hard -"idb-keyval@npm:^6.2.1": - version: 6.2.1 - resolution: "idb-keyval@npm:6.2.1" - checksum: 10c0/9f0c83703a365e00bd0b4ed6380ce509a06dedfc6ec39b2ba5740085069fd2f2ff5c14ba19356488e3612a2f9c49985971982d836460a982a5d0b4019eeba48a - languageName: node - linkType: hard - -"idb@npm:^7.1.1": - version: 7.1.1 - resolution: "idb@npm:7.1.1" - checksum: 10c0/72418e4397638797ee2089f97b45fc29f937b830bc0eb4126f4a9889ecf10320ceacf3a177fe5d7ffaf6b4fe38b20bbd210151549bfdc881db8081eed41c870d - languageName: node - linkType: hard - "identity-obj-proxy@npm:3.0.0": version: 3.0.0 resolution: "identity-obj-proxy@npm:3.0.0" @@ -40322,7 +37095,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.0.4, ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.0.4, ignore@npm:^5.2.0": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd @@ -40884,25 +37657,6 @@ __metadata: languageName: node linkType: hard -"intersection-observer@npm:^0.10.0": - version: 0.10.0 - resolution: "intersection-observer@npm:0.10.0" - checksum: 10c0/af5546a91269b973d785fce1e6e80cd77bece494810fb6b0595bcac8e07b6cee212eeb5242f6a11ee4211729490d814964fb6ed3e3fb7a246f731999bf2a9ecf - languageName: node - linkType: hard - -"intl-messageformat@npm:^10.1.0": - version: 10.7.15 - resolution: "intl-messageformat@npm:10.7.15" - dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.3" - "@formatjs/fast-memoize": "npm:2.2.6" - "@formatjs/icu-messageformat-parser": "npm:2.11.1" - tslib: "npm:2" - checksum: 10c0/5759cd38718b7e4874fd6eb5e759e920227f993bdf17d71cd7474919098aafc13c8bbc63f5ccb2bafe13093f3a519fd7a03a47efc84bb3e9fbf9f25f88a408c9 - languageName: node - linkType: hard - "invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -41279,20 +38033,6 @@ __metadata: languageName: node linkType: hard -"is-hotkey@npm:^0.1.6": - version: 0.1.8 - resolution: "is-hotkey@npm:0.1.8" - checksum: 10c0/5aca28f98b9ffff45d9141d26024ffbc33d2d7c8163144d4bd8eccc9330e3299fb7761e962517b7729f6bf9e95f248654aa8b0fccf16478baecddb428a5923fd - languageName: node - linkType: hard - -"is-hotkey@npm:^0.2.0": - version: 0.2.0 - resolution: "is-hotkey@npm:0.2.0" - checksum: 10c0/d6589159b641014e26c0999ad261ca191e4cb7192e7db32dc849e69df416699b5ec78ad2a2192c169e7b3838847e48b0e1fc76f89f61946fad3036b23cfcd9b4 - languageName: node - linkType: hard - "is-in-ci@npm:^2.0.0": version: 2.0.0 resolution: "is-in-ci@npm:2.0.0" @@ -43813,7 +40553,7 @@ __metadata: languageName: node linkType: hard -"lib0@npm:^0.2.85, lib0@npm:^0.2.88, lib0@npm:^0.2.99": +"lib0@npm:^0.2.85, lib0@npm:^0.2.99": version: 0.2.108 resolution: "lib0@npm:0.2.108" dependencies: @@ -44188,13 +40928,6 @@ __metadata: languageName: node linkType: hard -"lodash.deburr@npm:^4.1.0": - version: 4.1.0 - resolution: "lodash.deburr@npm:4.1.0" - checksum: 10c0/30c068e9c3b21d65d260887a8849fa7b94692f868adcc4527136c296b4e71ced7149f58e0f37154d3c56d7950cc605ad3e10b2ee0baedf5638af0befc5013ebc - languageName: node - linkType: hard - "lodash.defaults@npm:^4.2.0": version: 4.2.0 resolution: "lodash.defaults@npm:4.2.0" @@ -44732,7 +41465,7 @@ __metadata: languageName: node linkType: hard -"lz-string@npm:^1.4.4, lz-string@npm:^1.5.0": +"lz-string@npm:^1.5.0": version: 1.5.0 resolution: "lz-string@npm:1.5.0" bin: @@ -45080,16 +41813,6 @@ __metadata: languageName: node linkType: hard -"match-sorter@npm:^6.3.1": - version: 6.3.4 - resolution: "match-sorter@npm:6.3.4" - dependencies: - "@babel/runtime": "npm:^7.23.8" - remove-accents: "npm:0.5.0" - checksum: 10c0/35d2a6b6df003c677d9ec87ecd4683657638f5bce856f43f9cf90b03e357ed2f09813ebbac759defa7e7438706936dd34dc2bfe1a18771f7d2541f14d639b4ad - languageName: node - linkType: hard - "matcher@npm:^3.0.0": version: 3.0.0 resolution: "matcher@npm:3.0.0" @@ -46138,7 +42861,7 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.28.0, mime-db@npm:^1.52.0, mime-db@npm:^1.54.0": +"mime-db@npm:>= 1.43.0 < 2, mime-db@npm:^1.28.0, mime-db@npm:^1.54.0": version: 1.54.0 resolution: "mime-db@npm:1.54.0" checksum: 10c0/8d907917bc2a90fa2df842cdf5dfeaf509adc15fe0531e07bb2f6ab15992416479015828d6a74200041c492e42cce3ebf78e5ce714388a0a538ea9c53eece284 @@ -46957,7 +43680,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^5.0.1, nanoid@npm:^5.0.7, nanoid@npm:^5.0.9": +"nanoid@npm:^5.0.7, nanoid@npm:^5.0.9": version: 5.1.3 resolution: "nanoid@npm:5.1.3" bin: @@ -47098,43 +43821,6 @@ __metadata: languageName: node linkType: hard -"next-mdx-remote@npm:^6.0.0": - version: 6.0.0 - resolution: "next-mdx-remote@npm:6.0.0" - dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@mdx-js/mdx": "npm:^3.0.1" - "@mdx-js/react": "npm:^3.0.1" - unist-util-remove: "npm:^4.0.0" - unist-util-visit: "npm:^5.1.0" - vfile: "npm:^6.0.1" - vfile-matter: "npm:^5.0.0" - peerDependencies: - react: ">=16" - checksum: 10c0/b85c24034ab6139d8fc6696c66b614d7707a46814739b3e050b4878973ce7ceabf196e8e4cf3a420790811daa763a5678dbbe00d74cce5bf1c4ab6b064407a82 - languageName: node - linkType: hard - -"next-runtime-env@npm:^3.3.0": - version: 3.3.0 - resolution: "next-runtime-env@npm:3.3.0" - dependencies: - next: "npm:^14" - react: "npm:^18" - peerDependencies: - next: ^14 - react: ^18 - checksum: 10c0/7e59dfd138badc7925cd3f42ff826d7121f8e53399957f61906d1e10957a855b1f21f750984431cb448c9371f400170898e5e3125beef58ac7e9d1b74e073a87 - languageName: node - linkType: hard - -"next-tick@npm:^1.1.0": - version: 1.1.0 - resolution: "next-tick@npm:1.1.0" - checksum: 10c0/3ba80dd805fcb336b4f52e010992f3e6175869c8d88bf4ff0a81d5d66e6049f89993463b28211613e58a6b7fe93ff5ccbba0da18d4fa574b96289e8f0b577f28 - languageName: node - linkType: hard - "next-with-linaria@npm:^1.3.0": version: 1.3.0 resolution: "next-with-linaria@npm:1.3.0" @@ -47265,64 +43951,6 @@ __metadata: languageName: node linkType: hard -"next@npm:^14, next@npm:^14.2.25": - version: 14.2.35 - resolution: "next@npm:14.2.35" - dependencies: - "@next/env": "npm:14.2.35" - "@next/swc-darwin-arm64": "npm:14.2.33" - "@next/swc-darwin-x64": "npm:14.2.33" - "@next/swc-linux-arm64-gnu": "npm:14.2.33" - "@next/swc-linux-arm64-musl": "npm:14.2.33" - "@next/swc-linux-x64-gnu": "npm:14.2.33" - "@next/swc-linux-x64-musl": "npm:14.2.33" - "@next/swc-win32-arm64-msvc": "npm:14.2.33" - "@next/swc-win32-ia32-msvc": "npm:14.2.33" - "@next/swc-win32-x64-msvc": "npm:14.2.33" - "@swc/helpers": "npm:0.5.5" - busboy: "npm:1.6.0" - caniuse-lite: "npm:^1.0.30001579" - graceful-fs: "npm:^4.2.11" - postcss: "npm:8.4.31" - styled-jsx: "npm:5.1.1" - peerDependencies: - "@opentelemetry/api": ^1.1.0 - "@playwright/test": ^1.41.2 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - dependenciesMeta: - "@next/swc-darwin-arm64": - optional: true - "@next/swc-darwin-x64": - optional: true - "@next/swc-linux-arm64-gnu": - optional: true - "@next/swc-linux-arm64-musl": - optional: true - "@next/swc-linux-x64-gnu": - optional: true - "@next/swc-linux-x64-musl": - optional: true - "@next/swc-win32-arm64-msvc": - optional: true - "@next/swc-win32-ia32-msvc": - optional: true - "@next/swc-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@opentelemetry/api": - optional: true - "@playwright/test": - optional: true - sass: - optional: true - bin: - next: dist/bin/next - checksum: 10c0/5b1eadd554cd2cb1f030335d71a9363d16d86453f60a2331333887804c8b4b04a16fcb1ddb58229b792b6c365dbd0fafd9ccacd727c85134101a124bd6b4c06a - languageName: node - linkType: hard - "nice-try@npm:^1.0.4": version: 1.0.5 resolution: "nice-try@npm:1.0.5" @@ -48559,14 +45187,7 @@ __metadata: languageName: node linkType: hard -"outvariant@npm:1.4.0": - version: 1.4.0 - resolution: "outvariant@npm:1.4.0" - checksum: 10c0/502d075509fe9709a376cdf9a3eccbd9599fe0c42ed8c723e8c95d4856fa80154e1e957ea0d0d6bb9e0c33352086a6a623803fb5f16775322ede4b9354635bb5 - languageName: node - linkType: hard - -"outvariant@npm:^1.3.0, outvariant@npm:^1.4.0, outvariant@npm:^1.4.3": +"outvariant@npm:^1.4.0, outvariant@npm:^1.4.3": version: 1.4.3 resolution: "outvariant@npm:1.4.3" checksum: 10c0/5976ca7740349cb8c71bd3382e2a762b1aeca6f33dc984d9d896acdf3c61f78c3afcf1bfe9cc633a7b3c4b295ec94d292048f83ea2b2594fae4496656eba992c @@ -49252,15 +45873,6 @@ __metadata: languageName: node linkType: hard -"partysocket@npm:^0.0.22": - version: 0.0.22 - resolution: "partysocket@npm:0.0.22" - dependencies: - event-target-shim: "npm:^6.0.2" - checksum: 10c0/2671789556a8ac9967c67678f0a61807f8dfd1c24e431b1f97ba4643a1fee8dfe9f828c08fd24d498c8399dfc7d96d1c04175873f72d02ae4f9c314b6624898a - languageName: node - linkType: hard - "pascal-case@npm:^3.1.2": version: 3.1.2 resolution: "pascal-case@npm:3.1.2" @@ -50319,13 +46931,6 @@ __metadata: languageName: node linkType: hard -"postgres@npm:^3.4.3": - version: 3.4.4 - resolution: "postgres@npm:3.4.4" - checksum: 10c0/5c01a1501a1cb8851d981b1949bffd0a0a82ac5fd8453c410fdf4d6c0f91d01e69a42b30da2d08a77a00d6ddac0ea6ce58a1aa0dd6bd3f76e9220b1176bdfe60 - languageName: node - linkType: hard - "postject@npm:^1.0.0-alpha.6": version: 1.0.0-alpha.6 resolution: "postject@npm:1.0.0-alpha.6" @@ -50711,7 +47316,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-commands@npm:^1.0.0, prosemirror-commands@npm:^1.5.1, prosemirror-commands@npm:^1.6.2": +"prosemirror-commands@npm:^1.0.0, prosemirror-commands@npm:^1.6.2": version: 1.7.0 resolution: "prosemirror-commands@npm:1.7.0" dependencies: @@ -50784,7 +47389,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-history@npm:^1.0.0, prosemirror-history@npm:^1.3.0, prosemirror-history@npm:^1.4.1": +"prosemirror-history@npm:^1.0.0, prosemirror-history@npm:^1.4.1": version: 1.4.1 resolution: "prosemirror-history@npm:1.4.1" dependencies: @@ -50806,7 +47411,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-keymap@npm:^1.0.0, prosemirror-keymap@npm:^1.2.1, prosemirror-keymap@npm:^1.2.2, prosemirror-keymap@npm:^1.2.3": +"prosemirror-keymap@npm:^1.0.0, prosemirror-keymap@npm:^1.2.2, prosemirror-keymap@npm:^1.2.3": version: 1.2.3 resolution: "prosemirror-keymap@npm:1.2.3" dependencies: @@ -50868,7 +47473,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-state@npm:^1.0.0, prosemirror-state@npm:^1.2.2, prosemirror-state@npm:^1.4.2, prosemirror-state@npm:^1.4.3, prosemirror-state@npm:^1.4.4": +"prosemirror-state@npm:^1.0.0, prosemirror-state@npm:^1.2.2, prosemirror-state@npm:^1.4.3, prosemirror-state@npm:^1.4.4": version: 1.4.4 resolution: "prosemirror-state@npm:1.4.4" dependencies: @@ -50879,7 +47484,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-tables@npm:^1.3.4, prosemirror-tables@npm:^1.6.4, prosemirror-tables@npm:^1.8.3": +"prosemirror-tables@npm:^1.6.4, prosemirror-tables@npm:^1.8.3": version: 1.8.5 resolution: "prosemirror-tables@npm:1.8.5" dependencies: @@ -50906,7 +47511,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-transform@npm:^1.0.0, prosemirror-transform@npm:^1.1.0, prosemirror-transform@npm:^1.10.2, prosemirror-transform@npm:^1.10.5, prosemirror-transform@npm:^1.7.1, prosemirror-transform@npm:^1.7.3": +"prosemirror-transform@npm:^1.0.0, prosemirror-transform@npm:^1.1.0, prosemirror-transform@npm:^1.10.2, prosemirror-transform@npm:^1.10.5, prosemirror-transform@npm:^1.7.3": version: 1.11.0 resolution: "prosemirror-transform@npm:1.11.0" dependencies: @@ -50915,7 +47520,7 @@ __metadata: languageName: node linkType: hard -"prosemirror-view@npm:^1.0.0, prosemirror-view@npm:^1.1.0, prosemirror-view@npm:^1.27.0, prosemirror-view@npm:^1.30.2, prosemirror-view@npm:^1.31.0, prosemirror-view@npm:^1.38.1, prosemirror-view@npm:^1.41.4": +"prosemirror-view@npm:^1.0.0, prosemirror-view@npm:^1.1.0, prosemirror-view@npm:^1.27.0, prosemirror-view@npm:^1.31.0, prosemirror-view@npm:^1.38.1, prosemirror-view@npm:^1.41.4": version: 1.41.6 resolution: "prosemirror-view@npm:1.41.6" dependencies: @@ -51406,15 +48011,6 @@ __metadata: languageName: node linkType: hard -"react-devtools-inline@npm:4.4.0": - version: 4.4.0 - resolution: "react-devtools-inline@npm:4.4.0" - dependencies: - es6-symbol: "npm:^3" - checksum: 10c0/7b7924681059d60ea06dca38fd7ec066cc32625bdbf9795d21d9c8c667601997d5061e87d9738dad7fc8ff6e17cf08ebeb9fc4c470f17fc78b9229e3d38f7938 - languageName: node - linkType: hard - "react-docgen-typescript@npm:^2.2.2": version: 2.2.2 resolution: "react-docgen-typescript@npm:2.2.2" @@ -51649,7 +48245,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^17.0.1, react-is@npm:^17.0.2": +"react-is@npm:^17.0.1": version: 17.0.2 resolution: "react-is@npm:17.0.2" checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 @@ -52081,7 +48677,7 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1, react@npm:^18, react@npm:^18.2.0": +"react@npm:18.3.1, react@npm:^18.2.0": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: @@ -52900,13 +49496,6 @@ __metadata: languageName: node linkType: hard -"remove-accents@npm:0.5.0": - version: 0.5.0 - resolution: "remove-accents@npm:0.5.0" - checksum: 10c0/a75321aa1b53d9abe82637115a492770bfe42bb38ed258be748bf6795871202bc8b4badff22013494a7029f5a241057ad8d3f72adf67884dbe15a9e37e87adc4 - languageName: node - linkType: hard - "remove-trailing-separator@npm:^1.0.1": version: 1.1.0 resolution: "remove-trailing-separator@npm:1.1.0" @@ -53960,24 +50549,6 @@ __metadata: languageName: node linkType: hard -"scroll-into-view-if-needed@npm:^2.2.20": - version: 2.2.31 - resolution: "scroll-into-view-if-needed@npm:2.2.31" - dependencies: - compute-scroll-into-view: "npm:^1.0.20" - checksum: 10c0/d44c518479505e37ab5b8b4a5aef9130edd8745f8ba9ca291ff0d8358bc89b63da8c30434f35c097384e455702bfe4acbe8b82dfb8b860a971adcae084c5b2f7 - languageName: node - linkType: hard - -"scroll-into-view-if-needed@npm:^3.0.3": - version: 3.1.0 - resolution: "scroll-into-view-if-needed@npm:3.1.0" - dependencies: - compute-scroll-into-view: "npm:^3.0.2" - checksum: 10c0/1f46b090e1e04fcfdef1e384f6d7e615f9f84d4176faf4dbba7347cc0a6e491e5d578eaf4dbe9618dd3d8d38efafde58535b3e00f2a21ce4178c14be364850ff - languageName: node - linkType: hard - "scuid@npm:^1.1.0": version: 1.1.0 resolution: "scuid@npm:1.1.0" @@ -54265,13 +50836,6 @@ __metadata: languageName: node linkType: hard -"server-only@npm:^0.0.1": - version: 0.0.1 - resolution: "server-only@npm:0.0.1" - checksum: 10c0/4704f0ef85da0be981af6d4ed8e739d39bcfd265b9c246a684060acda5642d0fdc6daffc2308e71e2682c5f508090978802eae0a77623c9b90a49f9ae68048d6 - languageName: node - linkType: hard - "set-blocking@npm:^2.0.0, set-blocking@npm:~2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" @@ -54889,49 +51453,6 @@ __metadata: languageName: node linkType: hard -"slate-history@npm:^0.86.0": - version: 0.86.0 - resolution: "slate-history@npm:0.86.0" - dependencies: - is-plain-object: "npm:^5.0.0" - peerDependencies: - slate: ">=0.65.3" - checksum: 10c0/aa7b74bc429c05787f57eb55c8a34bffe0d65a25020d303cb44510a9423f3e234993d94b5a5c757f8b0c4c625cf509c8099b32f277d3e9df07969a54f06c331c - languageName: node - linkType: hard - -"slate-react@npm:^0.91.9": - version: 0.91.11 - resolution: "slate-react@npm:0.91.11" - dependencies: - "@juggle/resize-observer": "npm:^3.4.0" - "@types/is-hotkey": "npm:^0.1.1" - "@types/lodash": "npm:^4.14.149" - direction: "npm:^1.0.3" - is-hotkey: "npm:^0.1.6" - is-plain-object: "npm:^5.0.0" - lodash: "npm:^4.17.4" - scroll-into-view-if-needed: "npm:^2.2.20" - tiny-invariant: "npm:1.0.6" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - slate: ">=0.65.3" - checksum: 10c0/a5d6abf8b7898b2833902449278b4ec854d9b78f0f8a8c63d281b6892764c38b2ed72db7684682606c4908e2ef2fe88a521a109cf9f2a6369a6adceb331b2d77 - languageName: node - linkType: hard - -"slate@npm:^0.91.4": - version: 0.91.4 - resolution: "slate@npm:0.91.4" - dependencies: - immer: "npm:^9.0.6" - is-plain-object: "npm:^5.0.0" - tiny-warning: "npm:^1.0.3" - checksum: 10c0/ab276dc59cf659a3b6e1e89ee239188d1c5fbe3f6c917325b4a2226fcd87b329b8ac349360289fd395d0ef4d0e916d944d1da1c42d05fcc88bee35d85ce56d00 - languageName: node - linkType: hard - "slice-ansi@npm:0.0.4": version: 0.0.4 resolution: "slice-ansi@npm:0.0.4" @@ -55197,7 +51718,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.21, source-map-support@npm:~0.5.20": +"source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -55434,18 +51955,6 @@ __metadata: languageName: node linkType: hard -"static-browser-server@npm:1.0.3": - version: 1.0.3 - resolution: "static-browser-server@npm:1.0.3" - dependencies: - "@open-draft/deferred-promise": "npm:^2.1.0" - dotenv: "npm:^16.0.3" - mime-db: "npm:^1.52.0" - outvariant: "npm:^1.3.0" - checksum: 10c0/fc82cecdc388c54547ef91ad1a51af8aa71459f905b9496a6588bdfe933ede66c11bb4af3b7f42b9f3f08c28e9f4f07838f94ad384698453a113fc90164f5849 - languageName: node - linkType: hard - "stats-gl@npm:^2.2.8": version: 2.4.2 resolution: "stats-gl@npm:2.4.2" @@ -55674,13 +52183,6 @@ __metadata: languageName: node linkType: hard -"strict-event-emitter@npm:^0.4.3": - version: 0.4.6 - resolution: "strict-event-emitter@npm:0.4.6" - checksum: 10c0/d0231ef081cb1937b1445da59a1ec202d1c097d825c504f398600532490a4104e200b0dce4137467a8eaac5f8f9718d01c99869687afad78cad3b14c4b2e6a39 - languageName: node - linkType: hard - "strict-event-emitter@npm:^0.5.1": version: 0.5.1 resolution: "strict-event-emitter@npm:0.5.1" @@ -56173,22 +52675,6 @@ __metadata: languageName: node linkType: hard -"styled-jsx@npm:5.1.1": - version: 5.1.1 - resolution: "styled-jsx@npm:5.1.1" - dependencies: - client-only: "npm:0.0.1" - peerDependencies: - react: ">= 16.8.0 || 17.x.x || ^18.0.0-0" - peerDependenciesMeta: - "@babel/core": - optional: true - babel-plugin-macros: - optional: true - checksum: 10c0/42655cdadfa5388f8a48bb282d6b450df7d7b8cf066ac37038bd0499d3c9f084815ebd9ff9dfa12a218fd4441338851db79603498d7557207009c1cf4d609835 - languageName: node - linkType: hard - "styled-jsx@npm:5.1.6": version: 5.1.6 resolution: "styled-jsx@npm:5.1.6" @@ -56310,13 +52796,6 @@ __metadata: languageName: node linkType: hard -"superstruct@npm:^1.0.4": - version: 1.0.4 - resolution: "superstruct@npm:1.0.4" - checksum: 10c0/d355f1a96fa314e9df217aa371e8f22854644e7b600b7b0faa36860a8e50f61a60a6f1189ecf166171bf438aa6581bbd0d3adae1a65f03a3c43c62fd843e925c - languageName: node - linkType: hard - "supertest@npm:^6.1.3": version: 6.3.4 resolution: "supertest@npm:6.3.4" @@ -56936,13 +53415,6 @@ __metadata: languageName: node linkType: hard -"tiny-invariant@npm:1.0.6": - version: 1.0.6 - resolution: "tiny-invariant@npm:1.0.6" - checksum: 10c0/37ca64a84b71ff34545466dfb511d206f329a262d3dd1e3ac93db485c23e06c685670437e24c07cb06bba4cf1f75e44ae6cd8f2f30502556b33a71ef2762aeb5 - languageName: node - linkType: hard - "tiny-invariant@npm:^1.0.0, tiny-invariant@npm:^1.0.6, tiny-invariant@npm:^1.3.3": version: 1.3.3 resolution: "tiny-invariant@npm:1.3.3" @@ -56950,13 +53422,6 @@ __metadata: languageName: node linkType: hard -"tiny-warning@npm:^1.0.3": - version: 1.0.3 - resolution: "tiny-warning@npm:1.0.3" - checksum: 10c0/ef8531f581b30342f29670cb41ca248001c6fd7975ce22122bd59b8d62b4fc84ad4207ee7faa95cde982fa3357cd8f4be650142abc22805538c3b1392d7084fa - languageName: node - linkType: hard - "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" @@ -57557,13 +54022,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2, tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.8.0, tslib@npm:^2.8.1": - version: 2.8.1 - resolution: "tslib@npm:2.8.1" - checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 - languageName: node - linkType: hard - "tslib@npm:2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -57571,6 +54029,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:^2.5.2, tslib@npm:^2.6.0, tslib@npm:^2.6.1, tslib@npm:^2.6.2, tslib@npm:^2.6.3, tslib@npm:^2.8.0, tslib@npm:^2.8.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + "tslib@npm:^1, tslib@npm:^1.14.1, tslib@npm:^1.9.0, tslib@npm:^1.9.3": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -58452,36 +54917,6 @@ __metadata: languageName: unknown linkType: soft -"twenty-website@workspace:packages/twenty-website": - version: 0.0.0-use.local - resolution: "twenty-website@workspace:packages/twenty-website" - dependencies: - "@codesandbox/sandpack-react": "npm:^2.13.5" - "@docsearch/react": "npm:^3.6.2" - "@keystatic/core": "npm:^0.5.45" - "@keystatic/next": "npm:^5.0.3" - "@markdoc/markdoc": "npm:^0.5.1" - "@nivo/calendar": "npm:^0.99.0" - "@types/facepaint": "npm:^1.2.5" - date-fns: "npm:^2.30.0" - drizzle-kit: "npm:^0.31.5" - drizzle-orm: "npm:^0.44.7" - facepaint: "npm:^1.2.1" - framer-motion: "npm:^11.18.0" - gray-matter: "npm:^4.0.3" - hex-rgb: "npm:^5.0.0" - next: "npm:^14.2.25" - next-mdx-remote: "npm:^6.0.0" - next-runtime-env: "npm:^3.3.0" - postgres: "npm:^3.4.3" - react: "npm:^18.2.0" - react-dom: "npm:^18.2.0" - react-tooltip: "npm:^5.13.1" - stripe: "npm:^20.3.1" - twenty-ui: "workspace:*" - languageName: unknown - linkType: soft - "twenty-zapier@workspace:packages/twenty-zapier": version: 0.0.0-use.local resolution: "twenty-zapier@workspace:packages/twenty-zapier" @@ -58594,13 +55029,6 @@ __metadata: languageName: node linkType: hard -"type@npm:^2.7.2": - version: 2.7.3 - resolution: "type@npm:2.7.3" - checksum: 10c0/dec6902c2c42fcb86e3adf8cdabdf80e5ef9de280872b5fd547351e9cca2fe58dd2aa6d2547626ddff174145db272f62d95c7aa7038e27c11315657d781a688d - languageName: node - linkType: hard - "typed-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-buffer@npm:1.0.3" @@ -59338,17 +55766,6 @@ __metadata: languageName: node linkType: hard -"unist-util-visit@npm:^5.1.0": - version: 5.1.0 - resolution: "unist-util-visit@npm:5.1.0" - dependencies: - "@types/unist": "npm:^3.0.0" - unist-util-is: "npm:^6.0.0" - unist-util-visit-parents: "npm:^6.0.0" - checksum: 10c0/a56e1bbbf63fcb55abe379e660b9a3367787e8be1e2473bdb7e86cfa6f32b6c1fa0092432d7040b8a30b2fc674bbbe024ffe6d03c3d6bf4839b064f584463a4e - languageName: node - linkType: hard - "universal-user-agent@npm:^6.0.0": version: 6.0.1 resolution: "universal-user-agent@npm:6.0.1" @@ -59679,19 +56096,6 @@ __metadata: languageName: node linkType: hard -"urql@npm:^4.1.0": - version: 4.2.1 - resolution: "urql@npm:4.2.1" - dependencies: - "@urql/core": "npm:^5.0.0" - wonka: "npm:^6.3.2" - peerDependencies: - "@urql/core": ^5.0.0 - react: ">= 16.8.0" - checksum: 10c0/12dbb5e2824b48a8402c674ac8429f0ff0ba91af4392f10163824cc614a4403a04b8ef876754ec699a8392e93c50d7baa6b61a9b29fdbe2ebd182f5fb481a96b - languageName: node - linkType: hard - "use-callback-ref@npm:^1.3.0": version: 1.3.2 resolution: "use-callback-ref@npm:1.3.2" @@ -59825,7 +56229,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.2.0, use-sync-external-store@npm:^1.4.0": +"use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.4.0": version: 1.5.0 resolution: "use-sync-external-store@npm:1.5.0" peerDependencies: @@ -60109,7 +56513,7 @@ __metadata: languageName: node linkType: hard -"vfile-matter@npm:^5.0.0, vfile-matter@npm:^5.0.1": +"vfile-matter@npm:^5.0.1": version: 5.0.1 resolution: "vfile-matter@npm:5.0.1" dependencies: @@ -60129,7 +56533,7 @@ __metadata: languageName: node linkType: hard -"vfile@npm:^6.0.0, vfile@npm:^6.0.1, vfile@npm:^6.0.3": +"vfile@npm:^6.0.0, vfile@npm:^6.0.3": version: 6.0.3 resolution: "vfile@npm:6.0.3" dependencies: @@ -61223,13 +57627,6 @@ __metadata: languageName: node linkType: hard -"wonka@npm:^6.3.2": - version: 6.3.4 - resolution: "wonka@npm:6.3.4" - checksum: 10c0/77329eea673da07717476e1b8f1a22f1e1a4f261bb9a58fa446c03d3da13dbd5b254664f8aded5928d953f33ee5b399a17a4f70336e8b236e478209c0e78cda4 - languageName: node - linkType: hard - "word-wrap@npm:^1.2.3, word-wrap@npm:^1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" @@ -61646,7 +58043,7 @@ __metadata: languageName: node linkType: hard -"y-prosemirror@npm:^1.2.2, y-prosemirror@npm:^1.3.7": +"y-prosemirror@npm:^1.3.7": version: 1.3.7 resolution: "y-prosemirror@npm:1.3.7" dependencies: @@ -61672,15 +58069,6 @@ __metadata: languageName: node linkType: hard -"y-provider@npm:0.10.0-canary.9": - version: 0.10.0-canary.9 - resolution: "y-provider@npm:0.10.0-canary.9" - peerDependencies: - yjs: ^13 - checksum: 10c0/20166e52230562cedad1b1ba8fa3acc843c100b314d033f5b3da8a2617c0e7c51eb46260595141219c066cb9373bc770369ba5f56bf6a9a979a3194e8643bf39 - languageName: node - linkType: hard - "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" @@ -61907,15 +58295,6 @@ __metadata: languageName: node linkType: hard -"yjs@npm:^13.6.11": - version: 13.6.27 - resolution: "yjs@npm:13.6.27" - dependencies: - lib0: "npm:^0.2.99" - checksum: 10c0/f89520fed12816f9e56db0626189e39c9b913e51d24233c3190ceadee9913fc013f438b7cd0a945f2c151ab76e7474eca9d95631e32fdbe581b151ad14afeaae - languageName: node - linkType: hard - "yjs@npm:^13.6.27": version: 13.6.29 resolution: "yjs@npm:13.6.29"