-
- {
- if (
- event.key === 'Escape' &&
- !autocompleteState.isOpen &&
- autocompleteState.query === ''
- ) {
- // In Safari, closing the dialog with the escape key can sometimes cause the scroll position to jump to the
- // bottom of the page. This is a workaround for that until we can figure out a proper fix in Headless UI.
- document.activeElement?.blur()
-
- onClose()
- } else {
- inputProps.onKeyDown(event)
- }
- }}
- />
- {autocompleteState.status === 'stalled' && (
-
-
-
- What is Plane?
-
-
-Plane is an open-source project planning tool that is designed to help individuals and teams streamline their issues, sprints, and product roadmaps. It is easy to use and can be accessed by anyone, making it an ideal choice for a wide range of projects and organizations.
-
-
-
-## Contributing
-
-Each page footer contains an "Edit on GitHub" Link. Make a pull request, and we'll merge it!
diff --git a/apps/docs/src/pages/integrations.mdx b/apps/docs/src/pages/integrations.mdx
deleted file mode 100644
index 672bdcba0..000000000
--- a/apps/docs/src/pages/integrations.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { Note } from '@/components/mdx'
-
-export const description = 'Integrations'
-
-export const sections = [{ title: 'GitHub', id: 'github' }]
-
-# Integrations (Dev Release)
-
-Plane's integrations make it easy for users to connect their Workspace and
-projects to popular third-party tools. This enables seamless management of
-issues and notifications, all from within the Plane platform.
-
-Rather than
-having to switch back and forth between different tools and interfaces, users
-can access and manage their third-party tools directly from within the Plane
-platform. This streamlines workflows and improves efficiency by providing a
-centralized hub for all project-related activities.
-
-## GitHub Sync
-
-GitHub Sync allows users to connect any GitHub repository to a Plane project,
-enabling cross-synchronization of issues between Plane and GitHub in both
-directions.
-
-By connecting a GitHub repository to a Plane project, users can easily track
-issues and changes in both platforms. This allows for a more streamlined
-workflow, as users can manage their GitHub issues and pull requests from
-within the Plane platform.
-
-The bi-directional synchronization means that changes made in either platform
-will be reflected in the other. For example, if a user creates a new issue in
-Plane, it will automatically be synced with the corresponding repository in
-GitHub. Similarly, if a user closes an issue in GitHub, it will be reflected
-in Plane as well.
-
-
- Plane is still in development stage, in case if there are any hiccups in
- Integrations, do report us on our [Discord]() or [Github]().
-
-
-## Plane + GitHub Sync Attribute Overivew
-
-
-
-## Configuring GitHub Integration
-
-**Step One: Add GitHub Integration to your workspace**
-
-
-
-**Step Two: Connect GitHub repository with project**
-
-
-
-**Step Three: Create new or use existing issue on Plane**
-
-
-
-**Step Four: Add GitHub label to Plane issue (Plane to GitHub)**
-
-
-
-**Step Five: Add Plane label to GitHub issue (GitHub to Plane)**
-
-
diff --git a/apps/docs/src/pages/issues.mdx b/apps/docs/src/pages/issues.mdx
deleted file mode 100644
index 04ec0ea47..000000000
--- a/apps/docs/src/pages/issues.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-export const description = 'Issues'
-
-# Issues
-
-Coming very soon.
diff --git a/apps/docs/src/pages/modules.mdx b/apps/docs/src/pages/modules.mdx
deleted file mode 100644
index ff3cff6f2..000000000
--- a/apps/docs/src/pages/modules.mdx
+++ /dev/null
@@ -1,5 +0,0 @@
-export const description = 'Modules'
-
-# Modules
-
-Coming very soon.
diff --git a/apps/docs/src/pages/plane-basics.mdx b/apps/docs/src/pages/plane-basics.mdx
deleted file mode 100644
index 549206d59..000000000
--- a/apps/docs/src/pages/plane-basics.mdx
+++ /dev/null
@@ -1,3 +0,0 @@
-# Plane Basics
-
-Coming Soon.
diff --git a/apps/docs/src/pages/projects.mdx b/apps/docs/src/pages/projects.mdx
deleted file mode 100644
index 8e888bf9f..000000000
--- a/apps/docs/src/pages/projects.mdx
+++ /dev/null
@@ -1,132 +0,0 @@
-import { Heading } from '@/components/Heading'
-import { Note } from '@/components/mdx'
-
-# Project setup
-
-
- Projects let you manage teams and tasks within your Workspace. After creating
- your [Workspace](/workspace), you will need to create a new project.
-
-
-
- Before inviting a user to a project, you'll need to invite them to the
- workspace. Then, you can choose to add them to the project from the list of
- users on the workspace.
-
-
-
- Key project attributes
-
-
-Every project comes with two key attributes that make it easier to plan and set permissions for users on the workspace.
-
-1. **`Identifier`**: The project identifier is attached to every issue in the project to make it easier to track and differentiate each issue across projects and the workspace.
-
-
- You can always choose to update your identifier. This will only replace the ID
- string on the issue, but not the number next to it. Note that identifiers can
- only contain uppercase text and no special characters or numbers.
-
-
-These options can be found under the `General` tab inside `Project>Settings` ⬇️
-
-`/projects//settings`.
-
-2. **`Network`**: To restrict other users on the workspace, you can set the network of the project to either Private or Secret. When made public, all users on the workspace can choose to join the project. When set to secret, admins need to invite workspace members to join the project.
-
-
- Project controls
-
-
-When working on multiple projects, you can set project controls to make it
-easier. These controls include a project lead and default issue assignee.
-
-- **Project lead**: The project lead will help you identify and connect with the project leader to make it easier for you to assign tasks or communicate.
-
-- **Default issue assignee**: Everything inside a project is broken down into [issues](/issues). If you want every issue to be assigned, you can choose to set a default assignee for times when an issue is created without any assignees
-
-These options can be found under the `Control` tab inside `Project>Settings` ⬇️
-
-`/projects//settings/control`.
-
-
- Project members
-
-
-When the project is set to the `Public` network under project controls, it is open to all members on the workspace. When set to `Secret` network, workspace members must be invited to the project to gain access.
-
-For every member that is invited to the project, you can control their roles
-just [like on the workspace](workspace/#workspace-roles). All roles (Admin, Member, Guest, Viewer) are
-supported.
-
-These options can be found under the `Members` tab inside `Project>Settings` ⬇️
-
-`/projects//settings/members`.
-
-
- Project states
-
-
-To organize issues based on the principles of project management, we allow you
-to create custom states in the default grouped states. This will make it
-easier to use project views and filtering.
-
-Default states:
-
-- Backlog
-- Unstarted
-- Started
-- Completed
-- Cancelled
-
-Inside these default states, you can create as many states as you like based
-on the type of default state. In the future, we plan to allow users to create
-or customize the default state based on their requirements. Please [raise a
-feature request](https://github.com/makeplane/plane/issues) on our issues, if you would like to see this soon.
-
-These options can be found under the `States` tab inside `Project>Settings` ⬇️
-
-`/projects//settings/states`.
-
-
- Project labels
-
-
-Similar to states, labels on projects help you filter or differentiate issues
-within your project. You can create and control as many issue labels as
-needed.
-
-Labels can also be created from the issue detail page.
-
-These options can be found under the `Labels` tab inside `Project>Settings` ⬇️
-
-`/projects//settings/labels`.
-
-
- Delete a project
-
-
-We restrict the delete access to project admin, _we plan to extend this feature to workspace owners as well_.
-
-These options can be found under the `General` tab inside `Project>Settings` ⬇️
-
-`/projects//settings/general`.
-
-
- If a project is deleted, all of its content, issues, cycles, and modules will
- also be deleted. Currently, Plane does not offer a automatic backup service on
- cloud or self-hosted versions, but it is planned on our roadmap.
-
-
-
- Project shortcuts
-
-
-1. Create a new project: `CTRL/CMD + P`
-
-
- Project plans
-
-
-- **Cloud**: All-plans, no suggestion, no limits.
-- **Self-hosted**: No plans, no suggestion, no limits.
diff --git a/apps/docs/src/pages/quick-start.mdx b/apps/docs/src/pages/quick-start.mdx
deleted file mode 100644
index 766d3f9df..000000000
--- a/apps/docs/src/pages/quick-start.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
-import { Note } from '@/components/mdx'
-
-# Get Started
-
-This section of the Plane docs helps you get comfortable with the product and find your way around more effectively.
-
-
- If you are using the self-hosted version of Plane and want to install it on a
- local or cloud machine, follow the instructions [here](/self-hosting).
-
-
-## Onboarding and Invitation
-
-If you have signed up for the first time, the first step in Plane is to create a new workspace. If you are a freelancer or a solo-player, you can skip the invitation part and be directly redirected to the workspace to start working on your issues. If you are part of a team, you will need to invite your team members to the workspace before you can begin.
-
-
- During the onboarding process, the invited users will be assigned a **Viewer**
- role by default. You can adjust the permissions of invited users for your
- project in the workspace or project settings page based on your specific
- requirements.
-
-
-## The Dashboard (AKA, Home)
-
-After signing up or signing in to a workspace, you will be redirected to the active project home page. This is where you will see all of the issues that are assigned and pending for you.
-
-## Creating Workspaces
-
-Think of each workspace in Plane as a home for your content. Inside, workspace, you can creare projects as an individual, or invite collaborators to share a workspace as a team - it's up to you!
-
-> When you sign up for the first time, we'll prompt you to create a new workspace. If you're invited to join, you can directly join the workspace without creating a new one.
-
-## Creating Projects
-
-Projects let you manage teams and tasks within your Workspace. After creating your Workspace, you will need to create a new project.
-
-> You can share the workspace with other members by granting them full access to the whole workspace, or by granting them limited access to specific projects.
-
-
- You can manage members either by navigating to **Project > Member Settings**
- page or by **Workspace > Member Settings** page.
-
-
-## Creating Issues
-
-In Plane, an issue is a task or piece of work. It could be small, like _Update the primary color to blue_, or large, like _Building GitHub integration on plane_. It all depends on how you and your team decide to break down your work into issues.
-
-Issues are identified by a project-specific and unique number (Example, `VIH-19`), and they must be provided with a title and a state. All the other properties and relations are optional, know more about there [here]().
-
-
- You can create issues by clicking on the `New Issue` button in the right-hand
- corner of your project, or by using `CTRL/CMD + I` shortcut.
-
-
-## Issue Details
-
-Inside an issue, you can add as many details as you like to get your work done. Here are five critical things to kick-start:
-
-1. **Issue description**: An enhanced mardown editor inside issues to write as much detail you want. Attachments can be added and dragged around with a simple click, no need to save anything. Everything is auto-saved for you.
-
-2. **Issue sub-properties**: We support basic issue properties such as `priority`, `label`, `due date`, and `assignee`. You can create relations between issues: mark them as `blocked` or `blocking`.
-
-3. **Sub-issues**: You can create a `sub-issue` for an issue to either split the issue into smaller chunks, or assign parts of the issue to different people. If you find that a `sub-issue` is holding up the resolution of an issue, you can convert it to an issue so that it can be worked on separately.
-
-4. **Issue comments**: Think, comment or join the conversation by sharing your thoughts under Issue comments.
-
-5. **Issue activity**: Track what's happening to your issue with activities. Everything is saved, so you can look back and see what happened. Real-time coming soon!
-
-## Issue views
-
-You can organize project issues into views, which let you see your work through different filters or parameters. You can choose from default views that come with your project and workspace or create your own.
-
-- Every project has two primary views for issues - Board and List View.
-- You can quickly and easily organize the issues on your board by grouping them or ordering them within views.
-- You can toggle the visibility of issue sub-properties within views, at any time, based on your preferences.
-
-## Creating Cycles
-
-Cycles, (AKA Sprints) is a custom time period in which a team works to complete items on their backlog. At the end of the sprint, the team will usually have finished building and implementing a new version of their product.
-
-- You can move existing issues to a new or existing cycle, or create a new issue directly.
-- Bulk operations are supported--you can add or update multiple issues to cycles at once.
-
-## Creating Modules (Early Preview)
-
-Modules are smaller, focused projects that help you group and organize issues within a specific time frame. They allow you to break down your work into manageable chunks and track progress towards specific goals or objectives. You can create as many modules as you need within your workspace, and customize each one with its own set of issues, milestones, and team members.
-
-[Coming soon]
-
-- A Gantt chart is offered to help you stay on top of timelines and deliver modules more efficiently.
-- Modules allow you to add documents and links within them, providing a convenient way to share resources with others within the module.
-
-Have questions? Ask the [Plane](https://discord.com/invite/29tPNhaV) Community.
diff --git a/apps/docs/src/pages/self-hosting.mdx b/apps/docs/src/pages/self-hosting.mdx
deleted file mode 100644
index 5cbb45890..000000000
--- a/apps/docs/src/pages/self-hosting.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
-# Self Hosting Plane
-
-import { Heading } from '@/components/Heading'
-import { Note } from '@/components/mdx'
-
-
- Plane is still in its early days, not everything will be perfect yet, and
- hiccups may happen. Please let us know of any suggestions, ideas, or bugs that
- you encounter on our [Discord](https://discord.com/invite/A92xrEGCge).
-
-
-
- Requirements
-
-
-1. Git
-2. Docker
-3. Docker-compose
-
-
- Project set-up
-
-1. Clone the code
-
- ```bash
- git clone --depth 1 https://github.com/makeplane/plane
- ```
-
-2. Change Directory
-
- ```bash
- cd plane
- ```
-
-3. Move `env.example` to `.env` in the `apiserver` directory and `apps/app`
-
- ```bash
- mv.env.example.env
- ```
-
-4. Add all the variables - (the below are the compulsory variables)
-
- Frontend - `apps/app/.env`
-
- ```bash
- NEXT_PUBLIC_API_BASE_URL = '<-- endpoint goes here -->'
- NEXT_PUBLIC_GOOGLE_CLIENTID = '<-- google client id goes here -->'
- NEXT_PUBLIC_GITHUB_ID = '<-- github id goes here -->'
- NEXT_PUBLIC_APP_ENVIRONMENT = '<-- production | development -->'
- ```
-
- Backend - `apiserver/.env`
-
- ```bash
- # Backend
- SECRET_KEY="<-- django secret -->"
- EMAIL_HOST="<-- email smtp -->"
- EMAIL_HOST_USER="<-- email host user -->"
- EMAIL_HOST_PASSWORD="<-- email host password -->"
-
- AWS_REGION="<-- aws region -->"
- AWS_ACCESS_KEY_ID="<-- aws access key -->"
- AWS_SECRET_ACCESS_KEY="<-- aws secret acess key -->"
- AWS_S3_BUCKET_NAME="<-- aws s3 bucket name -->"
-
- SENTRY_DSN="<-- sentry dsn -->"
- WEB_URL="<-- frontend web url -->"
-
- GITHUB_CLIENT_SECRET="<-- github secret -->"
-
- DISABLE_COLLECTSTATIC=1
- DOCKERIZED=1
- ```
-
-5. Run
-
- ```bash
- docker-compose up --build
- ```
-
-6. Visit
- 1. [http://localhost:3000](http://localhost:3000) - (Frontend)
- 2. [http://localhost:8000](http://localhost:8000) - (Backend)
diff --git a/apps/docs/src/pages/workspace.mdx b/apps/docs/src/pages/workspace.mdx
deleted file mode 100644
index 62148ab61..000000000
--- a/apps/docs/src/pages/workspace.mdx
+++ /dev/null
@@ -1,96 +0,0 @@
-import { Heading } from '@/components/Heading'
-import { Note } from '@/components/mdx'
-
-# Workspace setup
-
-Workspaces in Plane are where you can access all of your content, including issues, cycles, and modules. Everything is organized within a workspace. To help you understand, you can think of a workspace as similar to a server on Discord or an organization on Slack, where you can bring your entire team together to work.
-
-
- Creating workspace
-
-
-If you are a first-time user who has signed up for Plane, you will create a new workspace for your team during the onboarding process.
-
-
- On Plane cloud and self-hosted versions, the workspace URLs (also known as
- slugs) must be unique. We allow users to have the same organization names, but
- the URLs must still be unique to ensure a better experience.
-
-
-If you are a team member or contributor and are invited to a workspace, you do
-not need to have your own workspace. Instead, after accepting the invitation,
-you will be redirected directly to the workspace you were invited to.
-
-
- Workspace roles
-
-
-Every user on a workspace has a specific role associated with them, which
-determines their permissions and what actions they are allowed to take within
-the workspace. This helps to ensure that users only have access to the
-resources and functions that they need in order to complete their work.
-
-These roles can be configured when inviting a user to a workspace from the
-workspace invite page, or later from the workspace settings page. _Note that
-when you invite a user during the onboarding process, they will be assigned
-the default role of 'Viewer'_.
-
-**Available roles**
-
-- **Owner** - The owner of the workspace is the supreme administrator and has all permissions set to `true` within the workspace.
-- **Administrator** - Workspace administrators have similar privileges to the owner, but they are not able to delete the workspace.
-- **Member** - Workspace members are essentially team members within the organization, and they have the ability to read, write, edit, and delete entities inside projects, cycles, and modules within the workspace. It is important to note that workspace members are not able to create new projects, cycles, or modules
-- **Guest** - External members of organizations can be invited as guests, which grants them the ability to view all content to which they have been invited. However, they do not have permissions to write, update, or delete entities inside workspace.
-
-
- Users should first join the workspace, in ordered to be invited to public and
- secret projects. View [projects](/projects) docs for more.
-
-
-
- Inviting user to a workspace
-
-
-You can easily invite members of your organization with differnt roles onto a workspace.
-
-On cloud, here's how you can invite a user to your workspace,
-
-1. When you are onboarded, you will see a screen that allows you to invite your team members to the workspace. By default, we set the role to `View` only. This is because we perform a bulk operation to get your team up and running.
-2. If you've missed step one, you can manage all your members under `//settings/members` page.
-3. To invite team members, use the Add Member option. When an invitation is sent, the invitee will receive an email to accept the invitation.
-4. To update workspace member permissions, use the collapsable menu, next to the member.
-
-
- Self-hosted users should configure an email service in order to send
- invitations. Follow [this](/self-hosting) document to learn how to set up
- self-hosted instances.
-
-
-
- Switching between workspaces
-
-
-When working with multiple organizations or teams, you can switch between them
-using the workspace menu on the left sidebar. Here, you can find all the
-workspaces you've created or joined and switch between them anytime, as long
-as they are linked to your email. In the future, we plan to allow logging into
-multiple workspaces with different emails and improve the overall experience.
-
-
- Delete a workspace
-
-
-Only workspace owners have the ability to delete a workspace, these options can be found under the workspace settings.
-
-
- If a workspace is deleted, all of its content, issues, cycles, and modules
- will also be deleted. Currently, Plane does not offer a automatic backup
- service on cloud or self-hosted versions, but it is planned on our roadmap.
-
-
-
- Workspace plan
-
-
-- **Cloud**: All-plans, no suggestion, no limits.
-- **Self-hosted**: No plans, no suggestion, no limits.
diff --git a/apps/docs/src/styles/tailwind.css b/apps/docs/src/styles/tailwind.css
deleted file mode 100644
index 009e25daf..000000000
--- a/apps/docs/src/styles/tailwind.css
+++ /dev/null
@@ -1,15 +0,0 @@
-:root {
- --shiki-color-text: theme('colors.white');
- --shiki-token-constant: theme('colors.blue.300');
- --shiki-token-string: theme('colors.blue.300');
- --shiki-token-comment: theme('colors.zinc.500');
- --shiki-token-keyword: theme('colors.sky.300');
- --shiki-token-parameter: theme('colors.pink.300');
- --shiki-token-function: theme('colors.violet.300');
- --shiki-token-string-expression: theme('colors.blue.300');
- --shiki-token-punctuation: theme('colors.zinc.200');
-}
-
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js
deleted file mode 100644
index 9681c2c30..000000000
--- a/apps/docs/tailwind.config.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- content: ['./{src,mdx}/**/*.{js,mjs,jsx,mdx}'],
- darkMode: 'class',
- theme: {
- fontSize: {
- '2xs': ['0.75rem', { lineHeight: '1.25rem' }],
- xs: ['0.8125rem', { lineHeight: '1.5rem' }],
- sm: ['0.875rem', { lineHeight: '1.5rem' }],
- base: ['1rem', { lineHeight: '1.75rem' }],
- lg: ['1.125rem', { lineHeight: '1.75rem' }],
- xl: ['1.25rem', { lineHeight: '1.75rem' }],
- '2xl': ['1.5rem', { lineHeight: '2rem' }],
- '3xl': ['1.875rem', { lineHeight: '2.25rem' }],
- '4xl': ['2.25rem', { lineHeight: '2.5rem' }],
- '5xl': ['3rem', { lineHeight: '1' }],
- '6xl': ['3.75rem', { lineHeight: '1' }],
- '7xl': ['4.5rem', { lineHeight: '1' }],
- '8xl': ['6rem', { lineHeight: '1' }],
- '9xl': ['8rem', { lineHeight: '1' }],
- },
- typography: require('./typography'),
- extend: {
- boxShadow: {
- glow: '0 0 4px rgb(0 0 0 / 0.1)',
- },
- maxWidth: {
- lg: '33rem',
- '2xl': '40rem',
- '3xl': '50rem',
- '5xl': '66rem',
- },
- opacity: {
- 1: '0.01',
- 2.5: '0.025',
- 7.5: '0.075',
- 15: '0.15',
- },
- },
- },
- plugins: [require('@tailwindcss/typography')],
-}
diff --git a/apps/docs/typography.js b/apps/docs/typography.js
deleted file mode 100644
index 28604d0af..000000000
--- a/apps/docs/typography.js
+++ /dev/null
@@ -1,357 +0,0 @@
-module.exports = ({ theme }) => ({
- DEFAULT: {
- css: {
- '--tw-prose-body': theme('colors.zinc.700'),
- '--tw-prose-headings': theme('colors.zinc.900'),
- '--tw-prose-links': theme('colors.blue.500'),
- '--tw-prose-links-hover': theme('colors.blue.600'),
- '--tw-prose-links-underline': theme('colors.blue.500 / 0.3'),
- '--tw-prose-bold': theme('colors.zinc.900'),
- '--tw-prose-counters': theme('colors.zinc.500'),
- '--tw-prose-bullets': theme('colors.zinc.300'),
- '--tw-prose-hr': theme('colors.zinc.900 / 0.05'),
- '--tw-prose-quotes': theme('colors.zinc.900'),
- '--tw-prose-quote-borders': theme('colors.zinc.200'),
- '--tw-prose-captions': theme('colors.zinc.500'),
- '--tw-prose-code': theme('colors.zinc.900'),
- '--tw-prose-code-bg': theme('colors.zinc.100'),
- '--tw-prose-code-ring': theme('colors.zinc.300'),
- '--tw-prose-th-borders': theme('colors.zinc.300'),
- '--tw-prose-td-borders': theme('colors.zinc.200'),
-
- '--tw-prose-invert-body': theme('colors.zinc.400'),
- '--tw-prose-invert-headings': theme('colors.white'),
- '--tw-prose-invert-links': theme('colors.blue.400'),
- '--tw-prose-invert-links-hover': theme('colors.blue.500'),
- '--tw-prose-invert-links-underline': theme('colors.blue.500 / 0.3'),
- '--tw-prose-invert-bold': theme('colors.white'),
- '--tw-prose-invert-counters': theme('colors.zinc.400'),
- '--tw-prose-invert-bullets': theme('colors.zinc.600'),
- '--tw-prose-invert-hr': theme('colors.white / 0.05'),
- '--tw-prose-invert-quotes': theme('colors.zinc.100'),
- '--tw-prose-invert-quote-borders': theme('colors.zinc.700'),
- '--tw-prose-invert-captions': theme('colors.zinc.400'),
- '--tw-prose-invert-code': theme('colors.white'),
- '--tw-prose-invert-code-bg': theme('colors.zinc.700 / 0.15'),
- '--tw-prose-invert-code-ring': theme('colors.white / 0.1'),
- '--tw-prose-invert-th-borders': theme('colors.zinc.600'),
- '--tw-prose-invert-td-borders': theme('colors.zinc.700'),
-
- // Base
- color: 'var(--tw-prose-body)',
- fontSize: theme('fontSize.sm')[0],
- lineHeight: theme('lineHeight.7'),
-
- // Layout
- '> *': {
- maxWidth: theme('maxWidth.2xl'),
- marginLeft: 'auto',
- marginRight: 'auto',
- '@screen lg': {
- maxWidth: theme('maxWidth.3xl'),
- marginLeft: `calc(50% - min(50%, ${theme('maxWidth.lg')}))`,
- marginRight: `calc(50% - min(50%, ${theme('maxWidth.lg')}))`,
- },
- },
-
- // Text
- p: {
- marginTop: theme('spacing.6'),
- marginBottom: theme('spacing.6'),
- },
- '[class~="lead"]': {
- fontSize: theme('fontSize.base')[0],
- ...theme('fontSize.base')[1],
- },
-
- // Lists
- ol: {
- listStyleType: 'decimal',
- marginTop: theme('spacing.5'),
- marginBottom: theme('spacing.5'),
- paddingLeft: '1.625rem',
- },
- 'ol[type="A"]': {
- listStyleType: 'upper-alpha',
- },
- 'ol[type="a"]': {
- listStyleType: 'lower-alpha',
- },
- 'ol[type="A" s]': {
- listStyleType: 'upper-alpha',
- },
- 'ol[type="a" s]': {
- listStyleType: 'lower-alpha',
- },
- 'ol[type="I"]': {
- listStyleType: 'upper-roman',
- },
- 'ol[type="i"]': {
- listStyleType: 'lower-roman',
- },
- 'ol[type="I" s]': {
- listStyleType: 'upper-roman',
- },
- 'ol[type="i" s]': {
- listStyleType: 'lower-roman',
- },
- 'ol[type="1"]': {
- listStyleType: 'decimal',
- },
- ul: {
- listStyleType: 'disc',
- marginTop: theme('spacing.5'),
- marginBottom: theme('spacing.5'),
- paddingLeft: '1.625rem',
- },
- li: {
- marginTop: theme('spacing.2'),
- marginBottom: theme('spacing.2'),
- },
- ':is(ol, ul) > li': {
- paddingLeft: theme('spacing[1.5]'),
- },
- 'ol > li::marker': {
- fontWeight: '400',
- color: 'var(--tw-prose-counters)',
- },
- 'ul > li::marker': {
- color: 'var(--tw-prose-bullets)',
- },
- '> ul > li p': {
- marginTop: theme('spacing.3'),
- marginBottom: theme('spacing.3'),
- },
- '> ul > li > *:first-child': {
- marginTop: theme('spacing.5'),
- },
- '> ul > li > *:last-child': {
- marginBottom: theme('spacing.5'),
- },
- '> ol > li > *:first-child': {
- marginTop: theme('spacing.5'),
- },
- '> ol > li > *:last-child': {
- marginBottom: theme('spacing.5'),
- },
- 'ul ul, ul ol, ol ul, ol ol': {
- marginTop: theme('spacing.3'),
- marginBottom: theme('spacing.3'),
- },
-
- // Horizontal rules
- hr: {
- borderColor: 'var(--tw-prose-hr)',
- borderTopWidth: 1,
- marginTop: theme('spacing.16'),
- marginBottom: theme('spacing.16'),
- maxWidth: 'none',
- marginLeft: `calc(-1 * ${theme('spacing.4')})`,
- marginRight: `calc(-1 * ${theme('spacing.4')})`,
- '@screen sm': {
- marginLeft: `calc(-1 * ${theme('spacing.6')})`,
- marginRight: `calc(-1 * ${theme('spacing.6')})`,
- },
- '@screen lg': {
- marginLeft: `calc(-1 * ${theme('spacing.8')})`,
- marginRight: `calc(-1 * ${theme('spacing.8')})`,
- },
- },
-
- // Quotes
- blockquote: {
- fontWeight: '500',
- fontStyle: 'italic',
- color: 'var(--tw-prose-quotes)',
- borderLeftWidth: '0.25rem',
- borderLeftColor: 'var(--tw-prose-quote-borders)',
- quotes: '"\\201C""\\201D""\\2018""\\2019"',
- marginTop: theme('spacing.8'),
- marginBottom: theme('spacing.8'),
- paddingLeft: theme('spacing.5'),
- },
- 'blockquote p:first-of-type::before': {
- content: 'open-quote',
- },
- 'blockquote p:last-of-type::after': {
- content: 'close-quote',
- },
-
- // Headings
- h1: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '700',
- fontSize: theme('fontSize.2xl')[0],
- ...theme('fontSize.2xl')[1],
- marginBottom: theme('spacing.2'),
- },
- h2: {
- color: 'var(--tw-prose-headings)',
- fontWeight: '600',
- fontSize: theme('fontSize.lg')[0],
- ...theme('fontSize.lg')[1],
- marginTop: theme('spacing.16'),
- marginBottom: theme('spacing.2'),
- },
- h3: {
- color: 'var(--tw-prose-headings)',
- fontSize: theme('fontSize.base')[0],
- ...theme('fontSize.base')[1],
- fontWeight: '600',
- marginTop: theme('spacing.10'),
- marginBottom: theme('spacing.2'),
- },
-
- // Media
- 'img, video, figure': {
- marginTop: theme('spacing.8'),
- marginBottom: theme('spacing.8'),
- },
- 'figure > *': {
- marginTop: '0',
- marginBottom: '0',
- },
- figcaption: {
- color: 'var(--tw-prose-captions)',
- fontSize: theme('fontSize.xs')[0],
- ...theme('fontSize.xs')[1],
- marginTop: theme('spacing.2'),
- },
-
- // Tables
- table: {
- width: '100%',
- tableLayout: 'auto',
- textAlign: 'left',
- marginTop: theme('spacing.8'),
- marginBottom: theme('spacing.8'),
- lineHeight: theme('lineHeight.6'),
- },
- thead: {
- borderBottomWidth: '1px',
- borderBottomColor: 'var(--tw-prose-th-borders)',
- },
- 'thead th': {
- color: 'var(--tw-prose-headings)',
- fontWeight: '600',
- verticalAlign: 'bottom',
- paddingRight: theme('spacing.2'),
- paddingBottom: theme('spacing.2'),
- paddingLeft: theme('spacing.2'),
- },
- 'thead th:first-child': {
- paddingLeft: '0',
- },
- 'thead th:last-child': {
- paddingRight: '0',
- },
- 'tbody tr': {
- borderBottomWidth: '1px',
- borderBottomColor: 'var(--tw-prose-td-borders)',
- },
- 'tbody tr:last-child': {
- borderBottomWidth: '0',
- },
- 'tbody td': {
- verticalAlign: 'baseline',
- },
- tfoot: {
- borderTopWidth: '1px',
- borderTopColor: 'var(--tw-prose-th-borders)',
- },
- 'tfoot td': {
- verticalAlign: 'top',
- },
- ':is(tbody, tfoot) td': {
- paddingTop: theme('spacing.2'),
- paddingRight: theme('spacing.2'),
- paddingBottom: theme('spacing.2'),
- paddingLeft: theme('spacing.2'),
- },
- ':is(tbody, tfoot) td:first-child': {
- paddingLeft: '0',
- },
- ':is(tbody, tfoot) td:last-child': {
- paddingRight: '0',
- },
-
- // Inline elements
- a: {
- color: 'var(--tw-prose-links)',
- textDecoration: 'underline transparent',
- fontWeight: '500',
- transitionProperty: 'color, text-decoration-color',
- transitionDuration: theme('transitionDuration.DEFAULT'),
- transitionTimingFunction: theme('transitionTimingFunction.DEFAULT'),
- '&:hover': {
- color: 'var(--tw-prose-links-hover)',
- textDecorationColor: 'var(--tw-prose-links-underline)',
- },
- },
- ':is(h1, h2, h3) a': {
- fontWeight: 'inherit',
- },
- strong: {
- color: 'var(--tw-prose-bold)',
- fontWeight: '600',
- },
- ':is(a, blockquote, thead th) strong': {
- color: 'inherit',
- },
- code: {
- color: 'var(--tw-prose-code)',
- borderRadius: theme('borderRadius.lg'),
- paddingTop: theme('padding.1'),
- paddingRight: theme('padding[1.5]'),
- paddingBottom: theme('padding.1'),
- paddingLeft: theme('padding[1.5]'),
- boxShadow: 'inset 0 0 0 1px var(--tw-prose-code-ring)',
- backgroundColor: 'var(--tw-prose-code-bg)',
- fontSize: theme('fontSize.2xs'),
- },
- ':is(a, h1, h2, h3, blockquote, thead th) code': {
- color: 'inherit',
- },
- 'h2 code': {
- fontSize: theme('fontSize.base')[0],
- fontWeight: 'inherit',
- },
- 'h3 code': {
- fontSize: theme('fontSize.sm')[0],
- fontWeight: 'inherit',
- },
-
- // Overrides
- ':is(h1, h2, h3) + *': {
- marginTop: '0',
- },
- '> :first-child': {
- marginTop: '0 !important',
- },
- '> :last-child': {
- marginBottom: '0 !important',
- },
- },
- },
- invert: {
- css: {
- '--tw-prose-body': 'var(--tw-prose-invert-body)',
- '--tw-prose-headings': 'var(--tw-prose-invert-headings)',
- '--tw-prose-links': 'var(--tw-prose-invert-links)',
- '--tw-prose-links-hover': 'var(--tw-prose-invert-links-hover)',
- '--tw-prose-links-underline': 'var(--tw-prose-invert-links-underline)',
- '--tw-prose-bold': 'var(--tw-prose-invert-bold)',
- '--tw-prose-counters': 'var(--tw-prose-invert-counters)',
- '--tw-prose-bullets': 'var(--tw-prose-invert-bullets)',
- '--tw-prose-hr': 'var(--tw-prose-invert-hr)',
- '--tw-prose-quotes': 'var(--tw-prose-invert-quotes)',
- '--tw-prose-quote-borders': 'var(--tw-prose-invert-quote-borders)',
- '--tw-prose-captions': 'var(--tw-prose-invert-captions)',
- '--tw-prose-code': 'var(--tw-prose-invert-code)',
- '--tw-prose-code-bg': 'var(--tw-prose-invert-code-bg)',
- '--tw-prose-code-ring': 'var(--tw-prose-invert-code-ring)',
- '--tw-prose-th-borders': 'var(--tw-prose-invert-th-borders)',
- '--tw-prose-td-borders': 'var(--tw-prose-invert-td-borders)',
- },
- },
-})
diff --git a/turbo.json b/turbo.json
index 7077fbe1e..dddfbf967 100644
--- a/turbo.json
+++ b/turbo.json
@@ -4,9 +4,6 @@
"NEXT_PUBLIC_GITHUB_ID",
"NEXT_PUBLIC_GOOGLE_CLIENTID",
"NEXT_PUBLIC_API_BASE_URL",
- "NEXT_PUBLIC_DOCSEARCH_API_KEY",
- "NEXT_PUBLIC_DOCSEARCH_APP_ID",
- "NEXT_PUBLIC_DOCSEARCH_INDEX_NAME",
"NEXT_PUBLIC_SENTRY_DSN",
"SENTRY_AUTH_TOKEN",
"NEXT_PUBLIC_SENTRY_ENVIRONMENT",