diff --git a/apps/docs/components/MDX/kotlin_project_setup.mdx b/apps/docs/components/MDX/kotlin_project_setup.mdx index fbf2e6ebd09..717f5b03892 100644 --- a/apps/docs/components/MDX/kotlin_project_setup.mdx +++ b/apps/docs/components/MDX/kotlin_project_setup.mdx @@ -21,6 +21,7 @@ Now we are going to set up the database schema. You can just copy/paste the SQL size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > {/* diff --git a/apps/docs/components/MDX/project_setup.mdx b/apps/docs/components/MDX/project_setup.mdx index 197c27f0c02..5994073e6e6 100644 --- a/apps/docs/components/MDX/project_setup.mdx +++ b/apps/docs/components/MDX/project_setup.mdx @@ -21,6 +21,7 @@ Now we are going to set up the database schema. We can use the "User Management size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/components/reference/ApiOperationSection.tsx b/apps/docs/components/reference/ApiOperationSection.tsx index 6713809bccf..46b58e37479 100644 --- a/apps/docs/components/reference/ApiOperationSection.tsx +++ b/apps/docs/components/reference/ApiOperationSection.tsx @@ -92,6 +92,7 @@ const ApiOperationSection = (props) => { size="small" type="underlined" defaultActiveId={operation.responseList[0].responseCode} + queryGroup="response-status" > {operation.responseList.map((response: any) => ( diff --git a/apps/docs/components/reference/CLICommandSection.tsx b/apps/docs/components/reference/CLICommandSection.tsx index 792297211de..32c96d3b731 100644 --- a/apps/docs/components/reference/CLICommandSection.tsx +++ b/apps/docs/components/reference/CLICommandSection.tsx @@ -138,6 +138,7 @@ const CliCommandSection = (props) => { size="tiny" type="rounded-pills" scrollable + queryGroup="example" > {command.examples ? ( command.examples.map((example) => { diff --git a/apps/docs/components/reference/RefFunctionSection.tsx b/apps/docs/components/reference/RefFunctionSection.tsx index 88c06beda04..90b2fc127f8 100644 --- a/apps/docs/components/reference/RefFunctionSection.tsx +++ b/apps/docs/components/reference/RefFunctionSection.tsx @@ -111,6 +111,7 @@ const RefFunctionSection: React.FC = (props) => { size="tiny" type="rounded-pills" scrollable + queryGroup="example" > {item.examples && item.examples.map((example, exampleIndex) => { diff --git a/apps/docs/docs/ref/csharp/installing.mdx b/apps/docs/docs/ref/csharp/installing.mdx index e274af8e280..4709791a7ec 100644 --- a/apps/docs/docs/ref/csharp/installing.mdx +++ b/apps/docs/docs/ref/csharp/installing.mdx @@ -19,7 +19,9 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab + defaultActiveId="csharp" + queryGroup="language" + > ```sh Terminal diff --git a/apps/docs/docs/ref/dart/installing.mdx b/apps/docs/docs/ref/dart/installing.mdx index d53e3c99218..3508de723c2 100644 --- a/apps/docs/docs/ref/dart/installing.mdx +++ b/apps/docs/docs/ref/dart/installing.mdx @@ -20,6 +20,7 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab size="small" type="underlined" defaultActiveId="flutter" + queryGroup="framework" > diff --git a/apps/docs/docs/ref/dart/v0/upgrade-guide.mdx b/apps/docs/docs/ref/dart/v0/upgrade-guide.mdx index 6da7b0c0fe5..b2eec12eab8 100644 --- a/apps/docs/docs/ref/dart/v0/upgrade-guide.mdx +++ b/apps/docs/docs/ref/dart/v0/upgrade-guide.mdx @@ -38,6 +38,7 @@ The way supabase-flutter throws error has changed in v1. In v0, errors were retu size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -84,6 +85,7 @@ In v0, `SupabaseAuthState` and `SupabaseAuthRequiredState` were required to hand size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -136,6 +138,7 @@ await Supabase.initialize( size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -183,6 +186,7 @@ authSubscription.cancel(); size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -216,6 +220,7 @@ await supabase.auth.signInWithPassword(email: email, password: password); size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -249,6 +254,7 @@ await supabase.auth.signInWithOtp(email: email); size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -291,6 +297,7 @@ await supabase.auth.signInWithOAuth( size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -330,6 +337,7 @@ await supabase.auth.signInWithPassword( size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -372,6 +380,7 @@ await supabase.auth.verifyOTP( size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -412,6 +421,7 @@ await supabase.auth.resetPasswordForEmail( size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -445,6 +455,7 @@ final Session? session = supabase.auth.currentSession; size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -478,6 +489,7 @@ final User? user = supabase.auth.currentUser; size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -523,6 +535,7 @@ Also, calling `.execute()` at the end of the query was a requirement in v0, but size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -560,6 +573,7 @@ await supabase.from('my_table').insert(data); size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -600,6 +614,7 @@ final insertedData = await supabase.from('my_table').insert(data).select(); size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -638,6 +653,7 @@ supabase.from('my_table') size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > @@ -683,6 +699,7 @@ channel.on( size="small" type="underlined" defaultActiveId="0.x" + queryGroup="version" > diff --git a/apps/docs/docs/ref/javascript/installing.mdx b/apps/docs/docs/ref/javascript/installing.mdx index fb4e334389e..dfb86377c64 100644 --- a/apps/docs/docs/ref/javascript/installing.mdx +++ b/apps/docs/docs/ref/javascript/installing.mdx @@ -20,6 +20,7 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab size="small" type="underlined" defaultActiveId="npm" + queryGroup="platform" > diff --git a/apps/docs/docs/ref/javascript/v1/upgrade-guide.mdx b/apps/docs/docs/ref/javascript/v1/upgrade-guide.mdx index d031f4a0778..36b040b0aa9 100644 --- a/apps/docs/docs/ref/javascript/v1/upgrade-guide.mdx +++ b/apps/docs/docs/ref/javascript/v1/upgrade-guide.mdx @@ -38,6 +38,7 @@ _Optionally_ if you are using custom configuration with `createClient` then foll size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > @@ -87,6 +88,7 @@ The signIn() method has been deprecated in favor of more explicit method signatu size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -124,6 +126,7 @@ const { size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -159,6 +162,7 @@ const { error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -193,6 +197,7 @@ const { error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -228,6 +233,7 @@ const { error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -269,6 +275,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -305,6 +312,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > @@ -340,6 +348,7 @@ const { size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > @@ -376,6 +385,7 @@ const { user } = session size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -413,6 +423,7 @@ const { size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > @@ -470,6 +481,7 @@ Previously, these methods return inserted/updated/deleted rows by default (which size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -506,6 +518,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -544,6 +557,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -580,6 +594,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > ```ts @@ -620,6 +635,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > @@ -661,6 +677,7 @@ const userListener = supabase size="small" type="underlined" defaultActiveId="1.0x" + queryGroup="version" > diff --git a/apps/docs/docs/ref/kotlin/installing.mdx b/apps/docs/docs/ref/kotlin/installing.mdx index 07125a7c0ac..ee4bbea96b1 100644 --- a/apps/docs/docs/ref/kotlin/installing.mdx +++ b/apps/docs/docs/ref/kotlin/installing.mdx @@ -21,7 +21,9 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin @@ -56,7 +58,9 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin @@ -112,7 +116,9 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin @@ -145,7 +151,9 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin @@ -197,7 +205,9 @@ By default, [KotlinX Serialization](https://github.com/Kotlin/kotlinx.serializat + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin @@ -272,7 +282,9 @@ By default, [KotlinX Serialization](https://github.com/Kotlin/kotlinx.serializat + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin @@ -319,7 +331,9 @@ By default, [KotlinX Serialization](https://github.com/Kotlin/kotlinx.serializat + defaultActiveId="kotlin" + queryGroup="build-file" + > ```kotlin diff --git a/apps/docs/docs/reference/csharp/initializing.mdx b/apps/docs/docs/reference/csharp/initializing.mdx index ca29a5605a3..baa0ab67f13 100644 --- a/apps/docs/docs/reference/csharp/initializing.mdx +++ b/apps/docs/docs/reference/csharp/initializing.mdx @@ -20,7 +20,9 @@ admin panel and pass it into your client initialization function. + defaultActiveId="csharp-init-standard" + queryGroup="init-method" + > ```csharp diff --git a/apps/docs/docs/reference/csharp/installing.mdx b/apps/docs/docs/reference/csharp/installing.mdx index e274af8e280..6dc10f8ad75 100644 --- a/apps/docs/docs/reference/csharp/installing.mdx +++ b/apps/docs/docs/reference/csharp/installing.mdx @@ -19,8 +19,10 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab - + defaultActiveId="csharp" + queryGroup="install-method" + > + ```sh Terminal dotnet add package supabase-csharp diff --git a/apps/docs/docs/reference/javascript/installing.mdx b/apps/docs/docs/reference/javascript/installing.mdx index b948b44d38e..c3c6b893601 100644 --- a/apps/docs/docs/reference/javascript/installing.mdx +++ b/apps/docs/docs/reference/javascript/installing.mdx @@ -12,6 +12,7 @@ custom_edit_url: https://github.com/supabase/supabase/edit/master/web/spec/supab size="small" type="underlined" defaultActiveId="npm" + queryGroup="package-manager" > diff --git a/apps/docs/docs/reference/postgres/changing-timezones.mdx b/apps/docs/docs/reference/postgres/changing-timezones.mdx index e836b1bf252..fd09965b4a4 100644 --- a/apps/docs/docs/reference/postgres/changing-timezones.mdx +++ b/apps/docs/docs/reference/postgres/changing-timezones.mdx @@ -10,7 +10,9 @@ Data types. + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -34,7 +36,9 @@ set timezone to 'America/New_York'; + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -59,7 +63,9 @@ Get a full list of timezones supported by your database. This will return the fo + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -80,7 +86,9 @@ Use `ilike` (case insensitive search) to find specific timezones. + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/columns.mdx b/apps/docs/docs/reference/postgres/columns.mdx index 8ec74a21db2..59d4a1ebea5 100644 --- a/apps/docs/docs/reference/postgres/columns.mdx +++ b/apps/docs/docs/reference/postgres/columns.mdx @@ -10,7 +10,9 @@ Creating columns. + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -33,7 +35,9 @@ create table table_name ( + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -54,7 +58,9 @@ create table table_name ( + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/connection-strings.mdx b/apps/docs/docs/reference/postgres/connection-strings.mdx index 4d7a60ae516..630eaa705cd 100644 --- a/apps/docs/docs/reference/postgres/connection-strings.mdx +++ b/apps/docs/docs/reference/postgres/connection-strings.mdx @@ -10,7 +10,9 @@ There are various ways to connect to your database, depending on the configurati + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -40,7 +42,9 @@ If you're using a default setup, your postgres connection string will likely be + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -61,7 +65,9 @@ See full [documentation](http://jdbc.postgresql.org/documentation/head/connect.h + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -80,7 +86,9 @@ See full [documentation](http://npgsql.projects.postgresql.org/docs/manual/UserM + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -99,7 +107,9 @@ See full [documentation](http://php.net/manual/en/book.pgsql.php). + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/database-passwords.mdx b/apps/docs/docs/reference/postgres/database-passwords.mdx index 4cc8ec9fa8e..15759bbd9c5 100644 --- a/apps/docs/docs/reference/postgres/database-passwords.mdx +++ b/apps/docs/docs/reference/postgres/database-passwords.mdx @@ -14,7 +14,9 @@ Manage the passwords of your database users using any super user. + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/database-users.mdx b/apps/docs/docs/reference/postgres/database-users.mdx index d13e8621679..bbf8279c841 100644 --- a/apps/docs/docs/reference/postgres/database-users.mdx +++ b/apps/docs/docs/reference/postgres/database-users.mdx @@ -14,7 +14,9 @@ Users and Roles are almost interchangeable. + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/publications.mdx b/apps/docs/docs/reference/postgres/publications.mdx index aabcc783c99..8eddb30cb5a 100644 --- a/apps/docs/docs/reference/postgres/publications.mdx +++ b/apps/docs/docs/reference/postgres/publications.mdx @@ -17,7 +17,9 @@ This publication will contain all changes to all tables. + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -35,7 +37,9 @@ for all tables; + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -53,7 +57,9 @@ for table table_one, table_two; + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -71,7 +77,9 @@ add table table_name; + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -90,7 +98,9 @@ with (publish = 'insert'); + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -109,7 +119,9 @@ with (publish = 'update'); + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -128,7 +140,9 @@ with (publish = 'delete'); + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -147,7 +161,9 @@ If you are planning to re-create a publication, it's best to do it in a transact + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/schemas.mdx b/apps/docs/docs/reference/postgres/schemas.mdx index 7b77f396b41..5abde3a742a 100644 --- a/apps/docs/docs/reference/postgres/schemas.mdx +++ b/apps/docs/docs/reference/postgres/schemas.mdx @@ -13,7 +13,9 @@ For example, you might want to use a `public` schema for user-facing data, and a + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -38,7 +40,9 @@ create schema schema_name; + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -55,7 +59,9 @@ create schema schema_name; + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -75,7 +81,9 @@ As a result, you will always need to use double-quotes when referencing your sch + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/docs/reference/postgres/tables.mdx b/apps/docs/docs/reference/postgres/tables.mdx index ad95ca5fda1..e47884e5acd 100644 --- a/apps/docs/docs/reference/postgres/tables.mdx +++ b/apps/docs/docs/reference/postgres/tables.mdx @@ -13,7 +13,9 @@ Tables are similar to excel spreadsheets. They contain columns & rows of data. T + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -49,7 +51,9 @@ create table schema_name.table_name ( + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -77,7 +81,9 @@ create table schema_name.table_name ( + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -99,7 +105,9 @@ create table table_name ( + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> @@ -118,7 +126,9 @@ alter table table_name + values={[{ label: 'SQL', value: 'sql' }]} + queryGroup="database-method" +> diff --git a/apps/docs/pages/guides/ai/choosing-compute-addon.mdx b/apps/docs/pages/guides/ai/choosing-compute-addon.mdx index f384b844621..ad1fe96b6f0 100644 --- a/apps/docs/pages/guides/ai/choosing-compute-addon.mdx +++ b/apps/docs/pages/guides/ai/choosing-compute-addon.mdx @@ -30,6 +30,7 @@ This benchmark uses the dbpedia-entities-openai-1M dataset containing 1,000,000 size="small" type="underlined" defaultActiveId="gte384" + queryGroup="benchmark" > @@ -60,6 +61,7 @@ This benchmark uses the [dbpedia-entities-openai-1M](https://huggingface.co/data size="small" type="underlined" defaultActiveId="openai1536" + queryGroup="benchmark" > @@ -113,6 +115,7 @@ This benchmark uses the dbpedia-entities-openai-1M dataset containing 1,000,000 size="small" type="underlined" defaultActiveId="gte384_98" + queryGroup="benchmark" > @@ -157,6 +160,7 @@ This benchmark uses the [gist-960-angular](http://corpus-texmex.irisa.fr/) datas size="small" type="underlined" defaultActiveId="gist960" + queryGroup="benchmark" > @@ -185,6 +189,7 @@ This benchmark uses the [dbpedia-entities-openai-1M](https://huggingface.co/data size="small" type="underlined" defaultActiveId="dbpedia1536" + queryGroup="benchmark" > @@ -260,6 +265,7 @@ You can increase the Requests per Second by increasing `m` and `ef_construction` size="small" type="underlined" defaultActiveId="hnsw" + queryGroup="index-type" > diff --git a/apps/docs/pages/guides/ai/examples/nextjs-vector-search.mdx b/apps/docs/pages/guides/ai/examples/nextjs-vector-search.mdx index a568300d26a..daa46311508 100644 --- a/apps/docs/pages/guides/ai/examples/nextjs-vector-search.mdx +++ b/apps/docs/pages/guides/ai/examples/nextjs-vector-search.mdx @@ -35,6 +35,7 @@ Let's prepare the database schema. We can use the "OpenAI Vector Search" quickst size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/ai/langchain.mdx b/apps/docs/pages/guides/ai/langchain.mdx index fa8320819a2..1d82359a7e6 100644 --- a/apps/docs/pages/guides/ai/langchain.mdx +++ b/apps/docs/pages/guides/ai/langchain.mdx @@ -21,6 +21,7 @@ Prepare you database with the relevant tables: size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/ai/vector-columns.mdx b/apps/docs/pages/guides/ai/vector-columns.mdx index 8b4d29643a5..8dc048667f4 100644 --- a/apps/docs/pages/guides/ai/vector-columns.mdx +++ b/apps/docs/pages/guides/ai/vector-columns.mdx @@ -20,6 +20,7 @@ Vectors in Supabase are enabled via [pgvector](https://github.com/pgvector/pgvec size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/api/creating-routes.mdx b/apps/docs/pages/guides/api/creating-routes.mdx index 170f843d788..d39fc790847 100644 --- a/apps/docs/pages/guides/api/creating-routes.mdx +++ b/apps/docs/pages/guides/api/creating-routes.mdx @@ -19,6 +19,7 @@ This creates a corresponding route `todos` which can accept `GET`, `POST`, `PATC size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -86,6 +87,7 @@ using the API URL (`SUPABASE_URL`) and Key (`SUPABASE_ANON_KEY`) we provided: size="small" type="underlined" defaultActiveId="javascript" + queryGroup="language" > @@ -127,6 +129,7 @@ You can use any GraphQL client with the Supabase GraphQL API. For our GraphQL ex size="small" type="underlined" defaultActiveId="javascript" + queryGroup="language" > @@ -195,6 +198,7 @@ By default Realtime is disabled on your database. Let's turn on Realtime for the size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/api/joins-and-nesting.mdx b/apps/docs/pages/guides/api/joins-and-nesting.mdx index d64486a8b25..193fa5ecf4d 100644 --- a/apps/docs/pages/guides/api/joins-and-nesting.mdx +++ b/apps/docs/pages/guides/api/joins-and-nesting.mdx @@ -17,6 +17,7 @@ Let's use an example database that stores `countries` and `cities`: size="small" type="underlined" defaultActiveId="table" + queryGroup="output-format" > @@ -76,6 +77,7 @@ The APIs will automatically detect relationships based on the foreign keys: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -155,6 +157,7 @@ In these cases you don't need to explicitly define the joining table (members). size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/api/quickstart.mdx b/apps/docs/pages/guides/api/quickstart.mdx index 8e7baf747a5..18965256ad2 100644 --- a/apps/docs/pages/guides/api/quickstart.mdx +++ b/apps/docs/pages/guides/api/quickstart.mdx @@ -29,6 +29,7 @@ We'll create a database table called `todos` for storing tasks. This creates a c size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -148,6 +149,7 @@ We provide a number of [Client Libraries](https://github.com/supabase/supabase#c size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -181,6 +183,7 @@ Every table can be accessed through the GraphQL API by switching `/rest/v1` with size="small" type="underlined" defaultActiveId="urql" + queryGroup="library" > diff --git a/apps/docs/pages/guides/api/securing-your-api.mdx b/apps/docs/pages/guides/api/securing-your-api.mdx index e10524f0733..95009ca66cf 100644 --- a/apps/docs/pages/guides/api/securing-your-api.mdx +++ b/apps/docs/pages/guides/api/securing-your-api.mdx @@ -19,6 +19,7 @@ To enable RLS on any table: size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/api/using-custom-schemas.mdx b/apps/docs/pages/guides/api/using-custom-schemas.mdx index 87d791aa5d9..c52ef67e29e 100644 --- a/apps/docs/pages/guides/api/using-custom-schemas.mdx +++ b/apps/docs/pages/guides/api/using-custom-schemas.mdx @@ -28,6 +28,7 @@ Now you can access these schemas from Serverless APIs: size="small" type="underlined" defaultActiveId="javascript" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/auth-captcha.mdx b/apps/docs/pages/guides/auth/auth-captcha.mdx index e36e96262bc..baa4184f96d 100644 --- a/apps/docs/pages/guides/auth/auth-captcha.mdx +++ b/apps/docs/pages/guides/auth/auth-captcha.mdx @@ -25,6 +25,7 @@ Supabase provides you with the option of adding captcha to your sign-in, sign-up size="small" type="underlined" defaultActiveId="hcaptcha-1" + queryGroup="captcha-method" > Go to the [hCaptcha](https://www.hcaptcha.com/) website and sign up for an account. On the welcome page, copy the **Sitekey** and **Secret key**. @@ -66,6 +67,7 @@ The frontend requires some changes to provide the captcha on-screen for the user size="small" type="underlined" defaultActiveId="hcaptcha-2" + queryGroup="captcha-method" > diff --git a/apps/docs/pages/guides/auth/auth-email.mdx b/apps/docs/pages/guides/auth/auth-email.mdx index 2aa114b48a2..827b27aa19f 100644 --- a/apps/docs/pages/guides/auth/auth-email.mdx +++ b/apps/docs/pages/guides/auth/auth-email.mdx @@ -32,6 +32,7 @@ See the [self-hosting docs](/docs/guides/hosting/overview#configuration) for det size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -68,6 +69,7 @@ Future signInWithEmail() async { size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/auth-helpers/nextjs-pages.mdx b/apps/docs/pages/guides/auth/auth-helpers/nextjs-pages.mdx index fc23df156a4..81f883336d9 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/nextjs-pages.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/nextjs-pages.mdx @@ -45,6 +45,7 @@ NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -114,6 +115,7 @@ The `Code Exchange` API route is required for the [server-side auth flow](https: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -303,6 +305,7 @@ You can use the server supabase client to run [row level security](/docs/learn/a size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -406,6 +409,7 @@ When using third-party auth providers, sessions are initiated with an additional size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -521,6 +525,7 @@ Create a server supabase client to retrieve the logged in user's session: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -666,6 +671,7 @@ Use `createPagesServerClient` within your `NextApiHandler`: size="small" type="underlined" defaultActiveId="before" + queryGroup="migration-side" > @@ -720,6 +726,7 @@ Use `createPagesServerClient` within `getServerSideProps`: size="small" type="underlined" defaultActiveId="before" + queryGroup="migration-side" > @@ -779,6 +786,7 @@ export const getServerSideProps = async (ctx: GetServerSidePropsContext) => { size="small" type="underlined" defaultActiveId="before" + queryGroup="migration-side" > diff --git a/apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx b/apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx index 0aaafb1f237..3e1f2ab2a0f 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/nextjs.mdx @@ -88,6 +88,7 @@ Next.js [Middleware](https://nextjs.org/docs/app/building-your-application/routi size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -152,6 +153,7 @@ To make this work with Next.js, we create a callback Route Handler that performs size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -245,6 +247,7 @@ Client Components can be used to trigger the authentication process from event h size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -382,6 +385,7 @@ The combination of [Server Components](https://nextjs.org/docs/getting-started/r size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -469,6 +473,7 @@ Returning a `301` status redirects from a POST to a GET route size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -550,6 +555,7 @@ Returning a `301` status redirects from a POST to a GET route size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -613,6 +619,7 @@ TypeScript types can be [generated with the Supabase CLI](/docs/reference/javasc size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -684,6 +691,7 @@ This allows for the Supabase client to be easily instantiated in the correct con size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -788,6 +796,7 @@ In order to use Supabase in Server Components, you need to have implemented the size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -862,6 +871,7 @@ Next.js Server Actions are currently in `alpha` so may change without notice. size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -948,6 +958,7 @@ TypeScript types can be [generated with the Supabase CLI](/docs/reference/javasc size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -1013,6 +1024,7 @@ A route can be configured to use the Edge Runtime by exporting a `runtime` varia size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -1076,6 +1088,7 @@ TypeScript types can be [generated with the Supabase CLI](/docs/reference/javasc size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -1147,6 +1160,7 @@ Server Components and Route Handlers are static by default - data is fetched onc size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -1200,6 +1214,7 @@ TypeScript types can be [generated with the Supabase CLI](/docs/reference/javasc size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/auth-helpers/remix.mdx b/apps/docs/pages/guides/auth/auth-helpers/remix.mdx index e1769bca84d..e002fae5c83 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/remix.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/remix.mdx @@ -48,6 +48,7 @@ The `Code Exchange` route is required for the [server-side auth flow](https://su size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -128,6 +129,7 @@ Loader functions run on the server immediately before the component is rendered. size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -203,6 +205,7 @@ Action functions run on the server and respond to HTTP requests to a route, othe size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -303,6 +306,7 @@ Since our environment variables are not available client-side, we need to plumb size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -391,6 +395,7 @@ Let's pipe that through from our loader. size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -470,6 +475,7 @@ And then use the revalidator, inside the `onAuthStateChange` hook. size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -543,6 +549,7 @@ Now we can use our outlet context to access our single instance of Supabase and size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -630,6 +637,7 @@ export default function Login() { size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx b/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx index b38ac77adf7..9f815998603 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx @@ -36,6 +36,7 @@ PUBLIC_SUPABASE_ANON_KEY=your-anon-key size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -130,6 +131,7 @@ The `Code Exchange` route is required for the [server-side auth flow](https://su size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -218,6 +220,7 @@ To make the session available across the UI, including pages and layouts, it is size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -254,6 +257,7 @@ To utilize Supabase in shared load functions and within pages, it is essential t size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -411,6 +415,7 @@ We can access the supabase instance in our `+page.svelte` file through the data size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -581,6 +586,7 @@ protect multiple routes at once. size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -786,6 +792,7 @@ In version 0.9 we now setup our Supabase client for the server inside of a `hook size="small" type="underlined" defaultActiveId="older-0.8" + queryGroup="migration-version" > @@ -848,6 +855,7 @@ In order to use the Supabase library in your client code you will need to setup size="small" type="underlined" defaultActiveId="older-0.8" + queryGroup="migration-version" > @@ -944,6 +952,7 @@ Since version 0.9 relies on `hooks.server.ts` to setup our client, we no longer size="small" type="underlined" defaultActiveId="older-0-8" + queryGroup="migration-version" > @@ -1002,6 +1011,7 @@ declare global { size="small" type="underlined" defaultActiveId="older-0-8" + queryGroup="migration-version" > @@ -1084,6 +1094,7 @@ export const load: PageLoad = async ({ parent }) => { size="small" type="underlined" defaultActiveId="older-0-8" + queryGroup="migration-version" > @@ -1136,6 +1147,7 @@ export const GET: RequestHandler = async ({ locals: { supabase, getSession } }) size="small" type="underlined" defaultActiveId="older-0.7" + queryGroup="migration-version" > @@ -1184,6 +1196,7 @@ export const supabaseClient = createClient(env.PUBLIC_SUPABASE_URL, env.PUBLIC_S size="small" type="underlined" defaultActiveId="older-0.7" + queryGroup="migration-version" > @@ -1240,6 +1253,7 @@ export const supabaseClient = createClient(env.PUBLIC_SUPABASE_URL, env.PUBLIC_S size="small" type="underlined" defaultActiveId="older-0-7" + queryGroup="migration-version" > @@ -1287,6 +1301,7 @@ import '$lib/db' size="small" type="underlined" defaultActiveId="older-0-7" + queryGroup="migration-version" > @@ -1344,6 +1359,7 @@ declare namespace App { size="small" type="underlined" defaultActiveId="older-0-7" + queryGroup="migration-version" > @@ -1422,6 +1438,7 @@ export const load: PageLoad = async (event) => { size="small" type="underlined" defaultActiveId="older-0-7" + queryGroup="migration-version" > @@ -1483,6 +1500,7 @@ The environment variable prefix is now `PUBLIC_` instead of `VITE_` (e.g., `VITE size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > @@ -1532,6 +1550,7 @@ setupSupabaseHelpers({ size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > @@ -1580,6 +1599,7 @@ The `@supabase/auth-helpers-svelte` library is no longer required as the `@supab size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > @@ -1634,6 +1654,7 @@ export const handle = sequence(auth(), yourHandler) size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > @@ -1691,6 +1712,7 @@ declare namespace App { size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > @@ -1733,6 +1755,7 @@ declare namespace App { size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > @@ -1809,6 +1832,7 @@ export const load: PageLoad = withAuth(async ({ session, getSupabaseClient }) => size="small" type="underlined" defaultActiveId="older" + queryGroup="migration-version" > diff --git a/apps/docs/pages/guides/auth/auth-magic-link.mdx b/apps/docs/pages/guides/auth/auth-magic-link.mdx index 8f4b407485d..3367d833365 100644 --- a/apps/docs/pages/guides/auth/auth-magic-link.mdx +++ b/apps/docs/pages/guides/auth/auth-magic-link.mdx @@ -33,6 +33,7 @@ When making use of Magic Links with [the PKCE Flow](https://supabase.com/blog/su size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > When your user signs in, call [signInWithOtp()](/docs/reference/javascript/auth-signinwithotp) with their email address: @@ -67,6 +68,7 @@ Future signInWithEmail() async { size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > When your user signs out, call [signOut()](/docs/reference/javascript/auth-signout) to remove them from the browser session and any objects from localStorage: diff --git a/apps/docs/pages/guides/auth/phone-login/messagebird.mdx b/apps/docs/pages/guides/auth/phone-login/messagebird.mdx index ad70cc72d52..c0de63b0366 100644 --- a/apps/docs/pages/guides/auth/phone-login/messagebird.mdx +++ b/apps/docs/pages/guides/auth/phone-login/messagebird.mdx @@ -83,6 +83,7 @@ Using supabase-js on the client you'll want to use the same `signUp` method that size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -118,6 +119,7 @@ You should present a form to the user so they can input the 6 digit pin, then se size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -165,6 +167,7 @@ Also now that the mobile has been verified, the user can use the number and pass size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -202,6 +205,7 @@ In javascript we can use the `signIn` method with a single parameter: `phone` size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -233,6 +237,7 @@ The second step is the same as the previous section, you need to collect the 6-d size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/phone-login/twilio.mdx b/apps/docs/pages/guides/auth/phone-login/twilio.mdx index 7489c644267..098a2c37d75 100644 --- a/apps/docs/pages/guides/auth/phone-login/twilio.mdx +++ b/apps/docs/pages/guides/auth/phone-login/twilio.mdx @@ -129,6 +129,7 @@ Using supabase-js on the client you'll want to use the same `signUp` method that size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -164,6 +165,7 @@ You should present a form to the user so they can input the 6 digit pin, then se size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -212,6 +214,7 @@ Also now that the mobile has been verified, the user can use the number and pass size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -249,6 +252,7 @@ In javascript we can use the `signIn` method with a single parameter: `phone` size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -280,6 +284,7 @@ The second step is the same as the previous section, you need to collect the 6-d size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/phone-login/vonage.mdx b/apps/docs/pages/guides/auth/phone-login/vonage.mdx index 69a244d5acb..f51d1c2c0e1 100644 --- a/apps/docs/pages/guides/auth/phone-login/vonage.mdx +++ b/apps/docs/pages/guides/auth/phone-login/vonage.mdx @@ -76,6 +76,7 @@ Using supabase-js on the client you'll want to use the same `signUp` method that size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -111,6 +112,7 @@ You should present a form to the user so they can input the 6 digit pin, then se size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -158,6 +160,7 @@ Also now that the mobile has been verified, the user can use the number and pass size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -195,6 +198,7 @@ In javascript we can use the `signIn` method with a single parameter: `phone` size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -226,6 +230,7 @@ The second step is the same as the previous section, you need to collect the 6-d size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/auth/server-side/email-based-auth-with-pkce-flow-for-ssr.mdx b/apps/docs/pages/guides/auth/server-side/email-based-auth-with-pkce-flow-for-ssr.mdx index 9e41fe99ede..91b59a74e27 100644 --- a/apps/docs/pages/guides/auth/server-side/email-based-auth-with-pkce-flow-for-ssr.mdx +++ b/apps/docs/pages/guides/auth/server-side/email-based-auth-with-pkce-flow-for-ssr.mdx @@ -12,7 +12,7 @@ export const meta = { The Auth Helpers will assist you in implementing user authentication within your server-side rendering (SSR) framework. - + @@ -36,7 +36,7 @@ npm install @supabase/auth-helpers-sveltekit @supabase/supabase-js Create an `.env.local` file in your project root directory. You can get your `SITE_URL` and `ANON_KEY` from inside of the [dashboard](https://supabase.com/dashboard/project/_/settings/api). - + @@ -65,6 +65,7 @@ When using the Supabase client on the server, you must perform extra steps to en size="small" type="underlined" defaultActiveId="nextjs" + queryGroup="framework" > Next.js Server Components allow you to read a cookie but not write back to it. Middleware on the other hand allow you to both read and write to cookies. @@ -128,6 +129,7 @@ In order to use the updated email links we will need to setup a endpoint for ver size="small" type="underlined" defaultActiveId="nextjs" + queryGroup="framework" > Create a new file at `app/auth/confirm/route.js` and populate with the following: diff --git a/apps/docs/pages/guides/auth/server-side/oauth-with-pkce-flow-for-ssr.mdx b/apps/docs/pages/guides/auth/server-side/oauth-with-pkce-flow-for-ssr.mdx index 60f6fb53a1c..07e7cbb9a07 100644 --- a/apps/docs/pages/guides/auth/server-side/oauth-with-pkce-flow-for-ssr.mdx +++ b/apps/docs/pages/guides/auth/server-side/oauth-with-pkce-flow-for-ssr.mdx @@ -17,6 +17,7 @@ The Auth Helpers assist with user authentication within server-side rendering (S size="small" type="underlined" defaultActiveId="nextjs" + queryGroup="framework" > @@ -43,6 +44,7 @@ Create an `.env.local` file in your project root directory. You can get your `SI size="small" type="underlined" defaultActiveId="nextjs" + queryGroup="framework" > @@ -71,6 +73,7 @@ For SSR, the Supabase client requires extra steps to ensure the user's auth sess size="small" type="underlined" defaultActiveId="nextjs" + queryGroup="framework" > Next.js Server Components allow you to read a cookie but not write back to it. Middleware on the other hand allow you to both read and write to cookies. @@ -134,6 +137,7 @@ In order to use OAuth we will need to setup a endpoint for the `code` exchange, size="small" type="underlined" defaultActiveId="nextjs" + queryGroup="framework" > Create a new file at `app/auth/callback/route.js` and populate with the following: diff --git a/apps/docs/pages/guides/cli/getting-started.mdx b/apps/docs/pages/guides/cli/getting-started.mdx index 92861f08158..3b54b1a5d77 100644 --- a/apps/docs/pages/guides/cli/getting-started.mdx +++ b/apps/docs/pages/guides/cli/getting-started.mdx @@ -19,6 +19,7 @@ The Supabase CLI provides tools to develop your project locally, deploy to the S size="small" type="underlined" defaultActiveId="npm" + queryGroup="platform" > @@ -86,6 +87,7 @@ When a new [version](https://github.com/supabase/cli/releases) is released, you size="small" type="underlined" defaultActiveId="npm" + queryGroup="platform" > diff --git a/apps/docs/pages/guides/cli/local-development.mdx b/apps/docs/pages/guides/cli/local-development.mdx index d72fee34c31..97958a93149 100644 --- a/apps/docs/pages/guides/cli/local-development.mdx +++ b/apps/docs/pages/guides/cli/local-development.mdx @@ -95,6 +95,7 @@ You can now visit your local Dashboard at [http://localhost:54323](http://localh size="small" type="underlined" defaultActiveId="postgres" + queryGroup="access-method" > diff --git a/apps/docs/pages/guides/cli/managing-environments.mdx b/apps/docs/pages/guides/cli/managing-environments.mdx index 59bd4ed51fe..d84b22990e4 100644 --- a/apps/docs/pages/guides/cli/managing-environments.mdx +++ b/apps/docs/pages/guides/cli/managing-environments.mdx @@ -185,6 +185,7 @@ Create the following files inside the `.github/workflows` directory: size="small" type="underlined" defaultActiveId="ci" + queryGroup="environment" > diff --git a/apps/docs/pages/guides/database/arrays.mdx b/apps/docs/pages/guides/database/arrays.mdx index 0ac61fcd68c..769c49ad3bf 100644 --- a/apps/docs/pages/guides/database/arrays.mdx +++ b/apps/docs/pages/guides/database/arrays.mdx @@ -17,6 +17,7 @@ Create a test table with a text array (an array of strings): size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -46,6 +47,7 @@ create table arraytest ( size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -82,6 +84,7 @@ const { data, error } = await supabase size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -119,6 +122,7 @@ PostgreSQL uses 1-based indexing (e.g., `textarray[1]` is the first item in the size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > diff --git a/apps/docs/pages/guides/database/extensions.mdx b/apps/docs/pages/guides/database/extensions.mdx index 68271fbc284..ff16218d2df 100644 --- a/apps/docs/pages/guides/database/extensions.mdx +++ b/apps/docs/pages/guides/database/extensions.mdx @@ -16,6 +16,7 @@ Supabase has pre-installed some of the most useful open source extensions. size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/http.mdx b/apps/docs/pages/guides/database/extensions/http.mdx index 89ad11ae91f..166e9169a3e 100644 --- a/apps/docs/pages/guides/database/extensions/http.mdx +++ b/apps/docs/pages/guides/database/extensions/http.mdx @@ -42,6 +42,7 @@ You can use the `http` extension to make these network requests from Postgres. size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/hypopg.mdx b/apps/docs/pages/guides/database/extensions/hypopg.mdx index b272e9e40e0..aa247933db3 100644 --- a/apps/docs/pages/guides/database/extensions/hypopg.mdx +++ b/apps/docs/pages/guides/database/extensions/hypopg.mdx @@ -17,6 +17,7 @@ The motivation for HypoPG is to allow users to quickly search for an index to im size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_cron.mdx b/apps/docs/pages/guides/database/extensions/pg_cron.mdx index f4f1739ade3..ac35e507c21 100644 --- a/apps/docs/pages/guides/database/extensions/pg_cron.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_cron.mdx @@ -18,6 +18,7 @@ The `pg_cron` extension is a simple cron-based job scheduler for PostgreSQL that size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_graphql.mdx b/apps/docs/pages/guides/database/extensions/pg_graphql.mdx index 1684776d492..9b0cf116ec7 100644 --- a/apps/docs/pages/guides/database/extensions/pg_graphql.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_graphql.mdx @@ -21,6 +21,7 @@ For more information about how the SQL schema is reflected into a GraphQL schema size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_hashids.mdx b/apps/docs/pages/guides/database/extensions/pg_hashids.mdx index 2b413c1533f..45baba5a227 100644 --- a/apps/docs/pages/guides/database/extensions/pg_hashids.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_hashids.mdx @@ -15,6 +15,7 @@ export const meta = { size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_jsonschema.mdx b/apps/docs/pages/guides/database/extensions/pg_jsonschema.mdx index 1fba7fa77fc..b6cd40f8dfa 100644 --- a/apps/docs/pages/guides/database/extensions/pg_jsonschema.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_jsonschema.mdx @@ -15,6 +15,7 @@ export const meta = { size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_net.mdx b/apps/docs/pages/guides/database/extensions/pg_net.mdx index 9dcfdc64f17..648ebbbe69a 100644 --- a/apps/docs/pages/guides/database/extensions/pg_net.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_net.mdx @@ -23,6 +23,7 @@ It differs from the `http` extension in that it is asynchronous by default. This size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_repack.mdx b/apps/docs/pages/guides/database/extensions/pg_repack.mdx index aaab00c01ed..fc62c10b0fc 100644 --- a/apps/docs/pages/guides/database/extensions/pg_repack.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_repack.mdx @@ -33,6 +33,7 @@ Get started with pg_repack by enabling the extension in the Supabase Dashboard. size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_stat_monitor.mdx b/apps/docs/pages/guides/database/extensions/pg_stat_monitor.mdx index 8e050767f7d..49c36649b73 100644 --- a/apps/docs/pages/guides/database/extensions/pg_stat_monitor.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_stat_monitor.mdx @@ -21,6 +21,7 @@ For more information on query optimization, check out the [query performance gui size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pg_stat_statements.mdx b/apps/docs/pages/guides/database/extensions/pg_stat_statements.mdx index 34cbb3af35b..c2f7e347ea1 100644 --- a/apps/docs/pages/guides/database/extensions/pg_stat_statements.mdx +++ b/apps/docs/pages/guides/database/extensions/pg_stat_statements.mdx @@ -31,6 +31,7 @@ For more information on query optimization, check out the [query performance gui size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgaudit.mdx b/apps/docs/pages/guides/database/extensions/pgaudit.mdx index 3b780c1e4e8..e3a478756f5 100644 --- a/apps/docs/pages/guides/database/extensions/pgaudit.mdx +++ b/apps/docs/pages/guides/database/extensions/pgaudit.mdx @@ -17,6 +17,7 @@ PGAudit grants fine grain control over which statements and objects are emitted size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgjwt.mdx b/apps/docs/pages/guides/database/extensions/pgjwt.mdx index fcc0bc9d427..e4d5b7b3f88 100644 --- a/apps/docs/pages/guides/database/extensions/pgjwt.mdx +++ b/apps/docs/pages/guides/database/extensions/pgjwt.mdx @@ -15,6 +15,7 @@ The [pgjwt](https://github.com/michelp/pgjwt) (PostgreSQL JSON Web Token) extens size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgroonga.mdx b/apps/docs/pages/guides/database/extensions/pgroonga.mdx index 8130dd0ef71..970b79b04ac 100644 --- a/apps/docs/pages/guides/database/extensions/pgroonga.mdx +++ b/apps/docs/pages/guides/database/extensions/pgroonga.mdx @@ -15,6 +15,7 @@ export const meta = { size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgrouting.mdx b/apps/docs/pages/guides/database/extensions/pgrouting.mdx index 34b9612bb39..bce863e3d7e 100644 --- a/apps/docs/pages/guides/database/extensions/pgrouting.mdx +++ b/apps/docs/pages/guides/database/extensions/pgrouting.mdx @@ -29,6 +29,7 @@ The core functionality of `pgRouting` is a set of path finding algorithms includ size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgsodium.mdx b/apps/docs/pages/guides/database/extensions/pgsodium.mdx index 15028024222..618f794516f 100644 --- a/apps/docs/pages/guides/database/extensions/pgsodium.mdx +++ b/apps/docs/pages/guides/database/extensions/pgsodium.mdx @@ -60,6 +60,7 @@ It also enables some Postgres specific features including: size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgtap.mdx b/apps/docs/pages/guides/database/extensions/pgtap.mdx index 991d15097b5..435d2ed8e33 100644 --- a/apps/docs/pages/guides/database/extensions/pgtap.mdx +++ b/apps/docs/pages/guides/database/extensions/pgtap.mdx @@ -22,6 +22,7 @@ Let's cover some basic concepts: size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/pgvector.mdx b/apps/docs/pages/guides/database/extensions/pgvector.mdx index 534bbe63f99..d3fd133956e 100644 --- a/apps/docs/pages/guides/database/extensions/pgvector.mdx +++ b/apps/docs/pages/guides/database/extensions/pgvector.mdx @@ -30,6 +30,7 @@ This is particularly useful if you're building on top of OpenAI's [GPT-3](https: size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/plpgsql_check.mdx b/apps/docs/pages/guides/database/extensions/plpgsql_check.mdx index 647ca16fc03..e0f87e3f6fa 100644 --- a/apps/docs/pages/guides/database/extensions/plpgsql_check.mdx +++ b/apps/docs/pages/guides/database/extensions/plpgsql_check.mdx @@ -15,6 +15,7 @@ export const meta = { size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/plv8.mdx b/apps/docs/pages/guides/database/extensions/plv8.mdx index 77c55e87d7d..ae1fd4b018d 100644 --- a/apps/docs/pages/guides/database/extensions/plv8.mdx +++ b/apps/docs/pages/guides/database/extensions/plv8.mdx @@ -22,6 +22,7 @@ It can be used for database functions, triggers, queries and more. size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -69,6 +70,7 @@ You can call `plv8` functions like any other Postgres function: size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > diff --git a/apps/docs/pages/guides/database/extensions/postgis.mdx b/apps/docs/pages/guides/database/extensions/postgis.mdx index 97c8f8438ff..b1fc3cc5ab6 100644 --- a/apps/docs/pages/guides/database/extensions/postgis.mdx +++ b/apps/docs/pages/guides/database/extensions/postgis.mdx @@ -23,6 +23,7 @@ You can get started with PostGIS by enabling the PostGIS extension in your Supab size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -75,6 +76,7 @@ You can insert geographical data through SQL or through our API. size="small" type="underlined" defaultActiveId="data" + queryGroup="language" > @@ -173,6 +175,7 @@ You can call this function from your client using `rpc()` like this: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -251,6 +254,7 @@ You can call this function from your client using `rpc()` like this: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/database/extensions/rum.mdx b/apps/docs/pages/guides/database/extensions/rum.mdx index bf83786732c..e1ebfeff549 100644 --- a/apps/docs/pages/guides/database/extensions/rum.mdx +++ b/apps/docs/pages/guides/database/extensions/rum.mdx @@ -36,6 +36,7 @@ You can get started with rum by enabling the extension in your Supabase dashboar size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/timescaledb.mdx b/apps/docs/pages/guides/database/extensions/timescaledb.mdx index b6daaed4814..cc117e86469 100644 --- a/apps/docs/pages/guides/database/extensions/timescaledb.mdx +++ b/apps/docs/pages/guides/database/extensions/timescaledb.mdx @@ -17,6 +17,7 @@ export const meta = { size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/uuid-ossp.mdx b/apps/docs/pages/guides/database/extensions/uuid-ossp.mdx index f07cde1ede4..c48e4e69549 100644 --- a/apps/docs/pages/guides/database/extensions/uuid-ossp.mdx +++ b/apps/docs/pages/guides/database/extensions/uuid-ossp.mdx @@ -20,6 +20,7 @@ This makes them particularly well suited as Primary Keys. It is occasionally ref size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/extensions/wrappers/overview.mdx b/apps/docs/pages/guides/database/extensions/wrappers/overview.mdx index f365a390c1d..bb6b6b31888 100644 --- a/apps/docs/pages/guides/database/extensions/wrappers/overview.mdx +++ b/apps/docs/pages/guides/database/extensions/wrappers/overview.mdx @@ -33,6 +33,7 @@ from size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/full-text-search.mdx b/apps/docs/pages/guides/database/full-text-search.mdx index 14981b182e3..cca11594d4d 100644 --- a/apps/docs/pages/guides/database/full-text-search.mdx +++ b/apps/docs/pages/guides/database/full-text-search.mdx @@ -28,6 +28,7 @@ For this guide we'll use the following example data: size="small" type="underlined" defaultActiveId="data" + queryGroup="example-view" > @@ -108,6 +109,7 @@ Take the following example: size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -145,6 +147,7 @@ example above: size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -185,6 +188,7 @@ To find all `books` where the `description` contain the word `big`: size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -237,6 +241,7 @@ To find all `books` where `description` or `title` contain the word `little`: size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -302,6 +307,7 @@ To find all `books` where `description` contains BOTH of the words `little` and size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -354,6 +360,7 @@ To find all `books` where `description` contain ANY of the words `little` or `bi size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -418,6 +425,7 @@ to ensure that the index is updated any time the values in the `title` and `desc size="small" type="underlined" defaultActiveId="sql" + queryGroup="example-view" > @@ -456,6 +464,7 @@ Now that we've created and populated our index, we can search it using the same size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -510,6 +519,7 @@ For example, to find the phrase `big dreams`, where the a match for "big" is fol size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -552,6 +562,7 @@ We can also use the `<->` to find words within a certain distance of eachother. size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -597,6 +608,7 @@ For example, to find records that have the word `big` but not `little`: size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > diff --git a/apps/docs/pages/guides/database/functions.mdx b/apps/docs/pages/guides/database/functions.mdx index 7d55d1e7e01..fe52e20e603 100644 --- a/apps/docs/pages/guides/database/functions.mdx +++ b/apps/docs/pages/guides/database/functions.mdx @@ -69,6 +69,7 @@ After the Function is created, we have several ways of "executing" the function size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -109,6 +110,7 @@ For example, if we had a database with some Star Wars data inside: size="small" type="underlined" defaultActiveId="data" + queryGroup="example-view" > @@ -181,6 +183,7 @@ Because this function returns a table set, we can also apply filters and selecto size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -237,6 +240,7 @@ Once again, you can execute this function either inside your database using a `s size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > diff --git a/apps/docs/pages/guides/database/json.mdx b/apps/docs/pages/guides/database/json.mdx index b7f35e96e58..ddaf6520db1 100644 --- a/apps/docs/pages/guides/database/json.mdx +++ b/apps/docs/pages/guides/database/json.mdx @@ -31,6 +31,7 @@ Don't go overboard with `json/jsonb` columns. They are a useful tool, but most o size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -75,6 +76,7 @@ You can insert JSON data in the same way that you insert any other data. The dat size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -191,6 +193,7 @@ Postgres support a range of [JSON functions and operators](https://www.postgresq size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > diff --git a/apps/docs/pages/guides/database/managing-timezones.mdx b/apps/docs/pages/guides/database/managing-timezones.mdx index fdafda70537..f9aee650b8d 100644 --- a/apps/docs/pages/guides/database/managing-timezones.mdx +++ b/apps/docs/pages/guides/database/managing-timezones.mdx @@ -17,6 +17,7 @@ This is because it makes it much easier to calculate differences between timezon size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -42,6 +43,7 @@ Get a full list of timezones supported by your database. This will return the fo size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -63,6 +65,7 @@ Use `ilike` (case insensitive search) to find specific timezones. size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/postgres/configuration.mdx b/apps/docs/pages/guides/database/postgres/configuration.mdx index 77305c0e9f5..0f566e0c0ca 100644 --- a/apps/docs/pages/guides/database/postgres/configuration.mdx +++ b/apps/docs/pages/guides/database/postgres/configuration.mdx @@ -47,6 +47,7 @@ This is because it makes it much easier to calculate differences between timezon size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -72,6 +73,7 @@ Get a full list of timezones supported by your database. This will return the fo size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > @@ -93,6 +95,7 @@ Use `ilike` (case insensitive search) to find specific timezones. size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/database/tables.mdx b/apps/docs/pages/guides/database/tables.mdx index 223874fbd4f..e80c5846cde 100644 --- a/apps/docs/pages/guides/database/tables.mdx +++ b/apps/docs/pages/guides/database/tables.mdx @@ -38,6 +38,7 @@ and run the SQL queries yourself. size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > @@ -180,6 +181,7 @@ Use the "Bulk Loading" instructions if you are loading large data sets. size="small" type="underlined" defaultActiveId="sql" + queryGroup="language" > @@ -291,6 +293,7 @@ For example if you had the following situations: size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx index 36cd58b94e3..f3831491c88 100644 --- a/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx +++ b/apps/docs/pages/guides/getting-started/tutorials/with-flutter.mdx @@ -59,6 +59,7 @@ That is it on Supabase's end and the rest are platform specific settings: size="small" type="underlined" defaultActiveId="ios" + queryGroup="platform" > Edit the `ios/Runner/Info.plist` file. diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx index a771e0f5571..79b9aaf9391 100644 --- a/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx +++ b/apps/docs/pages/guides/getting-started/tutorials/with-nextjs.mdx @@ -29,6 +29,7 @@ We can use [`create-next-app`](https://nextjs.org/docs/getting-started) to initi size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -84,6 +85,7 @@ npm install @supabase/auth-helpers-nextjs @supabase/supabase-js size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -186,6 +188,7 @@ Create an `AuthForm` client side component with the `Auth` component rendered wi size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -286,6 +289,7 @@ In the following code snippet, we perform the following steps: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -340,6 +344,7 @@ Let's create a route handler to handle the signout from the server side. size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -406,6 +411,7 @@ Let's create a new component for that called `AccountForm` within the `app/accou size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -676,6 +682,7 @@ Create a account page for the `AccountForm` component we just created size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > @@ -742,6 +749,7 @@ Let's create an avatar widget for the user so that they can upload a profile pho size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx b/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx index 91a53b8cb3b..b3c30daa25e 100644 --- a/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx +++ b/apps/docs/pages/guides/getting-started/tutorials/with-sveltekit.mdx @@ -260,6 +260,7 @@ In the following code snippet, we perform the following steps: size="small" type="underlined" defaultActiveId="js" + queryGroup="language" > diff --git a/apps/docs/pages/guides/platform/logs.mdx b/apps/docs/pages/guides/platform/logs.mdx index 965eb8d75cd..ce5afec2d54 100644 --- a/apps/docs/pages/guides/platform/logs.mdx +++ b/apps/docs/pages/guides/platform/logs.mdx @@ -20,6 +20,7 @@ Supabase provides a logging interface specific to each product. You can use simp size="small" type="underlined" defaultActiveId="api" + queryGroup="product" > @@ -301,7 +302,7 @@ where h.x_real_ip is not null and r.method = "GET"; Refer to the full field reference for each available source below. Do note that in order to access each nested key, you would need to perform the [necessary unnesting joins](#unnesting-arrays) - + {logConstants.schemas.map((schema) => ( diff --git a/apps/docs/pages/guides/realtime/postgres-changes.mdx b/apps/docs/pages/guides/realtime/postgres-changes.mdx index 3bccc3f6662..6d4665e4de8 100644 --- a/apps/docs/pages/guides/realtime/postgres-changes.mdx +++ b/apps/docs/pages/guides/realtime/postgres-changes.mdx @@ -32,6 +32,7 @@ In this example we'll set up a database table, secure it with Row Level Security size="small" type="underlined" defaultActiveId="sql" + queryGroup="database-method" > diff --git a/apps/docs/pages/guides/resources/migrating-to-supabase/amazon-rds.mdx b/apps/docs/pages/guides/resources/migrating-to-supabase/amazon-rds.mdx index 3a2f4315d65..f4ca9c95bfd 100644 --- a/apps/docs/pages/guides/resources/migrating-to-supabase/amazon-rds.mdx +++ b/apps/docs/pages/guides/resources/migrating-to-supabase/amazon-rds.mdx @@ -42,6 +42,7 @@ Alternatively, you can use [pgloader](https://github.com/dimitri/pgloader), a fl size="small" type="underlined" defaultActiveId="colab" + queryGroup="migrate-method" > diff --git a/apps/docs/pages/guides/resources/migrating-to-supabase/render.mdx b/apps/docs/pages/guides/resources/migrating-to-supabase/render.mdx index 2eb6dd79214..6d0a4ba23e8 100644 --- a/apps/docs/pages/guides/resources/migrating-to-supabase/render.mdx +++ b/apps/docs/pages/guides/resources/migrating-to-supabase/render.mdx @@ -43,6 +43,7 @@ The fastest way to migrate your database is with the Supabase migration tool on size="small" type="underlined" defaultActiveId="colab" + queryGroup="migrate-method" > diff --git a/apps/docs/pages/guides/storage/quickstart.mdx b/apps/docs/pages/guides/storage/quickstart.mdx index c90e36f385d..084fa5ba658 100644 --- a/apps/docs/pages/guides/storage/quickstart.mdx +++ b/apps/docs/pages/guides/storage/quickstart.mdx @@ -43,6 +43,7 @@ client libraries. Here we create a bucket called "avatars": size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="language" > @@ -100,6 +101,7 @@ You can upload a file from the Dashboard, or within a browser using our JS libra size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="language" > @@ -151,6 +153,7 @@ You can download a file from the Dashboard, or within a browser using our JS lib size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="language" > @@ -198,6 +201,7 @@ To restrict access to your files you can use either the Dashboard or SQL. size="small" type="underlined" defaultActiveId="dashboard" + queryGroup="database-method" > diff --git a/apps/docs/pages/reference/analytics/[...slug].tsx b/apps/docs/pages/reference/analytics/[...slug].tsx index 3fcf010110f..54d04153c0d 100644 --- a/apps/docs/pages/reference/analytics/[...slug].tsx +++ b/apps/docs/pages/reference/analytics/[...slug].tsx @@ -139,6 +139,7 @@ export default function Config() { operation.responseList[0].responseCode ?? operation.responseList[0].responseCode } + queryGroup="response-status" > {operation.responseList.map((response: any) => ( diff --git a/apps/docs/pages/reference/auth/[...slug].tsx b/apps/docs/pages/reference/auth/[...slug].tsx index 68603c86b07..00ac30b2994 100644 --- a/apps/docs/pages/reference/auth/[...slug].tsx +++ b/apps/docs/pages/reference/auth/[...slug].tsx @@ -139,6 +139,7 @@ export default function Config() { operation.responseList[0].responseCode ?? operation.responseList[0].responseCode } + queryGroup="response-status" > {operation.responseList.map((response: any) => ( diff --git a/apps/docs/pages/reference/storage/[...slug].tsx b/apps/docs/pages/reference/storage/[...slug].tsx index bfd42d2719a..35d0eaf3576 100644 --- a/apps/docs/pages/reference/storage/[...slug].tsx +++ b/apps/docs/pages/reference/storage/[...slug].tsx @@ -133,6 +133,7 @@ export default function Config() { size="small" type="underlined" defaultActiveId={operation.responseList[0].responseCode} + queryGroup="response-status" > {operation.responseList.map((response: any) => ( diff --git a/packages/ui/src/components/Tabs/Tabs.tsx b/packages/ui/src/components/Tabs/Tabs.tsx index 3466dc5d262..5df8dbd49e2 100644 --- a/packages/ui/src/components/Tabs/Tabs.tsx +++ b/packages/ui/src/components/Tabs/Tabs.tsx @@ -1,6 +1,6 @@ import * as TabsPrimitive from '@radix-ui/react-tabs' import { useRouter } from 'next/router' -import * as React from 'react' +import { Children, useEffect, useState } from 'react' import styleHandler from '../../lib/theme/styleHandler' import { useTabGroup } from './TabsProvider' @@ -9,6 +9,7 @@ interface TabsProps { defaultActiveId?: string activeId?: string size?: 'tiny' | 'small' | 'medium' | 'large' | 'xlarge' + queryGroup?: string block?: boolean tabBarGutter?: number tabBarStyle?: React.CSSProperties @@ -30,6 +31,7 @@ const Tabs: React.FC & TabsSubComponents = ({ activeId, type = 'pills', size = 'tiny', + queryGroup, block, onChange, onClick, @@ -41,29 +43,45 @@ const Tabs: React.FC & TabsSubComponents = ({ }) => { // toArray is used here to filter out invalid children // another method would be to use React.Children.map - const children = React.Children.toArray(_children) as PanelPropsProps[] + const children = Children.toArray(_children) as PanelPropsProps[] + const tabIds = children.map((tab) => tab.props.id) - const [activeTab, setActiveTab] = React.useState( - defaultActiveId ?? + const router = useRouter() + const queryTabs = queryGroup ? router.query[queryGroup] : undefined + const [queryTabRaw] = Array.isArray(queryTabs) ? queryTabs : [queryTabs] + const queryTab = queryTabRaw && tabIds.includes(queryTabRaw) ? queryTabRaw : undefined + + const [activeTab, setActiveTab] = useState( + queryTab ?? + defaultActiveId ?? // if no defaultActiveId is set use the first panel children?.[0]?.props?.id ) - const router = useRouter() - const hash = router?.asPath?.split('#')[1]?.toUpperCase() + // If query param present for the query group, switch to that tab. + useEffect(() => { + if (queryTab) { + setActiveTab(queryTab) + setGroupActiveId?.(queryTab) + } + }, [queryTab]) let __styles = styleHandler('tabs') - const tabIds = children.map((tab) => tab.props.id) - const { groupActiveId, setGroupActiveId } = useTabGroup(tabIds) - const active = activeId ?? groupActiveId ?? activeTab ?? hash + const active = activeId ?? groupActiveId ?? activeTab function onTabClick(id: string) { setActiveTab(id) setGroupActiveId?.(id) + if (queryGroup) { + const url = new URL(document.location.href) + url.searchParams.set(queryGroup, id) + window.history.replaceState(undefined, '', url) + } + onClick?.(id) if (id !== active) { onChange?.(id)