diff --git a/.github/crowdin-docs.yml b/.github/crowdin-docs.yml index 4ed6383d9c..af37390e85 100644 --- a/.github/crowdin-docs.yml +++ b/.github/crowdin-docs.yml @@ -30,13 +30,6 @@ files: [ "exclude_code_blocks": true, "excluded_front_matter_elements": ["icon"], }, - { - "source": "packages/twenty-docs/twenty-ui/**/*.mdx", - "translation": "packages/twenty-docs/l/%two_letters_code%/twenty-ui/**/%original_file_name%", - "type": "mdx_v2", - "exclude_code_blocks": true, - "excluded_front_matter_elements": ["icon"], - }, { # # Navigation labels template - translated into per-locale navigation.json diff --git a/packages/twenty-docs/developers/contribute/capabilities/bug-and-requests.mdx b/packages/twenty-docs/developers/contribute/capabilities/bug-and-requests.mdx index 916e80cf1d..2349ac6f2e 100644 --- a/packages/twenty-docs/developers/contribute/capabilities/bug-and-requests.mdx +++ b/packages/twenty-docs/developers/contribute/capabilities/bug-and-requests.mdx @@ -23,7 +23,7 @@ Contributing code to Twenty starts with a pull request (PR). 1. Check [existing issues](https://github.com/twentyhq/twenty/issues) for related work 2. For new features, open an issue first to discuss -3. Review our [Code of Conduct](https://github.com/twentyhq/twenty/blob/main/CODE_OF_CONDUCT.md) +3. Review our [Code of Conduct](https://github.com/twentyhq/twenty/blob/main/.github/CODE_OF_CONDUCT.md) ### Fork and Clone diff --git a/packages/twenty-docs/developers/contribute/contribute.mdx b/packages/twenty-docs/developers/contribute/contribute.mdx index 4902d7600d..a02644740c 100644 --- a/packages/twenty-docs/developers/contribute/contribute.mdx +++ b/packages/twenty-docs/developers/contribute/contribute.mdx @@ -24,7 +24,7 @@ Twenty is open-source and welcomes contributions from the community. Whether you Report issues or request features - + Contribute to the UI diff --git a/packages/twenty-docs/developers/extend/apps/config/roles.mdx b/packages/twenty-docs/developers/extend/apps/config/roles.mdx index 1c738c584b..e8dc437d7c 100644 --- a/packages/twenty-docs/developers/extend/apps/config/roles.mdx +++ b/packages/twenty-docs/developers/extend/apps/config/roles.mdx @@ -209,4 +209,4 @@ Notes: - Start from the scaffolded role, then progressively restrict it — the default grants broad read access, which is rarely what you want in production. - Replace `objectPermissions` and `fieldPermissions` with the exact objects and fields your functions actually need. - `permissionFlagUniversalIdentifiers` control access to platform-level capabilities. Keep them minimal. -- See a working example: [`hello-world/src/roles/function-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/hello-world/src/roles/function-role.ts). +- See a working example: [`examples/hello-world/src/roles/default-role.ts`](https://github.com/twentyhq/twenty/blob/main/packages/twenty-apps/examples/hello-world/src/roles/default-role.ts). diff --git a/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx b/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx index 2b6d7eb897..a03d1acea6 100644 --- a/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx +++ b/packages/twenty-docs/developers/extend/apps/operations/publishing.mdx @@ -49,11 +49,7 @@ yarn twenty app:publish --private ### Sharing a deployed app - -Sharing private (tarball) apps across workspaces is an **Enterprise** feature. The **Distribution** tab will show an upgrade prompt instead of the share controls until your workspace has a valid Enterprise key. See [Settings > Admin Panel > Enterprise](/settings/admin-panel#enterprise) to activate it. - - -Tarball apps are not listed in the public marketplace, so other workspaces on the same server won't discover them by browsing. Once your workspace is on the Enterprise plan, you can share a deployed app like this: +Tarball apps are not listed in the public marketplace, so other workspaces on the same server won't discover them by browsing. To share a deployed app: 1. Go to **Settings > Applications > Registrations** and open your app 2. In the **Distribution** tab, click **Copy share link** diff --git a/packages/twenty-docs/developers/extend/extend.mdx b/packages/twenty-docs/developers/extend/extend.mdx index 15a49ae3e8..0219998eea 100644 --- a/packages/twenty-docs/developers/extend/extend.mdx +++ b/packages/twenty-docs/developers/extend/extend.mdx @@ -25,7 +25,7 @@ Twenty is designed to be extensible. Use our APIs, webhooks, and app framework t Get notified of events in real-time - + Build customizations as code diff --git a/packages/twenty-docs/developers/extend/oauth.mdx b/packages/twenty-docs/developers/extend/oauth.mdx index 5152ea6254..428d261936 100644 --- a/packages/twenty-docs/developers/extend/oauth.mdx +++ b/packages/twenty-docs/developers/extend/oauth.mdx @@ -13,7 +13,7 @@ Twenty implements OAuth 2.0 with authorization code + PKCE for user-facing apps | Internal scripts, automation | [API Key](/developers/extend/api#authentication) | | External app acting on behalf of a user | **OAuth — Authorization Code** | | Server-to-server, no user context | **OAuth — Client Credentials** | -| Twenty App with UI extensions | [Apps](/developers/extend/apps/getting-started) (OAuth is handled automatically) | +| Twenty App with UI extensions | [Apps](/developers/extend/apps/getting-started/quick-start) (OAuth is handled automatically) | ## Register a Client diff --git a/packages/twenty-docs/developers/introduction.mdx b/packages/twenty-docs/developers/introduction.mdx index 9fc4b4742a..776a8b75bd 100644 --- a/packages/twenty-docs/developers/introduction.mdx +++ b/packages/twenty-docs/developers/introduction.mdx @@ -6,7 +6,7 @@ description: Build apps, use the API, self-host, or contribute to the codebase. import { CardTitle } from "/snippets/card-title.mdx" - + Apps Extend Twenty with custom objects, server-side logic, UI components, and AI agents — all as TypeScript packages. diff --git a/packages/twenty-docs/developers/self-host/capabilities/setup.mdx b/packages/twenty-docs/developers/self-host/capabilities/setup.mdx index c3f50e3818..aaf74fb810 100644 --- a/packages/twenty-docs/developers/self-host/capabilities/setup.mdx +++ b/packages/twenty-docs/developers/self-host/capabilities/setup.mdx @@ -263,9 +263,9 @@ yarn command:prod cron:workflow:automated-cron-trigger 2. Find the **Email** section 3. Configure your SMTP settings: - + - + You will need to provision an [App Password](https://support.google.com/accounts/answer/185833). - EMAIL_DRIVER=smtp @@ -274,9 +274,9 @@ yarn command:prod cron:workflow:automated-cron-trigger - EMAIL_SMTP_USER=gmail_email_address - EMAIL_SMTP_PASSWORD='gmail_app_password' - + - + Keep in mind that if you have 2FA enabled, you will need to provision an [App Password](https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9). - EMAIL_DRIVER=smtp @@ -285,9 +285,9 @@ yarn command:prod cron:workflow:automated-cron-trigger - EMAIL_SMTP_USER=office365_email_address - EMAIL_SMTP_PASSWORD='office365_password' - + - + **smtp4dev** is a fake SMTP email server for development and testing. - Run the smtp4dev image: `docker run --rm -it -p 8090:80 -p 2525:25 rnwood/smtp4dev` @@ -297,9 +297,9 @@ yarn command:prod cron:workflow:automated-cron-trigger - EMAIL_SMTP_HOST=localhost - EMAIL_SMTP_PORT=2525 - + - + **Environment-only mode:** If you set `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, add these variables to your `.env` file instead. diff --git a/packages/twenty-docs/docs.json b/packages/twenty-docs/docs.json index 947725652c..1207ef6673 100644 --- a/packages/twenty-docs/docs.json +++ b/packages/twenty-docs/docs.json @@ -6610,7 +6610,7 @@ }, { "source": "/developers/extend/capabilities/apps", - "destination": "/developers/extend/apps/getting-started" + "destination": "/developers/extend/apps/getting-started/quick-start" }, { "source": "/developers/extend/mcp", @@ -7058,7 +7058,7 @@ }, { "source": "/user-guide/settings/releases-settings", - "destination": "/user-guide/settings/capabilities/updates-settings" + "destination": "/user-guide/settings/capabilities/community-settings" }, { "source": "/user-guide/settings/settings-faq", diff --git a/packages/twenty-docs/getting-started/core-concepts/apps.mdx b/packages/twenty-docs/getting-started/core-concepts/apps.mdx index 722470bb75..d49859f7b1 100644 --- a/packages/twenty-docs/getting-started/core-concepts/apps.mdx +++ b/packages/twenty-docs/getting-started/core-concepts/apps.mdx @@ -37,6 +37,6 @@ Everything is detected via AST analysis at build time — no config files, no re You write your app as a TypeScript project on your machine. The CLI watches your source files and live-syncs them to a running Twenty server — edit a file, see the change in the UI within a second. The typed API client regenerates automatically when the schema changes. When you're ready, `yarn twenty app:publish --private` pushes to a production server, or `yarn twenty app:publish` lists your app on npm and the Twenty marketplace. - + Three-phase walkthrough — scaffold, run a local server, sync your changes. diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx deleted file mode 100644 index 17b7f329bf..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/display/app-tooltip.mdx +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: تلميح التطبيق -icon: message ---- - - - رأس الصفحة - - -رسالة مختصرة تعرض معلومات إضافية عند تفاعل المستخدم مع عنصر. - - - - -```jsx -import { AppTooltip } from "@/ui/display/tooltip/AppTooltip"; - -export const MyComponent = () => { - return ( - <> -

- Customer Insights -

- - - ); -}; -``` - -
- - - - -| المحددات | النوع | الوصف | -| ------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| اسم الفئة | نص | فئة CSS اختيارية للتنسيق الإضافي | -| اختيار الربط | محدد CSS | المحدِّد لمرساة التلميح (العنصر الذي يُفعّل التلميح) | -| المحتوى | نص | المحتوى الذي تريد عرضه داخل التلميح | -| تأخير الإخفاء | رقم | التأخير بالثواني قبل إخفاء التلميح بعد مغادرة المؤشر للمرساة | -| الإزاحة | رقم | الإزاحة بالبكسل لتحديد موضع التلميح | -| بدون سهم | قيمة منطقية | إذا كانت القيمة `صحيح`, سيتم إخفاء السهم في المربط التنبيهي | -| مفتوح | قيمة منطقية | إذا كانت القيمة `صحيح`, يكون المربط التنبيهي مفتوحًا افتراضيًا | -| المكان | نص `PlacesType` من `react-tooltip` | يحدد موضع المربط التنبيهي. تتضمن القيم `bottom`، `left`، `right`، `top`، `top-start`، `top-end`، `right-start`، `right-end`، `bottom-start`، `bottom-end`، `left-start`، و`left-end` | -| استراتيجية الوضعية | نص `PositionStrategy` من `react-tooltip` | استراتيجية وضعية للمربط التنبيهي. له قيمتان: `absolute` و`fixed` | - - - - - -
- -## نص متجاوز مع تلميح - -يعالج النص الزائد ويعرض مربط تنبيهي عند فيضان النص. - - - - -```jsx -import { OverflowingTextWithTooltip } from 'twenty-ui/display'; - -export const MyComponent = () => { - const crmTaskDescription = - 'Follow up with client regarding their recent product inquiry. Discuss pricing options, address any concerns, and provide additional product information. Record the details of the conversation in the CRM for future reference.'; - - return ; -}; -``` - - - - - - -| الخصائص | النوع | الوصف | -| ------- | ------ | --------------------------------------------- | -| نص | string | المحتوى الذي تريد عرضه في منطقة النص المتجاوز | - - - - - - diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/checkmark.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/checkmark.mdx deleted file mode 100644 index 6d4542c19e..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/display/checkmark.mdx +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: علامة صحيح -icon: circle-check ---- - - - رأس الصفحة - - -يمثل إجراءً ناجحًا أو مكتملًا. - - - - -```jsx -import { Checkmark } from 'twenty-ui/display'; - -export const MyComponent = () => { - return ; -}; -``` - - - - - - -يمتد `React.ComponentPropsWithoutRef<'div'>` و يقبل جميع خصائص عنصر `div` العادي. - - - - - -## علامة صحيح متحركة - -يمثل رمز علامة صحيح مع ميزة الإضافة للحركة. - - - - - -```jsx -import { AnimatedCheckmark } from 'twenty-ui/display'; - -export const MyComponent = () => { - return ( - - ); -}; -``` - - - - - - -| الخصائص | النوع | الوصف | الإعداد الافتراضي | -| ----------- | ----------- | ------------------------------------- | ----------------- | -| isAnimating | قيمة منطقية | يتحكم فيما إذا كانت علامة صحيح متحركة | خاطئ | -| اللون | string | لون علامة الاختيار | | -| المدة | رقم | مدة الحركة بالثواني | 0.5 ثانية | -| الحجم | رقم | حجم علامة الاختيار | 28 بكسل | - - - - - - diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx deleted file mode 100644 index 3729a15cc9..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/display/chip.mdx +++ /dev/null @@ -1,153 +0,0 @@ ---- -title: رقاقة ---- - - - رأس الصفحة - - -عنصر مرئي يمكن استخدامه كحاوية قابلة للنقر أو غير قابلة للنقر، مع علامة وعناصر اختيارية يسار ويمين، وخيارات تصميم متنوعة لعرض العلامات والبطاقات. - - - - - -```jsx -import { Chip } from 'twenty-ui/components'; - -export const MyComponent = () => { - return ( - - ); -}; - -``` - - - - - - -| الخصائص | النوع | الوصف | -| ------------------ | ----------------------- | ---------------------------------------------------------------------- | -| ربطوكي | نص | الرابط إلى الكيان | -| معرف الكيان | نص | المعرف الفريد للكيان | -| الاسم | نص | اسم الكيان | -| رابط الصورة | نص | ص صورة،" | -| نوع الصورة الرمزية | نوع الصورة الرمزية | نوع الصورة الرمزية التي تريد عرضها. لديه خياران: `مستدير` و `مربع` | -| التنوع | تعداد EntityChipVariant | تنوع الرقاقة الكيانية التي ترغب في عرضها. لديه خياران: `عادي` و `شفاف` | -| الأيقونة اليسرى | مكون رمز | مكون React يمثل رمزًا. يظهر على الجانب الأيسر من الرقاقة | - - - - - - -## الأمثلة - -### رقاقة شفافة معطلة - -```jsx -import { Chip } from 'twenty-ui/components'; - -export const MyComponent = () => { - return ( - - ); -}; - -``` - -
- -### رقاقة معطلة مع تلميح - -```jsx -import { Chip } from "twenty-ui/components"; - -export const MyComponent = () => { - return ( - - ); -}; -``` - -## رقاقة كيان - -عنصر يشبه الرقاقة لعرض معلومات عن كيان. - - - - - -```jsx -import { BrowserRouter as Router } from 'react-router-dom'; -import { IconTwentyStar } from 'twenty-ui/display'; -import { Chip } from 'twenty-ui/components'; - -export const MyComponent = () => { - return ( - - - - ); -}; -``` - - - - - - -| الخصائص | النوع | الوصف | -| ------------------ | ----------------------- | ---------------------------------------------------------------------- | -| ربطوكي | نص | الرابط إلى الكيان | -| معرف الكيان | نص | المعرف الفريد للكيان | -| الاسم | نص | اسم الكيان | -| رابط الصورة | نص | ص صورة،" | -| نوع الصورة الرمزية | نوع الصورة الرمزية | نوع الصورة الرمزية التي تريد عرضها. لديه خياران: `مستدير` و `مربع` | -| التنوع | تعداد EntityChipVariant | تنوع الرقاقة الكيانية التي ترغب في عرضها. لديه خياران: `عادي` و `شفاف` | -| الأيقونة اليسرى | مكون رمز | مكون React يمثل رمزًا. يظهر على الجانب الأيسر من الرقاقة | - - - - - diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/icons.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/icons.mdx deleted file mode 100644 index 10dd83678f..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/display/icons.mdx +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: الأيقونات -icon: icons ---- - - - رأس الصفحة - - -قائمة بالأيقونات المستخدمة في جميع أنحاء تطبيقنا. - -## أيقونات Tabler - -نستخدم أيقونات Tabler لـ React في جميع أنحاء التطبيق. - - - - -
- -``` -yarn add @tabler/icons-react -``` - -
- - - -يمكنك استيراد كل أيقونة كمكون. إليك مثال: -
- -```jsx -import { IconArrowLeft } from "@tabler/icons-react"; - -export const MyComponent = () => { - return ; -}; -``` - -
- - - - -| الإزاحة | النوع | الوصف | الإعداد الافتراضي | -| ----------- | ------ | -------------------------------- | ----------------- | -| الحجم | رقم | ارتفاع وعرض الأيقونة بالبكسل | 24 | -| اللون | string | لون الأيقونات | اللون الحالي | -| الخط العريض | رقم | عرض الخط العريض للأيقونة بالبكسل | 2 | - - - - - -
- -## أيقونات مخصصة - -بالإضافة إلى أيقونات Tabler، يستخدم التطبيق أيضًا بعض الأيقونات المخصصة. - -### أيقونة دفتر العناوين - -يعرض أيقونة دفتر العناوين. - - - - - -```jsx -import { IconAddressBook } from 'twenty-ui/display'; - -export const MyComponent = () => { - return ; -}; -``` - - - - - - -| خصائص | النوع | الوصف | الإعداد الافتراضي | -| ----------- | ----- | -------------------------------- | ----------------- | -| الحجم | رقم | ارتفاع وعرض الأيقونة بالبكسل | 24 | -| الخط العريض | رقم | عرض الخط العريض للأيقونة بالبكسل | 2 | - - - - - - diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/soon-pill.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/soon-pill.mdx deleted file mode 100644 index bbacf4a229..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/display/soon-pill.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: شارة قريبًا ---- - -شارة صغيرة أو "كبسولة" للإشارة إلى أن شيئًا ما قادم قريبًا. - -```jsx -import { SoonPill } from "@/ui/display/pill/components/SoonPill"; - -export const MyComponent = () => { - return ; -}; -``` diff --git a/packages/twenty-docs/l/ar/twenty-ui/display/tag.mdx b/packages/twenty-docs/l/ar/twenty-ui/display/tag.mdx deleted file mode 100644 index a8cbfe1016..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/display/tag.mdx +++ /dev/null @@ -1,43 +0,0 @@ ---- -title: علامة -icon: tag ---- - -مكوّن لتصنيف المحتوى أو وسمه بصريًا. - - - - - -```jsx -import { Tag } from "@/ui/display/tag/components/Tag"; - -export const MyComponent = () => { - return ( - console.log("click")} - /> - ); -}; -``` - - - - - - -| المحددات | النوع | الوصف | -| --------- | ----- | --------------------------------------------------------------------------------------------------------------------- | -| اسم الفئة | نص | اسم اختياري لتنسيقات إضافية | -| اللون | نص | لون العلامة. الخيارات تشمل: `أخضر`, `تركواز`, `سماوي`, `أزرق`, `أرجواني`, `وردي`, `أحمر`, `برتقالي`, `أصفر`, `رمادي`. | -| نص | نص | محتوى العلامة | -| عند_النقر | دالة | دالة اختيارية تُستدعى عند نقر المستخدم على العلامة | - - - - - - diff --git a/packages/twenty-docs/l/ar/twenty-ui/input.mdx b/packages/twenty-docs/l/ar/twenty-ui/input.mdx deleted file mode 100644 index 64ac04152c..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/input.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: إدخال ---- - - - رأس الصفحة - diff --git a/packages/twenty-docs/l/ar/twenty-ui/input/block-editor.mdx b/packages/twenty-docs/l/ar/twenty-ui/input/block-editor.mdx deleted file mode 100644 index 131db1adf9..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/input/block-editor.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: محرر الكتل ---- - - - رأس الصفحة - - -يستخدم محرر نصوص غني يعتمد على الكتل من [BlockNote](https://www.blocknotejs.org/) للسماح للمستخدمين بتحرير وعرض كتل المحتوى. - - - - -```jsx -import { useBlockNote } from "@blocknote/react"; -import { BlockEditor } from "@/ui/input/editor/components/BlockEditor"; - -export const MyComponent = () => { - const BlockNoteEditor = useBlockNote(); - - return ; -}; -``` - - - - - -| الخصائص | النوع | الوصف | -| ------- | ----------------- | ------------------------ | -| محرر | `BlockNoteEditor` | مثيل أو تكوين محرر الكتل | - - - - - diff --git a/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx b/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx deleted file mode 100644 index 343399f7ac..0000000000 --- a/packages/twenty-docs/l/ar/twenty-ui/input/buttons.mdx +++ /dev/null @@ -1,522 +0,0 @@ ---- -title: الأزرار -icon: hand-pointer ---- - - - رأس الصفحة - - -قائمة الأزرار ومجموعات الأزرار المستخدمة في التطبيق. - -## زر - - - - - -```jsx -import { Button } from "@/ui/input/button/components/Button"; - -export const MyComponent = () => { - return ( -