From 64a65fa2e962714b2aeaede63ae9e01590ccc129 Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Mon, 7 Apr 2025 12:53:25 +0100 Subject: [PATCH] Migrate to Tailwind 4 + Editor Upgrade (#8465) * wip * fix: roadmap editor * fix: padding * wip * fix: remove editor package * wip * fix: update pnpm lock * Add contribution docs * UI changes for TW4 * Update deployment workflow --------- Co-authored-by: Arik Chakma --- .github/workflows/cloudfront-api-cache.yml | 2 +- .github/workflows/cloudfront-fe-cache.yml | 2 +- .github/workflows/deployment.yml | 3 +- .github/workflows/greetings.yml | 23 - .gitignore | 2 +- astro.config.mjs | 8 +- contributing.md | 16 + editor/.gitignore | 38 - editor/package.json | 81 -- editor/postcss.config.mjs | 12 - editor/src/components/readonly-editor.tsx | 22 - editor/src/components/render-flow-json.ts | 6 - editor/src/components/renderer.tsx | 20 - editor/src/components/roadmap-generator.ts | 27 - editor/src/components/types.ts | 3 - editor/src/global.css | 1 - editor/src/index.tsx | 7 - editor/tsup.config.ts | 22 - package.json | 8 +- packages/.gitkeep | 0 pnpm-lock.yaml | 894 ++++++++++++------ pnpm-workspace.yaml | 2 + scripts/generate-renderer-dummy.sh | 23 - scripts/generate-renderer.sh | 25 +- src/components/AccountSidebar.astro | 2 +- .../AccountStreak/AccountStreak.tsx | 4 +- .../AccountStreak/AccountStreakHeatmap.tsx | 18 +- .../Activity/ActivityTopicsModal.tsx | 2 +- src/components/Activity/ProjectProgress.tsx | 2 +- src/components/Activity/ResourceProgress.tsx | 2 +- src/components/AddTeamRoadmap.tsx | 12 +- src/components/AdvertiseForm.tsx | 10 +- .../AuthenticationFlow/CourseLoginPopup.tsx | 6 +- .../AuthenticationFlow/EmailLoginForm.tsx | 6 +- .../AuthenticationFlow/EmailSignupForm.tsx | 8 +- .../AuthenticationFlow/ForgotPasswordForm.tsx | 4 +- .../AuthenticationFlow/GitHubButton.tsx | 2 +- .../AuthenticationFlow/GoogleButton.tsx | 2 +- .../AuthenticationFlow/LinkedInButton.tsx | 2 +- .../AuthenticationFlow/ResetPasswordForm.tsx | 6 +- src/components/Befriend.tsx | 30 +- src/components/BestPracticeHeader.astro | 2 +- src/components/Billing/BillingPage.tsx | 4 +- src/components/Billing/EmptyBillingScreen.tsx | 2 +- .../Billing/UpgradeAccountModal.tsx | 4 +- src/components/Changelog/ChangelogItem.astro | 4 +- .../Changelog/ChangelogLaunch.astro | 4 +- src/components/ChangelogBanner.astro | 6 +- src/components/ChangelogImages.tsx | 12 +- src/components/CommandMenu/CommandMenu.tsx | 6 +- src/components/CreateTeam/RoadmapSelector.tsx | 4 +- .../CreateTeam/SelectRoadmapModal.tsx | 6 +- src/components/CreateTeam/Step0.tsx | 2 +- src/components/CreateTeam/Step1.tsx | 10 +- src/components/CreateTeam/Step2.tsx | 2 +- src/components/CreateTeam/Step3.tsx | 4 +- .../CreateTeam/UpdateTeamResourceModal.tsx | 4 +- .../CreateRoadmap/CreateRoadmapModal.tsx | 10 +- .../CustomRoadmap/EmbedRoadmapModal.tsx | 2 +- .../PersonalRoadmapActionDropdown.tsx | 8 +- .../CustomRoadmap/PersonalRoadmapList.tsx | 4 +- .../CustomRoadmap/RateRoadmapForm.tsx | 2 +- .../CustomRoadmap/ResourceProgressStats.tsx | 2 +- .../CustomRoadmap/RoadmapActionButton.tsx | 8 +- .../CustomRoadmap/ShareRoadmapModal.tsx | 4 +- .../CustomRoadmap/SharedRoadmapList.tsx | 2 +- .../Showcase/SubmitShowcaseWarning.tsx | 2 +- .../Dashboard/DashboardAiRoadmaps.tsx | 2 +- .../Dashboard/DashboardCardLink.tsx | 2 +- .../Dashboard/DashboardCustomProgressCard.tsx | 2 +- .../Dashboard/DashboardProgressCard.tsx | 2 +- .../Dashboard/DashboardProjectCard.tsx | 6 +- .../Dashboard/DashboardTeamRoadmaps.tsx | 2 +- .../Dashboard/EmptyStackMessage.tsx | 2 +- .../Dashboard/PersonalDashboard.tsx | 2 +- src/components/Dashboard/ProgressStack.tsx | 10 +- src/components/Dashboard/TeamDashboard.tsx | 2 +- .../DeleteAccount/DeleteAccount.astro | 2 +- .../DeleteAccount/DeleteAccountForm.tsx | 6 +- src/components/DeleteTeamPopup.tsx | 8 +- .../DiscoverRoadmapSorting.tsx | 8 +- .../DiscoverRoadmaps/SearchRoadmap.tsx | 4 +- .../ExploreAIRoadmap/AIRoadmapsList.tsx | 2 +- .../ExploreAIRoadmap/ExploreAISearch.tsx | 4 +- .../ExploreAIRoadmap/ExploreAISorting.tsx | 2 +- .../FeaturedGuides/FeaturedGuideList.tsx | 2 +- .../FeaturedGuides/GuideListItem.tsx | 2 +- .../FeaturedVideos/FeaturedVideoList.tsx | 2 +- .../FeaturedVideos/VideoListItem.tsx | 2 +- .../Feedback/SubmitFeedbackPopup.tsx | 10 +- .../FrameRenderer/ProgressNudge.tsx | 4 +- src/components/Friends/EmptyFriends.tsx | 2 +- src/components/Friends/FriendProgressItem.tsx | 10 +- src/components/Friends/InviteFriendPopup.tsx | 4 +- src/components/GenerateCourse/AICourse.tsx | 4 +- .../GenerateCourse/AICourseContent.tsx | 14 +- .../GenerateCourse/AICourseLesson.tsx | 4 +- .../GenerateCourse/AICourseLessonChat.tsx | 2 +- .../GenerateCourse/AICourseOutlineView.tsx | 6 +- .../GenerateCourse/AICourseRoadmapView.tsx | 2 +- .../GenerateCourse/AICourseSearch.tsx | 2 +- .../AICourseSidebarModuleList.tsx | 14 +- .../GenerateCourse/AIRoadmapViewSwitch.tsx | 4 +- .../GenerateCourse/CircularProgress.tsx | 2 +- .../GenerateCourse/FineTuneCourse.tsx | 4 +- src/components/GenerateCourse/Resizeable.tsx | 4 +- .../GenerateCourse/TestMyKnowledgeAction.tsx | 10 +- .../GenerateRoadmap/AITermSuggestionInput.tsx | 6 +- .../GenerateRoadmap/GenerateRoadmap.tsx | 8 +- .../GenerateRoadmap/IncreaseRoadmapLimit.tsx | 2 +- .../GenerateRoadmap/PayToBypass.tsx | 16 +- .../GenerateRoadmap/ReferYourFriend.tsx | 2 +- .../GenerateRoadmap/RoadmapSearch.tsx | 4 +- .../GenerateRoadmap/RoadmapTopicDetail.tsx | 4 +- src/components/GetStarted/RoadmapCard.tsx | 6 +- .../GetStarted/RoadmapMultiCard.tsx | 10 +- src/components/GetStarted/RoleRoadmaps.tsx | 2 +- src/components/GridItem.astro | 2 +- src/components/Guide/GuideContent.astro | 2 +- src/components/Guide/RelatedGuides.tsx | 2 +- src/components/HeroSection/HeroProject.tsx | 6 +- src/components/HeroSection/HeroSection.astro | 2 +- .../Leaderboard/LeaderboardPage.tsx | 4 +- src/components/MarkdownFile.astro | 2 +- src/components/Modal.tsx | 4 +- .../Navigation/AccountDropdown.astro | 10 +- src/components/Navigation/AccountDropdown.tsx | 4 +- .../Navigation/AccountDropdownList.tsx | 18 +- .../Navigation/DropdownTeamList.tsx | 8 +- src/components/Navigation/Navigation.astro | 2 +- src/components/Navigation/OnboardingModal.tsx | 2 +- src/components/NavigationDropdown.tsx | 2 +- .../Notification/NotificationPage.tsx | 4 +- src/components/OnboardingNudge.tsx | 2 +- src/components/OpenSourceBanner.astro | 2 +- src/components/PageProgress.tsx | 2 +- .../PageSponsors/StickyTopSponsor.tsx | 2 +- src/components/Popup/Popup.astro | 4 +- .../Projects/ListProjectSolutions.tsx | 2 +- src/components/Projects/ProjectCard.tsx | 4 +- .../Projects/ProjectSolutionRow.tsx | 2 +- src/components/Projects/ProjectsPage.tsx | 4 +- src/components/Projects/SelectLanguages.tsx | 4 +- src/components/Projects/SortProjects.tsx | 2 +- src/components/Projects/StartProjectModal.tsx | 2 +- .../StatusStepper/StepperStepSeparator.tsx | 2 +- .../Projects/SubmissionRequirement.tsx | 6 +- .../Projects/SubmitProjectModal.tsx | 2 +- .../Projects/SubmitSuccessModal.tsx | 2 +- src/components/Projects/VoteButton.tsx | 2 +- src/components/Questions/QuestionCard.tsx | 8 +- src/components/Questions/QuestionFinished.tsx | 4 +- src/components/Questions/QuestionGuide.astro | 2 +- src/components/Questions/QuestionLoader.tsx | 2 +- src/components/ResourceProgressStats.astro | 2 +- src/components/RespondInviteForm.tsx | 8 +- src/components/RoadCard/Editor.tsx | 2 +- src/components/RoadCard/RoadCardPage.tsx | 6 +- src/components/RoadCard/StepCounter.tsx | 2 +- .../RoadmapDropdownMenu.tsx | 2 +- src/components/RoadmapHeader.astro | 2 +- src/components/RoadmapTitleQuestion.tsx | 12 +- .../Roadmaps/CategoryFilterButton.tsx | 2 +- src/components/Roadmaps/RoadmapCard.tsx | 2 +- src/components/Roadmaps/RoadmapsPage.tsx | 4 +- .../SQLCourse/AuthorQuoteMessage.tsx | 2 +- src/components/SQLCourse/BuyButton.tsx | 4 +- src/components/SQLCourse/ChapterRow.tsx | 16 +- .../SQLCourse/CourseAnnouncement.tsx | 4 +- src/components/SQLCourse/CourseFeature.tsx | 6 +- src/components/SQLCourse/FloatingPurchase.tsx | 2 +- src/components/SQLCourse/ReviewsSection.tsx | 8 +- src/components/SQLCourse/SQLCoursePage.tsx | 6 +- src/components/SQLCourse/SectionHeader.tsx | 2 +- src/components/SQLCourse/Spotlight.tsx | 2 +- src/components/Schedule/ScheduleButton.tsx | 2 +- .../ShareOptions/ShareFriendList.tsx | 6 +- .../ShareOptions/ShareOptionsModal.tsx | 4 +- src/components/ShareOptions/ShareSuccess.tsx | 8 +- .../ShareOptions/ShareTeamMemberList.tsx | 4 +- .../ShareOptions/TransferToTeamList.tsx | 2 +- src/components/ShareRoadmapButton.tsx | 18 +- src/components/Stepper.tsx | 4 +- src/components/TabLink.tsx | 4 +- .../TableOfContent/TableOfContent.tsx | 4 +- .../TeamActivity/TeamActivityPage.tsx | 2 +- .../TeamActivity/TeamActivityTopicsModal.tsx | 2 +- src/components/TeamDropdown/TeamDropdown.tsx | 10 +- .../TeamMarketing/TeamHeroBanner.tsx | 2 +- src/components/TeamMarketing/TeamPricing.tsx | 4 +- .../TeamMembers/InviteMemberPopup.tsx | 8 +- src/components/TeamMembers/LeaveTeamPopup.tsx | 8 +- .../TeamMembers/MemberActionDropdown.tsx | 2 +- .../TeamMembers/UpdateMemberPopup.tsx | 6 +- .../TeamProgress/GroupRoadmapItem.tsx | 6 +- .../MemberCustomProgressModal.tsx | 4 +- .../TeamProgress/MemberProgressItem.tsx | 4 +- .../TeamProgress/MemberProgressModal.tsx | 4 +- .../MemberProgressModalHeader.tsx | 4 +- .../RoadmapActionDropdown.tsx | 8 +- .../TeamRoadmapsList/TeamRoadmaps.tsx | 8 +- .../TeamSettings/UpdateTeamForm.tsx | 18 +- src/components/TeamSidebar.tsx | 4 +- src/components/TeamsList.tsx | 10 +- src/components/Toast.tsx | 4 +- src/components/Tooltip.tsx | 2 +- .../TopicDetail/ContributionForm.tsx | 4 +- .../TopicDetail/ResourceListSeparator.tsx | 2 +- src/components/TopicDetail/TopicDetail.tsx | 6 +- .../TopicDetail/TopicDetailLink.tsx | 2 +- .../UpdateEmail/UpdateEmailForm.tsx | 10 +- .../UpdatePassword/UpdatePasswordForm.tsx | 8 +- .../UpdateProfile/ProfileUsername.tsx | 2 +- .../UpdateProfile/SkillProfileAlert.tsx | 2 +- .../UpdateProfile/UpdateProfileForm.tsx | 6 +- .../UpdateProfile/UpdatePublicProfileForm.tsx | 26 +- .../UpdateProfile/UploadProfilePicture.tsx | 2 +- src/components/UserProgress/ModalLoader.tsx | 4 +- .../UserProgress/UserCustomProgressModal.tsx | 4 +- .../UserProgress/UserProgressModal.tsx | 4 +- .../UserProgress/UserProgressModalHeader.tsx | 4 +- .../UserPublicProfile/UserProfileRoadmap.tsx | 2 +- .../UserProfileRoadmapRenderer.tsx | 2 +- .../UserPublicActivityHeatmap.tsx | 18 +- .../UserPublicProfilePage.tsx | 2 +- .../UserPublicProgresses.tsx | 4 +- src/components/YouTubeAlert.astro | 2 +- src/components/courses/CourseStep.astro | 4 +- .../content/106-styling/101-layouts.md | 2 +- src/pages/404.astro | 2 +- src/pages/[roadmapId]/index.astro | 2 +- src/pages/[roadmapId]/svg.astro | 2 +- src/pages/authors/[authorId].astro | 6 +- .../[bestPracticeId]/index.astro | 2 +- src/pages/get-started.astro | 8 +- src/pages/index.astro | 2 +- src/pages/projects/[projectId]/index.astro | 2 +- src/pages/questions/[questionGroupId].astro | 2 +- src/styles/global.css | 57 +- 239 files changed, 1167 insertions(+), 1171 deletions(-) delete mode 100644 .github/workflows/greetings.yml delete mode 100644 editor/.gitignore delete mode 100644 editor/package.json delete mode 100644 editor/postcss.config.mjs delete mode 100644 editor/src/components/readonly-editor.tsx delete mode 100644 editor/src/components/render-flow-json.ts delete mode 100644 editor/src/components/renderer.tsx delete mode 100644 editor/src/components/roadmap-generator.ts delete mode 100644 editor/src/components/types.ts delete mode 100644 editor/src/global.css delete mode 100644 editor/src/index.tsx delete mode 100644 editor/tsup.config.ts create mode 100644 packages/.gitkeep create mode 100644 pnpm-workspace.yaml delete mode 100644 scripts/generate-renderer-dummy.sh diff --git a/.github/workflows/cloudfront-api-cache.yml b/.github/workflows/cloudfront-api-cache.yml index b0788304b..fc8a584c7 100644 --- a/.github/workflows/cloudfront-api-cache.yml +++ b/.github/workflows/cloudfront-api-cache.yml @@ -2,7 +2,7 @@ name: Clears API Cloudfront Cache on: workflow_dispatch: jobs: - aws_costs: + cloudfront_api_cache: runs-on: ubuntu-latest steps: - name: Clear Cloudfront Caching diff --git a/.github/workflows/cloudfront-fe-cache.yml b/.github/workflows/cloudfront-fe-cache.yml index 35e3e841a..0f69e825a 100644 --- a/.github/workflows/cloudfront-fe-cache.yml +++ b/.github/workflows/cloudfront-fe-cache.yml @@ -2,7 +2,7 @@ name: Clears Frontend Cloudfront Cache on: workflow_dispatch: jobs: - aws_costs: + cloudfront_fe_cache: runs-on: ubuntu-latest steps: - name: Clear Cloudfront Caching diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml index 15af6d06b..e9bb29fef 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/deployment.yml @@ -38,7 +38,8 @@ jobs: - name: Generate Production Build run: | git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1 - # npm run compress:images + npm run generate-renderer + npm run compress:images npm run build # -------------------- diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml deleted file mode 100644 index 7b0b36d0b..000000000 --- a/.github/workflows/greetings.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: ❤️ Greetings - -on: - issues: - types: [opened] - pull_request_target: - branches: [master] - types: [opened] - -jobs: - greet: - name: Greet New Contributors - runs-on: ubuntu-latest - steps: - - uses: actions/first-interaction@v1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - pr-message: | - Thank you for your first ever contribution to [roadmap.sh](https://roadmap.sh)! 🎉 - - Please make sure to follow the [contribution guidelines](https://github.com/kamranahmedse/developer-roadmap/blob/master/contributing.md) when contributing to this project. Any PRs that don't follow the guidelines will be closed. - - Thanks for choosing to contribute, and for helping make this project better! 🌟 \ No newline at end of file diff --git a/.gitignore b/.gitignore index ccb5a8c1e..d301d3cdf 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,4 @@ pnpm-debug.log* tests-examples *.csveditor/ -editor/ \ No newline at end of file +packages/editor \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index 2035d1035..7353af597 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,10 +1,10 @@ // https://astro.build/config import sitemap from '@astrojs/sitemap'; -import tailwind from '@astrojs/tailwind'; import node from '@astrojs/node'; import { defineConfig } from 'astro/config'; import rehypeExternalLinks from 'rehype-external-links'; import { serializeSitemap, shouldIndexPage } from './sitemap.mjs'; +import tailwindcss from '@tailwindcss/vite'; import react from '@astrojs/react'; @@ -61,11 +61,6 @@ export default defineConfig({ }), trailingSlash: 'never', integrations: [ - tailwind({ - config: { - applyBaseStyles: false, - }, - }), sitemap({ filter: shouldIndexPage, serialize: serializeSitemap, @@ -73,6 +68,7 @@ export default defineConfig({ react(), ], vite: { + plugins: [tailwindcss()], ssr: { noExternal: [/^@roadmapsh\/editor.*$/], }, diff --git a/contributing.md b/contributing.md index cb360f056..de4cc772d 100644 --- a/contributing.md +++ b/contributing.md @@ -125,6 +125,22 @@ It's important to add a valid type, this will help us categorize the content and - PR's that don't follow our style guide, have no description, and a default title. - Links to your own blog articles. +## Local Development + +For local development, you can use the following commands: + +```bash +git clone git@github.com:kamranahmedse/developer-roadmap.git --depth 1 +cd developer-roadmap +pnpm add @roadmapsh/editor@npm:@roadmapsh/dummy-editor -w +pnpm install +``` +Run the development server with: + +```bash +pnpm dev +``` + *** Have a look at the [License](./license) file. diff --git a/editor/.gitignore b/editor/.gitignore deleted file mode 100644 index e3e8f7008..000000000 --- a/editor/.gitignore +++ /dev/null @@ -1,38 +0,0 @@ -# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. - -# dependencies -node_modules -.pnp -.pnp.js - -# testing -coverage - -# next.js -.next/ -out/ -dist -build -.vercel - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# local env files -.env -.env.local -.env.development.local -.env.test.local -.env.production.local - -# turbo -.turbo - -# vercel -.vercel diff --git a/editor/package.json b/editor/package.json deleted file mode 100644 index c4d3db0d7..000000000 --- a/editor/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "@roadmapsh/dummy-editor", - "version": "0.0.5", - "description": "Dummy editor for the Roadmap Editor", - "private": false, - "type": "module", - "main": "./dist/index.js", - "module": "./dist/index.mjs", - "types": "./dist/index.d.ts", - "files": [ - "dist/**" - ], - "exports": { - "./package.json": "./package.json", - ".": { - "node": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.js" - } - }, - "browser": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.js" - } - }, - "default": { - "import": { - "types": "./dist/index.d.ts", - "default": "./dist/index.mjs" - }, - "require": { - "types": "./dist/index.d.cts", - "default": "./dist/index.js" - } - } - }, - "./style.css": "./dist/index.css" - }, - "typesVersions": { - "*": { - "*": [ - "dist/index.d.ts" - ] - } - }, - "scripts": { - "dev": "tsup --watch", - "clean": "rm -rf dist && rm -rf node_modules", - "build": "tsup" - }, - "keywords": [], - "author": "Arik Chakma ", - "license": "ISC", - "dependencies": { - "clsx": "^2.1.1", - "react": "^19.0.0", - "tailwind-merge": "^3.0.1" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4.0.3", - "@types/react": "^19.0.8", - "postcss": "^8.5.1", - "postcss-replace": "^2.0.1", - "tailwindcss": "^4.0.3", - "tsup": "^8.3.6", - "typescript": "^5.7.3" - }, - "publishConfig": { - "access": "public" - } -} diff --git a/editor/postcss.config.mjs b/editor/postcss.config.mjs deleted file mode 100644 index 2de525e09..000000000 --- a/editor/postcss.config.mjs +++ /dev/null @@ -1,12 +0,0 @@ -export default { - plugins: { - '@tailwindcss/postcss': {}, - 'postcss-replace': { - pattern: /(--tw|\*, ::before, ::after)/g, - data: { - '--tw': '--rdm-tw', - '*, ::before, ::after': ':root', - }, - }, - }, -}; diff --git a/editor/src/components/readonly-editor.tsx b/editor/src/components/readonly-editor.tsx deleted file mode 100644 index 9b577f113..000000000 --- a/editor/src/components/readonly-editor.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { forwardRef, memo } from 'react'; - -export const ReadonlyEditor = memo( - forwardRef((props, ref) => { - return ( -
-

- Private Component -

-

- Renderer is a private component. If you are a collaborator and have - access to it. Run the following command: -

- - npm run generate-renderer - -
- ); - }) -); - -ReadonlyEditor.displayName = 'ReadonlyEditor'; diff --git a/editor/src/components/render-flow-json.ts b/editor/src/components/render-flow-json.ts deleted file mode 100644 index a802f0ecc..000000000 --- a/editor/src/components/render-flow-json.ts +++ /dev/null @@ -1,6 +0,0 @@ -export function renderFlowJSON(data: any, options?: any): Promise { - console.warn('renderFlowJSON is not implemented'); - console.warn('run the following command to generate the renderer:'); - console.warn('> npm run generate-renderer'); - return Promise.resolve(null); -} diff --git a/editor/src/components/renderer.tsx b/editor/src/components/renderer.tsx deleted file mode 100644 index 4559fa526..000000000 --- a/editor/src/components/renderer.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import { forwardRef } from 'react'; - -export const Renderer = forwardRef((props, ref) => { - return ( -
-

- Private Component -

-

- Renderer is a private component. If you are a collaborator and have - access to it. Run the following command: -

- - npm run generate-renderer - -
- ); -}); - -Renderer.displayName = 'Renderer'; diff --git a/editor/src/components/roadmap-generator.ts b/editor/src/components/roadmap-generator.ts deleted file mode 100644 index b9c9b47f8..000000000 --- a/editor/src/components/roadmap-generator.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { Edge, Node } from './types'; - -export function generateRoadmapFromText(markdown: string | any[]): { - nodes: Node[]; - edges: Edge[]; -} { - console.warn('generateRoadmapFromText is not implemented'); - console.warn('run the following command to generate the renderer:'); - console.warn('> npm run generate-renderer'); - return { - nodes: [], - edges: [], - }; -} - -export function generateAIRoadmapFromText(markdown: string | any[]): { - nodes: Node[]; - edges: Edge[]; -} { - console.warn('generateAIRoadmapFromText is not implemented'); - console.warn('run the following command to generate the renderer:'); - console.warn('> npm run generate-renderer'); - return { - nodes: [], - edges: [], - }; -} diff --git a/editor/src/components/types.ts b/editor/src/components/types.ts deleted file mode 100644 index 5f1433c01..000000000 --- a/editor/src/components/types.ts +++ /dev/null @@ -1,3 +0,0 @@ -export type Edge = any; -export type Node = any; -export type XYPosition = any; diff --git a/editor/src/global.css b/editor/src/global.css deleted file mode 100644 index cfc321dfe..000000000 --- a/editor/src/global.css +++ /dev/null @@ -1 +0,0 @@ -@import 'tailwindcss' prefix(rdm); diff --git a/editor/src/index.tsx b/editor/src/index.tsx deleted file mode 100644 index 1151990ee..000000000 --- a/editor/src/index.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import './global.css'; - -export * from './components/readonly-editor'; -export * from './components/renderer'; -export * from './components/render-flow-json'; -export * from './components/roadmap-generator'; -export * from './components/types'; diff --git a/editor/tsup.config.ts b/editor/tsup.config.ts deleted file mode 100644 index e86205dae..000000000 --- a/editor/tsup.config.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { defineConfig, Options } from 'tsup'; - -const packageOptions: Options = { - clean: true, - dts: true, - format: ['cjs', 'esm'], - platform: 'neutral', - sourcemap: true, -}; - -export default defineConfig([ - { - ...packageOptions, - entry: { - index: 'src/index.tsx', - }, - external: ['react'], - outExtension(ctx) { - return ctx.format === 'esm' ? { js: '.mjs' } : { js: '.js' }; - }, - }, -]); diff --git a/package.json b/package.json index f80d5e4b6..31008617b 100644 --- a/package.json +++ b/package.json @@ -34,13 +34,13 @@ "@astrojs/node": "^8.3.4", "@astrojs/react": "^3.6.2", "@astrojs/sitemap": "^3.2.0", - "@astrojs/tailwind": "^5.1.2", "@fingerprintjs/fingerprintjs": "^4.5.0", "@microsoft/clarity": "^1.0.0", "@nanostores/react": "^0.8.0", "@napi-rs/image": "^1.9.2", "@resvg/resvg-js": "^2.6.2", - "@roadmapsh/editor": "ssh://git@github.com/roadmapsh/web-draw#v0.0.8&path:packages/editor", + "@roadmapsh/editor": "workspace:*", + "@tailwindcss/vite": "^4.1.3", "@tanstack/react-query": "^5.59.16", "@types/react": "^18.3.11", "@types/react-dom": "^18.3.1", @@ -80,7 +80,7 @@ "shiki": "^3.1.0", "slugify": "^1.6.6", "tailwind-merge": "^2.5.3", - "tailwindcss": "^3.4.13", + "tailwindcss": "^4.1.3", "tiptap-markdown": "^0.8.10", "turndown": "^7.2.0", "unified": "^11.0.5", @@ -106,7 +106,7 @@ "openai": "^4.67.3", "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.1", - "prettier-plugin-tailwindcss": "^0.6.8", + "prettier-plugin-tailwindcss": "^0.6.11", "tsx": "^4.19.1" } } diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf4939988..70ae4ef0c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,13 @@ importers: dependencies: '@astrojs/node': specifier: ^8.3.4 - version: 8.3.4(astro@4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3)) + version: 8.3.4(astro@4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3)) '@astrojs/react': specifier: ^3.6.2 - version: 3.6.3(@types/node@18.19.86)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.6.3(@types/node@18.19.86)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(lightningcss@1.29.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@astrojs/sitemap': specifier: ^3.2.0 version: 3.3.0 - '@astrojs/tailwind': - specifier: ^5.1.2 - version: 5.1.5(astro@4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3))(tailwindcss@3.4.17) '@fingerprintjs/fingerprintjs': specifier: ^4.5.0 version: 4.6.1 @@ -36,8 +33,11 @@ importers: specifier: ^2.6.2 version: 2.6.2 '@roadmapsh/editor': - specifier: ssh://git@github.com/roadmapsh/web-draw#v0.0.8&path:packages/editor - version: git+https://git@github.com:roadmapsh/web-draw.git#d2057446c8f7fac3f2365bd8e538b20ae0468ad4&path:packages/editor(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(use-sync-external-store@1.5.0(react@18.3.1)) + specifier: workspace:* + version: link:packages/editor + '@tailwindcss/vite': + specifier: ^4.1.3 + version: 4.1.3(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)) '@tanstack/react-query': specifier: ^5.59.16 version: 5.71.10(react@18.3.1) @@ -49,7 +49,7 @@ importers: version: 18.3.6(@types/react@18.3.20) astro: specifier: ^4.16.1 - version: 4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3) + version: 4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -156,8 +156,8 @@ importers: specifier: ^2.5.3 version: 2.6.0 tailwindcss: - specifier: ^3.4.13 - version: 3.4.17 + specifier: ^4.1.3 + version: 4.1.3 tiptap-markdown: specifier: ^0.8.10 version: 0.8.10(@tiptap/core@2.11.7(@tiptap/pm@2.11.7)) @@ -173,13 +173,13 @@ importers: devDependencies: '@ai-sdk/google': specifier: ^1.1.19 - version: 1.2.7(zod@3.24.2) + version: 1.2.8(zod@3.24.2) '@playwright/test': specifier: ^1.48.0 version: 1.51.1 '@tailwindcss/typography': specifier: ^0.5.15 - version: 0.5.16(tailwindcss@3.4.17) + version: 0.5.16(tailwindcss@4.1.3) '@types/dom-to-image': specifier: ^2.6.7 version: 2.6.7 @@ -206,7 +206,7 @@ importers: version: 5.0.5 ai: specifier: ^4.1.51 - version: 4.3.1(react@18.3.1)(zod@3.24.2) + version: 4.3.2(react@18.3.1)(zod@3.24.2) csv-parser: specifier: ^3.0.0 version: 3.2.0 @@ -229,16 +229,68 @@ importers: specifier: ^0.14.1 version: 0.14.1 prettier-plugin-tailwindcss: - specifier: ^0.6.8 + specifier: ^0.6.11 version: 0.6.11(prettier-plugin-astro@0.14.1)(prettier@3.5.3) tsx: specifier: ^4.19.1 version: 4.19.3 + packages/editor: + dependencies: + '@xyflow/react': + specifier: ^12.4.2 + version: 12.5.4(@types/react@19.1.0)(react-dom@18.3.1(react@19.1.0))(react@19.1.0) + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.474.0 + version: 0.474.0(react@19.1.0) + nanoid: + specifier: ^5.0.9 + version: 5.1.5 + react: + specifier: ^19.0.0 + version: 19.1.0 + remark-parse: + specifier: ^11.0.0 + version: 11.0.0 + tailwind-merge: + specifier: ^3.0.1 + version: 3.1.0 + unified: + specifier: ^11.0.5 + version: 11.0.5 + zustand: + specifier: ^5.0.3 + version: 5.0.3(@types/react@19.1.0)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)) + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.0.3 + version: 4.1.3 + '@types/react': + specifier: ^19.0.8 + version: 19.1.0 + postcss: + specifier: ^8.5.1 + version: 8.5.3 + postcss-replace: + specifier: ^2.0.1 + version: 2.0.1(postcss@8.5.3) + tailwindcss: + specifier: ^4.0.3 + version: 4.1.3 + tsup: + specifier: ^8.3.6 + version: 8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.3) + typescript: + specifier: ^5.7.3 + version: 5.8.3 + packages: - '@ai-sdk/google@1.2.7': - resolution: {integrity: sha512-swGJ4nPRB83ZQgR9W5fF7usvZmZsBN61+dm03Hz/dRVVLLLTVZq/0YtpFZ8Yj0utNs9K+NvY0456e7cN3Ff8TQ==} + '@ai-sdk/google@1.2.8': + resolution: {integrity: sha512-Q7Y71KGyH5sennNev5xZvt5MhxWlu+crp7tZZtdFbQ9iDkOGrl+TurPssqM0Wv5lYmV+Lc8m14CK9/k7nF2IRA==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -307,12 +359,6 @@ packages: '@astrojs/sitemap@3.3.0': resolution: {integrity: sha512-nYE4lKQtk+Kbrw/w0G0TTgT724co0jUsU4tPlHY9au5HmTBKbwiCLwO/15b1/y13aZ4Kr9ZbMeMHlXuwn0ty4Q==} - '@astrojs/tailwind@5.1.5': - resolution: {integrity: sha512-1diguZEau7FZ9vIjzE4BwavGdhD3+JkdS8zmibl1ene+EHgIU5hI0NMgRYG3yea+Niaf7cyMwjeWeLvzq/maxg==} - peerDependencies: - astro: ^3.0.0 || ^4.0.0 || ^5.0.0 - tailwindcss: ^3.0.24 - '@astrojs/telemetry@3.1.0': resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} @@ -1050,10 +1096,6 @@ packages: resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} engines: {node: '>= 10'} - '@roadmapsh/editor@git+https://git@github.com:roadmapsh/web-draw.git#d2057446c8f7fac3f2365bd8e538b20ae0468ad4&path:packages/editor': - resolution: {commit: d2057446c8f7fac3f2365bd8e538b20ae0468ad4, path: packages/editor, repo: git@github.com:roadmapsh/web-draw.git, type: git} - version: 0.0.8 - '@rollup/pluginutils@5.1.4': resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} @@ -1207,11 +1249,92 @@ packages: engines: {node: '>= 8.0.0'} hasBin: true + '@tailwindcss/node@4.1.3': + resolution: {integrity: sha512-H/6r6IPFJkCfBJZ2dKZiPJ7Ueb2wbL592+9bQEl2r73qbX6yGnmQVIfiUvDRB2YI0a3PWDrzUwkvQx1XW1bNkA==} + + '@tailwindcss/oxide-android-arm64@4.1.3': + resolution: {integrity: sha512-cxklKjtNLwFl3mDYw4XpEfBY+G8ssSg9ADL4Wm6//5woi3XGqlxFsnV5Zb6v07dxw1NvEX2uoqsxO/zWQsgR+g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.3': + resolution: {integrity: sha512-mqkf2tLR5VCrjBvuRDwzKNShRu99gCAVMkVsaEOFvv6cCjlEKXRecPu9DEnxp6STk5z+Vlbh1M5zY3nQCXMXhw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.3': + resolution: {integrity: sha512-7sGraGaWzXvCLyxrc7d+CCpUN3fYnkkcso3rCzwUmo/LteAl2ZGCDlGvDD8Y/1D3ngxT8KgDj1DSwOnNewKhmg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.3': + resolution: {integrity: sha512-E2+PbcbzIReaAYZe997wb9rId246yDkCwAakllAWSGqe6VTg9hHle67hfH6ExjpV2LSK/siRzBUs5wVff3RW9w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.3': + resolution: {integrity: sha512-GvfbJ8wjSSjbLFFE3UYz4Eh8i4L6GiEYqCtA8j2Zd2oXriPuom/Ah/64pg/szWycQpzRnbDiJozoxFU2oJZyfg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.3': + resolution: {integrity: sha512-35UkuCWQTeG9BHcBQXndDOrpsnt3Pj9NVIB4CgNiKmpG8GnCNXeMczkUpOoqcOhO6Cc/mM2W7kaQ/MTEENDDXg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.3': + resolution: {integrity: sha512-dm18aQiML5QCj9DQo7wMbt1Z2tl3Giht54uVR87a84X8qRtuXxUqnKQkRDK5B4bCOmcZ580lF9YcoMkbDYTXHQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.3': + resolution: {integrity: sha512-LMdTmGe/NPtGOaOfV2HuO7w07jI3cflPrVq5CXl+2O93DCewADK0uW1ORNAcfu2YxDUS035eY2W38TxrsqngxA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.3': + resolution: {integrity: sha512-aalNWwIi54bbFEizwl1/XpmdDrOaCjRFQRgtbv9slWjmNPuJJTIKPHf5/XXDARc9CneW9FkSTqTbyvNecYAEGw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.3': + resolution: {integrity: sha512-PEj7XR4OGTGoboTIAdXicKuWl4EQIjKHKuR+bFy9oYN7CFZo0eu74+70O4XuERX4yjqVZGAkCdglBODlgqcCXg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.3': + resolution: {integrity: sha512-T8gfxECWDBENotpw3HR9SmNiHC9AOJdxs+woasRZ8Q/J4VHN0OMs7F+4yVNZ9EVN26Wv6mZbK0jv7eHYuLJLwA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.3': + resolution: {integrity: sha512-t16lpHCU7LBxDe/8dCj9ntyNpXaSTAgxWm1u2XQP5NiIu4KGSyrDJJRlK9hJ4U9yJxx0UKCVI67MJWFNll5mOQ==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.3': + resolution: {integrity: sha512-6s5nJODm98F++QT49qn8xJKHQRamhYHfMi3X7/ltxiSQ9dyRsaFSfFkfaMsanWzf+TMYQtbk8mt5f6cCVXJwfg==} + '@tailwindcss/typography@0.5.16': resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + '@tailwindcss/vite@4.1.3': + resolution: {integrity: sha512-lUI/QaDxLtlV52Lho6pu07CG9pSnRYLOPmKGIQjyHdTBagemc6HmgZxyjGAQ/5HMPrNeWBfTVIpQl0/jLXvWHQ==} + peerDependencies: + vite: ^5.2.0 || ^6 + '@tanstack/query-core@5.71.10': resolution: {integrity: sha512-/fKEY8fO1nbszfrBatzmhJa1nEwIKn0c6Tv2A1ocSA5OiD2GukOIV8nnBbvJRgZb/VIoBy9/N4PVbABI8YQLow==} @@ -1341,6 +1464,9 @@ packages: '@types/react@18.3.20': resolution: {integrity: sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==} + '@types/react@19.1.0': + resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==} + '@types/sanitize-html@2.15.0': resolution: {integrity: sha512-71Z6PbYsVKfp4i6Jvr37s5ql6if1Q/iJQT80NbaSi7uGaG8CqBMXP0pk/EsURAOuGdk5IJCd/vnzKrR7S3Txsw==} @@ -1384,8 +1510,8 @@ packages: resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} - ai@4.3.1: - resolution: {integrity: sha512-6RSRE0x0FAUZxWpLOq6yrh1IFXakvvJgHs8xPHtt8VmsTqhgjP5GClguaGs+KCpVbVfdygwgji7YJjOwq80suQ==} + ai@4.3.2: + resolution: {integrity: sha512-h643SfhKil0Pnxk2tVIazFDL1JevutUghvc3mOpWqJFMcudmgtwQYlvxCkwSfljrrq+qIfne8d6jCihMMhM7pw==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc @@ -1416,10 +1542,6 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -1451,13 +1573,6 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -1475,10 +1590,6 @@ packages: resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} engines: {node: '>= 0.4'} - binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -1498,14 +1609,20 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + bundle-require@5.1.0: + resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - camelcase@8.0.0: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} @@ -1513,8 +1630,8 @@ packages: camelize@1.0.1: resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} - caniuse-lite@1.0.30001711: - resolution: {integrity: sha512-OpFA8GsKtoV3lCcsI3U5XBAV+oVrMu96OS8XafKqnhOaEAW2mveD1Mx81Sx/02chERwhDakuXs28zbyEc4QMKg==} + caniuse-lite@1.0.30001712: + resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1532,9 +1649,9 @@ packages: character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} ci-info@4.2.0: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} @@ -1597,6 +1714,10 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1743,9 +1864,6 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-match-patch@1.0.5: resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} @@ -1815,6 +1933,10 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -1903,6 +2025,14 @@ packages: fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + fflate@0.7.4: resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} @@ -1952,9 +2082,6 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} @@ -2007,10 +2134,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -2128,14 +2251,6 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - - is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2196,13 +2311,17 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true jose@5.10.0: resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-cookie@3.0.5: resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} engines: {node: '>=14'} @@ -2251,6 +2370,70 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + lightningcss-darwin-arm64@1.29.2: + resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.2: + resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.2: + resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.2: + resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.2: + resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.2: + resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.2: + resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.2: + resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.2: + resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.2: + resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.2: + resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + engines: {node: '>= 12.0.0'} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -2264,6 +2447,10 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} @@ -2281,6 +2468,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + log-symbols@6.0.0: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} @@ -2554,14 +2744,6 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - npm-check-updates@17.1.16: resolution: {integrity: sha512-9nohkfjLRzLfsLVGbO34eXBejvrOOTuw5tvNammH73KEFG5XlFoi3G2TgjTExHtnrKWCbZ+mTT+dbNeSjASIPw==} engines: {node: ^18.18.0 || >=20.0.0, npm: '>=8.12.1'} @@ -2574,9 +2756,9 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} + object-path@0.11.8: + resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} + engines: {node: '>= 10.12.0'} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -2664,9 +2846,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -2686,10 +2865,6 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} @@ -2712,44 +2887,34 @@ packages: engines: {node: '>=18'} hasBin: true - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} peerDependencies: + jiti: '>=1.21.0' postcss: '>=8.0.9' - ts-node: '>=9.0.0' + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: + jiti: + optional: true postcss: optional: true - ts-node: + tsx: + optional: true + yaml: optional: true - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} + postcss-replace@2.0.1: + resolution: {integrity: sha512-T83GVovCkBQkFCTmuid0B2bWNu/O0Bh/HDMeEGFC62EwMvVBLZQFYM7iBbcGT48QDXSNSX6e/X1Q7/Syh5NFng==} + engines: {node: ^12 || ^14 || >=16} peerDependencies: - postcss: ^8.2.14 + postcss: ^8.4 postcss-selector-parser@6.0.10: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -2904,6 +3069,10 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -2963,12 +3132,9 @@ packages: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - - readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} @@ -3019,14 +3185,13 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -3154,6 +3319,10 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} @@ -3217,10 +3386,6 @@ packages: suf-log@2.5.3: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - swr@2.3.3: resolution: {integrity: sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==} peerDependencies: @@ -3232,10 +3397,12 @@ packages: tailwind-merge@3.1.0: resolution: {integrity: sha512-aV27Oj8B7U/tAOMhJsSGdWqelfmudnGMdXIlMnk1JfsjwSjts6o8HyfN7SFH3EztzH4YH8kk6GbLTHzITJO39Q==} - tailwindcss@3.4.17: - resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@4.1.3: + resolution: {integrity: sha512-2Q+rw9vy1WFXu5cIxlvsabCwhU2qUwodGq03ODhLJ0jW4ek5BUtoCsnLB0qG+m8AHgEsSJcJGDSDe06FXlP74g==} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -3254,6 +3421,10 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.12: + resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} + engines: {node: '>=12.0.0'} + tiptap-markdown@0.8.10: resolution: {integrity: sha512-iDVkR2BjAqkTDtFX0h94yVvE2AihCXlF0Q7RIXSJPRSR5I0PA1TMuAg6FHFpmqTn4tPxJ0by0CK7PUMlnFLGEQ==} peerDependencies: @@ -3270,6 +3441,13 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -3296,6 +3474,25 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsup@8.4.0: + resolution: {integrity: sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + tsx@4.19.3: resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==} engines: {node: '>=18.0.0'} @@ -3464,9 +3661,15 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} @@ -3502,11 +3705,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.7.1: - resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} - engines: {node: '>= 14'} - hasBin: true - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -3570,7 +3768,7 @@ packages: snapshots: - '@ai-sdk/google@1.2.7(zod@3.24.2)': + '@ai-sdk/google@1.2.8(zod@3.24.2)': dependencies: '@ai-sdk/provider': 1.1.0 '@ai-sdk/provider-utils': 2.2.4(zod@3.24.2) @@ -3638,9 +3836,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/node@8.3.4(astro@4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3))': + '@astrojs/node@8.3.4(astro@4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3))': dependencies: - astro: 4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3) + astro: 4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3) send: 0.19.1 server-destroy: 1.0.1 transitivePeerDependencies: @@ -3650,15 +3848,15 @@ snapshots: dependencies: prismjs: 1.30.0 - '@astrojs/react@3.6.3(@types/node@18.19.86)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@astrojs/react@3.6.3(@types/node@18.19.86)(@types/react-dom@18.3.6(@types/react@18.3.20))(@types/react@18.3.20)(lightningcss@1.29.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@types/react': 18.3.20 '@types/react-dom': 18.3.6(@types/react@18.3.20) - '@vitejs/plugin-react': 4.3.4(vite@5.4.17(@types/node@18.19.86)) + '@vitejs/plugin-react': 4.3.4(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) ultrahtml: 1.6.0 - vite: 5.4.17(@types/node@18.19.86) + vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) transitivePeerDependencies: - '@types/node' - less @@ -3676,16 +3874,6 @@ snapshots: stream-replace-string: 2.0.0 zod: 3.24.2 - '@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3))(tailwindcss@3.4.17)': - dependencies: - astro: 4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3) - autoprefixer: 10.4.21(postcss@8.5.3) - postcss: 8.5.3 - postcss-load-config: 4.0.2(postcss@8.5.3) - tailwindcss: 3.4.17 - transitivePeerDependencies: - - ts-node - '@astrojs/telemetry@3.1.0': dependencies: ci-info: 4.2.0 @@ -4253,24 +4441,6 @@ snapshots: '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 '@resvg/resvg-js-win32-x64-msvc': 2.6.2 - '@roadmapsh/editor@git+https://git@github.com:roadmapsh/web-draw.git#d2057446c8f7fac3f2365bd8e538b20ae0468ad4&path:packages/editor(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(use-sync-external-store@1.5.0(react@18.3.1))': - dependencies: - '@xyflow/react': 12.5.4(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@19.1.0) - clsx: 2.1.1 - lucide-react: 0.474.0(react@19.1.0) - nanoid: 5.1.5 - react: 19.1.0 - remark-parse: 11.0.0 - tailwind-merge: 3.1.0 - unified: 11.0.5 - zustand: 5.0.3(@types/react@18.3.20)(react@19.1.0)(use-sync-external-store@1.5.0(react@18.3.1)) - transitivePeerDependencies: - - '@types/react' - - immer - - react-dom - - supports-color - - use-sync-external-store - '@rollup/pluginutils@5.1.4(rollup@4.39.0)': dependencies: '@types/estree': 1.0.7 @@ -4410,13 +4580,82 @@ snapshots: fflate: 0.7.4 string.prototype.codepointat: 0.2.1 - '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)': + '@tailwindcss/node@4.1.3': + dependencies: + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + lightningcss: 1.29.2 + tailwindcss: 4.1.3 + + '@tailwindcss/oxide-android-arm64@4.1.3': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.3': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.3': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.3': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.3': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.3': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.3': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.3': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.3': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.3': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.3': + optional: true + + '@tailwindcss/oxide@4.1.3': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.3 + '@tailwindcss/oxide-darwin-arm64': 4.1.3 + '@tailwindcss/oxide-darwin-x64': 4.1.3 + '@tailwindcss/oxide-freebsd-x64': 4.1.3 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.3 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.3 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.3 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.3 + '@tailwindcss/oxide-linux-x64-musl': 4.1.3 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.3 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.3 + + '@tailwindcss/postcss@4.1.3': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.3 + '@tailwindcss/oxide': 4.1.3 + postcss: 8.5.3 + tailwindcss: 4.1.3 + + '@tailwindcss/typography@0.5.16(tailwindcss@4.1.3)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.17 + tailwindcss: 4.1.3 + + '@tailwindcss/vite@4.1.3(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2))': + dependencies: + '@tailwindcss/node': 4.1.3 + '@tailwindcss/oxide': 4.1.3 + tailwindcss: 4.1.3 + vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) '@tanstack/query-core@5.71.10': {} @@ -4577,6 +4816,10 @@ snapshots: '@types/prop-types': 15.7.14 csstype: 3.1.3 + '@types/react@19.1.0': + dependencies: + csstype: 3.1.3 + '@types/sanitize-html@2.15.0': dependencies: htmlparser2: 8.0.2 @@ -4591,24 +4834,24 @@ snapshots: '@ungap/structured-clone@1.3.0': {} - '@vitejs/plugin-react@4.3.4(vite@5.4.17(@types/node@18.19.86))': + '@vitejs/plugin-react@4.3.4(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.17(@types/node@18.19.86) + vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) transitivePeerDependencies: - supports-color - '@xyflow/react@12.5.4(@types/react@18.3.20)(react-dom@18.3.1(react@18.3.1))(react@19.1.0)': + '@xyflow/react@12.5.4(@types/react@19.1.0)(react-dom@18.3.1(react@19.1.0))(react@19.1.0)': dependencies: '@xyflow/system': 0.0.54 classcat: 5.0.5 react: 19.1.0 - react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.6(@types/react@18.3.20)(react@19.1.0) + react-dom: 18.3.1(react@19.1.0) + zustand: 4.5.6(@types/react@19.1.0)(react@19.1.0) transitivePeerDependencies: - '@types/react' - immer @@ -4633,7 +4876,7 @@ snapshots: dependencies: humanize-ms: 1.2.1 - ai@4.3.1(react@18.3.1)(zod@3.24.2): + ai@4.3.2(react@18.3.1)(zod@3.24.2): dependencies: '@ai-sdk/provider': 1.1.0 '@ai-sdk/provider-utils': 2.2.4(zod@3.24.2) @@ -4661,11 +4904,6 @@ snapshots: any-promise@1.3.0: {} - anymatch@3.1.3: - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - arg@5.0.2: {} argparse@1.0.10: @@ -4680,7 +4918,7 @@ snapshots: array-union@2.1.0: {} - astro@4.16.18(@types/node@18.19.86)(rollup@4.39.0)(typescript@5.8.3): + astro@4.16.18(@types/node@18.19.86)(lightningcss@1.29.2)(rollup@4.39.0)(typescript@5.8.3): dependencies: '@astrojs/compiler': 2.11.0 '@astrojs/internal-helpers': 0.4.1 @@ -4736,8 +4974,8 @@ snapshots: tsconfck: 3.1.5(typescript@5.8.3) unist-util-visit: 5.0.0 vfile: 6.0.3 - vite: 5.4.17(@types/node@18.19.86) - vitefu: 1.0.6(vite@5.4.17(@types/node@18.19.86)) + vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) + vitefu: 1.0.6(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)) which-pm: 3.0.1 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 @@ -4763,16 +5001,6 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.21(postcss@8.5.3): - dependencies: - browserslist: 4.24.4 - caniuse-lite: 1.0.30001711 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.5.3 - postcss-value-parser: 4.2.0 - axobject-query@4.1.0: {} bail@2.0.2: {} @@ -4783,8 +5011,6 @@ snapshots: base64-js@0.0.8: {} - binary-extensions@2.3.0: {} - boolbase@1.0.0: {} boxen@8.0.1: @@ -4808,23 +5034,28 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001711 + caniuse-lite: 1.0.30001712 electron-to-chromium: 1.5.132 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) + bundle-require@5.1.0(esbuild@0.25.2): + dependencies: + esbuild: 0.25.2 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - camelcase-css@2.0.1: {} - camelcase@8.0.0: {} camelize@1.0.1: {} - caniuse-lite@1.0.30001711: {} + caniuse-lite@1.0.30001712: {} ccount@2.0.1: {} @@ -4836,17 +5067,9 @@ snapshots: character-entities@2.0.2: {} - chokidar@3.6.0: + chokidar@4.0.3: dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 + readdirp: 4.1.2 ci-info@4.2.0: {} @@ -4894,6 +5117,8 @@ snapshots: commondir@1.0.1: {} + consola@3.4.2: {} + convert-source-map@2.0.0: {} cookie@0.7.2: {} @@ -5008,8 +5233,6 @@ snapshots: dependencies: dequal: 2.0.3 - didyoumean@1.2.2: {} - diff-match-patch@1.0.5: {} diff@5.2.0: {} @@ -5068,6 +5291,11 @@ snapshots: encodeurl@2.0.0: {} + enhanced-resolve@5.18.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@4.5.0: {} es-define-property@1.0.1: {} @@ -5183,6 +5411,10 @@ snapshots: dependencies: reusify: 1.1.0 + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + fflate@0.7.4: {} filename-reserved-regex@2.0.0: {} @@ -5236,8 +5468,6 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 - fraction.js@4.3.7: {} - fresh@0.5.2: {} fs-extra@11.3.0: @@ -5296,10 +5526,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - glob@10.4.5: dependencies: foreground-child: 3.3.1 @@ -5473,14 +5699,6 @@ snapshots: is-arrayish@0.3.2: {} - is-binary-path@2.1.0: - dependencies: - binary-extensions: 2.3.0 - - is-core-module@2.16.1: - dependencies: - hasown: 2.0.2 - is-docker@3.0.0: {} is-extendable@0.1.1: {} @@ -5521,10 +5739,12 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jiti@1.21.7: {} + jiti@2.4.2: {} jose@5.10.0: {} + joycon@3.1.1: {} + js-cookie@3.0.5: {} js-tokens@4.0.0: {} @@ -5562,6 +5782,51 @@ snapshots: kleur@4.1.5: {} + lightningcss-darwin-arm64@1.29.2: + optional: true + + lightningcss-darwin-x64@1.29.2: + optional: true + + lightningcss-freebsd-x64@1.29.2: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.2: + optional: true + + lightningcss-linux-arm64-gnu@1.29.2: + optional: true + + lightningcss-linux-arm64-musl@1.29.2: + optional: true + + lightningcss-linux-x64-gnu@1.29.2: + optional: true + + lightningcss-linux-x64-musl@1.29.2: + optional: true + + lightningcss-win32-arm64-msvc@1.29.2: + optional: true + + lightningcss-win32-x64-msvc@1.29.2: + optional: true + + lightningcss@1.29.2: + dependencies: + detect-libc: 2.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.2 + lightningcss-darwin-x64: 1.29.2 + lightningcss-freebsd-x64: 1.29.2 + lightningcss-linux-arm-gnueabihf: 1.29.2 + lightningcss-linux-arm64-gnu: 1.29.2 + lightningcss-linux-arm64-musl: 1.29.2 + lightningcss-linux-x64-gnu: 1.29.2 + lightningcss-linux-x64-musl: 1.29.2 + lightningcss-win32-arm64-msvc: 1.29.2 + lightningcss-win32-x64-msvc: 1.29.2 + lilconfig@3.1.3: {} linebreak@1.1.0: @@ -5575,6 +5840,8 @@ snapshots: dependencies: uc.micro: 2.1.0 + load-tsconfig@0.2.5: {} + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.11 @@ -5592,6 +5859,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} + log-symbols@6.0.0: dependencies: chalk: 5.4.1 @@ -6028,10 +6297,6 @@ snapshots: node-releases@2.0.19: {} - normalize-path@3.0.0: {} - - normalize-range@0.1.2: {} - npm-check-updates@17.1.16: {} nth-check@2.1.1: @@ -6040,7 +6305,7 @@ snapshots: object-assign@4.1.1: {} - object-hash@3.0.0: {} + object-path@0.11.8: {} on-finished@2.4.1: dependencies: @@ -6142,8 +6407,6 @@ snapshots: path-key@3.1.1: {} - path-parse@1.0.7: {} - path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -6157,8 +6420,6 @@ snapshots: picomatch@4.0.2: {} - pify@2.3.0: {} - pify@4.0.1: {} pirates@4.0.7: {} @@ -6175,40 +6436,25 @@ snapshots: optionalDependencies: fsevents: 2.3.2 - postcss-import@15.1.0(postcss@8.5.3): - dependencies: - postcss: 8.5.3 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.10 - - postcss-js@4.0.1(postcss@8.5.3): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.5.3 - - postcss-load-config@4.0.2(postcss@8.5.3): + postcss-load-config@6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3): dependencies: lilconfig: 3.1.3 - yaml: 2.7.1 optionalDependencies: + jiti: 2.4.2 postcss: 8.5.3 + tsx: 4.19.3 - postcss-nested@6.2.0(postcss@8.5.3): + postcss-replace@2.0.1(postcss@8.5.3): dependencies: + kind-of: 6.0.3 + object-path: 0.11.8 postcss: 8.5.3 - postcss-selector-parser: 6.1.2 postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} postcss@8.5.3: @@ -6359,6 +6605,8 @@ snapshots: punycode.js@2.3.1: {} + punycode@2.3.1: {} + queue-microtask@1.2.3: {} queue@6.0.2: @@ -6384,6 +6632,12 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 + react-dom@18.3.1(react@19.1.0): + dependencies: + loose-envify: 1.4.0 + react: 19.1.0 + scheduler: 0.23.2 + react-is@16.13.1: {} react-refresh@0.14.2: {} @@ -6415,13 +6669,7 @@ snapshots: react@19.1.0: {} - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - - readdirp@3.6.0: - dependencies: - picomatch: 2.3.1 + readdirp@4.1.2: {} regenerator-runtime@0.14.1: {} @@ -6519,13 +6767,9 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 - resolve-pkg-maps@1.0.0: {} + resolve-from@5.0.0: {} - resolve@1.22.10: - dependencies: - is-core-module: 2.16.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + resolve-pkg-maps@1.0.0: {} restore-cursor@5.1.0: dependencies: @@ -6740,6 +6984,10 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + space-separated-tokens@2.0.2: {} sprintf-js@1.0.3: {} @@ -6805,8 +7053,6 @@ snapshots: dependencies: s.color: 0.0.15 - supports-preserve-symlinks-flag@1.0.0: {} - swr@2.3.3(react@18.3.1): dependencies: dequal: 2.0.3 @@ -6817,32 +7063,9 @@ snapshots: tailwind-merge@3.1.0: {} - tailwindcss@3.4.17: - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.3 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.3 - postcss-import: 15.1.0(postcss@8.5.3) - postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.2(postcss@8.5.3) - postcss-nested: 6.2.0(postcss@8.5.3) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node + tailwindcss@4.1.3: {} + + tapable@2.2.1: {} thenify-all@1.6.0: dependencies: @@ -6858,6 +7081,11 @@ snapshots: tinyexec@0.3.2: {} + tinyglobby@0.2.12: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + tiptap-markdown@0.8.10(@tiptap/core@2.11.7(@tiptap/pm@2.11.7)): dependencies: '@tiptap/core': 2.11.7(@tiptap/pm@2.11.7) @@ -6874,6 +7102,12 @@ snapshots: tr46@0.0.3: {} + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + trim-lines@3.0.1: {} trim-repeated@1.0.0: @@ -6890,6 +7124,33 @@ snapshots: tslib@2.8.1: {} + tsup@8.4.0(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3)(typescript@5.8.3): + dependencies: + bundle-require: 5.1.0(esbuild@0.25.2) + cac: 6.7.14 + chokidar: 4.0.3 + consola: 3.4.2 + debug: 4.4.0 + esbuild: 0.25.2 + joycon: 3.1.1 + picocolors: 1.1.1 + postcss-load-config: 6.0.1(jiti@2.4.2)(postcss@8.5.3)(tsx@4.19.3) + resolve-from: 5.0.0 + rollup: 4.39.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.12 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.5.3 + typescript: 5.8.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + tsx@4.19.3: dependencies: esbuild: 0.25.2 @@ -7022,7 +7283,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.17(@types/node@18.19.86): + vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2): dependencies: esbuild: 0.21.5 postcss: 8.5.3 @@ -7030,10 +7291,11 @@ snapshots: optionalDependencies: '@types/node': 18.19.86 fsevents: 2.3.3 + lightningcss: 1.29.2 - vitefu@1.0.6(vite@5.4.17(@types/node@18.19.86)): + vitefu@1.0.6(vite@5.4.17(@types/node@18.19.86)(lightningcss@1.29.2)): optionalDependencies: - vite: 5.4.17(@types/node@18.19.86) + vite: 5.4.17(@types/node@18.19.86)(lightningcss@1.29.2) w3c-keyname@2.2.8: {} @@ -7043,11 +7305,19 @@ snapshots: webidl-conversions@3.0.1: {} + webidl-conversions@4.0.2: {} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + which-pm-runs@1.1.0: {} which-pm@3.0.1: @@ -7084,8 +7354,6 @@ snapshots: yallist@3.1.1: {} - yaml@2.7.1: {} - yargs-parser@21.1.1: {} yocto-queue@1.2.1: {} @@ -7103,11 +7371,11 @@ snapshots: zod@3.24.2: {} - zustand@4.5.6(@types/react@18.3.20)(react@19.1.0): + zustand@4.5.6(@types/react@19.1.0)(react@19.1.0): dependencies: use-sync-external-store: 1.5.0(react@19.1.0) optionalDependencies: - '@types/react': 18.3.20 + '@types/react': 19.1.0 react: 19.1.0 zustand@5.0.3(@types/react@18.3.20)(react@18.3.1)(use-sync-external-store@1.5.0(react@18.3.1)): @@ -7116,10 +7384,10 @@ snapshots: react: 18.3.1 use-sync-external-store: 1.5.0(react@18.3.1) - zustand@5.0.3(@types/react@18.3.20)(react@19.1.0)(use-sync-external-store@1.5.0(react@18.3.1)): + zustand@5.0.3(@types/react@19.1.0)(react@19.1.0)(use-sync-external-store@1.5.0(react@19.1.0)): optionalDependencies: - '@types/react': 18.3.20 + '@types/react': 19.1.0 react: 19.1.0 - use-sync-external-store: 1.5.0(react@18.3.1) + use-sync-external-store: 1.5.0(react@19.1.0) zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 000000000..924b55f42 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - packages/* diff --git a/scripts/generate-renderer-dummy.sh b/scripts/generate-renderer-dummy.sh deleted file mode 100644 index 849a3ca7e..000000000 --- a/scripts/generate-renderer-dummy.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -rm -rf .temp -rm -rf editor - -git clone ssh://git@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1 - -cd .temp/web-draw -pnpm install -npm run build -- --filter=@roadmapsh/dummy-editor - - -# Copy new editor -cp -rf packages/dummy-editor ../../editor - -# Remove temp directory -rm -rf .temp - -# Reinstall so that the editor which was setup gets used -rm -rf node_modules -pnpm install \ No newline at end of file diff --git a/scripts/generate-renderer.sh b/scripts/generate-renderer.sh index e9c5189b2..11db6d24b 100644 --- a/scripts/generate-renderer.sh +++ b/scripts/generate-renderer.sh @@ -9,24 +9,13 @@ if [ ! -d ".temp/web-draw" ]; then git clone ssh://git@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1 fi -cd .temp/web-draw -pnpm install -npm run build -- --filter=@roadmapsh/editor +# Make dir +mkdir -p packages/editor +mkdir -p packages/editor/dist -cd ../../ - -# Copy new editor -cp -rf .temp/web-draw/packages/editor editor - -editor_changed_files=$(git ls-files -m editor) - -echo $editor_changed_files - -# for each of the changed files, assume they are unchanged -for file in $editor_changed_files; do - echo "Assuming $file is unchanged" - git update-index --assume-unchanged $file -done +# Copy the editor dist, package.json +cp -rf .temp/web-draw/packages/editor/dist packages/editor +cp -rf .temp/web-draw/packages/editor/package.json packages/editor # Remove temp directory rm -rf .temp @@ -34,5 +23,3 @@ rm -rf .temp # Reinstall so that the editor which was setup gets used rm -rf node_modules pnpm install - -git checkout -- pnpm-lock.yaml \ No newline at end of file diff --git a/src/components/AccountSidebar.astro b/src/components/AccountSidebar.astro index bf1029f17..dc7a699db 100644 --- a/src/components/AccountSidebar.astro +++ b/src/components/AccountSidebar.astro @@ -163,7 +163,7 @@ const sidebarLinks = [ : 'border-r-transparent text-gray-500 hover:border-r-gray-300' }`} > - + {sidebarLink.icon.component ? ( +
diff --git a/src/components/Activity/ActivityTopicsModal.tsx b/src/components/Activity/ActivityTopicsModal.tsx index b23ead5b2..1913a070f 100644 --- a/src/components/Activity/ActivityTopicsModal.tsx +++ b/src/components/Activity/ActivityTopicsModal.tsx @@ -43,7 +43,7 @@ export function ActivityTopicsModal(props: ActivityTopicDetailsProps) { onClose(); }} > -
+
{actionType.replace('_', ' ')} diff --git a/src/components/Activity/ProjectProgress.tsx b/src/components/Activity/ProjectProgress.tsx index 3e91c25f3..e10c9d5c9 100644 --- a/src/components/Activity/ProjectProgress.tsx +++ b/src/components/Activity/ProjectProgress.tsx @@ -36,7 +36,7 @@ export function ProjectProgress(props: ProjectProgressType) { target="_blank" > - {projectStatus?.title} + {projectStatus?.title} {projectStatus.upvotes} diff --git a/src/components/Activity/ResourceProgress.tsx b/src/components/Activity/ResourceProgress.tsx index 00b38aba3..7e2e7cf15 100644 --- a/src/components/Activity/ResourceProgress.tsx +++ b/src/components/Activity/ResourceProgress.tsx @@ -73,7 +73,7 @@ export function ResourceProgress(props: ResourceProgressType) { showActions ? 'pr-7' : '', )} > - {title} + {title} {parseInt(progressPercentage, 10)}% diff --git a/src/components/AddTeamRoadmap.tsx b/src/components/AddTeamRoadmap.tsx index 9772d559e..da0403a7b 100644 --- a/src/components/AddTeamRoadmap.tsx +++ b/src/components/AddTeamRoadmap.tsx @@ -69,7 +69,7 @@ export function AddTeamRoadmap(props: AddTeamRoadmapProps) {
{isLoading && ( <> @@ -99,7 +99,7 @@ export function AddTeamRoadmap(props: AddTeamRoadmapProps) { @@ -110,7 +110,7 @@ export function AddTeamRoadmap(props: AddTeamRoadmapProps) { setIsLoading(false); }} type="button" - className="flex-grow cursor-pointer rounded-lg bg-black py-2 text-center text-white" + className="grow cursor-pointer rounded-lg bg-black py-2 text-center text-white" > + Add More @@ -126,7 +126,7 @@ export function AddTeamRoadmap(props: AddTeamRoadmapProps) { @@ -152,7 +152,7 @@ export function AddTeamRoadmap(props: AddTeamRoadmapProps) { setSelectedRoadmap(roadmapId); }); }} - inputClassName="mt-2 mb-2 block w-full rounded-md border border-gray-300 px-3 py-2 outline-none placeholder:text-gray-400 focus:border-gray-400" + inputClassName="mt-2 mb-2 block w-full rounded-md border border-gray-300 px-3 py-2 outline-hidden placeholder:text-gray-400 focus:border-gray-400" placeholder={'Search for roadmap'} /> @@ -160,7 +160,7 @@ export function AddTeamRoadmap(props: AddTeamRoadmapProps) { diff --git a/src/components/AdvertiseForm.tsx b/src/components/AdvertiseForm.tsx index 36d132296..fa6618215 100644 --- a/src/components/AdvertiseForm.tsx +++ b/src/components/AdvertiseForm.tsx @@ -30,7 +30,7 @@ function Input(props: InputProps) { value={value} onChange={onChange} rows={rows} - className="mt-1 block w-full rounded-md border border-gray-300 p-2 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" + className="mt-1 block w-full rounded-md border border-gray-300 p-2 shadow-xs focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" autoComplete="off" data-1p-ignore="" data-form-type="other" @@ -45,7 +45,7 @@ function Input(props: InputProps) { value={value} onChange={onChange} required={required} - className="mt-1 block w-full rounded-md border border-gray-300 p-2 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" + className="mt-1 block w-full rounded-md border border-gray-300 p-2 shadow-xs focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" autoComplete="off" data-1p-ignore="" data-form-type="other" @@ -120,7 +120,7 @@ export function AdvertiseForm() { Ready to learn more? Fill out the form below to get started! {error && ( -
+
{error}
)} @@ -199,7 +199,7 @@ export function AdvertiseForm() { type="checkbox" checked={formData.updates} onChange={handleInputChange} - className="h-4 w-4 rounded border-gray-300 text-indigo-600 focus:ring-indigo-500" + className="h-4 w-4 rounded-sm border-gray-300 text-indigo-600 focus:ring-indigo-500" />
@@ -213,7 +213,7 @@ export function AdvertiseForm() {
diff --git a/src/components/AuthenticationFlow/CourseLoginPopup.tsx b/src/components/AuthenticationFlow/CourseLoginPopup.tsx index 5670c94fa..8eeaf9a8a 100644 --- a/src/components/AuthenticationFlow/CourseLoginPopup.tsx +++ b/src/components/AuthenticationFlow/CourseLoginPopup.tsx @@ -115,7 +115,7 @@ export function CourseLoginPopup(props: CourseLoginPopupProps) {
{!isUsingEmail && ( diff --git a/src/components/AuthenticationFlow/EmailSignupForm.tsx b/src/components/AuthenticationFlow/EmailSignupForm.tsx index 8f5999166..5fd452fe0 100644 --- a/src/components/AuthenticationFlow/EmailSignupForm.tsx +++ b/src/components/AuthenticationFlow/EmailSignupForm.tsx @@ -80,7 +80,7 @@ export function EmailSignupForm(props: EmailSignupFormProps) { min={3} max={50} required - className="block w-full rounded-lg border border-gray-300 px-3 py-2 outline-none placeholder:text-gray-400 focus:ring-2 focus:ring-black focus:ring-offset-1" + className="block w-full rounded-lg border border-gray-300 px-3 py-2 outline-hidden placeholder:text-gray-400 focus:ring-2 focus:ring-black focus:ring-offset-1" placeholder="Full Name" value={name} onInput={(e) => setName(String((e.target as any).value))} @@ -93,7 +93,7 @@ export function EmailSignupForm(props: EmailSignupFormProps) { type="email" autoComplete="email" required - className="block w-full rounded-lg border border-gray-300 px-3 py-2 outline-none placeholder:text-gray-400 focus:ring-2 focus:ring-black focus:ring-offset-1" + className="block w-full rounded-lg border border-gray-300 px-3 py-2 outline-hidden placeholder:text-gray-400 focus:ring-2 focus:ring-black focus:ring-offset-1" placeholder="Email Address" value={email} onInput={(e) => setEmail(String((e.target as any).value))} @@ -108,7 +108,7 @@ export function EmailSignupForm(props: EmailSignupFormProps) { min={6} max={50} required - className="block w-full rounded-lg border border-gray-300 px-3 py-2 outline-none placeholder:text-gray-400 focus:ring-2 focus:ring-black focus:ring-offset-1" + className="block w-full rounded-lg border border-gray-300 px-3 py-2 outline-hidden placeholder:text-gray-400 focus:ring-2 focus:ring-black focus:ring-offset-1" placeholder="Password" value={password} onInput={(e) => setPassword(String((e.target as any).value))} @@ -121,7 +121,7 @@ export function EmailSignupForm(props: EmailSignupFormProps) { diff --git a/src/components/AuthenticationFlow/ForgotPasswordForm.tsx b/src/components/AuthenticationFlow/ForgotPasswordForm.tsx index b89e98890..7096ffa95 100644 --- a/src/components/AuthenticationFlow/ForgotPasswordForm.tsx +++ b/src/components/AuthenticationFlow/ForgotPasswordForm.tsx @@ -33,7 +33,7 @@ export function ForgotPasswordForm() { {isLoading ? 'Please wait...' : 'Continue'} diff --git a/src/components/AuthenticationFlow/GitHubButton.tsx b/src/components/AuthenticationFlow/GitHubButton.tsx index 356a11779..6a97540b2 100644 --- a/src/components/AuthenticationFlow/GitHubButton.tsx +++ b/src/components/AuthenticationFlow/GitHubButton.tsx @@ -148,7 +148,7 @@ export function GitHubButton(props: GitHubButtonProps) { <> diff --git a/src/components/Befriend.tsx b/src/components/Befriend.tsx index 10c8e6ff9..548d0fa77 100644 --- a/src/components/Befriend.tsx +++ b/src/components/Befriend.tsx @@ -125,7 +125,7 @@ export function Befriend() {
Back to home @@ -141,7 +141,7 @@ export function Befriend() { const isMe = currentUser?.id === user.id; return ( -
+
{'join {isMe ? "You can't add yourself" : 'Add Friend'} @@ -177,7 +177,7 @@ export function Befriend() { {user.status === 'sent' && ( <> - + Request Sent @@ -188,7 +188,7 @@ export function Befriend() { setIsConfirming(true); }} type="button" - className="flex w-full flex-grow cursor-pointer items-center justify-center rounded-lg border border-red-600 bg-red-600 px-3 py-2 text-center text-white hover:bg-red-700" + className="flex w-full grow cursor-pointer items-center justify-center rounded-lg border border-red-600 bg-red-600 px-3 py-2 text-center text-white hover:bg-red-700" > Withdraw Request @@ -196,7 +196,7 @@ export function Befriend() { )} {isConfirming && ( - + Are you sure?{' '} diff --git a/src/components/Billing/UpgradeAccountModal.tsx b/src/components/Billing/UpgradeAccountModal.tsx index 6a52a4e04..b4c7d0a14 100644 --- a/src/components/Billing/UpgradeAccountModal.tsx +++ b/src/components/Billing/UpgradeAccountModal.tsx @@ -236,12 +236,12 @@ export function UpgradeAccountModal(props: UpgradeAccountModalProps) {

-
+