diff --git a/docs/docs/contributor/_category_.json b/docs/docs/contributor/_category_.json index 98b3340ca..c4117720d 100644 --- a/docs/docs/contributor/_category_.json +++ b/docs/docs/contributor/_category_.json @@ -1,4 +1,4 @@ { "label": "Contributor guide", - "position": 3 + "position": 2 } diff --git a/docs/docs/contributor/frontend/advanced/_category_.json b/docs/docs/contributor/frontend/advanced/_category_.json index 29fddaafe..dd1c52f2e 100644 --- a/docs/docs/contributor/frontend/advanced/_category_.json +++ b/docs/docs/contributor/frontend/advanced/_category_.json @@ -1,7 +1,4 @@ { "label": "Advanced", - "position": 3, - "customProps": { - "icon": "TbTerminal2" - } + "position": 3 } diff --git a/docs/docs/contributor/frontend/basics/_category_.json b/docs/docs/contributor/frontend/basics/_category_.json index e99e1a8aa..daec3e16a 100644 --- a/docs/docs/contributor/frontend/basics/_category_.json +++ b/docs/docs/contributor/frontend/basics/_category_.json @@ -1,7 +1,4 @@ { "label": "Basics", - "position": 1, - "customProps": { - "icon": "TbTerminal2" - } + "position": 1 } diff --git a/docs/docs/contributor/frontend/basics/basics.mdx b/docs/docs/contributor/frontend/basics/basics.mdx index 32d1047fa..e1ae97d12 100644 --- a/docs/docs/contributor/frontend/basics/basics.mdx +++ b/docs/docs/contributor/frontend/basics/basics.mdx @@ -1,8 +1,6 @@ --- title: Basics sidebar_position: 0 -sidebar_custom_props: - icon: TbEyeglass --- import DocCardList from '@theme/DocCardList'; diff --git a/docs/docs/contributor/frontend/basics/contributing.mdx b/docs/docs/contributor/frontend/basics/contributing.mdx index 0c421c46a..885a8a2d0 100644 --- a/docs/docs/contributor/frontend/basics/contributing.mdx +++ b/docs/docs/contributor/frontend/basics/contributing.mdx @@ -15,7 +15,7 @@ Make sure that your [IDE is correctly setup](/contributor/local-setup/ide-setup) Make sure your database is running on the URL provided in your `server/.env` file. -``` +```bash cd front yarn @@ -24,19 +24,19 @@ yarn start ## Regenerate graphql schema based on API graphql schema -``` +```bash yarn graphql:generate ``` ## Lint -``` +```bash yarn lint ``` ## Test -``` +```bash yarn test # run jest tests yarn storybook:dev # run storybook yarn storybook:test # run tests (needs yarn storybook:dev to be running) diff --git a/docs/docs/contributor/frontend/basics/folder-architecture.mdx b/docs/docs/contributor/frontend/basics/folder-architecture.mdx index eed751c29..3382a2e37 100644 --- a/docs/docs/contributor/frontend/basics/folder-architecture.mdx +++ b/docs/docs/contributor/frontend/basics/folder-architecture.mdx @@ -48,7 +48,6 @@ module1 └───hooks │ └───internal └───states - │ └───recoil-scope-contexts │ └───selectors └───types └───utils @@ -90,8 +89,6 @@ Contains the state management logic. We use [RecoilJS](https://recoiljs.org) for - Selectors: See [RecoilJS Selectors](https://recoiljs.org/docs/basic-tutorial/selectors) for more details. -- Recoil Scope Contexts: More details will be added soon. - We still use React's built-in state management for state that is only used within a component. ### Utils diff --git a/docs/docs/contributor/frontend/ui-components/_category_.json b/docs/docs/contributor/frontend/ui-components/_category_.json index 15e39f154..89ff27960 100644 --- a/docs/docs/contributor/frontend/ui-components/_category_.json +++ b/docs/docs/contributor/frontend/ui-components/_category_.json @@ -1,7 +1,4 @@ { "label": "UI Components", - "position": 1, - "customProps": { - "icon": "TbTerminal2" - } + "position": 1 } diff --git a/docs/docs/contributor/frontend/ui-components/ui-components.mdx b/docs/docs/contributor/frontend/ui-components/ui-components.mdx index 772d1d5a5..d1c137ca6 100644 --- a/docs/docs/contributor/frontend/ui-components/ui-components.mdx +++ b/docs/docs/contributor/frontend/ui-components/ui-components.mdx @@ -1,8 +1,6 @@ --- title: Overview sidebar_position: 0 -sidebar_custom_props: - icon: TbBrandFigma --- import DocCardList from '@theme/DocCardList'; diff --git a/docs/docs/contributor/server/basics/_category_.json b/docs/docs/contributor/server/basics/_category_.json index e99e1a8aa..daec3e16a 100644 --- a/docs/docs/contributor/server/basics/_category_.json +++ b/docs/docs/contributor/server/basics/_category_.json @@ -1,7 +1,4 @@ { "label": "Basics", - "position": 1, - "customProps": { - "icon": "TbTerminal2" - } + "position": 1 } diff --git a/docs/docs/contributor/server/basics/custom-objects.mdx b/docs/docs/contributor/server/basics/custom-objects.mdx new file mode 100644 index 000000000..dc11f4b0b --- /dev/null +++ b/docs/docs/contributor/server/basics/custom-objects.mdx @@ -0,0 +1,17 @@ +--- +title: Custom Objects +sidebar_position: 4 +sidebar_custom_props: + icon: TbAugmentedReality +--- + +To elevate our platform experience and adhere to our dedication towards versatility, we've successfully integrated custom objects (objects available only in a specific workspace). +Users across different workspaces can now seamlessly access custom objects using a dynamic GraphQL schema. + +## How it works + +Custom objects trace their roots back to metadata tables that dictate the shape, name, and type of the objects. All this information is housed in the metadata schema database, consisting of tables: + +- **DataSource**: Details where data is stored. +- **Object**: Describes the object and is linked to a DataSource. +- **Field**: Outlines an Object's fields and connects to the Object. \ No newline at end of file diff --git a/docs/docs/contributor/server/basics/zapier.mdx b/docs/docs/contributor/server/basics/zapier.mdx deleted file mode 100644 index 19aee2530..000000000 --- a/docs/docs/contributor/server/basics/zapier.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Zapier App -sidebar_position: 3 -sidebar_custom_props: - icon: TbBrandZapier ---- - -## Setup -- Create a [Zapier account](https://zapier.com/) -- Install [Zapier CLI](https://platform.zapier.com/quickstart/cli-tutorial) globally: `npm install -g zapier-platform-cli` -- Login with CLI with your Zapier account credentials: `zapier login` -- Install Zapier packages: -``` -cd packages/twenty-zapier -yarn -``` -- set environment variables: - - In **packages/twenty-zapier** launch `cp .env.example .env` - - launch local application, go to `http://localhost:3000/settings/apis` and generate an apiKey - - copy and paste the api key to replace the .env **YOUR_API_KEY** value -- `cd .. && cd twenty-zapier` to set environment variables (needs autoenv) - -## Development -- Test: `yarn test` -- Lint: `yarn format` -- Watch and compile as you edit code: `yarn watch` -- Validate your Zapier app: `yarn validate` -- Deploy your Zapier app: `yarn deploy` -- List all Zapier CLI commands: `zapier`. ⚠️ make sure to run `yarn build` before any `zapier` command diff --git a/docs/docs/contributor/server/others/_category_.json b/docs/docs/contributor/server/others/_category_.json new file mode 100644 index 000000000..da4788889 --- /dev/null +++ b/docs/docs/contributor/server/others/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Others", + "position": 2 +} diff --git a/docs/docs/contributor/server/others/zapier.mdx b/docs/docs/contributor/server/others/zapier.mdx new file mode 100644 index 000000000..7d5dbf5e6 --- /dev/null +++ b/docs/docs/contributor/server/others/zapier.mdx @@ -0,0 +1,75 @@ +--- +title: Zapier App +sidebar_position: 1 +sidebar_custom_props: + icon: TbBrandZapier +--- + +Effortlessly sync Twenty with 3000+ apps using [Zapier](https://zapier.com/). Automate tasks, boost productivity, and supercharge your customer relationships! + +## What is Zapier? + +Zapier is a tool that allows you automate workflows by connecting the apps that your team uses everyday. The fundamental concept of Zapier is automation workflows, which are known as Zaps, and include triggers and actions. + +You can learn more about how Zapier works [here](https://zapier.com/how-it-works). + +## Setup + +### Step 1: Install Zapier packages + +```bash +cd packages/twenty-zapier +yarn +``` + +### Step 2: Login with the CLI + +Use your Zapier credentials to log in using the CLI: + +```bash +zapier login +``` + +### Step 3: Set environment variables + +From the `packages/twenty-zapier` folder, run: + +```bash +cp .env.example .env +``` +Run the application locally, go to [http://localhost:3000/settings/apis](http://localhost:3000/settings/apis), and generate an API key. + +Replace the **YOUR_API_KEY** value in the `.env` file with the API key you just generated. + +## Development + +:::caution Note + +Make sure to run `yarn build` before any `zapier` command. + +::: + +### Test +```bash +yarn test +``` +### Lint +```bash +yarn format +``` +### Watch and compile as you edit code +```bash +yarn watch +``` +### Validate your Zapier app +```bash +yarn validate +``` +### Deploy your Zapier app +```bash +yarn deploy +``` +### List all Zapier CLI commands +```bash +zapier +``` diff --git a/docs/docs/contributor/server/server.mdx b/docs/docs/contributor/server/server.mdx index cf9b28efd..5bd75a3b4 100644 --- a/docs/docs/contributor/server/server.mdx +++ b/docs/docs/contributor/server/server.mdx @@ -3,7 +3,7 @@ title: Backend Development displayed_sidebar: backendSidebar sidebar_position: 0 sidebar_custom_props: - icon: TbTerminal2 + icon: TbTerminal isSidebarRoot: true --- diff --git a/docs/docs/developer/_category_.json b/docs/docs/developer/_category_.json index 459b7f563..8736dcf62 100644 --- a/docs/docs/developer/_category_.json +++ b/docs/docs/developer/_category_.json @@ -1,4 +1,4 @@ { "label": "Developer guide", - "position": 4 + "position": 3 } diff --git a/docs/docs/hosting/_category_.json b/docs/docs/hosting/_category_.json deleted file mode 100644 index 4d559f849..000000000 --- a/docs/docs/hosting/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Self-Hosting", - "position": 2 -} diff --git a/docs/docs/others/CLI.mdx b/docs/docs/others/CLI.mdx deleted file mode 100644 index c95cb5b8f..000000000 --- a/docs/docs/others/CLI.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: CLI -sidebar_position: 1 -sidebar_class_name: coming-soon -sidebar_custom_props: - icon: TbTerminal2 ---- - - -Available soon! \ No newline at end of file diff --git a/docs/docs/others/_category_.json b/docs/docs/others/_category_.json index 31b069864..5901bf5b6 100644 --- a/docs/docs/others/_category_.json +++ b/docs/docs/others/_category_.json @@ -1,4 +1,4 @@ { "label": "Others", - "position": 5 + "position": 4 } diff --git a/docs/docs/start/getting-started.mdx b/docs/docs/start/getting-started.mdx index e0401cac8..a203473da 100644 --- a/docs/docs/start/getting-started.mdx +++ b/docs/docs/start/getting-started.mdx @@ -21,7 +21,7 @@ The signup is free. If you're a developer and would like to experiment or contribute to the app, you can install Twenty on your local environment. Follow our [local setup](/contributor/local-setup) guide to get started. ### 3. Self-hosting -We provide [self-hosting options](/hosting/self-hosting) if you want greater control over your data and want to run the app on your own server. Right now, Docker containers are the only hosting option we support. However we are actively working on providing simple options to self-host Twenty. +We provide [self-hosting options](self-hosting) if you want greater control over your data and want to run the app on your own server. Right now, Docker containers are the only hosting option we support. However we are actively working on providing simple options to self-host Twenty. ___ diff --git a/docs/docs/start/overview.mdx b/docs/docs/start/overview.mdx index 74cc8f34f..fe22dc345 100644 --- a/docs/docs/start/overview.mdx +++ b/docs/docs/start/overview.mdx @@ -9,7 +9,7 @@ import ThemedImage from '@theme/ThemedImage'; Twenty is an Open Source CRM that provides flexibility, tailored to your business needs. It helps you break free from vendor lock-in and limitations, and provides the tools needed to harness the full potential of your data while ensuring a sleek and effortlessly intuitive design that teams will love to use. - + ___ diff --git a/docs/docs/hosting/self-hosting.mdx b/docs/docs/start/self-hosting.mdx similarity index 98% rename from docs/docs/hosting/self-hosting.mdx rename to docs/docs/start/self-hosting.mdx index c16e5d203..b4f6b1295 100644 --- a/docs/docs/hosting/self-hosting.mdx +++ b/docs/docs/start/self-hosting.mdx @@ -1,5 +1,6 @@ --- title: Self-Hosting +sidebar_position: 2 sidebar_custom_props: icon: TbServer --- diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 847ad0e43..f6e449fa7 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -57,6 +57,9 @@ const config = { ({ // Replace with your project's social card image: 'img/social-card.png', + colorMode:{ + defaultMode: 'light' + }, navbar: { /*title: 'Twenty',*/ logo: { diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 26cfdbe2f..a7b0cebc1 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -43,6 +43,7 @@ --category-icon-background-color: #ebebeb; --category-icon-border-color: #d6d6d6; --level-1-color: #B3B3B3; + } .markdown > h1 { @@ -162,10 +163,23 @@ li.coming-soon a::after { color:inherit } -.menu__list-item--level1 > .menu__link--active > .icon-and-text{ +.menu__list-item--level1 > .menu__link--active > .icon-and-text { color: black; } +/* Change text color to white for dark mode */ +@media (prefers-color-scheme: dark) { + .menu__list-item--level1 > .menu__link--active > .icon-and-text { + color: white; + } +} + +/* Reset to the browser's default text color for other cases (light mode) */ +.menu__list-item--level1 > .menu__link--active > .icon-and-text { + color: initial; +} + + .menu__list-item--level1 > .menu__link--active, .menu__list-item--level1 > .menu__link:hover { diff --git a/docs/src/theme/Icon/DarkMode/index.js b/docs/src/theme/Icon/DarkMode/index.js index 57a210842..8e247f6c1 100644 --- a/docs/src/theme/Icon/DarkMode/index.js +++ b/docs/src/theme/Icon/DarkMode/index.js @@ -4,7 +4,7 @@ import {useColorMode} from '@docusaurus/theme-common'; const IconDarkMode = (props) => { - const { colorMode } = useColorMode().colorMode; + const { colorMode } = useColorMode(); return colorMode === 'dark' ? : <>; } diff --git a/docs/src/theme/Icon/LightMode/index.js b/docs/src/theme/Icon/LightMode/index.js index 901da6178..77bf2b5e6 100644 --- a/docs/src/theme/Icon/LightMode/index.js +++ b/docs/src/theme/Icon/LightMode/index.js @@ -4,8 +4,8 @@ import {useColorMode} from '@docusaurus/theme-common'; const IconLightMode = (props) => { - const { colorMode } = useColorMode().colorMode; - return colorMode === 'dark' ? <>: ; + const { colorMode } = useColorMode(); + return colorMode === 'light' ? : <>; } export default IconLightMode; diff --git a/docs/src/theme/icons.js b/docs/src/theme/icons.js index 2d09fb3db..687f76757 100644 --- a/docs/src/theme/icons.js +++ b/docs/src/theme/icons.js @@ -32,5 +32,7 @@ export { TbTopologyStar, TbVocabulary, TbZoomQuestion, - TbRocket + TbRocket, + TbAugmentedReality, + TbTerminal, } from "react-icons/tb";