From 15103159cc342756af93b881fd8800e2ae7726c3 Mon Sep 17 00:00:00 2001 From: Dhanush Date: Sun, 12 Jan 2025 16:43:19 +0530 Subject: [PATCH] feat: add project switcher, app header, ci/cd --- .github/ISSUE_TEMPLATE/bug-report.yml | 110 ++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++ .github/ISSUE_TEMPLATE/feature-request.yml | 58 +++++++++ .github/PULL_REQUEST_TEMPLATE.md | 5 + .github/PULL_REQUEST_TEMPLATE/bug-fix.md | 61 +++++++++ .github/PULL_REQUEST_TEMPLATE/feature.md | 57 ++++++++ .github/PULL_REQUEST_TEMPLATE/generic.md | 49 +++++++ .github/funding.yml | 1 + .github/security.md | 9 ++ .github/workflows/quality.yml | 62 +++++++++ bun.lockb | Bin 291982 -> 292334 bytes package.json | 6 +- {src/assets => public}/plura-logo.png | Bin .../{plura-ai => ai-sdk}/[[...slug]]/page.tsx | 0 src/app/layout.tsx | 6 +- src/components/footer/footer.tsx | 123 ++++++++++++++++++ src/components/mdx/toc.tsx | 17 ++- src/components/sidebar/app-header.tsx | 5 +- src/components/sidebar/app-sidebar.tsx | 8 +- src/components/sidebar/nav-guide.tsx | 1 - src/components/sidebar/project-switcher.tsx | 94 +++++++++++++ src/components/sidebar/version-switcher.tsx | 65 --------- src/components/ui/badge.tsx | 36 +++++ src/config/sidebar.config.ts | 26 +++- src/types/index.d.ts | 7 + 25 files changed, 729 insertions(+), 85 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/bug-fix.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/feature.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/generic.md create mode 100644 .github/funding.yml create mode 100644 .github/security.md create mode 100644 .github/workflows/quality.yml rename {src/assets => public}/plura-logo.png (100%) rename src/app/(routes)/{plura-ai => ai-sdk}/[[...slug]]/page.tsx (100%) create mode 100644 src/components/footer/footer.tsx create mode 100644 src/components/sidebar/project-switcher.tsx delete mode 100644 src/components/sidebar/version-switcher.tsx create mode 100644 src/components/ui/badge.tsx diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 0000000..ddd285a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,110 @@ +name: Bug Report +description: Report a bug +title: "🐛 [BUG]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Please fill out the sections below to help everyone identify and fix the bug + - type: textarea + id: description + attributes: + label: Describe your issue + placeholder: When I click here this happens + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + - type: textarea + id: current_behavior + attributes: + label: What is the current behaviour? + placeholder: Currently this is happening + validations: + required: true + - type: textarea + id: expected + attributes: + label: What was the expected behaviour? + placeholder: I expected this to happen + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: Put here any screenshots or videos (optional) + - type: dropdown + id: browsers + attributes: + label: "Browsers" + description: What browsers are you seeing the problem on? + multiple: true + options: + - Firefox + - Chrome + - Safari + - Microsoft Edge + - Opera + validations: + required: false + - type: dropdown + id: os + attributes: + label: "OS" + description: What is the impacted environment? + multiple: true + options: + - Windows + - Linux + - Mac + validations: + required: false + - type: dropdown + id: severity + attributes: + label: "Bug Severity" + description: What is the severity of this issue? + multiple: false + options: + - Critical + - High + - Medium + - Low + validations: + required: false + - type: dropdown + id: assign + attributes: + label: "Would you like to work on this issue?" + options: + - "Yes" + - "No" + validations: + required: false + - type: checkboxes + id: terms + attributes: + label: Please check all the boxes below + options: + - label: I have read and followed the project's code of conduct + required: true + - label: I have searched for similar issues before creating this one + required: true + - label: I have provided all the necessary information to understand and reproduce the issue + required: true + - label: I am willing to contribute to the resolution of this issue + required: false + - type: markdown + attributes: + value: | + Thanks for reporting this issue! We will get back to you as soon as possible. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..bcb4e4d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Discord + about: You can join our Discord support server. + url: https://l.devwtf.in/plura-dc + - name: Twitter + about: You can follow us on Twitter. + url: https://x.com/getplura \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 0000000..54d4b30 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,58 @@ +name: New feature +description: Suggest or request a new feature +title: "💡 [FEATURE]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + Please fill out the sections below to properly describe the new feature you are suggesting. + - type: textarea + id: description + attributes: + label: Describe the feature + placeholder: A button in the screen X that allows to do Y + validations: + required: true + - type: textarea + id: current_behavior + attributes: + label: What is the current behaviour? + placeholder: Currently this is happening + - type: textarea + id: expected + attributes: + label: What was the expected behaviour? + placeholder: I expected this to happen + validations: + required: true + - type: textarea + id: context + attributes: + label: Additional context + placeholder: | + Add any other context or screenshots about the feature request here. + - type: dropdown + id: assign + attributes: + label: "Would you like to work on this issue?" + options: + - "Yes" + - "No" + - type: checkboxes + id: terms + attributes: + label: Please check all the boxes below + options: + - label: I have read and followed the project's code of conduct + required: true + - label: I have searched for similar issues before creating this one + required: true + - label: I have provided all the necessary information to understand and reproduce the issue + required: true + - label: I am willing to contribute to the resolution of this issue + required: false + - type: markdown + attributes: + value: | + Thanks for your suggestion! Let's see together if it can be implemented. \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..8224037 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ +Choose a template by going to `Preview` tab and selecting appropriate option + +- [Bug Fixing Report](?expand=1&template=bug-fix.md) +- [Feature Report](?expand=1&template=feature.md) +- [Generic Report](?expand=1&template=generic.md) \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/bug-fix.md b/.github/PULL_REQUEST_TEMPLATE/bug-fix.md new file mode 100644 index 0000000..296f221 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/bug-fix.md @@ -0,0 +1,61 @@ +## Description + +[Provide a concise description of the changes made in this PR.] + +## Root Cause + +[Explain what caused the bug to occur.] + +## Solution + +[Describe the solution you implemented to fix the bug.] + +## Testing + +[Describe the testing that you performed to ensure that the bug was fixed and that the solution did not introduce any new issues.] + +## Impact + +[Mention the impact of the bug and how it was affecting the users.] + +## Checklist + +Please confirm that you have completed the following: + + + +- [ ] I have tested the bug fix thoroughly. +- [ ] I have provided a clear and concise description of the bug fix. +- [ ] I have followed the code style and formatting guidelines. +- [ ] I have added any necessary documentation or comments. +- [ ] I have updated any relevant tests or test cases. + +#### Check only those which are applicable. + +**Documentation Updated?** + +- [ ] If your feature adds a new API, then documentation related to the feature like API-Contracts, and Data-models must be updated. + +**Breaking Changes** + +- [ ] If your feature introduces breaking changes or if something is missing, please mention the related issue tickets. + +**Development Tested?** + +- [ ] Confirm whether the changes have been tested locally during development. + +**Tested in Staging?** + +- [ ] Indicate whether the changes have been tested in the staging environment. + +**Under Feature Flag** + +- [ ] Specify if the changes are currently under a feature flag. + +**Database Changes** + +- [ ] Indicate whether the changes include modifications to the database. + +## Issue Ticket Number + +[Add the relevant issue ticket number here (e.g., Closes #).] \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/feature.md b/.github/PULL_REQUEST_TEMPLATE/feature.md new file mode 100644 index 0000000..f5b3ecc --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/feature.md @@ -0,0 +1,57 @@ +## Description + +[Provide a brief description of the feature you are adding and the changes made in this PR.] + +## Implementation Details + +[Explain the technical details of how the feature was implemented, including any notable design decisions, architecture changes, and third-party dependencies.] + +## Testing + +[Describe the testing that you performed to ensure that the feature is working as expected and does not introduce any new issues. This should include any automated tests as well as any manual testing you conducted.] + +## Screenshots / Demo + +[Include any relevant screenshots or a demo of the feature in action (if applicable).] + +## Checklist + +Please confirm that you have completed the following: + + + +- [ ] I have tested the feature thoroughly. +- [ ] I have provided a clear and concise description of the feature implementation. +- [ ] I have followed the code style and formatting guidelines. +- [ ] I have added any necessary documentation or comments. +- [ ] I have updated any relevant tests or test cases. + +#### Check only those which are applicable. + +**Documentation Updated?** + +- [ ] If your feature adds a new API, then documentation related to the feature like API-Contracts, and Data-models must be updated. + +**Breaking Changes** + +- [ ] If your feature introduces breaking changes or if something is missing, please mention the related issue tickets. + +**Development Tested?** + +- [ ] Confirm whether the changes have been tested locally during development. + +**Tested in Staging?** + +- [ ] Indicate whether the changes have been tested in the staging environment. + +**Under Feature Flag** + +- [ ] Specify if the changes are currently under a feature flag. + +**Database Changes** + +- [ ] Indicate whether the changes include modifications to the database. + +## Issue ID + +[Add the relevant issue ticket number here (e.g., Closes #).] \ No newline at end of file diff --git a/.github/PULL_REQUEST_TEMPLATE/generic.md b/.github/PULL_REQUEST_TEMPLATE/generic.md new file mode 100644 index 0000000..2ed5fe3 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/generic.md @@ -0,0 +1,49 @@ +## Description + +[Provide a concise description of the changes made in this PR.] + +## Screenshots / Demo + +[Include any relevant screenshots or a demo of the feature in action (if applicable).] + +## Checklist + +Please confirm that you have completed the following: + + + +- [ ] I have tested the feature thoroughly. +- [ ] I have provided a clear and concise description of the feature implementation. +- [ ] I have followed the code style and formatting guidelines. +- [ ] I have added any necessary documentation or comments. +- [ ] I have updated any relevant tests or test cases. + +#### Check only those which are applicable. + +**Documentation Updated?** + +- [ ] If your feature adds a new API, then documentation related to the feature like API-Contracts, and Data-models must be updated. + +**Breaking Changes** + +- [ ] If your feature introduces breaking changes or if something is missing, please mention the related issue tickets. + +**Development Tested?** + +- [ ] Confirm whether the changes have been tested locally during development. + +**Tested in Staging?** + +- [ ] Indicate whether the changes have been tested in the staging environment. + +**Under Feature Flag** + +- [ ] Specify if the changes are currently under a feature flag. + +**Database Changes** + +- [ ] Indicate whether the changes include modifications to the database. + +## Issue ID + +[Add the relevant issue ticket number here (e.g., Closes #).] \ No newline at end of file diff --git a/.github/funding.yml b/.github/funding.yml new file mode 100644 index 0000000..26909c8 --- /dev/null +++ b/.github/funding.yml @@ -0,0 +1 @@ +github: [SkidGod4444] \ No newline at end of file diff --git a/.github/security.md b/.github/security.md new file mode 100644 index 0000000..375fb52 --- /dev/null +++ b/.github/security.md @@ -0,0 +1,9 @@ +# Reporting Security Issues + +If you believe you have found a security vulnerability in the `@plura-ai/chat-widget` SDK, we encourage you to let us know right away. + +We will investigate all legitimate reports and do our best to quickly fix the problem. + +Email `connect.saidev@gmail.com` to disclose any security vulnerabilities. + +Report in the server: https://l.devwtf.in/plura-dc \ No newline at end of file diff --git a/.github/workflows/quality.yml b/.github/workflows/quality.yml new file mode 100644 index 0000000..24ed0d0 --- /dev/null +++ b/.github/workflows/quality.yml @@ -0,0 +1,62 @@ +name: Quality Checks + +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + prettier: + name: 'Format' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 'latest' + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Run Format check + run: bun run format:fix + + eslint: + name: 'ESLint' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 'latest' + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Run ESLint check + run: bun run lint + + types: + name: 'TypeScript' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 'latest' + + - name: Install dependencies + run: bun install --frozen-lockfile + + - name: Run TypeScript type check + run: bun run type-check \ No newline at end of file diff --git a/bun.lockb b/bun.lockb index aaf7b94962a05e4d8f3a59faa1da6fd5523e7dec..3d7371b44a8e50706c3f921420445c859f8d586f 100755 GIT binary patch delta 46115 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 GYz6=?oBihi diff --git a/package.json b/package.json index 9db1b8b..9311d2c 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,10 @@ "dev": "velite && next dev --turbopack", "build": "velite && next build", "start": "velite && next start", - "lint": "next lint" + "lint": "next lint", + "format:check": "prettier --check \"**/*.{js,ts,tsx,md,mdx}\"", + "format:fix": "prettier --write \"**/*.{js,ts,tsx,md,mdx}\"", + "type-check": "tsc --noEmit" }, "dependencies": { "@hookform/resolvers": "^3.9.1", @@ -29,6 +32,7 @@ "motion": "^11.15.0", "next": "15.1.2", "next-themes": "^0.4.4", + "prettier": "^3.4.2", "react": "^19.0.0", "react-dom": "^19.0.0", "react-wrap-balancer": "^1.1.1", diff --git a/src/assets/plura-logo.png b/public/plura-logo.png similarity index 100% rename from src/assets/plura-logo.png rename to public/plura-logo.png diff --git a/src/app/(routes)/plura-ai/[[...slug]]/page.tsx b/src/app/(routes)/ai-sdk/[[...slug]]/page.tsx similarity index 100% rename from src/app/(routes)/plura-ai/[[...slug]]/page.tsx rename to src/app/(routes)/ai-sdk/[[...slug]]/page.tsx diff --git a/src/app/layout.tsx b/src/app/layout.tsx index ca1e146..2820e82 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -6,6 +6,7 @@ import "@/styles/code.css"; import { siteConfig } from "@/config/site.config"; import { cn } from "@/lib/utils"; import RootProviders from "@/components/providers"; +// import { SiteFooter } from "@/components/footer/footer"; export const metadata: Metadata = { metadataBase: new URL(siteConfig.origin), @@ -61,7 +62,10 @@ export default function RootLayout({ GeistMono.variable )} > - {children} + + {children} + + {/* */} ); diff --git a/src/components/footer/footer.tsx b/src/components/footer/footer.tsx new file mode 100644 index 0000000..a8ca9fa --- /dev/null +++ b/src/components/footer/footer.tsx @@ -0,0 +1,123 @@ +import { Badge } from "@/components/ui/badge"; +// import { siteConfig } from "@/config/site.config"; +import Image from "next/image"; +import Link from "next/link"; + +export function SiteFooter() { + return ( +
+
+
+ + logo +

