From ecbdd2eb58d049602c6f67a45409e28c71fac1c3 Mon Sep 17 00:00:00 2001 From: roble Date: Sat, 5 Sep 2026 21:37:38 +0100 Subject: [PATCH] feat: add tenancy module card to the index grid Marked SOON, following the same shape as the other unreleased module cards (gray, no href, four feature chips), inserted before webhooks. Copy comes from modules/.disable/tenancy: subdomain-based workspaces with isolated data, member roles, email invitations, and joining by email domain. frameworks is ['vue', 'react'] rather than ['vue'] like its SOON siblings, because the module ships both per its composer.json. The field is not read in resources/js, so this is metadata only. Applied to both the vue and react module lists. Co-Authored-By: Claude Opus 5 --- .../js/react/components/ui/saucebase/index.ts | 18 +++++++++++++++++ .../js/vue/components/ui/saucebase/index.ts | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/resources/js/react/components/ui/saucebase/index.ts b/resources/js/react/components/ui/saucebase/index.ts index d2920195..273a468c 100644 --- a/resources/js/react/components/ui/saucebase/index.ts +++ b/resources/js/react/components/ui/saucebase/index.ts @@ -4,6 +4,7 @@ import { BarChart3, Bell, Blocks, + Building2, CreditCard, Lightbulb, Lock, @@ -169,6 +170,23 @@ export const modules: Module[] = [ frameworks: ['vue'] as const, features: ['Posts', 'Categories', 'Admin Panel', 'SEO Optimized'], }, + { + id: 'tenancy', + title: 'Tenancy', + description: + 'Subdomain-based workspaces with isolated data, member roles, email invitations, and joining by email domain.', + icon: Building2, + color: '--color-gray-500', + badge: BADGE_SOON, + href: null, + frameworks: ['vue', 'react'] as const, + features: [ + 'Workspaces', + 'Data Isolation', + 'Roles & Invites', + 'Custom Domains', + ], + }, { id: 'webhooks', title: 'Webhooks', diff --git a/resources/js/vue/components/ui/saucebase/index.ts b/resources/js/vue/components/ui/saucebase/index.ts index 1a76c8c5..99655d59 100644 --- a/resources/js/vue/components/ui/saucebase/index.ts +++ b/resources/js/vue/components/ui/saucebase/index.ts @@ -6,6 +6,7 @@ import { BarChart3, Bell, Blocks, + Building2, CreditCard, Lightbulb, Lock, @@ -185,6 +186,25 @@ export const modules = [ () => trans('SEO Optimized'), ], }, + { + id: 'tenancy', + title: () => trans('Tenancy'), + description: () => + trans( + 'Subdomain-based workspaces with isolated data, member roles, email invitations, and joining by email domain.', + ), + icon: Building2, + color: '--color-gray-500', + badge: BADGE_SOON, + href: null, + frameworks: ['vue', 'react'] as const, + features: [ + () => trans('Workspaces'), + () => trans('Data Isolation'), + () => trans('Roles & Invites'), + () => trans('Custom Domains'), + ], + }, { id: 'webhooks', title: () => trans('Webhooks'),