Plura Ai

+ + Beta + + +

+ {/* {siteConfig.footer.desc} */} +

+ +
+

+ A product by + {/* + @SaidevDhal + */} +

+

+ Made possible with + + our crazy contributors + +

+
+ +
+
+
+ Product + + About + + + Features + + + Integrations + + + Pricing + + + Status + + + Contact + +
+ +
+ Connect + + X (Twitter) + + + Contact + +
+ +
+ Legal + + Privacy Policy + +
+
+
+
+
+ ); +} \ No newline at end of file diff --git a/src/components/mdx/toc.tsx b/src/components/mdx/toc.tsx index d8868fb..3b55921 100644 --- a/src/components/mdx/toc.tsx +++ b/src/components/mdx/toc.tsx @@ -32,15 +32,22 @@ export function DashboardTableOfContents({ toc }: TocProps) { const mounted = useMounted(); return mounted ? ( -
-
-

On this page

+
+ {/* Added a wrapper div with overflow styling */} +
+

On this page

+
+ +
+
+ {/* Newsletter component remains at bottom */} +
- +
) : null; } @@ -122,4 +129,4 @@ function Tree({ tree, level = 1, activeItem }: TreeProps) { })} ) : null; -} +} \ No newline at end of file diff --git a/src/components/sidebar/app-header.tsx b/src/components/sidebar/app-header.tsx index d968516..2eba470 100644 --- a/src/components/sidebar/app-header.tsx +++ b/src/components/sidebar/app-header.tsx @@ -1,7 +1,6 @@ "use client" import { Ellipsis } from "lucide-react" import Image from 'next/image'; -import logo from "../../assets/plura-logo.png"; import { useState } from "react"; import { EllipsisLinks } from "./ellipsis-links"; @@ -12,10 +11,10 @@ export function AppHeader() { return (
- plura-logo + plura-logo

PLURA

- +{/* flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground */}