diff --git a/apps/design-system/content/docs/icons.mdx b/apps/design-system/content/docs/icons.mdx index e433bceab5841..773c0ca9fcdc6 100644 --- a/apps/design-system/content/docs/icons.mdx +++ b/apps/design-system/content/docs/icons.mdx @@ -45,7 +45,7 @@ function app() { } ``` -**Default props**: All icons default to `size={24}`. Stroke and fill defaults come from the source SVG's root attributes (e.g. `stroke-width="1"` on the root `` becomes the component's default `strokeWidth`). You can override those defaults at the call site, but any `stroke`, `fill`, or `stroke-width` set on individual child paths will still win. +**Default props**: All icons default to `size={24}`. Stroke icons use `strokeWidth={1.5}` and fill-only icons use `stroke="none"`. These defaults come from the source SVG's root attributes and can be intentionally overridden at the call site. ### Adding new custom icons @@ -54,7 +54,7 @@ Follow these steps to add a new custom icon to the Supabase icon library. 1. **Create SVG file**: Add your SVG file to `packages/icons/src/raw-icons/` with a kebab-case name (e.g., `my-new-icon.svg`). Make sure it follows these requirements: - Exported at 24×24px with `viewBox="0 0 24 24"` - Uses `stroke="currentColor"` for strokes (no hardcoded colors) - - Uses `stroke-width="1.5"` (deviate based on optical weight if necessary) + - Uses `stroke-width="1.5"` - Uses `fill="none"` for fills (no hardcoded colors) - Icon content is optically centered and around 18×18px within the 24×24 frame - Any unnecessary elements like ``, ``, and `` wrappers have been removed @@ -62,7 +62,7 @@ Follow these steps to add a new custom icon to the Supabase icon library. For **fill-only icons** (e.g. logos that use shapes instead of strokes), add `stroke="none"` to the root `` element. The build will propagate this so the component never renders an unwanted stroke. -Prefer putting shared styling like `fill`, `stroke`, `stroke-width`, `stroke-linecap`, and `stroke-linejoin` on the root ``. The build propagates those root attributes as the component's defaults, and also converts them to camel-case for React compatibility (e.g. `strokeWidth`). If you put those attributes on individual child paths instead, they become fixed path-level styling and will override props passed to the component. +Put shared styling like `fill`, `stroke`, `stroke-width`, `stroke-linecap`, and `stroke-linejoin` on the root ``. The build validates this contract, propagates the root attributes as the component's defaults, and converts them to camel-case for React compatibility (e.g. `strokeWidth`). Child-level stroke styling is rejected because it would override props passed to the component. 2. **Build the component**: Run `npm run build:icons` from inside the `packages/icons` directory @@ -132,4 +132,4 @@ Note `stroke="none"` on the root to prevent unwanted strokes, and `fill="current ### Troubleshooting -If your SVG specifies `stroke-width` attributes on individual child paths, they will override the component's `strokeWidth` prop. Keep shared stroke attributes on the root `` and remove them from individual paths if you want consumers to control stroke weight. +The icon build reports the source file and invalid attribute when an SVG does not follow the stroke or fill-only contract. Run `pnpm validate:icons` from `packages/icons` to check sources without regenerating components. diff --git a/apps/docs/components/FrameworkQuickstarts.tsx b/apps/docs/components/FrameworkQuickstarts.tsx index 06ca4142d5c0c..d4939b72455a7 100644 --- a/apps/docs/components/FrameworkQuickstarts.tsx +++ b/apps/docs/components/FrameworkQuickstarts.tsx @@ -42,6 +42,16 @@ const frameworks = [ icon: '/docs/img/icons/nuxt-icon', href: '/guides/getting-started/quickstarts/nuxtjs', }, + { + name: 'SvelteKit', + icon: '/docs/img/icons/svelte-icon', + href: '/guides/getting-started/quickstarts/sveltekit', + }, + { + name: 'Hono', + icon: '/docs/img/icons/hono-icon', + href: '/guides/getting-started/quickstarts/hono', + }, { name: 'iOS Swift', icon: '/docs/img/icons/swift-icon-orange', diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts index b3a88a149eab5..8f7c97d96f7b6 100644 --- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts +++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenu.constants.ts @@ -2621,6 +2621,7 @@ export const security: NavMenuConstant = { items: [ { name: 'SOC 2', url: '/guides/security/soc-2-compliance' }, { name: 'HIPAA', url: '/guides/security/hipaa-compliance' }, + { name: 'GDPR', url: '/guides/security/gdpr-compliance' }, ], }, { @@ -3085,6 +3086,7 @@ export const self_hosting: NavMenuConstant = { name: 'Add Reverse Proxy with HTTPS', url: '/guides/self-hosting/self-hosted-proxy-https', }, + { name: 'Update your deployment', url: '/guides/self-hosting/updating' }, { name: 'How-to Guides', items: [ @@ -3098,7 +3100,7 @@ export const self_hosting: NavMenuConstant = { { name: 'Configure SAML 2.0 SSO', url: '/guides/self-hosting/self-hosted-saml-sso' }, { name: 'Enable MCP server', url: '/guides/self-hosting/enable-mcp' }, { - name: 'Custom Postgres Extensions', + name: 'Build Custom Extensions', url: '/guides/self-hosting/custom-postgres-extensions', }, { diff --git a/apps/docs/content/_partials/billing/pricing/pricing_logs_ingest.mdx b/apps/docs/content/_partials/billing/pricing/pricing_logs_ingest.mdx index f089dfa717af1..e2d9ad37d221e 100644 --- a/apps/docs/content/_partials/billing/pricing/pricing_logs_ingest.mdx +++ b/apps/docs/content/_partials/billing/pricing/pricing_logs_ingest.mdx @@ -1,9 +1 @@ - per GB. You are only charged for usage exceeding your subscription plan's -quota. - -| Plan | Quota | Over-Usage per GB | -| ---------- | ------ | ---------------------- | -| Free | 5 GB | - | -| Pro | 5 GB | | -| Team | 5 GB | | -| Enterprise | Custom | Custom | +Pricing details and included quotas will be published here when billing enforcement goes live. diff --git a/apps/docs/content/_partials/billing/pricing/pricing_logs_query.mdx b/apps/docs/content/_partials/billing/pricing/pricing_logs_query.mdx index 1301aadb7a40c..e2d9ad37d221e 100644 --- a/apps/docs/content/_partials/billing/pricing/pricing_logs_query.mdx +++ b/apps/docs/content/_partials/billing/pricing/pricing_logs_query.mdx @@ -1,9 +1 @@ - per GB. You are only charged for usage exceeding your subscription plan's -quota. - -| Plan | Quota | Over-Usage per GB | -| ---------- | -------- | ----------------------- | -| Free | 1,000 GB | - | -| Pro | 1,000 GB | | -| Team | 1,000 GB | | -| Enterprise | Custom | Custom | +Pricing details and included quotas will be published here when billing enforcement goes live. diff --git a/apps/docs/content/_partials/quickstart_create_project.mdx b/apps/docs/content/_partials/quickstart_create_project.mdx new file mode 100644 index 0000000000000..6c69ed6260fdf --- /dev/null +++ b/apps/docs/content/_partials/quickstart_create_project.mdx @@ -0,0 +1,11 @@ +## 1. Create a Supabase project + +To start, you need a Supabase project. + +Create a new Supabase project from [the Dashboard of any organization](/dashboard/new/_) you belong to. + + + +Use [the Management API](/docs/reference/api/v1-create-a-project) or ask [the MCP server](/docs/guides/ai-tools/mcp#account-management) to create a new Supabase project. + + diff --git a/apps/docs/content/_partials/quickstart_db_setup.mdx b/apps/docs/content/_partials/quickstart_db_setup.mdx index 4c42ce98745c4..6f507e53ff16b 100644 --- a/apps/docs/content/_partials/quickstart_db_setup.mdx +++ b/apps/docs/content/_partials/quickstart_db_setup.mdx @@ -23,17 +23,7 @@ on public.instruments for select to anon using (true);` -## 1. Create a Supabase project - -To start, you need a Supabase project. - -Create a new Supabase project from [the Dashboard of any organization](/dashboard/new/_) you belong to. - - - -Use [the Management API](/docs/reference/api/v1-create-a-project) or ask [the MCP server](/docs/guides/ai-tools/mcp#account-management) to create a new Supabase project. - - +<$Partial path="quickstart_create_project.mdx" /> ## 2. Set up your database diff --git a/apps/docs/content/guides/api/creating-routes.mdx b/apps/docs/content/guides/api/creating-routes.mdx index 5f503a8e3aac4..154d9811c3e9d 100644 --- a/apps/docs/content/guides/api/creating-routes.mdx +++ b/apps/docs/content/guides/api/creating-routes.mdx @@ -101,6 +101,20 @@ const { data: todos, error } = await supabase.from('todos').select('*') ``` +<$Show if="sdk:csharp"> + + +```c# +// Initialize the client +var supabase = new Supabase.Client(SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY); +await supabase.InitializeAsync(); + +// Make a request +var todos = await supabase.From().Get(); +``` + + + ```bash diff --git a/apps/docs/content/guides/api/quickstart.mdx b/apps/docs/content/guides/api/quickstart.mdx index 018001142be64..c6117a4982024 100644 --- a/apps/docs/content/guides/api/quickstart.mdx +++ b/apps/docs/content/guides/api/quickstart.mdx @@ -269,6 +269,31 @@ let response = try await supabase .order("score", ascending: false) ``` + + +<$Show if="sdk:csharp"> + + +```c# +[Table("leaderboard")] +class Leaderboard : BaseModel +{ + [PrimaryKey("id", false)] + public int Id { get; set; } + + [Column("player")] + public string Player { get; set; } + + [Column("score")] + public int Score { get; set; } +} + +var result = await supabase + .From() + .Order(x => x.Score, Ordering.Descending) + .Get(); +``` + diff --git a/apps/docs/content/guides/api/using-custom-schemas.mdx b/apps/docs/content/guides/api/using-custom-schemas.mdx index f53299c0e0d35..9b431d22385d4 100644 --- a/apps/docs/content/guides/api/using-custom-schemas.mdx +++ b/apps/docs/content/guides/api/using-custom-schemas.mdx @@ -75,6 +75,24 @@ final data = await supabase.from('todos').select(); final data = await supabase.schema('myschema').from('todos').select(); ```` + + +<$Show if="sdk:csharp"> + + +```c# +// Initialize the client with a custom schema +var supabase = new Supabase.Client( + SUPABASE_URL, + SUPABASE_PUBLISHABLE_KEY, + new SupabaseOptions { Schema = "myschema" } +); +await supabase.InitializeAsync(); + +// Make a request +var todos = await supabase.From().Get(); +``` + diff --git a/apps/docs/content/guides/auth/auth-anonymous.mdx b/apps/docs/content/guides/auth/auth-anonymous.mdx index 2f69c770fcc4c..d3d764d45f52a 100644 --- a/apps/docs/content/guides/auth/auth-anonymous.mdx +++ b/apps/docs/content/guides/auth/auth-anonymous.mdx @@ -107,6 +107,17 @@ Call the [`sign_in_anonymously()`](/docs/reference/python/auth-signinanonymously response = supabase.auth.sign_in_anonymously() ``` + + +<$Show if="sdk:csharp"> + + +Call the [`SignInAnonymously()`](/docs/reference/csharp/sign-in-anonymously) method: + +```c# +var session = await supabase.Auth.SignInAnonymously(); +``` + @@ -204,6 +215,23 @@ response = supabase.auth.update_user({ }) ``` + + +<$Show if="sdk:csharp"> + + +You can use the [`Update()`](/docs/reference/csharp/update-user) method to link an email or phone identity to the anonymous user. To add a password for the anonymous user, the user's email or phone number needs to be verified first. + +```c# +var updateEmail = await supabase.Auth.Update(new UserAttributes { Email = "valid.email@supabase.io" }); + +// verify the user's email by clicking on the email change link +// or entering the 6-digit OTP sent to the email address + +// once the user has been verified, update the password +var updatePassword = await supabase.Auth.Update(new UserAttributes { Password = "password" }); +``` + @@ -273,6 +301,18 @@ You can use the [`link_identity()`](/docs/reference/python/auth-linkidentity) me response = supabase.auth.link_identity({'provider': 'google'}) ``` + + +<$Show if="sdk:csharp"> + + +You can use the [`LinkIdentity()`](/docs/reference/csharp/link-identity) method to link an OAuth identity to the anonymous user. + +```c# +var state = await supabase.Auth.LinkIdentity(Provider.Google, new SignInOptions { FlowType = OAuthFlowType.PKCE }); +var authorizeUrl = state.Uri; +``` + diff --git a/apps/docs/content/guides/auth/auth-email-passwordless.mdx b/apps/docs/content/guides/auth/auth-email-passwordless.mdx index cb3bec4964128..97c8c16089920 100644 --- a/apps/docs/content/guides/auth/auth-email-passwordless.mdx +++ b/apps/docs/content/guides/auth/auth-email-passwordless.mdx @@ -134,6 +134,16 @@ response = supabase.auth.sign_in_with_otp({ }) ``` + + +<$Show if="sdk:csharp"> + + +```c# +var options = new SignInOptions { RedirectTo = "https://example.com/welcome" }; +var didSendMagicLink = await supabase.Auth.SendMagicLink("valid.email@supabase.io", options); +``` + @@ -274,6 +284,15 @@ response = supabase.auth.sign_in_with_otp({ }) ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Auth.SendMagicLink("valid.email@supabase.io"); +``` + @@ -355,6 +374,15 @@ response = supabase.auth.verify_otp({ }) ``` + + +<$Show if="sdk:csharp"> + + +```c# +var session = await supabase.Auth.VerifyOTP("email@example.com", "123456", EmailOtpType.Email); +``` + diff --git a/apps/docs/content/guides/auth/auth-identity-linking.mdx b/apps/docs/content/guides/auth/auth-identity-linking.mdx index 22bb73a074b6a..abc0bc9dd0fa3 100644 --- a/apps/docs/content/guides/auth/auth-identity-linking.mdx +++ b/apps/docs/content/guides/auth/auth-identity-linking.mdx @@ -89,6 +89,18 @@ Supabase Auth allows a user to initiate identity linking with a different email response = supabase.auth.link_identity({'provider': 'google'}) ``` + + +<$Show if="sdk:csharp"> + + +Supabase Auth allows a user to initiate identity linking with a different email address when they are logged in. To link an OAuth identity to the user, call [`LinkIdentity()`](/docs/reference/csharp/link-identity): + +```c# +var state = await supabase.Auth.LinkIdentity(Provider.Google, new SignInOptions { FlowType = OAuthFlowType.PKCE }); +var authorizeUrl = state.Uri; +``` + @@ -258,6 +270,24 @@ if google_identity: response = supabase.auth.unlink_identity(google_identity.identity_id) ``` + + +<$Show if="sdk:csharp"> + + +Use `CurrentUser.Identities` to get all the identities linked to a user. Then, call [`UnlinkIdentity()`](/docs/reference/csharp/unlink-identity) to unlink the identity. The user needs to be logged in and have at least 2 linked identities in order to unlink an existing identity. + +```c# +// get all identities linked to the user +var identities = supabase.Auth.CurrentUser.Identities; + +// find the google identity linked to the user +var googleIdentity = identities.First(x => x.Provider == "google"); + +// unlink the google identity from the user +await supabase.Auth.UnlinkIdentity(googleIdentity); +``` + diff --git a/apps/docs/content/guides/auth/debugging/error-codes.mdx b/apps/docs/content/guides/auth/debugging/error-codes.mdx index 9e0b429fcfca3..9d738585ac30a 100644 --- a/apps/docs/content/guides/auth/debugging/error-codes.mdx +++ b/apps/docs/content/guides/auth/debugging/error-codes.mdx @@ -76,6 +76,17 @@ Rest exceptions are split into a few classes: All instances and subclasses of a `AuthRestException` have a `errorCode` property that can be used to identify the error returned by the server. + + +<$Show if="sdk:csharp"> + +All exceptions originating from the `supabase.Auth` namespace of the C# client library are wrapped by the `GotrueException` class. + +`GotrueException` exposes: + +- `StatusCode` -- the HTTP status code returned by the Supabase Auth API. +- `Reason` -- a `FailureHint.Reason` value that categorizes the error, so you can branch on it without parsing the message. + diff --git a/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx b/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx index bcf19cffc8177..c839c206fee9b 100644 --- a/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx +++ b/apps/docs/content/guides/auth/enterprise-sso/auth-sso-saml.mdx @@ -244,6 +244,18 @@ supabase.auth.signInWith(SSO) { Calling [`signInWith(SSO)`](/docs/reference/kotlin/auth-signinwithsso) starts the sign-in process using the identity provider registered for the `company.com` domain name. It is not required that identity providers be assigned one or multiple domain names, in which case you can use the provider's unique ID instead. + + +<$Show if="sdk:csharp"> + + +```c# +var response = await supabase.Auth.SignInWithSSO("company.com"); +var ssoUrl = response.Uri; +``` + +Calling [`SignInWithSSO`](/docs/reference/csharp/sign-in-with-sso) starts the sign-in process using the identity provider registered for the `company.com` domain name. It is not required that identity providers be assigned one or multiple domain names, in which case you can use the provider's unique ID instead. + diff --git a/apps/docs/content/guides/auth/managing-user-data.mdx b/apps/docs/content/guides/auth/managing-user-data.mdx index d703563143c83..92fdf3789f7dc 100644 --- a/apps/docs/content/guides/auth/managing-user-data.mdx +++ b/apps/docs/content/guides/auth/managing-user-data.mdx @@ -137,6 +137,22 @@ val data = supabase.auth.signUpWith(Email) { } ``` + + +<$Show if="sdk:csharp"> + + +```c# +var session = await supabase.Auth.SignUp("valid.email@supabase.io", "example-password", new SignUpOptions +{ + Data = new Dictionary + { + { "first_name", "John" }, + { "age", 27 } + } +}); +``` + @@ -194,6 +210,16 @@ val user = supabase.auth.currentUserOrNull() val metadata = user?.userMetadata ``` + + +<$Show if="sdk:csharp"> + + +```c# +var user = supabase.Auth.CurrentUser; +var metadata = user?.UserMetadata; +``` + diff --git a/apps/docs/content/guides/auth/passwords.mdx b/apps/docs/content/guides/auth/passwords.mdx index 2bd2294449645..c1ff484751b29 100644 --- a/apps/docs/content/guides/auth/passwords.mdx +++ b/apps/docs/content/guides/auth/passwords.mdx @@ -142,6 +142,18 @@ data = await supabase.auth.sign_up({ }) ``` + + +<$Show if="sdk:csharp"> + + +To sign up the user, call [`SignUp()`](/docs/reference/csharp/sign-up) with their email address and password. You can optionally specify a URL to redirect to after the user clicks the confirmation link. + +```c# +var options = new SignUpOptions { RedirectTo = "https://example.com/welcome" }; +var session = await supabase.Auth.SignUp("valid.email@supabase.io", "example-password", options); +``` + @@ -476,6 +488,17 @@ data = supabase.auth.sign_up({ }) ``` + + +<$Show if="sdk:csharp"> + + +To sign up the user, call [`SignUp()`](/docs/reference/csharp/sign-up) with their email address and password: + +```c# +var session = await supabase.Auth.SignUp("valid.email@supabase.io", "example-password"); +``` + @@ -569,6 +592,17 @@ data = client.auth.sign_in_with_password({ }) ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-password) with their email address and password: + +```c# +var session = await supabase.Auth.SignIn("valid.email@supabase.io", "example-password"); +``` + @@ -658,6 +692,19 @@ await supabase.auth.resetPasswordForEmail( ); ``` + + +<$Show if="sdk:csharp"> + + +```c# +var options = new ResetPasswordForEmailOptions("valid.email@supabase.io") +{ + RedirectTo = "http://example.com/account/update-password", +}; +await supabase.Auth.ResetPasswordForEmail(options); +``` + @@ -962,6 +1009,15 @@ supabase.auth.reset_password_email('valid.email@supabase.io') await supabase.auth.resetPasswordForEmail('valid.email@supabase.io'); ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Auth.ResetPasswordForEmail("valid.email@supabase.io"); +``` + @@ -1029,6 +1085,15 @@ final UserResponse res = await supabase.auth.updateUser( ); ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Auth.Update(new UserAttributes { Password = "new_password" }); +``` + @@ -1185,6 +1250,15 @@ final AuthResponse res = await supabase.auth.signUp( ); ``` + + +<$Show if="sdk:csharp"> + + +```c# +var session = await supabase.Auth.SignUp(SignUpType.Phone, "+13334445555", "some-password"); +``` + @@ -1290,6 +1364,15 @@ final AuthResponse res = await supabase.auth.verifyOTP( ); ``` + + +<$Show if="sdk:csharp"> + + +```c# +var session = await supabase.Auth.VerifyOTP("+13334445555", "123456", MobileOtpType.SMS); +``` + @@ -1380,6 +1463,15 @@ final AuthResponse res = await supabase.auth.signInWithPassword( ); ``` + + +<$Show if="sdk:csharp"> + + +```c# +var session = await supabase.Auth.SignIn(SignInType.Phone, "+13334445555", "some-password"); +``` + diff --git a/apps/docs/content/guides/auth/phone-login.mdx b/apps/docs/content/guides/auth/phone-login.mdx index 7e450eb4b2f30..7700b558b681a 100644 --- a/apps/docs/content/guides/auth/phone-login.mdx +++ b/apps/docs/content/guides/auth/phone-login.mdx @@ -98,6 +98,15 @@ response = supabase.auth.sign_in_with_otp({ }) ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Auth.SignIn(SignInType.Phone, "+13334445555"); +``` + @@ -191,6 +200,17 @@ response = supabase.auth.verify_otp({ }) ``` + + +<$Show if="sdk:csharp"> + + +You should present a form to the user so they can input the 6 digit pin, then send it along with the phone number to `VerifyOTP`: + +```c# +var session = await supabase.Auth.VerifyOTP("+13334445555", "123456", MobileOtpType.SMS); +``` + @@ -280,6 +300,15 @@ response = supabase.auth.update_user({ }) ``` + + +<$Show if="sdk:csharp"> + + +```c# +var response = await supabase.Auth.Update(new UserAttributes { Phone = "123456789" }); +``` + diff --git a/apps/docs/content/guides/auth/signout.mdx b/apps/docs/content/guides/auth/signout.mdx index a5834f284ebeb..dd932904e60bc 100644 --- a/apps/docs/content/guides/auth/signout.mdx +++ b/apps/docs/content/guides/auth/signout.mdx @@ -66,6 +66,15 @@ suspend fun logout() { supabase.auth.sign_out() ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Auth.SignOut(); +``` + @@ -127,6 +136,19 @@ await supabase.auth.signOut(); supabase.auth.signOut(SignOutScope.GLOBAL) ``` + + +<$Show if="sdk:csharp"> + + +```c# +// defaults to the global scope +await supabase.Auth.SignOut(); + +// sign out from the current session only +await supabase.Auth.SignOut(SignOutScope.Local); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-azure.mdx b/apps/docs/content/guides/auth/social-login/auth-azure.mdx index d56fbcf4298c2..5d0dd8a3b6033 100644 --- a/apps/docs/content/guides/auth/social-login/auth-azure.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-azure.mdx @@ -207,6 +207,18 @@ suspend fun signInWithAzure() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Azure` as the provider. Request the `email` scope: + +```c# +var state = await supabase.Auth.SignIn(Provider.Azure, new SignInOptions { Scopes = "email" }); +var signInUrl = state.Uri; +``` + @@ -258,6 +270,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + @@ -315,6 +338,16 @@ suspend fun signInWithAzure() { } ``` + + +<$Show if="sdk:csharp"> + + +```c# +var state = await supabase.Auth.SignIn(Provider.Azure, new SignInOptions { Scopes = "offline_access" }); +var signInUrl = state.Uri; +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-bitbucket.mdx b/apps/docs/content/guides/auth/social-login/auth-bitbucket.mdx index e0fbb356f8953..45c9dc8a3b299 100644 --- a/apps/docs/content/guides/auth/social-login/auth-bitbucket.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-bitbucket.mdx @@ -100,6 +100,18 @@ suspend fun signInWithBitbucket() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Bitbucket` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Bitbucket); +var signInUrl = state.Uri; +``` + @@ -151,6 +163,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-discord.mdx b/apps/docs/content/guides/auth/social-login/auth-discord.mdx index 4f34e09facda2..b35c4d2fac02c 100644 --- a/apps/docs/content/guides/auth/social-login/auth-discord.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-discord.mdx @@ -117,6 +117,18 @@ suspend fun signInWithDiscord() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Discord` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Discord); +var signInUrl = state.Uri; +``` + @@ -170,6 +182,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-facebook.mdx b/apps/docs/content/guides/auth/social-login/auth-facebook.mdx index 05c9b31f22668..2ebb3a8fd1971 100644 --- a/apps/docs/content/guides/auth/social-login/auth-facebook.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-facebook.mdx @@ -259,6 +259,18 @@ suspend fun signInWithFacebook() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Facebook` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Facebook); +var signInUrl = state.Uri; +``` + @@ -330,6 +342,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-figma.mdx b/apps/docs/content/guides/auth/social-login/auth-figma.mdx index 1204263579cf9..1c3a0864d31c4 100644 --- a/apps/docs/content/guides/auth/social-login/auth-figma.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-figma.mdx @@ -100,6 +100,18 @@ suspend fun signInWithFigma() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Figma` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Figma); +var signInUrl = state.Uri; +``` + @@ -151,6 +163,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-github.mdx b/apps/docs/content/guides/auth/social-login/auth-github.mdx index 88839c3a01ca0..7a0605c2572cf 100644 --- a/apps/docs/content/guides/auth/social-login/auth-github.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-github.mdx @@ -128,6 +128,18 @@ suspend fun signInWithGithub() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Github` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Github); +var signInUrl = state.Uri; +``` + @@ -179,6 +191,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-gitlab.mdx b/apps/docs/content/guides/auth/social-login/auth-gitlab.mdx index e6974a4ddbfe1..3b187fc18aca4 100644 --- a/apps/docs/content/guides/auth/social-login/auth-gitlab.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-gitlab.mdx @@ -97,6 +97,18 @@ suspend fun signInWithGitLab() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Gitlab` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Gitlab); +var signInUrl = state.Uri; +``` + @@ -148,6 +160,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-kakao.mdx b/apps/docs/content/guides/auth/social-login/auth-kakao.mdx index dc228ac5ccf8d..73efc6fdb48a4 100644 --- a/apps/docs/content/guides/auth/social-login/auth-kakao.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-kakao.mdx @@ -143,6 +143,18 @@ suspend fun signInWithKakao() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Kakao` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Kakao); +var signInUrl = state.Uri; +``` + @@ -189,6 +201,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-keycloak.mdx b/apps/docs/content/guides/auth/social-login/auth-keycloak.mdx index 16996d93fcfd4..2d94a3146b784 100644 --- a/apps/docs/content/guides/auth/social-login/auth-keycloak.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-keycloak.mdx @@ -120,6 +120,18 @@ suspend fun signInWithKeycloak() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.KeyCloak` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.KeyCloak, new SignInOptions { Scopes = "openid" }); +var signInUrl = state.Uri; +``` + @@ -170,6 +182,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx b/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx index e80d89cb7aac9..fdbf6a2df1339 100644 --- a/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx @@ -120,6 +120,18 @@ suspend fun signInWithKaLinkedIn() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.LinkedInOIDC` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.LinkedInOIDC); +var signInUrl = state.Uri; +``` + @@ -171,6 +183,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-notion.mdx b/apps/docs/content/guides/auth/social-login/auth-notion.mdx index 0dfaed05f6f4d..6eb346f9aa309 100644 --- a/apps/docs/content/guides/auth/social-login/auth-notion.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-notion.mdx @@ -100,6 +100,18 @@ suspend fun signInWithNotion() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Notion` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Notion); +var signInUrl = state.Uri; +``` + @@ -151,6 +163,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-slack.mdx b/apps/docs/content/guides/auth/social-login/auth-slack.mdx index 86342c537e82e..bf1da8d588640 100644 --- a/apps/docs/content/guides/auth/social-login/auth-slack.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-slack.mdx @@ -136,6 +136,18 @@ suspend fun signInWithSlack() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Slack` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Slack); +var signInUrl = state.Uri; +``` + @@ -187,6 +199,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-spotify.mdx b/apps/docs/content/guides/auth/social-login/auth-spotify.mdx index f3eced1be8fc3..0c23a338041e4 100644 --- a/apps/docs/content/guides/auth/social-login/auth-spotify.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-spotify.mdx @@ -130,6 +130,18 @@ suspend fun signInWithSpotify() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Spotify` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Spotify); +var signInUrl = state.Uri; +``` + @@ -181,6 +193,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-twitch.mdx b/apps/docs/content/guides/auth/social-login/auth-twitch.mdx index 370dd8ff34211..a2d52a41387b7 100644 --- a/apps/docs/content/guides/auth/social-login/auth-twitch.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-twitch.mdx @@ -115,6 +115,18 @@ suspend fun signInWithTwitch() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Twitch` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Twitch); +var signInUrl = state.Uri; +``` + @@ -166,6 +178,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-twitter.mdx b/apps/docs/content/guides/auth/social-login/auth-twitter.mdx index e5be7d9475eb0..871e48fd17be3 100644 --- a/apps/docs/content/guides/auth/social-login/auth-twitter.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-twitter.mdx @@ -146,6 +146,18 @@ suspend fun signInWithX() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Twitter` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Twitter); +var signInUrl = state.Uri; +``` + @@ -210,6 +222,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/auth/social-login/auth-zoom.mdx b/apps/docs/content/guides/auth/social-login/auth-zoom.mdx index 5f7ddbdfec2aa..ceea61c6ab88d 100644 --- a/apps/docs/content/guides/auth/social-login/auth-zoom.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-zoom.mdx @@ -131,6 +131,18 @@ suspend fun signInWithZoom() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs in, call [`SignIn()`](/docs/reference/csharp/sign-in-with-oauth) with `Provider.Zoom` as the provider: + +```c# +var state = await supabase.Auth.SignIn(Provider.Zoom); +var signInUrl = state.Uri; +``` + @@ -182,6 +194,17 @@ suspend fun signOut() { } ``` + + +<$Show if="sdk:csharp"> + + +When your user signs out, call [SignOut()](/docs/reference/csharp/sign-out) to remove them from the browser session and any objects from local storage: + +```c# +await supabase.Auth.SignOut(); +``` + diff --git a/apps/docs/content/guides/database/arrays.mdx b/apps/docs/content/guides/database/arrays.mdx index c185c08e352e8..cf9639fadcb1c 100644 --- a/apps/docs/content/guides/database/arrays.mdx +++ b/apps/docs/content/guides/database/arrays.mdx @@ -116,6 +116,29 @@ supabase.from_('arraytest').insert( .execute() ``` + + +<$Show if="sdk:csharp"> + + +Insert a record from the C# client: + +```c# +[Table("arraytest")] +class ArrayTest : BaseModel +{ + [PrimaryKey("id", false)] + public int Id { get; set; } + + [Column("textarray")] + public List Textarray { get; set; } +} + +await supabase + .From() + .Insert(new ArrayTest { Id = 2, Textarray = new List { "one", "two", "three", "four" } }); +``` + @@ -232,6 +255,20 @@ returns: ] ``` + + +<$Show if="sdk:csharp"> + + +This returns the entire array field: + +```c# +var result = await supabase + .From() + .Select(x => new object[] { x.Textarray }) + .Get(); +``` + diff --git a/apps/docs/content/guides/database/extensions/plv8.mdx b/apps/docs/content/guides/database/extensions/plv8.mdx index 219f98acc8119..ae6e896b6ac7e 100644 --- a/apps/docs/content/guides/database/extensions/plv8.mdx +++ b/apps/docs/content/guides/database/extensions/plv8.mdx @@ -97,6 +97,15 @@ const { data, error } = supabase.rpc('function_name') val data = supabase.postgrest.rpc("function_name") ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("function_name", null); +``` + diff --git a/apps/docs/content/guides/database/extensions/postgis.mdx b/apps/docs/content/guides/database/extensions/postgis.mdx index c02e5f9c9ae6b..6d3e077f1eb0a 100644 --- a/apps/docs/content/guides/database/extensions/postgis.mdx +++ b/apps/docs/content/guides/database/extensions/postgis.mdx @@ -188,6 +188,37 @@ val data = supabase.from("restaurants").insert(listOf( )) ``` + + +<$Show if="sdk:csharp"> + + +```c# +[Table("restaurants")] +class Restaurant : BaseModel +{ + [PrimaryKey("id", false)] + public long Id { get; set; } + + [Column("name")] + public string Name { get; set; } + + [Column("location")] + public string Location { get; set; } +} +``` + +```c# +var restaurants = new List +{ + new Restaurant { Name = "Supa Burger", Location = "POINT(-73.946823 40.807416)" }, + new Restaurant { Name = "Supa Pizza", Location = "POINT(-73.94581 40.807475)" }, + new Restaurant { Name = "Supa Taco", Location = "POINT(-73.945826 40.80629)" } +}; + +await supabase.From().Insert(restaurants); +``` + @@ -293,6 +324,19 @@ val data = supabase.postgrest.rpc( ) ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("nearby_restaurants", new Dictionary +{ + { "lat", 40.807313 }, + { "long", -73.946713 } +}); +``` + @@ -425,6 +469,21 @@ val data = supabase.postgrest.rpc( ) ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("restaurants_in_view", new Dictionary +{ + { "min_lat", 40.807 }, + { "min_long", -73.946 }, + { "max_lat", 40.808 }, + { "max_long", -73.945 } +}); +``` + diff --git a/apps/docs/content/guides/database/full-text-search.mdx b/apps/docs/content/guides/database/full-text-search.mdx index 5104d8bb33c8d..43dffce603190 100644 --- a/apps/docs/content/guides/database/full-text-search.mdx +++ b/apps/docs/content/guides/database/full-text-search.mdx @@ -171,6 +171,18 @@ val data = supabase.from("books").select { data = supabase.from_('books').select().eq('title', 'Harry').execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Where(x => x.Title == "Harry") + .Get(); +``` + @@ -235,6 +247,18 @@ val data = supabase.from("books").select { } ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("title", Operator.FTS, new FullTextSearchConfig("'Harry'", null)) + .Get(); +``` + @@ -316,6 +340,18 @@ val data = supabase.from("books").select { data = supabase.from_('books').select().text_search('description', "'big'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.FTS, new FullTextSearchConfig("'big'", null)) + .Get(); +``` + @@ -444,6 +480,24 @@ $$ language sql immutable; data = supabase.from_('books').select().text_search('title_description', "little").execute() ``` + + +<$Show if="sdk:csharp"> + + +```sql +create function title_description(books) returns text as $$ + select $1.title || ' ' || $1.description; +$$ language sql immutable; +``` + +```c# +var result = await supabase + .From() + .Filter("title_description", Operator.FTS, new FullTextSearchConfig("little", null)) + .Get(); +``` + @@ -539,6 +593,18 @@ val data = supabase.from("books").select { data = supabase.from_('books').select().text_search('description', "'little' & 'big'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.FTS, new FullTextSearchConfig("'little' & 'big'", null)) + .Get(); +``` + @@ -633,6 +699,18 @@ val data = supabase.from("books").select { response = client.from_('books').select().text_search('description', "'little' | 'big'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.FTS, new FullTextSearchConfig("'little' | 'big'", null)) + .Get(); +``` + @@ -735,6 +813,15 @@ val result = supabase.postgrest.rpc("search_books_by_title_prefix", rpcParams) data = client.rpc('search_books_by_title_prefix', { 'prefix': 'Lit' }).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("search_books_by_title_prefix", new Dictionary { { "prefix", "Lit" } }); +``` + @@ -781,6 +868,18 @@ const { data, error } = await supabase ``` +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.WFTS, new FullTextSearchConfig("green eggs", null)) + .Get(); +``` + + + ### Quoted phrases @@ -949,6 +1048,18 @@ val data = supabase.from("books").select { data = client.from_('books').select().text_search('fts', "'little' & 'big'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("fts", Operator.FTS, new FullTextSearchConfig("'little' & 'big'", null)) + .Get(); +``` + @@ -1048,6 +1159,18 @@ val data = supabase.from("books").select { data = client.from_('books').select().text_search('description', "'big' <-> 'dreams'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.FTS, new FullTextSearchConfig("'big' <-> 'dreams'", null)) + .Get(); +``` + @@ -1128,6 +1251,18 @@ val data = supabase.from("books").select { data = client.from_('books').select().text_search('description', "'year' <2> 'school'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.FTS, new FullTextSearchConfig("'year' <2> 'school'", null)) + .Get(); +``` + @@ -1211,6 +1346,18 @@ val data = supabase.from("books").select { data = client.from_('books').select().text_search('description', "'big' & !'little'").execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Filter("description", Operator.FTS, new FullTextSearchConfig("'big' & !'little'", null)) + .Get(); +``` + @@ -1273,6 +1420,15 @@ final result = await client data = client.rpc('search_books', { 'search_query': 'big' }).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("search_books", new Dictionary { { "search_query", "big" } }); +``` + @@ -1398,6 +1554,19 @@ data = client.rpc('search_books_weighted', { 'search_query': 'Harry' }).execute( custom_data = client.rpc('search_books_custom_weights', { 'search_query': 'Harry' }).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +// Search with standard weighted ranking +await supabase.Rpc("search_books_weighted", new Dictionary { { "search_query", "Harry" } }); + +// Search with custom weights +await supabase.Rpc("search_books_custom_weights", new Dictionary { { "search_query", "Harry" } }); +``` + @@ -1474,6 +1643,15 @@ final result = await client data = client.rpc('search_books_fts', { 'search_query': 'little & big' }).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("search_books_fts", new Dictionary { { "search_query", "little & big" } }); +``` + @@ -1523,6 +1701,16 @@ const { data, error } = await supabase.rpc('websearch_books', { ``` +<$Show if="sdk:csharp"> + + +```c# +// Support natural search syntax +await supabase.Rpc("websearch_books", new Dictionary { { "search_text", "\"little puppy\" or train -vegetables" } }); +``` + + + ```sql diff --git a/apps/docs/content/guides/database/functions.mdx b/apps/docs/content/guides/database/functions.mdx index 3c9c3511177e2..e02dfed95a62d 100644 --- a/apps/docs/content/guides/database/functions.mdx +++ b/apps/docs/content/guides/database/functions.mdx @@ -134,6 +134,17 @@ data = supabase.rpc('hello_world').execute() Reference: [`rpc()`](../../reference/python/rpc) + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("hello_world", null); +``` + +Reference: [`Rpc()`](../../reference/csharp/rpc) + @@ -392,6 +403,15 @@ val data = supabase.postgrest.rpc( data = supabase.rpc('add_planet', params={'name': 'Jakku'}).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +await supabase.Rpc("add_planet", new Dictionary { { "name", "Jakku" } }); +``` + diff --git a/apps/docs/content/guides/database/joins-and-nesting.mdx b/apps/docs/content/guides/database/joins-and-nesting.mdx index f9b372ab7455a..efd989ff24619 100644 --- a/apps/docs/content/guides/database/joins-and-nesting.mdx +++ b/apps/docs/content/guides/database/joins-and-nesting.mdx @@ -178,6 +178,18 @@ val data = supabase.from("orchestral_sections").select(Columns.raw("id, name, in data = supabase.from_('orchestral_sections').select('id, name, instruments(id, name)').execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Select("id, name, instruments(id, name)") + .Get(); +``` + @@ -766,6 +778,18 @@ val data = supabase.from("teams").select(Columns.raw("id, team_name, users(id, n data = supabase.from_('teams').select('id, team_name, users(id, name)').execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Select("id, team_name, users(id, name)") + .Get(); +``` + @@ -982,6 +1006,30 @@ data = supabase.from_('shifts').select(""" """).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Select(@" + *, + start_scan:scans!scan_id_start ( + id, + user_id, + badge_scan_time + ), + end_scan:scans!scan_id_end ( + id, + user_id, + badge_scan_time + ) + ") + .Get(); +``` + diff --git a/apps/docs/content/guides/database/json.mdx b/apps/docs/content/guides/database/json.mdx index e419108716343..962ed08135bf0 100644 --- a/apps/docs/content/guides/database/json.mdx +++ b/apps/docs/content/guides/database/json.mdx @@ -390,6 +390,51 @@ supabase.from_('books').insert([ ]).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +[Table("books")] +class Book : BaseModel +{ + [Column("title")] + public string Title { get; set; } + + [Column("author")] + public string Author { get; set; } + + [Column("metadata")] + public BookMetadata Metadata { get; set; } +} + +class BookMetadata +{ + [JsonProperty("description")] + public string Description { get; set; } + + [JsonProperty("price")] + public double Price { get; set; } + + [JsonProperty("ages")] + public List Ages { get; set; } +} +``` + +```c# +var books = new List +{ + new Book { Title = "The Poky Little Puppy", Author = "Janette Sebring Lowrey", Metadata = new BookMetadata { Description = "Puppy is slower than other, bigger animals.", Price = 5.95, Ages = new List { 3, 6 } } }, + new Book { Title = "The Tale of Peter Rabbit", Author = "Beatrix Potter", Metadata = new BookMetadata { Description = "Rabbit eats some vegetables.", Price = 4.49, Ages = new List { 2, 5 } } }, + new Book { Title = "Tootle", Author = "Gertrude Crampton", Metadata = new BookMetadata { Description = "Little toy train has big dreams.", Price = 3.99, Ages = new List { 2, 5 } } }, + new Book { Title = "Green Eggs and Ham", Author = "Dr. Seuss", Metadata = new BookMetadata { Description = "Sam has changing food preferences and eats unusually colored food.", Price = 7.49, Ages = new List { 4, 8 } } }, + new Book { Title = "Harry Potter and the Goblet of Fire", Author = "J.K. Rowling", Metadata = new BookMetadata { Description = "Fourth year of school starts, big drama ensues.", Price = 24.95, Ages = new List { 10, 99 } } } +}; + +await supabase.From().Insert(books); +``` + @@ -482,6 +527,18 @@ data = supabase.from_('books').select(""" ).execute() ``` + + +<$Show if="sdk:csharp"> + + +```c# +var result = await supabase + .From() + .Select("title, description:metadata->>description, price:metadata->price, low_age:metadata->ages->0, high_age:metadata->ages->1") + .Get(); +``` + diff --git a/apps/docs/content/guides/database/tables.mdx b/apps/docs/content/guides/database/tables.mdx index 8a2e24b67500c..b185d17a19146 100644 --- a/apps/docs/content/guides/database/tables.mdx +++ b/apps/docs/content/guides/database/tables.mdx @@ -307,6 +307,44 @@ supabase )) ``` + + +<$Show if="sdk:csharp"> + + +```c# +[Table("movies")] +class Movie : BaseModel +{ + [PrimaryKey("id", false)] + public long Id { get; set; } + + [Column("name")] + public string Name { get; set; } + + [Column("description")] + public string Description { get; set; } +} +``` + +```c# +var movies = new List +{ + new Movie + { + Name = "The Empire Strikes Back", + Description = "After the Rebels are brutally overpowered by the Empire on the ice planet Hoth, Luke Skywalker begins Jedi training with Yoda." + }, + new Movie + { + Name = "Return of the Jedi", + Description = "After a daring mission to rescue Han Solo from Jabba the Hutt, the Rebels dispatch to Endor to destroy the second Death Star." + } +}; + +await supabase.From().Insert(movies); +``` + diff --git a/apps/docs/content/guides/getting-started/quickstarts/astrojs.mdx b/apps/docs/content/guides/getting-started/quickstarts/astrojs.mdx index 34167ca1d6e71..9608dee6f51f2 100644 --- a/apps/docs/content/guides/getting-started/quickstarts/astrojs.mdx +++ b/apps/docs/content/guides/getting-started/quickstarts/astrojs.mdx @@ -17,10 +17,12 @@ npm create astro@latest my-app cd my-app ``` -## 4. Install Agent Skills (optional) +## 4. Install Supabase's Agent Skills (optional) Supabase's [Agent Skills](/docs/guides/ai-tools/ai-skills) is a curated set of instructions that give your AI agent procedural knowledge about working with Supabase. +Install them so your AI coding agent can produce more accurate, reliable code using current Supabase patterns, such as authentication, server-side rendering, and database migrations, rather than relying solely on training data. + To install, run the following command in the root of your project: ```bash @@ -53,7 +55,7 @@ export default defineConfig({ ## 7. Declare Supabase environment variables -Create a `.env.local` file and populate with your Supabase connection variables that you can get from the helper below, or [from the project **Connect** panel](/dashboard/project/_?showConnect=true&framework=astro&tab=frameworks): +Create a `.env.local` file and populate with your Supabase connection variables that you can get from the helper below, or [from the project **Connect** panel](/dashboard/project/_?showConnect=true&framework=astro&connectTab=frameworks):
+

+ See every session on your database in real time, spot the ones that are slow, idle in a + transaction, or blocked, and terminate the one holding things up - all from{' '} + + Database Connections + + . +

+ + database-connections-preview + +
+

Enabling this preview will:

+ +
+
+ ) +} diff --git a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewContext.tsx b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewContext.tsx index 63541a53ed40f..a0aaea6f28e3d 100644 --- a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewContext.tsx +++ b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewContext.tsx @@ -139,6 +139,12 @@ export const useIsMarketplaceEnabled = () => { return isMarketplaceEnabled && flags[LOCAL_STORAGE_KEYS.UI_PREVIEW_MARKETPLACE] } +export const useIsDatabaseConnectionsEnabled = () => { + const { flags } = useFeaturePreviewContext() + const isDatabaseConnectionsEnabled = useFlag('topForPostgres') + return isDatabaseConnectionsEnabled && flags[LOCAL_STORAGE_KEYS.UI_PREVIEW_DATABASE_CONNECTIONS] +} + export const useFeaturePreviewModal = () => { const featurePreviews = useFeaturePreviews() const [featurePreviewModal, setFeaturePreviewModal] = useQueryState('featurePreviewModal') diff --git a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx index 5453e536903fe..c6134343abbfa 100644 --- a/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx +++ b/apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx @@ -5,6 +5,10 @@ import { useRouter } from 'next/router' import { ReactNode } from 'react' import { toast } from 'sonner' import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, Badge, Button, cn, @@ -29,6 +33,7 @@ import { import { AdvisorRulesPreview } from './AdvisorRulesPreview' import { CLSPreview } from './CLSPreview' +import { DatabaseConnectionsPreview } from './DatabaseConnectionsPreview' import { useFeaturePreviewContext, useFeaturePreviewModal } from './FeaturePreviewContext' import { IntegrationsLayoutPreview } from './IntegrationsLayoutPreview' import { JitDbAccessPreview } from './JitDbAccessPreview' @@ -37,6 +42,7 @@ import { PlatformWebhooksPreview } from './PlatformWebhooksPreview' import { SqlEditorManualSavePreview } from './SqlEditorManualSavePreview' import { UnifiedLogsPreview } from './UnifiedLogsPreview' import { FeaturePreview, useFeaturePreviews } from './useFeaturePreviews' +import { useBannerStack } from '@/components/ui/BannerStack/BannerStackProvider' import { IS_PLATFORM } from '@/lib/constants' import { useTrack } from '@/lib/telemetry/track' @@ -51,11 +57,13 @@ const FEATURE_PREVIEW_KEY_TO_CONTENT: { [LOCAL_STORAGE_KEYS.UI_PREVIEW_JIT_DB_ACCESS]: , [LOCAL_STORAGE_KEYS.UI_PREVIEW_SQL_EDITOR_MANUAL_SAVE]: , [LOCAL_STORAGE_KEYS.UI_PREVIEW_MARKETPLACE]: , + [LOCAL_STORAGE_KEYS.UI_PREVIEW_DATABASE_CONNECTIONS]: , } export const FeaturePreviewModal = () => { const router = useRouter() const { ref } = useParams() + const { dismissBanner } = useBannerStack() const featurePreviews = useFeaturePreviews() const { showFeaturePreviewModal, @@ -79,6 +87,10 @@ export const FeaturePreviewModal = () => { const selectedFeatureRoute = selectedFeature?.getRoute?.(ref) const hasRoute = selectedFeatureRoute !== undefined && ref !== undefined + const categories = ( + [...new Set(allFeaturePreviews.map((preview) => preview.category).filter(Boolean))] as string[] + ).concat(['others']) + const toggleFeature = () => { if (!selectedFeature) return @@ -94,13 +106,18 @@ export const FeaturePreviewModal = () => { return } - toggleFeaturePreviewModal(false) if (hasRoute) { + // Navigating away drops the `featurePreviewModal` query param, which is + // what closes the modal. Don't also close it via + // toggleFeaturePreviewModal — its queued nuqs URL update races the push + // and can navigate back to the current page, swallowing the redirect. router.push(selectedFeatureRoute) toast.success(`${selectedFeature.name} enabled`, { description: "We've taken you to where you can try it out.", }) + if (selectedFeature.bannerId) dismissBanner(selectedFeature.bannerId) } else { + toggleFeaturePreviewModal(false) toast.success(`${selectedFeature.name} enabled`, { description: "It's now active across the dashboard.", }) @@ -122,14 +139,44 @@ export const FeaturePreviewModal = () => {
- {allFeaturePreviews.map((feature) => ( + + {categories.map((category) => { + const items = + category === 'others' + ? allFeaturePreviews.filter((x) => x.category === undefined) + : allFeaturePreviews.filter((x) => x.category === category) + return ( + + + {category} + + + {items.map((feature) => ( + + ))} + + + ) + })} + + + {/* {allFeaturePreviews.map((feature) => ( - ))} + ))} */}
diff --git a/apps/studio/components/interfaces/App/FeaturePreview/useFeaturePreviews.ts b/apps/studio/components/interfaces/App/FeaturePreview/useFeaturePreviews.ts index 65be8e9df458b..da9c80cf2ba73 100644 --- a/apps/studio/components/interfaces/App/FeaturePreview/useFeaturePreviews.ts +++ b/apps/studio/components/interfaces/App/FeaturePreview/useFeaturePreviews.ts @@ -1,6 +1,8 @@ import { LOCAL_STORAGE_KEYS, useFlag } from 'common' import { useMemo } from 'react' +import { type BannerId } from '@/components/ui/BannerStack/BannerStackProvider' + export type FeaturePreview = { key: string name: string @@ -12,110 +14,129 @@ export type FeaturePreview = { isDefaultOptIn: boolean /** Visibility in the feature preview modal (For feature flagging a feature preview) */ enabled: boolean + /** Optional category that the feature preview falls under, defaults to "Others" in the UI otherwise */ + category?: 'observability' | 'database' /** * Where to send the user after enabling, to try the feature out. Omit if the * feature has no single destination (e.g. a global layout change). */ getRoute?: (ref?: string) => string + bannerId?: BannerId } export const useFeaturePreviews = (): FeaturePreview[] => { - const platformWebhooksEnabled = useFlag('platformWebhooks') + const isPlatformWebhooksEnabled = useFlag('platformWebhooks') const jitDbAccessEnabled = useFlag('jitDbAccess') const isMarketplaceEnabled = useFlag('marketplaceIntegrations') - const sqlEditorManualSaveEnabled = useFlag('sqlEditorManualSave') + const isSqlEditorManualSaveEnabled = useFlag('sqlEditorManualSave') + const isDatabaseConnectionsEnabled = useFlag('topForPostgres') const unifiedLogsDefaultOptIn = useFlag('unifiedLogsDefaultOptIn') - return useMemo( - () => - [ - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_UNIFIED_LOGS, - name: 'Updated Logs interface', - discussionsUrl: 'https://github.com/orgs/supabase/discussions/37234', - enabled: true, - isNew: true, - isPlatformOnly: true, - isDefaultOptIn: unifiedLogsDefaultOptIn, - getRoute: (ref?: string) => `/project/${ref}/logs`, - }, - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_ADVISOR_RULES, - name: 'Disable Advisor rules', - discussionsUrl: undefined, - enabled: true, - isNew: false, - isPlatformOnly: true, - isDefaultOptIn: false, - getRoute: (ref?: string) => `/project/${ref}/advisors/rules/security`, - }, - - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_PG_DELTA_DIFF, - name: 'PG Delta Diff', - discussionsUrl: undefined, - isNew: false, - isPlatformOnly: true, - isDefaultOptIn: true, - enabled: true, - }, - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_PLATFORM_WEBHOOKS, - name: 'Platform webhooks', - discussionsUrl: undefined, - isNew: true, - isPlatformOnly: true, - isDefaultOptIn: false, - enabled: platformWebhooksEnabled, - getRoute: (ref?: string) => `/project/${ref}/settings/webhooks`, - }, - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_JIT_DB_ACCESS, - name: 'Temporary access', - discussionsUrl: undefined, - isNew: true, - isPlatformOnly: true, - isDefaultOptIn: false, - enabled: jitDbAccessEnabled, - getRoute: (ref?: string) => `/project/${ref}/database/settings`, - }, - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_CLS, - name: 'Column-level privileges', - discussionsUrl: 'https://github.com/orgs/supabase/discussions/20295', - enabled: true, - isNew: false, - isPlatformOnly: false, - isDefaultOptIn: false, - getRoute: (ref?: string) => `/project/${ref}/database/column-privileges`, - }, - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_MARKETPLACE, - name: 'One-Click Integrations', - discussionsUrl: undefined, - enabled: isMarketplaceEnabled, - isNew: true, - isPlatformOnly: false, - isDefaultOptIn: true, - getRoute: (ref?: string) => `/project/${ref}/integrations`, - }, - { - key: LOCAL_STORAGE_KEYS.UI_PREVIEW_SQL_EDITOR_MANUAL_SAVE, - name: 'Disable snippet auto-saving', - discussionsUrl: undefined, - isNew: true, - isPlatformOnly: true, - isDefaultOptIn: false, - enabled: sqlEditorManualSaveEnabled, - }, - ].sort((a, b) => Number(b.isNew) - Number(a.isNew)), - [ - unifiedLogsDefaultOptIn, - platformWebhooksEnabled, - jitDbAccessEnabled, - isMarketplaceEnabled, - sqlEditorManualSaveEnabled, + return useMemo(() => { + const previews: FeaturePreview[] = [ + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_UNIFIED_LOGS, + name: 'Updated Logs interface', + category: 'observability', + discussionsUrl: 'https://github.com/orgs/supabase/discussions/37234', + enabled: true, + isNew: true, + isPlatformOnly: true, + isDefaultOptIn: unifiedLogsDefaultOptIn, + getRoute: (ref?: string) => `/project/${ref}/logs`, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_ADVISOR_RULES, + name: 'Disable Advisor rules', + discussionsUrl: undefined, + enabled: true, + isNew: false, + isPlatformOnly: true, + isDefaultOptIn: false, + getRoute: (ref?: string) => `/project/${ref}/advisors/rules/security`, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_PG_DELTA_DIFF, + name: 'PG Delta Diff', + discussionsUrl: undefined, + isNew: false, + isPlatformOnly: true, + isDefaultOptIn: true, + enabled: true, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_PLATFORM_WEBHOOKS, + name: 'Platform webhooks', + discussionsUrl: undefined, + isNew: false, + isPlatformOnly: true, + isDefaultOptIn: false, + enabled: isPlatformWebhooksEnabled, + getRoute: (ref?: string) => `/project/${ref}/settings/webhooks`, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_JIT_DB_ACCESS, + name: 'Temporary database access', + category: 'database', + discussionsUrl: undefined, + isNew: false, + isPlatformOnly: true, + isDefaultOptIn: false, + enabled: jitDbAccessEnabled, + getRoute: (ref?: string) => `/project/${ref}/database/settings`, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_CLS, + name: 'Column-level privileges', + category: 'database', + discussionsUrl: 'https://github.com/orgs/supabase/discussions/20295', + enabled: true, + isNew: false, + isPlatformOnly: false, + isDefaultOptIn: false, + getRoute: (ref?: string) => `/project/${ref}/database/column-privileges`, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_MARKETPLACE, + name: 'One-Click Integrations', + discussionsUrl: undefined, + enabled: isMarketplaceEnabled, + isNew: true, + isPlatformOnly: false, + isDefaultOptIn: true, + getRoute: (ref?: string) => `/project/${ref}/integrations`, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_SQL_EDITOR_MANUAL_SAVE, + name: 'Disable snippet auto-saving', + discussionsUrl: undefined, + isNew: true, + isPlatformOnly: true, + isDefaultOptIn: false, + enabled: isSqlEditorManualSaveEnabled, + }, + { + key: LOCAL_STORAGE_KEYS.UI_PREVIEW_DATABASE_CONNECTIONS, + name: 'Diagnose blocked queries', + category: 'observability', + discussionsUrl: 'https://github.com/orgs/supabase/discussions/48639', + isNew: true, + isPlatformOnly: false, + isDefaultOptIn: false, + enabled: isDatabaseConnectionsEnabled, + getRoute: (ref?: string) => `/project/${ref}/observability/connections`, + bannerId: 'database-connections-banner', + }, ] - ) + + return previews.sort((a, b) => Number(b.isNew) - Number(a.isNew)) + }, [ + unifiedLogsDefaultOptIn, + isPlatformWebhooksEnabled, + jitDbAccessEnabled, + isMarketplaceEnabled, + isSqlEditorManualSaveEnabled, + isDatabaseConnectionsEnabled, + ]) } diff --git a/apps/studio/components/interfaces/Billing/Subscription/Subscription.utils.ts b/apps/studio/components/interfaces/Billing/Subscription/Subscription.utils.ts index 1b1536bce61b2..a97104d3163bc 100644 --- a/apps/studio/components/interfaces/Billing/Subscription/Subscription.utils.ts +++ b/apps/studio/components/interfaces/Billing/Subscription/Subscription.utils.ts @@ -22,8 +22,6 @@ export const billingPartnerLabel = (billingPartner?: string) => { if (!billingPartner) return billingPartner switch (billingPartner) { - case 'fly': - return 'Fly.io' case 'aws': return 'AWS' case 'vercel_marketplace': diff --git a/apps/studio/components/interfaces/Database/Backups/DatabaseBackupsNav.tsx b/apps/studio/components/interfaces/Database/Backups/DatabaseBackupsNav.tsx index dee242222e112..3afc8d9edc44f 100644 --- a/apps/studio/components/interfaces/Database/Backups/DatabaseBackupsNav.tsx +++ b/apps/studio/components/interfaces/Database/Backups/DatabaseBackupsNav.tsx @@ -9,7 +9,7 @@ type Props = { } function DatabaseBackupsNav({ active }: Props) { - const { ref, cloud_provider } = useSelectedProjectQuery()?.data || {} + const { ref } = useSelectedProjectQuery()?.data || {} const { databaseRestoreToNewProject } = useIsFeatureEnabled(['database:restore_to_new_project']) const navMenuItems = [ @@ -26,7 +26,7 @@ function DatabaseBackupsNav({ active }: Props) { href: `/project/${ref}/database/backups/pitr`, }, { - enabled: databaseRestoreToNewProject && cloud_provider !== 'FLY', + enabled: databaseRestoreToNewProject, id: 'rtnp', label: (
diff --git a/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx b/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx index b16f953cf4502..74458383ac0e5 100644 --- a/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx +++ b/apps/studio/components/interfaces/Database/Extensions/EnableExtensionModal.tsx @@ -157,23 +157,6 @@ export const EnableExtensionModal = ({ )} - {extension.name === 'pg_cron' && project?.cloud_provider === 'FLY' && ( - -

- You can still enable the extension, but pg_cron jobs may not run due to the behavior - of Fly projects. -

- -
- )} -
diff --git a/apps/studio/components/interfaces/Database/Replication/DestinationIcon.test.tsx b/apps/studio/components/interfaces/Database/Replication/DestinationIcon.test.tsx new file mode 100644 index 0000000000000..d530bd3580103 --- /dev/null +++ b/apps/studio/components/interfaces/Database/Replication/DestinationIcon.test.tsx @@ -0,0 +1,22 @@ +import { render } from '@testing-library/react' +import { describe, expect, test } from 'vitest' + +import { DestinationIcon } from './DestinationIcon' +import type { DestinationType } from './DestinationPanel/DestinationPanel.types' + +const DESTINATION_TYPES: DestinationType[] = [ + 'Read Replica', + 'BigQuery', + 'Analytics Bucket', + 'DuckLake', + 'Snowflake', + 'ClickHouse', +] + +describe('DestinationIcon', () => { + test.each(DESTINATION_TYPES)('renders %s at the canonical stroke width', (type) => { + const { container } = render() + + expect(container.querySelector('svg')).toHaveAttribute('stroke-width', '1.5') + }) +}) diff --git a/apps/studio/components/interfaces/Database/Replication/DestinationIcon.tsx b/apps/studio/components/interfaces/Database/Replication/DestinationIcon.tsx new file mode 100644 index 0000000000000..e760e0ddfa2de --- /dev/null +++ b/apps/studio/components/interfaces/Database/Replication/DestinationIcon.tsx @@ -0,0 +1,27 @@ +import { AnalyticsBucket, BigQuery, ClickHouse, Database } from 'icons' +import { Snowflake } from 'lucide-react' +import type { ComponentType, SVGProps } from 'react' + +import type { DestinationType } from './DestinationPanel/DestinationPanel.types' + +type DestinationIconComponent = ComponentType & { size?: string | number }> + +const destinationIconByType: Record = { + 'Read Replica': Database, + BigQuery, + 'Analytics Bucket': AnalyticsBucket, + DuckLake: Database, + Snowflake, + ClickHouse, +} + +interface DestinationIconProps extends Omit, 'strokeWidth'> { + type: DestinationType + size?: string | number +} + +export const DestinationIcon = ({ type, ...props }: DestinationIconProps) => { + const Icon = destinationIconByType[type] + + return +} diff --git a/apps/studio/components/interfaces/Database/Replication/DestinationPanel/DestinationTypeSelection.tsx b/apps/studio/components/interfaces/Database/Replication/DestinationPanel/DestinationTypeSelection.tsx index 792e0f9f837e7..f5123816e9bc7 100644 --- a/apps/studio/components/interfaces/Database/Replication/DestinationPanel/DestinationTypeSelection.tsx +++ b/apps/studio/components/interfaces/Database/Replication/DestinationPanel/DestinationTypeSelection.tsx @@ -1,7 +1,4 @@ -import { AnalyticsBucket, BigQuery, ClickHouse, Database } from 'icons' -import { Snowflake } from 'lucide-react' import { parseAsInteger, parseAsStringEnum, useQueryState } from 'nuqs' -import type { ElementType } from 'react' import { Badge, Select, @@ -14,6 +11,7 @@ import { } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' +import { DestinationIcon } from '../DestinationIcon' import { useDestinationInformation } from '../useDestinationInformation' import { useIsETLBigQueryPrivateAlpha, @@ -30,7 +28,6 @@ interface DestinationTypeOption { value: DestinationType label: string description: string - icon: ElementType<{ size?: number; className?: string; strokeWidth?: number }> stage: 'Public Alpha' | 'Early Access' | 'Deprecated' | null enabled: boolean } @@ -40,12 +37,6 @@ interface DestinationTypeGroup { options: DestinationTypeOption[] } -function DestinationOptionIcon({ option }: { option: DestinationTypeOption }) { - const Icon = option.icon - - return -} - export const DestinationTypeSelection = () => { const etlEnableBigQuery = useIsETLBigQueryPrivateAlpha() const etlEnableIceberg = useIsETLIcebergPrivateAlpha() @@ -92,7 +83,6 @@ export const DestinationTypeSelection = () => { label: 'Read Replica', description: 'Deploy a read-only database in another region for lower latency and workload isolation', - icon: Database, stage: null, enabled: isOptionVisible('Read Replica', infrastructureReadReplicas), }, @@ -105,7 +95,6 @@ export const DestinationTypeSelection = () => { value: 'Analytics Bucket', label: 'Analytics Bucket', description: 'Write Apache Iceberg tables to Supabase Storage for analytics workflows', - icon: AnalyticsBucket, stage: 'Deprecated', enabled: isOptionVisible('Analytics Bucket', etlEnableIceberg), }, @@ -113,7 +102,6 @@ export const DestinationTypeSelection = () => { value: 'BigQuery', label: 'BigQuery', description: "Replicate changes to Google Cloud's data warehouse for analytics and BI", - icon: BigQuery, stage: 'Public Alpha', enabled: isOptionVisible('BigQuery', etlEnableBigQuery), }, @@ -121,7 +109,6 @@ export const DestinationTypeSelection = () => { value: 'DuckLake', label: 'DuckLake', description: 'Replicate changes to a DuckLake catalog backed by S3-compatible storage', - icon: Database, stage: 'Early Access', enabled: isOptionVisible('DuckLake', etlEnableDucklake), }, @@ -130,7 +117,6 @@ export const DestinationTypeSelection = () => { label: 'Snowflake', description: 'Replicate changes to Snowflake for warehouse analytics and downstream data workflows', - icon: Snowflake, stage: 'Early Access', enabled: isOptionVisible('Snowflake', etlEnableSnowflake), }, @@ -138,7 +124,6 @@ export const DestinationTypeSelection = () => { value: 'ClickHouse', label: 'ClickHouse', description: 'Stream changes to a ClickHouse cluster for fast columnar analytics', - icon: ClickHouse, stage: 'Early Access', enabled: isOptionVisible('ClickHouse', etlEnableClickHouse), }, @@ -198,7 +183,11 @@ export const DestinationTypeSelection = () => { {selectedOption ? (
- +
{selectedOption.label} {selectedOption.stage && ( @@ -228,7 +217,11 @@ export const DestinationTypeSelection = () => { {group.options.map((option) => (
- +
{option.label} diff --git a/apps/studio/components/interfaces/Database/Replication/DestinationRow.tsx b/apps/studio/components/interfaces/Database/Replication/DestinationRow.tsx index d9b4e28c546b8..2dac917022b34 100644 --- a/apps/studio/components/interfaces/Database/Replication/DestinationRow.tsx +++ b/apps/studio/components/interfaces/Database/Replication/DestinationRow.tsx @@ -1,6 +1,5 @@ import { useParams } from 'common' -import { AnalyticsBucket, BigQuery, ClickHouse, Database } from 'icons' -import { Minus, Snowflake } from 'lucide-react' +import { Minus } from 'lucide-react' import Link from 'next/link' import { useEffect, useState } from 'react' import { toast } from 'sonner' @@ -16,6 +15,7 @@ import { import { ShimmeringLoader } from 'ui-patterns/ShimmeringLoader' import { DeleteDestination } from './DeleteDestination' +import { DestinationIcon } from './DestinationIcon' import { PipelineStatus } from './PipelineStatus' import { PipelineStatusName, STATUS_REFRESH_FREQUENCY_MS } from './Replication.constants' import { getFormattedLagValue } from './ReplicationPipelineStatus/ReplicationPipelineStatus.utils' @@ -150,19 +150,11 @@ export const DestinationRow = ({ destinationId }: DestinationRowProps) => { {isPipelineSuccess && ( - {type === 'BigQuery' ? ( - - ) : type === 'Analytics Bucket' ? ( - - ) : type === 'DuckLake' ? ( - - ) : type === 'Snowflake' ? ( - - ) : type === 'ClickHouse' ? ( - - ) : ( - - )} + diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationDiagram/Nodes.tsx b/apps/studio/components/interfaces/Database/Replication/ReplicationDiagram/Nodes.tsx index 480cd22eb4099..7e3f1e2e371d9 100644 --- a/apps/studio/components/interfaces/Database/Replication/ReplicationDiagram/Nodes.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationDiagram/Nodes.tsx @@ -1,15 +1,14 @@ import { Handle, Position } from '@xyflow/react' import { useParams } from 'common' -import { AnalyticsBucket, BigQuery, ClickHouse, Database } from 'icons' -import { Snowflake } from 'lucide-react' -import { ComponentType, PropsWithChildren, useMemo } from 'react' +import { PropsWithChildren, useMemo } from 'react' import { AWS_REGIONS } from 'shared-data' import { cn, Tooltip, TooltipContent, TooltipTrigger } from 'ui' +import { DestinationIcon } from '../DestinationIcon' import { getStatusName } from '../Pipeline.utils' import { getStatusLabel } from '../ReadReplicas/ReadReplicas.utils' import { STATUS_REFRESH_FREQUENCY_MS } from '../Replication.constants' -import { getReplicationDestinationType, type ReplicationDestinationType } from './Nodes.utils' +import { getReplicationDestinationType } from './Nodes.utils' import { useReadReplicasQuery } from '@/data/read-replicas/replicas-query' import { formatDatabaseID } from '@/data/read-replicas/replicas.utils' import { useReplicationDestinationsQuery } from '@/data/replication/destinations-query' @@ -20,17 +19,6 @@ import { BASE_PATH } from '@/lib/constants' export const NODE_WIDTH = 480 -const destinationIconByType: Record< - ReplicationDestinationType, - ComponentType<{ className?: string; size?: string | number }> -> = { - BigQuery, - 'Analytics Bucket': AnalyticsBucket, - DuckLake: Database, - Snowflake, - ClickHouse, -} - const NodeContainer = ({ className, children }: PropsWithChildren<{ className?: string }>) => { return (
{ const statusName = getStatusName(pipelineStatusData?.status) const type = getReplicationDestinationType(destination?.config) - const DestinationIcon = type ? destinationIconByType[type] : undefined return ( - {DestinationIcon ? : null} + {type ? : null}

{type}

@@ -146,7 +133,7 @@ export const ReadReplicaNode = ({ id }: { id: string }) => { return ( - +

Read Replica

diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagement.schema.ts b/apps/studio/components/interfaces/DiskManagement/DiskManagement.schema.ts index ff1743668c971..1eaca89eb594e 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagement.schema.ts +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagement.schema.ts @@ -57,11 +57,10 @@ export const CreateDiskStorageSchema = ({ cloudProvider: CloudProvider isSpendCapEnabled: boolean }) => { - const isFlyProject = cloudProvider === 'FLY' const isAwsNimbusProject = cloudProvider === 'AWS_NIMBUS' const isAwsK8sProject = cloudProvider === 'AWS_K8S' - const validateDiskConfiguration = !isFlyProject && !isAwsNimbusProject && !isAwsK8sProject + const validateDiskConfiguration = !isAwsNimbusProject && !isAwsK8sProject const schema = baseSchema.superRefine((data, ctx) => { const { storageType, totalSize, provisionedIOPS, throughput, maxSizeGb, computeSize } = data diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagement.test.ts b/apps/studio/components/interfaces/DiskManagement/DiskManagement.test.ts index 74a67404a0620..84d3719eb78fe 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagement.test.ts +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagement.test.ts @@ -267,7 +267,7 @@ describe('CreateDiskStorageSchema', () => { ) }) - test.each(['FLY', 'AWS_NIMBUS', 'AWS_K8S'] as const)( + test.each(['AWS_NIMBUS', 'AWS_K8S'] as const)( 'skips platform disk constraints for %s projects', (cloudProvider) => { const schema = CreateDiskStorageSchema({ diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.sections.tsx b/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.sections.tsx index 8acdbfccf6523..c7ab026d82d2d 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.sections.tsx +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.sections.tsx @@ -102,7 +102,7 @@ function getDiskNoticeDescription({ if (isBranch) { return 'Delete and recreate your Preview Branch to configure disk size. It was deployed on an older branching infrastructure.' } - return 'The Fly Postgres offering is deprecated - please migrate your instance to the AWS cloud provider to configure your disk.' + return undefined } export function DiskSection({ diff --git a/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx b/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx index b019b69a5f76b..29e24c6c04012 100644 --- a/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx +++ b/apps/studio/components/interfaces/DiskManagement/DiskManagementForm.tsx @@ -73,8 +73,7 @@ export function DiskManagementForm({ chartsClassName }: { chartsClassName?: stri const computeSettingsRef = useRef(null) const diskSizeSettingsRef = useRef(null) - const isSpendCapEnabled = - org?.plan.id !== 'free' && !org?.usage_billing_enabled && project?.cloud_provider !== 'FLY' + const isSpendCapEnabled = org?.plan.id !== 'free' && !org?.usage_billing_enabled const { data: resourceWarnings } = useResourceWarningsQuery({ ref: projectRef }) // [Joshen Cleanup] JFYI this client side filtering can be cleaned up once BE changes are live which will only return the warnings based on the provided ref diff --git a/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx b/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx index 8b4342b999f03..98018d5d9c7d4 100644 --- a/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx +++ b/apps/studio/components/interfaces/DiskManagement/fields/DiskSizeField.tsx @@ -38,7 +38,7 @@ export function DiskSizeField({ form, disableInput }: DiskSizeFieldProps) { const { error: diskAttributesError, isError: isDiskAttributesError } = useDiskAttributesQuery( { projectRef }, - { enabled: project && project.cloud_provider !== 'FLY' } + { enabled: !!project } ) const { diff --git a/apps/studio/components/interfaces/DiskManagement/ui/SpendCapDisabledSection.tsx b/apps/studio/components/interfaces/DiskManagement/ui/SpendCapDisabledSection.tsx index 284c0cbc53f1a..867315fea7501 100644 --- a/apps/studio/components/interfaces/DiskManagement/ui/SpendCapDisabledSection.tsx +++ b/apps/studio/components/interfaces/DiskManagement/ui/SpendCapDisabledSection.tsx @@ -4,7 +4,6 @@ import { AlertDescription, AlertTitle, buttonVariants, cn } from 'ui' import { Admonition } from 'ui-patterns/Admonition' import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' -import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' interface SpendCapDisabledSectionProps { currentDiskSizeGb?: number @@ -12,14 +11,8 @@ interface SpendCapDisabledSectionProps { export function SpendCapDisabledSection({ currentDiskSizeGb }: SpendCapDisabledSectionProps) { const { data: org, isPending: isOrgPending } = useSelectedOrganizationQuery() - const { data: project, isPending: isProjectPending } = useSelectedProjectQuery() - const isSpendCapEnabled = - !isOrgPending && - !isProjectPending && - org?.plan.id !== 'free' && - !org?.usage_billing_enabled && - project?.cloud_provider !== 'FLY' + const isSpendCapEnabled = !isOrgPending && org?.plan.id !== 'free' && !org?.usage_billing_enabled const showAutoExpandNotice = isSpendCapEnabled && diff --git a/apps/studio/components/interfaces/Observability/DatabaseConnections/Activity.tsx b/apps/studio/components/interfaces/Observability/DatabaseConnections/Activity.tsx index f31ee12d21904..73428c7208e9c 100644 --- a/apps/studio/components/interfaces/Observability/DatabaseConnections/Activity.tsx +++ b/apps/studio/components/interfaces/Observability/DatabaseConnections/Activity.tsx @@ -84,7 +84,10 @@ export const Activity = ({ live }: ActivityProps) => { ) }) const rootBlockers = (data ?? []).filter( - (x) => x.blocked_by.length === 0 && blockingPids.has(x.pid) + (x) => + x.blocked_by.length === 0 && + blockingPids.has(x.pid) && + (rolesFilter.length === 0 || rolesFilter.includes(x.role_name)) ) const stateOptions = [ diff --git a/apps/studio/components/interfaces/ProjectCreation/ProjectCreation.utils.ts b/apps/studio/components/interfaces/ProjectCreation/ProjectCreation.utils.ts index c77d48d680b02..a316856a645c6 100644 --- a/apps/studio/components/interfaces/ProjectCreation/ProjectCreation.utils.ts +++ b/apps/studio/components/interfaces/ProjectCreation/ProjectCreation.utils.ts @@ -1,5 +1,5 @@ import type { CloudProvider, Region } from 'shared-data' -import { AWS_REGIONS, FLY_REGIONS } from 'shared-data' +import { AWS_REGIONS } from 'shared-data' import { SMART_REGION_TO_EXACT_REGION_MAP } from 'shared-data/regions' import { DesiredInstanceSize, instanceSizeSpecs } from '@/data/projects/new-project.constants' @@ -25,8 +25,6 @@ export function getAvailableRegions(cloudProvider: CloudProvider): Region { return { EAST_US: AWS_REGIONS.EAST_US, } - case 'FLY': - return FLY_REGIONS default: throw new Error('Invalid cloud provider') } diff --git a/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx b/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx index 01c99fb024382..2e887f5f45599 100644 --- a/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx +++ b/apps/studio/components/interfaces/ProjectHome/CustomReportSection.tsx @@ -46,24 +46,25 @@ export function CustomReportSection() { const startDate = dayjs().subtract(7, 'day').toISOString() const endDate = dayjs().toISOString() + const track = useTrack() const { ref } = useParams() const { profile } = useProfile() const state = useDatabaseSelectorStateSnapshot() - const track = useTrack() + const { invalidateInfraMonitoringQuery } = useInvalidateAnalyticsQuery() const { data: project } = useSelectedProjectQuery() - const [isRefreshing, setIsRefreshing] = useState(false) - const [snippetToMakePublic, setSnippetToMakePublic] = useState< - { id: string; name: string } | undefined - >(undefined) - const { data: reportsData } = useContentInfiniteQuery( { projectRef: ref, type: 'report', name: 'Home', limit: 1 }, { placeholderData: keepPreviousData } ) const homeReport = reportsData?.pages?.[0]?.content?.[0] as Content | undefined const reportContent = homeReport?.content as Dashboards.Content | undefined + + const [isRefreshing, setIsRefreshing] = useState(false) + const [snippetToMakePublic, setSnippetToMakePublic] = useState< + { id: string; name: string } | undefined + >(undefined) const [editableReport, setEditableReport] = useState( reportContent ) @@ -201,8 +202,8 @@ export function CustomReportSection() { payload: { id: uuidv4(), type: 'report', - name: 'Home', - description: '', + name: 'Homepage Report', + description: "Report displayed on the project's home page", visibility: 'project', owner_id: profile.id, content: newReport, diff --git a/apps/studio/components/interfaces/ProjectHome/SnippetDropdown.tsx b/apps/studio/components/interfaces/ProjectHome/SnippetDropdown.tsx index d2300b24549ab..b528055631e08 100644 --- a/apps/studio/components/interfaces/ProjectHome/SnippetDropdown.tsx +++ b/apps/studio/components/interfaces/ProjectHome/SnippetDropdown.tsx @@ -105,6 +105,10 @@ export const SnippetDropdown = ({

Loading...

) : search.length > 0 && snippets.length === 0 ? (

No snippets found

+ ) : search.length === 0 && snippets.length === 0 ? ( +

+ No snippets available +

) : ( 7 ? 'h-[210px]' : ''}> diff --git a/apps/studio/components/interfaces/Reports/ReportBlock/UnavailableChartBlock.tsx b/apps/studio/components/interfaces/Reports/ReportBlock/UnavailableChartBlock.tsx index 8117788b12628..d29652e77eff4 100644 --- a/apps/studio/components/interfaces/Reports/ReportBlock/UnavailableChartBlock.tsx +++ b/apps/studio/components/interfaces/Reports/ReportBlock/UnavailableChartBlock.tsx @@ -1,7 +1,7 @@ -import { HeartIcon } from 'lucide-react' import { ReactNode } from 'react' import { ReportBlockContainer } from './ReportBlockContainer' +import { InstanceHealthIcon } from '@/lib/constants/metrics' interface UnavailableChartBlockProps { label: string @@ -14,7 +14,7 @@ export const UnavailableChartBlock = ({ label, actions }: UnavailableChartBlockP draggable showDragHandle loading={false} - icon={} + icon={} label={label} actions={actions} > diff --git a/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants.ts b/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants.ts index 79a3b89516e2f..25736d4eb576b 100644 --- a/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants.ts +++ b/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants.ts @@ -89,12 +89,7 @@ export const AWS_REGIONS_COORDINATES: { [key: string]: [number, number] } = { WEST_EU_3: [2.35, 48.86], } -export const FLY_REGIONS_COORDINATES: { [key: string]: [number, number] } = { - SOUTHEAST_ASIA: [103.8, 1.37], -} - // [Joshen] Just to make sure that we just depend on AWS_REGIONS to determine available -// regions for replicas. Just FYI - might need to update this if we support Fly in future export const AVAILABLE_REPLICA_REGIONS: Region[] = Object.keys(AWS_REGIONS) .map((key) => { return { diff --git a/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.utils.ts b/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.utils.ts index ee48ae2564c2a..87f9d42472276 100644 --- a/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.utils.ts +++ b/apps/studio/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.utils.ts @@ -78,10 +78,7 @@ export const generateNodes = ({ type: 'PRIMARY', data: { id: primary.identifier, - region: - primary.cloud_provider === 'FLY' - ? { name: 'Singapore (sin)', key: 'SOUTHEAST_ASIA' } - : (primaryRegion ?? { name: primary.region }), + region: primaryRegion ?? { name: primary.region }, provider: primary.cloud_provider, inserted_at: primary.inserted_at, computeSize: primary.size, diff --git a/apps/studio/components/interfaces/Storage/BucketFilePickerDialog/BucketFilePickerRow.tsx b/apps/studio/components/interfaces/Storage/BucketFilePickerDialog/BucketFilePickerRow.tsx index 5ec97e3b1bd1f..a43544d17cfa8 100644 --- a/apps/studio/components/interfaces/Storage/BucketFilePickerDialog/BucketFilePickerRow.tsx +++ b/apps/studio/components/interfaces/Storage/BucketFilePickerDialog/BucketFilePickerRow.tsx @@ -1,54 +1,12 @@ -import { FilesBucket as FilesBucketIcon } from 'icons' -import { AlertCircle, File, Film, FolderOpen, Image, LoaderCircle, Music } from 'lucide-react' +import { AlertCircle, LoaderCircle } from 'lucide-react' import type { CSSProperties, MouseEvent } from 'react' import { Checkbox, cn, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { STORAGE_ROW_STATUS, STORAGE_ROW_TYPES, STORAGE_VIEWS } from '../Storage.constants' import { type StorageItem } from '../Storage.types' +import { StorageRowIcon } from '../StorageRowIcon' import { formatBytes } from '@/lib/helpers' -const RowIcon = ({ - view, - status, - fileType, - isOpened = false, - mimeType, -}: { - view: STORAGE_VIEWS - status: STORAGE_ROW_STATUS - fileType: string - isOpened?: boolean - mimeType: string | undefined -}) => { - if (view === STORAGE_VIEWS.LIST && status === STORAGE_ROW_STATUS.LOADING) { - return ( - - ) - } - - if (fileType === STORAGE_ROW_TYPES.FOLDER) { - return isOpened ? ( - - ) : ( - - ) - } - - if (mimeType?.includes('image')) { - return - } - - if (mimeType?.includes('audio')) { - return - } - - if (mimeType?.includes('video')) { - return - } - - return -} - interface BucketFilePickerRowProps { item: StorageItem view: STORAGE_VIEWS @@ -114,7 +72,7 @@ export const BucketFilePickerRow = ({ hidden: isSelected, })} > - { - if (view === STORAGE_VIEWS.LIST && status === STORAGE_ROW_STATUS.LOADING) { - return - } - - if (fileType === STORAGE_ROW_TYPES.FOLDER) { - return isOpened ? ( - - ) : ( - - ) - } - - if (mimeType?.includes('image')) { - return - } - - if (mimeType?.includes('audio')) { - return - } - - if (mimeType?.includes('video')) { - return - } - - return -} - interface FileExplorerRowProps { index: number item: StorageItem @@ -329,7 +284,7 @@ export const FileExplorerRow = ({ )} style={{ top: '2px' }} > -
- { + test.each(CASES)('renders $name at the canonical stroke width', (props) => { + const { container } = customRender( + + ) + + const icon = container.querySelector('svg') + + expect(icon).toHaveClass(props.expectedIcon) + expect(icon).toHaveAttribute('stroke-width', '1.5') + }) +}) diff --git a/apps/studio/components/interfaces/Storage/StorageRowIcon.tsx b/apps/studio/components/interfaces/Storage/StorageRowIcon.tsx new file mode 100644 index 0000000000000..814a3b259c202 --- /dev/null +++ b/apps/studio/components/interfaces/Storage/StorageRowIcon.tsx @@ -0,0 +1,60 @@ +import { FilesBucket as FilesBucketIcon } from 'icons' +import { File, Film, FolderOpen, Image as ImageIcon, LoaderCircle, Music } from 'lucide-react' + +import { STORAGE_ROW_STATUS, STORAGE_ROW_TYPES, STORAGE_VIEWS } from './Storage.constants' + +const ICON_STROKE_WIDTH = 1.5 + +interface StorageRowIconProps { + view: STORAGE_VIEWS + status: STORAGE_ROW_STATUS + fileType: string + isOpened?: boolean + mimeType: string | undefined +} + +export const StorageRowIcon = ({ + view, + status, + fileType, + isOpened = false, + mimeType, +}: StorageRowIconProps) => { + if (view === STORAGE_VIEWS.LIST && status === STORAGE_ROW_STATUS.LOADING) { + return ( + + ) + } + + if (fileType === STORAGE_ROW_TYPES.FOLDER) { + return isOpened ? ( + + ) : ( + + ) + } + + if (mimeType?.includes('image')) { + return ( + + ) + } + + if (mimeType?.includes('audio')) { + return + } + + if (mimeType?.includes('video')) { + return + } + + return +} diff --git a/apps/studio/components/layouts/ObservabilityLayout/ObservabilityLayout.tsx b/apps/studio/components/layouts/ObservabilityLayout/ObservabilityLayout.tsx index 82c40cc0e91f5..c350faa23328c 100644 --- a/apps/studio/components/layouts/ObservabilityLayout/ObservabilityLayout.tsx +++ b/apps/studio/components/layouts/ObservabilityLayout/ObservabilityLayout.tsx @@ -1,12 +1,13 @@ -import { IS_PLATFORM, LOCAL_STORAGE_KEYS, useParams } from 'common' +import { LOCAL_STORAGE_KEYS, useFeatureFlags, useParams } from 'common' import { usePathname } from 'next/navigation' import { PropsWithChildren, useEffect, useRef } from 'react' import { ProjectLayout } from '../ProjectLayout' import { ObservabilityMenu } from './ObservabilityMenu' +import { useIsDatabaseConnectionsEnabled } from '@/components/interfaces/App/FeaturePreview/FeaturePreviewContext' import { useIndexAdvisorStatus } from '@/components/interfaces/QueryPerformance/hooks/useIsIndexAdvisorStatus' +import { BannerDatabaseConnections } from '@/components/ui/BannerStack/Banners/BannerDatabaseConnections' import { BannerIndexAdvisor } from '@/components/ui/BannerStack/Banners/BannerIndexAdvisor' -import { BannerMetricsAPI } from '@/components/ui/BannerStack/Banners/BannerMetricsAPI' import { useBannerStack } from '@/components/ui/BannerStack/BannerStackProvider' import { UnknownInterface } from '@/components/ui/UnknownInterface' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' @@ -23,34 +24,46 @@ const ObservabilityLayoutContent = ({ }: PropsWithChildren) => { const { ref } = useParams() const pathname = usePathname() + const { hasLoaded } = useFeatureFlags() const { addBanner, dismissBanner } = useBannerStack() const { isIndexAdvisorAvailable, isIndexAdvisorEnabled } = useIndexAdvisorStatus() - const [isMetricsBannerDismissed] = useLocalStorageQuery( - LOCAL_STORAGE_KEYS.OBSERVABILITY_BANNER_DISMISSED(ref ?? ''), - false - ) - const [isIndexAdvisorBannerDismissed] = useLocalStorageQuery( LOCAL_STORAGE_KEYS.INDEX_ADVISOR_NOTICE_DISMISSED(ref ?? ''), false ) - useEffect(() => { - if (!isMetricsBannerDismissed && IS_PLATFORM) { - addBanner({ - id: 'metrics-api-banner', - isDismissed: false, - content: , - priority: 1, - }) - } else { - dismissBanner('metrics-api-banner') - } - }, [isMetricsBannerDismissed, addBanner, dismissBanner]) + const isDatabaseConnectionsEnabled = useIsDatabaseConnectionsEnabled() + + const [isDatabaseConnectionsBannerDismissed, , { isSuccess: isLocalStorageReady }] = + useLocalStorageQuery(LOCAL_STORAGE_KEYS.DATABASE_CONNECTIONS_BANNER_DISMISSED(ref ?? ''), false) const prevPathnameRef = useRef(pathname) + useEffect(() => { + if ( + !hasLoaded || + !isLocalStorageReady || + isDatabaseConnectionsBannerDismissed || + isDatabaseConnectionsEnabled + ) + return + + addBanner({ + id: 'database-connections-banner', + priority: 2, + isDismissed: false, + content: , + }) + }, [ + hasLoaded, + addBanner, + dismissBanner, + isDatabaseConnectionsBannerDismissed, + isDatabaseConnectionsEnabled, + isLocalStorageReady, + ]) + useEffect(() => { const isQueryPerformancePage = pathname?.includes('/query-performance') diff --git a/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.test.tsx b/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.test.tsx index 6a782d5076f68..f63bdd9f11610 100644 --- a/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.test.tsx +++ b/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.test.tsx @@ -26,10 +26,14 @@ vi.mock('@/lib/constants', async () => { } }) -vi.mock('common', () => ({ - useFlag: vi.fn().mockReturnValue(false), - useParams: vi.fn().mockReturnValue({ ref: REF }), -})) +vi.mock('common', async (importOriginal) => { + const actual = await importOriginal() + return { + ...actual, + useFlag: vi.fn().mockReturnValue(false), + useParams: vi.fn().mockReturnValue({ ref: REF }), + } +}) vi.mock('@/components/interfaces/QueryPerformance/hooks/useSupamonitorStatus', () => ({ useSupamonitorStatus: vi.fn(), diff --git a/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.tsx b/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.tsx index efd8b8c1b9828..44ff90b6442d6 100644 --- a/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.tsx +++ b/apps/studio/components/layouts/ObservabilityLayout/ObservabilityMenu.utils.tsx @@ -2,6 +2,7 @@ import { useFlag, useParams } from 'common' import { useRouter } from 'next/router' import { useMemo } from 'react' +import { useIsDatabaseConnectionsEnabled } from '@/components/interfaces/App/FeaturePreview/FeaturePreviewContext' import { useSupamonitorStatus } from '@/components/interfaces/QueryPerformance/hooks/useSupamonitorStatus' import { useContentQuery, type Content, type ContentBase } from '@/data/content/content-query' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' @@ -45,10 +46,10 @@ const usePreservedQueryParams = () => { export const useGenerateObservabilityMenu = () => { const { ref } = useParams() const preservedQueryParams = usePreservedQueryParams() + const { isSupamonitorEnabled } = useSupamonitorStatus() const showOverview = useFlag('observabilityOverview') - const topForPostgres = useFlag('topForPostgres') - const { isSupamonitorEnabled } = useSupamonitorStatus() + const isDatabaseConnectionsEnabled = useIsDatabaseConnectionsEnabled() const storageSupported = useIsFeatureEnabled('project_storage:all') const baseUrl = `/project/${ref}/observability` @@ -91,7 +92,7 @@ export const useGenerateObservabilityMenu = () => { }, ] : []), - ...(topForPostgres + ...(isDatabaseConnectionsEnabled ? [ { name: 'Database Connections', diff --git a/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx b/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx index 75a441a86e90c..5049cd000e0aa 100644 --- a/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx +++ b/apps/studio/components/ui/BannerStack/BannerStackProvider.tsx @@ -1,7 +1,7 @@ import { createContext, useCallback, useContext, useState } from 'react' export const BANNER_ID = { - METRICS_API: 'metrics-api-banner', + DATABASE_CONNECTIONS: 'database-connections-banner', INDEX_ADVISOR: 'index-advisor-banner', TABLE_EDITOR_QUEUE_OPERATIONS: 'table-editor-queue-operations-banner', RLS_EVENT_TRIGGER: 'rls-event-trigger-banner', @@ -33,8 +33,13 @@ export const BannerStackProvider = ({ children }: { children: React.ReactNode }) const addBanner = useCallback((banner: Banner) => { setBanners((prev) => { - const exists = prev.some((b) => b.id === banner.id) - if (exists) return prev + const existingIndex = prev.findIndex((b) => b.id === banner.id) + if (existingIndex !== -1) { + if (!prev[existingIndex].isDismissed) return prev + const revived = [...prev] + revived[existingIndex] = banner + return revived.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0)) + } const newBanners = [...prev, banner] return newBanners.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0)) }) diff --git a/apps/studio/components/ui/BannerStack/Banners/BannerDatabaseConnections.tsx b/apps/studio/components/ui/BannerStack/Banners/BannerDatabaseConnections.tsx new file mode 100644 index 0000000000000..4ca36cb90f935 --- /dev/null +++ b/apps/studio/components/ui/BannerStack/Banners/BannerDatabaseConnections.tsx @@ -0,0 +1,89 @@ +import { LOCAL_STORAGE_KEYS } from 'common' +import { useParams } from 'common/hooks' +import { Badge, Button, WarningIcon } from 'ui' + +import { BannerCard } from '../BannerCard' +import { useBannerStack } from '../BannerStackProvider' +import { useFeaturePreviewModal } from '@/components/interfaces/App/FeaturePreview/FeaturePreviewContext' +import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' +import { useTrack } from '@/lib/telemetry/track' + +export const BannerDatabaseConnections = () => { + const track = useTrack() + const { ref } = useParams() + const { dismissBanner } = useBannerStack() + const { selectFeaturePreview } = useFeaturePreviewModal() + + const [, setIsDismissed] = useLocalStorageQuery( + LOCAL_STORAGE_KEYS.DATABASE_CONNECTIONS_BANNER_DISMISSED(ref ?? ''), + false + ) + + return ( + { + setIsDismissed(true) + dismissBanner('database-connections-banner') + track('database_connections_banner_dismiss_button_clicked') + }} + > +
+
+ + Preview + +
+
+
+ +
+

Blocking

+

+ update orders set status = $1 where id = $2; +

+
+
+
+
+
+

+ Waiting +

+

+ select * from orders where id = $1 for update +

+
+
+
+

+ Waiting +

+

+ update orders set status = $1 where id = $2; +

+
+
+
+
+
+

Diagnose blocked queries

+

+ See what's blocking your database and terminate the session causing it. +

+
+
+ +
+
+ + ) +} diff --git a/apps/studio/components/ui/BannerStack/Banners/BannerMetricsAPI.tsx b/apps/studio/components/ui/BannerStack/Banners/BannerMetricsAPI.tsx deleted file mode 100644 index f028044b597c3..0000000000000 --- a/apps/studio/components/ui/BannerStack/Banners/BannerMetricsAPI.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { LOCAL_STORAGE_KEYS } from 'common' -import { useParams } from 'common/hooks' -import Link from 'next/link' -import { Badge, Button } from 'ui' - -import { BannerCard } from '../BannerCard' -import { useBannerStack } from '../BannerStackProvider' -import { AnimatedLogos } from '@/components/interfaces/LogDrains/AnimatedLogos' -import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' -import { DOCS_URL } from '@/lib/constants' -import { useTrack } from '@/lib/telemetry/track' - -export const BannerMetricsAPI = () => { - const { ref } = useParams() - const track = useTrack() - const { dismissBanner } = useBannerStack() - const [, setIsDismissed] = useLocalStorageQuery( - LOCAL_STORAGE_KEYS.OBSERVABILITY_BANNER_DISMISSED(ref ?? ''), - false - ) - return ( - { - setIsDismissed(true) - dismissBanner('metrics-api-banner') - track('metrics_api_banner_dismiss_button_clicked') - }} - > -
-
- - Beta - - -
-
-

Export Metrics to your dashboards

-

- Visualize over 200 database performance and health metrics with our Metrics API. -

-
-
- -
-
-
- ) -} diff --git a/apps/studio/components/ui/BannerStack/Banners/BannerUnifiedLogs.tsx b/apps/studio/components/ui/BannerStack/Banners/BannerUnifiedLogs.tsx index 5ec21112ad2b3..9d417dfcebc1e 100644 --- a/apps/studio/components/ui/BannerStack/Banners/BannerUnifiedLogs.tsx +++ b/apps/studio/components/ui/BannerStack/Banners/BannerUnifiedLogs.tsx @@ -1,11 +1,13 @@ import { LOCAL_STORAGE_KEYS } from 'common' import { useParams } from 'common/hooks' +import dayjs from 'dayjs' +import { AnimatePresence, motion } from 'framer-motion' import Link from 'next/link' -import { Badge, Button } from 'ui' +import { useEffect, useRef, useState } from 'react' +import { Badge, Button, cn } from 'ui' import { BannerCard } from '../BannerCard' import { useBannerStack } from '../BannerStackProvider' -import { UnifiedLogsCarousel } from './UnifiedLogsCarousel' import { useFeaturePreviewModal, useUnifiedLogsPreview, @@ -13,6 +15,97 @@ import { import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage' import { useTrack } from '@/lib/telemetry/track' +// Number of rows visible in the carousel viewport. We keep one extra row in +// state so the row sliding out of view has something to animate towards. +const VISIBLE_ROWS = 3 +const ROW_HEIGHT = 28 +const TICK_MS = 3000 + +const SAMPLES = [200, 200, 201, 200, 304, 400, 200, 500] as const + +interface LogEntry { + id: number + timestamp: string + status: number +} + +const makeEntry = (id: number, offsetSeconds = 0): LogEntry => ({ + id, + timestamp: dayjs().subtract(offsetSeconds, 'second').format('DD MMM YY HH:mm:ss'), + status: SAMPLES[id % SAMPLES.length], +}) + +const LogRow = ({ entry }: { entry: LogEntry }) => { + const isDestructive = entry.status >= 500 + const isWarning = entry.status >= 400 && entry.status < 500 + return ( +
+ + + {entry.timestamp} + + + {entry.status} + +
+ ) +} + +const UnifiedLogsCarousel = () => { + const counter = useRef(VISIBLE_ROWS) + const [logs, setLogs] = useState(() => + Array.from({ length: VISIBLE_ROWS + 1 }, (_, i) => makeEntry(VISIBLE_ROWS - i, i)) + ) + + useEffect(() => { + const interval = setInterval(() => { + counter.current += 1 + const next = makeEntry(counter.current) + setLogs((prev) => [next, ...prev].slice(0, VISIBLE_ROWS + 1)) + }, TICK_MS) + return () => clearInterval(interval) + }, []) + + return ( +
+ + {logs.map((entry, index) => ( + + + + ))} + +
+ ) +} + export const BannerUnifiedLogs = () => { const { ref } = useParams() const track = useTrack() diff --git a/apps/studio/components/ui/BannerStack/Banners/UnifiedLogsCarousel.tsx b/apps/studio/components/ui/BannerStack/Banners/UnifiedLogsCarousel.tsx deleted file mode 100644 index 55958c3fb49b4..0000000000000 --- a/apps/studio/components/ui/BannerStack/Banners/UnifiedLogsCarousel.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import dayjs from 'dayjs' -import { AnimatePresence, motion } from 'framer-motion' -import { useEffect, useRef, useState } from 'react' -import { cn } from 'ui' - -// Number of rows visible in the carousel viewport. We keep one extra row in -// state so the row sliding out of view has something to animate towards. -const VISIBLE_ROWS = 3 -const ROW_HEIGHT = 28 -const TICK_MS = 3000 - -const SAMPLES = [200, 200, 201, 200, 304, 400, 200, 500] as const - -interface LogEntry { - id: number - timestamp: string - status: number -} - -const makeEntry = (id: number, offsetSeconds = 0): LogEntry => ({ - id, - timestamp: dayjs().subtract(offsetSeconds, 'second').format('DD MMM YY HH:mm:ss'), - status: SAMPLES[id % SAMPLES.length], -}) - -const LogRow = ({ entry }: { entry: LogEntry }) => { - const isDestructive = entry.status >= 500 - const isWarning = entry.status >= 400 && entry.status < 500 - return ( -
- - - {entry.timestamp} - - - {entry.status} - -
- ) -} - -export const UnifiedLogsCarousel = () => { - const counter = useRef(VISIBLE_ROWS) - const [logs, setLogs] = useState(() => - Array.from({ length: VISIBLE_ROWS + 1 }, (_, i) => makeEntry(VISIBLE_ROWS - i, i)) - ) - - useEffect(() => { - const interval = setInterval(() => { - counter.current += 1 - const next = makeEntry(counter.current) - setLogs((prev) => [next, ...prev].slice(0, VISIBLE_ROWS + 1)) - }, TICK_MS) - return () => clearInterval(interval) - }, []) - - return ( -
- - {logs.map((entry, index) => ( - - - - ))} - -
- ) -} diff --git a/apps/studio/components/ui/QueryBlock/BlockViewConfiguration.tsx b/apps/studio/components/ui/QueryBlock/BlockViewConfiguration.tsx index 50b1ee2d27fe6..c066835d470c2 100644 --- a/apps/studio/components/ui/QueryBlock/BlockViewConfiguration.tsx +++ b/apps/studio/components/ui/QueryBlock/BlockViewConfiguration.tsx @@ -51,6 +51,7 @@ export const BlockViewConfiguration = ({ { diff --git a/apps/studio/data/content/content-id-query.ts b/apps/studio/data/content/content-id-query.ts index 37547ab58fe51..00ca2213fd48c 100644 --- a/apps/studio/data/content/content-id-query.ts +++ b/apps/studio/data/content/content-id-query.ts @@ -17,13 +17,15 @@ export type GetUserContentByIdResponse = Omit< export async function getContentById( { projectRef, id }: { projectRef?: string; id?: string }, - signal?: AbortSignal + signal?: AbortSignal, + headers?: HeadersInit ) { if (typeof projectRef === 'undefined') throw new Error('projectRef is required') if (typeof id === 'undefined') throw new Error('Content ID is required') const { data, error } = await get('/platform/projects/{ref}/content/item/{id}', { params: { path: { ref: projectRef, id } }, + headers, signal, }) diff --git a/apps/studio/data/content/content-query.ts b/apps/studio/data/content/content-query.ts index b34dc16ac1f75..e65c862acbd72 100644 --- a/apps/studio/data/content/content-query.ts +++ b/apps/studio/data/content/content-query.ts @@ -35,7 +35,8 @@ interface GetContentVariables { export async function getContent( { projectRef, type, name, limit = 10 }: GetContentVariables, - signal?: AbortSignal + signal?: AbortSignal, + headers?: HeadersInit ) { if (typeof projectRef === 'undefined') { throw new Error('projectRef is required for getContent') @@ -43,6 +44,7 @@ export async function getContent( const { data, error } = await get('/platform/projects/{ref}/content', { params: { path: { ref: projectRef }, query: { type, name, limit: limit.toString() } }, + headers, signal, }) diff --git a/apps/studio/data/misc/get-default-region-query.ts b/apps/studio/data/misc/get-default-region-query.ts index 98e5be1c18e1d..d2c17c150601c 100644 --- a/apps/studio/data/misc/get-default-region-query.ts +++ b/apps/studio/data/misc/get-default-region-query.ts @@ -1,14 +1,11 @@ import { useQuery } from '@tanstack/react-query' import { useFlag } from 'common' import type { CloudProvider } from 'shared-data' -import { AWS_REGIONS, FLY_REGIONS } from 'shared-data' +import { AWS_REGIONS } from 'shared-data' import { miscKeys } from './keys' import { COUNTRY_LAT_LON } from '@/components/interfaces/ProjectCreation/ProjectCreation.constants' -import { - AWS_REGIONS_COORDINATES, - FLY_REGIONS_COORDINATES, -} from '@/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants' +import { AWS_REGIONS_COORDINATES } from '@/components/interfaces/Settings/Infrastructure/InfrastructureConfiguration/InstanceConfiguration.constants' import { fetchHandler } from '@/data/fetchers' import { getDistanceLatLonKM, tryParseJson } from '@/lib/helpers' import type { ResponseError, UseCustomQueryOptions } from '@/types' @@ -37,15 +34,12 @@ export async function getDefaultRegionOption({ if (locLatLon === undefined) return undefined - const isAWSProvider = ['AWS', 'AWS_K8S'].includes(cloudProvider) - - const allRegions = isAWSProvider ? AWS_REGIONS_COORDINATES : FLY_REGIONS_COORDINATES const locations = useRestrictedPool && restrictedPool - ? Object.entries(allRegions) + ? Object.entries(AWS_REGIONS_COORDINATES) .filter((x) => restrictedPool.includes(x[0])) .reduce((o, val) => ({ ...o, [val[0]]: val[1] }), {}) - : allRegions + : AWS_REGIONS_COORDINATES const distances = Object.keys(locations).map((reg) => { const region: { lat: number; lon: number } = { @@ -57,9 +51,7 @@ export async function getDefaultRegionOption({ const shortestDistance = Math.min(...distances) const closestRegion = Object.keys(locations)[distances.indexOf(shortestDistance)] - return isAWSProvider - ? AWS_REGIONS[closestRegion as keyof typeof AWS_REGIONS].displayName - : FLY_REGIONS[closestRegion as keyof typeof FLY_REGIONS].displayName + return AWS_REGIONS[closestRegion as keyof typeof AWS_REGIONS].displayName } catch (error) { throw error } diff --git a/apps/studio/data/projects/new-project.constants.ts b/apps/studio/data/projects/new-project.constants.ts index 3f67dd7e37311..ca08d47059a6a 100644 --- a/apps/studio/data/projects/new-project.constants.ts +++ b/apps/studio/data/projects/new-project.constants.ts @@ -32,12 +32,7 @@ export const instanceSizeSpecs: Record< cpu: '2-core', priceHourly: 0.01344, priceMonthly: 10, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, small: { label: 'Small', @@ -45,12 +40,7 @@ export const instanceSizeSpecs: Record< cpu: '2-core', priceHourly: 0.0206, priceMonthly: 15, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, medium: { label: 'Medium', @@ -58,12 +48,7 @@ export const instanceSizeSpecs: Record< cpu: '2-core', priceHourly: 0.0822, priceMonthly: 60, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, large: { label: 'Large', @@ -71,12 +56,7 @@ export const instanceSizeSpecs: Record< cpu: '2-core', priceHourly: 0.1517, priceMonthly: 110, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, xlarge: { label: 'XL', @@ -84,12 +64,7 @@ export const instanceSizeSpecs: Record< cpu: '4-core', priceHourly: 0.2877, priceMonthly: 210, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, '2xlarge': { label: '2XL', @@ -97,12 +72,7 @@ export const instanceSizeSpecs: Record< cpu: '8-core', priceHourly: 0.562, priceMonthly: 410, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, '4xlarge': { label: '4XL', @@ -110,12 +80,7 @@ export const instanceSizeSpecs: Record< cpu: '16-core', priceHourly: 1.32, priceMonthly: 960, - cloud_providers: [ - PROVIDERS.AWS.id, - PROVIDERS.AWS_K8S.id, - PROVIDERS.AWS_NIMBUS.id, - PROVIDERS.FLY.id, - ], + cloud_providers: [PROVIDERS.AWS.id, PROVIDERS.AWS_K8S.id, PROVIDERS.AWS_NIMBUS.id], }, '8xlarge': { label: '8XL', diff --git a/apps/studio/lib/ai/tool-filter.ts b/apps/studio/lib/ai/tool-filter.ts index 66cf66c5b3ee8..3969897cf7116 100644 --- a/apps/studio/lib/ai/tool-filter.ts +++ b/apps/studio/lib/ai/tool-filter.ts @@ -35,6 +35,8 @@ export const toolSetValidationSchema = z.record( 'escalate_to_human', 'resolve_support_conversation', 'list_policies', + 'list_reports', + 'get_report', // Fallback tools for self-hosted 'getSchemaTables', @@ -84,6 +86,8 @@ export const TOOL_CATEGORY_MAP: Record = { list_edge_functions: TOOL_CATEGORIES.SCHEMA, list_branches: TOOL_CATEGORIES.SCHEMA, list_policies: TOOL_CATEGORIES.SCHEMA, + list_reports: TOOL_CATEGORIES.SCHEMA, + get_report: TOOL_CATEGORIES.SCHEMA, getSchemaTables: TOOL_CATEGORIES.SCHEMA, getRlsKnowledge: TOOL_CATEGORIES.SCHEMA, getFunctions: TOOL_CATEGORIES.SCHEMA, diff --git a/apps/studio/lib/ai/tools/index.ts b/apps/studio/lib/ai/tools/index.ts index 0e3bf9257a8f3..8dad88afdb66d 100644 --- a/apps/studio/lib/ai/tools/index.ts +++ b/apps/studio/lib/ai/tools/index.ts @@ -5,6 +5,7 @@ import { filterToolsByOptInLevel } from '../tool-filter' import { getFallbackTools } from './fallback-tools' import { getIncidentTools } from './incident-tools' import { getMcpTools } from './mcp-tools' +import { getReportTools } from './report-tools' import { getSchemaTools } from './schema-tools' import { getStudioTools } from './studio-tools' import { getSupportLifecycleTools } from './support-tools' @@ -70,6 +71,7 @@ export const getTools = async ({ projectRef, connectionString, }), + ...getReportTools({ projectRef, authorization }), ...(baseUrl ? getIncidentTools({ baseUrl }) : {}), } } diff --git a/apps/studio/lib/ai/tools/report-tools.test.ts b/apps/studio/lib/ai/tools/report-tools.test.ts new file mode 100644 index 0000000000000..33cd0a6d20221 --- /dev/null +++ b/apps/studio/lib/ai/tools/report-tools.test.ts @@ -0,0 +1,215 @@ +import { components } from 'api-types' +import { HttpResponse } from 'msw' +import { describe, expect, it } from 'vitest' + +import { getReportTools } from './report-tools' +import { addAPIMock, type APIErrorBody } from '@/tests/lib/msw' + +type GetUserContentByIdResponse = components['schemas']['GetUserContentByIdResponse'] + +describe('ai/tools/report-tools', () => { + describe('getReportTools', () => { + it('should return list_reports and get_report tools', () => { + const tools = getReportTools() + + expect(Object.keys(tools)).toEqual(['list_reports', 'get_report']) + }) + + it('should not require approval to read reports', () => { + const tools = getReportTools() + + expect(tools.list_reports.needsApproval).toBeUndefined() + expect(tools.get_report.needsApproval).toBeUndefined() + }) + }) + + describe('list_reports', () => { + it('should list reports with summary fields, forwarding the authorization header', async () => { + let capturedRequest: Request | undefined + + addAPIMock({ + method: 'get', + path: '/platform/projects/:ref/content', + response: ({ request }) => { + capturedRequest = request + return HttpResponse.json({ + data: [ + { + id: 'report-1', + name: 'Home', + description: undefined, + visibility: 'project', + favorite: false, + folder_id: null, + inserted_at: '2026-01-01T00:00:00.000Z', + updated_at: '2026-01-01T00:00:00.000Z', + owner_id: 1, + owner: { id: 1, username: 'test' }, + updated_by: { id: 1, username: 'test' }, + project_id: 1, + type: 'report', + content: { + schema_version: 1, + period_start: { time_period: '7d' }, + period_end: { time_period: 'today' }, + interval: '1d', + layout: [{ id: 'a' }, { id: 'b' }], + }, + }, + ], + }) + }, + }) + + const tools = getReportTools({ projectRef: 'test-project', authorization: 'Bearer token' }) + if (!tools.list_reports.execute) throw new Error('execute is undefined') + + const result = await tools.list_reports.execute( + { limit: 20 }, + { toolCallId: 'test', messages: [] } + ) + + expect(capturedRequest?.headers.get('authorization')).toBe('Bearer token') + const url = new URL(capturedRequest!.url) + expect(url.pathname).toContain('/projects/test-project/content') + expect(url.searchParams.get('type')).toBe('report') + expect(url.searchParams.get('limit')).toBe('20') + + expect(result).toEqual([ + { + id: 'report-1', + name: 'Home', + description: undefined, + visibility: 'project', + updated_at: '2026-01-01T00:00:00.000Z', + chart_count: 2, + }, + ]) + }) + }) + + describe('get_report', () => { + it('should resolve snippet_ chart blocks to their SQL', async () => { + addAPIMock({ + method: 'get', + path: '/platform/projects/:ref/content/item/:id', + response: ({ params }) => { + if (params.id === 'report-1') { + return HttpResponse.json({ + id: 'report-1', + name: 'My report', + description: undefined, + visibility: 'project', + favorite: false, + folder_id: null, + inserted_at: '2026-01-01T00:00:00.000Z', + updated_at: '2026-01-01T00:00:00.000Z', + owner_id: 1, + project_id: 1, + type: 'report', + content: { + schema_version: 1, + period_start: { time_period: '7d' }, + period_end: { time_period: 'today' }, + interval: '1d', + layout: [ + { + id: 'snippet-1', + attribute: 'snippet_snippet-1', + x: 0, + y: 0, + w: 1, + h: 1, + label: 'My query', + provider: 'daily-stats', + chart_type: 'bar', + }, + { + id: 'total_egress', + attribute: 'total_egress', + x: 1, + y: 0, + w: 1, + h: 1, + label: 'Egress', + provider: 'daily-stats', + chart_type: 'bar', + }, + ], + }, + }) + } + + if (params.id === 'snippet-1') { + return HttpResponse.json({ + id: 'snippet-1', + name: 'My query', + description: undefined, + visibility: 'user', + favorite: false, + folder_id: null, + inserted_at: '2026-01-01T00:00:00.000Z', + updated_at: '2026-01-01T00:00:00.000Z', + owner_id: 1, + project_id: 1, + type: 'sql', + content: { content_id: 'snippet-1', sql: 'select 1', schema_version: '1' }, + }) + } + + return HttpResponse.json( + { message: `Unexpected id: ${params.id}` }, + { status: 404 } + ) + }, + }) + + const tools = getReportTools({ projectRef: 'test-project' }) + if (!tools.get_report.execute) throw new Error('execute is undefined') + + const result = (await tools.get_report.execute( + { id: 'report-1' }, + { toolCallId: 'test', messages: [] } + )) as { layout: Array<{ id: string; attribute: string; sql?: string }> } + + expect(result.layout).toEqual([ + expect.objectContaining({ + id: 'snippet-1', + attribute: 'snippet_snippet-1', + sql: 'select 1', + }), + expect.objectContaining({ id: 'total_egress', attribute: 'total_egress' }), + ]) + expect(result.layout[1].sql).toBeUndefined() + }) + + it('should throw when the content id is not a report', async () => { + addAPIMock({ + method: 'get', + path: '/platform/projects/:ref/content/item/:id', + response: () => + HttpResponse.json({ + id: 'snippet-1', + name: 'My query', + description: undefined, + visibility: 'user', + favorite: false, + folder_id: null, + inserted_at: '2026-01-01T00:00:00.000Z', + updated_at: '2026-01-01T00:00:00.000Z', + owner_id: 1, + project_id: 1, + type: 'sql', + content: { content_id: 'snippet-1', sql: 'select 1', schema_version: '1' }, + }), + }) + + const tools = getReportTools({ projectRef: 'test-project' }) + if (!tools.get_report.execute) throw new Error('execute is undefined') + + await expect( + tools.get_report.execute({ id: 'snippet-1' }, { toolCallId: 'test', messages: [] }) + ).rejects.toThrow('is not a report') + }) + }) +}) diff --git a/apps/studio/lib/ai/tools/report-tools.ts b/apps/studio/lib/ai/tools/report-tools.ts new file mode 100644 index 0000000000000..414090f227587 --- /dev/null +++ b/apps/studio/lib/ai/tools/report-tools.ts @@ -0,0 +1,92 @@ +import { tool } from 'ai' +import { z } from 'zod' + +import { getContentById } from '@/data/content/content-id-query' +import { getContent } from '@/data/content/content-query' +import type { Dashboards, SqlSnippets } from '@/types' + +export type ReportToolsContext = { + projectRef?: string + authorization?: string +} + +export const getReportTools = (ctx: ReportToolsContext = {}) => { + const { projectRef, authorization } = ctx + const authHeaders = authorization ? { Authorization: authorization } : undefined + + return { + list_reports: tool({ + description: 'List the custom reports saved for this project', + inputSchema: z.object({ + limit: z + .number() + .int() + .positive() + .max(100) + .default(20) + .describe('Max number of reports to return.'), + }), + execute: async ({ limit }) => { + const { content } = await getContent( + { projectRef, type: 'report', limit }, + undefined, + authHeaders + ) + + return content.map((report) => ({ + id: report.id, + name: report.name, + description: report.description, + visibility: report.visibility, + updated_at: report.updated_at, + chart_count: (report.content as Dashboards.Content).layout?.length ?? 0, + })) + }, + }), + get_report: tool({ + description: + 'Get a single custom report by id, including the resolved SQL for any SQL-based chart blocks it contains.', + inputSchema: z.object({ + id: z.string().describe('The id of the report to fetch.'), + }), + execute: async ({ id }) => { + const report = await getContentById({ projectRef, id }, undefined, authHeaders) + if (report.type !== 'report') { + throw new Error(`Content ${id} is not a report (type: ${report.type})`) + } + + const content = report.content as Dashboards.Content + const layout = await Promise.all( + content.layout.map(async (chart) => { + if (!chart.attribute.startsWith('snippet_')) return chart + + // A SQL-block chart's `id` is the id of its linked `type: 'sql'` content row. + const snippet = await getContentById( + { projectRef, id: chart.id }, + undefined, + authHeaders + ).catch(() => null) + + const sql = + snippet?.type === 'sql' + ? (snippet.content as SqlSnippets.Content).unchecked_sql + : undefined + + return { ...chart, sql } + }) + ) + + return { + id: report.id, + name: report.name, + description: report.description, + visibility: report.visibility, + period_start: content.period_start, + period_end: content.period_end, + interval: content.interval, + layout, + } + }, + }), + } +} diff --git a/apps/studio/lib/constants/infrastructure.ts b/apps/studio/lib/constants/infrastructure.ts index 6da86976f6df0..d25d74cf12578 100644 --- a/apps/studio/lib/constants/infrastructure.ts +++ b/apps/studio/lib/constants/infrastructure.ts @@ -1,4 +1,4 @@ -import { AWS_REGIONS, FLY_REGIONS } from 'shared-data' +import { AWS_REGIONS } from 'shared-data' import type { components } from '@/data/api' import { useCustomContent } from '@/hooks/custom-content/useCustomContent' @@ -8,9 +8,6 @@ export const AWS_REGIONS_DEFAULT = ? AWS_REGIONS.SOUTHEAST_ASIA : AWS_REGIONS.EAST_US_2 -// TO DO, change default to US region for prod -export const FLY_REGIONS_DEFAULT = FLY_REGIONS.SOUTHEAST_ASIA - export const MANAGED_BY = { VERCEL_MARKETPLACE: 'vercel-marketplace', AWS_MARKETPLACE: 'aws-marketplace', @@ -47,12 +44,6 @@ export function useDefaultProvider() { } export const PROVIDERS = { - FLY: { - id: 'FLY', - name: 'Fly.io', - default_region: FLY_REGIONS_DEFAULT, - regions: { ...FLY_REGIONS }, - }, AWS: { id: 'AWS', name: 'AWS', diff --git a/apps/studio/lib/constants/metrics.tsx b/apps/studio/lib/constants/metrics.tsx index 5f17b6b805332..8cafefa76d995 100644 --- a/apps/studio/lib/constants/metrics.tsx +++ b/apps/studio/lib/constants/metrics.tsx @@ -1,5 +1,5 @@ import { Auth, Realtime, Storage } from 'icons' -import { ActivityIcon, DatabaseIcon, HeartIcon, ServerIcon } from 'lucide-react' +import { ActivityIcon, DatabaseIcon, HeartPulseIcon, ServerIcon } from 'lucide-react' import { ReactNode } from 'react' export type Metric = { @@ -16,40 +16,52 @@ type MetricCategory = { key: string } +export const InstanceHealthIcon = ({ + className, + size = 16, +}: { + className?: string + size?: number +}) => + export const METRIC_CATEGORIES = { API: { label: 'All API usage', - icon: (className?: string) => , + icon: (className?: string) => ( + + ), key: 'api', }, API_DATABASE: { label: 'Database API', - icon: (className?: string) => , + icon: (className?: string) => ( + + ), key: 'api_database', }, API_AUTH: { label: 'Authentication', - icon: (className?: string) => , + icon: (className?: string) => , key: 'api_auth', }, API_STORAGE: { label: 'Storage', - icon: (className?: string) => , + icon: (className?: string) => , key: 'api_storage', }, API_REALTIME: { label: 'Realtime', - icon: (className?: string) => , + icon: (className?: string) => , key: 'api_realtime', }, INSTANCE: { label: 'Instance health', - icon: (className?: string) => , + icon: (className?: string) => , key: 'instance', }, SUPAVISOR: { label: 'Supavisor', - icon: (className?: string) => , + icon: (className?: string) => , key: 'supavisor', }, } diff --git a/apps/studio/pages/partners/stripe/projects/login.tsx b/apps/studio/pages/partners/stripe/projects/login.tsx index 4f1d396404ef4..dd19e0ca54a92 100644 --- a/apps/studio/pages/partners/stripe/projects/login.tsx +++ b/apps/studio/pages/partners/stripe/projects/login.tsx @@ -10,6 +10,7 @@ import { ShimmeringLoader } from 'ui-patterns/ShimmeringLoader' import { InterstitialAccountRow, + InterstitialActionError, InterstitialLayout, LogoPair, PartnerLogo, @@ -27,7 +28,7 @@ import type { NextPageWithLayout } from '@/types' const PAGE_TITLE = buildStudioPageTitle({ section: 'Authorize Stripe Projects', brand: 'Supabase' }) -const StripeProjectsLoginPage: NextPageWithLayout = () => { +export const StripeProjectsLoginPage: NextPageWithLayout = () => { const router = useRouter() const { ar_id } = useParams() const signOut = useSignOut() @@ -48,7 +49,14 @@ const StripeProjectsLoginPage: NextPageWithLayout = () => { mutate: confirmAccountRequest, isPending: isConfirmationPending, isSuccess: isConfirmationSuccess, - } = useConfirmAccountRequestMutation() + error: confirmationMutationError, + reset: resetConfirmationError, + } = useConfirmAccountRequestMutation({ + onError: () => undefined, + }) + const confirmationError = confirmationMutationError + ? `Failed to authorize Stripe Projects: ${confirmationMutationError.message}` + : undefined useEffect(() => { if (!router.isReady) return @@ -60,6 +68,7 @@ const StripeProjectsLoginPage: NextPageWithLayout = () => { const handleApprove = async () => { if (!ar_id || isConfirmationPending) return + resetConfirmationError() confirmAccountRequest({ arId: ar_id }) } @@ -155,6 +164,7 @@ const StripeProjectsLoginPage: NextPageWithLayout = () => { +
)} @@ -195,6 +205,7 @@ const StripeProjectsLoginPage: NextPageWithLayout = () => { +
)} diff --git a/apps/studio/pages/project/[ref]/observability/database.tsx b/apps/studio/pages/project/[ref]/observability/database.tsx index 980782d0b92ff..86956d32ab56f 100644 --- a/apps/studio/pages/project/[ref]/observability/database.tsx +++ b/apps/studio/pages/project/[ref]/observability/database.tsx @@ -136,10 +136,7 @@ const DatabaseUsage = () => { ) const entitledFeatures = getEntitlementSetValues() - const isSpendCapEnabled = - entitledFeatures.includes('database') && - !org?.usage_billing_enabled && - project?.cloud_provider !== 'FLY' + const isSpendCapEnabled = entitledFeatures.includes('database') && !org?.usage_billing_enabled const showDiskIOBurstBalanceChart = useFlag('showDiskIOBurstBalanceChart') const showMemoryCommitmentChart = useFlag('showMemoryCommitmentChart') diff --git a/apps/studio/public/img/previews/database-connections-preview.png b/apps/studio/public/img/previews/database-connections-preview.png new file mode 100644 index 0000000000000..c2736bfba8232 Binary files /dev/null and b/apps/studio/public/img/previews/database-connections-preview.png differ diff --git a/apps/studio/tests/pages/stripe-projects-login.test.tsx b/apps/studio/tests/pages/stripe-projects-login.test.tsx new file mode 100644 index 0000000000000..be2c55fdf11cd --- /dev/null +++ b/apps/studio/tests/pages/stripe-projects-login.test.tsx @@ -0,0 +1,81 @@ +import { screen } from '@testing-library/react' +import userEvent from '@testing-library/user-event' +import { HttpResponse } from 'msw' +import { toast } from 'sonner' +import { beforeEach, expect, test, vi } from 'vitest' + +import { StripeProjectsLoginPage } from '@/pages/partners/stripe/projects/login' +import { customRender } from '@/tests/lib/custom-render' +import { addAPIMock, type APIErrorBody } from '@/tests/lib/msw' + +const mocks = vi.hoisted(() => ({ + routerPush: vi.fn(), +})) + +vi.mock('@tanstack/react-query', async (importOriginal) => { + const actual = await importOriginal() + return { + ...actual, + useQuery: () => ({ + data: { + email: 'alex@example.com', + email_matches: true, + linked_organization: { name: 'Acme', slug: 'acme' }, + }, + isPending: false, + isSuccess: true, + isError: false, + error: undefined, + }), + } +}) + +vi.mock('common', async (importOriginal) => { + const actual = await importOriginal() + return { ...actual, useParams: () => ({ ar_id: 'request-id' }) } +}) + +vi.mock('next/router', () => ({ + useRouter: () => ({ isReady: true, push: mocks.routerPush }), +})) + +vi.mock('sonner', () => ({ + toast: { error: vi.fn() }, +})) + +vi.mock('@/lib/auth', () => ({ + useSignOut: () => vi.fn(), +})) + +vi.mock('@/lib/profile', () => ({ + useProfileNameAndPicture: () => ({ + username: 'alex', + primaryEmail: 'alex@example.com', + avatarUrl: undefined, + }), +})) + +beforeEach(() => { + vi.clearAllMocks() +}) + +test('shows confirmation failures inline and keeps authorization available', async () => { + const user = userEvent.setup() + addAPIMock({ + method: 'post', + path: '/platform/stripe/projects/provisioning/account_requests/:id/confirm', + response: () => + HttpResponse.json({ message: 'Confirmation failed' }, { status: 500 }), + }) + + customRender() + + await user.click(screen.getByRole('button', { name: 'Authorize Stripe Projects' })) + + const errorMessage = await screen.findByText( + 'Failed to authorize Stripe Projects: Confirmation failed' + ) + expect(errorMessage).toHaveAttribute('role', 'alert') + expect(toast.error).not.toHaveBeenCalled() + expect(screen.getByRole('button', { name: 'Authorize Stripe Projects' })).toBeEnabled() +}) diff --git a/docker/.gitignore b/docker/.gitignore index 1f565391affe0..bed55270caa80 100644 --- a/docker/.gitignore +++ b/docker/.gitignore @@ -1,6 +1,12 @@ volumes/db/data volumes/storage +volumes/snippets +volumes/functions/** +!volumes/functions/main/ +volumes/functions/main/** +!volumes/functions/main/index.ts .env test.http docker-compose.override.yml .supabase-version +backups \ No newline at end of file diff --git a/docker/README.md b/docker/README.md index 56ebaf07cb054..9d710607c9a20 100644 --- a/docker/README.md +++ b/docker/README.md @@ -45,19 +45,20 @@ This Docker Compose configuration includes the following services: - **[versions.md](./versions.md)** - Complete history of Docker image versions for rollback reference - **[Ask DeepWiki / Supabase](https://deepwiki.com/supabase/supabase/3-self-hosted-deployment)** - DeepWiki-generated description of self-hosted configuration - **[CONFIG.md](./CONFIG.md)** - Configuration reference for all environment variables +- **[Update your deployment](https://supabase.com/docs/guides/self-hosting/updating)** - Update an existing deployment with `update.sh` ## Updates -To update your self-hosted Supabase instance: +Back up your database, then: -1. Review [CHANGELOG.md](./CHANGELOG.md) for breaking changes -2. Check [versions.md](./versions.md) for new image versions -3. Update `docker-compose.yml` if there are configuration changes -4. Pull the latest images: `docker compose pull` -5. Stop services: `docker compose down` -6. Start services with new configuration: `docker compose up -d` +```sh +sh update.sh --dry-run # optional preview +sh update.sh +sh run.sh pull && sh run.sh recreate +``` -**Note:** Consider to always backup your database before updating. +See the **[update guide](https://supabase.com/docs/guides/self-hosting/updating)** for conflicts, +breaking changes, pinning a release, and older installs without `.supabase-version`. ## Community & Support diff --git a/docker/tests/test-update.sh b/docker/tests/test-update.sh new file mode 100755 index 0000000000000..1165390ee7427 --- /dev/null +++ b/docker/tests/test-update.sh @@ -0,0 +1,346 @@ +#!/bin/sh +# +# Hermetic test for update.sh (the self-hosted in-place update script). +# +# Builds a tiny synthetic "upstream" git repo with two tagged releases +# (self-hosted/v0.9.0 -> self-hosted/v1.1.0; 1.0.0 exists only as a manifest key), +# where the target ships a breaking-change manifest with entries at the base and +# inside the window. It then simulates a configured deployment based on v0.9.0 +# and runs update.sh via a SUPABASE_REPO_URL override (no network), asserting: +# the 3-way merge preserves secrets/data/overrides, adds new .env keys (but not +# ones the user commented out), applies clean merges, reports real conflicts, +# honors .gitignore for user-owned paths, surfaces only the in-window gate +# entries (base-version entry excluded), and advances the stamp ONLY on a clean +# apply. Also covers the clean-apply path, default-target resolution, --from, +# --dry-run, the missing-stamp report-only path, and a malformed manifest being +# refused. +# +# Usage: +# sh tests/test-update.sh # run from the docker/ directory +# + +set -eu + +# Isolate from the developer's global/system git config (gpgsign, hooksPath, +# templateDir, core.excludesfile) so neither the synthetic commits nor update.sh's +# internal git calls (fetch, merge-file, check-ignore) are affected. Exported so +# the update.sh subprocess inherits them too. +export GIT_CONFIG_GLOBAL=/dev/null +export GIT_CONFIG_NOSYSTEM=1 + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +DOCKER_DIR=$(dirname "$SCRIPT_DIR") +UPDATE_SH="$DOCKER_DIR/update.sh" + +[ -f "$UPDATE_SH" ] || { echo "ERROR: $UPDATE_SH not found"; exit 1; } + +WORK=$(mktemp -d) +cleanup() { rm -rf "$WORK"; } +trap cleanup EXIT INT TERM + +PASS=0 +FAIL=0 +ok() { PASS=$((PASS+1)); printf " ok - %s\n" "$1"; } +bad() { FAIL=$((FAIL+1)); printf " FAIL - %s\n" "$1"; } + +assert_file_contains() { # + if grep -qF "$2" "$1" 2>/dev/null; then ok "$3"; else bad "$3 (missing '$2' in $1)"; fi +} +assert_file_missing_pattern() { # + if grep -qF "$2" "$1" 2>/dev/null; then bad "$3 (unexpected '$2' in $1)"; else ok "$3"; fi +} +assert_line() { # + if grep -qE "$2" "$1" 2>/dev/null; then ok "$3"; else bad "$3 (no line matching /$2/ in $1)"; fi +} +assert_no_line() { # + if grep -qE "$2" "$1" 2>/dev/null; then bad "$3 (unexpected line matching /$2/ in $1)"; else ok "$3"; fi +} +assert_path_exists() { # + if [ -e "$1" ]; then ok "$2"; else bad "$2 ($1 missing)"; fi +} +assert_path_absent() { # + if [ -e "$1" ]; then bad "$2 ($1 should not exist)"; else ok "$2"; fi +} + +# portable in-place sed (BSD + GNU): sedi +sedi() { sed "$1" "$2" > "$2.tmp" && mv "$2.tmp" "$2"; } + +# --- 1. Build the synthetic upstream repo ----------------------------------- + +SRC="$WORK/upstream" +mkdir -p "$SRC/docker/volumes/api" +cd "$SRC" +git init -q +git config user.email t@t.t +git config user.name t + +cat > docker/docker-compose.yml <<'EOF' +services: + studio: + image: supabase/studio:OLD + db: + image: supabase/postgres:15 +EOF +cat > docker/.env.example <<'EOF' +POSTGRES_PASSWORD=changeme +JWT_SECRET=changeme +KEEP_ME=base-default +EOF +printf 'base kong\n' > docker/volumes/api/kong.yml +printf 'remove me\n' > docker/old-only.txt +cp "$DOCKER_DIR/.gitignore" docker/.gitignore +mkdir -p docker/volumes/functions/main +printf 'base main\n' > docker/volumes/functions/main/index.ts +git add -A && git commit -qm base && git tag self-hosted/v0.9.0 + +# target commit +cat > docker/docker-compose.yml <<'EOF' +services: + studio: + image: supabase/studio:NEW + db: + image: supabase/postgres:17 +EOF +cat > docker/.env.example <<'EOF' +POSTGRES_PASSWORD=changeme +JWT_SECRET=changeme +KEEP_ME=base-default +NEW_KEY=new-default +EOF +printf 'brand new\n' > docker/new-only.txt +printf 'target main\n' > docker/volumes/functions/main/index.ts +mkdir -p docker/volumes/functions/hello +printf 'target hello\n' > docker/volumes/functions/hello/index.ts +# A gitignored sample under volumes/snippets shipped by upstream: must NOT +# overwrite the user's file of the same name (exercises is_excluded directly). +mkdir -p docker/volumes/snippets +printf 'VENDOR SEED\n' > docker/volumes/snippets/seed.sql +# Manifest with entries at/below and inside the window: +# 0.9.0 == the base -> must be EXCLUDED (window is half-open: (base, target]). +# 1.0.0 inside -> surfaces (carries requires+gate). +# 1.1.0 == target -> surfaces; requires-less and sorts LAST (no _schema after), +# guarding the set -e regression where a requires-less final entry +# aborted the script. Do NOT add a version key after 1.1.0. +cat > docker/upgrades.json <<'EOF' +{ + "0.9.0": { + "breaking": true + }, + "1.0.0": { + "breaking": true, + "gate": "utils/demo-migrate.sh", + "migration_guide_url": "https://example.test/guide", + "requires": ["Run the demo migration first."] + }, + "1.1.0": { + "breaking": true + } +} +EOF +git rm -q docker/old-only.txt +git add -A +git add -f docker/volumes/functions/hello/index.ts docker/volumes/snippets/seed.sql +# Release tag for the target / default-target (latest self-hosted/v*) path. +git commit -qm target && git tag self-hosted/v1.1.0 + +# A ref whose upgrades.json is valid JSON but NOT an object. update.sh must +# refuse (die) rather than silently skip the gate. Named so latest_release_tag +# ignores it (not self-hosted/v*), leaving the default-target path on v1.1.0. +printf '["valid JSON, but not an object"]\n' > docker/upgrades.json +git add -A && git commit -qm 'malformed manifest' && git tag malformed-manifest + +# --- helper: lay down a deployment based on v0.9.0 -------------------------- +# make_deploy [conflict] - pass "conflict" to pin the studio image so the +# merge produces a real conflict; omit for a clean apply. + +make_deploy() { # [conflict] + d="$1" + _mode="${2:-clean}" + mkdir -p "$d" + git -C "$SRC" archive self-hosted/v0.9.0 docker | tar -x -C "$d" --strip-components=1 + cp "$UPDATE_SH" "$d/update.sh" + # configured .env: real secret, an extra user key, and KEEP_ME commented out + # on purpose (must NOT be re-added by the .env key-union). + cp "$d/.env.example" "$d/.env" + sedi "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=test-secret-123/" "$d/.env" + sedi "s/^KEEP_ME=/#KEEP_ME=/" "$d/.env" + printf 'EXTRA_USER_KEY=mine\n' >> "$d/.env" + # user-owned override (must never be touched) + printf 'services: {}\n# my override\n' > "$d/docker-compose.override.yml" + # data dirs with sentinels (must never be touched) + mkdir -p "$d/volumes/db/data" "$d/volumes/storage" + printf 'DBDATA\n' > "$d/volumes/db/data/keep.txt" + printf 'OBJ\n' > "$d/volumes/storage/keep.txt" + # user adds a line to kong (upstream unchanged -> clean merge, must survive) + printf 'user added line\n' >> "$d/volumes/api/kong.yml" + # user-owned paths per .gitignore (must not be touched by the merge) + mkdir -p "$d/volumes/snippets" "$d/volumes/functions/my-fn" + printf 'USER_SNIPPET\n' > "$d/volumes/snippets/user.sql" + printf 'user fn\n' > "$d/volumes/functions/my-fn/index.ts" + # user file at the SAME path as the vendor snippet shipped at target: + # is_excluded must skip it so the user's content survives. + printf 'USER SEED\n' > "$d/volumes/snippets/seed.sql" + # legacy sample fn in snapshot at target but gitignored - must not overwrite + mkdir -p "$d/volumes/functions/hello" + printf 'user hello\n' > "$d/volumes/functions/hello/index.ts" + # version stamp pointing at the base (ref only; update.sh derives the rest) + printf 'ref=self-hosted/v0.9.0\n' > "$d/.supabase-version" + if [ "$_mode" = "conflict" ]; then + # user pins the studio image (same line upstream changes -> conflict) + sedi "s#supabase/studio:OLD#supabase/studio:USER-PINNED#" "$d/docker-compose.yml" + fi +} + +echo "" +echo "=== update.sh: apply path (with a conflict) ===" + +DEPLOY="$WORK/deploy" +make_deploy "$DEPLOY" conflict +cd "$DEPLOY" +rc=0 +SUPABASE_REPO_URL="$SRC" sh ./update.sh --to self-hosted/v1.1.0 --yes > "$WORK/apply.log" 2>&1 || rc=$? + +sed 's/^/ | /' "$WORK/apply.log" + +if [ "$rc" = "2" ]; then ok "exit status 2 signals conflicts"; else bad "expected exit 2 (conflicts), got $rc"; fi +assert_file_contains ".env" "POSTGRES_PASSWORD=test-secret-123" "user secret preserved" +assert_file_contains ".env" "NEW_KEY=new-default" "new .env key appended" +assert_file_contains ".env" "EXTRA_USER_KEY=mine" "extra user key kept" +assert_line ".env" "^#KEEP_ME=base-default" "user's commented key left commented" +assert_no_line ".env" "^KEEP_ME=" "commented .env key not re-added uncommented" +assert_file_contains "docker-compose.override.yml" "my override" "override untouched" +assert_file_contains "volumes/db/data/keep.txt" "DBDATA" "db data untouched" +assert_file_contains "volumes/storage/keep.txt" "OBJ" "storage untouched" +assert_file_contains "docker-compose.yml" "<<<<<<<" "conflict open marker written" +assert_file_contains "docker-compose.yml" "=======" "conflict separator written" +assert_file_contains "docker-compose.yml" ">>>>>>>" "conflict close marker written" +assert_file_contains "docker-compose.yml" "USER-PINNED" "user value present in conflict" +assert_file_contains "docker-compose.yml" "supabase/studio:NEW" "upstream value present in conflict" +assert_file_contains "docker-compose.yml" "supabase/postgres:17" "non-conflicting line merged (pg17)" +assert_path_exists "new-only.txt" "new upstream file added" +assert_path_exists "old-only.txt" "removed-upstream file left in place" +assert_file_contains "volumes/api/kong.yml" "user added line" "clean merge preserved user line" +assert_file_contains ".supabase-version" "ref=self-hosted/v0.9.0" "stamp NOT advanced on conflict" +assert_file_contains "$WORK/apply.log" "Files with merge conflicts" "conflicts reported in summary" +assert_file_contains "$WORK/apply.log" "[1.0.0]" "manifest entry 1.0.0 surfaced" +assert_file_contains "$WORK/apply.log" "[1.1.0] BREAKING" "requires-less last entry surfaced (no set -e abort)" +assert_file_missing_pattern "$WORK/apply.log" "[0.9.0]" "base-version entry excluded (window lower bound is half-open)" +assert_file_contains "$WORK/apply.log" "Run the demo migration first." "manifest gate step surfaced" +assert_file_contains "$WORK/apply.log" "utils/demo-migrate.sh" "manifest gate script surfaced" +assert_file_contains "$WORK/apply.log" "example.test/guide" "manifest migration guide surfaced" +assert_file_contains "$WORK/apply.log" "gone from the new .env.example" ".env key-removal section shown" +assert_file_contains "$WORK/apply.log" "EXTRA_USER_KEY" "removed .env key listed in report" +if ls backups/*.tgz >/dev/null 2>&1; then + ok "backup archive created" + for _bk in backups/*.tgz; do break; done + tar tzf "$_bk" > "$WORK/bk.list" 2>/dev/null || true + assert_file_contains "$WORK/bk.list" ".env" "backup includes .env" + assert_file_missing_pattern "$WORK/bk.list" "volumes/db/data" "backup excludes db data dir" + assert_file_missing_pattern "$WORK/bk.list" "volumes/storage" "backup excludes storage dir" + assert_file_missing_pattern "$WORK/bk.list" "backups/" "backup excludes backups dir" +else + bad "no backup archive" +fi +assert_file_contains "volumes/snippets/user.sql" "USER_SNIPPET" "snippets left untouched" +# seed.sql and hello/index.ts are the only files that are BOTH shipped in the +# target snapshot AND gitignored, so they are the real is_excluded coverage. +# Assert the user's content survives AND no vendor content / conflict markers +# leaked in - i.e. the file was skipped, not merged/conflicted. +assert_file_contains "volumes/snippets/seed.sql" "USER SEED" "gitignored snippet: user content kept" +assert_file_missing_pattern "volumes/snippets/seed.sql" "VENDOR SEED" "gitignored snippet: no vendor content" +assert_file_missing_pattern "volumes/snippets/seed.sql" "<<<<<<<" "gitignored snippet: not conflicted (skipped)" +assert_file_contains "volumes/functions/my-fn/index.ts" "user fn" "custom edge fn left untouched" +assert_file_contains "volumes/functions/main/index.ts" "target main" "vendor main/index.ts updated" +assert_file_contains "volumes/functions/hello/index.ts" "user hello" "gitignored fn: user content kept" +assert_file_missing_pattern "volumes/functions/hello/index.ts" "target hello" "gitignored fn: no vendor content" +assert_file_missing_pattern "volumes/functions/hello/index.ts" "<<<<<<<" "gitignored fn: not conflicted (skipped)" + +echo "" +echo "=== update.sh: clean apply (no conflict) advances the stamp and exits 0 ===" + +CLEAN="$WORK/clean" +make_deploy "$CLEAN" +cd "$CLEAN" +rc=0 +SUPABASE_REPO_URL="$SRC" sh ./update.sh --to self-hosted/v1.1.0 --yes > "$WORK/clean.log" 2>&1 || rc=$? +if [ "$rc" = "0" ]; then ok "clean apply exits 0"; else bad "clean apply expected exit 0, got $rc"; fi +assert_file_contains "$WORK/clean.log" "Update applied cleanly." "clean apply announced" +assert_file_missing_pattern "docker-compose.yml" "<<<<<<<" "clean apply wrote no conflict markers" +assert_file_contains ".supabase-version" "ref=self-hosted/v1.1.0" "stamp advanced on clean apply" +assert_file_contains ".env" "NEW_KEY=new-default" "new .env key appended (clean)" +assert_file_contains "docker-compose.yml" "supabase/studio:NEW" "vendor file updated (clean)" +assert_file_contains "volumes/api/kong.yml" "user added line" "clean merge preserved user line (clean)" + +echo "" +echo "=== update.sh: default target resolves to latest self-hosted/v* tag ===" + +TAGD="$WORK/tagdefault" +make_deploy "$TAGD" +cd "$TAGD" +SUPABASE_REPO_URL="$SRC" sh ./update.sh --yes > "$WORK/tag.log" 2>&1 || true +assert_file_contains "$WORK/tag.log" "Latest release tag: self-hosted/v1.1.0" "resolved latest release tag (no --to)" +assert_file_contains ".supabase-version" "ref=self-hosted/v1.1.0" "stamp advanced to the tag" +assert_file_contains ".env" "NEW_KEY=new-default" "update applied via default target" + +echo "" +echo "=== update.sh: --from supplies the base when the stamp is missing ===" + +FROMD="$WORK/fromd" +make_deploy "$FROMD" +cd "$FROMD" +rm -f .supabase-version +rc=0 +SUPABASE_REPO_URL="$SRC" sh ./update.sh --from self-hosted/v0.9.0 --to self-hosted/v1.1.0 --yes > "$WORK/from.log" 2>&1 || rc=$? +assert_file_missing_pattern "$WORK/from.log" "REPORT-ONLY" "--from performs a real update (not report-only)" +assert_file_contains ".env" "NEW_KEY=new-default" "--from applied the update" +assert_file_contains ".supabase-version" "ref=self-hosted/v1.1.0" "--from advanced the stamp" + +echo "" +echo "=== update.sh: --dry-run writes nothing ===" + +DRYD="$WORK/dry" +make_deploy "$DRYD" conflict +cd "$DRYD" +SUPABASE_REPO_URL="$SRC" sh ./update.sh --to self-hosted/v1.1.0 --dry-run > "$WORK/dry.log" 2>&1 || true +assert_file_missing_pattern ".env" "NEW_KEY" "dry-run did not append env key" +assert_file_missing_pattern "docker-compose.yml" "<<<<<<<" "dry-run did not write conflict" +assert_file_contains ".supabase-version" "ref=self-hosted/v0.9.0" "dry-run left stamp unchanged" +assert_path_absent "backups" "dry-run took no backup" +assert_file_contains "$WORK/dry.log" "DRY RUN" "dry-run labeled output" + +echo "" +echo "=== update.sh: missing stamp -> report-only (still surfaces the gate) ===" + +MISS="$WORK/miss" +make_deploy "$MISS" +cd "$MISS" +rm -f .supabase-version +rc=0 +SUPABASE_REPO_URL="$SRC" sh ./update.sh --to self-hosted/v1.1.0 > "$WORK/miss.log" 2>&1 || rc=$? +if [ "$rc" = "0" ]; then ok "report-only exits 0"; else bad "report-only expected exit 0, got $rc"; fi +assert_file_contains "$WORK/miss.log" "REPORT-ONLY" "report-only mode announced" +assert_file_missing_pattern ".env" "NEW_KEY" "report-only wrote nothing to .env" +assert_path_absent "backups" "report-only took no backup" +assert_file_contains "$WORK/miss.log" "Breaking changes / required manual steps" "report-only surfaces the gate" +assert_file_contains "$WORK/miss.log" "[1.0.0]" "report-only lists in-range breaking release" +assert_file_contains "$WORK/miss.log" "[0.9.0]" "report-only (open lower bound) includes the base-version entry" + +echo "" +echo "=== update.sh: malformed manifest -> refuses (dies), writes nothing ===" + +BADM="$WORK/badmanifest" +make_deploy "$BADM" +cd "$BADM" +rc=0 +SUPABASE_REPO_URL="$SRC" sh ./update.sh --to malformed-manifest --yes > "$WORK/bad.log" 2>&1 || rc=$? +if [ "$rc" != "0" ] && [ "$rc" != "2" ]; then ok "malformed manifest aborts (die, not a normal exit)"; else bad "expected die (non-0, non-2), got $rc"; fi +assert_file_contains "$WORK/bad.log" "not a valid JSON object" "malformed-manifest error surfaced" +assert_file_missing_pattern ".env" "NEW_KEY" "malformed manifest: .env untouched" +assert_path_absent "backups" "malformed manifest: no backup taken" +assert_file_contains ".supabase-version" "ref=self-hosted/v0.9.0" "malformed manifest: stamp not advanced" + +# --- summary ----------------------------------------------------------------- + +echo "" +echo "=== Result: $PASS passed, $FAIL failed ===" +[ "$FAIL" = "0" ] || exit 1 diff --git a/docker/tests/test-upgrades-manifest.sh b/docker/tests/test-upgrades-manifest.sh new file mode 100755 index 0000000000000..4fa6a3e2e67b8 --- /dev/null +++ b/docker/tests/test-upgrades-manifest.sh @@ -0,0 +1,90 @@ +#!/bin/sh +# +# Validate the upgrade manifest (upgrades.json), which update.sh reads with jq. +# +# - json: upgrades.json is valid JSON +# - keys: top-level keys are bare-semver versions (e.g. "0.7.0"), plus the +# optional "_schema" documentation block +# - schema: each version-keyed entry has only known fields, with valid types +# (an unknown/misspelled key like "breakng" would silently disarm +# its gate, so it is rejected here) +# - gate: any non-null "gate" points at a script that exists in the repo +# +# The manifest is the source of truth for gating; the CHANGELOG is display only, +# so this test deliberately does NOT cross-check the two. Requires jq (already a +# runtime dependency of update.sh); no yq, no generation step. +# +# Usage: +# sh tests/test-upgrades-manifest.sh # run from the docker/ directory +# +set -eu + +SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd) +DOCKER_DIR=$(dirname "$SCRIPT_DIR") +cd "$DOCKER_DIR" + +JSON=upgrades.json + +command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required"; exit 1; } +[ -f "$JSON" ] || { echo "ERROR: $JSON missing"; exit 1; } + +TMP=$(mktemp -d) +trap 'rm -rf "$TMP"' EXIT INT TERM + +PASS=0; FAIL=0 +ok() { PASS=$((PASS+1)); printf " ok - %s\n" "$1"; } +bad() { FAIL=$((FAIL+1)); printf " FAIL - %s\n" "$1"; } + +echo "" +echo "=== upgrades.json is valid JSON ===" +if jq -e . "$JSON" >/dev/null 2>"$TMP/err"; then + ok "upgrades.json parses" +else + bad "upgrades.json is not valid JSON: $(cat "$TMP/err" 2>/dev/null)" + echo "=== Result: $PASS passed, $FAIL failed ==="; exit 1 +fi + +echo "" +echo "=== top-level keys are versions (or _schema) ===" +for k in $(jq -r 'keys[]' "$JSON"); do + case "$k" in + _schema) ok "doc block '_schema' present" ;; + [0-9]*.[0-9]*) ok "version key $k" ;; + *) bad "unexpected top-level key '$k' (want bare semver like 0.7.0)" ;; + esac +done + +echo "" +echo "=== version-keyed entries have only known fields, with valid types ===" +for k in $(jq -r 'keys[]' "$JSON"); do + case "$k" in [0-9]*.[0-9]*) ;; *) continue ;; esac + errs=$(jq -r --arg k "$k" '.[$k] as $e + | (($e | keys) - ["breaking", "gate", "migration_guide_url", "requires"]) as $unknown + | [ (if ($e.breaking != null) and (($e.breaking|type) != "boolean") then "breaking must be bool" else empty end), + (if ($e.gate != null) and (($e.gate|type) != "string") then "gate must be string|null" else empty end), + (if ($e.migration_guide_url != null) and (($e.migration_guide_url|type) != "string") then "migration_guide_url must be string|null" else empty end), + (if ($e.requires != null) and (($e.requires|type) != "array") then "requires must be array" else empty end), + (if ($unknown | length) > 0 then "unknown field(s) (typo?): " + ($unknown | join(", ")) else empty end) + ] | join("; ")' "$JSON") + if [ -z "$errs" ]; then ok "entry $k valid"; else bad "entry $k: $errs"; fi +done + +echo "" +echo "=== gate scripts referenced by entries exist ===" +checked=0 +for k in $(jq -r 'keys[]' "$JSON"); do + case "$k" in [0-9]*.[0-9]*) ;; *) continue ;; esac + gate=$(jq -r --arg k "$k" '.[$k].gate // empty' "$JSON") + [ -n "$gate" ] || continue + checked=$((checked+1)) + if [ -f "$gate" ]; then + ok "gate for $k exists: $gate" + else + bad "gate for $k missing: $gate" + fi +done +[ "$checked" = 0 ] && echo " (no entries reference a gate script)" + +echo "" +echo "=== Result: $PASS passed, $FAIL failed ===" +[ "$FAIL" = 0 ] || exit 1 diff --git a/docker/update.sh b/docker/update.sh new file mode 100755 index 0000000000000..b23151d34c29a --- /dev/null +++ b/docker/update.sh @@ -0,0 +1,666 @@ +#!/bin/sh +# +# Update an existing self-hosted Supabase deployment in place. +# +# The deployment directory mixes vendor-owned files (docker-compose.yml, the +# override files, volumes/*, scripts, .env.example) with user-owned state +# (.env, docker-compose.override.yml, volumes/db/data, volumes/storage, etc.). +# This script pulls a newer version of the Supabase files on top of yours +# using a 3-way merge against the version you started from, so local edits +# survive and genuine conflicts are surfaced rather than silently overwritten. +# +# The version you started from is recorded in .supabase-version (written by +# setup.sh). If it is missing, pass --from or follow the printed guidance. +# +# What it never touches: .env values you set, docker-compose.override.yml, and +# the data directories (volumes/db/data, volumes/storage, etc.). New keys from +# .env.example are appended to your .env; existing values are kept as-is. +# +# By default it updates to the latest self-hosted/v* release tag (or 'master' +# until the first tag exists). Pass --to to pin a specific tag/branch. +# +# Usage: +# sh update.sh # update to the latest release tag +# sh update.sh --dry-run # show what would change, write nothing +# sh update.sh --to # update to a specific tag/branch +# sh update.sh --from # base to merge from (if no .supabase-version) +# sh update.sh --yes # don't prompt, even on breaking changes +# +# Env: +# SUPABASE_REPO_URL Override the upstream repo (default: github supabase/supabase) +# +# Documentation: https://supabase.com/docs/guides/self-hosting/updating +# + +set -e + +cd "$(dirname "$0")" + +# Pipeline (see main at the bottom): +# resolve refs -> fetch base+target snapshots -> [report-only exit] +# -> build manifest gate -> confirm_gate (before any writes) +# -> backup → merge vendor files + .env keys -> summary → stamp +# +# Three trees for every vendor file path: +# - base - upstream at BASE_REF (.supabase-version ref=, or --from) +# - target - upstream at TARGET_REF (--to, or latest self-hosted/v* tag) +# - user's - the deployment directory (cwd); _not_ a git checkout +# +# Git is only used to fetch snapshots (fetch_snapshot) and to run git merge-file. +# +# Breaking-change gate (upgrades.json on the target snapshot): +# - Keyed by version (e.g. "0.7.0"); window = entries in (BASE_VER, TARGET_VER], +# where the bounds are the base/target refs reduced to bare semver +# (self-hosted/vX.Y.Z -> X.Y.Z) and compared with sort -V. +# - If a bound is not a release tag (a commit SHA, or "master"), that side of +# the window is left open and all applicable entries are shown with a warning. +# - Prompt when an entry has breaking:true or a gate script; runs before +# backup/merge so abort leaves the deployment untouched. +# - CHANGELOG.md is never parsed (update.sh only points users at it); routine +# "requires compose update" items are applied by the merge, not listed here. +# +# User-owned paths skipped during merge are defined in .gitignore (loaded from the +# target snapshot). git check-ignore --no-index applies negation rules (e.g. +# volumes/functions/** ignored except volumes/functions/main/index.ts). +# .git/ is excluded here only - never listed in .gitignore. +# +# .env is never 3-way merged: append missing keys from .env.example only. + +# --- globals (set during main) ----------------------------------------------- + +REPO_URL="${SUPABASE_REPO_URL:-https://github.com/supabase/supabase}" +STAMP_FILE=".supabase-version" +DRY_RUN=0 +ASSUME_YES=0 +TO_REF="" +FROM_REF="" + +TARGET_REF="" +BASE_REF="" +BASE_VER="" +TARGET_VER="" +REPORT_ONLY=0 + +TMP_ROOT="" +TARGET_DIR="" +BASE_DIR="" +REPORT="" +ENV_ADDED="" +ENV_REMOVED="" +GATE_REPORT="" +GATE_REQUIRED=0 +IGNORE_FILE="" +IGNORE_GIT_DIR="" + +# --- logging ----------------------------------------------------------------- + +log() { printf "===> %s\n" "$*"; } +warn() { printf "WARNING: %s\n" "$*" >&2; } +die() { printf "ERROR: %s\n" "$*" >&2; exit 1; } + +print_help() { + awk 'NR==1 {next} /^#/ {sub(/^# ?/,""); print; next} {exit}' "$0" +} + +# --- small helpers ----------------------------------------------------------- + +# load_ignore_file - vendor/user split from the target snapshot's .gitignore. +# Uses a throwaway git dir so check-ignore works on deployment trees that are +# not git repos (and on Apple Git, which rejects --git-dir=/dev/null). +load_ignore_file() { + if [ -f "$TARGET_DIR/.gitignore" ]; then + IGNORE_FILE="$TARGET_DIR/.gitignore" + elif [ -f .gitignore ]; then + IGNORE_FILE="$(pwd)/.gitignore" + else + IGNORE_FILE="" + warn "No .gitignore found; only .git paths are excluded from the merge." + return 0 + fi + case "$IGNORE_FILE" in + /*) ;; + *) IGNORE_FILE="$(cd "$(dirname "$IGNORE_FILE")" && pwd)/$(basename "$IGNORE_FILE")" ;; + esac + IGNORE_GIT_DIR="$TMP_ROOT/ignore-git" + git init -q "$IGNORE_GIT_DIR" +} + +# is_excluded - true when the path is user-owned and must not merge. +is_excluded() { + case "$1" in + .git|.git/*) return 0 ;; + esac + [ -n "$IGNORE_FILE" ] || return 1 + git -C "$IGNORE_GIT_DIR" -c "core.excludesfile=$IGNORE_FILE" \ + check-ignore -q --no-index "$1" 2>/dev/null +} + +read_stamp_ref() { + [ -f "$STAMP_FILE" ] || return 1 + val=$(grep -E '^ref=' "$STAMP_FILE" 2>/dev/null | head -n1 | cut -d= -f2- | tr -d "\r\"' ") + if [ -z "$val" ]; then + val=$(grep -vE '^[[:space:]]*#' "$STAMP_FILE" 2>/dev/null \ + | grep -vE '^[[:space:]]*$' | head -n1 | tr -d "\r\"' ") + fi + [ -n "$val" ] && printf '%s' "$val" +} + +# env_has_key - true if the key appears as KEY=, even commented +# (e.g. "#GOOGLE_ENABLED="), so we never re-add a key the user disabled on purpose. +env_has_key() { + grep -qE "^[[:space:]]*#?[[:space:]]*$1=" "$2" 2>/dev/null +} + +record() { printf '%s:%s\n' "$1" "$2" >> "$REPORT"; } + +count_status() { grep -cE "^$1:" "$REPORT" 2>/dev/null || true; } + +list_status() { + grep -E "^$1:" "$REPORT" 2>/dev/null | cut -d: -f2- | sed 's/^/ /' +} + +# --- upstream snapshots ------------------------------------------------------ + +_sparse_init() { + git -C "$1" init -q + git -C "$1" remote add origin "$REPO_URL" + git -C "$1" config core.sparseCheckout true + git -C "$1" sparse-checkout init --cone >/dev/null 2>&1 + git -C "$1" sparse-checkout set docker >/dev/null 2>&1 +} + +# fetch_snapshot +# Materializes ./docker at into via a shallow fetch. Also the +# seam an artifact source (tarball + sha256) would slot into later. +fetch_snapshot() { + _ref="$1" + _dest="$2" + _work=$(mktemp -d "$TMP_ROOT/fetch.XXXXXX") + if _sparse_init "$_work" \ + && git -C "$_work" fetch --depth=1 -q origin "$_ref" 2>/dev/null \ + && git -C "$_work" checkout -q FETCH_HEAD 2>/dev/null \ + && [ -d "$_work/docker" ]; then + mkdir -p "$_dest" + cp -rf "$_work/docker/." "$_dest/" + rm -rf "$_work" + else + rm -rf "$_work" + return 1 + fi +} + +latest_release_tag() { + git ls-remote --tags --refs "$REPO_URL" 2>/dev/null \ + | sed 's#^.*refs/tags/##' \ + | grep -E '^self-hosted/v[0-9]' \ + | sort -V | tail -n1 +} + +list_files() { + ( cd "$1" && find . -type f | sed 's|^\./||' | grep -vE '^\.git(/|$)' | sort ) +} + +# normalize_version - reduce a ref to bare semver (0.7.0) for comparison, +# or empty when it is not a self-hosted release tag (commit SHA, "master", …). +normalize_version() { + _v="${1#refs/tags/}" + _v="${_v#self-hosted/}" + _v="${_v#v}" + case "$_v" in + [0-9]*.[0-9]*) printf '%s' "$_v" ;; + *) ;; + esac +} + +# ver_gt A B - true when version A is strictly greater than B (sort -V order). +ver_gt() { + if [ "$1" = "$2" ]; then return 1; fi + [ "$(printf '%s\n%s\n' "$1" "$2" | sort -V | tail -n1)" = "$1" ] +} + +# ver_in_window VER - true when BASE_VER < VER <= TARGET_VER. An empty bound +# leaves that side open (over-reports a gate rather than hiding one). +ver_in_window() { + if [ -n "$TARGET_VER" ] && ver_gt "$1" "$TARGET_VER"; then return 1; fi + if [ -n "$BASE_VER" ] && ! ver_gt "$1" "$BASE_VER"; then return 1; fi + return 0 +} + +# --- ref resolution ---------------------------------------------------------- + +resolve_target_ref() { + if [ -n "$TO_REF" ]; then + TARGET_REF="$TO_REF" + return + fi + TARGET_REF=$(latest_release_tag) + if [ -n "$TARGET_REF" ]; then + log "Latest release tag: $TARGET_REF" + else + TARGET_REF="master" + warn "No self-hosted/v* release tags found; targeting 'master'. Pin a version with --to." + fi +} + +resolve_base_ref() { + REPORT_ONLY=0 + if [ -n "$FROM_REF" ]; then + BASE_REF="$FROM_REF" + elif BASE_REF=$(read_stamp_ref) && [ -n "$BASE_REF" ]; then + : + else + REPORT_ONLY=1 + BASE_REF="" + fi +} + +print_report_only_guidance() { + warn "No $STAMP_FILE found and no --from given; cannot determine the version you started from." + cat >&2 < $STAMP_FILE + 3. Re-run: sh update.sh + +Or supply it inline for this run: sh update.sh --from + +Continuing in REPORT-ONLY mode. NOTE: this is NOT the full set of changes - +without a base version it can only list files and .env keys that are entirely +NEW to you; it CANNOT show which existing files would change or conflict. Record +a base and re-run for the real preview. Nothing will be written. +EOF +} + +fetch_snapshots() { + TARGET_DIR="$TMP_ROOT/target" + log "Fetching target snapshot ($TARGET_REF)" + fetch_snapshot "$TARGET_REF" "$TARGET_DIR" \ + || die "Could not fetch target snapshot '$TARGET_REF' from $REPO_URL" + + if [ "$REPORT_ONLY" = "1" ]; then + return + fi + + BASE_DIR="$TMP_ROOT/base" + log "Fetching base snapshot ($BASE_REF)" + fetch_snapshot "$BASE_REF" "$BASE_DIR" \ + || die "Could not fetch base snapshot '$BASE_REF' from $REPO_URL" +} + +run_report_only() { + log "Files in '$TARGET_REF' you do NOT have yet (brand-new only; existing files that changed are NOT shown here):" + while IFS= read -r f; do + is_excluded "$f" && continue + [ -f "$f" ] || echo " + $f" + done </dev/null 2>&1; then + die "$_manifest is present but is not a valid JSON object; refusing to update without a working breaking-change gate. Please report this to the maintainers." + fi + + if [ -z "$BASE_VER" ] || [ -z "$TARGET_VER" ]; then + warn "Base or target is not a self-hosted/vX.Y.Z tag; cannot compute an exact" + warn "update window. Showing all applicable manual-action releases - review" + warn "which ones apply to your deployment." + fi + + for k in $(jq -r 'keys[]' "$_manifest" 2>/dev/null); do + case "$k" in [0-9]*.[0-9]*) ;; *) continue ;; esac + ver_in_window "$k" || continue + + breaking=$(jq -r --arg k "$k" '.[$k].breaking // false' "$_manifest") + gate=$(jq -r --arg k "$k" '.[$k].gate // empty' "$_manifest") + url=$(jq -r --arg k "$k" '.[$k].migration_guide_url // empty' "$_manifest") + reqs=$(jq -r --arg k "$k" '.[$k].requires[]? // empty' "$_manifest") + + if [ "$breaking" = "true" ] || [ -n "$gate" ]; then + GATE_REQUIRED=1 + fi + + { + [ "$breaking" = "true" ] && echo "[$k] BREAKING" || echo "[$k]" + [ -n "$gate" ] && echo " gate: '$gate' must be run first (see the steps below for the exact command)" + [ -n "$url" ] && echo " guide: $url" + [ -n "$reqs" ] && printf '%s\n' "$reqs" | sed 's/^/ - /' + } >> "$GATE_REPORT" + done + # Explicit success: the loop's last iteration can end on a false test (e.g. + # an entry with no 'requires'), which would otherwise make this function + # return non-zero and abort the whole script under 'set -e'. + return 0 +} + +confirm_gate() { + [ "$GATE_REQUIRED" = "1" ] || return 0 + [ "$DRY_RUN" != "1" ] || return 0 + [ "$ASSUME_YES" != "1" ] || return 0 + + echo "" >&2 + warn "This update requires manual action - review before continuing:" + sed 's/^/ /' "$GATE_REPORT" >&2 + echo "" >&2 + + if { : > /dev/tty; } 2>/dev/null; then + printf "Have you completed the required steps and want to continue? [y/N]: " > /dev/tty + read -r reply < /dev/tty + case "$reply" in + y|Y|yes|YES) return 0 ;; + *) die "Aborted by user. Nothing was modified." ;; + esac + fi + die "Breaking/gated changes present and no controlling terminal to confirm. Re-run with --yes to proceed." +} + +# --- backup ------------------------------------------------------------------ + +take_backup() { + if [ "$DRY_RUN" = "1" ]; then + log "Dry run: no backup taken, nothing will be written." + return 0 + fi + mkdir -p backups + _backup="backups/pre-update-$(date +%Y%m%d-%H%M%S).tgz" + log "Backing up current configuration to $_backup (excluding data directories)" + tar czf "$_backup" \ + --exclude='./backups' \ + --exclude='./volumes/db/data' \ + --exclude='./volumes/storage' \ + . 2>/dev/null || warn "Backup archive reported errors; review $_backup before relying on it." + warn "This does NOT back up your database. Back it up separately before updating." +} + +# --- vendor file merge ------------------------------------------------------- + +apply_file() { + [ "$DRY_RUN" = "1" ] && return 0 + _dir=$(dirname "$1") + [ "$_dir" = "." ] || mkdir -p "$_dir" + cp -f "$2" "$1" +} + +# Per-file 3-way merge (u=yours, b=base snapshot, t=target snapshot): +# no t → keep u; report removed-upstream +# no u → copy t; report new +# u == t → report unchanged +# u == b → copy t; report updated (user never edited) +# else → git merge-file u b t; report merged-clean or CONFLICT +# If b had no file, an empty file stands in for b. +merge_one_file() { + f="$1" + empty="$2" + merged="$TMP_ROOT/merged.out" + + b="$BASE_DIR/$f" + t="$TARGET_DIR/$f" + u="$f" + + if [ ! -f "$t" ]; then + [ -f "$u" ] && record "removed-upstream" "$f" + return 0 + fi + + if [ ! -f "$u" ]; then + apply_file "$f" "$t" + record "new" "$f" + return 0 + fi + + if cmp -s "$u" "$t"; then + record "unchanged" "$f" + return 0 + fi + + base_for_merge="$b" + [ -f "$base_for_merge" ] || base_for_merge="$empty" + + if cmp -s "$u" "$base_for_merge"; then + apply_file "$f" "$t" + record "updated" "$f" + return 0 + fi + + if git merge-file -p -q \ + -L "yours ($f)" -L "base" -L "new ($TARGET_REF)" \ + "$u" "$base_for_merge" "$t" > "$merged" 2>/dev/null; then + [ "$DRY_RUN" != "1" ] && cp -f "$merged" "$u" + record "merged-clean" "$f" + elif [ -s "$merged" ]; then + # Non-zero exit with output = a normal conflict (markers written). + [ "$DRY_RUN" != "1" ] && cp -f "$merged" "$u" + record "CONFLICT" "$f" + else + # git merge-file errored and produced no output; keep the user's file + # intact rather than truncating it to empty. + record "merge-failed" "$f" + fi +} + +merge_vendor_files() { + _empty="$TMP_ROOT/empty" + : > "$_empty" + : > "$REPORT" + + while IFS= read -r f; do + [ -n "$f" ] || continue + is_excluded "$f" && continue + merge_one_file "$f" "$_empty" + done < "$ENV_ADDED" + : > "$ENV_REMOVED" + [ -f "$_example" ] || return 0 + + while IFS= read -r k; do + env_has_key "$k" .env || echo "$k" >> "$ENV_ADDED" + done <>>>>>> markers):" + list_status CONFLICT + fi + if [ "$(count_status merge-failed)" != "0" ]; then + echo "" + warn "Files git could not merge (left unchanged - update these manually):" + list_status merge-failed + fi + if [ "$(count_status merged-clean)" != "0" ]; then + echo "" + log "Files merged cleanly (review recommended):" + list_status merged-clean + fi + if [ "$(count_status removed-upstream)" != "0" ]; then + echo "" + log "Removed upstream but kept in place (you may no longer need these):" + list_status removed-upstream + fi + if [ -s "$ENV_ADDED" ]; then + echo "" + log ".env keys added (review values):" + sed 's/^/ + /' "$ENV_ADDED" + fi + if [ -s "$ENV_REMOVED" ]; then + echo "" + log ".env keys you have that are gone from the new .env.example (review/remove manually):" + sed 's/^/ - /' "$ENV_REMOVED" + fi + if [ -s "$GATE_REPORT" ]; then + echo "" + log "Required manual steps for this update (from upgrades.json):" + sed 's/^/ /' "$GATE_REPORT" + fi + echo "" + log "For what changed in this update, see CHANGELOG.md (from $BASE_REF to $TARGET_REF)." +} + +write_stamp() { + { + echo "# Supabase self-hosted version stamp. Managed by setup.sh / update.sh." + echo "# Do not commit or edit by hand. Records the ref this deployment was based on." + echo "ref=$TARGET_REF" + } > "$STAMP_FILE" +} + +print_next_steps() { + echo "" + log "Next steps:" + echo " 1. Review the changes (git diff, or compare against the backup in backups/)." + echo " 2. sh run.sh pull" + echo " 3. sh run.sh recreate" +} + +# --- main -------------------------------------------------------------------- + +while [ $# -gt 0 ]; do + case "$1" in + --dry-run) DRY_RUN=1; shift ;; + --yes|-y) ASSUME_YES=1; shift ;; + --to) [ $# -ge 2 ] || die "--to requires a argument."; TO_REF="$2"; shift 2 ;; + --from) [ $# -ge 2 ] || die "--from requires a argument."; FROM_REF="$2"; shift 2 ;; + -h|--help) print_help; exit 0 ;; + *) echo "Unknown option: $1" >&2; print_help; exit 1 ;; + esac +done + +[ -f docker-compose.yml ] || die "docker-compose.yml not found in $(pwd). Run this from your deployment directory." +[ -f .env ] || die ".env not found in $(pwd). This does not look like a configured deployment." +command -v git >/dev/null 2>&1 || die "git is required but was not found on PATH." +command -v jq >/dev/null 2>&1 || die "jq is required but was not found on PATH." + +resolve_target_ref +resolve_base_ref +TARGET_VER=$(normalize_version "$TARGET_REF") +BASE_VER=$(normalize_version "$BASE_REF") +[ "$REPORT_ONLY" = "1" ] && print_report_only_guidance + +TMP_ROOT=$(mktemp -d) +REPORT="$TMP_ROOT/report" +ENV_ADDED="$TMP_ROOT/env_added" +ENV_REMOVED="$TMP_ROOT/env_removed" +GATE_REPORT="$TMP_ROOT/gate_report" +trap 'rm -rf "$TMP_ROOT"' EXIT INT TERM + +fetch_snapshots +load_ignore_file + +if [ "$REPORT_ONLY" = "1" ]; then + run_report_only + build_gate_report + if [ -s "$GATE_REPORT" ]; then + echo "" + log "Breaking changes / required manual steps in this range (from upgrades.json):" + sed 's/^/ /' "$GATE_REPORT" + warn "Record a base version (see above) and re-run to apply with the gate enforced." + fi + exit 0 +fi + +build_gate_report +confirm_gate + +take_backup +merge_vendor_files +merge_env_file +print_summary + +if [ "$DRY_RUN" = "1" ]; then + echo "" + log "Dry run complete. Re-run without --dry-run to apply." + exit 0 +fi + +if [ "$(count_status CONFLICT)" != "0" ] || [ "$(count_status merge-failed)" != "0" ]; then + echo "" + warn "Update applied WITH CONFLICTS. Resolve the files listed above (remove the" + warn "<<<<<<< ======= >>>>>>> markers, or fix the files git could not merge)" + warn "before starting the stack." + warn "The version stamp was NOT advanced; it will update on your next clean run." + warn "Exiting with status 2." + exit 2 +fi + +write_stamp +print_next_steps +log "Update applied cleanly." diff --git a/docker/upgrades.json b/docker/upgrades.json new file mode 100644 index 0000000000000..41489506f0044 --- /dev/null +++ b/docker/upgrades.json @@ -0,0 +1,30 @@ +{ + "_schema": { + "description": "Manual-action manifest for self-hosted upgrades, read by update.sh with jq. Hand-edit this file directly; it is the source of truth (no generation step). Keys are self-hosted release versions as bare semver (e.g. \"0.7.0\"), matching the self-hosted/vX.Y.Z tag and the \"## [0.7.0]\" CHANGELOG heading. Only add an entry for a release that needs an action a file diff cannot encode: a data migration, a run-this-first script, or a breaking default. Routine config changes are applied automatically by update.sh's 3-way merge and must NOT be listed here. update.sh gates on entries in (your version, target version], ordered with sort -V.", + "fields": { + "breaking": "bool - requires explicit user confirmation before applying", + "gate": "string|null - script to run before upgrading past this release (e.g. utils/upgrade-pg17.sh)", + "migration_guide_url": "string|null - link to the per-release migration guide", + "requires": "string[] - free-text manual steps shown to the user" + } + }, + "0.6.0": { + "breaking": true, + "gate": "utils/upgrade-pg17.sh", + "migration_guide_url": "https://supabase.com/docs/guides/self-hosting/postgres-upgrade-17", + "requires": [ + "Postgres 17 is now the default. Do NOT start Postgres 17 against an existing Postgres 15 data directory - back up your database first.", + "Run 'sudo bash utils/upgrade-pg17.sh' (needs bash + root) to migrate Postgres 15 -> 17, then recreate containers. To defer, pin Postgres 15 with the docker-compose.pg15.yml override.", + "Includes a security fix for the API gateway (Realtime /api/tenants and /api/openapi routes) - strongly recommended for any instance running Realtime." + ] + }, + "0.7.0": { + "breaking": true, + "gate": null, + "migration_guide_url": "https://github.com/orgs/supabase/discussions/47093", + "requires": [ + "API_EXTERNAL_URL now includes the /auth/v1 path prefix, and SAML SSO endpoints moved to /auth/v1/sso/saml/*. Update custom OAuth provider callback URLs and any SAML configuration accordingly.", + "Anon (publishable) key access to the OpenAPI spec at /rest/v1/ has been removed. Use the service role or secret API key if you relied on it; normal data access via /rest/v1/ is unaffected." + ] + } +} diff --git a/packages/common/constants/local-storage.ts b/packages/common/constants/local-storage.ts index 526f36d42dddd..39f7bf1bd8ab9 100644 --- a/packages/common/constants/local-storage.ts +++ b/packages/common/constants/local-storage.ts @@ -27,6 +27,7 @@ export const LOCAL_STORAGE_KEYS = { UI_PREVIEW_JIT_DB_ACCESS: 'supabase-ui-jit-db-access', UI_PREVIEW_SQL_EDITOR_MANUAL_SAVE: 'supabase-ui-sql-editor-manual-save', UI_PREVIEW_MARKETPLACE: 'supabase-ui-marketplace', + UI_PREVIEW_DATABASE_CONNECTIONS: 'preview-database-connections', AI_ASSISTANT_MCP_OPT_IN: 'ai-assistant-mcp-opt-in', SIGN_IN_CHATGPT_ENABLED: 'siwc-enabled', @@ -102,8 +103,8 @@ export const LOCAL_STORAGE_KEYS = { PROJECT_SECURITY_DISMISSED_AT: (ref: string) => `project-security-dismissed-at-${ref}`, - // Observability banner dismissed - OBSERVABILITY_BANNER_DISMISSED: (ref: string) => `observability-banner-dismissed-${ref}`, + DATABASE_CONNECTIONS_BANNER_DISMISSED: (ref: string) => + `database-connections-banner-dismissed-${ref}`, ORGANIZATION_MARKETPLACE_BANNER_DISMISSED: (orgSlug: string, managedBy: string) => `organization-marketplace-banner-dismissed-${orgSlug}-${managedBy}`, PROJECT_INTEGRATION_BANNER_DISMISSED: (ref: string, integrationSource: string) => diff --git a/packages/common/telemetry-constants.ts b/packages/common/telemetry-constants.ts index fde7ad9de42b7..7ee0d6e52a1ec 100644 --- a/packages/common/telemetry-constants.ts +++ b/packages/common/telemetry-constants.ts @@ -1400,30 +1400,6 @@ export interface ReportsDatabaseGrafanaBannerClickedEvent { groups: TelemetryGroups } -/** - * User clicks on Metrics API banner CTA button in studio Observability pages. - * - * @group Events - * @source studio - * @page /observability/* - */ -export interface MetricsApiBannerCtaButtonClickedEvent { - action: 'metrics_api_banner_cta_button_clicked' - groups: TelemetryGroups -} - -/** - * User clicked the dismiss button on a banner in studio Observability pages. - * - * @group Events - * @source studio - * @page /observability/* - */ -export interface MetricsApiBannerDismissButtonClickedEvent { - action: 'metrics_api_banner_dismiss_button_clicked' - groups: TelemetryGroups -} - /** * User clicks on the Unified Logs banner CTA button in studio project pages. * @@ -1509,6 +1485,33 @@ export interface DatabaseConnectionsLiveModeClickedEvent { groups: TelemetryGroups } +/** + * User clicked the dismiss button on the Database Connections banner in studio project pages. + * + * @group Events + * @source studio + * @page /dashboard/project/{ref}/observability/connections + */ +export interface DatabaseConnectionsBannerDismissButtonClickedEvent { + action: 'database_connections_banner_dismiss_button_clicked' + groups: TelemetryGroups +} + +/** + * User clicked the CTA button on the Database Connections banner in studio project pages. + * + * @group Events + * @source studio + * @page /dashboard/project/{ref}/observability/connections + */ +export interface DatabaseConnectionsBannerCtaButtonClickedEvent { + action: 'database_connections_banner_cta_button_clicked' + properties: { + isEnabled: boolean + } + groups: TelemetryGroups +} + /** * User clicked a metric card PID in the Overview panel of the Database Connections observability page, selecting it in the activity table below. * @@ -3754,8 +3757,6 @@ export type TelemetryEvent = | StudioBillingCancelSubscriptionClickedEvent | StudioPricingSidePanelOpenedEvent | ReportsDatabaseGrafanaBannerClickedEvent - | MetricsApiBannerCtaButtonClickedEvent - | MetricsApiBannerDismissButtonClickedEvent | UnifiedLogsBannerCtaButtonClickedEvent | UnifiedLogsBannerDismissButtonClickedEvent | IndexAdvisorEnableButtonClickedEvent @@ -3765,6 +3766,8 @@ export type TelemetryEvent = | DatabaseConnectionsOverviewMetricCardClickedEvent | DatabaseConnectionsFilterUpdatedEvent | DatabaseConnectionsBlockerViewClickedEvent + | DatabaseConnectionsBannerDismissButtonClickedEvent + | DatabaseConnectionsBannerCtaButtonClickedEvent | SessionTerminateButtonClickedEvent | SessionTerminateSubmittedEvent | IndexAdvisorCreateIndexesButtonClickedEvent diff --git a/packages/icons/__registry__/index.tsx b/packages/icons/__registry__/index.tsx index 93b0d66543573..ef6d1913e9874 100644 --- a/packages/icons/__registry__/index.tsx +++ b/packages/icons/__registry__/index.tsx @@ -8,50 +8,50 @@ export const Index: Record = [ name: "REST-api", componentName: "RESTApi", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name RESTApi\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0zLjIwOTQ3IDEyLjEwNTJDMy4yMDk0NyAxMy40NDAzIDMuNTA3MTUgMTQuNzA2IDQuMDM5NzcgMTUuODM5NE0xMS45OTk3IDMuMzE0OTRDMTAuNjM5MSAzLjMxNDk0IDkuMzUwNjYgMy42MjQwOCA4LjIwMDg1IDQuMTc1OTRNMjAuNzg5OSAxMi4xMDUyQzIwLjc4OTkgMTAuNzU2NiAyMC40ODYyIDkuNDc4OTggMTkuOTQzNSA4LjMzNjk0TTExLjk5OTcgMjAuODk1NEMxMy4zNTc2IDIwLjg5NTQgMTQuNjQzNiAyMC41ODc1IDE1Ljc5MTcgMjAuMDM3N00xNS43OTE3IDIwLjAzNzdDMTYuMzMzNCAyMC44MTggMTcuMjM2IDIxLjMyODkgMTguMjU3OCAyMS4zMjg5QzE5LjkxNDcgMjEuMzI4OSAyMS4yNTc4IDE5Ljk4NTcgMjEuMjU3OCAxOC4zMjg5QzIxLjI1NzggMTYuNjcyIDE5LjkxNDcgMTUuMzI4OSAxOC4yNTc4IDE1LjMyODlDMTYuNjAxIDE1LjMyODkgMTUuMjU3OCAxNi42NzIgMTUuMjU3OCAxOC4zMjg5QzE1LjI1NzggMTguOTYzOSAxNS40NTUxIDE5LjU1MjggMTUuNzkxNyAyMC4wMzc3Wk00LjAzOTc3IDE1LjgzOTRDMy4yNDAyMiAxNi4zNzgyIDIuNzE0MzYgMTcuMjkyMSAyLjcxNDM2IDE4LjMyODlDMi43MTQzNiAxOS45ODU3IDQuMDU3NSAyMS4zMjg5IDUuNzE0MzYgMjEuMzI4OUM3LjM3MTIxIDIxLjMyODkgOC43MTQzNiAxOS45ODU3IDguNzE0MzYgMTguMzI4OUM4LjcxNDM2IDE2LjY3MiA3LjM3MTIxIDE1LjMyODkgNS43MTQzNiAxNS4zMjg5QzUuMDk0MjIgMTUuMzI4OSA0LjUxODAzIDE1LjUxNyA0LjAzOTc3IDE1LjgzOTRaTTguMjAwODUgNC4xNzU5NEM3LjY2MTU4IDMuMzc4OSA2Ljc0OTE1IDIuODU0OTggNS43MTQzNiAyLjg1NDk4QzQuMDU3NSAyLjg1NDk4IDIuNzE0MzYgNC4xOTgxMyAyLjcxNDM2IDUuODU0OThDMi43MTQzNiA3LjUxMTgzIDQuMDU3NSA4Ljg1NDk4IDUuNzE0MzYgOC44NTQ5OEM3LjM3MTIxIDguODU0OTggOC43MTQzNiA3LjUxMTgzIDguNzE0MzYgNS44NTQ5OEM4LjcxNDM2IDUuMjMyOTIgOC41MjUwMyA0LjY1NTA4IDguMjAwODUgNC4xNzU5NFpNMTkuOTQzNSA4LjMzNjk0QzIwLjczNjggNy43OTcwOSAyMS4yNTc4IDYuODg2ODggMjEuMjU3OCA1Ljg1NDk4QzIxLjI1NzggNC4xOTgxMyAxOS45MTQ3IDIuODU0OTggMTguMjU3OCAyLjg1NDk4QzE2LjYwMSAyLjg1NDk4IDE1LjI1NzggNC4xOTgxMyAxNS4yNTc4IDUuODU0OThDMTUuMjU3OCA3LjUxMTgzIDE2LjYwMSA4Ljg1NDk4IDE4LjI1NzggOC44NTQ5OEMxOC44ODI4IDguODU0OTggMTkuNDYzMSA4LjY2Mzg4IDE5Ljk0MzUgOC4zMzY5NFoiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RESTApi = createSupabaseIcon(\n 'RESTApi',\n [\n [\n 'path',\n {\n d: 'M3.20947 12.1052C3.20947 13.4403 3.50715 14.706 4.03977 15.8394M11.9997 3.31494C10.6391 3.31494 9.35066 3.62408 8.20085 4.17594M20.7899 12.1052C20.7899 10.7566 20.4862 9.47898 19.9435 8.33694M11.9997 20.8954C13.3576 20.8954 14.6436 20.5875 15.7917 20.0377M15.7917 20.0377C16.3334 20.818 17.236 21.3289 18.2578 21.3289C19.9147 21.3289 21.2578 19.9857 21.2578 18.3289C21.2578 16.672 19.9147 15.3289 18.2578 15.3289C16.601 15.3289 15.2578 16.672 15.2578 18.3289C15.2578 18.9639 15.4551 19.5528 15.7917 20.0377ZM4.03977 15.8394C3.24022 16.3782 2.71436 17.2921 2.71436 18.3289C2.71436 19.9857 4.0575 21.3289 5.71436 21.3289C7.37121 21.3289 8.71436 19.9857 8.71436 18.3289C8.71436 16.672 7.37121 15.3289 5.71436 15.3289C5.09422 15.3289 4.51803 15.517 4.03977 15.8394ZM8.20085 4.17594C7.66158 3.3789 6.74915 2.85498 5.71436 2.85498C4.0575 2.85498 2.71436 4.19813 2.71436 5.85498C2.71436 7.51183 4.0575 8.85498 5.71436 8.85498C7.37121 8.85498 8.71436 7.51183 8.71436 5.85498C8.71436 5.23292 8.52503 4.65508 8.20085 4.17594ZM19.9435 8.33694C20.7368 7.79709 21.2578 6.88688 21.2578 5.85498C21.2578 4.19813 19.9147 2.85498 18.2578 2.85498C16.601 2.85498 15.2578 4.19813 15.2578 5.85498C15.2578 7.51183 16.601 8.85498 18.2578 8.85498C18.8828 8.85498 19.4631 8.66388 19.9435 8.33694Z',\n key: 'xusdjk',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default RESTApi;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name RESTApi\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTMuMjA5NDcgMTIuMTA1MkMzLjIwOTQ3IDEzLjQ0MDMgMy41MDcxNSAxNC43MDYgNC4wMzk3NyAxNS44Mzk0TTExLjk5OTcgMy4zMTQ5NEMxMC42MzkxIDMuMzE0OTQgOS4zNTA2NiAzLjYyNDA4IDguMjAwODUgNC4xNzU5NE0yMC43ODk5IDEyLjEwNTJDMjAuNzg5OSAxMC43NTY2IDIwLjQ4NjIgOS40Nzg5OCAxOS45NDM1IDguMzM2OTRNMTEuOTk5NyAyMC44OTU0QzEzLjM1NzYgMjAuODk1NCAxNC42NDM2IDIwLjU4NzUgMTUuNzkxNyAyMC4wMzc3TTE1Ljc5MTcgMjAuMDM3N0MxNi4zMzM0IDIwLjgxOCAxNy4yMzYgMjEuMzI4OSAxOC4yNTc4IDIxLjMyODlDMTkuOTE0NyAyMS4zMjg5IDIxLjI1NzggMTkuOTg1NyAyMS4yNTc4IDE4LjMyODlDMjEuMjU3OCAxNi42NzIgMTkuOTE0NyAxNS4zMjg5IDE4LjI1NzggMTUuMzI4OUMxNi42MDEgMTUuMzI4OSAxNS4yNTc4IDE2LjY3MiAxNS4yNTc4IDE4LjMyODlDMTUuMjU3OCAxOC45NjM5IDE1LjQ1NTEgMTkuNTUyOCAxNS43OTE3IDIwLjAzNzdaTTQuMDM5NzcgMTUuODM5NEMzLjI0MDIyIDE2LjM3ODIgMi43MTQzNiAxNy4yOTIxIDIuNzE0MzYgMTguMzI4OUMyLjcxNDM2IDE5Ljk4NTcgNC4wNTc1IDIxLjMyODkgNS43MTQzNiAyMS4zMjg5QzcuMzcxMjEgMjEuMzI4OSA4LjcxNDM2IDE5Ljk4NTcgOC43MTQzNiAxOC4zMjg5QzguNzE0MzYgMTYuNjcyIDcuMzcxMjEgMTUuMzI4OSA1LjcxNDM2IDE1LjMyODlDNS4wOTQyMiAxNS4zMjg5IDQuNTE4MDMgMTUuNTE3IDQuMDM5NzcgMTUuODM5NFpNOC4yMDA4NSA0LjE3NTk0QzcuNjYxNTggMy4zNzg5IDYuNzQ5MTUgMi44NTQ5OCA1LjcxNDM2IDIuODU0OThDNC4wNTc1IDIuODU0OTggMi43MTQzNiA0LjE5ODEzIDIuNzE0MzYgNS44NTQ5OEMyLjcxNDM2IDcuNTExODMgNC4wNTc1IDguODU0OTggNS43MTQzNiA4Ljg1NDk4QzcuMzcxMjEgOC44NTQ5OCA4LjcxNDM2IDcuNTExODMgOC43MTQzNiA1Ljg1NDk4QzguNzE0MzYgNS4yMzI5MiA4LjUyNTAzIDQuNjU1MDggOC4yMDA4NSA0LjE3NTk0Wk0xOS45NDM1IDguMzM2OTRDMjAuNzM2OCA3Ljc5NzA5IDIxLjI1NzggNi44ODY4OCAyMS4yNTc4IDUuODU0OThDMjEuMjU3OCA0LjE5ODEzIDE5LjkxNDcgMi44NTQ5OCAxOC4yNTc4IDIuODU0OThDMTYuNjAxIDIuODU0OTggMTUuMjU3OCA0LjE5ODEzIDE1LjI1NzggNS44NTQ5OEMxNS4yNTc4IDcuNTExODMgMTYuNjAxIDguODU0OTggMTguMjU3OCA4Ljg1NDk4QzE4Ljg4MjggOC44NTQ5OCAxOS40NjMxIDguNjYzODggMTkuOTQzNSA4LjMzNjk0WiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst RESTApi = createSupabaseIcon(\n 'RESTApi',\n [\n [\n 'path',\n {\n d: 'M3.20947 12.1052C3.20947 13.4403 3.50715 14.706 4.03977 15.8394M11.9997 3.31494C10.6391 3.31494 9.35066 3.62408 8.20085 4.17594M20.7899 12.1052C20.7899 10.7566 20.4862 9.47898 19.9435 8.33694M11.9997 20.8954C13.3576 20.8954 14.6436 20.5875 15.7917 20.0377M15.7917 20.0377C16.3334 20.818 17.236 21.3289 18.2578 21.3289C19.9147 21.3289 21.2578 19.9857 21.2578 18.3289C21.2578 16.672 19.9147 15.3289 18.2578 15.3289C16.601 15.3289 15.2578 16.672 15.2578 18.3289C15.2578 18.9639 15.4551 19.5528 15.7917 20.0377ZM4.03977 15.8394C3.24022 16.3782 2.71436 17.2921 2.71436 18.3289C2.71436 19.9857 4.0575 21.3289 5.71436 21.3289C7.37121 21.3289 8.71436 19.9857 8.71436 18.3289C8.71436 16.672 7.37121 15.3289 5.71436 15.3289C5.09422 15.3289 4.51803 15.517 4.03977 15.8394ZM8.20085 4.17594C7.66158 3.3789 6.74915 2.85498 5.71436 2.85498C4.0575 2.85498 2.71436 4.19813 2.71436 5.85498C2.71436 7.51183 4.0575 8.85498 5.71436 8.85498C7.37121 8.85498 8.71436 7.51183 8.71436 5.85498C8.71436 5.23292 8.52503 4.65508 8.20085 4.17594ZM19.9435 8.33694C20.7368 7.79709 21.2578 6.88688 21.2578 5.85498C21.2578 4.19813 19.9147 2.85498 18.2578 2.85498C16.601 2.85498 15.2578 4.19813 15.2578 5.85498C15.2578 7.51183 16.601 8.85498 18.2578 8.85498C18.8828 8.85498 19.4631 8.66388 19.9435 8.33694Z',\n key: 'xusdjk',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default RESTApi;\n", component: React.lazy(() => import('icons/src/icons/REST-api')), import: "import { RESTApi } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { RESTApi } from \"icons\"\n \n " }, { name: "_example-template", componentName: "ExampleTemplate", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ExampleTemplate\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy41IDEzaDYiIC8+CiAgPHBhdGggZD0ibTIgMTYgNC41LTkgNC41IDkiIC8+CiAgPHBhdGggZD0iTTE4IDd2OSIgLz4KICA8cGF0aCBkPSJtMTQgMTIgNCA0IDQtNCIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExampleTemplate = createSupabaseIcon(\n 'ExampleTemplate',\n [\n ['path', { d: 'M3.5 13h6', key: 'p1my2r' }],\n ['path', { d: 'm2 16 4.5-9 4.5 9', key: 'ndf0b3' }],\n ['path', { d: 'M18 7v9', key: 'pknjwm' }],\n ['path', { d: 'm14 12 4 4 4-4', key: 'buelq4' }],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '2',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default ExampleTemplate;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ExampleTemplate\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjEuNSIKICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKPgogIDxwYXRoIGQ9Ik0zLjUgMTNoNiIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjUtOSA0LjUgOSIgLz4KICA8cGF0aCBkPSJNMTggN3Y5IiAvPgogIDxwYXRoIGQ9Im0xNCAxMiA0IDQgNC00IiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExampleTemplate = createSupabaseIcon(\n 'ExampleTemplate',\n [\n ['path', { d: 'M3.5 13h6', key: 'p1my2r' }],\n ['path', { d: 'm2 16 4.5-9 4.5 9', key: 'ndf0b3' }],\n ['path', { d: 'M18 7v9', key: 'pknjwm' }],\n ['path', { d: 'm14 12 4 4 4-4', key: 'buelq4' }],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default ExampleTemplate;\n", component: React.lazy(() => import('icons/src/icons/_example-template')), import: "import { ExampleTemplate } from 'icons'", - svg: "\n \n \n \n \n", + svg: "\n \n \n \n \n", jsx: "import { ExampleTemplate } from \"icons\"\n \n " }, { name: "analytics-bucket", componentName: "AnalyticsBucket", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name AnalyticsBucket\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAgMjBDMjAuNTMwNCAyMCAyMS4wMzkxIDE5Ljc4OTMgMjEuNDE0MiAxOS40MTQyQzIxLjc4OTMgMTkuMDM5MSAyMiAxOC41MzA0IDIyIDE4VjhDMjIgNy40Njk1NyAyMS43ODkzIDYuOTYwODYgMjEuNDE0MiA2LjU4NTc5QzIxLjAzOTEgNi4yMTA3MSAyMC41MzA0IDYgMjAgNkgxMi4xQzExLjc2NTUgNi4wMDMyOCAxMS40MzU1IDUuOTIyNjEgMTEuMTQwMyA1Ljc2NTM4QzEwLjg0NTEgNS42MDgxNSAxMC41OTQgNS4zNzkzOCAxMC40MSA1LjFMOS42IDMuOUM5LjQxNzg5IDMuNjIzNDcgOS4xNjk5NyAzLjM5NjQ4IDguODc4NSAzLjIzOTRDOC41ODcwMiAzLjA4MjMxIDguMjYxMTEgMy4wMDAwNSA3LjkzIDNINEMzLjQ2OTU3IDMgMi45NjA4NiAzLjIxMDcxIDIuNTg1NzkgMy41ODU3OUMyLjIxMDcxIDMuOTYwODYgMiA0LjQ2OTU3IDIgNVYxOEMyIDE4LjUzMDQgMi4yMTA3MSAxOS4wMzkxIDIuNTg1NzkgMTkuNDE0MkMyLjk2MDg2IDE5Ljc4OTMgMy40Njk1NyAyMCA0IDIwSDIwWiIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik03LjUgOVYxNiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEwLjUgMTIuNUwxMC41IDE2IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTMuNSAxNC41TDEzLjUgMTYiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNi41IDExVjE2IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst AnalyticsBucket = createSupabaseIcon(\n 'AnalyticsBucket',\n [\n [\n 'path',\n {\n d: 'M20 20C20.5304 20 21.0391 19.7893 21.4142 19.4142C21.7893 19.0391 22 18.5304 22 18V8C22 7.46957 21.7893 6.96086 21.4142 6.58579C21.0391 6.21071 20.5304 6 20 6H12.1C11.7655 6.00328 11.4355 5.92261 11.1403 5.76538C10.8451 5.60815 10.594 5.37938 10.41 5.1L9.6 3.9C9.41789 3.62347 9.16997 3.39648 8.8785 3.2394C8.58702 3.08231 8.26111 3.00005 7.93 3H4C3.46957 3 2.96086 3.21071 2.58579 3.58579C2.21071 3.96086 2 4.46957 2 5V18C2 18.5304 2.21071 19.0391 2.58579 19.4142C2.96086 19.7893 3.46957 20 4 20H20Z',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1adjqd',\n },\n ],\n [\n 'path',\n {\n d: 'M7.5 9V16',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'yv1rsm',\n },\n ],\n [\n 'path',\n {\n d: 'M10.5 12.5L10.5 16',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '11wax4',\n },\n ],\n [\n 'path',\n {\n d: 'M13.5 14.5L13.5 16',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'qiuup3',\n },\n ],\n [\n 'path',\n {\n d: 'M16.5 11V16',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'gku61r',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default AnalyticsBucket;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name AnalyticsBucket\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMCAyMEMyMC41MzA0IDIwIDIxLjAzOTEgMTkuNzg5MyAyMS40MTQyIDE5LjQxNDJDMjEuNzg5MyAxOS4wMzkxIDIyIDE4LjUzMDQgMjIgMThWOEMyMiA3LjQ2OTU3IDIxLjc4OTMgNi45NjA4NiAyMS40MTQyIDYuNTg1NzlDMjEuMDM5MSA2LjIxMDcxIDIwLjUzMDQgNiAyMCA2SDEyLjFDMTEuNzY1NSA2LjAwMzI4IDExLjQzNTUgNS45MjI2MSAxMS4xNDAzIDUuNzY1MzhDMTAuODQ1MSA1LjYwODE1IDEwLjU5NCA1LjM3OTM4IDEwLjQxIDUuMUw5LjYgMy45QzkuNDE3ODkgMy42MjM0NyA5LjE2OTk3IDMuMzk2NDggOC44Nzg1IDMuMjM5NEM4LjU4NzAyIDMuMDgyMzEgOC4yNjExMSAzLjAwMDA1IDcuOTMgM0g0QzMuNDY5NTcgMyAyLjk2MDg2IDMuMjEwNzEgMi41ODU3OSAzLjU4NTc5QzIuMjEwNzEgMy45NjA4NiAyIDQuNDY5NTcgMiA1VjE4QzIgMTguNTMwNCAyLjIxMDcxIDE5LjAzOTEgMi41ODU3OSAxOS40MTQyQzIuOTYwODYgMTkuNzg5MyAzLjQ2OTU3IDIwIDQgMjBIMjBaIi8+CjxwYXRoIGQ9Ik03LjUgOVYxNiIvPgo8cGF0aCBkPSJNMTAuNSAxMi41TDEwLjUgMTYiLz4KPHBhdGggZD0iTTEzLjUgMTQuNUwxMy41IDE2Ii8+CjxwYXRoIGQ9Ik0xNi41IDExVjE2Ii8+Cjwvc3ZnPgo=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst AnalyticsBucket = createSupabaseIcon(\n 'AnalyticsBucket',\n [\n [\n 'path',\n {\n d: 'M20 20C20.5304 20 21.0391 19.7893 21.4142 19.4142C21.7893 19.0391 22 18.5304 22 18V8C22 7.46957 21.7893 6.96086 21.4142 6.58579C21.0391 6.21071 20.5304 6 20 6H12.1C11.7655 6.00328 11.4355 5.92261 11.1403 5.76538C10.8451 5.60815 10.594 5.37938 10.41 5.1L9.6 3.9C9.41789 3.62347 9.16997 3.39648 8.8785 3.2394C8.58702 3.08231 8.26111 3.00005 7.93 3H4C3.46957 3 2.96086 3.21071 2.58579 3.58579C2.21071 3.96086 2 4.46957 2 5V18C2 18.5304 2.21071 19.0391 2.58579 19.4142C2.96086 19.7893 3.46957 20 4 20H20Z',\n key: '1fllth',\n },\n ],\n ['path', { d: 'M7.5 9V16', key: '1muhf2' }],\n ['path', { d: 'M10.5 12.5L10.5 16', key: '19mfck' }],\n ['path', { d: 'M13.5 14.5L13.5 16', key: '10gg8b' }],\n ['path', { d: 'M16.5 11V16', key: 'gfrkai' }],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default AnalyticsBucket;\n", component: React.lazy(() => import('icons/src/icons/analytics-bucket')), import: "import { AnalyticsBucket } from 'icons'", - svg: "\n\n\n\n\n\n\n", + svg: "\n\n\n\n\n\n\n", jsx: "import { AnalyticsBucket } from \"icons\"\n \n " }, { name: "api-docs", componentName: "ApiDocs", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ApiDocs\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03LjQ0NDM0IDE0LjMzNDdIMTYuNDQ0M003LjQ0NDM0IDExLjMzNDdIMTYuNDQ0M003LjQ0NDM0IDE3LjMzNDdIMTMuNDQ0M00xOS40OTk0IDguNTA3MTRWMTkuMTA1MkMxOS40OTk0IDIwLjIwOTcgMTguNjAzOSAyMS4xMDUyIDE3LjQ5OTQgMjEuMTA1Mkg2LjVDNS4zOTU0MyAyMS4xMDUyIDQuNSAyMC4yMDk3IDQuNSAxOS4xMDUyVjUuMTA1OTZDNC41IDQuMDAxMzkgNS4zOTU0MyAzLjEwNTk2IDYuNSAzLjEwNTk2SDE0LjA3MjNMMTkuNDk5NCA4LjUwNzE0Wk0xOS40NDY1IDguNDgxOTNMMTQuMDcwNCAzLjEwNTk2TDE0LjA3MDEgNy40ODE4NkMxNC4wNzAxIDguMDM0MTggMTQuNTE3OCA4LjQ4MTkzIDE1LjA3MDEgOC40ODE5M0wxOS40NDY1IDguNDgxOTNaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ApiDocs = createSupabaseIcon(\n 'ApiDocs',\n [\n [\n 'path',\n {\n d: 'M7.44434 14.3347H16.4443M7.44434 11.3347H16.4443M7.44434 17.3347H13.4443M19.4994 8.50714V19.1052C19.4994 20.2097 18.6039 21.1052 17.4994 21.1052H6.5C5.39543 21.1052 4.5 20.2097 4.5 19.1052V5.10596C4.5 4.00139 5.39543 3.10596 6.5 3.10596H14.0723L19.4994 8.50714ZM19.4465 8.48193L14.0704 3.10596L14.0701 7.48186C14.0701 8.03418 14.5178 8.48193 15.0701 8.48193L19.4465 8.48193Z',\n key: '2ysat9',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default ApiDocs;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ApiDocs\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTcuNDQ0MzQgMTQuMzM0N0gxNi40NDQzTTcuNDQ0MzQgMTEuMzM0N0gxNi40NDQzTTcuNDQ0MzQgMTcuMzM0N0gxMy40NDQzTTE5LjQ5OTQgOC41MDcxNFYxOS4xMDUyQzE5LjQ5OTQgMjAuMjA5NyAxOC42MDM5IDIxLjEwNTIgMTcuNDk5NCAyMS4xMDUySDYuNUM1LjM5NTQzIDIxLjEwNTIgNC41IDIwLjIwOTcgNC41IDE5LjEwNTJWNS4xMDU5NkM0LjUgNC4wMDEzOSA1LjM5NTQzIDMuMTA1OTYgNi41IDMuMTA1OTZIMTQuMDcyM0wxOS40OTk0IDguNTA3MTRaTTE5LjQ0NjUgOC40ODE5M0wxNC4wNzA0IDMuMTA1OTZMMTQuMDcwMSA3LjQ4MTg2QzE0LjA3MDEgOC4wMzQxOCAxNC41MTc4IDguNDgxOTMgMTUuMDcwMSA4LjQ4MTkzTDE5LjQ0NjUgOC40ODE5M1oiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ApiDocs = createSupabaseIcon(\n 'ApiDocs',\n [\n [\n 'path',\n {\n d: 'M7.44434 14.3347H16.4443M7.44434 11.3347H16.4443M7.44434 17.3347H13.4443M19.4994 8.50714V19.1052C19.4994 20.2097 18.6039 21.1052 17.4994 21.1052H6.5C5.39543 21.1052 4.5 20.2097 4.5 19.1052V5.10596C4.5 4.00139 5.39543 3.10596 6.5 3.10596H14.0723L19.4994 8.50714ZM19.4465 8.48193L14.0704 3.10596L14.0701 7.48186C14.0701 8.03418 14.5178 8.48193 15.0701 8.48193L19.4465 8.48193Z',\n key: '2ysat9',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default ApiDocs;\n", component: React.lazy(() => import('icons/src/icons/api-docs')), import: "import { ApiDocs } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { ApiDocs } from \"icons\"\n \n " }, { name: "auth", componentName: "Auth", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Auth\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik01LjI0MTIxIDE1LjA2NzRIMTIuNzQxMk01LjI0MTIxIDE1LjA2NzRWMTguMDY3NEgxMi43NDEyVjE1LjA2NzRNNS4yNDEyMSAxNS4wNjc0VjEyLjA2NzRIMTIuNzQxMlYxNS4wNjc0TTE1IDcuNjA1NDdWNC42MDU0N0MxNSAyLjk0ODYxIDEzLjY1NjkgMS42MDU0NyAxMiAxLjYwNTQ3QzEwLjM0MzEgMS42MDU0NyA5IDIuOTQ4NjEgOSA0LjYwNTQ3VjcuNjA1NDdNNS4yMDg5OCA5LjYwNTQ3TDUuMjA4OTggMTkuMTA1NUM1LjIwODk4IDIwLjIxIDYuMTA0NDEgMjEuMTA1NSA3LjIwODk4IDIxLjEwNTVIMTYuNzA5QzE3LjgxMzYgMjEuMTA1NSAxOC43MDkgMjAuMjEgMTguNzA5IDE5LjEwNTVWOS42MDU0N0MxOC43MDkgOC41MDA5IDE3LjgxMzYgNy42MDU0NyAxNi43MDkgNy42MDU0N0w3LjIwODk5IDcuNjA1NDdDNi4xMDQ0MiA3LjYwNTQ3IDUuMjA4OTggOC41MDA5IDUuMjA4OTggOS42MDU0N1oiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Auth = createSupabaseIcon(\n 'Auth',\n [\n [\n 'path',\n {\n d: 'M5.24121 15.0674H12.7412M5.24121 15.0674V18.0674H12.7412V15.0674M5.24121 15.0674V12.0674H12.7412V15.0674M15 7.60547V4.60547C15 2.94861 13.6569 1.60547 12 1.60547C10.3431 1.60547 9 2.94861 9 4.60547V7.60547M5.20898 9.60547L5.20898 19.1055C5.20898 20.21 6.10441 21.1055 7.20898 21.1055H16.709C17.8136 21.1055 18.709 20.21 18.709 19.1055V9.60547C18.709 8.5009 17.8136 7.60547 16.709 7.60547L7.20899 7.60547C6.10442 7.60547 5.20898 8.5009 5.20898 9.60547Z',\n key: 'h65u22',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Auth;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Auth\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTUuMjQxMjEgMTUuMDY3NEgxMi43NDEyTTUuMjQxMjEgMTUuMDY3NFYxOC4wNjc0SDEyLjc0MTJWMTUuMDY3NE01LjI0MTIxIDE1LjA2NzRWMTIuMDY3NEgxMi43NDEyVjE1LjA2NzRNMTUgNy42MDU0N1Y0LjYwNTQ3QzE1IDIuOTQ4NjEgMTMuNjU2OSAxLjYwNTQ3IDEyIDEuNjA1NDdDMTAuMzQzMSAxLjYwNTQ3IDkgMi45NDg2MSA5IDQuNjA1NDdWNy42MDU0N001LjIwODk4IDkuNjA1NDdMNS4yMDg5OCAxOS4xMDU1QzUuMjA4OTggMjAuMjEgNi4xMDQ0MSAyMS4xMDU1IDcuMjA4OTggMjEuMTA1NUgxNi43MDlDMTcuODEzNiAyMS4xMDU1IDE4LjcwOSAyMC4yMSAxOC43MDkgMTkuMTA1NVY5LjYwNTQ3QzE4LjcwOSA4LjUwMDkgMTcuODEzNiA3LjYwNTQ3IDE2LjcwOSA3LjYwNTQ3TDcuMjA4OTkgNy42MDU0N0M2LjEwNDQyIDcuNjA1NDcgNS4yMDg5OCA4LjUwMDkgNS4yMDg5OCA5LjYwNTQ3WiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Auth = createSupabaseIcon(\n 'Auth',\n [\n [\n 'path',\n {\n d: 'M5.24121 15.0674H12.7412M5.24121 15.0674V18.0674H12.7412V15.0674M5.24121 15.0674V12.0674H12.7412V15.0674M15 7.60547V4.60547C15 2.94861 13.6569 1.60547 12 1.60547C10.3431 1.60547 9 2.94861 9 4.60547V7.60547M5.20898 9.60547L5.20898 19.1055C5.20898 20.21 6.10441 21.1055 7.20898 21.1055H16.709C17.8136 21.1055 18.709 20.21 18.709 19.1055V9.60547C18.709 8.5009 17.8136 7.60547 16.709 7.60547L7.20899 7.60547C6.10442 7.60547 5.20898 8.5009 5.20898 9.60547Z',\n key: 'h65u22',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Auth;\n", component: React.lazy(() => import('icons/src/icons/auth')), import: "import { Auth } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Auth } from \"icons\"\n \n " }, { @@ -68,30 +68,30 @@ export const Index: Record = [ name: "big-query", componentName: "BigQuery", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name BigQuery\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy40ODk4MSAxNy44OThMNy40ODk4MSA5LjY1MzA4TTEwLjgzNjggMTguNzU1MkwxMC44MzY4IDcuNTMwNjNNMTQuMTgzNyAxOC4wMjA1VjEyLjAyMDRNMjEgMjEuMDgxN0wxNi40Mjg2IDE2LjUxMDNNMTguNzU1MiAxMC44Nzc2QzE4Ljc1NTIgMTUuMjI4MiAxNS4yMjgyIDE4Ljc1NTIgMTAuODc3NiAxOC43NTUyQzYuNTI2OTEgMTguNzU1MiAzIDE1LjIyODIgMyAxMC44Nzc2QzMgNi41MjY5MSA2LjUyNjkxIDMgMTAuODc3NiAzQzE1LjIyODIgMyAxOC43NTUyIDYuNTI2OTEgMTguNzU1MiAxMC44Nzc2WiIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjAuOTc1Mjk5IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BigQuery = createSupabaseIcon(\n 'BigQuery',\n [\n [\n 'path',\n {\n d: 'M7.48981 17.898L7.48981 9.65308M10.8368 18.7552L10.8368 7.53063M14.1837 18.0205V12.0204M21 21.0817L16.4286 16.5103M18.7552 10.8776C18.7552 15.2282 15.2282 18.7552 10.8776 18.7552C6.52691 18.7552 3 15.2282 3 10.8776C3 6.52691 6.52691 3 10.8776 3C15.2282 3 18.7552 6.52691 18.7552 10.8776Z',\n stroke: 'currentColor',\n 'stroke-width': '0.975299',\n 'stroke-linecap': 'round',\n key: '1oqls8',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default BigQuery;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name BigQuery\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjQ4OTgxIDE3Ljg5OEw3LjQ4OTgxIDkuNjUzMDhNMTAuODM2OCAxOC43NTUyTDEwLjgzNjggNy41MzA2M00xNC4xODM3IDE4LjAyMDVWMTIuMDIwNE0yMSAyMS4wODE3TDE2LjQyODYgMTYuNTEwM00xOC43NTUyIDEwLjg3NzZDMTguNzU1MiAxNS4yMjgyIDE1LjIyODIgMTguNzU1MiAxMC44Nzc2IDE4Ljc1NTJDNi41MjY5MSAxOC43NTUyIDMgMTUuMjI4MiAzIDEwLjg3NzZDMyA2LjUyNjkxIDYuNTI2OTEgMyAxMC44Nzc2IDNDMTUuMjI4MiAzIDE4Ljc1NTIgNi41MjY5MSAxOC43NTUyIDEwLjg3NzZaIi8+Cjwvc3ZnPgo=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BigQuery = createSupabaseIcon(\n 'BigQuery',\n [\n [\n 'path',\n {\n d: 'M7.48981 17.898L7.48981 9.65308M10.8368 18.7552L10.8368 7.53063M14.1837 18.0205V12.0204M21 21.0817L16.4286 16.5103M18.7552 10.8776C18.7552 15.2282 15.2282 18.7552 10.8776 18.7552C6.52691 18.7552 3 15.2282 3 10.8776C3 6.52691 6.52691 3 10.8776 3C15.2282 3 18.7552 6.52691 18.7552 10.8776Z',\n key: 'odzl1c',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5', strokeLinecap: 'round' },\n);\n\nexport default BigQuery;\n", component: React.lazy(() => import('icons/src/icons/big-query')), import: "import { BigQuery } from 'icons'", - svg: "\n\n\n", + svg: "\n\n\n", jsx: "import { BigQuery } from \"icons\"\n \n " }, { name: "box-plus", componentName: "BoxPlus", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name BoxPlus\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAuNzMxNSA3LjAwMTE5QzIwLjU1NiA2LjY5NzU0IDIwLjMwMzcgNi40NDUzOSAyMCA2LjI3MDAyTDEzIDIuMjcwMDJDMTIuNjk2IDIuMDk0NDkgMTIuMzUxMSAyLjAwMjA4IDEyIDIuMDAyMDhDMTEuNjQ4OSAyLjAwMjA4IDExLjMwNCAyLjA5NDQ5IDExIDIuMjcwMDJMNCA2LjI3MDAyQzMuNjk2MjYgNi40NDUzOSAzLjQ0Mzk4IDYuNjk3NTQgMy4yNjg0NiA3LjAwMTE5QzMuMDkyOTQgNy4zMDQ4MyAzLjAwMDM2IDcuNjQ5MyAzIDguMDAwMDJWMTZDMy4wMDAzNiAxNi4zNTA4IDMuMDkyOTQgMTYuNjk1MiAzLjI2ODQ2IDE2Ljk5ODlDMy40NDM5OCAxNy4zMDI1IDMuNjk2MjYgMTcuNTU0NyA0IDE3LjczTDExIDIxLjczQzExLjMwNCAyMS45MDU2IDExLjY0ODkgMjEuOTk4IDEyIDIxLjk5OCIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0zLjMgN0wxMiAxMkwyMC43IDciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMiAyMlYxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE5IDE0VjIwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTYgMTdIMjIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BoxPlus = createSupabaseIcon(\n 'BoxPlus',\n [\n [\n 'path',\n {\n d: 'M20.7315 7.00119C20.556 6.69754 20.3037 6.44539 20 6.27002L13 2.27002C12.696 2.09449 12.3511 2.00208 12 2.00208C11.6489 2.00208 11.304 2.09449 11 2.27002L4 6.27002C3.69626 6.44539 3.44398 6.69754 3.26846 7.00119C3.09294 7.30483 3.00036 7.6493 3 8.00002V16C3.00036 16.3508 3.09294 16.6952 3.26846 16.9989C3.44398 17.3025 3.69626 17.5547 4 17.73L11 21.73C11.304 21.9056 11.6489 21.998 12 21.998',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1g22fp',\n },\n ],\n [\n 'path',\n {\n d: 'M3.3 7L12 12L20.7 7',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1v4gtz',\n },\n ],\n [\n 'path',\n {\n d: 'M12 22V12',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'hoijqc',\n },\n ],\n [\n 'path',\n {\n d: 'M19 14V20',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '7ts4zv',\n },\n ],\n [\n 'path',\n {\n d: 'M16 17H22',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'ir88vv',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default BoxPlus;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name BoxPlus\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMC43MzE1IDcuMDAxMTlDMjAuNTU2IDYuNjk3NTQgMjAuMzAzNyA2LjQ0NTM5IDIwIDYuMjcwMDJMMTMgMi4yNzAwMkMxMi42OTYgMi4wOTQ0OSAxMi4zNTExIDIuMDAyMDggMTIgMi4wMDIwOEMxMS42NDg5IDIuMDAyMDggMTEuMzA0IDIuMDk0NDkgMTEgMi4yNzAwMkw0IDYuMjcwMDJDMy42OTYyNiA2LjQ0NTM5IDMuNDQzOTggNi42OTc1NCAzLjI2ODQ2IDcuMDAxMTlDMy4wOTI5NCA3LjMwNDgzIDMuMDAwMzYgNy42NDkzIDMgOC4wMDAwMlYxNkMzLjAwMDM2IDE2LjM1MDggMy4wOTI5NCAxNi42OTUyIDMuMjY4NDYgMTYuOTk4OUMzLjQ0Mzk4IDE3LjMwMjUgMy42OTYyNiAxNy41NTQ3IDQgMTcuNzNMMTEgMjEuNzNDMTEuMzA0IDIxLjkwNTYgMTEuNjQ4OSAyMS45OTggMTIgMjEuOTk4Ii8+CjxwYXRoIGQ9Ik0zLjMgN0wxMiAxMkwyMC43IDciLz4KPHBhdGggZD0iTTEyIDIyVjEyIi8+CjxwYXRoIGQ9Ik0xOSAxNFYyMCIvPgo8cGF0aCBkPSJNMTYgMTdIMjIiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BoxPlus = createSupabaseIcon(\n 'BoxPlus',\n [\n [\n 'path',\n {\n d: 'M20.7315 7.00119C20.556 6.69754 20.3037 6.44539 20 6.27002L13 2.27002C12.696 2.09449 12.3511 2.00208 12 2.00208C11.6489 2.00208 11.304 2.09449 11 2.27002L4 6.27002C3.69626 6.44539 3.44398 6.69754 3.26846 7.00119C3.09294 7.30483 3.00036 7.6493 3 8.00002V16C3.00036 16.3508 3.09294 16.6952 3.26846 16.9989C3.44398 17.3025 3.69626 17.5547 4 17.73L11 21.73C11.304 21.9056 11.6489 21.998 12 21.998',\n key: 'nj2e2u',\n },\n ],\n ['path', { d: 'M3.3 7L12 12L20.7 7', key: 'kvxu76' }],\n ['path', { d: 'M12 22V12', key: 'd0xqtd' }],\n ['path', { d: 'M19 14V20', key: '1dhl6z' }],\n ['path', { d: 'M16 17H22', key: '3xswwu' }],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default BoxPlus;\n", component: React.lazy(() => import('icons/src/icons/box-plus')), import: "import { BoxPlus } from 'icons'", - svg: "\n\n\n\n\n\n\n", + svg: "\n\n\n\n\n\n\n", jsx: "import { BoxPlus } from \"icons\"\n \n " }, { name: "bucket-plus", componentName: "BucketPlus", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name BucketPlus\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkgMTNWMTkiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTYgMTZIMjIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMy41IDIwSDRDMy40Njk1NyAyMCAyLjk2MDg2IDE5Ljc4OTMgMi41ODU3OSAxOS40MTQyQzIuMjEwNzEgMTkuMDM5MSAyIDE4LjUzMDQgMiAxOFY1QzIgNC40Njk1NyAyLjIxMDcxIDMuOTYwODYgMi41ODU3OSAzLjU4NTc5QzIuOTYwODYgMy4yMTA3MSAzLjQ2OTU3IDMgNCAzSDcuOTNDOC4yNjExMSAzLjAwMDA1IDguNTg3MDIgMy4wODIzMSA4Ljg3ODUgMy4yMzk0QzkuMTY5OTcgMy4zOTY0OCA5LjQxNzg5IDMuNjIzNDcgOS42IDMuOUwxMC40MSA1LjFDMTAuNTk0IDUuMzc5MzggMTAuODQ1MSA1LjYwODE1IDExLjE0MDMgNS43NjUzOEMxMS40MzU1IDUuOTIyNjEgMTEuNzY1NSA2LjAwMzI4IDEyLjEgNkgyMEMyMC41MzA0IDYgMjEuMDM5MSA2LjIxMDcxIDIxLjQxNDIgNi41ODU3OUMyMS43ODkzIDYuOTYwODYgMjIgNy40Njk1NyAyMiA4VjEwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BucketPlus = createSupabaseIcon(\n 'BucketPlus',\n [\n [\n 'path',\n {\n d: 'M19 13V19',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '397kp2',\n },\n ],\n [\n 'path',\n {\n d: 'M16 16H22',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1v5ktu',\n },\n ],\n [\n 'path',\n {\n d: 'M13.5 20H4C3.46957 20 2.96086 19.7893 2.58579 19.4142C2.21071 19.0391 2 18.5304 2 18V5C2 4.46957 2.21071 3.96086 2.58579 3.58579C2.96086 3.21071 3.46957 3 4 3H7.93C8.26111 3.00005 8.58702 3.08231 8.8785 3.2394C9.16997 3.39648 9.41789 3.62347 9.6 3.9L10.41 5.1C10.594 5.37938 10.8451 5.60815 11.1403 5.76538C11.4355 5.92261 11.7655 6.00328 12.1 6H20C20.5304 6 21.0391 6.21071 21.4142 6.58579C21.7893 6.96086 22 7.46957 22 8V10',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'myaap2',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default BucketPlus;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name BucketPlus\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xOSAxM1YxOSIvPgo8cGF0aCBkPSJNMTYgMTZIMjIiLz4KPHBhdGggZD0iTTEzLjUgMjBINEMzLjQ2OTU3IDIwIDIuOTYwODYgMTkuNzg5MyAyLjU4NTc5IDE5LjQxNDJDMi4yMTA3MSAxOS4wMzkxIDIgMTguNTMwNCAyIDE4VjVDMiA0LjQ2OTU3IDIuMjEwNzEgMy45NjA4NiAyLjU4NTc5IDMuNTg1NzlDMi45NjA4NiAzLjIxMDcxIDMuNDY5NTcgMyA0IDNINy45M0M4LjI2MTExIDMuMDAwMDUgOC41ODcwMiAzLjA4MjMxIDguODc4NSAzLjIzOTRDOS4xNjk5NyAzLjM5NjQ4IDkuNDE3ODkgMy42MjM0NyA5LjYgMy45TDEwLjQxIDUuMUMxMC41OTQgNS4zNzkzOCAxMC44NDUxIDUuNjA4MTUgMTEuMTQwMyA1Ljc2NTM4QzExLjQzNTUgNS45MjI2MSAxMS43NjU1IDYuMDAzMjggMTIuMSA2SDIwQzIwLjUzMDQgNiAyMS4wMzkxIDYuMjEwNzEgMjEuNDE0MiA2LjU4NTc5QzIxLjc4OTMgNi45NjA4NiAyMiA3LjQ2OTU3IDIyIDhWMTAiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst BucketPlus = createSupabaseIcon(\n 'BucketPlus',\n [\n ['path', { d: 'M19 13V19', key: '1ewk5i' }],\n ['path', { d: 'M16 16H22', key: 'qkkdxb' }],\n [\n 'path',\n {\n d: 'M13.5 20H4C3.46957 20 2.96086 19.7893 2.58579 19.4142C2.21071 19.0391 2 18.5304 2 18V5C2 4.46957 2.21071 3.96086 2.58579 3.58579C2.96086 3.21071 3.46957 3 4 3H7.93C8.26111 3.00005 8.58702 3.08231 8.8785 3.2394C9.16997 3.39648 9.41789 3.62347 9.6 3.9L10.41 5.1C10.594 5.37938 10.8451 5.60815 11.1403 5.76538C11.4355 5.92261 11.7655 6.00328 12.1 6H20C20.5304 6 21.0391 6.21071 21.4142 6.58579C21.7893 6.96086 22 7.46957 22 8V10',\n key: 'zt8kw3',\n },\n ],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default BucketPlus;\n", component: React.lazy(() => import('icons/src/icons/bucket-plus')), import: "import { BucketPlus } from 'icons'", - svg: "\n\n\n\n\n", + svg: "\n\n\n\n\n", jsx: "import { BucketPlus } from \"icons\"\n \n " }, { @@ -118,100 +118,100 @@ export const Index: Record = [ name: "click-house", componentName: "ClickHouse", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ClickHouse\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMyAzVjIxTTcuNSAzVjIxTTEyIDNWMjFNMTYuNSAzVjIxTTIxIDEwVjE0IiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ClickHouse = createSupabaseIcon(\n 'ClickHouse',\n [\n [\n 'path',\n {\n d: 'M3 3V21M7.5 3V21M12 3V21M16.5 3V21M21 10V14',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n key: '1ho44o',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default ClickHouse;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ClickHouse\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zIDNWMjFNNy41IDNWMjFNMTIgM1YyMU0xNi41IDNWMjFNMjEgMTBWMTQiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ClickHouse = createSupabaseIcon(\n 'ClickHouse',\n [['path', { d: 'M3 3V21M7.5 3V21M12 3V21M16.5 3V21M21 10V14', key: 'tw32au' }]],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5', strokeLinecap: 'round' },\n);\n\nexport default ClickHouse;\n", component: React.lazy(() => import('icons/src/icons/click-house')), import: "import { ClickHouse } from 'icons'", - svg: "\n\n\n", + svg: "\n\n\n", jsx: "import { ClickHouse } from \"icons\"\n \n " }, { name: "database", componentName: "Database", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Database\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aCBkPSIgTTUuNTY3NzQgOS43MDY0MkgxOC40NTQ3VjE1LjcwNjRINS41Njc3NFY5LjcwNjQyWiIgLz4KICAgIDxwYXRoIGQ9IiBNNC41IDE2LjcwOTRDNC41IDE2LjE1NzEgNC45NDc3MiAxNS43MDk0IDUuNSAxNS43MDk0SDE4LjVDMTkuMDUyMyAxNS43MDk0IDE5LjUgMTYuMTU3MSAxOS41CiAgICAgICAgMTYuNzA5NFYyMC43MDk0QzE5LjUgMjEuMjYxNiAxOS4wNTIzIDIxLjcwOTQgMTguNSAyMS43MDk0SDUuNUM0Ljk0NzcyIDIxLjcwOTQgNC41IDIxLjI2MTYgNC41CiAgICAgICAgMjAuNzA5NFYxNi43MDk0WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTQuNSA0LjcwNjc5QzQuNSA0LjE1NDUgNC45NDc3MiAzLjcwNjc5IDUuNSAzLjcwNjc5SDE4LjVDMTkuMDUyMyAzLjcwNjc5IDE5LjUgNC4xNTQ1IDE5LjUgNC43MDY3OVY4LjcwNjc5QzE5LjUgOS4yNTkwNyAxOS4wNTIzIDkuNzA2NzkgMTguNSA5LjcwNjc5SDUuNUM0Ljk0NzcyIDkuNzA2NzkgNC41IDkuMjU5MDcgNC41IDguNzA2NzlWNC43MDY3OVoiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Database = createSupabaseIcon(\n 'Database',\n [\n ['path', { d: ' M5.56774 9.70642H18.4547V15.7064H5.56774V9.70642Z', key: 'g5hndz' }],\n [\n 'path',\n {\n d: ' M4.5 16.7094C4.5 16.1571 4.94772 15.7094 5.5 15.7094H18.5C19.0523 15.7094 19.5 16.1571 19.5\\n 16.7094V20.7094C19.5 21.2616 19.0523 21.7094 18.5 21.7094H5.5C4.94772 21.7094 4.5 21.2616 4.5\\n 20.7094V16.7094Z',\n key: '1m5ehm',\n },\n ],\n [\n 'path',\n {\n d: 'M4.5 4.70679C4.5 4.1545 4.94772 3.70679 5.5 3.70679H18.5C19.0523 3.70679 19.5 4.1545 19.5 4.70679V8.70679C19.5 9.25907 19.0523 9.70679 18.5 9.70679H5.5C4.94772 9.70679 4.5 9.25907 4.5 8.70679V4.70679Z',\n key: '1w4kbe',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Database;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Database\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoIGQ9IiBNNS41Njc3NCA5LjcwNjQySDE4LjQ1NDdWMTUuNzA2NEg1LjU2Nzc0VjkuNzA2NDJaIiAvPgogICAgPHBhdGggZD0iIE00LjUgMTYuNzA5NEM0LjUgMTYuMTU3MSA0Ljk0NzcyIDE1LjcwOTQgNS41IDE1LjcwOTRIMTguNUMxOS4wNTIzIDE1LjcwOTQgMTkuNSAxNi4xNTcxIDE5LjUKICAgICAgICAxNi43MDk0VjIwLjcwOTRDMTkuNSAyMS4yNjE2IDE5LjA1MjMgMjEuNzA5NCAxOC41IDIxLjcwOTRINS41QzQuOTQ3NzIgMjEuNzA5NCA0LjUgMjEuMjYxNiA0LjUKICAgICAgICAyMC43MDk0VjE2LjcwOTRaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNNC41IDQuNzA2NzlDNC41IDQuMTU0NSA0Ljk0NzcyIDMuNzA2NzkgNS41IDMuNzA2NzlIMTguNUMxOS4wNTIzIDMuNzA2NzkgMTkuNSA0LjE1NDUgMTkuNSA0LjcwNjc5VjguNzA2NzlDMTkuNSA5LjI1OTA3IDE5LjA1MjMgOS43MDY3OSAxOC41IDkuNzA2NzlINS41QzQuOTQ3NzIgOS43MDY3OSA0LjUgOS4yNTkwNyA0LjUgOC43MDY3OVY0LjcwNjc5WiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Database = createSupabaseIcon(\n 'Database',\n [\n ['path', { d: ' M5.56774 9.70642H18.4547V15.7064H5.56774V9.70642Z', key: 'g5hndz' }],\n [\n 'path',\n {\n d: ' M4.5 16.7094C4.5 16.1571 4.94772 15.7094 5.5 15.7094H18.5C19.0523 15.7094 19.5 16.1571 19.5\\n 16.7094V20.7094C19.5 21.2616 19.0523 21.7094 18.5 21.7094H5.5C4.94772 21.7094 4.5 21.2616 4.5\\n 20.7094V16.7094Z',\n key: '1m5ehm',\n },\n ],\n [\n 'path',\n {\n d: 'M4.5 4.70679C4.5 4.1545 4.94772 3.70679 5.5 3.70679H18.5C19.0523 3.70679 19.5 4.1545 19.5 4.70679V8.70679C19.5 9.25907 19.0523 9.70679 18.5 9.70679H5.5C4.94772 9.70679 4.5 9.25907 4.5 8.70679V4.70679Z',\n key: '1w4kbe',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Database;\n", component: React.lazy(() => import('icons/src/icons/database')), import: "import { Database } from 'icons'", - svg: "\n \n \n \n", + svg: "\n \n \n \n", jsx: "import { Database } from \"icons\"\n \n " }, { name: "datadog", componentName: "Datadog", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Datadog\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIwIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xOS41NyAxNy4wNGwtMS45OTctMS4zMTYtMS42NjUgMi43ODItMS45MzctLjU2Ny0xLjcwNiAyLjYwNC4wODcuODIgOS4yNzQtMS43MS0uNTM4LTUuNzk0em0tOC42NDktMi40OThsMS40ODgtLjIwNGMuMjQxLjEwOC40MDkuMTUuNjk3LjIyMy40NS4xMTcuOTcuMjMgMS43NDEtLjE2LjE4LS4wODguNTUzLS40My43MDQtLjYyNWw2LjA5Ni0xLjEwNi42MjIgNy41MjctMTAuNDQ0IDEuODgyem0xMS4zMjUtMi43MTJsLS42MDIuMTE1TDIwLjQ4OCAwIC43ODkgMi4yODVsMi40MjcgMTkuNjkzIDIuMzA2LS4zMzRjLS4xODQtLjI2My0uNDcxLS41ODEtLjk2LS45ODktLjY4LS41NjQtLjQ0LTEuNTIyLS4wMzktMi4xMjcuNTMtMS4wMjIgMy4yNi0yLjMyMiAzLjEwNi0zLjk1Ni0uMDU2LS41OTQtLjE1LTEuMzY4LS43MDItMS44OTgtLjAyLjIyLjAxNy40MzIuMDE3LjQzMnMtLjIyNy0uMjg5LS4zNC0uNjgzYy0uMTEyLS4xNS0uMi0uMTk5LS4zMTktLjQtLjA4NS4yMzMtLjA3My41MDMtLjA3My41MDNzLS4xODYtLjQzNy0uMjE2LS44MDdjLS4xMS4xNjYtLjEzNy40OC0uMTM3LjQ4cy0uMjQxLS42OS0uMTg2LTEuMDYyYy0uMTEtLjMyMy0uNDM2LS45NjUtLjM0My0yLjQyNC42LjQyMSAxLjkyNC4zMjEgMi40NC0uNDM5LjE3MS0uMjUxLjI4OC0uOTM5LS4wODYtMi4yOTMtLjI0LS44NjgtLjgzNS0yLjE2LTEuMDY2LTIuNjUxbC0uMDI4LjAyYy4xMjIuMzk1LjM3NCAxLjIyMy40NyAxLjYyNS4yOTMgMS4yMTguMzcyIDEuNjQyLjIzNCAyLjIwNC0uMTE2LjQ4OC0uMzk3LjgwOC0xLjEwNyAxLjE2NS0uNzEuMzU4LTEuNjUzLS41MTQtMS43MTMtLjU2Mi0uNjktLjU1LTEuMjI0LTEuNDQ3LTEuMjg0LTEuODgzLS4wNjItLjQ3Ny4yNzUtLjc2My40NDUtMS4xNTMtLjI0My4wNy0uNTE0LjE5Mi0uNTE0LjE5MnMuMzIzLS4zMzQuNzIyLS42MjRjLjE2NS0uMTA5LjI2Mi0uMTc4LjQzNi0uMzIzYTkuNzYyIDkuNzYyIDAgMCAwLS40NTYuMDAzcy40Mi0uMjI3Ljg1NS0uMzkyYy0uMzE4LS4wMTQtLjYyMy0uMDAzLS42MjMtLjAwM3MuOTM3LS40MTkgMS42NzgtLjcyN2MuNTA5LS4yMDggMS4wMDYtLjE0NyAxLjI4Ni4yNTcuMzY3LjUzLjc1Mi44MTcgMS41NjkuOTk2LjUwMS0uMjIzLjY1My0uMzM3IDEuMjg0LS41MDkuNTU0LS42MS45OS0uNjg4Ljk5LS42ODhzLS4yMTYuMTk4LS4yNzQuNTFjLjMxNC0uMjQ5LjY2LS40NTUuNjYtLjQ1NXMtLjEzNC4xNjQtLjI1OS40MjZsLjAzLjA0M2MuMzY2LS4yMi43OTctLjM5NC43OTctLjM5NHMtLjEyMy4xNTYtLjI2OC4zNThjLjI3Ny0uMDAyLjgzOC4wMTIgMS4wNTYuMDM3IDEuMjg1LjAyOCAxLjU1Mi0xLjM3NCAyLjA0NS0xLjU1LjYxOC0uMjIuODk0LS4zNTMgMS45NDcuNjguOTAzLjg4OCAxLjYwOSAyLjQ3NyAxLjI1OSAyLjgzMy0uMjk0LjI5NS0uODc0LS4xMTUtMS41MTYtLjkxNmEzLjQ2NiAzLjQ2NiAwIDAgMS0uNzE2LTEuNTYyIDEuNTMzIDEuNTMzIDAgMCAwLS40OTctLjg1cy4yMy41MS4yMy45NmMwIC4yNDYuMDMgMS4xNjUuNDI0IDEuNjgtLjAzOS4wNzYtLjA1Ny4zNzQtLjEuNDMtLjQ1OC0uNTU0LTEuNDQzLS45NS0xLjYwNC0xLjA2Ny41NDQuNDQ1IDEuNzkzIDEuNDY4IDIuMjczIDIuNDQ5LjQ1My45MjcuMTg2IDEuNzc3LjQxNiAxLjk5Ny4wNjUuMDYzLjk3NiAxLjE5NyAxLjE1IDEuNzY3LjMwNi45OTQuMDE5IDIuMDM4LS4zODEgMi42ODVsLTEuMTE3LjE3NGMtLjE2My0uMDQ1LS4yNzMtLjA2OC0uNDItLjE1My4wOC0uMTQzLjI0MS0uNS4yNDMtLjU3MmwtLjA2My0uMTExYy0uMzQ4LjQ5Mi0uOTMuOTctMS40MTQgMS4yNDUtLjYzMy4zNTktMS4zNjMuMzA0LTEuODM4LjE1Ni0xLjM0OC0uNDE1LTIuNjIzLTEuMzI3LTIuOTMtMS41NjYgMCAwLS4wMS4xOTEuMDQ4LjIzNC4zNC4zODMgMS4xMTkgMS4wNzcgMS44NzIgMS41NmwtMS42MDUuMTc3Ljc1OSA1LjkwOGMtLjMzNy4wNDgtLjM5LjA3MS0uNzU3LjEyNC0uMzI1LTEuMTQ3LS45NDYtMS44OTUtMS42MjQtMi4zMzItLjU5OS0uMzg0LTEuNDI0LS40Ny0yLjIxNC0uMzE0bC0uMDUuMDU5YTIuODUxIDIuODUxIDAgMCAxIDEuODYzLjQ0NGMuNjU0LjQxMyAxLjE4MSAxLjQ4MSAxLjM3NSAyLjEyNC4yNDguODIyLjQyIDEuNy0uMjQ4IDIuNjMyLS40NzYuNjYyLTEuODY0IDEuMDI4LTIuOTg2LjIzNy4zLjQ4MS43MDUuODc2IDEuMjUuOTUuODA5LjExIDEuNTc3LS4wMyAyLjEwNi0uNTc0LjQ1Mi0uNDY0LjY5LTEuNDM0LjYyOC0yLjQ1NmwuNzE0LS4xMDQuMjU4IDEuODM0IDExLjgyNy0xLjQyNHpNMTUuMDUgNi44NDhjLS4wMzQuMDc1LS4wODUuMTI1LS4wMDcuMzdsLjAwNC4wMTQuMDEzLjAzMi4wMzIuMDczYy4xNC4yODcuMjk1LjU1OC41NTIuNjk2LjA2Ny0uMDExLjEzNi0uMDE5LjIwNy0uMDIzLjI0Mi0uMDEuMzk1LjAyOC40OTIuMDguMDA5LS4wNDguMDEtLjExOS4wMDUtLjIyMi0uMDE4LS4zNjQuMDcyLS45ODItLjYyNi0xLjMwOC0uMjY0LS4xMjItLjYzNC0uMDg0LS43NTcuMDY4YS4zMDIuMzAyIDAgMCAxIC4wNTguMDEzYy4xODYuMDY2LjA2LjEzLjAyNy4yMDdtMS45NTggMy4zOTJjLS4wOTItLjA1LS41Mi0uMDMtLjgyMS4wMDUtLjU3NC4wNjgtMS4xOTMuMjY3LTEuMzI4LjM3Mi0uMjQ3LjE5MS0uMTM1LjUyMy4wNDcuNjYuNTExLjM4Mi45Ni42MzggMS40MzIuNTc1LjI5LS4wMzguNTQ2LS40OTcuNzI4LS45MTQuMTI0LS4yODguMTI0LS41OTgtLjA1OC0uNjk4bS01LjA3Ny0yLjk0MmMuMTYyLS4xNTQtLjgwNS0uMzU1LTEuNTU2LjE1Ni0uNTU0LjM3OC0uNTcxIDEuMTg3LS4wNDEgMS42NDYuMDUzLjA0Ni4wOTYuMDc4LjEzNy4xMDRhNC43NyA0Ljc3IDAgMCAxIDEuMzk2LS40MTJjLjExMy0uMTI1LjI0My0uMzQ1LjIxLS43NDUtLjA0NC0uNTQyLS40NTUtLjQ1Ni0uMTQ2LS43NDkiPjwvcGF0aD48L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Datadog = createSupabaseIcon(\n 'Datadog',\n [\n [\n 'path',\n {\n d: 'M19.57 17.04l-1.997-1.316-1.665 2.782-1.937-.567-1.706 2.604.087.82 9.274-1.71-.538-5.794zm-8.649-2.498l1.488-.204c.241.108.409.15.697.223.45.117.97.23 1.741-.16.18-.088.553-.43.704-.625l6.096-1.106.622 7.527-10.444 1.882zm11.325-2.712l-.602.115L20.488 0 .789 2.285l2.427 19.693 2.306-.334c-.184-.263-.471-.581-.96-.989-.68-.564-.44-1.522-.039-2.127.53-1.022 3.26-2.322 3.106-3.956-.056-.594-.15-1.368-.702-1.898-.02.22.017.432.017.432s-.227-.289-.34-.683c-.112-.15-.2-.199-.319-.4-.085.233-.073.503-.073.503s-.186-.437-.216-.807c-.11.166-.137.48-.137.48s-.241-.69-.186-1.062c-.11-.323-.436-.965-.343-2.424.6.421 1.924.321 2.44-.439.171-.251.288-.939-.086-2.293-.24-.868-.835-2.16-1.066-2.651l-.028.02c.122.395.374 1.223.47 1.625.293 1.218.372 1.642.234 2.204-.116.488-.397.808-1.107 1.165-.71.358-1.653-.514-1.713-.562-.69-.55-1.224-1.447-1.284-1.883-.062-.477.275-.763.445-1.153-.243.07-.514.192-.514.192s.323-.334.722-.624c.165-.109.262-.178.436-.323a9.762 9.762 0 0 0-.456.003s.42-.227.855-.392c-.318-.014-.623-.003-.623-.003s.937-.419 1.678-.727c.509-.208 1.006-.147 1.286.257.367.53.752.817 1.569.996.501-.223.653-.337 1.284-.509.554-.61.99-.688.99-.688s-.216.198-.274.51c.314-.249.66-.455.66-.455s-.134.164-.259.426l.03.043c.366-.22.797-.394.797-.394s-.123.156-.268.358c.277-.002.838.012 1.056.037 1.285.028 1.552-1.374 2.045-1.55.618-.22.894-.353 1.947.68.903.888 1.609 2.477 1.259 2.833-.294.295-.874-.115-1.516-.916a3.466 3.466 0 0 1-.716-1.562 1.533 1.533 0 0 0-.497-.85s.23.51.23.96c0 .246.03 1.165.424 1.68-.039.076-.057.374-.1.43-.458-.554-1.443-.95-1.604-1.067.544.445 1.793 1.468 2.273 2.449.453.927.186 1.777.416 1.997.065.063.976 1.197 1.15 1.767.306.994.019 2.038-.381 2.685l-1.117.174c-.163-.045-.273-.068-.42-.153.08-.143.241-.5.243-.572l-.063-.111c-.348.492-.93.97-1.414 1.245-.633.359-1.363.304-1.838.156-1.348-.415-2.623-1.327-2.93-1.566 0 0-.01.191.048.234.34.383 1.119 1.077 1.872 1.56l-1.605.177.759 5.908c-.337.048-.39.071-.757.124-.325-1.147-.946-1.895-1.624-2.332-.599-.384-1.424-.47-2.214-.314l-.05.059a2.851 2.851 0 0 1 1.863.444c.654.413 1.181 1.481 1.375 2.124.248.822.42 1.7-.248 2.632-.476.662-1.864 1.028-2.986.237.3.481.705.876 1.25.95.809.11 1.577-.03 2.106-.574.452-.464.69-1.434.628-2.456l.714-.104.258 1.834 11.827-1.424zM15.05 6.848c-.034.075-.085.125-.007.37l.004.014.013.032.032.073c.14.287.295.558.552.696.067-.011.136-.019.207-.023.242-.01.395.028.492.08.009-.048.01-.119.005-.222-.018-.364.072-.982-.626-1.308-.264-.122-.634-.084-.757.068a.302.302 0 0 1 .058.013c.186.066.06.13.027.207m1.958 3.392c-.092-.05-.52-.03-.821.005-.574.068-1.193.267-1.328.372-.247.191-.135.523.047.66.511.382.96.638 1.432.575.29-.038.546-.497.728-.914.124-.288.124-.598-.058-.698m-5.077-2.942c.162-.154-.805-.355-1.556.156-.554.378-.571 1.187-.041 1.646.053.046.096.078.137.104a4.77 4.77 0 0 1 1.396-.412c.113-.125.243-.345.21-.745-.044-.542-.455-.456-.146-.749',\n key: '13qbml',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'currentColor', strokeWidth: '0' },\n);\n\nexport default Datadog;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Datadog\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyBzdHJva2U9Im5vbmUiIGZpbGw9ImN1cnJlbnRDb2xvciIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkuNTcgMTcuMDRsLTEuOTk3LTEuMzE2LTEuNjY1IDIuNzgyLTEuOTM3LS41NjctMS43MDYgMi42MDQuMDg3LjgyIDkuMjc0LTEuNzEtLjUzOC01Ljc5NHptLTguNjQ5LTIuNDk4bDEuNDg4LS4yMDRjLjI0MS4xMDguNDA5LjE1LjY5Ny4yMjMuNDUuMTE3Ljk3LjIzIDEuNzQxLS4xNi4xOC0uMDg4LjU1My0uNDMuNzA0LS42MjVsNi4wOTYtMS4xMDYuNjIyIDcuNTI3LTEwLjQ0NCAxLjg4MnptMTEuMzI1LTIuNzEybC0uNjAyLjExNUwyMC40ODggMCAuNzg5IDIuMjg1bDIuNDI3IDE5LjY5MyAyLjMwNi0uMzM0Yy0uMTg0LS4yNjMtLjQ3MS0uNTgxLS45Ni0uOTg5LS42OC0uNTY0LS40NC0xLjUyMi0uMDM5LTIuMTI3LjUzLTEuMDIyIDMuMjYtMi4zMjIgMy4xMDYtMy45NTYtLjA1Ni0uNTk0LS4xNS0xLjM2OC0uNzAyLTEuODk4LS4wMi4yMi4wMTcuNDMyLjAxNy40MzJzLS4yMjctLjI4OS0uMzQtLjY4M2MtLjExMi0uMTUtLjItLjE5OS0uMzE5LS40LS4wODUuMjMzLS4wNzMuNTAzLS4wNzMuNTAzcy0uMTg2LS40MzctLjIxNi0uODA3Yy0uMTEuMTY2LS4xMzcuNDgtLjEzNy40OHMtLjI0MS0uNjktLjE4Ni0xLjA2MmMtLjExLS4zMjMtLjQzNi0uOTY1LS4zNDMtMi40MjQuNi40MjEgMS45MjQuMzIxIDIuNDQtLjQzOS4xNzEtLjI1MS4yODgtLjkzOS0uMDg2LTIuMjkzLS4yNC0uODY4LS44MzUtMi4xNi0xLjA2Ni0yLjY1MWwtLjAyOC4wMmMuMTIyLjM5NS4zNzQgMS4yMjMuNDcgMS42MjUuMjkzIDEuMjE4LjM3MiAxLjY0Mi4yMzQgMi4yMDQtLjExNi40ODgtLjM5Ny44MDgtMS4xMDcgMS4xNjUtLjcxLjM1OC0xLjY1My0uNTE0LTEuNzEzLS41NjItLjY5LS41NS0xLjIyNC0xLjQ0Ny0xLjI4NC0xLjg4My0uMDYyLS40NzcuMjc1LS43NjMuNDQ1LTEuMTUzLS4yNDMuMDctLjUxNC4xOTItLjUxNC4xOTJzLjMyMy0uMzM0LjcyMi0uNjI0Yy4xNjUtLjEwOS4yNjItLjE3OC40MzYtLjMyM2E5Ljc2MiA5Ljc2MiAwIDAgMC0uNDU2LjAwM3MuNDItLjIyNy44NTUtLjM5MmMtLjMxOC0uMDE0LS42MjMtLjAwMy0uNjIzLS4wMDNzLjkzNy0uNDE5IDEuNjc4LS43MjdjLjUwOS0uMjA4IDEuMDA2LS4xNDcgMS4yODYuMjU3LjM2Ny41My43NTIuODE3IDEuNTY5Ljk5Ni41MDEtLjIyMy42NTMtLjMzNyAxLjI4NC0uNTA5LjU1NC0uNjEuOTktLjY4OC45OS0uNjg4cy0uMjE2LjE5OC0uMjc0LjUxYy4zMTQtLjI0OS42Ni0uNDU1LjY2LS40NTVzLS4xMzQuMTY0LS4yNTkuNDI2bC4wMy4wNDNjLjM2Ni0uMjIuNzk3LS4zOTQuNzk3LS4zOTRzLS4xMjMuMTU2LS4yNjguMzU4Yy4yNzctLjAwMi44MzguMDEyIDEuMDU2LjAzNyAxLjI4NS4wMjggMS41NTItMS4zNzQgMi4wNDUtMS41NS42MTgtLjIyLjg5NC0uMzUzIDEuOTQ3LjY4LjkwMy44ODggMS42MDkgMi40NzcgMS4yNTkgMi44MzMtLjI5NC4yOTUtLjg3NC0uMTE1LTEuNTE2LS45MTZhMy40NjYgMy40NjYgMCAwIDEtLjcxNi0xLjU2MiAxLjUzMyAxLjUzMyAwIDAgMC0uNDk3LS44NXMuMjMuNTEuMjMuOTZjMCAuMjQ2LjAzIDEuMTY1LjQyNCAxLjY4LS4wMzkuMDc2LS4wNTcuMzc0LS4xLjQzLS40NTgtLjU1NC0xLjQ0My0uOTUtMS42MDQtMS4wNjcuNTQ0LjQ0NSAxLjc5MyAxLjQ2OCAyLjI3MyAyLjQ0OS40NTMuOTI3LjE4NiAxLjc3Ny40MTYgMS45OTcuMDY1LjA2My45NzYgMS4xOTcgMS4xNSAxLjc2Ny4zMDYuOTk0LjAxOSAyLjAzOC0uMzgxIDIuNjg1bC0xLjExNy4xNzRjLS4xNjMtLjA0NS0uMjczLS4wNjgtLjQyLS4xNTMuMDgtLjE0My4yNDEtLjUuMjQzLS41NzJsLS4wNjMtLjExMWMtLjM0OC40OTItLjkzLjk3LTEuNDE0IDEuMjQ1LS42MzMuMzU5LTEuMzYzLjMwNC0xLjgzOC4xNTYtMS4zNDgtLjQxNS0yLjYyMy0xLjMyNy0yLjkzLTEuNTY2IDAgMC0uMDEuMTkxLjA0OC4yMzQuMzQuMzgzIDEuMTE5IDEuMDc3IDEuODcyIDEuNTZsLTEuNjA1LjE3Ny43NTkgNS45MDhjLS4zMzcuMDQ4LS4zOS4wNzEtLjc1Ny4xMjQtLjMyNS0xLjE0Ny0uOTQ2LTEuODk1LTEuNjI0LTIuMzMyLS41OTktLjM4NC0xLjQyNC0uNDctMi4yMTQtLjMxNGwtLjA1LjA1OWEyLjg1MSAyLjg1MSAwIDAgMSAxLjg2My40NDRjLjY1NC40MTMgMS4xODEgMS40ODEgMS4zNzUgMi4xMjQuMjQ4LjgyMi40MiAxLjctLjI0OCAyLjYzMi0uNDc2LjY2Mi0xLjg2NCAxLjAyOC0yLjk4Ni4yMzcuMy40ODEuNzA1Ljg3NiAxLjI1Ljk1LjgwOS4xMSAxLjU3Ny0uMDMgMi4xMDYtLjU3NC40NTItLjQ2NC42OS0xLjQzNC42MjgtMi40NTZsLjcxNC0uMTA0LjI1OCAxLjgzNCAxMS44MjctMS40MjR6TTE1LjA1IDYuODQ4Yy0uMDM0LjA3NS0uMDg1LjEyNS0uMDA3LjM3bC4wMDQuMDE0LjAxMy4wMzIuMDMyLjA3M2MuMTQuMjg3LjI5NS41NTguNTUyLjY5Ni4wNjctLjAxMS4xMzYtLjAxOS4yMDctLjAyMy4yNDItLjAxLjM5NS4wMjguNDkyLjA4LjAwOS0uMDQ4LjAxLS4xMTkuMDA1LS4yMjItLjAxOC0uMzY0LjA3Mi0uOTgyLS42MjYtMS4zMDgtLjI2NC0uMTIyLS42MzQtLjA4NC0uNzU3LjA2OGEuMzAyLjMwMiAwIDAgMSAuMDU4LjAxM2MuMTg2LjA2Ni4wNi4xMy4wMjcuMjA3bTEuOTU4IDMuMzkyYy0uMDkyLS4wNS0uNTItLjAzLS44MjEuMDA1LS41NzQuMDY4LTEuMTkzLjI2Ny0xLjMyOC4zNzItLjI0Ny4xOTEtLjEzNS41MjMuMDQ3LjY2LjUxMS4zODIuOTYuNjM4IDEuNDMyLjU3NS4yOS0uMDM4LjU0Ni0uNDk3LjcyOC0uOTE0LjEyNC0uMjg4LjEyNC0uNTk4LS4wNTgtLjY5OG0tNS4wNzctMi45NDJjLjE2Mi0uMTU0LS44MDUtLjM1NS0xLjU1Ni4xNTYtLjU1NC4zNzgtLjU3MSAxLjE4Ny0uMDQxIDEuNjQ2LjA1My4wNDYuMDk2LjA3OC4xMzcuMTA0YTQuNzcgNC43NyAwIDAgMSAxLjM5Ni0uNDEyYy4xMTMtLjEyNS4yNDMtLjM0NS4yMS0uNzQ1LS4wNDQtLjU0Mi0uNDU1LS40NTYtLjE0Ni0uNzQ5Ij48L3BhdGg+PC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Datadog = createSupabaseIcon(\n 'Datadog',\n [\n [\n 'path',\n {\n d: 'M19.57 17.04l-1.997-1.316-1.665 2.782-1.937-.567-1.706 2.604.087.82 9.274-1.71-.538-5.794zm-8.649-2.498l1.488-.204c.241.108.409.15.697.223.45.117.97.23 1.741-.16.18-.088.553-.43.704-.625l6.096-1.106.622 7.527-10.444 1.882zm11.325-2.712l-.602.115L20.488 0 .789 2.285l2.427 19.693 2.306-.334c-.184-.263-.471-.581-.96-.989-.68-.564-.44-1.522-.039-2.127.53-1.022 3.26-2.322 3.106-3.956-.056-.594-.15-1.368-.702-1.898-.02.22.017.432.017.432s-.227-.289-.34-.683c-.112-.15-.2-.199-.319-.4-.085.233-.073.503-.073.503s-.186-.437-.216-.807c-.11.166-.137.48-.137.48s-.241-.69-.186-1.062c-.11-.323-.436-.965-.343-2.424.6.421 1.924.321 2.44-.439.171-.251.288-.939-.086-2.293-.24-.868-.835-2.16-1.066-2.651l-.028.02c.122.395.374 1.223.47 1.625.293 1.218.372 1.642.234 2.204-.116.488-.397.808-1.107 1.165-.71.358-1.653-.514-1.713-.562-.69-.55-1.224-1.447-1.284-1.883-.062-.477.275-.763.445-1.153-.243.07-.514.192-.514.192s.323-.334.722-.624c.165-.109.262-.178.436-.323a9.762 9.762 0 0 0-.456.003s.42-.227.855-.392c-.318-.014-.623-.003-.623-.003s.937-.419 1.678-.727c.509-.208 1.006-.147 1.286.257.367.53.752.817 1.569.996.501-.223.653-.337 1.284-.509.554-.61.99-.688.99-.688s-.216.198-.274.51c.314-.249.66-.455.66-.455s-.134.164-.259.426l.03.043c.366-.22.797-.394.797-.394s-.123.156-.268.358c.277-.002.838.012 1.056.037 1.285.028 1.552-1.374 2.045-1.55.618-.22.894-.353 1.947.68.903.888 1.609 2.477 1.259 2.833-.294.295-.874-.115-1.516-.916a3.466 3.466 0 0 1-.716-1.562 1.533 1.533 0 0 0-.497-.85s.23.51.23.96c0 .246.03 1.165.424 1.68-.039.076-.057.374-.1.43-.458-.554-1.443-.95-1.604-1.067.544.445 1.793 1.468 2.273 2.449.453.927.186 1.777.416 1.997.065.063.976 1.197 1.15 1.767.306.994.019 2.038-.381 2.685l-1.117.174c-.163-.045-.273-.068-.42-.153.08-.143.241-.5.243-.572l-.063-.111c-.348.492-.93.97-1.414 1.245-.633.359-1.363.304-1.838.156-1.348-.415-2.623-1.327-2.93-1.566 0 0-.01.191.048.234.34.383 1.119 1.077 1.872 1.56l-1.605.177.759 5.908c-.337.048-.39.071-.757.124-.325-1.147-.946-1.895-1.624-2.332-.599-.384-1.424-.47-2.214-.314l-.05.059a2.851 2.851 0 0 1 1.863.444c.654.413 1.181 1.481 1.375 2.124.248.822.42 1.7-.248 2.632-.476.662-1.864 1.028-2.986.237.3.481.705.876 1.25.95.809.11 1.577-.03 2.106-.574.452-.464.69-1.434.628-2.456l.714-.104.258 1.834 11.827-1.424zM15.05 6.848c-.034.075-.085.125-.007.37l.004.014.013.032.032.073c.14.287.295.558.552.696.067-.011.136-.019.207-.023.242-.01.395.028.492.08.009-.048.01-.119.005-.222-.018-.364.072-.982-.626-1.308-.264-.122-.634-.084-.757.068a.302.302 0 0 1 .058.013c.186.066.06.13.027.207m1.958 3.392c-.092-.05-.52-.03-.821.005-.574.068-1.193.267-1.328.372-.247.191-.135.523.047.66.511.382.96.638 1.432.575.29-.038.546-.497.728-.914.124-.288.124-.598-.058-.698m-5.077-2.942c.162-.154-.805-.355-1.556.156-.554.378-.571 1.187-.041 1.646.053.046.096.078.137.104a4.77 4.77 0 0 1 1.396-.412c.113-.125.243-.345.21-.745-.044-.542-.455-.456-.146-.749',\n key: '13qbml',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'none' },\n);\n\nexport default Datadog;\n", component: React.lazy(() => import('icons/src/icons/datadog')), import: "import { Datadog } from 'icons'", - svg: "", + svg: "", jsx: "import { Datadog } from \"icons\"\n \n " }, { name: "edge-functions", componentName: "EdgeFunctions", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name EdgeFunctions\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xOCAxMi4xMDU1QzE4IDE1LjQxOTIgMTUuMzEzNyAxOC4xMDU1IDEyIDE4LjEwNTVDOC42ODYzIDE4LjEwNTUgNi4wMDAwMSAxNS40MTkyIDYuMDAwMDEgMTIuMTA1NUM2LjAwMDAxIDguNzkxNzYgOC42ODYzIDYuMTA1NDcgMTIgNi4xMDU0N0MxNS4zMTM3IDYuMTA1NDcgMTggOC43OTE3NiAxOCAxMi4xMDU1WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTIxLjM5OTkgNS43MDE1NEMyMS4zOTk5IDcuMzU4MzkgMjAuMDU2OCA4LjcwMTU0IDE4LjM5OTkgOC43MDE1NEMxNi43NDMxIDguNzAxNTQgMTUuMzk5OSA3LjM1ODM5IDE1LjM5OTkgNS43MDE1NEMxNS4zOTk5IDQuMDQ0NjggMTYuNzQzMSAyLjcwMTU0IDE4LjM5OTkgMi43MDE1NEMyMC4wNTY4IDIuNzAxNTQgMjEuMzk5OSA0LjA0NDY4IDIxLjM5OTkgNS43MDE1NFoiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik04LjYyMjE2IDE4LjQzNjNDOC42MjIxNiAyMC4wOTMyIDcuMjc5MDIgMjEuNDM2MyA1LjYyMjE2IDIxLjQzNjNDMy45NjUzMSAyMS40MzYzIDIuNjIyMTYgMjAuMDkzMiAyLjYyMjE2IDE4LjQzNjNDMi42MjIxNiAxNi43Nzk1IDMuOTY1MzEgMTUuNDM2MyA1LjYyMjE2IDE1LjQzNjNDNy4yNzkwMiAxNS40MzYzIDguNjIyMTYgMTYuNzc5NSA4LjYyMjE2IDE4LjQzNjNaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNMy4xODEyMSAxNi4yNjkxQzIuNTg0MDEgMTUuMDA2NSAyLjI1IDEzLjU5NSAyLjI1IDEyLjEwNTVDMi4yNSA2LjcyMDY5IDYuNjE1MjIgMi4zNTU0NyAxMiAyLjM1NTQ3QzEzLjQ4OTMgMi4zNTU0NyAxNC45MDA1IDIuNjg5MzcgMTYuMTYzIDMuMjg2MzhNNy42ODY3OSAyMC44NTJDOC45ODcxNSAyMS40OTQ0IDEwLjQ1MTQgMjEuODU1NSAxMiAyMS44NTU1QzE3LjM4NDggMjEuODU1NSAyMS43NSAxNy40OTAyIDIxLjc1IDEyLjEwNTVDMjEuNzUgMTAuNjE2MiAyMS40MTYxIDkuMjA0OTMgMjAuODE5MSA3Ljk0MjQyIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EdgeFunctions = createSupabaseIcon(\n 'EdgeFunctions',\n [\n [\n 'path',\n {\n d: 'M18 12.1055C18 15.4192 15.3137 18.1055 12 18.1055C8.6863 18.1055 6.00001 15.4192 6.00001 12.1055C6.00001 8.79176 8.6863 6.10547 12 6.10547C15.3137 6.10547 18 8.79176 18 12.1055Z',\n key: '1vv84o',\n },\n ],\n [\n 'path',\n {\n d: 'M21.3999 5.70154C21.3999 7.35839 20.0568 8.70154 18.3999 8.70154C16.7431 8.70154 15.3999 7.35839 15.3999 5.70154C15.3999 4.04468 16.7431 2.70154 18.3999 2.70154C20.0568 2.70154 21.3999 4.04468 21.3999 5.70154Z',\n key: '1vzce8',\n },\n ],\n [\n 'path',\n {\n d: 'M8.62216 18.4363C8.62216 20.0932 7.27902 21.4363 5.62216 21.4363C3.96531 21.4363 2.62216 20.0932 2.62216 18.4363C2.62216 16.7795 3.96531 15.4363 5.62216 15.4363C7.27902 15.4363 8.62216 16.7795 8.62216 18.4363Z',\n key: 's8poqq',\n },\n ],\n [\n 'path',\n {\n d: 'M3.18121 16.2691C2.58401 15.0065 2.25 13.595 2.25 12.1055C2.25 6.72069 6.61522 2.35547 12 2.35547C13.4893 2.35547 14.9005 2.68937 16.163 3.28638M7.68679 20.852C8.98715 21.4944 10.4514 21.8555 12 21.8555C17.3848 21.8555 21.75 17.4902 21.75 12.1055C21.75 10.6162 21.4161 9.20493 20.8191 7.94242',\n key: 'xs92pm',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default EdgeFunctions;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name EdgeFunctions\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE4IDEyLjEwNTVDMTggMTUuNDE5MiAxNS4zMTM3IDE4LjEwNTUgMTIgMTguMTA1NUM4LjY4NjMgMTguMTA1NSA2LjAwMDAxIDE1LjQxOTIgNi4wMDAwMSAxMi4xMDU1QzYuMDAwMDEgOC43OTE3NiA4LjY4NjMgNi4xMDU0NyAxMiA2LjEwNTQ3QzE1LjMxMzcgNi4xMDU0NyAxOCA4Ljc5MTc2IDE4IDEyLjEwNTVaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNMjEuMzk5OSA1LjcwMTU0QzIxLjM5OTkgNy4zNTgzOSAyMC4wNTY4IDguNzAxNTQgMTguMzk5OSA4LjcwMTU0QzE2Ljc0MzEgOC43MDE1NCAxNS4zOTk5IDcuMzU4MzkgMTUuMzk5OSA1LjcwMTU0QzE1LjM5OTkgNC4wNDQ2OCAxNi43NDMxIDIuNzAxNTQgMTguMzk5OSAyLjcwMTU0QzIwLjA1NjggMi43MDE1NCAyMS4zOTk5IDQuMDQ0NjggMjEuMzk5OSA1LjcwMTU0WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTguNjIyMTYgMTguNDM2M0M4LjYyMjE2IDIwLjA5MzIgNy4yNzkwMiAyMS40MzYzIDUuNjIyMTYgMjEuNDM2M0MzLjk2NTMxIDIxLjQzNjMgMi42MjIxNiAyMC4wOTMyIDIuNjIyMTYgMTguNDM2M0MyLjYyMjE2IDE2Ljc3OTUgMy45NjUzMSAxNS40MzYzIDUuNjIyMTYgMTUuNDM2M0M3LjI3OTAyIDE1LjQzNjMgOC42MjIxNiAxNi43Nzk1IDguNjIyMTYgMTguNDM2M1oiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0zLjE4MTIxIDE2LjI2OTFDMi41ODQwMSAxNS4wMDY1IDIuMjUgMTMuNTk1IDIuMjUgMTIuMTA1NUMyLjI1IDYuNzIwNjkgNi42MTUyMiAyLjM1NTQ3IDEyIDIuMzU1NDdDMTMuNDg5MyAyLjM1NTQ3IDE0LjkwMDUgMi42ODkzNyAxNi4xNjMgMy4yODYzOE03LjY4Njc5IDIwLjg1MkM4Ljk4NzE1IDIxLjQ5NDQgMTAuNDUxNCAyMS44NTU1IDEyIDIxLjg1NTVDMTcuMzg0OCAyMS44NTU1IDIxLjc1IDE3LjQ5MDIgMjEuNzUgMTIuMTA1NUMyMS43NSAxMC42MTYyIDIxLjQxNjEgOS4yMDQ5MyAyMC44MTkxIDcuOTQyNDIiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst EdgeFunctions = createSupabaseIcon(\n 'EdgeFunctions',\n [\n [\n 'path',\n {\n d: 'M18 12.1055C18 15.4192 15.3137 18.1055 12 18.1055C8.6863 18.1055 6.00001 15.4192 6.00001 12.1055C6.00001 8.79176 8.6863 6.10547 12 6.10547C15.3137 6.10547 18 8.79176 18 12.1055Z',\n key: '1vv84o',\n },\n ],\n [\n 'path',\n {\n d: 'M21.3999 5.70154C21.3999 7.35839 20.0568 8.70154 18.3999 8.70154C16.7431 8.70154 15.3999 7.35839 15.3999 5.70154C15.3999 4.04468 16.7431 2.70154 18.3999 2.70154C20.0568 2.70154 21.3999 4.04468 21.3999 5.70154Z',\n key: '1vzce8',\n },\n ],\n [\n 'path',\n {\n d: 'M8.62216 18.4363C8.62216 20.0932 7.27902 21.4363 5.62216 21.4363C3.96531 21.4363 2.62216 20.0932 2.62216 18.4363C2.62216 16.7795 3.96531 15.4363 5.62216 15.4363C7.27902 15.4363 8.62216 16.7795 8.62216 18.4363Z',\n key: 's8poqq',\n },\n ],\n [\n 'path',\n {\n d: 'M3.18121 16.2691C2.58401 15.0065 2.25 13.595 2.25 12.1055C2.25 6.72069 6.61522 2.35547 12 2.35547C13.4893 2.35547 14.9005 2.68937 16.163 3.28638M7.68679 20.852C8.98715 21.4944 10.4514 21.8555 12 21.8555C17.3848 21.8555 21.75 17.4902 21.75 12.1055C21.75 10.6162 21.4161 9.20493 20.8191 7.94242',\n key: 'xs92pm',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default EdgeFunctions;\n", component: React.lazy(() => import('icons/src/icons/edge-functions')), import: "import { EdgeFunctions } from 'icons'", - svg: "\n \n \n \n \n", + svg: "\n \n \n \n \n", jsx: "import { EdgeFunctions } from \"icons\"\n \n " }, { name: "files-bucket", componentName: "FilesBucket", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name FilesBucket\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuOTk5ODggMjBIMTkuOTk5OUMyMC41MzAzIDIwIDIxLjAzOSAxOS43ODkzIDIxLjQxNDEgMTkuNDE0MkMyMS43ODkyIDE5LjAzOTEgMjEuOTk5OSAxOC41MzA0IDIxLjk5OTkgMThWOEMyMS45OTk5IDcuNDY5NTcgMjEuNzg5MiA2Ljk2MDg2IDIxLjQxNDEgNi41ODU3OUMyMS4wMzkgNi4yMTA3MSAyMC41MzAzIDYgMTkuOTk5OSA2SDEyLjA2OTlDMTEuNzQwNSA1Ljk5ODMgMTEuNDE2NiA1LjkxNTI1IDExLjEyNyA1Ljc1ODI0QzEwLjgzNzQgNS42MDEyMyAxMC41OTExIDUuMzc1MTIgMTAuNDA5OSA1LjFMOS41ODk4OCAzLjlDOS40MDg3IDMuNjI0ODggOS4xNjIzNyAzLjM5ODc3IDguODcyNzggMy4yNDE3NkM4LjU4MzE5IDMuMDg0NzUgOC4yNTkyOSAzLjAwMTcgNy45Mjk4OCAzSDMuOTk5ODhDMy40Njk0NCAzIDIuOTYwNzQgMy4yMTA3MSAyLjU4NTY2IDMuNTg1NzlDMi4yMTA1OSAzLjk2MDg2IDEuOTk5ODggNC40Njk1NyAxLjk5OTg4IDVWMThDMS45OTk4OCAxOS4xIDIuODk5ODggMjAgMy45OTk4OCAyMFoiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik01IDEwLjVIMTkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FilesBucket = createSupabaseIcon(\n 'FilesBucket',\n [\n [\n 'path',\n {\n d: 'M3.99988 20H19.9999C20.5303 20 21.039 19.7893 21.4141 19.4142C21.7892 19.0391 21.9999 18.5304 21.9999 18V8C21.9999 7.46957 21.7892 6.96086 21.4141 6.58579C21.039 6.21071 20.5303 6 19.9999 6H12.0699C11.7405 5.9983 11.4166 5.91525 11.127 5.75824C10.8374 5.60123 10.5911 5.37512 10.4099 5.1L9.58988 3.9C9.4087 3.62488 9.16237 3.39877 8.87278 3.24176C8.58319 3.08475 8.25929 3.0017 7.92988 3H3.99988C3.46944 3 2.96074 3.21071 2.58566 3.58579C2.21059 3.96086 1.99988 4.46957 1.99988 5V18C1.99988 19.1 2.89988 20 3.99988 20Z',\n stroke: 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1i7att',\n },\n ],\n [\n 'path',\n {\n d: 'M5 10.5H19',\n stroke: 'currentColor',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'ys6uda',\n },\n ],\n ],\n { fill: 'none', strokeWidth: '1.5' },\n);\n\nexport default FilesBucket;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name FilesBucket\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zLjk5OTg4IDIwSDE5Ljk5OTlDMjAuNTMwMyAyMCAyMS4wMzkgMTkuNzg5MyAyMS40MTQxIDE5LjQxNDJDMjEuNzg5MiAxOS4wMzkxIDIxLjk5OTkgMTguNTMwNCAyMS45OTk5IDE4VjhDMjEuOTk5OSA3LjQ2OTU3IDIxLjc4OTIgNi45NjA4NiAyMS40MTQxIDYuNTg1NzlDMjEuMDM5IDYuMjEwNzEgMjAuNTMwMyA2IDE5Ljk5OTkgNkgxMi4wNjk5QzExLjc0MDUgNS45OTgzIDExLjQxNjYgNS45MTUyNSAxMS4xMjcgNS43NTgyNEMxMC44Mzc0IDUuNjAxMjMgMTAuNTkxMSA1LjM3NTEyIDEwLjQwOTkgNS4xTDkuNTg5ODggMy45QzkuNDA4NyAzLjYyNDg4IDkuMTYyMzcgMy4zOTg3NyA4Ljg3Mjc4IDMuMjQxNzZDOC41ODMxOSAzLjA4NDc1IDguMjU5MjkgMy4wMDE3IDcuOTI5ODggM0gzLjk5OTg4QzMuNDY5NDQgMyAyLjk2MDc0IDMuMjEwNzEgMi41ODU2NiAzLjU4NTc5QzIuMjEwNTkgMy45NjA4NiAxLjk5OTg4IDQuNDY5NTcgMS45OTk4OCA1VjE4QzEuOTk5ODggMTkuMSAyLjg5OTg4IDIwIDMuOTk5ODggMjBaIi8+CjxwYXRoIGQ9Ik01IDEwLjVIMTkiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FilesBucket = createSupabaseIcon(\n 'FilesBucket',\n [\n [\n 'path',\n {\n d: 'M3.99988 20H19.9999C20.5303 20 21.039 19.7893 21.4141 19.4142C21.7892 19.0391 21.9999 18.5304 21.9999 18V8C21.9999 7.46957 21.7892 6.96086 21.4141 6.58579C21.039 6.21071 20.5303 6 19.9999 6H12.0699C11.7405 5.9983 11.4166 5.91525 11.127 5.75824C10.8374 5.60123 10.5911 5.37512 10.4099 5.1L9.58988 3.9C9.4087 3.62488 9.16237 3.39877 8.87278 3.24176C8.58319 3.08475 8.25929 3.0017 7.92988 3H3.99988C3.46944 3 2.96074 3.21071 2.58566 3.58579C2.21059 3.96086 1.99988 4.46957 1.99988 5V18C1.99988 19.1 2.89988 20 3.99988 20Z',\n key: '1y2yg5',\n },\n ],\n ['path', { d: 'M5 10.5H19', key: 'eibh4o' }],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default FilesBucket;\n", component: React.lazy(() => import('icons/src/icons/files-bucket')), import: "import { FilesBucket } from 'icons'", - svg: "\n\n\n\n", + svg: "\n\n\n\n", jsx: "import { FilesBucket } from \"icons\"\n \n " }, { name: "grafana", componentName: "Grafana", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Grafana\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgICBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiCiAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICBzdHJva2Utd2lkdGg9IjAiCiAgICByb2xlPSJpbWciCiAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICBoZWlnaHQ9IjI0IgogICAgd2lkdGg9IjI0IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxwYXRoIGQ9Ik0yMy4wMiAxMC41OWE4LjU3OCA4LjU3OCAwIDAgMC0uODYyLTMuMDM0IDguOTExIDguOTExIDAgMCAwLTEuNzg5LTIuNDQ1Yy4zMzctMS4zNDItLjQxMy0yLjUwNS0uNDEzLTIuNTA1LTEuMjkyLS4wOC0yLjExMy40LTIuNDE2LjYyLS4wNTItLjAyLS4xMDItLjA0NC0uMTU0LS4wNjQtLjIyLS4wODktLjQ0Ni0uMTcyLS42NzctLjI0Ny0uMjMxLS4wNzMtLjQ3LS4xNC0uNzExLS4xOTdhOS44NjcgOS44NjcgMCAwIDAtLjg3NS0uMTYxQzE0LjU1Ny43NTMgMTIuOTQgMCAxMi45NCAwYy0xLjgwNCAxLjE0NS0yLjE0NyAyLjc0NC0yLjE0NyAyLjc0NGwtLjAxOC4wOTNjLS4wOTguMDI5LS4yLjA1Ny0uMjk4LjA4OC0uMTM4LjA0Mi0uMjc1LjA5NC0uNDEzLjE0My0uMTM4LjA1NS0uMjc1LjEwNy0uNDEuMTY2YTguODY5IDguODY5IDAgMCAwLTEuNTU3Ljg3bC0uMDYzLS4wMjljLTIuNDk3LS45NTUtNC43MTYuMTk1LTQuNzE2LjE5NS0uMjAzIDIuNjU4Ljk5NiA0LjMzIDEuMjM1IDQuNjM2YTExLjYwOCAxMS42MDggMCAwIDAtLjYwNyAyLjYzNUMxLjYzNiAxMi42NzcuOTUzIDE1LjAxNC45NTMgMTUuMDE0YzEuOTI2IDIuMjE0IDQuMTcxIDIuMzUxIDQuMTcxIDIuMzUxLjAwMy0uMDAyLjAwNi0uMDAyLjAwNi0uMDA1LjI4NS41MDkuNjE1Ljk5NC45ODYgMS40NDYuMTU2LjE5LjMyLjM3MS40ODguNTQ4LS43MDQgMi4wMDkuMDk5IDMuNjguMDk5IDMuNjggMi4xNDQuMDggMy41NTMtLjkzNyAzLjg0OS0xLjE3M2E5Ljc4NCA5Ljc4NCAwIDAgMCAzLjE2NC41MDFoLjA4bC4wNTUtLjAwMy4xMDctLjAwMi4xMDMtLjAwNS4wMDMuMDAyYzEuMDEgMS40NCAyLjc4OCAxLjY0NiAyLjc4OCAxLjY0NiAxLjI2NC0xLjMzMiAxLjMzNy0yLjY1MyAxLjMzNy0yLjk0di0uMDU4YzAtLjAyLS4wMDMtLjAzOS0uMDAzLS4wNi4yNjUtLjE4Ny41Mi0uMzg3Ljc1OC0uNmE3Ljg3NSA3Ljg3NSAwIDAgMCAxLjQxNS0xLjdjMS40My4wODMgMi40MzctLjg4NSAyLjQzNy0uODg1LS4yMzYtMS40OS0xLjA4NS0yLjIxNi0xLjI2NC0yLjM1NGwtLjAxOC0uMDEzLS4wMTYtLjAxM2EuMjE3LjIxNyAwIDAgMS0uMDMxLS4wMmMuMDA4LS4wOTIuMDE2LS4xOC4wMi0uMjcuMDExLS4xNjIuMDE2LS4zMjMuMDE2LS40OHYtLjI1M2wtLjAwNS0uMDk4LS4wMDgtLjEzNWExLjg5MSAxLjg5MSAwIDAgMC0uMDEtLjEzYy0uMDAzLS4wNDItLjAwOC0uMDgzLS4wMTMtLjEyNWwtLjAxNi0uMTI0LS4wMTgtLjEyMmE2LjIxNSA2LjIxNSAwIDAgMC0yLjAzMi0zLjczIDYuMDE1IDYuMDE1IDAgMCAwLTMuMjIyLTEuNDYgNi4yOTIgNi4yOTIgMCAwIDAtLjg1LS4wNDhsLS4xMDcuMDAyaC0uMDYzbC0uMDQ0LjAwMy0uMTA0LjAwOGE0Ljc3NyA0Ljc3NyAwIDAgMC0zLjMzNSAxLjY5NWMtLjMzMi40LS41OTIuODQtLjc2OCAxLjI5N2E0LjU5NCA0LjU5NCAwIDAgMC0uMzEyIDEuODE3bC4wMDMuMDkxYy4wMDUuMDU1LjAwNy4xMS4wMTMuMTY0YTMuNjE1IDMuNjE1IDAgMCAwIC42OTggMS44MiAzLjUzIDMuNTMgMCAwIDAgMS44MjcgMS4yODJjLjMzLjA5OC42Ni4xNC45NzEuMTM3LjAzOSAwIC4wNzggMCAuMTE0LS4wMDJsLjA2My0uMDAzYy4wMiAwIC4wNDEtLjAwMy4wNjItLjAwMy4wMzQtLjAwMi4wNjUtLjAwNy4wOTktLjAxLjAwNyAwIC4wMTgtLjAwMy4wMjgtLjAwM2wuMDMxLS4wMDUuMDYtLjAwOGExLjE4IDEuMTggMCAwIDAgLjExMi0uMDJjLjAzNi0uMDA4LjA3Mi0uMDEzLjEwOS0uMDI0YTIuNjM0IDIuNjM0IDAgMCAwIC45MTQtLjQxNWMuMDI4LS4wMi4wNTYtLjA0MS4wODUtLjA2NWEuMjQ4LjI0OCAwIDAgMCAuMDM5LS4zNS4yNDQuMjQ0IDAgMCAwLS4zMDktLjA2bC0uMDc4LjA0MmMtLjA5LjA0NC0uMTg0LjA4My0uMjgzLjExNmEyLjQ3NiAyLjQ3NiAwIDAgMS0uNDc1LjA5NmMtLjAyOC4wMDMtLjA1NC4wMDYtLjA4My4wMDZsLS4wODMuMDAyYy0uMDI2IDAtLjA1NCAwLS4wOC0uMDAybC0uMTAyLS4wMDZoLS4wMTJsLS4wMjQuMDA2Yy0uMDE2LS4wMDMtLjAzMS0uMDAzLS4wNDQtLjAwNi0uMDMxLS4wMDItLjA2LS4wMDctLjA5MS0uMDFhMi41OSAyLjU5IDAgMCAxLS43MjQtLjIxMyAyLjU1NyAyLjU1NyAwIDAgMS0uNjY3LS40MzggMi41MiAyLjUyIDAgMCAxLS44MDUtMS40NzUgMi4zMDYgMi4zMDYgMCAwIDEtLjAyOS0uNDQ0bC4wMDYtLjEyMnYtLjAyM2wuMDAyLS4wMzFjLjAwMy0uMDIxLjAwMy0uMDQuMDA1LS4wNmEzLjE2MyAzLjE2MyAwIDAgMSAxLjM1Mi0yLjI5IDMuMTIgMy4xMiAwIDAgMSAuOTM3LS40MyAyLjk0NiAyLjk0NiAwIDAgMSAuNzc2LS4xMDFoLjA2bC4wNy4wMDIuMDQ1LjAwM2guMDI2bC4wNy4wMDVhNC4wNDEgNC4wNDEgMCAwIDEgMS42MzUuNDkgMy45NCAzLjk0IDAgMCAxIDEuNjAyIDEuNjYyIDMuNzcgMy43NyAwIDAgMSAuMzk3IDEuNDE0bC4wMDUuMDc2LjAwMy4wNzVjLjAwMi4wMjYuMDAyLjA1LjAwMi4wNzUgMCAuMDI0LjAwMy4wNTIgMCAuMDd2LjA2NWwtLjAwMi4wNzMtLjAwOC4xNzRhNi4xOTUgNi4xOTUgMCAwIDEtLjA4LjYzOSA1LjEgNS4xIDAgMCAxLS4yNjcuOTI3IDUuMzEgNS4zMSAwIDAgMS0uNjI0IDEuMTMgNS4wNTIgNS4wNTIgMCAwIDEtMy4yMzcgMi4wMTQgNC44MiA0LjgyIDAgMCAxLS42NDkuMDY2bC0uMDM5LjAwM2gtLjI4N2E2LjYwNyA2LjYwNyAwIDAgMS0xLjcxNi0uMjY1IDYuNzc2IDYuNzc2IDAgMCAxLTMuNC0yLjI3NCA2Ljc1IDYuNzUgMCAwIDEtLjc0Ni0xLjE1IDYuNjE2IDYuNjE2IDAgMCAxLS43MTQtMi41OTZsLS4wMDUtLjA4My0uMDAyLS4wMnYtLjA1NmwtLjAwMy0uMDczdi0uMDk2bC0uMDAzLS4xMDR2LS4wN2wuMDAzLS4xNjNjLjAwOC0uMjIuMDI2LS40NS4wNTQtLjY3OGE4LjcwNyA4LjcwNyAwIDAgMSAuMjgtMS4zNTVjLjEyOC0uNDQ0LjI4Ni0uODcyLjQ3My0xLjI3N2E3LjA0IDcuMDQgMCAwIDEgMS40NTYtMi4xIDUuOTI1IDUuOTI1IDAgMCAxIC45NTMtLjc2M2MuMTY5LS4xMTEuMzQzLS4yMTMuNTI0LS4zMDYuMDg5LS4wNS4xODItLjA5MS4yNzMtLjEzNS4wNDctLjAyLjA5My0uMDQyLjEzOC0uMDYyYTcuMTc3IDcuMTc3IDAgMCAxIC43MTQtLjI2N2wuMTQ1LS4wNDVjLjA0OS0uMDE1LjA5OC0uMDI2LjE0OC0uMDQxLjA5OC0uMDI5LjE5Ny0uMDUyLjI5Ni0uMDc2LjA0OS0uMDEzLjEtLjAyLjE1LS4wMzNsLjE1LS4wMzIuMTUxLS4wMjguMDc2LS4wMTMuMDc1LS4wMS4xNTMtLjAyNGMuMDU3LS4wMS4xMTQtLjAxMy4xNzEtLjAyM2wuMTY5LS4wMjFjLjAzNi0uMDAzLjA3My0uMDA4LjEwNi0uMDFsLjA3My0uMDA4LjAzNi0uMDAzLjA0Mi0uMDAyYy4wNTctLjAwMy4xMTQtLjAwOC4xNzEtLjAxbC4wODYtLjAwNmguMDIzbC4wMzctLjAwMy4xNDUtLjAwN2E3Ljk5OSA3Ljk5OSAwIDAgMSAxLjcwOC4xMjUgNy45MTcgNy45MTcgMCAwIDEgMi4wNDguNjggOC4yNTMgOC4yNTMgMCAwIDEgMS42NzIgMS4wOWwuMDkuMDc3LjA4OS4wNzhjLjA2LjA1Mi4xMTQuMTA3LjE3MS4xNTkuMDU3LjA1Mi4xMTIuMTA2LjE2Ni4xNi4wNTIuMDU1LjEwNy4xMDcuMTU5LjE2NGE4LjY3MSA4LjY3MSAwIDAgMSAxLjQxIDEuOTc4Yy4wMTIuMDI2LjAyOC4wNTIuMDQuMDc4bC4wNC4wNzguMDc1LjE1NmMuMDIzLjA1MS4wNS4xLjA3LjE1M2wuMDY1LjE1YTguODQ4IDguODQ4IDAgMCAxIC40NSAxLjM0LjE5LjE5IDAgMCAwIC4yMDEuMTQyLjE4Ni4xODYgMCAwIDAgLjE3Mi0uMTg0Yy4wMS0uMjQ2LjAwMi0uNTMyLS4wMjQtLjg1NnoiPjwvcGF0aD4KICA8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Grafana = createSupabaseIcon(\n 'Grafana',\n [\n [\n 'path',\n {\n d: 'M23.02 10.59a8.578 8.578 0 0 0-.862-3.034 8.911 8.911 0 0 0-1.789-2.445c.337-1.342-.413-2.505-.413-2.505-1.292-.08-2.113.4-2.416.62-.052-.02-.102-.044-.154-.064-.22-.089-.446-.172-.677-.247-.231-.073-.47-.14-.711-.197a9.867 9.867 0 0 0-.875-.161C14.557.753 12.94 0 12.94 0c-1.804 1.145-2.147 2.744-2.147 2.744l-.018.093c-.098.029-.2.057-.298.088-.138.042-.275.094-.413.143-.138.055-.275.107-.41.166a8.869 8.869 0 0 0-1.557.87l-.063-.029c-2.497-.955-4.716.195-4.716.195-.203 2.658.996 4.33 1.235 4.636a11.608 11.608 0 0 0-.607 2.635C1.636 12.677.953 15.014.953 15.014c1.926 2.214 4.171 2.351 4.171 2.351.003-.002.006-.002.006-.005.285.509.615.994.986 1.446.156.19.32.371.488.548-.704 2.009.099 3.68.099 3.68 2.144.08 3.553-.937 3.849-1.173a9.784 9.784 0 0 0 3.164.501h.08l.055-.003.107-.002.103-.005.003.002c1.01 1.44 2.788 1.646 2.788 1.646 1.264-1.332 1.337-2.653 1.337-2.94v-.058c0-.02-.003-.039-.003-.06.265-.187.52-.387.758-.6a7.875 7.875 0 0 0 1.415-1.7c1.43.083 2.437-.885 2.437-.885-.236-1.49-1.085-2.216-1.264-2.354l-.018-.013-.016-.013a.217.217 0 0 1-.031-.02c.008-.092.016-.18.02-.27.011-.162.016-.323.016-.48v-.253l-.005-.098-.008-.135a1.891 1.891 0 0 0-.01-.13c-.003-.042-.008-.083-.013-.125l-.016-.124-.018-.122a6.215 6.215 0 0 0-2.032-3.73 6.015 6.015 0 0 0-3.222-1.46 6.292 6.292 0 0 0-.85-.048l-.107.002h-.063l-.044.003-.104.008a4.777 4.777 0 0 0-3.335 1.695c-.332.4-.592.84-.768 1.297a4.594 4.594 0 0 0-.312 1.817l.003.091c.005.055.007.11.013.164a3.615 3.615 0 0 0 .698 1.82 3.53 3.53 0 0 0 1.827 1.282c.33.098.66.14.971.137.039 0 .078 0 .114-.002l.063-.003c.02 0 .041-.003.062-.003.034-.002.065-.007.099-.01.007 0 .018-.003.028-.003l.031-.005.06-.008a1.18 1.18 0 0 0 .112-.02c.036-.008.072-.013.109-.024a2.634 2.634 0 0 0 .914-.415c.028-.02.056-.041.085-.065a.248.248 0 0 0 .039-.35.244.244 0 0 0-.309-.06l-.078.042c-.09.044-.184.083-.283.116a2.476 2.476 0 0 1-.475.096c-.028.003-.054.006-.083.006l-.083.002c-.026 0-.054 0-.08-.002l-.102-.006h-.012l-.024.006c-.016-.003-.031-.003-.044-.006-.031-.002-.06-.007-.091-.01a2.59 2.59 0 0 1-.724-.213 2.557 2.557 0 0 1-.667-.438 2.52 2.52 0 0 1-.805-1.475 2.306 2.306 0 0 1-.029-.444l.006-.122v-.023l.002-.031c.003-.021.003-.04.005-.06a3.163 3.163 0 0 1 1.352-2.29 3.12 3.12 0 0 1 .937-.43 2.946 2.946 0 0 1 .776-.101h.06l.07.002.045.003h.026l.07.005a4.041 4.041 0 0 1 1.635.49 3.94 3.94 0 0 1 1.602 1.662 3.77 3.77 0 0 1 .397 1.414l.005.076.003.075c.002.026.002.05.002.075 0 .024.003.052 0 .07v.065l-.002.073-.008.174a6.195 6.195 0 0 1-.08.639 5.1 5.1 0 0 1-.267.927 5.31 5.31 0 0 1-.624 1.13 5.052 5.052 0 0 1-3.237 2.014 4.82 4.82 0 0 1-.649.066l-.039.003h-.287a6.607 6.607 0 0 1-1.716-.265 6.776 6.776 0 0 1-3.4-2.274 6.75 6.75 0 0 1-.746-1.15 6.616 6.616 0 0 1-.714-2.596l-.005-.083-.002-.02v-.056l-.003-.073v-.096l-.003-.104v-.07l.003-.163c.008-.22.026-.45.054-.678a8.707 8.707 0 0 1 .28-1.355c.128-.444.286-.872.473-1.277a7.04 7.04 0 0 1 1.456-2.1 5.925 5.925 0 0 1 .953-.763c.169-.111.343-.213.524-.306.089-.05.182-.091.273-.135.047-.02.093-.042.138-.062a7.177 7.177 0 0 1 .714-.267l.145-.045c.049-.015.098-.026.148-.041.098-.029.197-.052.296-.076.049-.013.1-.02.15-.033l.15-.032.151-.028.076-.013.075-.01.153-.024c.057-.01.114-.013.171-.023l.169-.021c.036-.003.073-.008.106-.01l.073-.008.036-.003.042-.002c.057-.003.114-.008.171-.01l.086-.006h.023l.037-.003.145-.007a7.999 7.999 0 0 1 1.708.125 7.917 7.917 0 0 1 2.048.68 8.253 8.253 0 0 1 1.672 1.09l.09.077.089.078c.06.052.114.107.171.159.057.052.112.106.166.16.052.055.107.107.159.164a8.671 8.671 0 0 1 1.41 1.978c.012.026.028.052.04.078l.04.078.075.156c.023.051.05.1.07.153l.065.15a8.848 8.848 0 0 1 .45 1.34.19.19 0 0 0 .201.142.186.186 0 0 0 .172-.184c.01-.246.002-.532-.024-.856z',\n key: 'hopart',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'currentColor', strokeWidth: '0' },\n);\n\nexport default Grafana;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Grafana\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgICBzdHJva2U9Im5vbmUiCiAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICByb2xlPSJpbWciCiAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICBoZWlnaHQ9IjI0IgogICAgd2lkdGg9IjI0IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxwYXRoIGQ9Ik0yMy4wMiAxMC41OWE4LjU3OCA4LjU3OCAwIDAgMC0uODYyLTMuMDM0IDguOTExIDguOTExIDAgMCAwLTEuNzg5LTIuNDQ1Yy4zMzctMS4zNDItLjQxMy0yLjUwNS0uNDEzLTIuNTA1LTEuMjkyLS4wOC0yLjExMy40LTIuNDE2LjYyLS4wNTItLjAyLS4xMDItLjA0NC0uMTU0LS4wNjQtLjIyLS4wODktLjQ0Ni0uMTcyLS42NzctLjI0Ny0uMjMxLS4wNzMtLjQ3LS4xNC0uNzExLS4xOTdhOS44NjcgOS44NjcgMCAwIDAtLjg3NS0uMTYxQzE0LjU1Ny43NTMgMTIuOTQgMCAxMi45NCAwYy0xLjgwNCAxLjE0NS0yLjE0NyAyLjc0NC0yLjE0NyAyLjc0NGwtLjAxOC4wOTNjLS4wOTguMDI5LS4yLjA1Ny0uMjk4LjA4OC0uMTM4LjA0Mi0uMjc1LjA5NC0uNDEzLjE0My0uMTM4LjA1NS0uMjc1LjEwNy0uNDEuMTY2YTguODY5IDguODY5IDAgMCAwLTEuNTU3Ljg3bC0uMDYzLS4wMjljLTIuNDk3LS45NTUtNC43MTYuMTk1LTQuNzE2LjE5NS0uMjAzIDIuNjU4Ljk5NiA0LjMzIDEuMjM1IDQuNjM2YTExLjYwOCAxMS42MDggMCAwIDAtLjYwNyAyLjYzNUMxLjYzNiAxMi42NzcuOTUzIDE1LjAxNC45NTMgMTUuMDE0YzEuOTI2IDIuMjE0IDQuMTcxIDIuMzUxIDQuMTcxIDIuMzUxLjAwMy0uMDAyLjAwNi0uMDAyLjAwNi0uMDA1LjI4NS41MDkuNjE1Ljk5NC45ODYgMS40NDYuMTU2LjE5LjMyLjM3MS40ODguNTQ4LS43MDQgMi4wMDkuMDk5IDMuNjguMDk5IDMuNjggMi4xNDQuMDggMy41NTMtLjkzNyAzLjg0OS0xLjE3M2E5Ljc4NCA5Ljc4NCAwIDAgMCAzLjE2NC41MDFoLjA4bC4wNTUtLjAwMy4xMDctLjAwMi4xMDMtLjAwNS4wMDMuMDAyYzEuMDEgMS40NCAyLjc4OCAxLjY0NiAyLjc4OCAxLjY0NiAxLjI2NC0xLjMzMiAxLjMzNy0yLjY1MyAxLjMzNy0yLjk0di0uMDU4YzAtLjAyLS4wMDMtLjAzOS0uMDAzLS4wNi4yNjUtLjE4Ny41Mi0uMzg3Ljc1OC0uNmE3Ljg3NSA3Ljg3NSAwIDAgMCAxLjQxNS0xLjdjMS40My4wODMgMi40MzctLjg4NSAyLjQzNy0uODg1LS4yMzYtMS40OS0xLjA4NS0yLjIxNi0xLjI2NC0yLjM1NGwtLjAxOC0uMDEzLS4wMTYtLjAxM2EuMjE3LjIxNyAwIDAgMS0uMDMxLS4wMmMuMDA4LS4wOTIuMDE2LS4xOC4wMi0uMjcuMDExLS4xNjIuMDE2LS4zMjMuMDE2LS40OHYtLjI1M2wtLjAwNS0uMDk4LS4wMDgtLjEzNWExLjg5MSAxLjg5MSAwIDAgMC0uMDEtLjEzYy0uMDAzLS4wNDItLjAwOC0uMDgzLS4wMTMtLjEyNWwtLjAxNi0uMTI0LS4wMTgtLjEyMmE2LjIxNSA2LjIxNSAwIDAgMC0yLjAzMi0zLjczIDYuMDE1IDYuMDE1IDAgMCAwLTMuMjIyLTEuNDYgNi4yOTIgNi4yOTIgMCAwIDAtLjg1LS4wNDhsLS4xMDcuMDAyaC0uMDYzbC0uMDQ0LjAwMy0uMTA0LjAwOGE0Ljc3NyA0Ljc3NyAwIDAgMC0zLjMzNSAxLjY5NWMtLjMzMi40LS41OTIuODQtLjc2OCAxLjI5N2E0LjU5NCA0LjU5NCAwIDAgMC0uMzEyIDEuODE3bC4wMDMuMDkxYy4wMDUuMDU1LjAwNy4xMS4wMTMuMTY0YTMuNjE1IDMuNjE1IDAgMCAwIC42OTggMS44MiAzLjUzIDMuNTMgMCAwIDAgMS44MjcgMS4yODJjLjMzLjA5OC42Ni4xNC45NzEuMTM3LjAzOSAwIC4wNzggMCAuMTE0LS4wMDJsLjA2My0uMDAzYy4wMiAwIC4wNDEtLjAwMy4wNjItLjAwMy4wMzQtLjAwMi4wNjUtLjAwNy4wOTktLjAxLjAwNyAwIC4wMTgtLjAwMy4wMjgtLjAwM2wuMDMxLS4wMDUuMDYtLjAwOGExLjE4IDEuMTggMCAwIDAgLjExMi0uMDJjLjAzNi0uMDA4LjA3Mi0uMDEzLjEwOS0uMDI0YTIuNjM0IDIuNjM0IDAgMCAwIC45MTQtLjQxNWMuMDI4LS4wMi4wNTYtLjA0MS4wODUtLjA2NWEuMjQ4LjI0OCAwIDAgMCAuMDM5LS4zNS4yNDQuMjQ0IDAgMCAwLS4zMDktLjA2bC0uMDc4LjA0MmMtLjA5LjA0NC0uMTg0LjA4My0uMjgzLjExNmEyLjQ3NiAyLjQ3NiAwIDAgMS0uNDc1LjA5NmMtLjAyOC4wMDMtLjA1NC4wMDYtLjA4My4wMDZsLS4wODMuMDAyYy0uMDI2IDAtLjA1NCAwLS4wOC0uMDAybC0uMTAyLS4wMDZoLS4wMTJsLS4wMjQuMDA2Yy0uMDE2LS4wMDMtLjAzMS0uMDAzLS4wNDQtLjAwNi0uMDMxLS4wMDItLjA2LS4wMDctLjA5MS0uMDFhMi41OSAyLjU5IDAgMCAxLS43MjQtLjIxMyAyLjU1NyAyLjU1NyAwIDAgMS0uNjY3LS40MzggMi41MiAyLjUyIDAgMCAxLS44MDUtMS40NzUgMi4zMDYgMi4zMDYgMCAwIDEtLjAyOS0uNDQ0bC4wMDYtLjEyMnYtLjAyM2wuMDAyLS4wMzFjLjAwMy0uMDIxLjAwMy0uMDQuMDA1LS4wNmEzLjE2MyAzLjE2MyAwIDAgMSAxLjM1Mi0yLjI5IDMuMTIgMy4xMiAwIDAgMSAuOTM3LS40MyAyLjk0NiAyLjk0NiAwIDAgMSAuNzc2LS4xMDFoLjA2bC4wNy4wMDIuMDQ1LjAwM2guMDI2bC4wNy4wMDVhNC4wNDEgNC4wNDEgMCAwIDEgMS42MzUuNDkgMy45NCAzLjk0IDAgMCAxIDEuNjAyIDEuNjYyIDMuNzcgMy43NyAwIDAgMSAuMzk3IDEuNDE0bC4wMDUuMDc2LjAwMy4wNzVjLjAwMi4wMjYuMDAyLjA1LjAwMi4wNzUgMCAuMDI0LjAwMy4wNTIgMCAuMDd2LjA2NWwtLjAwMi4wNzMtLjAwOC4xNzRhNi4xOTUgNi4xOTUgMCAwIDEtLjA4LjYzOSA1LjEgNS4xIDAgMCAxLS4yNjcuOTI3IDUuMzEgNS4zMSAwIDAgMS0uNjI0IDEuMTMgNS4wNTIgNS4wNTIgMCAwIDEtMy4yMzcgMi4wMTQgNC44MiA0LjgyIDAgMCAxLS42NDkuMDY2bC0uMDM5LjAwM2gtLjI4N2E2LjYwNyA2LjYwNyAwIDAgMS0xLjcxNi0uMjY1IDYuNzc2IDYuNzc2IDAgMCAxLTMuNC0yLjI3NCA2Ljc1IDYuNzUgMCAwIDEtLjc0Ni0xLjE1IDYuNjE2IDYuNjE2IDAgMCAxLS43MTQtMi41OTZsLS4wMDUtLjA4My0uMDAyLS4wMnYtLjA1NmwtLjAwMy0uMDczdi0uMDk2bC0uMDAzLS4xMDR2LS4wN2wuMDAzLS4xNjNjLjAwOC0uMjIuMDI2LS40NS4wNTQtLjY3OGE4LjcwNyA4LjcwNyAwIDAgMSAuMjgtMS4zNTVjLjEyOC0uNDQ0LjI4Ni0uODcyLjQ3My0xLjI3N2E3LjA0IDcuMDQgMCAwIDEgMS40NTYtMi4xIDUuOTI1IDUuOTI1IDAgMCAxIC45NTMtLjc2M2MuMTY5LS4xMTEuMzQzLS4yMTMuNTI0LS4zMDYuMDg5LS4wNS4xODItLjA5MS4yNzMtLjEzNS4wNDctLjAyLjA5My0uMDQyLjEzOC0uMDYyYTcuMTc3IDcuMTc3IDAgMCAxIC43MTQtLjI2N2wuMTQ1LS4wNDVjLjA0OS0uMDE1LjA5OC0uMDI2LjE0OC0uMDQxLjA5OC0uMDI5LjE5Ny0uMDUyLjI5Ni0uMDc2LjA0OS0uMDEzLjEtLjAyLjE1LS4wMzNsLjE1LS4wMzIuMTUxLS4wMjguMDc2LS4wMTMuMDc1LS4wMS4xNTMtLjAyNGMuMDU3LS4wMS4xMTQtLjAxMy4xNzEtLjAyM2wuMTY5LS4wMjFjLjAzNi0uMDAzLjA3My0uMDA4LjEwNi0uMDFsLjA3My0uMDA4LjAzNi0uMDAzLjA0Mi0uMDAyYy4wNTctLjAwMy4xMTQtLjAwOC4xNzEtLjAxbC4wODYtLjAwNmguMDIzbC4wMzctLjAwMy4xNDUtLjAwN2E3Ljk5OSA3Ljk5OSAwIDAgMSAxLjcwOC4xMjUgNy45MTcgNy45MTcgMCAwIDEgMi4wNDguNjggOC4yNTMgOC4yNTMgMCAwIDEgMS42NzIgMS4wOWwuMDkuMDc3LjA4OS4wNzhjLjA2LjA1Mi4xMTQuMTA3LjE3MS4xNTkuMDU3LjA1Mi4xMTIuMTA2LjE2Ni4xNi4wNTIuMDU1LjEwNy4xMDcuMTU5LjE2NGE4LjY3MSA4LjY3MSAwIDAgMSAxLjQxIDEuOTc4Yy4wMTIuMDI2LjAyOC4wNTIuMDQuMDc4bC4wNC4wNzguMDc1LjE1NmMuMDIzLjA1MS4wNS4xLjA3LjE1M2wuMDY1LjE1YTguODQ4IDguODQ4IDAgMCAxIC40NSAxLjM0LjE5LjE5IDAgMCAwIC4yMDEuMTQyLjE4Ni4xODYgMCAwIDAgLjE3Mi0uMTg0Yy4wMS0uMjQ2LjAwMi0uNTMyLS4wMjQtLjg1NnoiPjwvcGF0aD4KICA8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Grafana = createSupabaseIcon(\n 'Grafana',\n [\n [\n 'path',\n {\n d: 'M23.02 10.59a8.578 8.578 0 0 0-.862-3.034 8.911 8.911 0 0 0-1.789-2.445c.337-1.342-.413-2.505-.413-2.505-1.292-.08-2.113.4-2.416.62-.052-.02-.102-.044-.154-.064-.22-.089-.446-.172-.677-.247-.231-.073-.47-.14-.711-.197a9.867 9.867 0 0 0-.875-.161C14.557.753 12.94 0 12.94 0c-1.804 1.145-2.147 2.744-2.147 2.744l-.018.093c-.098.029-.2.057-.298.088-.138.042-.275.094-.413.143-.138.055-.275.107-.41.166a8.869 8.869 0 0 0-1.557.87l-.063-.029c-2.497-.955-4.716.195-4.716.195-.203 2.658.996 4.33 1.235 4.636a11.608 11.608 0 0 0-.607 2.635C1.636 12.677.953 15.014.953 15.014c1.926 2.214 4.171 2.351 4.171 2.351.003-.002.006-.002.006-.005.285.509.615.994.986 1.446.156.19.32.371.488.548-.704 2.009.099 3.68.099 3.68 2.144.08 3.553-.937 3.849-1.173a9.784 9.784 0 0 0 3.164.501h.08l.055-.003.107-.002.103-.005.003.002c1.01 1.44 2.788 1.646 2.788 1.646 1.264-1.332 1.337-2.653 1.337-2.94v-.058c0-.02-.003-.039-.003-.06.265-.187.52-.387.758-.6a7.875 7.875 0 0 0 1.415-1.7c1.43.083 2.437-.885 2.437-.885-.236-1.49-1.085-2.216-1.264-2.354l-.018-.013-.016-.013a.217.217 0 0 1-.031-.02c.008-.092.016-.18.02-.27.011-.162.016-.323.016-.48v-.253l-.005-.098-.008-.135a1.891 1.891 0 0 0-.01-.13c-.003-.042-.008-.083-.013-.125l-.016-.124-.018-.122a6.215 6.215 0 0 0-2.032-3.73 6.015 6.015 0 0 0-3.222-1.46 6.292 6.292 0 0 0-.85-.048l-.107.002h-.063l-.044.003-.104.008a4.777 4.777 0 0 0-3.335 1.695c-.332.4-.592.84-.768 1.297a4.594 4.594 0 0 0-.312 1.817l.003.091c.005.055.007.11.013.164a3.615 3.615 0 0 0 .698 1.82 3.53 3.53 0 0 0 1.827 1.282c.33.098.66.14.971.137.039 0 .078 0 .114-.002l.063-.003c.02 0 .041-.003.062-.003.034-.002.065-.007.099-.01.007 0 .018-.003.028-.003l.031-.005.06-.008a1.18 1.18 0 0 0 .112-.02c.036-.008.072-.013.109-.024a2.634 2.634 0 0 0 .914-.415c.028-.02.056-.041.085-.065a.248.248 0 0 0 .039-.35.244.244 0 0 0-.309-.06l-.078.042c-.09.044-.184.083-.283.116a2.476 2.476 0 0 1-.475.096c-.028.003-.054.006-.083.006l-.083.002c-.026 0-.054 0-.08-.002l-.102-.006h-.012l-.024.006c-.016-.003-.031-.003-.044-.006-.031-.002-.06-.007-.091-.01a2.59 2.59 0 0 1-.724-.213 2.557 2.557 0 0 1-.667-.438 2.52 2.52 0 0 1-.805-1.475 2.306 2.306 0 0 1-.029-.444l.006-.122v-.023l.002-.031c.003-.021.003-.04.005-.06a3.163 3.163 0 0 1 1.352-2.29 3.12 3.12 0 0 1 .937-.43 2.946 2.946 0 0 1 .776-.101h.06l.07.002.045.003h.026l.07.005a4.041 4.041 0 0 1 1.635.49 3.94 3.94 0 0 1 1.602 1.662 3.77 3.77 0 0 1 .397 1.414l.005.076.003.075c.002.026.002.05.002.075 0 .024.003.052 0 .07v.065l-.002.073-.008.174a6.195 6.195 0 0 1-.08.639 5.1 5.1 0 0 1-.267.927 5.31 5.31 0 0 1-.624 1.13 5.052 5.052 0 0 1-3.237 2.014 4.82 4.82 0 0 1-.649.066l-.039.003h-.287a6.607 6.607 0 0 1-1.716-.265 6.776 6.776 0 0 1-3.4-2.274 6.75 6.75 0 0 1-.746-1.15 6.616 6.616 0 0 1-.714-2.596l-.005-.083-.002-.02v-.056l-.003-.073v-.096l-.003-.104v-.07l.003-.163c.008-.22.026-.45.054-.678a8.707 8.707 0 0 1 .28-1.355c.128-.444.286-.872.473-1.277a7.04 7.04 0 0 1 1.456-2.1 5.925 5.925 0 0 1 .953-.763c.169-.111.343-.213.524-.306.089-.05.182-.091.273-.135.047-.02.093-.042.138-.062a7.177 7.177 0 0 1 .714-.267l.145-.045c.049-.015.098-.026.148-.041.098-.029.197-.052.296-.076.049-.013.1-.02.15-.033l.15-.032.151-.028.076-.013.075-.01.153-.024c.057-.01.114-.013.171-.023l.169-.021c.036-.003.073-.008.106-.01l.073-.008.036-.003.042-.002c.057-.003.114-.008.171-.01l.086-.006h.023l.037-.003.145-.007a7.999 7.999 0 0 1 1.708.125 7.917 7.917 0 0 1 2.048.68 8.253 8.253 0 0 1 1.672 1.09l.09.077.089.078c.06.052.114.107.171.159.057.052.112.106.166.16.052.055.107.107.159.164a8.671 8.671 0 0 1 1.41 1.978c.012.026.028.052.04.078l.04.078.075.156c.023.051.05.1.07.153l.065.15a8.848 8.848 0 0 1 .45 1.34.19.19 0 0 0 .201.142.186.186 0 0 0 .172-.184c.01-.246.002-.532-.024-.856z',\n key: 'hopart',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'none' },\n);\n\nexport default Grafana;\n", component: React.lazy(() => import('icons/src/icons/grafana')), import: "import { Grafana } from 'icons'", - svg: "\n \n ", + svg: "\n \n ", jsx: "import { Grafana } from \"icons\"\n \n " }, { name: "graphql", componentName: "Graphql", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Graphql\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTEuOTAwNyAzLjc2ODU3TDE5LjAwMDcgNy44Njc3NVYxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDcuODY3NzVWMTYuMDY2MU0xMS45MDA3IDMuNzY4NTdMMTkuMDAwNyAxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxTDExLjkwMDcgMjAuMTY1M0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxSDQuODAwNzJNNi4wMTY0IDE2LjEzMjJDNi4wMTY0IDE2Ljc4OTUgNS40ODM1OCAxNy4zMjIzIDQuODI2MzEgMTcuMzIyM0M0LjE2OTA1IDE3LjMyMjMgMy42MzYyMyAxNi43ODk1IDMuNjM2MjMgMTYuMTMyMkMzLjYzNjIzIDE1LjQ3NDkgNC4xNjkwNSAxNC45NDIxIDQuODI2MzEgMTQuOTQyMUM1LjQ4MzU4IDE0Ljk0MjEgNi4wMTY0IDE1LjQ3NDkgNi4wMTY0IDE2LjEzMjJaTTUuMjg5MTIgMTYuMTMyMkM1LjI4OTEyIDE2LjM4NzggNS4wODE5MiAxNi41OTUgNC44MjYzMSAxNi41OTVDNC41NzA3MSAxNi41OTUgNC4zNjM1IDE2LjM4NzggNC4zNjM1IDE2LjEzMjJDNC4zNjM1IDE1Ljg3NjYgNC41NzA3MSAxNS42Njk0IDQuODI2MzEgMTUuNjY5NEM1LjA4MTkyIDE1LjY2OTQgNS4yODkxMiAxNS44NzY2IDUuMjg5MTIgMTYuMTMyMlpNMjAuMjk3NCAxNi4xMzIyQzIwLjI5NzQgMTYuNzg5NSAxOS43NjQ2IDE3LjMyMjMgMTkuMTA3MyAxNy4zMjIzQzE4LjQ1IDE3LjMyMjMgMTcuOTE3MiAxNi43ODk1IDE3LjkxNzIgMTYuMTMyMkMxNy45MTcyIDE1LjQ3NDkgMTguNDUgMTQuOTQyMSAxOS4xMDczIDE0Ljk0MjFDMTkuNzY0NiAxNC45NDIxIDIwLjI5NzQgMTUuNDc0OSAyMC4yOTc0IDE2LjEzMjJaTTE5LjU3MDEgMTYuMTMyMkMxOS41NzAxIDE2LjM4NzggMTkuMzYyOSAxNi41OTUgMTkuMTA3MyAxNi41OTVDMTguODUxNyAxNi41OTUgMTguNjQ0NSAxNi4zODc4IDE4LjY0NDUgMTYuMTMyMkMxOC42NDQ1IDE1Ljg3NjYgMTguODUxNyAxNS42Njk0IDE5LjEwNzMgMTUuNjY5NEMxOS4zNjI5IDE1LjY2OTQgMTkuNTcwMSAxNS44NzY2IDE5LjU3MDEgMTYuMTMyMlpNNi4wMTY0IDcuODY3NzVDNi4wMTY0IDguNTI1MDEgNS40ODM1OCA5LjA1NzgzIDQuODI2MzEgOS4wNTc4M0M0LjE2OTA1IDkuMDU3ODMgMy42MzYyMyA4LjUyNTAxIDMuNjM2MjMgNy44Njc3NUMzLjYzNjIzIDcuMjEwNDggNC4xNjkwNSA2LjY3NzY2IDQuODI2MzEgNi42Nzc2NkM1LjQ4MzU4IDYuNjc3NjYgNi4wMTY0IDcuMjEwNDggNi4wMTY0IDcuODY3NzVaTTUuMjg5MTIgNy44Njc3NUM1LjI4OTEyIDguMTIzMzUgNS4wODE5MiA4LjMzMDU2IDQuODI2MzEgOC4zMzA1NkM0LjU3MDcxIDguMzMwNTYgNC4zNjM1IDguMTIzMzUgNC4zNjM1IDcuODY3NzVDNC4zNjM1IDcuNjEyMTQgNC41NzA3MSA3LjQwNDk0IDQuODI2MzEgNy40MDQ5NEM1LjA4MTkyIDcuNDA0OTQgNS4yODkxMiA3LjYxMjE0IDUuMjg5MTIgNy44Njc3NVpNMjAuMjk3NCA3Ljg2Nzc1QzIwLjI5NzQgOC41MjUwMSAxOS43NjQ2IDkuMDU3ODMgMTkuMTA3MyA5LjA1NzgzQzE4LjQ1IDkuMDU3ODMgMTcuOTE3MiA4LjUyNTAxIDE3LjkxNzIgNy44Njc3NUMxNy45MTcyIDcuMjEwNDggMTguNDUgNi42Nzc2NiAxOS4xMDczIDYuNjc3NjZDMTkuNzY0NiA2LjY3NzY2IDIwLjI5NzQgNy4yMTA0OCAyMC4yOTc0IDcuODY3NzVaTTE5LjU3MDEgNy44Njc3NUMxOS41NzAxIDguMTIzMzUgMTkuMzYyOSA4LjMzMDU2IDE5LjEwNzMgOC4zMzA1NkMxOC44NTE3IDguMzMwNTYgMTguNjQ0NSA4LjEyMzM1IDE4LjY0NDUgNy44Njc3NUMxOC42NDQ1IDcuNjEyMTQgMTguODUxNyA3LjQwNDk0IDE5LjEwNzMgNy40MDQ5NEMxOS4zNjI5IDcuNDA0OTQgMTkuNTcwMSA3LjYxMjE0IDE5LjU3MDEgNy44Njc3NVpNMTMuMTU2OSAzLjc2ODU3QzEzLjE1NjkgNC40MjU4NCAxMi42MjQxIDQuOTU4NjYgMTEuOTY2OCA0Ljk1ODY2QzExLjMwOTUgNC45NTg2NiAxMC43NzY3IDQuNDI1ODQgMTAuNzc2NyAzLjc2ODU3QzEwLjc3NjcgMy4xMTEzMSAxMS4zMDk1IDIuNTc4NDkgMTEuOTY2OCAyLjU3ODQ5QzEyLjYyNDEgMi41Nzg0OSAxMy4xNTY5IDMuMTExMzEgMTMuMTU2OSAzLjc2ODU3Wk0xMi40Mjk2IDMuNzY4NTdDMTIuNDI5NiA0LjAyNDE4IDEyLjIyMjQgNC4yMzEzOCAxMS45NjY4IDQuMjMxMzhDMTEuNzExMiA0LjIzMTM4IDExLjUwNCA0LjAyNDE4IDExLjUwNCAzLjc2ODU3QzExLjUwNCAzLjUxMjk3IDExLjcxMTIgMy4zMDU3NiAxMS45NjY4IDMuMzA1NzZDMTIuMjIyNCAzLjMwNTc2IDEyLjQyOTYgMy41MTI5NyAxMi40Mjk2IDMuNzY4NTdaTTEzLjE1NjkgMjAuMTY1M0MxMy4xNTY5IDIwLjgyMjUgMTIuNjI0MSAyMS4zNTUzIDExLjk2NjggMjEuMzU1M0MxMS4zMDk1IDIxLjM1NTMgMTAuNzc2NyAyMC44MjI1IDEwLjc3NjcgMjAuMTY1M0MxMC43NzY3IDE5LjUwOCAxMS4zMDk1IDE4Ljk3NTIgMTEuOTY2OCAxOC45NzUyQzEyLjYyNDEgMTguOTc1MiAxMy4xNTY5IDE5LjUwOCAxMy4xNTY5IDIwLjE2NTNaTTEyLjQyOTYgMjAuMTY1M0MxMi40Mjk2IDIwLjQyMDkgMTIuMjIyNCAyMC42MjgxIDExLjk2NjggMjAuNjI4MUMxMS43MTEyIDIwLjYyODEgMTEuNTA0IDIwLjQyMDkgMTEuNTA0IDIwLjE2NTNDMTEuNTA0IDE5LjkwOTcgMTEuNzExMiAxOS43MDI1IDExLjk2NjggMTkuNzAyNUMxMi4yMjI0IDE5LjcwMjUgMTIuNDI5NiAxOS45MDk3IDEyLjQyOTYgMjAuMTY1M1oiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLXdpZHRoPSIwLjg1OTUwNCIvPgo8L3N2Zz4K)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Graphql = createSupabaseIcon(\n 'Graphql',\n [\n [\n 'path',\n {\n d: 'M11.9007 3.76857L19.0007 7.86775V16.0661M11.9007 3.76857L4.80072 7.86775V16.0661M11.9007 3.76857L19.0007 16.0661M11.9007 3.76857L4.80072 16.0661M19.0007 16.0661L11.9007 20.1653L4.80072 16.0661M19.0007 16.0661H4.80072M6.0164 16.1322C6.0164 16.7895 5.48358 17.3223 4.82631 17.3223C4.16905 17.3223 3.63623 16.7895 3.63623 16.1322C3.63623 15.4749 4.16905 14.9421 4.82631 14.9421C5.48358 14.9421 6.0164 15.4749 6.0164 16.1322ZM5.28912 16.1322C5.28912 16.3878 5.08192 16.595 4.82631 16.595C4.57071 16.595 4.3635 16.3878 4.3635 16.1322C4.3635 15.8766 4.57071 15.6694 4.82631 15.6694C5.08192 15.6694 5.28912 15.8766 5.28912 16.1322ZM20.2974 16.1322C20.2974 16.7895 19.7646 17.3223 19.1073 17.3223C18.45 17.3223 17.9172 16.7895 17.9172 16.1322C17.9172 15.4749 18.45 14.9421 19.1073 14.9421C19.7646 14.9421 20.2974 15.4749 20.2974 16.1322ZM19.5701 16.1322C19.5701 16.3878 19.3629 16.595 19.1073 16.595C18.8517 16.595 18.6445 16.3878 18.6445 16.1322C18.6445 15.8766 18.8517 15.6694 19.1073 15.6694C19.3629 15.6694 19.5701 15.8766 19.5701 16.1322ZM6.0164 7.86775C6.0164 8.52501 5.48358 9.05783 4.82631 9.05783C4.16905 9.05783 3.63623 8.52501 3.63623 7.86775C3.63623 7.21048 4.16905 6.67766 4.82631 6.67766C5.48358 6.67766 6.0164 7.21048 6.0164 7.86775ZM5.28912 7.86775C5.28912 8.12335 5.08192 8.33056 4.82631 8.33056C4.57071 8.33056 4.3635 8.12335 4.3635 7.86775C4.3635 7.61214 4.57071 7.40494 4.82631 7.40494C5.08192 7.40494 5.28912 7.61214 5.28912 7.86775ZM20.2974 7.86775C20.2974 8.52501 19.7646 9.05783 19.1073 9.05783C18.45 9.05783 17.9172 8.52501 17.9172 7.86775C17.9172 7.21048 18.45 6.67766 19.1073 6.67766C19.7646 6.67766 20.2974 7.21048 20.2974 7.86775ZM19.5701 7.86775C19.5701 8.12335 19.3629 8.33056 19.1073 8.33056C18.8517 8.33056 18.6445 8.12335 18.6445 7.86775C18.6445 7.61214 18.8517 7.40494 19.1073 7.40494C19.3629 7.40494 19.5701 7.61214 19.5701 7.86775ZM13.1569 3.76857C13.1569 4.42584 12.6241 4.95866 11.9668 4.95866C11.3095 4.95866 10.7767 4.42584 10.7767 3.76857C10.7767 3.11131 11.3095 2.57849 11.9668 2.57849C12.6241 2.57849 13.1569 3.11131 13.1569 3.76857ZM12.4296 3.76857C12.4296 4.02418 12.2224 4.23138 11.9668 4.23138C11.7112 4.23138 11.504 4.02418 11.504 3.76857C11.504 3.51297 11.7112 3.30576 11.9668 3.30576C12.2224 3.30576 12.4296 3.51297 12.4296 3.76857ZM13.1569 20.1653C13.1569 20.8225 12.6241 21.3553 11.9668 21.3553C11.3095 21.3553 10.7767 20.8225 10.7767 20.1653C10.7767 19.508 11.3095 18.9752 11.9668 18.9752C12.6241 18.9752 13.1569 19.508 13.1569 20.1653ZM12.4296 20.1653C12.4296 20.4209 12.2224 20.6281 11.9668 20.6281C11.7112 20.6281 11.504 20.4209 11.504 20.1653C11.504 19.9097 11.7112 19.7025 11.9668 19.7025C12.2224 19.7025 12.4296 19.9097 12.4296 20.1653Z',\n stroke: 'currentColor',\n 'stroke-width': '0.859504',\n key: 'tj71qx',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default Graphql;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Graphql\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTEuOTAwNyAzLjc2ODU3TDE5LjAwMDcgNy44Njc3NVYxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDcuODY3NzVWMTYuMDY2MU0xMS45MDA3IDMuNzY4NTdMMTkuMDAwNyAxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxTDExLjkwMDcgMjAuMTY1M0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxSDQuODAwNzJNNi4wMTY0IDE2LjEzMjJDNi4wMTY0IDE2Ljc4OTUgNS40ODM1OCAxNy4zMjIzIDQuODI2MzEgMTcuMzIyM0M0LjE2OTA1IDE3LjMyMjMgMy42MzYyMyAxNi43ODk1IDMuNjM2MjMgMTYuMTMyMkMzLjYzNjIzIDE1LjQ3NDkgNC4xNjkwNSAxNC45NDIxIDQuODI2MzEgMTQuOTQyMUM1LjQ4MzU4IDE0Ljk0MjEgNi4wMTY0IDE1LjQ3NDkgNi4wMTY0IDE2LjEzMjJaTTUuMjg5MTIgMTYuMTMyMkM1LjI4OTEyIDE2LjM4NzggNS4wODE5MiAxNi41OTUgNC44MjYzMSAxNi41OTVDNC41NzA3MSAxNi41OTUgNC4zNjM1IDE2LjM4NzggNC4zNjM1IDE2LjEzMjJDNC4zNjM1IDE1Ljg3NjYgNC41NzA3MSAxNS42Njk0IDQuODI2MzEgMTUuNjY5NEM1LjA4MTkyIDE1LjY2OTQgNS4yODkxMiAxNS44NzY2IDUuMjg5MTIgMTYuMTMyMlpNMjAuMjk3NCAxNi4xMzIyQzIwLjI5NzQgMTYuNzg5NSAxOS43NjQ2IDE3LjMyMjMgMTkuMTA3MyAxNy4zMjIzQzE4LjQ1IDE3LjMyMjMgMTcuOTE3MiAxNi43ODk1IDE3LjkxNzIgMTYuMTMyMkMxNy45MTcyIDE1LjQ3NDkgMTguNDUgMTQuOTQyMSAxOS4xMDczIDE0Ljk0MjFDMTkuNzY0NiAxNC45NDIxIDIwLjI5NzQgMTUuNDc0OSAyMC4yOTc0IDE2LjEzMjJaTTE5LjU3MDEgMTYuMTMyMkMxOS41NzAxIDE2LjM4NzggMTkuMzYyOSAxNi41OTUgMTkuMTA3MyAxNi41OTVDMTguODUxNyAxNi41OTUgMTguNjQ0NSAxNi4zODc4IDE4LjY0NDUgMTYuMTMyMkMxOC42NDQ1IDE1Ljg3NjYgMTguODUxNyAxNS42Njk0IDE5LjEwNzMgMTUuNjY5NEMxOS4zNjI5IDE1LjY2OTQgMTkuNTcwMSAxNS44NzY2IDE5LjU3MDEgMTYuMTMyMlpNNi4wMTY0IDcuODY3NzVDNi4wMTY0IDguNTI1MDEgNS40ODM1OCA5LjA1NzgzIDQuODI2MzEgOS4wNTc4M0M0LjE2OTA1IDkuMDU3ODMgMy42MzYyMyA4LjUyNTAxIDMuNjM2MjMgNy44Njc3NUMzLjYzNjIzIDcuMjEwNDggNC4xNjkwNSA2LjY3NzY2IDQuODI2MzEgNi42Nzc2NkM1LjQ4MzU4IDYuNjc3NjYgNi4wMTY0IDcuMjEwNDggNi4wMTY0IDcuODY3NzVaTTUuMjg5MTIgNy44Njc3NUM1LjI4OTEyIDguMTIzMzUgNS4wODE5MiA4LjMzMDU2IDQuODI2MzEgOC4zMzA1NkM0LjU3MDcxIDguMzMwNTYgNC4zNjM1IDguMTIzMzUgNC4zNjM1IDcuODY3NzVDNC4zNjM1IDcuNjEyMTQgNC41NzA3MSA3LjQwNDk0IDQuODI2MzEgNy40MDQ5NEM1LjA4MTkyIDcuNDA0OTQgNS4yODkxMiA3LjYxMjE0IDUuMjg5MTIgNy44Njc3NVpNMjAuMjk3NCA3Ljg2Nzc1QzIwLjI5NzQgOC41MjUwMSAxOS43NjQ2IDkuMDU3ODMgMTkuMTA3MyA5LjA1NzgzQzE4LjQ1IDkuMDU3ODMgMTcuOTE3MiA4LjUyNTAxIDE3LjkxNzIgNy44Njc3NUMxNy45MTcyIDcuMjEwNDggMTguNDUgNi42Nzc2NiAxOS4xMDczIDYuNjc3NjZDMTkuNzY0NiA2LjY3NzY2IDIwLjI5NzQgNy4yMTA0OCAyMC4yOTc0IDcuODY3NzVaTTE5LjU3MDEgNy44Njc3NUMxOS41NzAxIDguMTIzMzUgMTkuMzYyOSA4LjMzMDU2IDE5LjEwNzMgOC4zMzA1NkMxOC44NTE3IDguMzMwNTYgMTguNjQ0NSA4LjEyMzM1IDE4LjY0NDUgNy44Njc3NUMxOC42NDQ1IDcuNjEyMTQgMTguODUxNyA3LjQwNDk0IDE5LjEwNzMgNy40MDQ5NEMxOS4zNjI5IDcuNDA0OTQgMTkuNTcwMSA3LjYxMjE0IDE5LjU3MDEgNy44Njc3NVpNMTMuMTU2OSAzLjc2ODU3QzEzLjE1NjkgNC40MjU4NCAxMi42MjQxIDQuOTU4NjYgMTEuOTY2OCA0Ljk1ODY2QzExLjMwOTUgNC45NTg2NiAxMC43NzY3IDQuNDI1ODQgMTAuNzc2NyAzLjc2ODU3QzEwLjc3NjcgMy4xMTEzMSAxMS4zMDk1IDIuNTc4NDkgMTEuOTY2OCAyLjU3ODQ5QzEyLjYyNDEgMi41Nzg0OSAxMy4xNTY5IDMuMTExMzEgMTMuMTU2OSAzLjc2ODU3Wk0xMi40Mjk2IDMuNzY4NTdDMTIuNDI5NiA0LjAyNDE4IDEyLjIyMjQgNC4yMzEzOCAxMS45NjY4IDQuMjMxMzhDMTEuNzExMiA0LjIzMTM4IDExLjUwNCA0LjAyNDE4IDExLjUwNCAzLjc2ODU3QzExLjUwNCAzLjUxMjk3IDExLjcxMTIgMy4zMDU3NiAxMS45NjY4IDMuMzA1NzZDMTIuMjIyNCAzLjMwNTc2IDEyLjQyOTYgMy41MTI5NyAxMi40Mjk2IDMuNzY4NTdaTTEzLjE1NjkgMjAuMTY1M0MxMy4xNTY5IDIwLjgyMjUgMTIuNjI0MSAyMS4zNTUzIDExLjk2NjggMjEuMzU1M0MxMS4zMDk1IDIxLjM1NTMgMTAuNzc2NyAyMC44MjI1IDEwLjc3NjcgMjAuMTY1M0MxMC43NzY3IDE5LjUwOCAxMS4zMDk1IDE4Ljk3NTIgMTEuOTY2OCAxOC45NzUyQzEyLjYyNDEgMTguOTc1MiAxMy4xNTY5IDE5LjUwOCAxMy4xNTY5IDIwLjE2NTNaTTEyLjQyOTYgMjAuMTY1M0MxMi40Mjk2IDIwLjQyMDkgMTIuMjIyNCAyMC42MjgxIDExLjk2NjggMjAuNjI4MUMxMS43MTEyIDIwLjYyODEgMTEuNTA0IDIwLjQyMDkgMTEuNTA0IDIwLjE2NTNDMTEuNTA0IDE5LjkwOTcgMTEuNzExMiAxOS43MDI1IDExLjk2NjggMTkuNzAyNUMxMi4yMjI0IDE5LjcwMjUgMTIuNDI5NiAxOS45MDk3IDEyLjQyOTYgMjAuMTY1M1oiLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Graphql = createSupabaseIcon(\n 'Graphql',\n [\n [\n 'path',\n {\n d: 'M11.9007 3.76857L19.0007 7.86775V16.0661M11.9007 3.76857L4.80072 7.86775V16.0661M11.9007 3.76857L19.0007 16.0661M11.9007 3.76857L4.80072 16.0661M19.0007 16.0661L11.9007 20.1653L4.80072 16.0661M19.0007 16.0661H4.80072M6.0164 16.1322C6.0164 16.7895 5.48358 17.3223 4.82631 17.3223C4.16905 17.3223 3.63623 16.7895 3.63623 16.1322C3.63623 15.4749 4.16905 14.9421 4.82631 14.9421C5.48358 14.9421 6.0164 15.4749 6.0164 16.1322ZM5.28912 16.1322C5.28912 16.3878 5.08192 16.595 4.82631 16.595C4.57071 16.595 4.3635 16.3878 4.3635 16.1322C4.3635 15.8766 4.57071 15.6694 4.82631 15.6694C5.08192 15.6694 5.28912 15.8766 5.28912 16.1322ZM20.2974 16.1322C20.2974 16.7895 19.7646 17.3223 19.1073 17.3223C18.45 17.3223 17.9172 16.7895 17.9172 16.1322C17.9172 15.4749 18.45 14.9421 19.1073 14.9421C19.7646 14.9421 20.2974 15.4749 20.2974 16.1322ZM19.5701 16.1322C19.5701 16.3878 19.3629 16.595 19.1073 16.595C18.8517 16.595 18.6445 16.3878 18.6445 16.1322C18.6445 15.8766 18.8517 15.6694 19.1073 15.6694C19.3629 15.6694 19.5701 15.8766 19.5701 16.1322ZM6.0164 7.86775C6.0164 8.52501 5.48358 9.05783 4.82631 9.05783C4.16905 9.05783 3.63623 8.52501 3.63623 7.86775C3.63623 7.21048 4.16905 6.67766 4.82631 6.67766C5.48358 6.67766 6.0164 7.21048 6.0164 7.86775ZM5.28912 7.86775C5.28912 8.12335 5.08192 8.33056 4.82631 8.33056C4.57071 8.33056 4.3635 8.12335 4.3635 7.86775C4.3635 7.61214 4.57071 7.40494 4.82631 7.40494C5.08192 7.40494 5.28912 7.61214 5.28912 7.86775ZM20.2974 7.86775C20.2974 8.52501 19.7646 9.05783 19.1073 9.05783C18.45 9.05783 17.9172 8.52501 17.9172 7.86775C17.9172 7.21048 18.45 6.67766 19.1073 6.67766C19.7646 6.67766 20.2974 7.21048 20.2974 7.86775ZM19.5701 7.86775C19.5701 8.12335 19.3629 8.33056 19.1073 8.33056C18.8517 8.33056 18.6445 8.12335 18.6445 7.86775C18.6445 7.61214 18.8517 7.40494 19.1073 7.40494C19.3629 7.40494 19.5701 7.61214 19.5701 7.86775ZM13.1569 3.76857C13.1569 4.42584 12.6241 4.95866 11.9668 4.95866C11.3095 4.95866 10.7767 4.42584 10.7767 3.76857C10.7767 3.11131 11.3095 2.57849 11.9668 2.57849C12.6241 2.57849 13.1569 3.11131 13.1569 3.76857ZM12.4296 3.76857C12.4296 4.02418 12.2224 4.23138 11.9668 4.23138C11.7112 4.23138 11.504 4.02418 11.504 3.76857C11.504 3.51297 11.7112 3.30576 11.9668 3.30576C12.2224 3.30576 12.4296 3.51297 12.4296 3.76857ZM13.1569 20.1653C13.1569 20.8225 12.6241 21.3553 11.9668 21.3553C11.3095 21.3553 10.7767 20.8225 10.7767 20.1653C10.7767 19.508 11.3095 18.9752 11.9668 18.9752C12.6241 18.9752 13.1569 19.508 13.1569 20.1653ZM12.4296 20.1653C12.4296 20.4209 12.2224 20.6281 11.9668 20.6281C11.7112 20.6281 11.504 20.4209 11.504 20.1653C11.504 19.9097 11.7112 19.7025 11.9668 19.7025C12.2224 19.7025 12.4296 19.9097 12.4296 20.1653Z',\n key: 'cx9hfh',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Graphql;\n", component: React.lazy(() => import('icons/src/icons/graphql')), import: "import { Graphql } from 'icons'", - svg: "\n\n\n", + svg: "\n\n\n", jsx: "import { Graphql } from \"icons\"\n \n " }, { name: "home", componentName: "Home", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Home\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik05LjQzNDE0IDIwLjgwM1YxMy4wNTU3QzkuNDM0MTQgMTIuNTAzNCA5Ljg4MTg2IDEyLjA1NTcgMTAuNDM0MSAxMi4wNTU3SDE0Ljc2NzlDMTUuMzIwMiAxMi4wNTU3IDE1Ljc2NzkgMTIuNTAzNCAxNS43Njc5IDEzLjA1NTdWMjAuODAzTTEyLjAxODEgMy40ODc5OEw1LjUzMDMxIDcuOTk4NEM1LjI2MTQ1IDguMTg1MzIgNS4xMDExNCA4LjQ5MjAyIDUuMTAxMTQgOC44MTk0OEw1LjEwMTE3IDE4LjgwM0M1LjEwMTE3IDE5LjkwNzUgNS45OTY2IDIwLjgwMyA3LjEwMTE3IDIwLjgwM0gxOC4xMDEyQzE5LjIwNTcgMjAuODAzIDIwLjEwMTIgMTkuOTA3NSAyMC4xMDEyIDE4LjgwM0wyMC4xMDExIDguODg1NTRDMjAuMTAxMSA4LjU1OTg4IDE5Ljk0MjYgOC4yNTQ2MiAxOS42NzYxIDguMDY3MzdMMTMuMTYzOSAzLjQ5MDg4QzEyLjgyMDQgMy4yNDk1MSAxMi4zNjI3IDMuMjQ4MzYgMTIuMDE4MSAzLjQ4Nzk4WiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Home = createSupabaseIcon(\n 'Home',\n [\n [\n 'path',\n {\n d: 'M9.43414 20.803V13.0557C9.43414 12.5034 9.88186 12.0557 10.4341 12.0557H14.7679C15.3202 12.0557 15.7679 12.5034 15.7679 13.0557V20.803M12.0181 3.48798L5.53031 7.9984C5.26145 8.18532 5.10114 8.49202 5.10114 8.81948L5.10117 18.803C5.10117 19.9075 5.9966 20.803 7.10117 20.803H18.1012C19.2057 20.803 20.1012 19.9075 20.1012 18.803L20.1011 8.88554C20.1011 8.55988 19.9426 8.25462 19.6761 8.06737L13.1639 3.49088C12.8204 3.24951 12.3627 3.24836 12.0181 3.48798Z',\n key: '1bkqgr',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Home;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Home\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTkuNDM0MTQgMjAuODAzVjEzLjA1NTdDOS40MzQxNCAxMi41MDM0IDkuODgxODYgMTIuMDU1NyAxMC40MzQxIDEyLjA1NTdIMTQuNzY3OUMxNS4zMjAyIDEyLjA1NTcgMTUuNzY3OSAxMi41MDM0IDE1Ljc2NzkgMTMuMDU1N1YyMC44MDNNMTIuMDE4MSAzLjQ4Nzk4TDUuNTMwMzEgNy45OTg0QzUuMjYxNDUgOC4xODUzMiA1LjEwMTE0IDguNDkyMDIgNS4xMDExNCA4LjgxOTQ4TDUuMTAxMTcgMTguODAzQzUuMTAxMTcgMTkuOTA3NSA1Ljk5NjYgMjAuODAzIDcuMTAxMTcgMjAuODAzSDE4LjEwMTJDMTkuMjA1NyAyMC44MDMgMjAuMTAxMiAxOS45MDc1IDIwLjEwMTIgMTguODAzTDIwLjEwMTEgOC44ODU1NEMyMC4xMDExIDguNTU5ODggMTkuOTQyNiA4LjI1NDYyIDE5LjY3NjEgOC4wNjczN0wxMy4xNjM5IDMuNDkwODhDMTIuODIwNCAzLjI0OTUxIDEyLjM2MjcgMy4yNDgzNiAxMi4wMTgxIDMuNDg3OThaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Home = createSupabaseIcon(\n 'Home',\n [\n [\n 'path',\n {\n d: 'M9.43414 20.803V13.0557C9.43414 12.5034 9.88186 12.0557 10.4341 12.0557H14.7679C15.3202 12.0557 15.7679 12.5034 15.7679 13.0557V20.803M12.0181 3.48798L5.53031 7.9984C5.26145 8.18532 5.10114 8.49202 5.10114 8.81948L5.10117 18.803C5.10117 19.9075 5.9966 20.803 7.10117 20.803H18.1012C19.2057 20.803 20.1012 19.9075 20.1012 18.803L20.1011 8.88554C20.1011 8.55988 19.9426 8.25462 19.6761 8.06737L13.1639 3.49088C12.8204 3.24951 12.3627 3.24836 12.0181 3.48798Z',\n key: '1bkqgr',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Home;\n", component: React.lazy(() => import('icons/src/icons/home')), import: "import { Home } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Home } from \"icons\"\n \n " }, { name: "insert-code", componentName: "InsertCode", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name InsertCode\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxwYXRoCiAgICAgICAgZD0iTS0yMDQzNyAtMTExNDJIMTIxMzFWLTExMTQ0SC0yMDQzN1YtMTExNDJaTTEyMTMyIC0xMTE0MVY3MTEzSDEyMTM0Vi0xMTE0MUgxMjEzMlpNMTIxMzEgNzExNEgtMjA0MzdWNzExNkgxMjEzMVY3MTE0Wk0tMjA0MzggNzExM1YtMTExNDFILTIwNDQwVjcxMTNILTIwNDM4Wk0tMjA0MzcgNzExNEMtMjA0MzcuNiA3MTE0IC0yMDQzOCA3MTEzLjU1IC0yMDQzOCA3MTEzSC0yMDQ0MEMtMjA0NDAgNzExNC42NiAtMjA0MzguNyA3MTE2IC0yMDQzNyA3MTE2VjcxMTRaTTEyMTMyIDcxMTNDMTIxMzIgNzExMy41NSAxMjEzMS42IDcxMTQgMTIxMzEgNzExNFY3MTE2QzEyMTMyLjcgNzExNiAxMjEzNCA3MTE0LjY2IDEyMTM0IDcxMTNIMTIxMzJaTTEyMTMxIC0xMTE0MkMxMjEzMS42IC0xMTE0MiAxMjEzMiAtMTExNDEuNiAxMjEzMiAtMTExNDFIMTIxMzRDMTIxMzQgLTExMTQyLjcgMTIxMzIuNyAtMTExNDQgMTIxMzEgLTExMTQ0Vi0xMTE0MlpNLTIwNDM3IC0xMTE0NEMtMjA0MzguNyAtMTExNDQgLTIwNDQwIC0xMTE0Mi43IC0yMDQ0MCAtMTExNDFILTIwNDM4Qy0yMDQzOCAtMTExNDEuNiAtMjA0MzcuNiAtMTExNDIgLTIwNDM3IC0xMTE0MlYtMTExNDRaIgogICAgICAgIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIgLz4KICAgIDxwYXRoIGQ9Ik0yMi44NDM3IDguNjk0OTlMMTkuNTM2OSAxMi4wMDE4TDIyLjg0MzggMTUuMzA4NiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgogICAgPHJlY3QgeD0iMC41IiB5PSIxNC4wNjI1IiB3aWR0aD0iMTYiIGhlaWdodD0iOCIgcng9IjEiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIC8+CiAgICA8cmVjdCB4PSIwLjUiIHk9IjEuOTM3NSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHJ4PSIxIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst InsertCode = createSupabaseIcon(\n 'InsertCode',\n [\n [\n 'path',\n {\n d: 'M-20437 -11142H12131V-11144H-20437V-11142ZM12132 -11141V7113H12134V-11141H12132ZM12131 7114H-20437V7116H12131V7114ZM-20438 7113V-11141H-20440V7113H-20438ZM-20437 7114C-20437.6 7114 -20438 7113.55 -20438 7113H-20440C-20440 7114.66 -20438.7 7116 -20437 7116V7114ZM12132 7113C12132 7113.55 12131.6 7114 12131 7114V7116C12132.7 7116 12134 7114.66 12134 7113H12132ZM12131 -11142C12131.6 -11142 12132 -11141.6 12132 -11141H12134C12134 -11142.7 12132.7 -11144 12131 -11144V-11142ZM-20437 -11144C-20438.7 -11144 -20440 -11142.7 -20440 -11141H-20438C-20438 -11141.6 -20437.6 -11142 -20437 -11142V-11144Z',\n fill: 'white',\n 'fill-opacity': '0.1',\n key: 'iaqtc1',\n },\n ],\n [\n 'path',\n {\n d: 'M22.8437 8.69499L19.5369 12.0018L22.8438 15.3086',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1gnkuu',\n },\n ],\n [\n 'rect',\n {\n x: '0.5',\n y: '14.0625',\n width: '16',\n height: '8',\n rx: '1',\n 'stroke-linejoin': 'round',\n key: 't6herz',\n },\n ],\n [\n 'rect',\n {\n x: '0.5',\n y: '1.9375',\n width: '16',\n height: '8',\n rx: '1',\n 'stroke-linejoin': 'round',\n key: '718qtu',\n },\n ],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default InsertCode;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name InsertCode\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGgKICAgICAgICBkPSJNLTIwNDM3IC0xMTE0MkgxMjEzMVYtMTExNDRILTIwNDM3Vi0xMTE0MlpNMTIxMzIgLTExMTQxVjcxMTNIMTIxMzRWLTExMTQxSDEyMTMyWk0xMjEzMSA3MTE0SC0yMDQzN1Y3MTE2SDEyMTMxVjcxMTRaTS0yMDQzOCA3MTEzVi0xMTE0MUgtMjA0NDBWNzExM0gtMjA0MzhaTS0yMDQzNyA3MTE0Qy0yMDQzNy42IDcxMTQgLTIwNDM4IDcxMTMuNTUgLTIwNDM4IDcxMTNILTIwNDQwQy0yMDQ0MCA3MTE0LjY2IC0yMDQzOC43IDcxMTYgLTIwNDM3IDcxMTZWNzExNFpNMTIxMzIgNzExM0MxMjEzMiA3MTEzLjU1IDEyMTMxLjYgNzExNCAxMjEzMSA3MTE0VjcxMTZDMTIxMzIuNyA3MTE2IDEyMTM0IDcxMTQuNjYgMTIxMzQgNzExM0gxMjEzMlpNMTIxMzEgLTExMTQyQzEyMTMxLjYgLTExMTQyIDEyMTMyIC0xMTE0MS42IDEyMTMyIC0xMTE0MUgxMjEzNEMxMjEzNCAtMTExNDIuNyAxMjEzMi43IC0xMTE0NCAxMjEzMSAtMTExNDRWLTExMTQyWk0tMjA0MzcgLTExMTQ0Qy0yMDQzOC43IC0xMTE0NCAtMjA0NDAgLTExMTQyLjcgLTIwNDQwIC0xMTE0MUgtMjA0MzhDLTIwNDM4IC0xMTE0MS42IC0yMDQzNy42IC0xMTE0MiAtMjA0MzcgLTExMTQyVi0xMTE0NFoiCiAgICAgICAgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIiAvPgogICAgPHBhdGggZD0iTTIyLjg0MzcgOC42OTQ5OUwxOS41MzY5IDEyLjAwMThMMjIuODQzOCAxNS4zMDg2IiAvPgogICAgPHJlY3QgeD0iMC41IiB5PSIxNC4wNjI1IiB3aWR0aD0iMTYiIGhlaWdodD0iOCIgcng9IjEiIC8+CiAgICA8cmVjdCB4PSIwLjUiIHk9IjEuOTM3NSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst InsertCode = createSupabaseIcon(\n 'InsertCode',\n [\n [\n 'path',\n {\n d: 'M-20437 -11142H12131V-11144H-20437V-11142ZM12132 -11141V7113H12134V-11141H12132ZM12131 7114H-20437V7116H12131V7114ZM-20438 7113V-11141H-20440V7113H-20438ZM-20437 7114C-20437.6 7114 -20438 7113.55 -20438 7113H-20440C-20440 7114.66 -20438.7 7116 -20437 7116V7114ZM12132 7113C12132 7113.55 12131.6 7114 12131 7114V7116C12132.7 7116 12134 7114.66 12134 7113H12132ZM12131 -11142C12131.6 -11142 12132 -11141.6 12132 -11141H12134C12134 -11142.7 12132.7 -11144 12131 -11144V-11142ZM-20437 -11144C-20438.7 -11144 -20440 -11142.7 -20440 -11141H-20438C-20438 -11141.6 -20437.6 -11142 -20437 -11142V-11144Z',\n fill: 'white',\n 'fill-opacity': '0.1',\n key: 'iaqtc1',\n },\n ],\n ['path', { d: 'M22.8437 8.69499L19.5369 12.0018L22.8438 15.3086', key: '1jwljd' }],\n ['rect', { x: '0.5', y: '14.0625', width: '16', height: '8', rx: '1', key: 'hj20ku' }],\n ['rect', { x: '0.5', y: '1.9375', width: '16', height: '8', rx: '1', key: 's8jbkj' }],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default InsertCode;\n", component: React.lazy(() => import('icons/src/icons/insert-code')), import: "import { InsertCode } from 'icons'", - svg: "\n \n \n \n \n", + svg: "\n \n \n \n \n", jsx: "import { InsertCode } from \"icons\"\n \n " }, { name: "integrations", componentName: "Integrations", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Integrations\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xNy4yNjYxIDMuMjMyNTRWMTAuNzMyNU0xMy41MTYxIDYuOTgyOTFMMjEuMDE2MSA2Ljk4MjkxTTExLjAzOTEgMTYuOTUwOEMxMS4wMzkxIDE5LjE3NTIgOS4yMzU4NSAyMC45Nzg0IDcuMDExNDcgMjAuOTc4NEM0Ljc4NzEgMjAuOTc4NCAyLjk4Mzg5IDE5LjE3NTIgMi45ODM4OSAxNi45NTA4QzIuOTgzODkgMTQuNzI2NCA0Ljc4NzEgMTIuOTIzMiA3LjAxMTQ3IDEyLjkyMzJDOS4yMzU4NSAxMi45MjMyIDExLjAzOTEgMTQuNzI2NCAxMS4wMzkxIDE2Ljk1MDhaTTIxLjAxNjEgMTkuODU2OFYxNC4zNTY4QzIxLjAxNjEgMTMuODA0NSAyMC41Njg0IDEzLjM1NjggMjAuMDE2MSAxMy4zNTY4SDE0LjUxNjFDMTMuOTYzOCAxMy4zNTY4IDEzLjUxNjEgMTMuODA0NSAxMy41MTYxIDE0LjM1NjhWMTkuODU2OEMxMy41MTYxIDIwLjQwOTEgMTMuOTYzOCAyMC44NTY4IDE0LjUxNjEgMjAuODU2OEgyMC4wMTYxQzIwLjU2ODQgMjAuODU2OCAyMS4wMTYxIDIwLjQwOTEgMjEuMDE2MSAxOS44NTY4Wk00LjI2MjIxIDEwLjczMjVIOS43NjIyMUMxMC4zMTQ1IDEwLjczMjUgMTAuNzYyMiAxMC4yODQ4IDEwLjc2MjIgOS43MzI1NFY0LjIzMjU0QzEwLjc2MjIgMy42ODAyNiAxMC4zMTQ1IDMuMjMyNTQgOS43NjIyMSAzLjIzMjU0SDQuMjYyMjFDMy43MDk5MiAzLjIzMjU0IDMuMjYyMjEgMy42ODAyNiAzLjI2MjIxIDQuMjMyNTRWOS43MzI1NEMzLjI2MjIxIDEwLjI4NDggMy43MDk5MiAxMC43MzI1IDQuMjYyMjEgMTAuNzMyNVoiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Integrations = createSupabaseIcon(\n 'Integrations',\n [\n [\n 'path',\n {\n d: 'M17.2661 3.23254V10.7325M13.5161 6.98291L21.0161 6.98291M11.0391 16.9508C11.0391 19.1752 9.23585 20.9784 7.01147 20.9784C4.7871 20.9784 2.98389 19.1752 2.98389 16.9508C2.98389 14.7264 4.7871 12.9232 7.01147 12.9232C9.23585 12.9232 11.0391 14.7264 11.0391 16.9508ZM21.0161 19.8568V14.3568C21.0161 13.8045 20.5684 13.3568 20.0161 13.3568H14.5161C13.9638 13.3568 13.5161 13.8045 13.5161 14.3568V19.8568C13.5161 20.4091 13.9638 20.8568 14.5161 20.8568H20.0161C20.5684 20.8568 21.0161 20.4091 21.0161 19.8568ZM4.26221 10.7325H9.76221C10.3145 10.7325 10.7622 10.2848 10.7622 9.73254V4.23254C10.7622 3.68026 10.3145 3.23254 9.76221 3.23254H4.26221C3.70992 3.23254 3.26221 3.68026 3.26221 4.23254V9.73254C3.26221 10.2848 3.70992 10.7325 4.26221 10.7325Z',\n key: '3dnck7',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Integrations;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Integrations\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE3LjI2NjEgMy4yMzI1NFYxMC43MzI1TTEzLjUxNjEgNi45ODI5MUwyMS4wMTYxIDYuOTgyOTFNMTEuMDM5MSAxNi45NTA4QzExLjAzOTEgMTkuMTc1MiA5LjIzNTg1IDIwLjk3ODQgNy4wMTE0NyAyMC45Nzg0QzQuNzg3MSAyMC45Nzg0IDIuOTgzODkgMTkuMTc1MiAyLjk4Mzg5IDE2Ljk1MDhDMi45ODM4OSAxNC43MjY0IDQuNzg3MSAxMi45MjMyIDcuMDExNDcgMTIuOTIzMkM5LjIzNTg1IDEyLjkyMzIgMTEuMDM5MSAxNC43MjY0IDExLjAzOTEgMTYuOTUwOFpNMjEuMDE2MSAxOS44NTY4VjE0LjM1NjhDMjEuMDE2MSAxMy44MDQ1IDIwLjU2ODQgMTMuMzU2OCAyMC4wMTYxIDEzLjM1NjhIMTQuNTE2MUMxMy45NjM4IDEzLjM1NjggMTMuNTE2MSAxMy44MDQ1IDEzLjUxNjEgMTQuMzU2OFYxOS44NTY4QzEzLjUxNjEgMjAuNDA5MSAxMy45NjM4IDIwLjg1NjggMTQuNTE2MSAyMC44NTY4SDIwLjAxNjFDMjAuNTY4NCAyMC44NTY4IDIxLjAxNjEgMjAuNDA5MSAyMS4wMTYxIDE5Ljg1NjhaTTQuMjYyMjEgMTAuNzMyNUg5Ljc2MjIxQzEwLjMxNDUgMTAuNzMyNSAxMC43NjIyIDEwLjI4NDggMTAuNzYyMiA5LjczMjU0VjQuMjMyNTRDMTAuNzYyMiAzLjY4MDI2IDEwLjMxNDUgMy4yMzI1NCA5Ljc2MjIxIDMuMjMyNTRINC4yNjIyMUMzLjcwOTkyIDMuMjMyNTQgMy4yNjIyMSAzLjY4MDI2IDMuMjYyMjEgNC4yMzI1NFY5LjczMjU0QzMuMjYyMjEgMTAuMjg0OCAzLjcwOTkyIDEwLjczMjUgNC4yNjIyMSAxMC43MzI1WiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Integrations = createSupabaseIcon(\n 'Integrations',\n [\n [\n 'path',\n {\n d: 'M17.2661 3.23254V10.7325M13.5161 6.98291L21.0161 6.98291M11.0391 16.9508C11.0391 19.1752 9.23585 20.9784 7.01147 20.9784C4.7871 20.9784 2.98389 19.1752 2.98389 16.9508C2.98389 14.7264 4.7871 12.9232 7.01147 12.9232C9.23585 12.9232 11.0391 14.7264 11.0391 16.9508ZM21.0161 19.8568V14.3568C21.0161 13.8045 20.5684 13.3568 20.0161 13.3568H14.5161C13.9638 13.3568 13.5161 13.8045 13.5161 14.3568V19.8568C13.5161 20.4091 13.9638 20.8568 14.5161 20.8568H20.0161C20.5684 20.8568 21.0161 20.4091 21.0161 19.8568ZM4.26221 10.7325H9.76221C10.3145 10.7325 10.7622 10.2848 10.7622 9.73254V4.23254C10.7622 3.68026 10.3145 3.23254 9.76221 3.23254H4.26221C3.70992 3.23254 3.26221 3.68026 3.26221 4.23254V9.73254C3.26221 10.2848 3.70992 10.7325 4.26221 10.7325Z',\n key: '3dnck7',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Integrations;\n", component: React.lazy(() => import('icons/src/icons/integrations')), import: "import { Integrations } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Integrations } from \"icons\"\n \n " }, { @@ -228,130 +228,130 @@ export const Index: Record = [ name: "logs", componentName: "Logs", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Logs\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik00LjUgNS4yMDY3OUg0LjUzNzEzTTcuNDYyNDEgNS4yMTcwN0gxOS41TTQuNSA5LjY1ODM5SDQuNTM3MTNNNy40NjI0MSA5LjY2ODY4SDE5LjVNNC41MjY5MiAxNC4xNjRINC41MzcxM003LjQ2MjQxIDE0LjE3NDJIMTkuNU00LjUyNjkyIDE4LjcwNjhMNC41MzcxMyAxOC42OTY1TTcuNDYyNDEgMTguNzA2OEgxOS41IiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Logs = createSupabaseIcon(\n 'Logs',\n [\n [\n 'path',\n {\n d: 'M4.5 5.20679H4.53713M7.46241 5.21707H19.5M4.5 9.65839H4.53713M7.46241 9.66868H19.5M4.52692 14.164H4.53713M7.46241 14.1742H19.5M4.52692 18.7068L4.53713 18.6965M7.46241 18.7068H19.5',\n key: '2ab8w8',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Logs;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Logs\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTQuNSA1LjIwNjc5SDQuNTM3MTNNNy40NjI0MSA1LjIxNzA3SDE5LjVNNC41IDkuNjU4MzlINC41MzcxM003LjQ2MjQxIDkuNjY4NjhIMTkuNU00LjUyNjkyIDE0LjE2NEg0LjUzNzEzTTcuNDYyNDEgMTQuMTc0MkgxOS41TTQuNTI2OTIgMTguNzA2OEw0LjUzNzEzIDE4LjY5NjVNNy40NjI0MSAxOC43MDY4SDE5LjUiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Logs = createSupabaseIcon(\n 'Logs',\n [\n [\n 'path',\n {\n d: 'M4.5 5.20679H4.53713M7.46241 5.21707H19.5M4.5 9.65839H4.53713M7.46241 9.66868H19.5M4.52692 14.164H4.53713M7.46241 14.1742H19.5M4.52692 18.7068L4.53713 18.6965M7.46241 18.7068H19.5',\n key: '2ab8w8',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Logs;\n", component: React.lazy(() => import('icons/src/icons/logs')), import: "import { Logs } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Logs } from \"icons\"\n \n " }, { name: "otlp", componentName: "Otlp", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Otlp\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gIDxwYXRoIGQ9Ik0xMi42OCAxMy4wOWMtLjk4NCAuOTg0LS45ODQgMi41OCAwIDMuNTY0Ljk4NC45ODQgMi41OC45ODQgMy41NjQgMCAuOTg0LS45ODQuOTg0LTIuNTggMC0zLjU2NC0uOTg0LS45ODQtMi41OC0uOTg0LTMuNTY0IDB6bTIuNjY0IDIuNjY2YTEuMjQ2IDEuMjQ2IDAgMCAxLTEuNzY0IDAgMS4yNDYgMS4yNDYgMCAwIDEgMC0xLjc2NCAxLjI0NiAxLjI0NiAwIDAgMSAxLjc2NCAwYy40ODcuNDg1LjQ4NyAxLjI3NyAwIDEuNzY0ek0xNi4yMDUuNjg4bC0xLjU0NCAxLjU0NGEuNzgyLjc4MiAwIDAgMCAwIDEuMTAybDYuMDI4IDYuMDI4YS43ODIuNzgyIDAgMCAwIDEuMTAyIDBsMS41NDQtMS41NDRjLjMwMi0uMzAyLjMwMi0uNzk5IDAtMS4xMDFsLTYuMDI4LTYuMDI4YS43OC43OCAwIDAgMC0xLjEwMiAwek01LjM4OCAyMC40MThhLjcwNi43MDYgMCAwIDAgMC0uOTk2bC0uNzg0LS43ODRhLjcwNi43MDYgMCAwIDAtLjk5NiAwbC0xLjYyMSAxLjYyMS0uMDAzLjAwMi0uNDQ1LS40NDVjLS4yNDYtLjI0Ni0uNjQ3LS4yNDYtLjg5MSAwLS4yNDYuMjQ2LS4yNDYuNjQ3IDAgLjg5MWwyLjY3MSAyLjY3MWEuNjI5LjYyOSAwIDAgMCAuODkgMGMuMjQ0LS4yNDYuMjQ2LS42NDcgMC0uODlsLS40NDUtLjQ0NS4wMDMtLjAwMnptMCAwIi8+CiAgPHBhdGggZD0iTTEzLjU1NSA1LjEyMSAxMC4xMjYgOC41NWMtLjMwNS4zMDUtLjMwNS44MDYgMCAxLjExMWwyLjExOSAyLjExOWMxLjQ5Ny0xLjA3OCAzLjU5Ni0uOTQ0IDQuOTQzLjQwNGwxLjcxNS0xLjcxNWMuMzA0LS4zMDUuMzA0LS44MDYgMC0xLjExMWwtMy40MjktMy40MjlhLjc4NS43ODUgMCAwIDAtMS4xMSAwek0xMS4zNTMgMTIuNjczbC0xLjI1MS0xLjI1MWMtLjI5My0uMjkzLS43NzMtLjI5My0xLjA2NiAwbC00LjQxMSA0LjQxM2EuNzU3Ljc1NyAwIDAgMCAwIDEuMDY2bDIuNSAyLjVhLjc1Ny43NTcgMCAwIDAgMS4wNjYgMGwyLjgzNy0yLjg0MmMtLjYtMS4yNC0uNDkyLTIuNzM1LjMyNS0zLjg4NnptMCAwIi8+Cjwvc3ZnPgo=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Otlp = createSupabaseIcon(\n 'Otlp',\n [\n [\n 'path',\n {\n d: 'M12.68 13.09c-.984 .984-.984 2.58 0 3.564.984.984 2.58.984 3.564 0 .984-.984.984-2.58 0-3.564-.984-.984-2.58-.984-3.564 0zm2.664 2.666a1.246 1.246 0 0 1-1.764 0 1.246 1.246 0 0 1 0-1.764 1.246 1.246 0 0 1 1.764 0c.487.485.487 1.277 0 1.764zM16.205.688l-1.544 1.544a.782.782 0 0 0 0 1.102l6.028 6.028a.782.782 0 0 0 1.102 0l1.544-1.544c.302-.302.302-.799 0-1.101l-6.028-6.028a.78.78 0 0 0-1.102 0zM5.388 20.418a.706.706 0 0 0 0-.996l-.784-.784a.706.706 0 0 0-.996 0l-1.621 1.621-.003.002-.445-.445c-.246-.246-.647-.246-.891 0-.246.246-.246.647 0 .891l2.671 2.671a.629.629 0 0 0 .89 0c.244-.246.246-.647 0-.89l-.445-.445.003-.002zm0 0',\n key: 'i7z0x6',\n },\n ],\n [\n 'path',\n {\n d: 'M13.555 5.121 10.126 8.55c-.305.305-.305.806 0 1.111l2.119 2.119c1.497-1.078 3.596-.944 4.943.404l1.715-1.715c.304-.305.304-.806 0-1.111l-3.429-3.429a.785.785 0 0 0-1.11 0zM11.353 12.673l-1.251-1.251c-.293-.293-.773-.293-1.066 0l-4.411 4.413a.757.757 0 0 0 0 1.066l2.5 2.5a.757.757 0 0 0 1.066 0l2.837-2.842c-.6-1.24-.492-2.735.325-3.886zm0 0',\n key: '5ytdqc',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'currentColor', strokeWidth: '0' },\n);\n\nexport default Otlp;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Otlp\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICA8cGF0aCBkPSJNMTIuNjggMTMuMDljLS45ODQgLjk4NC0uOTg0IDIuNTggMCAzLjU2NC45ODQuOTg0IDIuNTguOTg0IDMuNTY0IDAgLjk4NC0uOTg0Ljk4NC0yLjU4IDAtMy41NjQtLjk4NC0uOTg0LTIuNTgtLjk4NC0zLjU2NCAwem0yLjY2NCAyLjY2NmExLjI0NiAxLjI0NiAwIDAgMS0xLjc2NCAwIDEuMjQ2IDEuMjQ2IDAgMCAxIDAtMS43NjQgMS4yNDYgMS4yNDYgMCAwIDEgMS43NjQgMGMuNDg3LjQ4NS40ODcgMS4yNzcgMCAxLjc2NHpNMTYuMjA1LjY4OGwtMS41NDQgMS41NDRhLjc4Mi43ODIgMCAwIDAgMCAxLjEwMmw2LjAyOCA2LjAyOGEuNzgyLjc4MiAwIDAgMCAxLjEwMiAwbDEuNTQ0LTEuNTQ0Yy4zMDItLjMwMi4zMDItLjc5OSAwLTEuMTAxbC02LjAyOC02LjAyOGEuNzguNzggMCAwIDAtMS4xMDIgMHpNNS4zODggMjAuNDE4YS43MDYuNzA2IDAgMCAwIDAtLjk5NmwtLjc4NC0uNzg0YS43MDYuNzA2IDAgMCAwLS45OTYgMGwtMS42MjEgMS42MjEtLjAwMy4wMDItLjQ0NS0uNDQ1Yy0uMjQ2LS4yNDYtLjY0Ny0uMjQ2LS44OTEgMC0uMjQ2LjI0Ni0uMjQ2LjY0NyAwIC44OTFsMi42NzEgMi42NzFhLjYyOS42MjkgMCAwIDAgLjg5IDBjLjI0NC0uMjQ2LjI0Ni0uNjQ3IDAtLjg5bC0uNDQ1LS40NDUuMDAzLS4wMDJ6bTAgMCIvPgogIDxwYXRoIGQ9Ik0xMy41NTUgNS4xMjEgMTAuMTI2IDguNTVjLS4zMDUuMzA1LS4zMDUuODA2IDAgMS4xMTFsMi4xMTkgMi4xMTljMS40OTctMS4wNzggMy41OTYtLjk0NCA0Ljk0My40MDRsMS43MTUtMS43MTVjLjMwNC0uMzA1LjMwNC0uODA2IDAtMS4xMTFsLTMuNDI5LTMuNDI5YS43ODUuNzg1IDAgMCAwLTEuMTEgMHpNMTEuMzUzIDEyLjY3M2wtMS4yNTEtMS4yNTFjLS4yOTMtLjI5My0uNzczLS4yOTMtMS4wNjYgMGwtNC40MTEgNC40MTNhLjc1Ny43NTcgMCAwIDAgMCAxLjA2NmwyLjUgMi41YS43NTcuNzU3IDAgMCAwIDEuMDY2IDBsMi44MzctMi44NDJjLS42LTEuMjQtLjQ5Mi0yLjczNS4zMjUtMy44ODZ6bTAgMCIvPgo8L3N2Zz4K)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Otlp = createSupabaseIcon(\n 'Otlp',\n [\n [\n 'path',\n {\n d: 'M12.68 13.09c-.984 .984-.984 2.58 0 3.564.984.984 2.58.984 3.564 0 .984-.984.984-2.58 0-3.564-.984-.984-2.58-.984-3.564 0zm2.664 2.666a1.246 1.246 0 0 1-1.764 0 1.246 1.246 0 0 1 0-1.764 1.246 1.246 0 0 1 1.764 0c.487.485.487 1.277 0 1.764zM16.205.688l-1.544 1.544a.782.782 0 0 0 0 1.102l6.028 6.028a.782.782 0 0 0 1.102 0l1.544-1.544c.302-.302.302-.799 0-1.101l-6.028-6.028a.78.78 0 0 0-1.102 0zM5.388 20.418a.706.706 0 0 0 0-.996l-.784-.784a.706.706 0 0 0-.996 0l-1.621 1.621-.003.002-.445-.445c-.246-.246-.647-.246-.891 0-.246.246-.246.647 0 .891l2.671 2.671a.629.629 0 0 0 .89 0c.244-.246.246-.647 0-.89l-.445-.445.003-.002zm0 0',\n key: 'i7z0x6',\n },\n ],\n [\n 'path',\n {\n d: 'M13.555 5.121 10.126 8.55c-.305.305-.305.806 0 1.111l2.119 2.119c1.497-1.078 3.596-.944 4.943.404l1.715-1.715c.304-.305.304-.806 0-1.111l-3.429-3.429a.785.785 0 0 0-1.11 0zM11.353 12.673l-1.251-1.251c-.293-.293-.773-.293-1.066 0l-4.411 4.413a.757.757 0 0 0 0 1.066l2.5 2.5a.757.757 0 0 0 1.066 0l2.837-2.842c-.6-1.24-.492-2.735.325-3.886zm0 0',\n key: '5ytdqc',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'none' },\n);\n\nexport default Otlp;\n", component: React.lazy(() => import('icons/src/icons/otlp')), import: "import { Otlp } from 'icons'", - svg: "\n \n \n\n", + svg: "\n \n \n\n", jsx: "import { Otlp } from \"icons\"\n \n " }, { name: "postgres", componentName: "Postgres", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Postgres\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xMS41NDY2IDMuMjMxMDhDMTEuMjcwNCAzLjIzMTA4IDExLjA0NjYgMy40NTQ5NCAxMS4wNDY2IDMuNzMxMDhDMTEuMDQ2NiA0LjAwNzIyIDExLjI3MDQgNC4yMzEwOCAxMS41NDY2IDQuMjMxMDhWMy4yMzEwOFpNMjAuNjU2OSAxOS41MDQ2QzIwLjY1NjkgMTkuMjI4NSAyMC40MzMgMTkuMDA0NiAyMC4xNTY5IDE5LjAwNDZDMTkuODgwOCAxOS4wMDQ2IDE5LjY1NjkgMTkuMjI4NSAxOS42NTY5IDE5LjUwNDZIMjAuNjU2OVpNMTkuNjU2OSAxNS45NjU2QzE5LjY1NjkgMTYuMjQxNyAxOS44ODA4IDE2LjQ2NTYgMjAuMTU2OSAxNi40NjU2QzIwLjQzMyAxNi40NjU2IDIwLjY1NjkgMTYuMjQxNyAyMC42NTY5IDE1Ljk2NTZIMTkuNjU2OVpNMTMuMDExOSAxOS41NTM2QzEyLjk1OSAxOS4yODI2IDEyLjY5NjQgMTkuMTA1OCAxMi40MjU0IDE5LjE1ODZDMTIuMTU0NCAxOS4yMTE1IDExLjk3NzUgMTkuNDc0MSAxMi4wMzA0IDE5Ljc0NTJMMTMuMDExOSAxOS41NTM2Wk05Ljg3MzgxIDE4Ljg1NjVMOS4zNzM4MSAxOC44NTY1VjE4Ljg1NjVIOS44NzM4MVpNNC4yMDcyMSA1LjI5OTMyTDMuNzM3ODQgNS4xMjY5OUwzLjczNzg0IDUuMTI3TDQuMjA3MjEgNS4yOTkzMlpNMi41MjUyNyA5Ljg4MDQ2TDIuMDU1OSA5LjcwODE0TDIuMDU1OSA5LjcwODE0TDIuNTI1MjcgOS44ODA0NlpNMy4yNDkyMiAxMi42ODczTDIuOTIxNzYgMTMuMDY1MUwyLjkyMTc2IDEzLjA2NTFMMy4yNDkyMiAxMi42ODczWk00LjQwMzM0IDEzLjY4NzVMNC4wNzU4OCAxNC4wNjUzTDQuMDc1ODggMTQuMDY1M0w0LjQwMzM0IDEzLjY4NzVaTTUuMDA5NzEgMTUuMDE1NEw0LjUwOTcxIDE1LjAxNTRMNC41MDk3MSAxNS4wMTU0TDUuMDA5NzEgMTUuMDE1NFpNNS4wMDk2OSAxNi44NTM2TDUuNTA5NjkgMTYuODUzNkw1LjUwOTY5IDE2Ljg1MzZMNS4wMDk2OSAxNi44NTM2Wk05Ljg3Mzg1IDEwLjY2NjFMOS4zNzM4NSAxMC42NjYxTDkuMzczODUgMTAuNjY2MUw5Ljg3Mzg1IDEwLjY2NjFaTTExLjkzOTkgNi45MDc4M0MxMi4xMzYgNi43MTMzOSAxMi4xMzczIDYuMzk2ODEgMTEuOTQyOSA2LjIwMDczQzExLjc0ODQgNi4wMDQ2NCAxMS40MzE5IDYuMDAzMzEgMTEuMjM1OCA2LjE5Nzc0TDExLjkzOTkgNi45MDc4M1pNMTcuODQxIDE4Ljc1MDZMMTcuODQwOSAxOC4yNTA2TDE3Ljg0MDkgMTguMjUwNkwxNy44NDEgMTguNzUwNlpNMjMuMDY3NiAxOS4yNTA2QzIzLjM0MzcgMTkuMjUwNiAyMy41Njc2IDE5LjAyNjcgMjMuNTY3NSAxOC43NTA2QzIzLjU2NzUgMTguNDc0NCAyMy4zNDM3IDE4LjI1MDYgMjMuMDY3NSAxOC4yNTA2TDIzLjA2NzYgMTkuMjUwNlpNMTMuMDE3MSAxNS4yNDQ2QzEyLjg5NTUgMTQuOTk2NyAxMi41OTU5IDE0Ljg5NDMgMTIuMzQ4IDE1LjAxNkMxMi4xMDAxIDE1LjEzNzYgMTEuOTk3OCAxNS40MzcyIDEyLjExOTQgMTUuNjg1MUwxMy4wMTcxIDE1LjI0NDZaTTExLjU0NjYgNC4yMzEwOEgxMi42MDhWMy4yMzEwOEgxMS41NDY2VjQuMjMxMDhaTTE5LjY1NjkgMTkuNTA0NkMxOS42NTY5IDIxLjAyNjQgMTguMjQ2NyAyMi4yNjA2IDE2LjMwMzMgMjIuMjYwNlYyMy4yNjA2QzE4LjYxNjUgMjMuMjYwNiAyMC42NTY5IDIxLjc0NDkgMjAuNjU2OSAxOS41MDQ2SDE5LjY1NjlaTTEyLjYwOCA0LjIzMTA4QzE2LjUwMSA0LjIzMTA4IDE5LjY1NjkgNy4zODY5OCAxOS42NTY5IDExLjI4SDIwLjY1NjlDMjAuNjU2OSA2LjgzNDcgMTcuMDUzMyAzLjIzMTA4IDEyLjYwOCAzLjIzMTA4VjQuMjMxMDhaTTE5LjY1NjkgMTEuMjhWMTUuOTY1NkgyMC42NTY5VjExLjI4SDE5LjY1NjlaTTE2LjMwMzMgMjIuMjYwNkMxNC42NzI3IDIyLjI2MDYgMTMuMzEzIDIxLjA5NjQgMTMuMDExOSAxOS41NTM2TDEyLjAzMDQgMTkuNzQ1MkMxMi40MjE0IDIxLjc0ODUgMTQuMTg1MiAyMy4yNjA2IDE2LjMwMzMgMjMuMjYwNlYyMi4yNjA2Wk0xMS42NTUyIDMuMjIzMzlINi40NjQ1OVY0LjIyMzM5SDExLjY1NTJWMy4yMjMzOVpNMy43Mzc4NCA1LjEyN0wyLjA1NTkgOS43MDgxNEwyLjk5NDY0IDEwLjA1MjhMNC42NzY1OCA1LjQ3MTY0TDMuNzM3ODQgNS4xMjdaTTIuOTIxNzYgMTMuMDY1MUw0LjA3NTg4IDE0LjA2NTNMNC43MzA4IDEzLjMwOTZMMy41NzY2OCAxMi4zMDk0TDIuOTIxNzYgMTMuMDY1MVpNNC41MDk3MSAxNS4wMTU0TDQuNTA5NjkgMTYuODUzNkw1LjUwOTY5IDE2Ljg1MzZMNS41MDk3MSAxNS4wMTU0TDQuNTA5NzEgMTUuMDE1NFpNMTAuMzczOSAxMC42NjYxQzEwLjM3MzkgOS4yNTQ2MyAxMC45Mzc2IDcuOTAxNjYgMTEuOTM5OSA2LjkwNzgzTDExLjIzNTggNi4xOTc3NEMxMC4wNDQyIDcuMzc5MzQgOS4zNzM4NyA4Ljk4Nzk1IDkuMzczODUgMTAuNjY2MUwxMC4zNzM5IDEwLjY2NjFaTTIuMDU1OSA5LjcwODE0QzEuNjE4OTMgMTAuODk4MyAxLjk2MzYzIDEyLjIzNDggMi45MjE3NiAxMy4wNjUxTDMuNTc2NjggMTIuMzA5NEMyLjkzMjYgMTEuNzUxMiAyLjcwMDg5IDEwLjg1MjkgMi45OTQ2NCAxMC4wNTI4TDIuMDU1OSA5LjcwODE0Wk04LjQ0MzE5IDIwLjc4NzJDOS41MDk0NCAyMC43ODcyIDEwLjM3MzggMTkuOTIyOCAxMC4zNzM4IDE4Ljg1NjVIOS4zNzM4MUM5LjM3MzgxIDE5LjM3MDUgOC45NTcxNiAxOS43ODcyIDguNDQzMTkgMTkuNzg3MlYyMC43ODcyWk04LjQ0MzE5IDE5Ljc4NzJDNi44MjMwNSAxOS43ODcyIDUuNTA5NjcgMTguNDczOCA1LjUwOTY5IDE2Ljg1MzZMNC41MDk2OSAxNi44NTM2QzQuNTA5NjYgMTkuMDI2IDYuMjcwNzUgMjAuNzg3MiA4LjQ0MzE5IDIwLjc4NzJWMTkuNzg3MlpNNC4wNzU4OCAxNC4wNjUzQzQuMzUxNDIgMTQuMzA0MSA0LjUwOTcyIDE0LjY1MDggNC41MDk3MSAxNS4wMTU0TDUuNTA5NzEgMTUuMDE1NEM1LjUwOTcyIDE0LjM2MDggNS4yMjU1MiAxMy43Mzg0IDQuNzMwOCAxMy4zMDk2TDQuMDc1ODggMTQuMDY1M1pNNi40NjQ1OSAzLjIyMzM5QzUuMjQ2NDMgMy4yMjMzOSA0LjE1NzY4IDMuOTgzNDcgMy43Mzc4NCA1LjEyNjk5TDQuNjc2NTggNS40NzE2NEM0Ljk1MTg4IDQuNzIxOCA1LjY2NTgxIDQuMjIzMzkgNi40NjQ1OSA0LjIyMzM5VjMuMjIzMzlaTTE3Ljg0MSAxOS4yNTA2TDIzLjA2NzYgMTkuMjUwNkwyMy4wNjc1IDE4LjI1MDZMMTcuODQwOSAxOC4yNTA2TDE3Ljg0MSAxOS4yNTA2Wk0xMi4xMTk0IDE1LjY4NTFDMTMuMTkwNSAxNy44Njc2IDE1LjQwOTggMTkuMjUwNyAxNy44NDEgMTkuMjUwNkwxNy44NDA5IDE4LjI1MDZDMTUuNzkxMyAxOC4yNTA3IDEzLjkyMDEgMTcuMDg0NiAxMy4wMTcxIDE1LjI0NDZMMTIuMTE5NCAxNS42ODUxWk0xMC4zNzM4IDE4Ljg1NjVMMTAuMzczOSAxMC42NjYxTDkuMzczODUgMTAuNjY2MUw5LjM3MzgxIDE4Ljg1NjVMMTAuMzczOCAxOC44NTY1WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE1LjcxNTEgMTEuMjA1NkMxNS43MTUxIDExLjYyNTcgMTYuMDU1NiAxMS45NjYzIDE2LjQ3NTggMTEuOTY2M0MxNi44OTU5IDExLjk2NjMgMTcuMjM2NSAxMS42MjU3IDE3LjIzNjUgMTEuMjA1NkMxNy4yMzY1IDEwLjc4NTQgMTYuODk1OSAxMC40NDQ4IDE2LjQ3NTggMTAuNDQ0OEMxNi4wNTU2IDEwLjQ0NDggMTUuNzE1MSAxMC43ODU0IDE1LjcxNTEgMTEuMjA1NloiIC8+Cjwvc3ZnPgo=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Postgres = createSupabaseIcon(\n 'Postgres',\n [\n [\n 'path',\n {\n d: 'M11.5466 3.23108C11.2704 3.23108 11.0466 3.45494 11.0466 3.73108C11.0466 4.00722 11.2704 4.23108 11.5466 4.23108V3.23108ZM20.6569 19.5046C20.6569 19.2285 20.433 19.0046 20.1569 19.0046C19.8808 19.0046 19.6569 19.2285 19.6569 19.5046H20.6569ZM19.6569 15.9656C19.6569 16.2417 19.8808 16.4656 20.1569 16.4656C20.433 16.4656 20.6569 16.2417 20.6569 15.9656H19.6569ZM13.0119 19.5536C12.959 19.2826 12.6964 19.1058 12.4254 19.1586C12.1544 19.2115 11.9775 19.4741 12.0304 19.7452L13.0119 19.5536ZM9.87381 18.8565L9.37381 18.8565V18.8565H9.87381ZM4.20721 5.29932L3.73784 5.12699L3.73784 5.127L4.20721 5.29932ZM2.52527 9.88046L2.0559 9.70814L2.0559 9.70814L2.52527 9.88046ZM3.24922 12.6873L2.92176 13.0651L2.92176 13.0651L3.24922 12.6873ZM4.40334 13.6875L4.07588 14.0653L4.07588 14.0653L4.40334 13.6875ZM5.00971 15.0154L4.50971 15.0154L4.50971 15.0154L5.00971 15.0154ZM5.00969 16.8536L5.50969 16.8536L5.50969 16.8536L5.00969 16.8536ZM9.87385 10.6661L9.37385 10.6661L9.37385 10.6661L9.87385 10.6661ZM11.9399 6.90783C12.136 6.71339 12.1373 6.39681 11.9429 6.20073C11.7484 6.00464 11.4319 6.00331 11.2358 6.19774L11.9399 6.90783ZM17.841 18.7506L17.8409 18.2506L17.8409 18.2506L17.841 18.7506ZM23.0676 19.2506C23.3437 19.2506 23.5676 19.0267 23.5675 18.7506C23.5675 18.4744 23.3437 18.2506 23.0675 18.2506L23.0676 19.2506ZM13.0171 15.2446C12.8955 14.9967 12.5959 14.8943 12.348 15.016C12.1001 15.1376 11.9978 15.4372 12.1194 15.6851L13.0171 15.2446ZM11.5466 4.23108H12.608V3.23108H11.5466V4.23108ZM19.6569 19.5046C19.6569 21.0264 18.2467 22.2606 16.3033 22.2606V23.2606C18.6165 23.2606 20.6569 21.7449 20.6569 19.5046H19.6569ZM12.608 4.23108C16.501 4.23108 19.6569 7.38698 19.6569 11.28H20.6569C20.6569 6.8347 17.0533 3.23108 12.608 3.23108V4.23108ZM19.6569 11.28V15.9656H20.6569V11.28H19.6569ZM16.3033 22.2606C14.6727 22.2606 13.313 21.0964 13.0119 19.5536L12.0304 19.7452C12.4214 21.7485 14.1852 23.2606 16.3033 23.2606V22.2606ZM11.6552 3.22339H6.46459V4.22339H11.6552V3.22339ZM3.73784 5.127L2.0559 9.70814L2.99464 10.0528L4.67658 5.47164L3.73784 5.127ZM2.92176 13.0651L4.07588 14.0653L4.7308 13.3096L3.57668 12.3094L2.92176 13.0651ZM4.50971 15.0154L4.50969 16.8536L5.50969 16.8536L5.50971 15.0154L4.50971 15.0154ZM10.3739 10.6661C10.3739 9.25463 10.9376 7.90166 11.9399 6.90783L11.2358 6.19774C10.0442 7.37934 9.37387 8.98795 9.37385 10.6661L10.3739 10.6661ZM2.0559 9.70814C1.61893 10.8983 1.96363 12.2348 2.92176 13.0651L3.57668 12.3094C2.9326 11.7512 2.70089 10.8529 2.99464 10.0528L2.0559 9.70814ZM8.44319 20.7872C9.50944 20.7872 10.3738 19.9228 10.3738 18.8565H9.37381C9.37381 19.3705 8.95716 19.7872 8.44319 19.7872V20.7872ZM8.44319 19.7872C6.82305 19.7872 5.50967 18.4738 5.50969 16.8536L4.50969 16.8536C4.50966 19.026 6.27075 20.7872 8.44319 20.7872V19.7872ZM4.07588 14.0653C4.35142 14.3041 4.50972 14.6508 4.50971 15.0154L5.50971 15.0154C5.50972 14.3608 5.22552 13.7384 4.7308 13.3096L4.07588 14.0653ZM6.46459 3.22339C5.24643 3.22339 4.15768 3.98347 3.73784 5.12699L4.67658 5.47164C4.95188 4.7218 5.66581 4.22339 6.46459 4.22339V3.22339ZM17.841 19.2506L23.0676 19.2506L23.0675 18.2506L17.8409 18.2506L17.841 19.2506ZM12.1194 15.6851C13.1905 17.8676 15.4098 19.2507 17.841 19.2506L17.8409 18.2506C15.7913 18.2507 13.9201 17.0846 13.0171 15.2446L12.1194 15.6851ZM10.3738 18.8565L10.3739 10.6661L9.37385 10.6661L9.37381 18.8565L10.3738 18.8565Z',\n key: '1mbkmc',\n },\n ],\n [\n 'path',\n {\n d: 'M15.7151 11.2056C15.7151 11.6257 16.0556 11.9663 16.4758 11.9663C16.8959 11.9663 17.2365 11.6257 17.2365 11.2056C17.2365 10.7854 16.8959 10.4448 16.4758 10.4448C16.0556 10.4448 15.7151 10.7854 15.7151 11.2056Z',\n key: '1vir92',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Postgres;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Postgres\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTExLjU0NjYgMy4yMzEwOEMxMS4yNzA0IDMuMjMxMDggMTEuMDQ2NiAzLjQ1NDk0IDExLjA0NjYgMy43MzEwOEMxMS4wNDY2IDQuMDA3MjIgMTEuMjcwNCA0LjIzMTA4IDExLjU0NjYgNC4yMzEwOFYzLjIzMTA4Wk0yMC42NTY5IDE5LjUwNDZDMjAuNjU2OSAxOS4yMjg1IDIwLjQzMyAxOS4wMDQ2IDIwLjE1NjkgMTkuMDA0NkMxOS44ODA4IDE5LjAwNDYgMTkuNjU2OSAxOS4yMjg1IDE5LjY1NjkgMTkuNTA0NkgyMC42NTY5Wk0xOS42NTY5IDE1Ljk2NTZDMTkuNjU2OSAxNi4yNDE3IDE5Ljg4MDggMTYuNDY1NiAyMC4xNTY5IDE2LjQ2NTZDMjAuNDMzIDE2LjQ2NTYgMjAuNjU2OSAxNi4yNDE3IDIwLjY1NjkgMTUuOTY1NkgxOS42NTY5Wk0xMy4wMTE5IDE5LjU1MzZDMTIuOTU5IDE5LjI4MjYgMTIuNjk2NCAxOS4xMDU4IDEyLjQyNTQgMTkuMTU4NkMxMi4xNTQ0IDE5LjIxMTUgMTEuOTc3NSAxOS40NzQxIDEyLjAzMDQgMTkuNzQ1MkwxMy4wMTE5IDE5LjU1MzZaTTkuODczODEgMTguODU2NUw5LjM3MzgxIDE4Ljg1NjVWMTguODU2NUg5Ljg3MzgxWk00LjIwNzIxIDUuMjk5MzJMMy43Mzc4NCA1LjEyNjk5TDMuNzM3ODQgNS4xMjdMNC4yMDcyMSA1LjI5OTMyWk0yLjUyNTI3IDkuODgwNDZMMi4wNTU5IDkuNzA4MTRMMi4wNTU5IDkuNzA4MTRMMi41MjUyNyA5Ljg4MDQ2Wk0zLjI0OTIyIDEyLjY4NzNMMi45MjE3NiAxMy4wNjUxTDIuOTIxNzYgMTMuMDY1MUwzLjI0OTIyIDEyLjY4NzNaTTQuNDAzMzQgMTMuNjg3NUw0LjA3NTg4IDE0LjA2NTNMNC4wNzU4OCAxNC4wNjUzTDQuNDAzMzQgMTMuNjg3NVpNNS4wMDk3MSAxNS4wMTU0TDQuNTA5NzEgMTUuMDE1NEw0LjUwOTcxIDE1LjAxNTRMNS4wMDk3MSAxNS4wMTU0Wk01LjAwOTY5IDE2Ljg1MzZMNS41MDk2OSAxNi44NTM2TDUuNTA5NjkgMTYuODUzNkw1LjAwOTY5IDE2Ljg1MzZaTTkuODczODUgMTAuNjY2MUw5LjM3Mzg1IDEwLjY2NjFMOS4zNzM4NSAxMC42NjYxTDkuODczODUgMTAuNjY2MVpNMTEuOTM5OSA2LjkwNzgzQzEyLjEzNiA2LjcxMzM5IDEyLjEzNzMgNi4zOTY4MSAxMS45NDI5IDYuMjAwNzNDMTEuNzQ4NCA2LjAwNDY0IDExLjQzMTkgNi4wMDMzMSAxMS4yMzU4IDYuMTk3NzRMMTEuOTM5OSA2LjkwNzgzWk0xNy44NDEgMTguNzUwNkwxNy44NDA5IDE4LjI1MDZMMTcuODQwOSAxOC4yNTA2TDE3Ljg0MSAxOC43NTA2Wk0yMy4wNjc2IDE5LjI1MDZDMjMuMzQzNyAxOS4yNTA2IDIzLjU2NzYgMTkuMDI2NyAyMy41Njc1IDE4Ljc1MDZDMjMuNTY3NSAxOC40NzQ0IDIzLjM0MzcgMTguMjUwNiAyMy4wNjc1IDE4LjI1MDZMMjMuMDY3NiAxOS4yNTA2Wk0xMy4wMTcxIDE1LjI0NDZDMTIuODk1NSAxNC45OTY3IDEyLjU5NTkgMTQuODk0MyAxMi4zNDggMTUuMDE2QzEyLjEwMDEgMTUuMTM3NiAxMS45OTc4IDE1LjQzNzIgMTIuMTE5NCAxNS42ODUxTDEzLjAxNzEgMTUuMjQ0NlpNMTEuNTQ2NiA0LjIzMTA4SDEyLjYwOFYzLjIzMTA4SDExLjU0NjZWNC4yMzEwOFpNMTkuNjU2OSAxOS41MDQ2QzE5LjY1NjkgMjEuMDI2NCAxOC4yNDY3IDIyLjI2MDYgMTYuMzAzMyAyMi4yNjA2VjIzLjI2MDZDMTguNjE2NSAyMy4yNjA2IDIwLjY1NjkgMjEuNzQ0OSAyMC42NTY5IDE5LjUwNDZIMTkuNjU2OVpNMTIuNjA4IDQuMjMxMDhDMTYuNTAxIDQuMjMxMDggMTkuNjU2OSA3LjM4Njk4IDE5LjY1NjkgMTEuMjhIMjAuNjU2OUMyMC42NTY5IDYuODM0NyAxNy4wNTMzIDMuMjMxMDggMTIuNjA4IDMuMjMxMDhWNC4yMzEwOFpNMTkuNjU2OSAxMS4yOFYxNS45NjU2SDIwLjY1NjlWMTEuMjhIMTkuNjU2OVpNMTYuMzAzMyAyMi4yNjA2QzE0LjY3MjcgMjIuMjYwNiAxMy4zMTMgMjEuMDk2NCAxMy4wMTE5IDE5LjU1MzZMMTIuMDMwNCAxOS43NDUyQzEyLjQyMTQgMjEuNzQ4NSAxNC4xODUyIDIzLjI2MDYgMTYuMzAzMyAyMy4yNjA2VjIyLjI2MDZaTTExLjY1NTIgMy4yMjMzOUg2LjQ2NDU5VjQuMjIzMzlIMTEuNjU1MlYzLjIyMzM5Wk0zLjczNzg0IDUuMTI3TDIuMDU1OSA5LjcwODE0TDIuOTk0NjQgMTAuMDUyOEw0LjY3NjU4IDUuNDcxNjRMMy43Mzc4NCA1LjEyN1pNMi45MjE3NiAxMy4wNjUxTDQuMDc1ODggMTQuMDY1M0w0LjczMDggMTMuMzA5NkwzLjU3NjY4IDEyLjMwOTRMMi45MjE3NiAxMy4wNjUxWk00LjUwOTcxIDE1LjAxNTRMNC41MDk2OSAxNi44NTM2TDUuNTA5NjkgMTYuODUzNkw1LjUwOTcxIDE1LjAxNTRMNC41MDk3MSAxNS4wMTU0Wk0xMC4zNzM5IDEwLjY2NjFDMTAuMzczOSA5LjI1NDYzIDEwLjkzNzYgNy45MDE2NiAxMS45Mzk5IDYuOTA3ODNMMTEuMjM1OCA2LjE5Nzc0QzEwLjA0NDIgNy4zNzkzNCA5LjM3Mzg3IDguOTg3OTUgOS4zNzM4NSAxMC42NjYxTDEwLjM3MzkgMTAuNjY2MVpNMi4wNTU5IDkuNzA4MTRDMS42MTg5MyAxMC44OTgzIDEuOTYzNjMgMTIuMjM0OCAyLjkyMTc2IDEzLjA2NTFMMy41NzY2OCAxMi4zMDk0QzIuOTMyNiAxMS43NTEyIDIuNzAwODkgMTAuODUyOSAyLjk5NDY0IDEwLjA1MjhMMi4wNTU5IDkuNzA4MTRaTTguNDQzMTkgMjAuNzg3MkM5LjUwOTQ0IDIwLjc4NzIgMTAuMzczOCAxOS45MjI4IDEwLjM3MzggMTguODU2NUg5LjM3MzgxQzkuMzczODEgMTkuMzcwNSA4Ljk1NzE2IDE5Ljc4NzIgOC40NDMxOSAxOS43ODcyVjIwLjc4NzJaTTguNDQzMTkgMTkuNzg3MkM2LjgyMzA1IDE5Ljc4NzIgNS41MDk2NyAxOC40NzM4IDUuNTA5NjkgMTYuODUzNkw0LjUwOTY5IDE2Ljg1MzZDNC41MDk2NiAxOS4wMjYgNi4yNzA3NSAyMC43ODcyIDguNDQzMTkgMjAuNzg3MlYxOS43ODcyWk00LjA3NTg4IDE0LjA2NTNDNC4zNTE0MiAxNC4zMDQxIDQuNTA5NzIgMTQuNjUwOCA0LjUwOTcxIDE1LjAxNTRMNS41MDk3MSAxNS4wMTU0QzUuNTA5NzIgMTQuMzYwOCA1LjIyNTUyIDEzLjczODQgNC43MzA4IDEzLjMwOTZMNC4wNzU4OCAxNC4wNjUzWk02LjQ2NDU5IDMuMjIzMzlDNS4yNDY0MyAzLjIyMzM5IDQuMTU3NjggMy45ODM0NyAzLjczNzg0IDUuMTI2OTlMNC42NzY1OCA1LjQ3MTY0QzQuOTUxODggNC43MjE4IDUuNjY1ODEgNC4yMjMzOSA2LjQ2NDU5IDQuMjIzMzlWMy4yMjMzOVpNMTcuODQxIDE5LjI1MDZMMjMuMDY3NiAxOS4yNTA2TDIzLjA2NzUgMTguMjUwNkwxNy44NDA5IDE4LjI1MDZMMTcuODQxIDE5LjI1MDZaTTEyLjExOTQgMTUuNjg1MUMxMy4xOTA1IDE3Ljg2NzYgMTUuNDA5OCAxOS4yNTA3IDE3Ljg0MSAxOS4yNTA2TDE3Ljg0MDkgMTguMjUwNkMxNS43OTEzIDE4LjI1MDcgMTMuOTIwMSAxNy4wODQ2IDEzLjAxNzEgMTUuMjQ0NkwxMi4xMTk0IDE1LjY4NTFaTTEwLjM3MzggMTguODU2NUwxMC4zNzM5IDEwLjY2NjFMOS4zNzM4NSAxMC42NjYxTDkuMzczODEgMTguODU2NUwxMC4zNzM4IDE4Ljg1NjVaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNMTUuNzE1MSAxMS4yMDU2QzE1LjcxNTEgMTEuNjI1NyAxNi4wNTU2IDExLjk2NjMgMTYuNDc1OCAxMS45NjYzQzE2Ljg5NTkgMTEuOTY2MyAxNy4yMzY1IDExLjYyNTcgMTcuMjM2NSAxMS4yMDU2QzE3LjIzNjUgMTAuNzg1NCAxNi44OTU5IDEwLjQ0NDggMTYuNDc1OCAxMC40NDQ4QzE2LjA1NTYgMTAuNDQ0OCAxNS43MTUxIDEwLjc4NTQgMTUuNzE1MSAxMS4yMDU2WiIgLz4KPC9zdmc+Cg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Postgres = createSupabaseIcon(\n 'Postgres',\n [\n [\n 'path',\n {\n d: 'M11.5466 3.23108C11.2704 3.23108 11.0466 3.45494 11.0466 3.73108C11.0466 4.00722 11.2704 4.23108 11.5466 4.23108V3.23108ZM20.6569 19.5046C20.6569 19.2285 20.433 19.0046 20.1569 19.0046C19.8808 19.0046 19.6569 19.2285 19.6569 19.5046H20.6569ZM19.6569 15.9656C19.6569 16.2417 19.8808 16.4656 20.1569 16.4656C20.433 16.4656 20.6569 16.2417 20.6569 15.9656H19.6569ZM13.0119 19.5536C12.959 19.2826 12.6964 19.1058 12.4254 19.1586C12.1544 19.2115 11.9775 19.4741 12.0304 19.7452L13.0119 19.5536ZM9.87381 18.8565L9.37381 18.8565V18.8565H9.87381ZM4.20721 5.29932L3.73784 5.12699L3.73784 5.127L4.20721 5.29932ZM2.52527 9.88046L2.0559 9.70814L2.0559 9.70814L2.52527 9.88046ZM3.24922 12.6873L2.92176 13.0651L2.92176 13.0651L3.24922 12.6873ZM4.40334 13.6875L4.07588 14.0653L4.07588 14.0653L4.40334 13.6875ZM5.00971 15.0154L4.50971 15.0154L4.50971 15.0154L5.00971 15.0154ZM5.00969 16.8536L5.50969 16.8536L5.50969 16.8536L5.00969 16.8536ZM9.87385 10.6661L9.37385 10.6661L9.37385 10.6661L9.87385 10.6661ZM11.9399 6.90783C12.136 6.71339 12.1373 6.39681 11.9429 6.20073C11.7484 6.00464 11.4319 6.00331 11.2358 6.19774L11.9399 6.90783ZM17.841 18.7506L17.8409 18.2506L17.8409 18.2506L17.841 18.7506ZM23.0676 19.2506C23.3437 19.2506 23.5676 19.0267 23.5675 18.7506C23.5675 18.4744 23.3437 18.2506 23.0675 18.2506L23.0676 19.2506ZM13.0171 15.2446C12.8955 14.9967 12.5959 14.8943 12.348 15.016C12.1001 15.1376 11.9978 15.4372 12.1194 15.6851L13.0171 15.2446ZM11.5466 4.23108H12.608V3.23108H11.5466V4.23108ZM19.6569 19.5046C19.6569 21.0264 18.2467 22.2606 16.3033 22.2606V23.2606C18.6165 23.2606 20.6569 21.7449 20.6569 19.5046H19.6569ZM12.608 4.23108C16.501 4.23108 19.6569 7.38698 19.6569 11.28H20.6569C20.6569 6.8347 17.0533 3.23108 12.608 3.23108V4.23108ZM19.6569 11.28V15.9656H20.6569V11.28H19.6569ZM16.3033 22.2606C14.6727 22.2606 13.313 21.0964 13.0119 19.5536L12.0304 19.7452C12.4214 21.7485 14.1852 23.2606 16.3033 23.2606V22.2606ZM11.6552 3.22339H6.46459V4.22339H11.6552V3.22339ZM3.73784 5.127L2.0559 9.70814L2.99464 10.0528L4.67658 5.47164L3.73784 5.127ZM2.92176 13.0651L4.07588 14.0653L4.7308 13.3096L3.57668 12.3094L2.92176 13.0651ZM4.50971 15.0154L4.50969 16.8536L5.50969 16.8536L5.50971 15.0154L4.50971 15.0154ZM10.3739 10.6661C10.3739 9.25463 10.9376 7.90166 11.9399 6.90783L11.2358 6.19774C10.0442 7.37934 9.37387 8.98795 9.37385 10.6661L10.3739 10.6661ZM2.0559 9.70814C1.61893 10.8983 1.96363 12.2348 2.92176 13.0651L3.57668 12.3094C2.9326 11.7512 2.70089 10.8529 2.99464 10.0528L2.0559 9.70814ZM8.44319 20.7872C9.50944 20.7872 10.3738 19.9228 10.3738 18.8565H9.37381C9.37381 19.3705 8.95716 19.7872 8.44319 19.7872V20.7872ZM8.44319 19.7872C6.82305 19.7872 5.50967 18.4738 5.50969 16.8536L4.50969 16.8536C4.50966 19.026 6.27075 20.7872 8.44319 20.7872V19.7872ZM4.07588 14.0653C4.35142 14.3041 4.50972 14.6508 4.50971 15.0154L5.50971 15.0154C5.50972 14.3608 5.22552 13.7384 4.7308 13.3096L4.07588 14.0653ZM6.46459 3.22339C5.24643 3.22339 4.15768 3.98347 3.73784 5.12699L4.67658 5.47164C4.95188 4.7218 5.66581 4.22339 6.46459 4.22339V3.22339ZM17.841 19.2506L23.0676 19.2506L23.0675 18.2506L17.8409 18.2506L17.841 19.2506ZM12.1194 15.6851C13.1905 17.8676 15.4098 19.2507 17.841 19.2506L17.8409 18.2506C15.7913 18.2507 13.9201 17.0846 13.0171 15.2446L12.1194 15.6851ZM10.3738 18.8565L10.3739 10.6661L9.37385 10.6661L9.37381 18.8565L10.3738 18.8565Z',\n key: '1mbkmc',\n },\n ],\n [\n 'path',\n {\n d: 'M15.7151 11.2056C15.7151 11.6257 16.0556 11.9663 16.4758 11.9663C16.8959 11.9663 17.2365 11.6257 17.2365 11.2056C17.2365 10.7854 16.8959 10.4448 16.4758 10.4448C16.0556 10.4448 15.7151 10.7854 15.7151 11.2056Z',\n key: '1vir92',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Postgres;\n", component: React.lazy(() => import('icons/src/icons/postgres')), import: "import { Postgres } from 'icons'", - svg: "\n \n \n\n", + svg: "\n \n \n\n", jsx: "import { Postgres } from \"icons\"\n \n " }, { name: "realtime", componentName: "Realtime", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Realtime\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik04LjA0MjczIDEuNTgyMDNWNS4zMjIwNU01LjI0MzU0IDUuMzIyMDVMMi4wNDcxMiAyLjAyNzkxTTUuMjQzNTQgNy45MDk3OUgxLjU3NzY0TTE1LjM3NzYgMTUuNTUwN0wyMS4wNzkgMTQuMTMxNkMyMS41NDE3IDE0LjAxNjQgMjEuNTk1OSAxMy4zODA2IDIxLjE1OTUgMTMuMTg4N0w4LjAwODI4IDcuNDA1ODZDNy41OTEzNyA3LjIyMjU0IDcuMTY2NDMgNy42NDY2MSA3LjM0ODkgOC4wNjM4OUwxMy4wMzIxIDIxLjA2MDdDMTMuMjIyNCAyMS40OTYgMTMuODU1NiAyMS40NDU0IDEzLjk3NDMgMjAuOTg1NEwxNS4zNzc2IDE1LjU1MDdaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Realtime = createSupabaseIcon(\n 'Realtime',\n [\n [\n 'path',\n {\n d: 'M8.04273 1.58203V5.32205M5.24354 5.32205L2.04712 2.02791M5.24354 7.90979H1.57764M15.3776 15.5507L21.079 14.1316C21.5417 14.0164 21.5959 13.3806 21.1595 13.1887L8.00828 7.40586C7.59137 7.22254 7.16643 7.64661 7.3489 8.06389L13.0321 21.0607C13.2224 21.496 13.8556 21.4454 13.9743 20.9854L15.3776 15.5507Z',\n key: '1w2oqg',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Realtime;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Realtime\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTguMDQyNzMgMS41ODIwM1Y1LjMyMjA1TTUuMjQzNTQgNS4zMjIwNUwyLjA0NzEyIDIuMDI3OTFNNS4yNDM1NCA3LjkwOTc5SDEuNTc3NjRNMTUuMzc3NiAxNS41NTA3TDIxLjA3OSAxNC4xMzE2QzIxLjU0MTcgMTQuMDE2NCAyMS41OTU5IDEzLjM4MDYgMjEuMTU5NSAxMy4xODg3TDguMDA4MjggNy40MDU4NkM3LjU5MTM3IDcuMjIyNTQgNy4xNjY0MyA3LjY0NjYxIDcuMzQ4OSA4LjA2Mzg5TDEzLjAzMjEgMjEuMDYwN0MxMy4yMjI0IDIxLjQ5NiAxMy44NTU2IDIxLjQ0NTQgMTMuOTc0MyAyMC45ODU0TDE1LjM3NzYgMTUuNTUwN1oiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Realtime = createSupabaseIcon(\n 'Realtime',\n [\n [\n 'path',\n {\n d: 'M8.04273 1.58203V5.32205M5.24354 5.32205L2.04712 2.02791M5.24354 7.90979H1.57764M15.3776 15.5507L21.079 14.1316C21.5417 14.0164 21.5959 13.3806 21.1595 13.1887L8.00828 7.40586C7.59137 7.22254 7.16643 7.64661 7.3489 8.06389L13.0321 21.0607C13.2224 21.496 13.8556 21.4454 13.9743 20.9854L15.3776 15.5507Z',\n key: '1w2oqg',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Realtime;\n", component: React.lazy(() => import('icons/src/icons/realtime')), import: "import { Realtime } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Realtime } from \"icons\"\n \n " }, { name: "replace-code", componentName: "ReplaceCode", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ReplaceCode\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiAgICBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxwYXRoCiAgICAgICAgZD0iTS0yMDQwMyAtMTExNDJIMTIxNjVWLTExMTQ0SC0yMDQwM1YtMTExNDJaTTEyMTY2IC0xMTE0MVY3MTEzSDEyMTY4Vi0xMTE0MUgxMjE2NlpNMTIxNjUgNzExNEgtMjA0MDNWNzExNkgxMjE2NVY3MTE0Wk0tMjA0MDQgNzExM1YtMTExNDFILTIwNDA2VjcxMTNILTIwNDA0Wk0tMjA0MDMgNzExNEMtMjA0MDMuNiA3MTE0IC0yMDQwNCA3MTEzLjU1IC0yMDQwNCA3MTEzSC0yMDQwNkMtMjA0MDYgNzExNC42NiAtMjA0MDQuNyA3MTE2IC0yMDQwMyA3MTE2VjcxMTRaTTEyMTY2IDcxMTNDMTIxNjYgNzExMy41NSAxMjE2NS42IDcxMTQgMTIxNjUgNzExNFY3MTE2QzEyMTY2LjcgNzExNiAxMjE2OCA3MTE0LjY2IDEyMTY4IDcxMTNIMTIxNjZaTTEyMTY1IC0xMTE0MkMxMjE2NS42IC0xMTE0MiAxMjE2NiAtMTExNDEuNiAxMjE2NiAtMTExNDFIMTIxNjhDMTIxNjggLTExMTQyLjcgMTIxNjYuNyAtMTExNDQgMTIxNjUgLTExMTQ0Vi0xMTE0MlpNLTIwNDAzIC0xMTE0NEMtMjA0MDQuNyAtMTExNDQgLTIwNDA2IC0xMTE0Mi43IC0yMDQwNiAtMTExNDFILTIwNDA0Qy0yMDQwNCAtMTExNDEuNiAtMjA0MDMuNiAtMTExNDIgLTIwNDAzIC0xMTE0MlYtMTExNDRaIgogICAgICAgIGZpbGwtb3BhY2l0eT0iMC4xIiAvPgogICAgPHJlY3QgeD0iNi40NDUzMSIgeT0iMTQuMTEzMyIgd2lkdGg9IjE1Ljg0NTUiIGhlaWdodD0iNy45MTgxOCIgcng9IjMuOTU5MDkiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xMC41ODk2IDEwLjAxOTVMMTguMjE0OCAxMC4wMTk1QzE5LjA0MzMgMTAuMDE5NSAxOS43MTQ4IDkuMzQ3OTYgMTkuNzE0OCA4LjUxOTUzTDE5LjcxNDggMy41OTIyNUMxOS43MTQ4IDIuNzYzODMgMTkuMDQzMyAyLjA5MjI2IDE4LjIxNDggMi4wOTIyNkw1Ljk5NjA5IDIuMDkyMjYiCiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgogICAgPHBhdGggZD0iTTUuOTg5MDIgMTAuNDY1NlY1Ljc4OTA2SDEuMzEyNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgogICAgPHBhdGggZD0iTTMuMjcxMTEgMTMuNjEzM1YxMy42MTMzQzEuNjE1MTUgMTIuMzkxNCAxLjQ3OTQ4IDkuOTY0NDYgMi45ODg5NCA4LjU2NTY0TDUuOTk2MDkgNS43Nzg5MSIKICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ReplaceCode = createSupabaseIcon(\n 'ReplaceCode',\n [\n [\n 'path',\n {\n d: 'M-20403 -11142H12165V-11144H-20403V-11142ZM12166 -11141V7113H12168V-11141H12166ZM12165 7114H-20403V7116H12165V7114ZM-20404 7113V-11141H-20406V7113H-20404ZM-20403 7114C-20403.6 7114 -20404 7113.55 -20404 7113H-20406C-20406 7114.66 -20404.7 7116 -20403 7116V7114ZM12166 7113C12166 7113.55 12165.6 7114 12165 7114V7116C12166.7 7116 12168 7114.66 12168 7113H12166ZM12165 -11142C12165.6 -11142 12166 -11141.6 12166 -11141H12168C12168 -11142.7 12166.7 -11144 12165 -11144V-11142ZM-20403 -11144C-20404.7 -11144 -20406 -11142.7 -20406 -11141H-20404C-20404 -11141.6 -20403.6 -11142 -20403 -11142V-11144Z',\n 'fill-opacity': '0.1',\n key: 'g9kgmq',\n },\n ],\n [\n 'rect',\n {\n x: '6.44531',\n y: '14.1133',\n width: '15.8455',\n height: '7.91818',\n rx: '3.95909',\n key: '1evqnx',\n },\n ],\n [\n 'path',\n {\n d: 'M10.5896 10.0195L18.2148 10.0195C19.0433 10.0195 19.7148 9.34796 19.7148 8.51953L19.7148 3.59225C19.7148 2.76383 19.0433 2.09226 18.2148 2.09226L5.99609 2.09226',\n 'stroke-linecap': 'round',\n key: '18tp5x',\n },\n ],\n [\n 'path',\n {\n d: 'M5.98902 10.4656V5.78906H1.3125',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: 'sfubon',\n },\n ],\n [\n 'path',\n {\n d: 'M3.27111 13.6133V13.6133C1.61515 12.3914 1.47948 9.96446 2.98894 8.56564L5.99609 5.77891',\n 'stroke-linecap': 'round',\n key: '1w6ie7',\n },\n ],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default ReplaceCode;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name ReplaceCode\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiAgICBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGgKICAgICAgICBkPSJNLTIwNDAzIC0xMTE0MkgxMjE2NVYtMTExNDRILTIwNDAzVi0xMTE0MlpNMTIxNjYgLTExMTQxVjcxMTNIMTIxNjhWLTExMTQxSDEyMTY2Wk0xMjE2NSA3MTE0SC0yMDQwM1Y3MTE2SDEyMTY1VjcxMTRaTS0yMDQwNCA3MTEzVi0xMTE0MUgtMjA0MDZWNzExM0gtMjA0MDRaTS0yMDQwMyA3MTE0Qy0yMDQwMy42IDcxMTQgLTIwNDA0IDcxMTMuNTUgLTIwNDA0IDcxMTNILTIwNDA2Qy0yMDQwNiA3MTE0LjY2IC0yMDQwNC43IDcxMTYgLTIwNDAzIDcxMTZWNzExNFpNMTIxNjYgNzExM0MxMjE2NiA3MTEzLjU1IDEyMTY1LjYgNzExNCAxMjE2NSA3MTE0VjcxMTZDMTIxNjYuNyA3MTE2IDEyMTY4IDcxMTQuNjYgMTIxNjggNzExM0gxMjE2NlpNMTIxNjUgLTExMTQyQzEyMTY1LjYgLTExMTQyIDEyMTY2IC0xMTE0MS42IDEyMTY2IC0xMTE0MUgxMjE2OEMxMjE2OCAtMTExNDIuNyAxMjE2Ni43IC0xMTE0NCAxMjE2NSAtMTExNDRWLTExMTQyWk0tMjA0MDMgLTExMTQ0Qy0yMDQwNC43IC0xMTE0NCAtMjA0MDYgLTExMTQyLjcgLTIwNDA2IC0xMTE0MUgtMjA0MDRDLTIwNDA0IC0xMTE0MS42IC0yMDQwMy42IC0xMTE0MiAtMjA0MDMgLTExMTQyVi0xMTE0NFoiCiAgICAgICAgZmlsbC1vcGFjaXR5PSIwLjEiIC8+CiAgICA8cmVjdCB4PSI2LjQ0NTMxIiB5PSIxNC4xMTMzIiB3aWR0aD0iMTUuODQ1NSIgaGVpZ2h0PSI3LjkxODE4IiByeD0iMy45NTkwOSIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTEwLjU4OTYgMTAuMDE5NUwxOC4yMTQ4IDEwLjAxOTVDMTkuMDQzMyAxMC4wMTk1IDE5LjcxNDggOS4zNDc5NiAxOS43MTQ4IDguNTE5NTNMMTkuNzE0OCAzLjU5MjI1QzE5LjcxNDggMi43NjM4MyAxOS4wNDMzIDIuMDkyMjYgMTguMjE0OCAyLjA5MjI2TDUuOTk2MDkgMi4wOTIyNiIgLz4KICAgIDxwYXRoIGQ9Ik01Ljk4OTAyIDEwLjQ2NTZWNS43ODkwNkgxLjMxMjUiIC8+CiAgICA8cGF0aCBkPSJNMy4yNzExMSAxMy42MTMzVjEzLjYxMzNDMS42MTUxNSAxMi4zOTE0IDEuNDc5NDggOS45NjQ0NiAyLjk4ODk0IDguNTY1NjRMNS45OTYwOSA1Ljc3ODkxIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ReplaceCode = createSupabaseIcon(\n 'ReplaceCode',\n [\n [\n 'path',\n {\n d: 'M-20403 -11142H12165V-11144H-20403V-11142ZM12166 -11141V7113H12168V-11141H12166ZM12165 7114H-20403V7116H12165V7114ZM-20404 7113V-11141H-20406V7113H-20404ZM-20403 7114C-20403.6 7114 -20404 7113.55 -20404 7113H-20406C-20406 7114.66 -20404.7 7116 -20403 7116V7114ZM12166 7113C12166 7113.55 12165.6 7114 12165 7114V7116C12166.7 7116 12168 7114.66 12168 7113H12166ZM12165 -11142C12165.6 -11142 12166 -11141.6 12166 -11141H12168C12168 -11142.7 12166.7 -11144 12165 -11144V-11142ZM-20403 -11144C-20404.7 -11144 -20406 -11142.7 -20406 -11141H-20404C-20404 -11141.6 -20403.6 -11142 -20403 -11142V-11144Z',\n 'fill-opacity': '0.1',\n key: 'g9kgmq',\n },\n ],\n [\n 'rect',\n {\n x: '6.44531',\n y: '14.1133',\n width: '15.8455',\n height: '7.91818',\n rx: '3.95909',\n key: '1evqnx',\n },\n ],\n [\n 'path',\n {\n d: 'M10.5896 10.0195L18.2148 10.0195C19.0433 10.0195 19.7148 9.34796 19.7148 8.51953L19.7148 3.59225C19.7148 2.76383 19.0433 2.09226 18.2148 2.09226L5.99609 2.09226',\n key: 'ty8khj',\n },\n ],\n ['path', { d: 'M5.98902 10.4656V5.78906H1.3125', key: '1a8pc0' }],\n [\n 'path',\n {\n d: 'M3.27111 13.6133V13.6133C1.61515 12.3914 1.47948 9.96446 2.98894 8.56564L5.99609 5.77891',\n key: 'uu2l9q',\n },\n ],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default ReplaceCode;\n", component: React.lazy(() => import('icons/src/icons/replace-code')), import: "import { ReplaceCode } from 'icons'", - svg: "\n \n \n \n \n \n", + svg: "\n \n \n \n \n \n", jsx: "import { ReplaceCode } from \"icons\"\n \n " }, { name: "reports", componentName: "Reports", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Reports\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0zLjAzNDc5IDkuMDg0OUw4LjA3MjQxIDQuMDU3NUM4LjQ2Mjk2IDMuNjY3NzQgOS4wOTU0IDMuNjY3OTYgOS40ODU2OCA0LjA1Nzk5TDE0LjAyOTUgOC41OTg4MUMxNC40MiA4Ljk4OTEyIDE1LjA1MyA4Ljk4OTAxIDE1LjQ0MzUgOC41OTg1N0wyMC41ODc3IDMuNDU0MThNMTYuNDk5NiAzLjAxNTI2SDE5Ljk5OTZDMjAuNTUxOSAzLjAxNTI2IDIwLjk5OTYgMy40NjI5NyAyMC45OTk2IDQuMDE1MjZWNy41MTUyNk0yLjk5OTYzIDEyLjAxNTNMMi45OTk2MyAyMC4xOTU4QzIuOTk5NjMgMjAuNzQ4MSAzLjQ0NzM1IDIxLjE5NTggMy45OTk2MyAyMS4xOTU4TDIwLjAwMDQgMjEuMTk1OEMyMC41NTI3IDIxLjE5NTggMjEuMDAwNCAyMC43NDgxIDIxLjAwMDQgMjAuMTk1OFY5Ljg4NTc0TTguODI1MzIgOS44NzE4M0w4LjgyNTMxIDIxLjE5NThNMTUuMTc1NCAxNS4wNzQ2VjIxLjE5NDkiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Reports = createSupabaseIcon(\n 'Reports',\n [\n [\n 'path',\n {\n d: 'M3.03479 9.0849L8.07241 4.0575C8.46296 3.66774 9.0954 3.66796 9.48568 4.05799L14.0295 8.59881C14.42 8.98912 15.053 8.98901 15.4435 8.59857L20.5877 3.45418M16.4996 3.01526H19.9996C20.5519 3.01526 20.9996 3.46297 20.9996 4.01526V7.51526M2.99963 12.0153L2.99963 20.1958C2.99963 20.7481 3.44735 21.1958 3.99963 21.1958L20.0004 21.1958C20.5527 21.1958 21.0004 20.7481 21.0004 20.1958V9.88574M8.82532 9.87183L8.82531 21.1958M15.1754 15.0746V21.1949',\n key: '1g8azg',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Reports;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Reports\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTMuMDM0NzkgOS4wODQ5TDguMDcyNDEgNC4wNTc1QzguNDYyOTYgMy42Njc3NCA5LjA5NTQgMy42Njc5NiA5LjQ4NTY4IDQuMDU3OTlMMTQuMDI5NSA4LjU5ODgxQzE0LjQyIDguOTg5MTIgMTUuMDUzIDguOTg5MDEgMTUuNDQzNSA4LjU5ODU3TDIwLjU4NzcgMy40NTQxOE0xNi40OTk2IDMuMDE1MjZIMTkuOTk5NkMyMC41NTE5IDMuMDE1MjYgMjAuOTk5NiAzLjQ2Mjk3IDIwLjk5OTYgNC4wMTUyNlY3LjUxNTI2TTIuOTk5NjMgMTIuMDE1M0wyLjk5OTYzIDIwLjE5NThDMi45OTk2MyAyMC43NDgxIDMuNDQ3MzUgMjEuMTk1OCAzLjk5OTYzIDIxLjE5NThMMjAuMDAwNCAyMS4xOTU4QzIwLjU1MjcgMjEuMTk1OCAyMS4wMDA0IDIwLjc0ODEgMjEuMDAwNCAyMC4xOTU4VjkuODg1NzRNOC44MjUzMiA5Ljg3MTgzTDguODI1MzEgMjEuMTk1OE0xNS4xNzU0IDE1LjA3NDZWMjEuMTk0OSIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Reports = createSupabaseIcon(\n 'Reports',\n [\n [\n 'path',\n {\n d: 'M3.03479 9.0849L8.07241 4.0575C8.46296 3.66774 9.0954 3.66796 9.48568 4.05799L14.0295 8.59881C14.42 8.98912 15.053 8.98901 15.4435 8.59857L20.5877 3.45418M16.4996 3.01526H19.9996C20.5519 3.01526 20.9996 3.46297 20.9996 4.01526V7.51526M2.99963 12.0153L2.99963 20.1958C2.99963 20.7481 3.44735 21.1958 3.99963 21.1958L20.0004 21.1958C20.5527 21.1958 21.0004 20.7481 21.0004 20.1958V9.88574M8.82532 9.87183L8.82531 21.1958M15.1754 15.0746V21.1949',\n key: '1g8azg',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Reports;\n", component: React.lazy(() => import('icons/src/icons/reports')), import: "import { Reports } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Reports } from \"icons\"\n \n " }, { name: "sentry", componentName: "Sentry", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Sentry\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXNlbnRyeSB0ZXh0LWZvcmVncm91bmQtbGlnaHQiPjxwYXRoIGQ9Ik0xMy45MSAyLjUwNWMtLjg3My0xLjQ0OC0yLjk3Mi0xLjQ0OC0zLjg0NCAwTDYuOTA0IDcuOTJhMTUuNDc4IDE1LjQ3OCAwIDAgMSA4LjUzIDEyLjgxMWgtMi4yMjFBMTMuMzAxIDEzLjMwMSAwIDAgMCA1Ljc4NCA5LjgxNGwtMi45MjYgNS4wNmE3LjY1IDcuNjUgMCAwIDEgNC40MzUgNS44NDhIMi4xOTRhLjM2NS4zNjUgMCAwIDEtLjI5OC0uNTM0bDEuNDEzLTIuNDAyYTUuMTYgNS4xNiAwIDAgMC0xLjYxNC0uOTEzTC4yOTYgMTkuMjc1YTIuMTgyIDIuMTgyIDAgMCAwIC44MTIgMi45OTkgMi4yNCAyLjI0IDAgMCAwIDEuMDg2LjI4OGg2Ljk4M2E5LjMyMiA5LjMyMiAwIDAgMC0zLjg0NS04LjMxOGwxLjExLTEuOTIyYTExLjQ3IDExLjQ3IDAgMCAxIDQuOTUgMTAuMjRoNS45MTVhMTcuMjQyIDE3LjI0MiAwIDAgMC03Ljg4NS0xNS4yOGwyLjI0NC0zLjg0NWEuMzcuMzcgMCAwIDEgLjUwNC0uMTNjLjI1NS4xNCA5Ljc1IDE2LjcwOCA5LjkyOCAxNi45YS4zNjUuMzY1IDAgMCAxLS4zMjcuNTQzaC0yLjI4N2MuMDI5LjYxMi4wMjkgMS4yMjMgMCAxLjgzMWgyLjI5N2EyLjIwNiAyLjIwNiAwIDAgMCAxLjkyMi0zLjMxeiI+PC9wYXRoPjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sentry = createSupabaseIcon(\n 'Sentry',\n [\n [\n 'path',\n {\n d: 'M13.91 2.505c-.873-1.448-2.972-1.448-3.844 0L6.904 7.92a15.478 15.478 0 0 1 8.53 12.811h-2.221A13.301 13.301 0 0 0 5.784 9.814l-2.926 5.06a7.65 7.65 0 0 1 4.435 5.848H2.194a.365.365 0 0 1-.298-.534l1.413-2.402a5.16 5.16 0 0 0-1.614-.913L.296 19.275a2.182 2.182 0 0 0 .812 2.999 2.24 2.24 0 0 0 1.086.288h6.983a9.322 9.322 0 0 0-3.845-8.318l1.11-1.922a11.47 11.47 0 0 1 4.95 10.24h5.915a17.242 17.242 0 0 0-7.885-15.28l2.244-3.845a.37.37 0 0 1 .504-.13c.255.14 9.75 16.708 9.928 16.9a.365.365 0 0 1-.327.543h-2.287c.029.612.029 1.223 0 1.831h2.297a2.206 2.206 0 0 0 1.922-3.31z',\n key: '1ysbk7',\n },\n ],\n ],\n {\n fill: 'currentColor',\n stroke: 'currentColor',\n strokeWidth: '0',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default Sentry;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Sentry\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1zZW50cnkgdGV4dC1mb3JlZ3JvdW5kLWxpZ2h0Ij48cGF0aCBkPSJNMTMuOTEgMi41MDVjLS44NzMtMS40NDgtMi45NzItMS40NDgtMy44NDQgMEw2LjkwNCA3LjkyYTE1LjQ3OCAxNS40NzggMCAwIDEgOC41MyAxMi44MTFoLTIuMjIxQTEzLjMwMSAxMy4zMDEgMCAwIDAgNS43ODQgOS44MTRsLTIuOTI2IDUuMDZhNy42NSA3LjY1IDAgMCAxIDQuNDM1IDUuODQ4SDIuMTk0YS4zNjUuMzY1IDAgMCAxLS4yOTgtLjUzNGwxLjQxMy0yLjQwMmE1LjE2IDUuMTYgMCAwIDAtMS42MTQtLjkxM0wuMjk2IDE5LjI3NWEyLjE4MiAyLjE4MiAwIDAgMCAuODEyIDIuOTk5IDIuMjQgMi4yNCAwIDAgMCAxLjA4Ni4yODhoNi45ODNhOS4zMjIgOS4zMjIgMCAwIDAtMy44NDUtOC4zMThsMS4xMS0xLjkyMmExMS40NyAxMS40NyAwIDAgMSA0Ljk1IDEwLjI0aDUuOTE1YTE3LjI0MiAxNy4yNDIgMCAwIDAtNy44ODUtMTUuMjhsMi4yNDQtMy44NDVhLjM3LjM3IDAgMCAxIC41MDQtLjEzYy4yNTUuMTQgOS43NSAxNi43MDggOS45MjggMTYuOWEuMzY1LjM2NSAwIDAgMS0uMzI3LjU0M2gtMi4yODdjLjAyOS42MTIuMDI5IDEuMjIzIDAgMS44MzFoMi4yOTdhMi4yMDYgMi4yMDYgMCAwIDAgMS45MjItMy4zMXoiPjwvcGF0aD48L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Sentry = createSupabaseIcon(\n 'Sentry',\n [\n [\n 'path',\n {\n d: 'M13.91 2.505c-.873-1.448-2.972-1.448-3.844 0L6.904 7.92a15.478 15.478 0 0 1 8.53 12.811h-2.221A13.301 13.301 0 0 0 5.784 9.814l-2.926 5.06a7.65 7.65 0 0 1 4.435 5.848H2.194a.365.365 0 0 1-.298-.534l1.413-2.402a5.16 5.16 0 0 0-1.614-.913L.296 19.275a2.182 2.182 0 0 0 .812 2.999 2.24 2.24 0 0 0 1.086.288h6.983a9.322 9.322 0 0 0-3.845-8.318l1.11-1.922a11.47 11.47 0 0 1 4.95 10.24h5.915a17.242 17.242 0 0 0-7.885-15.28l2.244-3.845a.37.37 0 0 1 .504-.13c.255.14 9.75 16.708 9.928 16.9a.365.365 0 0 1-.327.543h-2.287c.029.612.029 1.223 0 1.831h2.297a2.206 2.206 0 0 0 1.922-3.31z',\n key: '1ysbk7',\n },\n ],\n ],\n { fill: 'currentColor', stroke: 'none', strokeLinecap: 'round', strokeLinejoin: 'round' },\n);\n\nexport default Sentry;\n", component: React.lazy(() => import('icons/src/icons/sentry')), import: "import { Sentry } from 'icons'", - svg: "\n", + svg: "\n", jsx: "import { Sentry } from \"icons\"\n \n " }, { name: "settings", componentName: "Settings", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Settings\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xOS4wMjIyIDkuMjQ3NzhDMTguNzY4NiA4LjYzMjA5IDE4LjkyMjYgNy45MDQ0NSAxOS4wMDg1IDcuMjQ0MTNDMTkuMDc0NSA2LjczNjg4IDE4LjkxNTggNi4yMDU0NiAxOC41MzA2IDUuODExMkMxOC4xNTYxIDUuNDI3OTUgMTcuNjQ3MSA1LjI1NTc0IDE3LjE1MTcgNS4yOTYyOEMxNi40NjUgNS4zNTI0OCAxNS42OTkzIDUuNDkxNjkgMTUuMDY3MyA1LjIxNzFDMTUuMDMzNyA1LjIwMjQ5IDE1IDUuMTg4MTIgMTQuOTY2MSA1LjE3Mzk5QzE0LjM2MzcgNC45MjI3MiAxMy45NDY3IDQuMzMzODggMTMuNTQ4IDMuODE3MDdDMTMuMjExIDMuMzgwMjUgMTIuNjgyMyAzLjA5ODg4IDEyLjA4OCAzLjA5ODg4QzExLjQ5NTQgMy4wOTg4OCAxMC45NjgxIDMuMzc4NTkgMTAuNjMxIDMuODEzMThDMTAuMjMwOSA0LjMyODk1IDkuODEyMjkgNC45MTY3MyA5LjIwOTE4IDUuMTY2NEM5LjE3MDQ0IDUuMTgyNDQgOS4xMzE4NyA1LjE5ODc5IDkuMDkzNDcgNS4yMTU0NUM4LjQ2NTM4IDUuNDg3OTQgNy43MDU2OSA1LjM1MTU3IDcuMDIzMjggNS4yOTYxOUM2LjUyODMgNS4yNTYwMSA2LjAxOTc4IDUuNDI4MjUgNS42NDU1OCA1LjgxMTJDNS4yNjY5MyA2LjE5ODcxIDUuMTA3MTUgNi43MTg3MiA1LjE2NDQ3IDcuMjE4MDZDNS4yNDExNiA3Ljg4NjE5IDUuMzkzMTMgOC42MjE3NCA1LjEzNjU3IDkuMjQzNEM0Ljg5Mjc2IDkuODM0MTcgNC4zMTczMiAxMC4yNTExIDMuODA4NCAxMC42Mzc3QzMuMzY1MzYgMTAuOTc0MyAzLjA3OTI4IDExLjUwNjggMy4wNzkyOCAxMi4xMDYxQzMuMDc5MjggMTIuNzA2IDMuMzY1OTUgMTMuMjM5IDMuODA5NzggMTMuNTc1NUM0LjMxODQ0IDEzLjk2MTIgNC44OTMyIDE0LjM3NzUgNS4xMzY3NiAxNC45Njc1QzUuMzkzNTMgMTUuNTg5NiA1LjI0MDc3IDE2LjMyNTggNS4xNjMxNSAxNi45OTQzQzUuMTA1MSAxNy40OTQzIDUuMjY0NzkgMTguMDE1MyA1LjY0NDAxIDE4LjQwMzRDNi4wMTg2NCAxOC43ODY4IDYuNTI3OSAxOC45NTkgNy4wMjM0MyAxOC45MTgzQzcuNzA3MDUgMTguODYyMSA4LjQ2ODM1IDE4LjcyNDMgOS4wOTc3NyAxOC45OTY5QzkuMTMzNzggMTkuMDEyNSA5LjE2OTkzIDE5LjAyNzggOS4yMDYyMiAxOS4wNDI5QzkuODEwNTIgMTkuMjkzMyAxMC4yMjk0IDE5Ljg4MzIgMTAuNjI5OCAyMC40MDA1QzEwLjk2NjkgMjAuODM1OSAxMS40OTQ3IDIxLjExNjMgMTIuMDg4IDIxLjExNjNDMTIuNjgzIDIxLjExNjMgMTMuMjEyMiAyMC44MzQzIDEzLjU0OTEgMjAuMzk2NkMxMy45NDgxIDE5Ljg3ODMgMTQuMzY1NCAxOS4yODczIDE0Ljk2OSAxOS4wMzUzQzE1LjAwMDUgMTkuMDIyMSAxNS4wMzE4IDE5LjAwODggMTUuMDYzMSAxOC45OTUyQzE1LjY5NjMgMTguNzIwNSAxNi40NjM2IDE4Ljg2MTIgMTcuMTUxNiAxOC45MTgyQzE3LjY0NzUgMTguOTU5MiAxOC4xNTcyIDE4Ljc4NzEgMTguNTMyMSAxOC40MDM0QzE4LjkxNzkgMTguMDA4NSAxOS4wNzY1IDE3LjQ3NjEgMTkuMDA5OCAxNi45NjgyQzE4LjkyMjkgMTYuMzA3NiAxOC43NjgyIDE1LjU3OTMgMTkuMDIyIDE0Ljk2MzJDMTkuMjYzNCAxNC4zNzc0IDE5LjgzNiAxMy45NjY0IDIwLjM0NiAxMy41OTA2QzIwLjgwMTMgMTMuMjU1IDIxLjA5NjcgMTIuNzE1IDIxLjA5NjcgMTIuMTA2MUMyMS4wOTY3IDExLjQ5NzcgMjAuODAxOSAxMC45NTgyIDIwLjM0NzQgMTAuNjIyNkMxOS44MzcyIDEwLjI0NTggMTkuMjYzOCA5LjgzNDI2IDE5LjAyMjIgOS4yNDc3OFoiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xMi4wMDAyIDE1LjEwNTFDMTMuNjU3IDE1LjEwNTEgMTUuMDAwMiAxMy43NjIgMTUuMDAwMiAxMi4xMDUxQzE1LjAwMDIgMTAuNDQ4MiAxMy42NTcgOS4xMDUxIDEyLjAwMDIgOS4xMDUxQzEwLjM0MzMgOS4xMDUxIDkuMDAwMTggMTAuNDQ4MiA5LjAwMDE4IDEyLjEwNTFDOS4wMDAxOCAxMy43NjIgMTAuMzQzMyAxNS4xMDUxIDEyLjAwMDIgMTUuMTA1MVoiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createSupabaseIcon(\n 'Settings',\n [\n [\n 'path',\n {\n d: 'M19.0222 9.24778C18.7686 8.63209 18.9226 7.90445 19.0085 7.24413C19.0745 6.73688 18.9158 6.20546 18.5306 5.8112C18.1561 5.42795 17.6471 5.25574 17.1517 5.29628C16.465 5.35248 15.6993 5.49169 15.0673 5.2171C15.0337 5.20249 15 5.18812 14.9661 5.17399C14.3637 4.92272 13.9467 4.33388 13.548 3.81707C13.211 3.38025 12.6823 3.09888 12.088 3.09888C11.4954 3.09888 10.9681 3.37859 10.631 3.81318C10.2309 4.32895 9.81229 4.91673 9.20918 5.1664C9.17044 5.18244 9.13187 5.19879 9.09347 5.21545C8.46538 5.48794 7.70569 5.35157 7.02328 5.29619C6.5283 5.25601 6.01978 5.42825 5.64558 5.8112C5.26693 6.19871 5.10715 6.71872 5.16447 7.21806C5.24116 7.88619 5.39313 8.62174 5.13657 9.2434C4.89276 9.83417 4.31732 10.2511 3.8084 10.6377C3.36536 10.9743 3.07928 11.5068 3.07928 12.1061C3.07928 12.706 3.36595 13.239 3.80978 13.5755C4.31844 13.9612 4.8932 14.3775 5.13676 14.9675C5.39353 15.5896 5.24077 16.3258 5.16315 16.9943C5.1051 17.4943 5.26479 18.0153 5.64401 18.4034C6.01864 18.7868 6.5279 18.959 7.02343 18.9183C7.70705 18.8621 8.46835 18.7243 9.09777 18.9969C9.13378 19.0125 9.16993 19.0278 9.20622 19.0429C9.81052 19.2933 10.2294 19.8832 10.6298 20.4005C10.9669 20.8359 11.4947 21.1163 12.088 21.1163C12.683 21.1163 13.2122 20.8343 13.5491 20.3966C13.9481 19.8783 14.3654 19.2873 14.969 19.0353C15.0005 19.0221 15.0318 19.0088 15.0631 18.9952C15.6963 18.7205 16.4636 18.8612 17.1516 18.9182C17.6475 18.9592 18.1572 18.7871 18.5321 18.4034C18.9179 18.0085 19.0765 17.4761 19.0098 16.9682C18.9229 16.3076 18.7682 15.5793 19.022 14.9632C19.2634 14.3774 19.836 13.9664 20.346 13.5906C20.8013 13.255 21.0967 12.715 21.0967 12.1061C21.0967 11.4977 20.8019 10.9582 20.3474 10.6226C19.8372 10.2458 19.2638 9.83426 19.0222 9.24778Z',\n key: '102x66',\n },\n ],\n [\n 'path',\n {\n d: 'M12.0002 15.1051C13.657 15.1051 15.0002 13.762 15.0002 12.1051C15.0002 10.4482 13.657 9.1051 12.0002 9.1051C10.3433 9.1051 9.00018 10.4482 9.00018 12.1051C9.00018 13.762 10.3433 15.1051 12.0002 15.1051Z',\n key: '153c57',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Settings;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Settings\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE5LjAyMjIgOS4yNDc3OEMxOC43Njg2IDguNjMyMDkgMTguOTIyNiA3LjkwNDQ1IDE5LjAwODUgNy4yNDQxM0MxOS4wNzQ1IDYuNzM2ODggMTguOTE1OCA2LjIwNTQ2IDE4LjUzMDYgNS44MTEyQzE4LjE1NjEgNS40Mjc5NSAxNy42NDcxIDUuMjU1NzQgMTcuMTUxNyA1LjI5NjI4QzE2LjQ2NSA1LjM1MjQ4IDE1LjY5OTMgNS40OTE2OSAxNS4wNjczIDUuMjE3MUMxNS4wMzM3IDUuMjAyNDkgMTUgNS4xODgxMiAxNC45NjYxIDUuMTczOTlDMTQuMzYzNyA0LjkyMjcyIDEzLjk0NjcgNC4zMzM4OCAxMy41NDggMy44MTcwN0MxMy4yMTEgMy4zODAyNSAxMi42ODIzIDMuMDk4ODggMTIuMDg4IDMuMDk4ODhDMTEuNDk1NCAzLjA5ODg4IDEwLjk2ODEgMy4zNzg1OSAxMC42MzEgMy44MTMxOEMxMC4yMzA5IDQuMzI4OTUgOS44MTIyOSA0LjkxNjczIDkuMjA5MTggNS4xNjY0QzkuMTcwNDQgNS4xODI0NCA5LjEzMTg3IDUuMTk4NzkgOS4wOTM0NyA1LjIxNTQ1QzguNDY1MzggNS40ODc5NCA3LjcwNTY5IDUuMzUxNTcgNy4wMjMyOCA1LjI5NjE5QzYuNTI4MyA1LjI1NjAxIDYuMDE5NzggNS40MjgyNSA1LjY0NTU4IDUuODExMkM1LjI2NjkzIDYuMTk4NzEgNS4xMDcxNSA2LjcxODcyIDUuMTY0NDcgNy4yMTgwNkM1LjI0MTE2IDcuODg2MTkgNS4zOTMxMyA4LjYyMTc0IDUuMTM2NTcgOS4yNDM0QzQuODkyNzYgOS44MzQxNyA0LjMxNzMyIDEwLjI1MTEgMy44MDg0IDEwLjYzNzdDMy4zNjUzNiAxMC45NzQzIDMuMDc5MjggMTEuNTA2OCAzLjA3OTI4IDEyLjEwNjFDMy4wNzkyOCAxMi43MDYgMy4zNjU5NSAxMy4yMzkgMy44MDk3OCAxMy41NzU1QzQuMzE4NDQgMTMuOTYxMiA0Ljg5MzIgMTQuMzc3NSA1LjEzNjc2IDE0Ljk2NzVDNS4zOTM1MyAxNS41ODk2IDUuMjQwNzcgMTYuMzI1OCA1LjE2MzE1IDE2Ljk5NDNDNS4xMDUxIDE3LjQ5NDMgNS4yNjQ3OSAxOC4wMTUzIDUuNjQ0MDEgMTguNDAzNEM2LjAxODY0IDE4Ljc4NjggNi41Mjc5IDE4Ljk1OSA3LjAyMzQzIDE4LjkxODNDNy43MDcwNSAxOC44NjIxIDguNDY4MzUgMTguNzI0MyA5LjA5Nzc3IDE4Ljk5NjlDOS4xMzM3OCAxOS4wMTI1IDkuMTY5OTMgMTkuMDI3OCA5LjIwNjIyIDE5LjA0MjlDOS44MTA1MiAxOS4yOTMzIDEwLjIyOTQgMTkuODgzMiAxMC42Mjk4IDIwLjQwMDVDMTAuOTY2OSAyMC44MzU5IDExLjQ5NDcgMjEuMTE2MyAxMi4wODggMjEuMTE2M0MxMi42ODMgMjEuMTE2MyAxMy4yMTIyIDIwLjgzNDMgMTMuNTQ5MSAyMC4zOTY2QzEzLjk0ODEgMTkuODc4MyAxNC4zNjU0IDE5LjI4NzMgMTQuOTY5IDE5LjAzNTNDMTUuMDAwNSAxOS4wMjIxIDE1LjAzMTggMTkuMDA4OCAxNS4wNjMxIDE4Ljk5NTJDMTUuNjk2MyAxOC43MjA1IDE2LjQ2MzYgMTguODYxMiAxNy4xNTE2IDE4LjkxODJDMTcuNjQ3NSAxOC45NTkyIDE4LjE1NzIgMTguNzg3MSAxOC41MzIxIDE4LjQwMzRDMTguOTE3OSAxOC4wMDg1IDE5LjA3NjUgMTcuNDc2MSAxOS4wMDk4IDE2Ljk2ODJDMTguOTIyOSAxNi4zMDc2IDE4Ljc2ODIgMTUuNTc5MyAxOS4wMjIgMTQuOTYzMkMxOS4yNjM0IDE0LjM3NzQgMTkuODM2IDEzLjk2NjQgMjAuMzQ2IDEzLjU5MDZDMjAuODAxMyAxMy4yNTUgMjEuMDk2NyAxMi43MTUgMjEuMDk2NyAxMi4xMDYxQzIxLjA5NjcgMTEuNDk3NyAyMC44MDE5IDEwLjk1ODIgMjAuMzQ3NCAxMC42MjI2QzE5LjgzNzIgMTAuMjQ1OCAxOS4yNjM4IDkuODM0MjYgMTkuMDIyMiA5LjI0Nzc4WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTEyLjAwMDIgMTUuMTA1MUMxMy42NTcgMTUuMTA1MSAxNS4wMDAyIDEzLjc2MiAxNS4wMDAyIDEyLjEwNTFDMTUuMDAwMiAxMC40NDgyIDEzLjY1NyA5LjEwNTEgMTIuMDAwMiA5LjEwNTFDMTAuMzQzMyA5LjEwNTEgOS4wMDAxOCAxMC40NDgyIDkuMDAwMTggMTIuMTA1MUM5LjAwMDE4IDEzLjc2MiAxMC4zNDMzIDE1LjEwNTEgMTIuMDAwMiAxNS4xMDUxWiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Settings = createSupabaseIcon(\n 'Settings',\n [\n [\n 'path',\n {\n d: 'M19.0222 9.24778C18.7686 8.63209 18.9226 7.90445 19.0085 7.24413C19.0745 6.73688 18.9158 6.20546 18.5306 5.8112C18.1561 5.42795 17.6471 5.25574 17.1517 5.29628C16.465 5.35248 15.6993 5.49169 15.0673 5.2171C15.0337 5.20249 15 5.18812 14.9661 5.17399C14.3637 4.92272 13.9467 4.33388 13.548 3.81707C13.211 3.38025 12.6823 3.09888 12.088 3.09888C11.4954 3.09888 10.9681 3.37859 10.631 3.81318C10.2309 4.32895 9.81229 4.91673 9.20918 5.1664C9.17044 5.18244 9.13187 5.19879 9.09347 5.21545C8.46538 5.48794 7.70569 5.35157 7.02328 5.29619C6.5283 5.25601 6.01978 5.42825 5.64558 5.8112C5.26693 6.19871 5.10715 6.71872 5.16447 7.21806C5.24116 7.88619 5.39313 8.62174 5.13657 9.2434C4.89276 9.83417 4.31732 10.2511 3.8084 10.6377C3.36536 10.9743 3.07928 11.5068 3.07928 12.1061C3.07928 12.706 3.36595 13.239 3.80978 13.5755C4.31844 13.9612 4.8932 14.3775 5.13676 14.9675C5.39353 15.5896 5.24077 16.3258 5.16315 16.9943C5.1051 17.4943 5.26479 18.0153 5.64401 18.4034C6.01864 18.7868 6.5279 18.959 7.02343 18.9183C7.70705 18.8621 8.46835 18.7243 9.09777 18.9969C9.13378 19.0125 9.16993 19.0278 9.20622 19.0429C9.81052 19.2933 10.2294 19.8832 10.6298 20.4005C10.9669 20.8359 11.4947 21.1163 12.088 21.1163C12.683 21.1163 13.2122 20.8343 13.5491 20.3966C13.9481 19.8783 14.3654 19.2873 14.969 19.0353C15.0005 19.0221 15.0318 19.0088 15.0631 18.9952C15.6963 18.7205 16.4636 18.8612 17.1516 18.9182C17.6475 18.9592 18.1572 18.7871 18.5321 18.4034C18.9179 18.0085 19.0765 17.4761 19.0098 16.9682C18.9229 16.3076 18.7682 15.5793 19.022 14.9632C19.2634 14.3774 19.836 13.9664 20.346 13.5906C20.8013 13.255 21.0967 12.715 21.0967 12.1061C21.0967 11.4977 20.8019 10.9582 20.3474 10.6226C19.8372 10.2458 19.2638 9.83426 19.0222 9.24778Z',\n key: '102x66',\n },\n ],\n [\n 'path',\n {\n d: 'M12.0002 15.1051C13.657 15.1051 15.0002 13.762 15.0002 12.1051C15.0002 10.4482 13.657 9.1051 12.0002 9.1051C10.3433 9.1051 9.00018 10.4482 9.00018 12.1051C9.00018 13.762 10.3433 15.1051 12.0002 15.1051Z',\n key: '153c57',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Settings;\n", component: React.lazy(() => import('icons/src/icons/settings')), import: "import { Settings } from 'icons'", - svg: "\n \n \n", + svg: "\n \n \n", jsx: "import { Settings } from \"icons\"\n \n " }, { name: "sql-editor", componentName: "SqlEditor", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name SqlEditor\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03Ljg5ODQ0IDguNDM0MkwxMS41MDA0IDEyLjAzNTZMNy44OTg0NCAxNS42Mzc1TTEyIDE1LjMyOTJIMTYuNU01IDIxLjEwNTVIMTlDMjAuMTA0NiAyMS4xMDU1IDIxIDIwLjIxIDIxIDE5LjEwNTVWNS4xMDU0N0MyMSA0LjAwMDkgMjAuMTA0NiAzLjEwNTQ3IDE5IDMuMTA1NDdINUMzLjg5NTQzIDMuMTA1NDcgMyA0LjAwMDkgMyA1LjEwNTQ3VjE5LjEwNTVDMyAyMC4yMSAzLjg5NTQzIDIxLjEwNTUgNSAyMS4xMDU1WiIgLz4KPC9zdmc+)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SqlEditor = createSupabaseIcon(\n 'SqlEditor',\n [\n [\n 'path',\n {\n d: 'M7.89844 8.4342L11.5004 12.0356L7.89844 15.6375M12 15.3292H16.5M5 21.1055H19C20.1046 21.1055 21 20.21 21 19.1055V5.10547C21 4.0009 20.1046 3.10547 19 3.10547H5C3.89543 3.10547 3 4.0009 3 5.10547V19.1055C3 20.21 3.89543 21.1055 5 21.1055Z',\n key: 'orzc99',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default SqlEditor;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name SqlEditor\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTcuODk4NDQgOC40MzQyTDExLjUwMDQgMTIuMDM1Nkw3Ljg5ODQ0IDE1LjYzNzVNMTIgMTUuMzI5MkgxNi41TTUgMjEuMTA1NUgxOUMyMC4xMDQ2IDIxLjEwNTUgMjEgMjAuMjEgMjEgMTkuMTA1NVY1LjEwNTQ3QzIxIDQuMDAwOSAyMC4xMDQ2IDMuMTA1NDcgMTkgMy4xMDU0N0g1QzMuODk1NDMgMy4xMDU0NyAzIDQuMDAwOSAzIDUuMTA1NDdWMTkuMTA1NUMzIDIwLjIxIDMuODk1NDMgMjEuMTA1NSA1IDIxLjEwNTVaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SqlEditor = createSupabaseIcon(\n 'SqlEditor',\n [\n [\n 'path',\n {\n d: 'M7.89844 8.4342L11.5004 12.0356L7.89844 15.6375M12 15.3292H16.5M5 21.1055H19C20.1046 21.1055 21 20.21 21 19.1055V5.10547C21 4.0009 20.1046 3.10547 19 3.10547H5C3.89543 3.10547 3 4.0009 3 5.10547V19.1055C3 20.21 3.89543 21.1055 5 21.1055Z',\n key: 'orzc99',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default SqlEditor;\n", component: React.lazy(() => import('icons/src/icons/sql-editor')), import: "import { SqlEditor } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { SqlEditor } from \"icons\"\n \n " }, { name: "storage", componentName: "Storage", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Storage\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xOS40OTk1IDExLjM2ODVWOC41MDcyNUwxNC4wNzIzIDMuMTA1ODRINS40OTk1MUM0Ljk0NzIyIDMuMTA1ODQgNC40OTk1MSAzLjU1MzU1IDQuNDk5NTEgNC4xMDU4NFY5LjEwNTFNMTkuNDQ2OCA4LjQ4MjE4TDE0LjA3MDEgMy4xMDU0N0wxNC4wNzAxIDcuNDgyMThDMTQuMDcwMSA4LjAzNDQ2IDE0LjUxNzggOC40ODIxOCAxNS4wNzAxIDguNDgyMThMMTkuNDQ2OCA4LjQ4MjE4Wk02Ljg2Njc1IDkuMTA1MUgzLjk2MDQ1QzMuNDA4MTYgOS4xMDUxIDIuOTYwNDUgOS41NTI4MiAyLjk2MDQ1IDEwLjEwNTFWMTkuMTA1MUMyLjk2MDQ1IDIwLjIwOTcgMy44NTU4OCAyMS4xMDUxIDQuOTYwNDUgMjEuMTA1MUgxOC45NjA0QzIwLjA2NSAyMS4xMDUxIDIwLjk2MDQgMjAuMjA5NyAyMC45NjA0IDE5LjEwNTFWMTIuMzY4NUMyMC45NjA0IDExLjgxNjIgMjAuNTEyNyAxMS4zNjg1IDE5Ljk2MDUgMTEuMzY4NUg5Ljk4NjIyQzkuNzIzODIgMTEuMzY4NSA5LjQ3MTk0IDExLjI2NTQgOS4yODQ4OSAxMS4wODEzTDcuNTY4MDggOS4zOTIyNkM3LjM4MTAzIDkuMjA4MjQgNy4xMjkxNSA5LjEwNTEgNi44NjY3NSA5LjEwNTFaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Storage = createSupabaseIcon(\n 'Storage',\n [\n [\n 'path',\n {\n d: 'M19.4995 11.3685V8.50725L14.0723 3.10584H5.49951C4.94722 3.10584 4.49951 3.55355 4.49951 4.10584V9.1051M19.4468 8.48218L14.0701 3.10547L14.0701 7.48218C14.0701 8.03446 14.5178 8.48218 15.0701 8.48218L19.4468 8.48218ZM6.86675 9.1051H3.96045C3.40816 9.1051 2.96045 9.55282 2.96045 10.1051V19.1051C2.96045 20.2097 3.85588 21.1051 4.96045 21.1051H18.9604C20.065 21.1051 20.9604 20.2097 20.9604 19.1051V12.3685C20.9604 11.8162 20.5127 11.3685 19.9605 11.3685H9.98622C9.72382 11.3685 9.47194 11.2654 9.28489 11.0813L7.56808 9.39226C7.38103 9.20824 7.12915 9.1051 6.86675 9.1051Z',\n key: '1liyj6',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default Storage;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name Storage\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE5LjQ5OTUgMTEuMzY4NVY4LjUwNzI1TDE0LjA3MjMgMy4xMDU4NEg1LjQ5OTUxQzQuOTQ3MjIgMy4xMDU4NCA0LjQ5OTUxIDMuNTUzNTUgNC40OTk1MSA0LjEwNTg0VjkuMTA1MU0xOS40NDY4IDguNDgyMThMMTQuMDcwMSAzLjEwNTQ3TDE0LjA3MDEgNy40ODIxOEMxNC4wNzAxIDguMDM0NDYgMTQuNTE3OCA4LjQ4MjE4IDE1LjA3MDEgOC40ODIxOEwxOS40NDY4IDguNDgyMThaTTYuODY2NzUgOS4xMDUxSDMuOTYwNDVDMy40MDgxNiA5LjEwNTEgMi45NjA0NSA5LjU1MjgyIDIuOTYwNDUgMTAuMTA1MVYxOS4xMDUxQzIuOTYwNDUgMjAuMjA5NyAzLjg1NTg4IDIxLjEwNTEgNC45NjA0NSAyMS4xMDUxSDE4Ljk2MDRDMjAuMDY1IDIxLjEwNTEgMjAuOTYwNCAyMC4yMDk3IDIwLjk2MDQgMTkuMTA1MVYxMi4zNjg1QzIwLjk2MDQgMTEuODE2MiAyMC41MTI3IDExLjM2ODUgMTkuOTYwNSAxMS4zNjg1SDkuOTg2MjJDOS43MjM4MiAxMS4zNjg1IDkuNDcxOTQgMTEuMjY1NCA5LjI4NDg5IDExLjA4MTNMNy41NjgwOCA5LjM5MjI2QzcuMzgxMDMgOS4yMDgyNCA3LjEyOTE1IDkuMTA1MSA2Ljg2Njc1IDkuMTA1MVoiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Storage = createSupabaseIcon(\n 'Storage',\n [\n [\n 'path',\n {\n d: 'M19.4995 11.3685V8.50725L14.0723 3.10584H5.49951C4.94722 3.10584 4.49951 3.55355 4.49951 4.10584V9.1051M19.4468 8.48218L14.0701 3.10547L14.0701 7.48218C14.0701 8.03446 14.5178 8.48218 15.0701 8.48218L19.4468 8.48218ZM6.86675 9.1051H3.96045C3.40816 9.1051 2.96045 9.55282 2.96045 10.1051V19.1051C2.96045 20.2097 3.85588 21.1051 4.96045 21.1051H18.9604C20.065 21.1051 20.9604 20.2097 20.9604 19.1051V12.3685C20.9604 11.8162 20.5127 11.3685 19.9605 11.3685H9.98622C9.72382 11.3685 9.47194 11.2654 9.28489 11.0813L7.56808 9.39226C7.38103 9.20824 7.12915 9.1051 6.86675 9.1051Z',\n key: '1liyj6',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default Storage;\n", component: React.lazy(() => import('icons/src/icons/storage')), import: "import { Storage } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { Storage } from \"icons\"\n \n " }, { name: "table-editor", componentName: "TableEditor", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name TableEditor\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0yLjk3MDcgMTUuMzQ5NEwyMC45NzA3IDE1LjM1NU0yMC45NDA1IDkuNjE1ODhIMi45OTY5OU04Ljc3NjYxIDkuNjE1ODhWMjEuMTM2N00yMC45NDA1IDUuODU1NDdWMTkuMTM2N0MyMC45NDA1IDIwLjI0MTMgMjAuMDQ1MSAyMS4xMzY3IDE4Ljk0MDUgMjEuMTM2N0g0Ljk5Njk5QzMuODkyNDIgMjEuMTM2NyAyLjk5Njk5IDIwLjI0MTMgMi45OTY5OSAxOS4xMzY3VjUuODU1NDdDMi45OTY5OSA0Ljc1MDkgMy44OTI0MiAzLjg1NTQ3IDQuOTk2OTkgMy44NTU0N0gxOC45NDA1QzIwLjA0NTEgMy44NTU0NyAyMC45NDA1IDQuNzUwOSAyMC45NDA1IDUuODU1NDdaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TableEditor = createSupabaseIcon(\n 'TableEditor',\n [\n [\n 'path',\n {\n d: 'M2.9707 15.3494L20.9707 15.355M20.9405 9.61588H2.99699M8.77661 9.61588V21.1367M20.9405 5.85547V19.1367C20.9405 20.2413 20.0451 21.1367 18.9405 21.1367H4.99699C3.89242 21.1367 2.99699 20.2413 2.99699 19.1367V5.85547C2.99699 4.7509 3.89242 3.85547 4.99699 3.85547H18.9405C20.0451 3.85547 20.9405 4.7509 20.9405 5.85547Z',\n key: '1qrasg',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default TableEditor;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name TableEditor\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTIuOTcwNyAxNS4zNDk0TDIwLjk3MDcgMTUuMzU1TTIwLjk0MDUgOS42MTU4OEgyLjk5Njk5TTguNzc2NjEgOS42MTU4OFYyMS4xMzY3TTIwLjk0MDUgNS44NTU0N1YxOS4xMzY3QzIwLjk0MDUgMjAuMjQxMyAyMC4wNDUxIDIxLjEzNjcgMTguOTQwNSAyMS4xMzY3SDQuOTk2OTlDMy44OTI0MiAyMS4xMzY3IDIuOTk2OTkgMjAuMjQxMyAyLjk5Njk5IDE5LjEzNjdWNS44NTU0N0MyLjk5Njk5IDQuNzUwOSAzLjg5MjQyIDMuODU1NDcgNC45OTY5OSAzLjg1NTQ3SDE4Ljk0MDVDMjAuMDQ1MSAzLjg1NTQ3IDIwLjk0MDUgNC43NTA5IDIwLjk0MDUgNS44NTU0N1oiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst TableEditor = createSupabaseIcon(\n 'TableEditor',\n [\n [\n 'path',\n {\n d: 'M2.9707 15.3494L20.9707 15.355M20.9405 9.61588H2.99699M8.77661 9.61588V21.1367M20.9405 5.85547V19.1367C20.9405 20.2413 20.0451 21.1367 18.9405 21.1367H4.99699C3.89242 21.1367 2.99699 20.2413 2.99699 19.1367V5.85547C2.99699 4.7509 3.89242 3.85547 4.99699 3.85547H18.9405C20.0451 3.85547 20.9405 4.7509 20.9405 5.85547Z',\n key: '1qrasg',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default TableEditor;\n", component: React.lazy(() => import('icons/src/icons/table-editor')), import: "import { TableEditor } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { TableEditor } from \"icons\"\n \n " }, { name: "user", componentName: "User", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name User\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03LjA2NDczIDE5LjYzMjhDNC42MTY0OCAxOC4wMjQ0IDMgMTUuMjUzNyAzIDEyLjEwNTVDMyA3LjEzNDkxIDcuMDI5NDQgMy4xMDU0NyAxMiAzLjEwNTQ3QzE2Ljk3MDYgMy4xMDU0NyAyMSA3LjEzNDkxIDIxIDEyLjEwNTVDMjEgMTUuMjUzNyAxOS40MjczIDE4LjAwOTQgMTYuOTc5IDE5LjYxNzhNMTYuOTc5OSAyMi4yODQ0VjE5LjcxMzZDMTYuOTc5OSAxNy4wMjU4IDE0LjgwMTEgMTQuODQ2OSAxMi4xMTMzIDE0Ljg0NjlDOS40MjU0NyAxNC44NDY5IDcuMjQ2NTggMTcuMDI1OCA3LjI0NjU4IDE5LjcxMzZWMjIuMjg0NE0xNSAxMS44NDY5QzE1IDEzLjUwMzggMTMuNjU2OSAxNC44NDY5IDEyIDE0Ljg0NjlDMTAuMzQzMSAxNC44NDY5IDkgMTMuNTAzOCA5IDExLjg0NjlDOSAxMC4xOTAxIDEwLjM0MzEgOC44NDY5MiAxMiA4Ljg0NjkyQzEzLjY1NjkgOC44NDY5MiAxNSAxMC4xOTAxIDE1IDExLjg0NjlaIiAvPgo8L3N2Zz4=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createSupabaseIcon(\n 'User',\n [\n [\n 'path',\n {\n d: 'M7.06473 19.6328C4.61648 18.0244 3 15.2537 3 12.1055C3 7.13491 7.02944 3.10547 12 3.10547C16.9706 3.10547 21 7.13491 21 12.1055C21 15.2537 19.4273 18.0094 16.979 19.6178M16.9799 22.2844V19.7136C16.9799 17.0258 14.8011 14.8469 12.1133 14.8469C9.42547 14.8469 7.24658 17.0258 7.24658 19.7136V22.2844M15 11.8469C15 13.5038 13.6569 14.8469 12 14.8469C10.3431 14.8469 9 13.5038 9 11.8469C9 10.1901 10.3431 8.84692 12 8.84692C13.6569 8.84692 15 10.1901 15 11.8469Z',\n key: '173y10',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1' },\n);\n\nexport default User;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name User\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTcuMDY0NzMgMTkuNjMyOEM0LjYxNjQ4IDE4LjAyNDQgMyAxNS4yNTM3IDMgMTIuMTA1NUMzIDcuMTM0OTEgNy4wMjk0NCAzLjEwNTQ3IDEyIDMuMTA1NDdDMTYuOTcwNiAzLjEwNTQ3IDIxIDcuMTM0OTEgMjEgMTIuMTA1NUMyMSAxNS4yNTM3IDE5LjQyNzMgMTguMDA5NCAxNi45NzkgMTkuNjE3OE0xNi45Nzk5IDIyLjI4NDRWMTkuNzEzNkMxNi45Nzk5IDE3LjAyNTggMTQuODAxMSAxNC44NDY5IDEyLjExMzMgMTQuODQ2OUM5LjQyNTQ3IDE0Ljg0NjkgNy4yNDY1OCAxNy4wMjU4IDcuMjQ2NTggMTkuNzEzNlYyMi4yODQ0TTE1IDExLjg0NjlDMTUgMTMuNTAzOCAxMy42NTY5IDE0Ljg0NjkgMTIgMTQuODQ2OUMxMC4zNDMxIDE0Ljg0NjkgOSAxMy41MDM4IDkgMTEuODQ2OUM5IDEwLjE5MDEgMTAuMzQzMSA4Ljg0NjkyIDEyIDguODQ2OTJDMTMuNjU2OSA4Ljg0NjkyIDE1IDEwLjE5MDEgMTUgMTEuODQ2OVoiIC8+Cjwvc3ZnPg==)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst User = createSupabaseIcon(\n 'User',\n [\n [\n 'path',\n {\n d: 'M7.06473 19.6328C4.61648 18.0244 3 15.2537 3 12.1055C3 7.13491 7.02944 3.10547 12 3.10547C16.9706 3.10547 21 7.13491 21 12.1055C21 15.2537 19.4273 18.0094 16.979 19.6178M16.9799 22.2844V19.7136C16.9799 17.0258 14.8011 14.8469 12.1133 14.8469C9.42547 14.8469 7.24658 17.0258 7.24658 19.7136V22.2844M15 11.8469C15 13.5038 13.6569 14.8469 12 14.8469C10.3431 14.8469 9 13.5038 9 11.8469C9 10.1901 10.3431 8.84692 12 8.84692C13.6569 8.84692 15 10.1901 15 11.8469Z',\n key: '173y10',\n },\n ],\n ],\n { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' },\n);\n\nexport default User;\n", component: React.lazy(() => import('icons/src/icons/user')), import: "import { User } from 'icons'", - svg: "\n \n", + svg: "\n \n", jsx: "import { User } from \"icons\"\n \n " }, { name: "vector-bucket", componentName: "VectorBucket", deprecated: false, - raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name VectorBucket\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkuOTk5OSAyMEMyMC41MzAzIDIwIDIxLjAzOSAxOS43ODkzIDIxLjQxNDEgMTkuNDE0MkMyMS43ODkyIDE5LjAzOTEgMjEuOTk5OSAxOC41MzA0IDIxLjk5OTkgMThWOEMyMS45OTk5IDcuNDY5NTcgMjEuNzg5MiA2Ljk2MDg2IDIxLjQxNDEgNi41ODU3OUMyMS4wMzkgNi4yMTA3MSAyMC41MzAzIDYgMTkuOTk5OSA2SDEyLjA5OTlDMTEuNzY1NCA2LjAwMzI4IDExLjQzNTQgNS45MjI2MSAxMS4xNDAyIDUuNzY1MzhDMTAuODQ0OSA1LjYwODE1IDEwLjU5MzggNS4zNzkzOCAxMC40MDk5IDUuMUw5LjU5OTg4IDMuOUM5LjQxNzc3IDMuNjIzNDcgOS4xNjk4NSAzLjM5NjQ4IDguODc4MzggMy4yMzk0QzguNTg2OSAzLjA4MjMxIDguMjYwOTkgMy4wMDAwNSA3LjkyOTg4IDNIMy45OTk4OEMzLjQ2OTQ0IDMgMi45NjA3NCAzLjIxMDcxIDIuNTg1NjYgMy41ODU3OUMyLjIxMDU5IDMuOTYwODYgMS45OTk4OCA0LjQ2OTU3IDEuOTk5ODggNVYxOEMxLjk5OTg4IDE4LjUzMDQgMi4yMTA1OSAxOS4wMzkxIDIuNTg1NjYgMTkuNDE0MkMyLjk2MDc0IDE5Ljc4OTMgMy40Njk0NCAyMCAzLjk5OTg4IDIwSDE5Ljk5OTlaIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTExLjc4MzMgMTUuMjE5N1YxOS41TTExLjc4MzMgMTUuMjE5N0wxNi44MzI3IDEyLjI4NjhNMTEuNzgzMyAxNS4yMTk3TDYuNzM0MjUgMTIuMjg2OU02LjczNDI1IDEyLjI4NjlWMTUuNzk2NU02LjczNDI1IDEyLjI4NjlWMTIuMjU2OEw5Ljc1ODg1IDEwLjVNMTYuODMyOCAxNS44MjcyVjEyLjI1NjhMMTMuODA4MyAxMC41IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst VectorBucket = createSupabaseIcon(\n 'VectorBucket',\n [\n [\n 'path',\n {\n d: 'M19.9999 20C20.5303 20 21.039 19.7893 21.4141 19.4142C21.7892 19.0391 21.9999 18.5304 21.9999 18V8C21.9999 7.46957 21.7892 6.96086 21.4141 6.58579C21.039 6.21071 20.5303 6 19.9999 6H12.0999C11.7654 6.00328 11.4354 5.92261 11.1402 5.76538C10.8449 5.60815 10.5938 5.37938 10.4099 5.1L9.59988 3.9C9.41777 3.62347 9.16985 3.39648 8.87838 3.2394C8.5869 3.08231 8.26099 3.00005 7.92988 3H3.99988C3.46944 3 2.96074 3.21071 2.58566 3.58579C2.21059 3.96086 1.99988 4.46957 1.99988 5V18C1.99988 18.5304 2.21059 19.0391 2.58566 19.4142C2.96074 19.7893 3.46944 20 3.99988 20H19.9999Z',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1wdbdy',\n },\n ],\n [\n 'path',\n {\n d: 'M11.7833 15.2197V19.5M11.7833 15.2197L16.8327 12.2868M11.7833 15.2197L6.73425 12.2869M6.73425 12.2869V15.7965M6.73425 12.2869V12.2568L9.75885 10.5M16.8328 15.8272V12.2568L13.8083 10.5',\n stroke: 'currentColor',\n 'stroke-width': '1.5',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n key: '1t09vn',\n },\n ],\n ],\n { fill: 'none' },\n);\n\nexport default VectorBucket;\n", + raw: "import createSupabaseIcon from '../createSupabaseIcon';\n\n/**\n * @component @name VectorBucket\n * @description Supabase SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xOS45OTk5IDIwQzIwLjUzMDMgMjAgMjEuMDM5IDE5Ljc4OTMgMjEuNDE0MSAxOS40MTQyQzIxLjc4OTIgMTkuMDM5MSAyMS45OTk5IDE4LjUzMDQgMjEuOTk5OSAxOFY4QzIxLjk5OTkgNy40Njk1NyAyMS43ODkyIDYuOTYwODYgMjEuNDE0MSA2LjU4NTc5QzIxLjAzOSA2LjIxMDcxIDIwLjUzMDMgNiAxOS45OTk5IDZIMTIuMDk5OUMxMS43NjU0IDYuMDAzMjggMTEuNDM1NCA1LjkyMjYxIDExLjE0MDIgNS43NjUzOEMxMC44NDQ5IDUuNjA4MTUgMTAuNTkzOCA1LjM3OTM4IDEwLjQwOTkgNS4xTDkuNTk5ODggMy45QzkuNDE3NzcgMy42MjM0NyA5LjE2OTg1IDMuMzk2NDggOC44NzgzOCAzLjIzOTRDOC41ODY5IDMuMDgyMzEgOC4yNjA5OSAzLjAwMDA1IDcuOTI5ODggM0gzLjk5OTg4QzMuNDY5NDQgMyAyLjk2MDc0IDMuMjEwNzEgMi41ODU2NiAzLjU4NTc5QzIuMjEwNTkgMy45NjA4NiAxLjk5OTg4IDQuNDY5NTcgMS45OTk4OCA1VjE4QzEuOTk5ODggMTguNTMwNCAyLjIxMDU5IDE5LjAzOTEgMi41ODU2NiAxOS40MTQyQzIuOTYwNzQgMTkuNzg5MyAzLjQ2OTQ0IDIwIDMuOTk5ODggMjBIMTkuOTk5OVoiLz4KPHBhdGggZD0iTTExLjc4MzMgMTUuMjE5N1YxOS41TTExLjc4MzMgMTUuMjE5N0wxNi44MzI3IDEyLjI4NjhNMTEuNzgzMyAxNS4yMTk3TDYuNzM0MjUgMTIuMjg2OU02LjczNDI1IDEyLjI4NjlWMTUuNzk2NU02LjczNDI1IDEyLjI4NjlWMTIuMjU2OEw5Ljc1ODg1IDEwLjVNMTYuODMyOCAxNS44MjcyVjEyLjI1NjhMMTMuODA4MyAxMC41Ii8+Cjwvc3ZnPgo=)\n *\n * @param {Object} props - Supabase icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst VectorBucket = createSupabaseIcon(\n 'VectorBucket',\n [\n [\n 'path',\n {\n d: 'M19.9999 20C20.5303 20 21.039 19.7893 21.4141 19.4142C21.7892 19.0391 21.9999 18.5304 21.9999 18V8C21.9999 7.46957 21.7892 6.96086 21.4141 6.58579C21.039 6.21071 20.5303 6 19.9999 6H12.0999C11.7654 6.00328 11.4354 5.92261 11.1402 5.76538C10.8449 5.60815 10.5938 5.37938 10.4099 5.1L9.59988 3.9C9.41777 3.62347 9.16985 3.39648 8.87838 3.2394C8.5869 3.08231 8.26099 3.00005 7.92988 3H3.99988C3.46944 3 2.96074 3.21071 2.58566 3.58579C2.21059 3.96086 1.99988 4.46957 1.99988 5V18C1.99988 18.5304 2.21059 19.0391 2.58566 19.4142C2.96074 19.7893 3.46944 20 3.99988 20H19.9999Z',\n key: '12tuto',\n },\n ],\n [\n 'path',\n {\n d: 'M11.7833 15.2197V19.5M11.7833 15.2197L16.8327 12.2868M11.7833 15.2197L6.73425 12.2869M6.73425 12.2869V15.7965M6.73425 12.2869V12.2568L9.75885 10.5M16.8328 15.8272V12.2568L13.8083 10.5',\n key: 'hnf5b7',\n },\n ],\n ],\n {\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: '1.5',\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n);\n\nexport default VectorBucket;\n", component: React.lazy(() => import('icons/src/icons/vector-bucket')), import: "import { VectorBucket } from 'icons'", - svg: "\n\n\n\n", + svg: "\n\n\n\n", jsx: "import { VectorBucket } from \"icons\"\n \n " } ] \ No newline at end of file diff --git a/packages/icons/package.json b/packages/icons/package.json index 2161e0f4df502..c3b8644ccaaa8 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -3,7 +3,10 @@ "main": "./src/icons/index.ts", "scripts": { "preinstall": "npx only-allow pnpm", - "build:icons": "build-icons --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", + "build:icons": "node ./scripts/validateIcons.mjs && build-icons --templateSrc=./scripts/exportTemplate.mjs --renderUniqueKey --iconFileExtension=.ts --exportFileName=index.ts", + "test": "node --test ./scripts/validateIcons.test.mjs", + "typecheck": "tsc --noEmit", + "validate:icons": "node ./scripts/validateIcons.mjs", "clean": "rimraf .turbo tsconfig.tsbuildinfo" }, "dependencies": { @@ -12,7 +15,8 @@ "@supabase/build-icons": "workspace:*" }, "devDependencies": { - "@types/react": "catalog:" + "@types/react": "catalog:", + "tsconfig": "workspace:*" }, "peerDependencies": { "react": "catalog:" diff --git a/packages/icons/scripts/validateIcons.mjs b/packages/icons/scripts/validateIcons.mjs new file mode 100644 index 0000000000000..a598fb44c13b4 --- /dev/null +++ b/packages/icons/scripts/validateIcons.mjs @@ -0,0 +1,96 @@ +import fs from 'node:fs' +import path from 'node:path' +import { fileURLToPath } from 'node:url' + +const CANONICAL_STROKE_WIDTH = '1.5' +const CHILD_STROKE_ATTRIBUTES = ['stroke', 'stroke-width', 'stroke-linecap', 'stroke-linejoin'] + +const readAttributes = (element) => + Object.fromEntries( + [...element.matchAll(/([\w:-]+)\s*=\s*["']([^"']*)["']/g)].map((match) => [match[1], match[2]]) + ) + +export const validateIconSource = (source, filename = 'icon.svg') => { + const errors = [] + const rootMatch = source.match(/]*>/s) + + if (!rootMatch) return [`${filename}: missing root element`] + + const rootAttributes = readAttributes(rootMatch[0]) + const childElements = source + .slice((rootMatch.index ?? 0) + rootMatch[0].length) + .match(/<(?!\/)[a-z][^>]*>/gi) + const childAttributeViolations = [] + let hasChildInlineStyle = false + + if ('style' in rootAttributes) { + errors.push(`${filename}: inline style attributes are not allowed on the root `) + } + + for (const element of childElements ?? []) { + const attributes = readAttributes(element) + if ('style' in attributes) hasChildInlineStyle = true + for (const attribute of CHILD_STROKE_ATTRIBUTES) { + if (attribute in attributes) childAttributeViolations.push(attribute) + } + } + + if (hasChildInlineStyle) { + errors.push(`${filename}: inline style attributes are not allowed on child elements`) + } + + if (childAttributeViolations.length > 0) { + errors.push( + `${filename}: move shared ${[...new Set(childAttributeViolations)].join( + ', ' + )} attributes to the root ` + ) + } + + if (rootAttributes.stroke === 'none') { + if ('stroke-width' in rootAttributes) { + errors.push(`${filename}: fill-only icons must not declare stroke-width`) + } + return errors + } + + if (rootAttributes.fill !== 'none') { + errors.push(`${filename}: stroke icons must use fill="none" on the root `) + } + if (rootAttributes.stroke !== 'currentColor') { + errors.push( + `${filename}: stroke icons must use stroke="currentColor"; use stroke="none" for fill-only icons` + ) + } + if (rootAttributes['stroke-width'] !== CANONICAL_STROKE_WIDTH) { + errors.push( + `${filename}: stroke icons must use stroke-width="${CANONICAL_STROKE_WIDTH}" on the root ` + ) + } + + return errors +} + +export const validateIconDirectory = (directory) => { + const errors = fs + .readdirSync(directory) + .filter((filename) => filename.endsWith('.svg')) + .sort() + .flatMap((filename) => + validateIconSource(fs.readFileSync(path.join(directory, filename), 'utf8'), filename) + ) + + if (errors.length > 0) { + throw new Error( + `Icon source validation failed:\n${errors.map((error) => `- ${error}`).join('\n')}` + ) + } +} + +const isExecutedDirectly = + process.argv[1] !== undefined && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url) + +if (isExecutedDirectly) { + validateIconDirectory(path.resolve(process.cwd(), 'src/raw-icons')) + console.log('Validated icon sources.') +} diff --git a/packages/icons/scripts/validateIcons.test.mjs b/packages/icons/scripts/validateIcons.test.mjs new file mode 100644 index 0000000000000..ace18ee0dbd22 --- /dev/null +++ b/packages/icons/scripts/validateIcons.test.mjs @@ -0,0 +1,85 @@ +import assert from 'node:assert/strict' +import test from 'node:test' + +import { validateIconSource } from './validateIcons.mjs' + +test('accepts a canonical stroke icon', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source), []) +}) + +test('accepts a fill-only icon', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source), []) +}) + +test('rejects a non-canonical stroke width', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source, 'thin.svg'), [ + 'thin.svg: stroke icons must use stroke-width="1.5" on the root ', + ]) +}) + +test('rejects child-level stroke styling', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source, 'fixed.svg'), [ + 'fixed.svg: move shared stroke, stroke-width attributes to the root ', + ]) +}) + +test('rejects inline styles on the root icon', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source, 'root-style.svg'), [ + 'root-style.svg: inline style attributes are not allowed on the root ', + ]) +}) + +test('rejects inline styles on child elements', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source, 'child-style.svg'), [ + 'child-style.svg: inline style attributes are not allowed on child elements', + ]) +}) + +test('rejects the legacy zero-width fill-only convention', () => { + const source = ` + + + + ` + + assert.deepEqual(validateIconSource(source, 'logo.svg'), [ + 'logo.svg: stroke icons must use fill="none" on the root ', + 'logo.svg: stroke icons must use stroke-width="1.5" on the root ', + ]) +}) diff --git a/packages/icons/src/defaultAttributes.ts b/packages/icons/src/defaultAttributes.ts index e1644175a13d7..c010cf25affbd 100644 --- a/packages/icons/src/defaultAttributes.ts +++ b/packages/icons/src/defaultAttributes.ts @@ -5,7 +5,7 @@ export default { viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', - strokeWidth: 2, + strokeWidth: 1.5, strokeLinecap: 'round', strokeLinejoin: 'round', } diff --git a/packages/icons/src/icons/REST-api.ts b/packages/icons/src/icons/REST-api.ts index b3fb7ba535af3..2ae4d850fb716 100644 --- a/packages/icons/src/icons/REST-api.ts +++ b/packages/icons/src/icons/REST-api.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name RESTApi * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0zLjIwOTQ3IDEyLjEwNTJDMy4yMDk0NyAxMy40NDAzIDMuNTA3MTUgMTQuNzA2IDQuMDM5NzcgMTUuODM5NE0xMS45OTk3IDMuMzE0OTRDMTAuNjM5MSAzLjMxNDk0IDkuMzUwNjYgMy42MjQwOCA4LjIwMDg1IDQuMTc1OTRNMjAuNzg5OSAxMi4xMDUyQzIwLjc4OTkgMTAuNzU2NiAyMC40ODYyIDkuNDc4OTggMTkuOTQzNSA4LjMzNjk0TTExLjk5OTcgMjAuODk1NEMxMy4zNTc2IDIwLjg5NTQgMTQuNjQzNiAyMC41ODc1IDE1Ljc5MTcgMjAuMDM3N00xNS43OTE3IDIwLjAzNzdDMTYuMzMzNCAyMC44MTggMTcuMjM2IDIxLjMyODkgMTguMjU3OCAyMS4zMjg5QzE5LjkxNDcgMjEuMzI4OSAyMS4yNTc4IDE5Ljk4NTcgMjEuMjU3OCAxOC4zMjg5QzIxLjI1NzggMTYuNjcyIDE5LjkxNDcgMTUuMzI4OSAxOC4yNTc4IDE1LjMyODlDMTYuNjAxIDE1LjMyODkgMTUuMjU3OCAxNi42NzIgMTUuMjU3OCAxOC4zMjg5QzE1LjI1NzggMTguOTYzOSAxNS40NTUxIDE5LjU1MjggMTUuNzkxNyAyMC4wMzc3Wk00LjAzOTc3IDE1LjgzOTRDMy4yNDAyMiAxNi4zNzgyIDIuNzE0MzYgMTcuMjkyMSAyLjcxNDM2IDE4LjMyODlDMi43MTQzNiAxOS45ODU3IDQuMDU3NSAyMS4zMjg5IDUuNzE0MzYgMjEuMzI4OUM3LjM3MTIxIDIxLjMyODkgOC43MTQzNiAxOS45ODU3IDguNzE0MzYgMTguMzI4OUM4LjcxNDM2IDE2LjY3MiA3LjM3MTIxIDE1LjMyODkgNS43MTQzNiAxNS4zMjg5QzUuMDk0MjIgMTUuMzI4OSA0LjUxODAzIDE1LjUxNyA0LjAzOTc3IDE1LjgzOTRaTTguMjAwODUgNC4xNzU5NEM3LjY2MTU4IDMuMzc4OSA2Ljc0OTE1IDIuODU0OTggNS43MTQzNiAyLjg1NDk4QzQuMDU3NSAyLjg1NDk4IDIuNzE0MzYgNC4xOTgxMyAyLjcxNDM2IDUuODU0OThDMi43MTQzNiA3LjUxMTgzIDQuMDU3NSA4Ljg1NDk4IDUuNzE0MzYgOC44NTQ5OEM3LjM3MTIxIDguODU0OTggOC43MTQzNiA3LjUxMTgzIDguNzE0MzYgNS44NTQ5OEM4LjcxNDM2IDUuMjMyOTIgOC41MjUwMyA0LjY1NTA4IDguMjAwODUgNC4xNzU5NFpNMTkuOTQzNSA4LjMzNjk0QzIwLjczNjggNy43OTcwOSAyMS4yNTc4IDYuODg2ODggMjEuMjU3OCA1Ljg1NDk4QzIxLjI1NzggNC4xOTgxMyAxOS45MTQ3IDIuODU0OTggMTguMjU3OCAyLjg1NDk4QzE2LjYwMSAyLjg1NDk4IDE1LjI1NzggNC4xOTgxMyAxNS4yNTc4IDUuODU0OThDMTUuMjU3OCA3LjUxMTgzIDE2LjYwMSA4Ljg1NDk4IDE4LjI1NzggOC44NTQ5OEMxOC44ODI4IDguODU0OTggMTkuNDYzMSA4LjY2Mzg4IDE5Ljk0MzUgOC4zMzY5NFoiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTMuMjA5NDcgMTIuMTA1MkMzLjIwOTQ3IDEzLjQ0MDMgMy41MDcxNSAxNC43MDYgNC4wMzk3NyAxNS44Mzk0TTExLjk5OTcgMy4zMTQ5NEMxMC42MzkxIDMuMzE0OTQgOS4zNTA2NiAzLjYyNDA4IDguMjAwODUgNC4xNzU5NE0yMC43ODk5IDEyLjEwNTJDMjAuNzg5OSAxMC43NTY2IDIwLjQ4NjIgOS40Nzg5OCAxOS45NDM1IDguMzM2OTRNMTEuOTk5NyAyMC44OTU0QzEzLjM1NzYgMjAuODk1NCAxNC42NDM2IDIwLjU4NzUgMTUuNzkxNyAyMC4wMzc3TTE1Ljc5MTcgMjAuMDM3N0MxNi4zMzM0IDIwLjgxOCAxNy4yMzYgMjEuMzI4OSAxOC4yNTc4IDIxLjMyODlDMTkuOTE0NyAyMS4zMjg5IDIxLjI1NzggMTkuOTg1NyAyMS4yNTc4IDE4LjMyODlDMjEuMjU3OCAxNi42NzIgMTkuOTE0NyAxNS4zMjg5IDE4LjI1NzggMTUuMzI4OUMxNi42MDEgMTUuMzI4OSAxNS4yNTc4IDE2LjY3MiAxNS4yNTc4IDE4LjMyODlDMTUuMjU3OCAxOC45NjM5IDE1LjQ1NTEgMTkuNTUyOCAxNS43OTE3IDIwLjAzNzdaTTQuMDM5NzcgMTUuODM5NEMzLjI0MDIyIDE2LjM3ODIgMi43MTQzNiAxNy4yOTIxIDIuNzE0MzYgMTguMzI4OUMyLjcxNDM2IDE5Ljk4NTcgNC4wNTc1IDIxLjMyODkgNS43MTQzNiAyMS4zMjg5QzcuMzcxMjEgMjEuMzI4OSA4LjcxNDM2IDE5Ljk4NTcgOC43MTQzNiAxOC4zMjg5QzguNzE0MzYgMTYuNjcyIDcuMzcxMjEgMTUuMzI4OSA1LjcxNDM2IDE1LjMyODlDNS4wOTQyMiAxNS4zMjg5IDQuNTE4MDMgMTUuNTE3IDQuMDM5NzcgMTUuODM5NFpNOC4yMDA4NSA0LjE3NTk0QzcuNjYxNTggMy4zNzg5IDYuNzQ5MTUgMi44NTQ5OCA1LjcxNDM2IDIuODU0OThDNC4wNTc1IDIuODU0OTggMi43MTQzNiA0LjE5ODEzIDIuNzE0MzYgNS44NTQ5OEMyLjcxNDM2IDcuNTExODMgNC4wNTc1IDguODU0OTggNS43MTQzNiA4Ljg1NDk4QzcuMzcxMjEgOC44NTQ5OCA4LjcxNDM2IDcuNTExODMgOC43MTQzNiA1Ljg1NDk4QzguNzE0MzYgNS4yMzI5MiA4LjUyNTAzIDQuNjU1MDggOC4yMDA4NSA0LjE3NTk0Wk0xOS45NDM1IDguMzM2OTRDMjAuNzM2OCA3Ljc5NzA5IDIxLjI1NzggNi44ODY4OCAyMS4yNTc4IDUuODU0OThDMjEuMjU3OCA0LjE5ODEzIDE5LjkxNDcgMi44NTQ5OCAxOC4yNTc4IDIuODU0OThDMTYuNjAxIDIuODU0OTggMTUuMjU3OCA0LjE5ODEzIDE1LjI1NzggNS44NTQ5OEMxNS4yNTc4IDcuNTExODMgMTYuNjAxIDguODU0OTggMTguMjU3OCA4Ljg1NDk4QzE4Ljg4MjggOC44NTQ5OCAxOS40NjMxIDguNjYzODggMTkuOTQzNSA4LjMzNjk0WiIgLz4KPC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const RESTApi = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default RESTApi; diff --git a/packages/icons/src/icons/_example-template.ts b/packages/icons/src/icons/_example-template.ts index e4c5a0489da0f..98087fad54ab8 100644 --- a/packages/icons/src/icons/_example-template.ts +++ b/packages/icons/src/icons/_example-template.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name ExampleTemplate * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMy41IDEzaDYiIC8+CiAgPHBhdGggZD0ibTIgMTYgNC41LTkgNC41IDkiIC8+CiAgPHBhdGggZD0iTTE4IDd2OSIgLz4KICA8cGF0aCBkPSJtMTQgMTIgNCA0IDQtNCIgLz4KPC9zdmc+) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjEuNSIKICBzdHJva2UtbGluZWNhcD0icm91bmQiCiAgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIKPgogIDxwYXRoIGQ9Ik0zLjUgMTNoNiIgLz4KICA8cGF0aCBkPSJtMiAxNiA0LjUtOSA0LjUgOSIgLz4KICA8cGF0aCBkPSJNMTggN3Y5IiAvPgogIDxwYXRoIGQ9Im0xNCAxMiA0IDQgNC00IiAvPgo8L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const ExampleTemplate = createSupabaseIcon( { fill: 'none', stroke: 'currentColor', - strokeWidth: '2', + strokeWidth: '1.5', strokeLinecap: 'round', strokeLinejoin: 'round', }, diff --git a/packages/icons/src/icons/analytics-bucket.ts b/packages/icons/src/icons/analytics-bucket.ts index a5997c9e55dc8..d1371a8330577 100644 --- a/packages/icons/src/icons/analytics-bucket.ts +++ b/packages/icons/src/icons/analytics-bucket.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name AnalyticsBucket * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAgMjBDMjAuNTMwNCAyMCAyMS4wMzkxIDE5Ljc4OTMgMjEuNDE0MiAxOS40MTQyQzIxLjc4OTMgMTkuMDM5MSAyMiAxOC41MzA0IDIyIDE4VjhDMjIgNy40Njk1NyAyMS43ODkzIDYuOTYwODYgMjEuNDE0MiA2LjU4NTc5QzIxLjAzOTEgNi4yMTA3MSAyMC41MzA0IDYgMjAgNkgxMi4xQzExLjc2NTUgNi4wMDMyOCAxMS40MzU1IDUuOTIyNjEgMTEuMTQwMyA1Ljc2NTM4QzEwLjg0NTEgNS42MDgxNSAxMC41OTQgNS4zNzkzOCAxMC40MSA1LjFMOS42IDMuOUM5LjQxNzg5IDMuNjIzNDcgOS4xNjk5NyAzLjM5NjQ4IDguODc4NSAzLjIzOTRDOC41ODcwMiAzLjA4MjMxIDguMjYxMTEgMy4wMDAwNSA3LjkzIDNINEMzLjQ2OTU3IDMgMi45NjA4NiAzLjIxMDcxIDIuNTg1NzkgMy41ODU3OUMyLjIxMDcxIDMuOTYwODYgMiA0LjQ2OTU3IDIgNVYxOEMyIDE4LjUzMDQgMi4yMTA3MSAxOS4wMzkxIDIuNTg1NzkgMTkuNDE0MkMyLjk2MDg2IDE5Ljc4OTMgMy40Njk1NyAyMCA0IDIwSDIwWiIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik03LjUgOVYxNiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEwLjUgMTIuNUwxMC41IDE2IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTMuNSAxNC41TDEzLjUgMTYiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xNi41IDExVjE2IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMCAyMEMyMC41MzA0IDIwIDIxLjAzOTEgMTkuNzg5MyAyMS40MTQyIDE5LjQxNDJDMjEuNzg5MyAxOS4wMzkxIDIyIDE4LjUzMDQgMjIgMThWOEMyMiA3LjQ2OTU3IDIxLjc4OTMgNi45NjA4NiAyMS40MTQyIDYuNTg1NzlDMjEuMDM5MSA2LjIxMDcxIDIwLjUzMDQgNiAyMCA2SDEyLjFDMTEuNzY1NSA2LjAwMzI4IDExLjQzNTUgNS45MjI2MSAxMS4xNDAzIDUuNzY1MzhDMTAuODQ1MSA1LjYwODE1IDEwLjU5NCA1LjM3OTM4IDEwLjQxIDUuMUw5LjYgMy45QzkuNDE3ODkgMy42MjM0NyA5LjE2OTk3IDMuMzk2NDggOC44Nzg1IDMuMjM5NEM4LjU4NzAyIDMuMDgyMzEgOC4yNjExMSAzLjAwMDA1IDcuOTMgM0g0QzMuNDY5NTcgMyAyLjk2MDg2IDMuMjEwNzEgMi41ODU3OSAzLjU4NTc5QzIuMjEwNzEgMy45NjA4NiAyIDQuNDY5NTcgMiA1VjE4QzIgMTguNTMwNCAyLjIxMDcxIDE5LjAzOTEgMi41ODU3OSAxOS40MTQyQzIuOTYwODYgMTkuNzg5MyAzLjQ2OTU3IDIwIDQgMjBIMjBaIi8+CjxwYXRoIGQ9Ik03LjUgOVYxNiIvPgo8cGF0aCBkPSJNMTAuNSAxMi41TDEwLjUgMTYiLz4KPHBhdGggZD0iTTEzLjUgMTQuNUwxMy41IDE2Ii8+CjxwYXRoIGQ9Ik0xNi41IDExVjE2Ii8+Cjwvc3ZnPgo=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -17,59 +17,21 @@ const AnalyticsBucket = createSupabaseIcon( 'path', { d: 'M20 20C20.5304 20 21.0391 19.7893 21.4142 19.4142C21.7893 19.0391 22 18.5304 22 18V8C22 7.46957 21.7893 6.96086 21.4142 6.58579C21.0391 6.21071 20.5304 6 20 6H12.1C11.7655 6.00328 11.4355 5.92261 11.1403 5.76538C10.8451 5.60815 10.594 5.37938 10.41 5.1L9.6 3.9C9.41789 3.62347 9.16997 3.39648 8.8785 3.2394C8.58702 3.08231 8.26111 3.00005 7.93 3H4C3.46957 3 2.96086 3.21071 2.58579 3.58579C2.21071 3.96086 2 4.46957 2 5V18C2 18.5304 2.21071 19.0391 2.58579 19.4142C2.96086 19.7893 3.46957 20 4 20H20Z', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1adjqd', - }, - ], - [ - 'path', - { - d: 'M7.5 9V16', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'yv1rsm', - }, - ], - [ - 'path', - { - d: 'M10.5 12.5L10.5 16', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '11wax4', - }, - ], - [ - 'path', - { - d: 'M13.5 14.5L13.5 16', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'qiuup3', - }, - ], - [ - 'path', - { - d: 'M16.5 11V16', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'gku61r', + key: '1fllth', }, ], + ['path', { d: 'M7.5 9V16', key: '1muhf2' }], + ['path', { d: 'M10.5 12.5L10.5 16', key: '19mfck' }], + ['path', { d: 'M13.5 14.5L13.5 16', key: '10gg8b' }], + ['path', { d: 'M16.5 11V16', key: 'gfrkai' }], ], - { fill: 'none' }, + { + fill: 'none', + stroke: 'currentColor', + strokeWidth: '1.5', + strokeLinecap: 'round', + strokeLinejoin: 'round', + }, ); export default AnalyticsBucket; diff --git a/packages/icons/src/icons/api-docs.ts b/packages/icons/src/icons/api-docs.ts index 68000d6395ecb..221da0c505d49 100644 --- a/packages/icons/src/icons/api-docs.ts +++ b/packages/icons/src/icons/api-docs.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name ApiDocs * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03LjQ0NDM0IDE0LjMzNDdIMTYuNDQ0M003LjQ0NDM0IDExLjMzNDdIMTYuNDQ0M003LjQ0NDM0IDE3LjMzNDdIMTMuNDQ0M00xOS40OTk0IDguNTA3MTRWMTkuMTA1MkMxOS40OTk0IDIwLjIwOTcgMTguNjAzOSAyMS4xMDUyIDE3LjQ5OTQgMjEuMTA1Mkg2LjVDNS4zOTU0MyAyMS4xMDUyIDQuNSAyMC4yMDk3IDQuNSAxOS4xMDUyVjUuMTA1OTZDNC41IDQuMDAxMzkgNS4zOTU0MyAzLjEwNTk2IDYuNSAzLjEwNTk2SDE0LjA3MjNMMTkuNDk5NCA4LjUwNzE0Wk0xOS40NDY1IDguNDgxOTNMMTQuMDcwNCAzLjEwNTk2TDE0LjA3MDEgNy40ODE4NkMxNC4wNzAxIDguMDM0MTggMTQuNTE3OCA4LjQ4MTkzIDE1LjA3MDEgOC40ODE5M0wxOS40NDY1IDguNDgxOTNaIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTcuNDQ0MzQgMTQuMzM0N0gxNi40NDQzTTcuNDQ0MzQgMTEuMzM0N0gxNi40NDQzTTcuNDQ0MzQgMTcuMzM0N0gxMy40NDQzTTE5LjQ5OTQgOC41MDcxNFYxOS4xMDUyQzE5LjQ5OTQgMjAuMjA5NyAxOC42MDM5IDIxLjEwNTIgMTcuNDk5NCAyMS4xMDUySDYuNUM1LjM5NTQzIDIxLjEwNTIgNC41IDIwLjIwOTcgNC41IDE5LjEwNTJWNS4xMDU5NkM0LjUgNC4wMDEzOSA1LjM5NTQzIDMuMTA1OTYgNi41IDMuMTA1OTZIMTQuMDcyM0wxOS40OTk0IDguNTA3MTRaTTE5LjQ0NjUgOC40ODE5M0wxNC4wNzA0IDMuMTA1OTZMMTQuMDcwMSA3LjQ4MTg2QzE0LjA3MDEgOC4wMzQxOCAxNC41MTc4IDguNDgxOTMgMTUuMDcwMSA4LjQ4MTkzTDE5LjQ0NjUgOC40ODE5M1oiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const ApiDocs = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default ApiDocs; diff --git a/packages/icons/src/icons/auth.ts b/packages/icons/src/icons/auth.ts index 52b90e8e10c4f..0db5f04f2711a 100644 --- a/packages/icons/src/icons/auth.ts +++ b/packages/icons/src/icons/auth.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Auth * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik01LjI0MTIxIDE1LjA2NzRIMTIuNzQxMk01LjI0MTIxIDE1LjA2NzRWMTguMDY3NEgxMi43NDEyVjE1LjA2NzRNNS4yNDEyMSAxNS4wNjc0VjEyLjA2NzRIMTIuNzQxMlYxNS4wNjc0TTE1IDcuNjA1NDdWNC42MDU0N0MxNSAyLjk0ODYxIDEzLjY1NjkgMS42MDU0NyAxMiAxLjYwNTQ3QzEwLjM0MzEgMS42MDU0NyA5IDIuOTQ4NjEgOSA0LjYwNTQ3VjcuNjA1NDdNNS4yMDg5OCA5LjYwNTQ3TDUuMjA4OTggMTkuMTA1NUM1LjIwODk4IDIwLjIxIDYuMTA0NDEgMjEuMTA1NSA3LjIwODk4IDIxLjEwNTVIMTYuNzA5QzE3LjgxMzYgMjEuMTA1NSAxOC43MDkgMjAuMjEgMTguNzA5IDE5LjEwNTVWOS42MDU0N0MxOC43MDkgOC41MDA5IDE3LjgxMzYgNy42MDU0NyAxNi43MDkgNy42MDU0N0w3LjIwODk5IDcuNjA1NDdDNi4xMDQ0MiA3LjYwNTQ3IDUuMjA4OTggOC41MDA5IDUuMjA4OTggOS42MDU0N1oiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTUuMjQxMjEgMTUuMDY3NEgxMi43NDEyTTUuMjQxMjEgMTUuMDY3NFYxOC4wNjc0SDEyLjc0MTJWMTUuMDY3NE01LjI0MTIxIDE1LjA2NzRWMTIuMDY3NEgxMi43NDEyVjE1LjA2NzRNMTUgNy42MDU0N1Y0LjYwNTQ3QzE1IDIuOTQ4NjEgMTMuNjU2OSAxLjYwNTQ3IDEyIDEuNjA1NDdDMTAuMzQzMSAxLjYwNTQ3IDkgMi45NDg2MSA5IDQuNjA1NDdWNy42MDU0N001LjIwODk4IDkuNjA1NDdMNS4yMDg5OCAxOS4xMDU1QzUuMjA4OTggMjAuMjEgNi4xMDQ0MSAyMS4xMDU1IDcuMjA4OTggMjEuMTA1NUgxNi43MDlDMTcuODEzNiAyMS4xMDU1IDE4LjcwOSAyMC4yMSAxOC43MDkgMTkuMTA1NVY5LjYwNTQ3QzE4LjcwOSA4LjUwMDkgMTcuODEzNiA3LjYwNTQ3IDE2LjcwOSA3LjYwNTQ3TDcuMjA4OTkgNy42MDU0N0M2LjEwNDQyIDcuNjA1NDcgNS4yMDg5OCA4LjUwMDkgNS4yMDg5OCA5LjYwNTQ3WiIgLz4KPC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Auth = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Auth; diff --git a/packages/icons/src/icons/big-query.ts b/packages/icons/src/icons/big-query.ts index 48f734a3ea3ec..d91aa70ef4c6b 100644 --- a/packages/icons/src/icons/big-query.ts +++ b/packages/icons/src/icons/big-query.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name BigQuery * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNy40ODk4MSAxNy44OThMNy40ODk4MSA5LjY1MzA4TTEwLjgzNjggMTguNzU1MkwxMC44MzY4IDcuNTMwNjNNMTQuMTgzNyAxOC4wMjA1VjEyLjAyMDRNMjEgMjEuMDgxN0wxNi40Mjg2IDE2LjUxMDNNMTguNzU1MiAxMC44Nzc2QzE4Ljc1NTIgMTUuMjI4MiAxNS4yMjgyIDE4Ljc1NTIgMTAuODc3NiAxOC43NTUyQzYuNTI2OTEgMTguNzU1MiAzIDE1LjIyODIgMyAxMC44Nzc2QzMgNi41MjY5MSA2LjUyNjkxIDMgMTAuODc3NiAzQzE1LjIyODIgMyAxOC43NTUyIDYuNTI2OTEgMTguNzU1MiAxMC44Nzc2WiIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjAuOTc1Mjk5IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjQ4OTgxIDE3Ljg5OEw3LjQ4OTgxIDkuNjUzMDhNMTAuODM2OCAxOC43NTUyTDEwLjgzNjggNy41MzA2M00xNC4xODM3IDE4LjAyMDVWMTIuMDIwNE0yMSAyMS4wODE3TDE2LjQyODYgMTYuNTEwM00xOC43NTUyIDEwLjg3NzZDMTguNzU1MiAxNS4yMjgyIDE1LjIyODIgMTguNzU1MiAxMC44Nzc2IDE4Ljc1NTJDNi41MjY5MSAxOC43NTUyIDMgMTUuMjI4MiAzIDEwLjg3NzZDMyA2LjUyNjkxIDYuNTI2OTEgMyAxMC44Nzc2IDNDMTUuMjI4MiAzIDE4Ljc1NTIgNi41MjY5MSAxOC43NTUyIDEwLjg3NzZaIi8+Cjwvc3ZnPgo=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -17,14 +17,11 @@ const BigQuery = createSupabaseIcon( 'path', { d: 'M7.48981 17.898L7.48981 9.65308M10.8368 18.7552L10.8368 7.53063M14.1837 18.0205V12.0204M21 21.0817L16.4286 16.5103M18.7552 10.8776C18.7552 15.2282 15.2282 18.7552 10.8776 18.7552C6.52691 18.7552 3 15.2282 3 10.8776C3 6.52691 6.52691 3 10.8776 3C15.2282 3 18.7552 6.52691 18.7552 10.8776Z', - stroke: 'currentColor', - 'stroke-width': '0.975299', - 'stroke-linecap': 'round', - key: '1oqls8', + key: 'odzl1c', }, ], ], - { fill: 'none' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5', strokeLinecap: 'round' }, ); export default BigQuery; diff --git a/packages/icons/src/icons/box-plus.ts b/packages/icons/src/icons/box-plus.ts index f6d090ace3a8e..bd5dc74c3a14d 100644 --- a/packages/icons/src/icons/box-plus.ts +++ b/packages/icons/src/icons/box-plus.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name BoxPlus * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMjAuNzMxNSA3LjAwMTE5QzIwLjU1NiA2LjY5NzU0IDIwLjMwMzcgNi40NDUzOSAyMCA2LjI3MDAyTDEzIDIuMjcwMDJDMTIuNjk2IDIuMDk0NDkgMTIuMzUxMSAyLjAwMjA4IDEyIDIuMDAyMDhDMTEuNjQ4OSAyLjAwMjA4IDExLjMwNCAyLjA5NDQ5IDExIDIuMjcwMDJMNCA2LjI3MDAyQzMuNjk2MjYgNi40NDUzOSAzLjQ0Mzk4IDYuNjk3NTQgMy4yNjg0NiA3LjAwMTE5QzMuMDkyOTQgNy4zMDQ4MyAzLjAwMDM2IDcuNjQ5MyAzIDguMDAwMDJWMTZDMy4wMDAzNiAxNi4zNTA4IDMuMDkyOTQgMTYuNjk1MiAzLjI2ODQ2IDE2Ljk5ODlDMy40NDM5OCAxNy4zMDI1IDMuNjk2MjYgMTcuNTU0NyA0IDE3LjczTDExIDIxLjczQzExLjMwNCAyMS45MDU2IDExLjY0ODkgMjEuOTk4IDEyIDIxLjk5OCIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0zLjMgN0wxMiAxMkwyMC43IDciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMiAyMlYxMiIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE5IDE0VjIwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTYgMTdIMjIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0yMC43MzE1IDcuMDAxMTlDMjAuNTU2IDYuNjk3NTQgMjAuMzAzNyA2LjQ0NTM5IDIwIDYuMjcwMDJMMTMgMi4yNzAwMkMxMi42OTYgMi4wOTQ0OSAxMi4zNTExIDIuMDAyMDggMTIgMi4wMDIwOEMxMS42NDg5IDIuMDAyMDggMTEuMzA0IDIuMDk0NDkgMTEgMi4yNzAwMkw0IDYuMjcwMDJDMy42OTYyNiA2LjQ0NTM5IDMuNDQzOTggNi42OTc1NCAzLjI2ODQ2IDcuMDAxMTlDMy4wOTI5NCA3LjMwNDgzIDMuMDAwMzYgNy42NDkzIDMgOC4wMDAwMlYxNkMzLjAwMDM2IDE2LjM1MDggMy4wOTI5NCAxNi42OTUyIDMuMjY4NDYgMTYuOTk4OUMzLjQ0Mzk4IDE3LjMwMjUgMy42OTYyNiAxNy41NTQ3IDQgMTcuNzNMMTEgMjEuNzNDMTEuMzA0IDIxLjkwNTYgMTEuNjQ4OSAyMS45OTggMTIgMjEuOTk4Ii8+CjxwYXRoIGQ9Ik0zLjMgN0wxMiAxMkwyMC43IDciLz4KPHBhdGggZD0iTTEyIDIyVjEyIi8+CjxwYXRoIGQ9Ik0xOSAxNFYyMCIvPgo8cGF0aCBkPSJNMTYgMTdIMjIiLz4KPC9zdmc+Cg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -17,59 +17,21 @@ const BoxPlus = createSupabaseIcon( 'path', { d: 'M20.7315 7.00119C20.556 6.69754 20.3037 6.44539 20 6.27002L13 2.27002C12.696 2.09449 12.3511 2.00208 12 2.00208C11.6489 2.00208 11.304 2.09449 11 2.27002L4 6.27002C3.69626 6.44539 3.44398 6.69754 3.26846 7.00119C3.09294 7.30483 3.00036 7.6493 3 8.00002V16C3.00036 16.3508 3.09294 16.6952 3.26846 16.9989C3.44398 17.3025 3.69626 17.5547 4 17.73L11 21.73C11.304 21.9056 11.6489 21.998 12 21.998', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1g22fp', - }, - ], - [ - 'path', - { - d: 'M3.3 7L12 12L20.7 7', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1v4gtz', - }, - ], - [ - 'path', - { - d: 'M12 22V12', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'hoijqc', - }, - ], - [ - 'path', - { - d: 'M19 14V20', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '7ts4zv', - }, - ], - [ - 'path', - { - d: 'M16 17H22', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'ir88vv', + key: 'nj2e2u', }, ], + ['path', { d: 'M3.3 7L12 12L20.7 7', key: 'kvxu76' }], + ['path', { d: 'M12 22V12', key: 'd0xqtd' }], + ['path', { d: 'M19 14V20', key: '1dhl6z' }], + ['path', { d: 'M16 17H22', key: '3xswwu' }], ], - { fill: 'none' }, + { + fill: 'none', + stroke: 'currentColor', + strokeWidth: '1.5', + strokeLinecap: 'round', + strokeLinejoin: 'round', + }, ); export default BoxPlus; diff --git a/packages/icons/src/icons/bucket-plus.ts b/packages/icons/src/icons/bucket-plus.ts index 1af13618eecd5..9b1011daff984 100644 --- a/packages/icons/src/icons/bucket-plus.ts +++ b/packages/icons/src/icons/bucket-plus.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name BucketPlus * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkgMTNWMTkiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTYgMTZIMjIiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik0xMy41IDIwSDRDMy40Njk1NyAyMCAyLjk2MDg2IDE5Ljc4OTMgMi41ODU3OSAxOS40MTQyQzIuMjEwNzEgMTkuMDM5MSAyIDE4LjUzMDQgMiAxOFY1QzIgNC40Njk1NyAyLjIxMDcxIDMuOTYwODYgMi41ODU3OSAzLjU4NTc5QzIuOTYwODYgMy4yMTA3MSAzLjQ2OTU3IDMgNCAzSDcuOTNDOC4yNjExMSAzLjAwMDA1IDguNTg3MDIgMy4wODIzMSA4Ljg3ODUgMy4yMzk0QzkuMTY5OTcgMy4zOTY0OCA5LjQxNzg5IDMuNjIzNDcgOS42IDMuOUwxMC40MSA1LjFDMTAuNTk0IDUuMzc5MzggMTAuODQ1MSA1LjYwODE1IDExLjE0MDMgNS43NjUzOEMxMS40MzU1IDUuOTIyNjEgMTEuNzY1NSA2LjAwMzI4IDEyLjEgNkgyMEMyMC41MzA0IDYgMjEuMDM5MSA2LjIxMDcxIDIxLjQxNDIgNi41ODU3OUMyMS43ODkzIDYuOTYwODYgMjIgNy40Njk1NyAyMiA4VjEwIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xOSAxM1YxOSIvPgo8cGF0aCBkPSJNMTYgMTZIMjIiLz4KPHBhdGggZD0iTTEzLjUgMjBINEMzLjQ2OTU3IDIwIDIuOTYwODYgMTkuNzg5MyAyLjU4NTc5IDE5LjQxNDJDMi4yMTA3MSAxOS4wMzkxIDIgMTguNTMwNCAyIDE4VjVDMiA0LjQ2OTU3IDIuMjEwNzEgMy45NjA4NiAyLjU4NTc5IDMuNTg1NzlDMi45NjA4NiAzLjIxMDcxIDMuNDY5NTcgMyA0IDNINy45M0M4LjI2MTExIDMuMDAwMDUgOC41ODcwMiAzLjA4MjMxIDguODc4NSAzLjIzOTRDOS4xNjk5NyAzLjM5NjQ4IDkuNDE3ODkgMy42MjM0NyA5LjYgMy45TDEwLjQxIDUuMUMxMC41OTQgNS4zNzkzOCAxMC44NDUxIDUuNjA4MTUgMTEuMTQwMyA1Ljc2NTM4QzExLjQzNTUgNS45MjI2MSAxMS43NjU1IDYuMDAzMjggMTIuMSA2SDIwQzIwLjUzMDQgNiAyMS4wMzkxIDYuMjEwNzEgMjEuNDE0MiA2LjU4NTc5QzIxLjc4OTMgNi45NjA4NiAyMiA3LjQ2OTU3IDIyIDhWMTAiLz4KPC9zdmc+Cg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -13,41 +13,23 @@ import createSupabaseIcon from '../createSupabaseIcon'; const BucketPlus = createSupabaseIcon( 'BucketPlus', [ - [ - 'path', - { - d: 'M19 13V19', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '397kp2', - }, - ], - [ - 'path', - { - d: 'M16 16H22', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1v5ktu', - }, - ], + ['path', { d: 'M19 13V19', key: '1ewk5i' }], + ['path', { d: 'M16 16H22', key: 'qkkdxb' }], [ 'path', { d: 'M13.5 20H4C3.46957 20 2.96086 19.7893 2.58579 19.4142C2.21071 19.0391 2 18.5304 2 18V5C2 4.46957 2.21071 3.96086 2.58579 3.58579C2.96086 3.21071 3.46957 3 4 3H7.93C8.26111 3.00005 8.58702 3.08231 8.8785 3.2394C9.16997 3.39648 9.41789 3.62347 9.6 3.9L10.41 5.1C10.594 5.37938 10.8451 5.60815 11.1403 5.76538C11.4355 5.92261 11.7655 6.00328 12.1 6H20C20.5304 6 21.0391 6.21071 21.4142 6.58579C21.7893 6.96086 22 7.46957 22 8V10', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'myaap2', + key: 'zt8kw3', }, ], ], - { fill: 'none' }, + { + fill: 'none', + stroke: 'currentColor', + strokeWidth: '1.5', + strokeLinecap: 'round', + strokeLinejoin: 'round', + }, ); export default BucketPlus; diff --git a/packages/icons/src/icons/click-house.ts b/packages/icons/src/icons/click-house.ts index 915d36908832b..0a10daf0743da 100644 --- a/packages/icons/src/icons/click-house.ts +++ b/packages/icons/src/icons/click-house.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name ClickHouse * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMyAzVjIxTTcuNSAzVjIxTTEyIDNWMjFNMTYuNSAzVjIxTTIxIDEwVjE0IiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz4KPC9zdmc+Cg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zIDNWMjFNNy41IDNWMjFNMTIgM1YyMU0xNi41IDNWMjFNMjEgMTBWMTQiLz4KPC9zdmc+Cg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -12,19 +12,8 @@ import createSupabaseIcon from '../createSupabaseIcon'; */ const ClickHouse = createSupabaseIcon( 'ClickHouse', - [ - [ - 'path', - { - d: 'M3 3V21M7.5 3V21M12 3V21M16.5 3V21M21 10V14', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - key: '1ho44o', - }, - ], - ], - { fill: 'none' }, + [['path', { d: 'M3 3V21M7.5 3V21M12 3V21M16.5 3V21M21 10V14', key: 'tw32au' }]], + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5', strokeLinecap: 'round' }, ); export default ClickHouse; diff --git a/packages/icons/src/icons/database.ts b/packages/icons/src/icons/database.ts index e464e5474276a..0b984decfa9d0 100644 --- a/packages/icons/src/icons/database.ts +++ b/packages/icons/src/icons/database.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Database * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aCBkPSIgTTUuNTY3NzQgOS43MDY0MkgxOC40NTQ3VjE1LjcwNjRINS41Njc3NFY5LjcwNjQyWiIgLz4KICAgIDxwYXRoIGQ9IiBNNC41IDE2LjcwOTRDNC41IDE2LjE1NzEgNC45NDc3MiAxNS43MDk0IDUuNSAxNS43MDk0SDE4LjVDMTkuMDUyMyAxNS43MDk0IDE5LjUgMTYuMTU3MSAxOS41CiAgICAgICAgMTYuNzA5NFYyMC43MDk0QzE5LjUgMjEuMjYxNiAxOS4wNTIzIDIxLjcwOTQgMTguNSAyMS43MDk0SDUuNUM0Ljk0NzcyIDIxLjcwOTQgNC41IDIxLjI2MTYgNC41CiAgICAgICAgMjAuNzA5NFYxNi43MDk0WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTQuNSA0LjcwNjc5QzQuNSA0LjE1NDUgNC45NDc3MiAzLjcwNjc5IDUuNSAzLjcwNjc5SDE4LjVDMTkuMDUyMyAzLjcwNjc5IDE5LjUgNC4xNTQ1IDE5LjUgNC43MDY3OVY4LjcwNjc5QzE5LjUgOS4yNTkwNyAxOS4wNTIzIDkuNzA2NzkgMTguNSA5LjcwNjc5SDUuNUM0Ljk0NzcyIDkuNzA2NzkgNC41IDkuMjU5MDcgNC41IDguNzA2NzlWNC43MDY3OVoiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoIGQ9IiBNNS41Njc3NCA5LjcwNjQySDE4LjQ1NDdWMTUuNzA2NEg1LjU2Nzc0VjkuNzA2NDJaIiAvPgogICAgPHBhdGggZD0iIE00LjUgMTYuNzA5NEM0LjUgMTYuMTU3MSA0Ljk0NzcyIDE1LjcwOTQgNS41IDE1LjcwOTRIMTguNUMxOS4wNTIzIDE1LjcwOTQgMTkuNSAxNi4xNTcxIDE5LjUKICAgICAgICAxNi43MDk0VjIwLjcwOTRDMTkuNSAyMS4yNjE2IDE5LjA1MjMgMjEuNzA5NCAxOC41IDIxLjcwOTRINS41QzQuOTQ3NzIgMjEuNzA5NCA0LjUgMjEuMjYxNiA0LjUKICAgICAgICAyMC43MDk0VjE2LjcwOTRaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNNC41IDQuNzA2NzlDNC41IDQuMTU0NSA0Ljk0NzcyIDMuNzA2NzkgNS41IDMuNzA2NzlIMTguNUMxOS4wNTIzIDMuNzA2NzkgMTkuNSA0LjE1NDUgMTkuNSA0LjcwNjc5VjguNzA2NzlDMTkuNSA5LjI1OTA3IDE5LjA1MjMgOS43MDY3OSAxOC41IDkuNzA2NzlINS41QzQuOTQ3NzIgOS43MDY3OSA0LjUgOS4yNTkwNyA0LjUgOC43MDY3OVY0LjcwNjc5WiIgLz4KPC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -29,7 +29,7 @@ const Database = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Database; diff --git a/packages/icons/src/icons/datadog.ts b/packages/icons/src/icons/datadog.ts index 9d92c264c56c5..48422d34e10e0 100644 --- a/packages/icons/src/icons/datadog.ts +++ b/packages/icons/src/icons/datadog.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Datadog * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIwIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xOS41NyAxNy4wNGwtMS45OTctMS4zMTYtMS42NjUgMi43ODItMS45MzctLjU2Ny0xLjcwNiAyLjYwNC4wODcuODIgOS4yNzQtMS43MS0uNTM4LTUuNzk0em0tOC42NDktMi40OThsMS40ODgtLjIwNGMuMjQxLjEwOC40MDkuMTUuNjk3LjIyMy40NS4xMTcuOTcuMjMgMS43NDEtLjE2LjE4LS4wODguNTUzLS40My43MDQtLjYyNWw2LjA5Ni0xLjEwNi42MjIgNy41MjctMTAuNDQ0IDEuODgyem0xMS4zMjUtMi43MTJsLS42MDIuMTE1TDIwLjQ4OCAwIC43ODkgMi4yODVsMi40MjcgMTkuNjkzIDIuMzA2LS4zMzRjLS4xODQtLjI2My0uNDcxLS41ODEtLjk2LS45ODktLjY4LS41NjQtLjQ0LTEuNTIyLS4wMzktMi4xMjcuNTMtMS4wMjIgMy4yNi0yLjMyMiAzLjEwNi0zLjk1Ni0uMDU2LS41OTQtLjE1LTEuMzY4LS43MDItMS44OTgtLjAyLjIyLjAxNy40MzIuMDE3LjQzMnMtLjIyNy0uMjg5LS4zNC0uNjgzYy0uMTEyLS4xNS0uMi0uMTk5LS4zMTktLjQtLjA4NS4yMzMtLjA3My41MDMtLjA3My41MDNzLS4xODYtLjQzNy0uMjE2LS44MDdjLS4xMS4xNjYtLjEzNy40OC0uMTM3LjQ4cy0uMjQxLS42OS0uMTg2LTEuMDYyYy0uMTEtLjMyMy0uNDM2LS45NjUtLjM0My0yLjQyNC42LjQyMSAxLjkyNC4zMjEgMi40NC0uNDM5LjE3MS0uMjUxLjI4OC0uOTM5LS4wODYtMi4yOTMtLjI0LS44NjgtLjgzNS0yLjE2LTEuMDY2LTIuNjUxbC0uMDI4LjAyYy4xMjIuMzk1LjM3NCAxLjIyMy40NyAxLjYyNS4yOTMgMS4yMTguMzcyIDEuNjQyLjIzNCAyLjIwNC0uMTE2LjQ4OC0uMzk3LjgwOC0xLjEwNyAxLjE2NS0uNzEuMzU4LTEuNjUzLS41MTQtMS43MTMtLjU2Mi0uNjktLjU1LTEuMjI0LTEuNDQ3LTEuMjg0LTEuODgzLS4wNjItLjQ3Ny4yNzUtLjc2My40NDUtMS4xNTMtLjI0My4wNy0uNTE0LjE5Mi0uNTE0LjE5MnMuMzIzLS4zMzQuNzIyLS42MjRjLjE2NS0uMTA5LjI2Mi0uMTc4LjQzNi0uMzIzYTkuNzYyIDkuNzYyIDAgMCAwLS40NTYuMDAzcy40Mi0uMjI3Ljg1NS0uMzkyYy0uMzE4LS4wMTQtLjYyMy0uMDAzLS42MjMtLjAwM3MuOTM3LS40MTkgMS42NzgtLjcyN2MuNTA5LS4yMDggMS4wMDYtLjE0NyAxLjI4Ni4yNTcuMzY3LjUzLjc1Mi44MTcgMS41NjkuOTk2LjUwMS0uMjIzLjY1My0uMzM3IDEuMjg0LS41MDkuNTU0LS42MS45OS0uNjg4Ljk5LS42ODhzLS4yMTYuMTk4LS4yNzQuNTFjLjMxNC0uMjQ5LjY2LS40NTUuNjYtLjQ1NXMtLjEzNC4xNjQtLjI1OS40MjZsLjAzLjA0M2MuMzY2LS4yMi43OTctLjM5NC43OTctLjM5NHMtLjEyMy4xNTYtLjI2OC4zNThjLjI3Ny0uMDAyLjgzOC4wMTIgMS4wNTYuMDM3IDEuMjg1LjAyOCAxLjU1Mi0xLjM3NCAyLjA0NS0xLjU1LjYxOC0uMjIuODk0LS4zNTMgMS45NDcuNjguOTAzLjg4OCAxLjYwOSAyLjQ3NyAxLjI1OSAyLjgzMy0uMjk0LjI5NS0uODc0LS4xMTUtMS41MTYtLjkxNmEzLjQ2NiAzLjQ2NiAwIDAgMS0uNzE2LTEuNTYyIDEuNTMzIDEuNTMzIDAgMCAwLS40OTctLjg1cy4yMy41MS4yMy45NmMwIC4yNDYuMDMgMS4xNjUuNDI0IDEuNjgtLjAzOS4wNzYtLjA1Ny4zNzQtLjEuNDMtLjQ1OC0uNTU0LTEuNDQzLS45NS0xLjYwNC0xLjA2Ny41NDQuNDQ1IDEuNzkzIDEuNDY4IDIuMjczIDIuNDQ5LjQ1My45MjcuMTg2IDEuNzc3LjQxNiAxLjk5Ny4wNjUuMDYzLjk3NiAxLjE5NyAxLjE1IDEuNzY3LjMwNi45OTQuMDE5IDIuMDM4LS4zODEgMi42ODVsLTEuMTE3LjE3NGMtLjE2My0uMDQ1LS4yNzMtLjA2OC0uNDItLjE1My4wOC0uMTQzLjI0MS0uNS4yNDMtLjU3MmwtLjA2My0uMTExYy0uMzQ4LjQ5Mi0uOTMuOTctMS40MTQgMS4yNDUtLjYzMy4zNTktMS4zNjMuMzA0LTEuODM4LjE1Ni0xLjM0OC0uNDE1LTIuNjIzLTEuMzI3LTIuOTMtMS41NjYgMCAwLS4wMS4xOTEuMDQ4LjIzNC4zNC4zODMgMS4xMTkgMS4wNzcgMS44NzIgMS41NmwtMS42MDUuMTc3Ljc1OSA1LjkwOGMtLjMzNy4wNDgtLjM5LjA3MS0uNzU3LjEyNC0uMzI1LTEuMTQ3LS45NDYtMS44OTUtMS42MjQtMi4zMzItLjU5OS0uMzg0LTEuNDI0LS40Ny0yLjIxNC0uMzE0bC0uMDUuMDU5YTIuODUxIDIuODUxIDAgMCAxIDEuODYzLjQ0NGMuNjU0LjQxMyAxLjE4MSAxLjQ4MSAxLjM3NSAyLjEyNC4yNDguODIyLjQyIDEuNy0uMjQ4IDIuNjMyLS40NzYuNjYyLTEuODY0IDEuMDI4LTIuOTg2LjIzNy4zLjQ4MS43MDUuODc2IDEuMjUuOTUuODA5LjExIDEuNTc3LS4wMyAyLjEwNi0uNTc0LjQ1Mi0uNDY0LjY5LTEuNDM0LjYyOC0yLjQ1NmwuNzE0LS4xMDQuMjU4IDEuODM0IDExLjgyNy0xLjQyNHpNMTUuMDUgNi44NDhjLS4wMzQuMDc1LS4wODUuMTI1LS4wMDcuMzdsLjAwNC4wMTQuMDEzLjAzMi4wMzIuMDczYy4xNC4yODcuMjk1LjU1OC41NTIuNjk2LjA2Ny0uMDExLjEzNi0uMDE5LjIwNy0uMDIzLjI0Mi0uMDEuMzk1LjAyOC40OTIuMDguMDA5LS4wNDguMDEtLjExOS4wMDUtLjIyMi0uMDE4LS4zNjQuMDcyLS45ODItLjYyNi0xLjMwOC0uMjY0LS4xMjItLjYzNC0uMDg0LS43NTcuMDY4YS4zMDIuMzAyIDAgMCAxIC4wNTguMDEzYy4xODYuMDY2LjA2LjEzLjAyNy4yMDdtMS45NTggMy4zOTJjLS4wOTItLjA1LS41Mi0uMDMtLjgyMS4wMDUtLjU3NC4wNjgtMS4xOTMuMjY3LTEuMzI4LjM3Mi0uMjQ3LjE5MS0uMTM1LjUyMy4wNDcuNjYuNTExLjM4Mi45Ni42MzggMS40MzIuNTc1LjI5LS4wMzguNTQ2LS40OTcuNzI4LS45MTQuMTI0LS4yODguMTI0LS41OTgtLjA1OC0uNjk4bS01LjA3Ny0yLjk0MmMuMTYyLS4xNTQtLjgwNS0uMzU1LTEuNTU2LjE1Ni0uNTU0LjM3OC0uNTcxIDEuMTg3LS4wNDEgMS42NDYuMDUzLjA0Ni4wOTYuMDc4LjEzNy4xMDRhNC43NyA0Ljc3IDAgMCAxIDEuMzk2LS40MTJjLjExMy0uMTI1LjI0My0uMzQ1LjIxLS43NDUtLjA0NC0uNTQyLS40NTUtLjQ1Ni0uMTQ2LS43NDkiPjwvcGF0aD48L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyBzdHJva2U9Im5vbmUiIGZpbGw9ImN1cnJlbnRDb2xvciIgcm9sZT0iaW1nIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkuNTcgMTcuMDRsLTEuOTk3LTEuMzE2LTEuNjY1IDIuNzgyLTEuOTM3LS41NjctMS43MDYgMi42MDQuMDg3LjgyIDkuMjc0LTEuNzEtLjUzOC01Ljc5NHptLTguNjQ5LTIuNDk4bDEuNDg4LS4yMDRjLjI0MS4xMDguNDA5LjE1LjY5Ny4yMjMuNDUuMTE3Ljk3LjIzIDEuNzQxLS4xNi4xOC0uMDg4LjU1My0uNDMuNzA0LS42MjVsNi4wOTYtMS4xMDYuNjIyIDcuNTI3LTEwLjQ0NCAxLjg4MnptMTEuMzI1LTIuNzEybC0uNjAyLjExNUwyMC40ODggMCAuNzg5IDIuMjg1bDIuNDI3IDE5LjY5MyAyLjMwNi0uMzM0Yy0uMTg0LS4yNjMtLjQ3MS0uNTgxLS45Ni0uOTg5LS42OC0uNTY0LS40NC0xLjUyMi0uMDM5LTIuMTI3LjUzLTEuMDIyIDMuMjYtMi4zMjIgMy4xMDYtMy45NTYtLjA1Ni0uNTk0LS4xNS0xLjM2OC0uNzAyLTEuODk4LS4wMi4yMi4wMTcuNDMyLjAxNy40MzJzLS4yMjctLjI4OS0uMzQtLjY4M2MtLjExMi0uMTUtLjItLjE5OS0uMzE5LS40LS4wODUuMjMzLS4wNzMuNTAzLS4wNzMuNTAzcy0uMTg2LS40MzctLjIxNi0uODA3Yy0uMTEuMTY2LS4xMzcuNDgtLjEzNy40OHMtLjI0MS0uNjktLjE4Ni0xLjA2MmMtLjExLS4zMjMtLjQzNi0uOTY1LS4zNDMtMi40MjQuNi40MjEgMS45MjQuMzIxIDIuNDQtLjQzOS4xNzEtLjI1MS4yODgtLjkzOS0uMDg2LTIuMjkzLS4yNC0uODY4LS44MzUtMi4xNi0xLjA2Ni0yLjY1MWwtLjAyOC4wMmMuMTIyLjM5NS4zNzQgMS4yMjMuNDcgMS42MjUuMjkzIDEuMjE4LjM3MiAxLjY0Mi4yMzQgMi4yMDQtLjExNi40ODgtLjM5Ny44MDgtMS4xMDcgMS4xNjUtLjcxLjM1OC0xLjY1My0uNTE0LTEuNzEzLS41NjItLjY5LS41NS0xLjIyNC0xLjQ0Ny0xLjI4NC0xLjg4My0uMDYyLS40NzcuMjc1LS43NjMuNDQ1LTEuMTUzLS4yNDMuMDctLjUxNC4xOTItLjUxNC4xOTJzLjMyMy0uMzM0LjcyMi0uNjI0Yy4xNjUtLjEwOS4yNjItLjE3OC40MzYtLjMyM2E5Ljc2MiA5Ljc2MiAwIDAgMC0uNDU2LjAwM3MuNDItLjIyNy44NTUtLjM5MmMtLjMxOC0uMDE0LS42MjMtLjAwMy0uNjIzLS4wMDNzLjkzNy0uNDE5IDEuNjc4LS43MjdjLjUwOS0uMjA4IDEuMDA2LS4xNDcgMS4yODYuMjU3LjM2Ny41My43NTIuODE3IDEuNTY5Ljk5Ni41MDEtLjIyMy42NTMtLjMzNyAxLjI4NC0uNTA5LjU1NC0uNjEuOTktLjY4OC45OS0uNjg4cy0uMjE2LjE5OC0uMjc0LjUxYy4zMTQtLjI0OS42Ni0uNDU1LjY2LS40NTVzLS4xMzQuMTY0LS4yNTkuNDI2bC4wMy4wNDNjLjM2Ni0uMjIuNzk3LS4zOTQuNzk3LS4zOTRzLS4xMjMuMTU2LS4yNjguMzU4Yy4yNzctLjAwMi44MzguMDEyIDEuMDU2LjAzNyAxLjI4NS4wMjggMS41NTItMS4zNzQgMi4wNDUtMS41NS42MTgtLjIyLjg5NC0uMzUzIDEuOTQ3LjY4LjkwMy44ODggMS42MDkgMi40NzcgMS4yNTkgMi44MzMtLjI5NC4yOTUtLjg3NC0uMTE1LTEuNTE2LS45MTZhMy40NjYgMy40NjYgMCAwIDEtLjcxNi0xLjU2MiAxLjUzMyAxLjUzMyAwIDAgMC0uNDk3LS44NXMuMjMuNTEuMjMuOTZjMCAuMjQ2LjAzIDEuMTY1LjQyNCAxLjY4LS4wMzkuMDc2LS4wNTcuMzc0LS4xLjQzLS40NTgtLjU1NC0xLjQ0My0uOTUtMS42MDQtMS4wNjcuNTQ0LjQ0NSAxLjc5MyAxLjQ2OCAyLjI3MyAyLjQ0OS40NTMuOTI3LjE4NiAxLjc3Ny40MTYgMS45OTcuMDY1LjA2My45NzYgMS4xOTcgMS4xNSAxLjc2Ny4zMDYuOTk0LjAxOSAyLjAzOC0uMzgxIDIuNjg1bC0xLjExNy4xNzRjLS4xNjMtLjA0NS0uMjczLS4wNjgtLjQyLS4xNTMuMDgtLjE0My4yNDEtLjUuMjQzLS41NzJsLS4wNjMtLjExMWMtLjM0OC40OTItLjkzLjk3LTEuNDE0IDEuMjQ1LS42MzMuMzU5LTEuMzYzLjMwNC0xLjgzOC4xNTYtMS4zNDgtLjQxNS0yLjYyMy0xLjMyNy0yLjkzLTEuNTY2IDAgMC0uMDEuMTkxLjA0OC4yMzQuMzQuMzgzIDEuMTE5IDEuMDc3IDEuODcyIDEuNTZsLTEuNjA1LjE3Ny43NTkgNS45MDhjLS4zMzcuMDQ4LS4zOS4wNzEtLjc1Ny4xMjQtLjMyNS0xLjE0Ny0uOTQ2LTEuODk1LTEuNjI0LTIuMzMyLS41OTktLjM4NC0xLjQyNC0uNDctMi4yMTQtLjMxNGwtLjA1LjA1OWEyLjg1MSAyLjg1MSAwIDAgMSAxLjg2My40NDRjLjY1NC40MTMgMS4xODEgMS40ODEgMS4zNzUgMi4xMjQuMjQ4LjgyMi40MiAxLjctLjI0OCAyLjYzMi0uNDc2LjY2Mi0xLjg2NCAxLjAyOC0yLjk4Ni4yMzcuMy40ODEuNzA1Ljg3NiAxLjI1Ljk1LjgwOS4xMSAxLjU3Ny0uMDMgMi4xMDYtLjU3NC40NTItLjQ2NC42OS0xLjQzNC42MjgtMi40NTZsLjcxNC0uMTA0LjI1OCAxLjgzNCAxMS44MjctMS40MjR6TTE1LjA1IDYuODQ4Yy0uMDM0LjA3NS0uMDg1LjEyNS0uMDA3LjM3bC4wMDQuMDE0LjAxMy4wMzIuMDMyLjA3M2MuMTQuMjg3LjI5NS41NTguNTUyLjY5Ni4wNjctLjAxMS4xMzYtLjAxOS4yMDctLjAyMy4yNDItLjAxLjM5NS4wMjguNDkyLjA4LjAwOS0uMDQ4LjAxLS4xMTkuMDA1LS4yMjItLjAxOC0uMzY0LjA3Mi0uOTgyLS42MjYtMS4zMDgtLjI2NC0uMTIyLS42MzQtLjA4NC0uNzU3LjA2OGEuMzAyLjMwMiAwIDAgMSAuMDU4LjAxM2MuMTg2LjA2Ni4wNi4xMy4wMjcuMjA3bTEuOTU4IDMuMzkyYy0uMDkyLS4wNS0uNTItLjAzLS44MjEuMDA1LS41NzQuMDY4LTEuMTkzLjI2Ny0xLjMyOC4zNzItLjI0Ny4xOTEtLjEzNS41MjMuMDQ3LjY2LjUxMS4zODIuOTYuNjM4IDEuNDMyLjU3NS4yOS0uMDM4LjU0Ni0uNDk3LjcyOC0uOTE0LjEyNC0uMjg4LjEyNC0uNTk4LS4wNTgtLjY5OG0tNS4wNzctMi45NDJjLjE2Mi0uMTU0LS44MDUtLjM1NS0xLjU1Ni4xNTYtLjU1NC4zNzgtLjU3MSAxLjE4Ny0uMDQxIDEuNjQ2LjA1My4wNDYuMDk2LjA3OC4xMzcuMTA0YTQuNzcgNC43NyAwIDAgMSAxLjM5Ni0uNDEyYy4xMTMtLjEyNS4yNDMtLjM0NS4yMS0uNzQ1LS4wNDQtLjU0Mi0uNDU1LS40NTYtLjE0Ni0uNzQ5Ij48L3BhdGg+PC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Datadog = createSupabaseIcon( }, ], ], - { fill: 'currentColor', stroke: 'currentColor', strokeWidth: '0' }, + { fill: 'currentColor', stroke: 'none' }, ); export default Datadog; diff --git a/packages/icons/src/icons/edge-functions.ts b/packages/icons/src/icons/edge-functions.ts index 164d7213ee8ef..f3bd2897b8a87 100644 --- a/packages/icons/src/icons/edge-functions.ts +++ b/packages/icons/src/icons/edge-functions.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name EdgeFunctions * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xOCAxMi4xMDU1QzE4IDE1LjQxOTIgMTUuMzEzNyAxOC4xMDU1IDEyIDE4LjEwNTVDOC42ODYzIDE4LjEwNTUgNi4wMDAwMSAxNS40MTkyIDYuMDAwMDEgMTIuMTA1NUM2LjAwMDAxIDguNzkxNzYgOC42ODYzIDYuMTA1NDcgMTIgNi4xMDU0N0MxNS4zMTM3IDYuMTA1NDcgMTggOC43OTE3NiAxOCAxMi4xMDU1WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTIxLjM5OTkgNS43MDE1NEMyMS4zOTk5IDcuMzU4MzkgMjAuMDU2OCA4LjcwMTU0IDE4LjM5OTkgOC43MDE1NEMxNi43NDMxIDguNzAxNTQgMTUuMzk5OSA3LjM1ODM5IDE1LjM5OTkgNS43MDE1NEMxNS4zOTk5IDQuMDQ0NjggMTYuNzQzMSAyLjcwMTU0IDE4LjM5OTkgMi43MDE1NEMyMC4wNTY4IDIuNzAxNTQgMjEuMzk5OSA0LjA0NDY4IDIxLjM5OTkgNS43MDE1NFoiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik04LjYyMjE2IDE4LjQzNjNDOC42MjIxNiAyMC4wOTMyIDcuMjc5MDIgMjEuNDM2MyA1LjYyMjE2IDIxLjQzNjNDMy45NjUzMSAyMS40MzYzIDIuNjIyMTYgMjAuMDkzMiAyLjYyMjE2IDE4LjQzNjNDMi42MjIxNiAxNi43Nzk1IDMuOTY1MzEgMTUuNDM2MyA1LjYyMjE2IDE1LjQzNjNDNy4yNzkwMiAxNS40MzYzIDguNjIyMTYgMTYuNzc5NSA4LjYyMjE2IDE4LjQzNjNaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNMy4xODEyMSAxNi4yNjkxQzIuNTg0MDEgMTUuMDA2NSAyLjI1IDEzLjU5NSAyLjI1IDEyLjEwNTVDMi4yNSA2LjcyMDY5IDYuNjE1MjIgMi4zNTU0NyAxMiAyLjM1NTQ3QzEzLjQ4OTMgMi4zNTU0NyAxNC45MDA1IDIuNjg5MzcgMTYuMTYzIDMuMjg2MzhNNy42ODY3OSAyMC44NTJDOC45ODcxNSAyMS40OTQ0IDEwLjQ1MTQgMjEuODU1NSAxMiAyMS44NTU1QzE3LjM4NDggMjEuODU1NSAyMS43NSAxNy40OTAyIDIxLjc1IDEyLjEwNTVDMjEuNzUgMTAuNjE2MiAyMS40MTYxIDkuMjA0OTMgMjAuODE5MSA3Ljk0MjQyIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE4IDEyLjEwNTVDMTggMTUuNDE5MiAxNS4zMTM3IDE4LjEwNTUgMTIgMTguMTA1NUM4LjY4NjMgMTguMTA1NSA2LjAwMDAxIDE1LjQxOTIgNi4wMDAwMSAxMi4xMDU1QzYuMDAwMDEgOC43OTE3NiA4LjY4NjMgNi4xMDU0NyAxMiA2LjEwNTQ3QzE1LjMxMzcgNi4xMDU0NyAxOCA4Ljc5MTc2IDE4IDEyLjEwNTVaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNMjEuMzk5OSA1LjcwMTU0QzIxLjM5OTkgNy4zNTgzOSAyMC4wNTY4IDguNzAxNTQgMTguMzk5OSA4LjcwMTU0QzE2Ljc0MzEgOC43MDE1NCAxNS4zOTk5IDcuMzU4MzkgMTUuMzk5OSA1LjcwMTU0QzE1LjM5OTkgNC4wNDQ2OCAxNi43NDMxIDIuNzAxNTQgMTguMzk5OSAyLjcwMTU0QzIwLjA1NjggMi43MDE1NCAyMS4zOTk5IDQuMDQ0NjggMjEuMzk5OSA1LjcwMTU0WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTguNjIyMTYgMTguNDM2M0M4LjYyMjE2IDIwLjA5MzIgNy4yNzkwMiAyMS40MzYzIDUuNjIyMTYgMjEuNDM2M0MzLjk2NTMxIDIxLjQzNjMgMi42MjIxNiAyMC4wOTMyIDIuNjIyMTYgMTguNDM2M0MyLjYyMjE2IDE2Ljc3OTUgMy45NjUzMSAxNS40MzYzIDUuNjIyMTYgMTUuNDM2M0M3LjI3OTAyIDE1LjQzNjMgOC42MjIxNiAxNi43Nzk1IDguNjIyMTYgMTguNDM2M1oiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0zLjE4MTIxIDE2LjI2OTFDMi41ODQwMSAxNS4wMDY1IDIuMjUgMTMuNTk1IDIuMjUgMTIuMTA1NUMyLjI1IDYuNzIwNjkgNi42MTUyMiAyLjM1NTQ3IDEyIDIuMzU1NDdDMTMuNDg5MyAyLjM1NTQ3IDE0LjkwMDUgMi42ODkzNyAxNi4xNjMgMy4yODYzOE03LjY4Njc5IDIwLjg1MkM4Ljk4NzE1IDIxLjQ5NDQgMTAuNDUxNCAyMS44NTU1IDEyIDIxLjg1NTVDMTcuMzg0OCAyMS44NTU1IDIxLjc1IDE3LjQ5MDIgMjEuNzUgMTIuMTA1NUMyMS43NSAxMC42MTYyIDIxLjQxNjEgOS4yMDQ5MyAyMC44MTkxIDcuOTQyNDIiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -42,7 +42,7 @@ const EdgeFunctions = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default EdgeFunctions; diff --git a/packages/icons/src/icons/files-bucket.ts b/packages/icons/src/icons/files-bucket.ts index 2d352e4a45030..86c1f0128c8f6 100644 --- a/packages/icons/src/icons/files-bucket.ts +++ b/packages/icons/src/icons/files-bucket.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name FilesBucket * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuOTk5ODggMjBIMTkuOTk5OUMyMC41MzAzIDIwIDIxLjAzOSAxOS43ODkzIDIxLjQxNDEgMTkuNDE0MkMyMS43ODkyIDE5LjAzOTEgMjEuOTk5OSAxOC41MzA0IDIxLjk5OTkgMThWOEMyMS45OTk5IDcuNDY5NTcgMjEuNzg5MiA2Ljk2MDg2IDIxLjQxNDEgNi41ODU3OUMyMS4wMzkgNi4yMTA3MSAyMC41MzAzIDYgMTkuOTk5OSA2SDEyLjA2OTlDMTEuNzQwNSA1Ljk5ODMgMTEuNDE2NiA1LjkxNTI1IDExLjEyNyA1Ljc1ODI0QzEwLjgzNzQgNS42MDEyMyAxMC41OTExIDUuMzc1MTIgMTAuNDA5OSA1LjFMOS41ODk4OCAzLjlDOS40MDg3IDMuNjI0ODggOS4xNjIzNyAzLjM5ODc3IDguODcyNzggMy4yNDE3NkM4LjU4MzE5IDMuMDg0NzUgOC4yNTkyOSAzLjAwMTcgNy45Mjk4OCAzSDMuOTk5ODhDMy40Njk0NCAzIDIuOTYwNzQgMy4yMTA3MSAyLjU4NTY2IDMuNTg1NzlDMi4yMTA1OSAzLjk2MDg2IDEuOTk5ODggNC40Njk1NyAxLjk5OTg4IDVWMThDMS45OTk4OCAxOS4xIDIuODk5ODggMjAgMy45OTk4OCAyMFoiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik01IDEwLjVIMTkiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0zLjk5OTg4IDIwSDE5Ljk5OTlDMjAuNTMwMyAyMCAyMS4wMzkgMTkuNzg5MyAyMS40MTQxIDE5LjQxNDJDMjEuNzg5MiAxOS4wMzkxIDIxLjk5OTkgMTguNTMwNCAyMS45OTk5IDE4VjhDMjEuOTk5OSA3LjQ2OTU3IDIxLjc4OTIgNi45NjA4NiAyMS40MTQxIDYuNTg1NzlDMjEuMDM5IDYuMjEwNzEgMjAuNTMwMyA2IDE5Ljk5OTkgNkgxMi4wNjk5QzExLjc0MDUgNS45OTgzIDExLjQxNjYgNS45MTUyNSAxMS4xMjcgNS43NTgyNEMxMC44Mzc0IDUuNjAxMjMgMTAuNTkxMSA1LjM3NTEyIDEwLjQwOTkgNS4xTDkuNTg5ODggMy45QzkuNDA4NyAzLjYyNDg4IDkuMTYyMzcgMy4zOTg3NyA4Ljg3Mjc4IDMuMjQxNzZDOC41ODMxOSAzLjA4NDc1IDguMjU5MjkgMy4wMDE3IDcuOTI5ODggM0gzLjk5OTg4QzMuNDY5NDQgMyAyLjk2MDc0IDMuMjEwNzEgMi41ODU2NiAzLjU4NTc5QzIuMjEwNTkgMy45NjA4NiAxLjk5OTg4IDQuNDY5NTcgMS45OTk4OCA1VjE4QzEuOTk5ODggMTkuMSAyLjg5OTg4IDIwIDMuOTk5ODggMjBaIi8+CjxwYXRoIGQ9Ik01IDEwLjVIMTkiLz4KPC9zdmc+Cg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -17,24 +17,18 @@ const FilesBucket = createSupabaseIcon( 'path', { d: 'M3.99988 20H19.9999C20.5303 20 21.039 19.7893 21.4141 19.4142C21.7892 19.0391 21.9999 18.5304 21.9999 18V8C21.9999 7.46957 21.7892 6.96086 21.4141 6.58579C21.039 6.21071 20.5303 6 19.9999 6H12.0699C11.7405 5.9983 11.4166 5.91525 11.127 5.75824C10.8374 5.60123 10.5911 5.37512 10.4099 5.1L9.58988 3.9C9.4087 3.62488 9.16237 3.39877 8.87278 3.24176C8.58319 3.08475 8.25929 3.0017 7.92988 3H3.99988C3.46944 3 2.96074 3.21071 2.58566 3.58579C2.21059 3.96086 1.99988 4.46957 1.99988 5V18C1.99988 19.1 2.89988 20 3.99988 20Z', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1i7att', - }, - ], - [ - 'path', - { - d: 'M5 10.5H19', - stroke: 'currentColor', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'ys6uda', + key: '1y2yg5', }, ], + ['path', { d: 'M5 10.5H19', key: 'eibh4o' }], ], - { fill: 'none', strokeWidth: '1.5' }, + { + fill: 'none', + stroke: 'currentColor', + strokeWidth: '1.5', + strokeLinecap: 'round', + strokeLinejoin: 'round', + }, ); export default FilesBucket; diff --git a/packages/icons/src/icons/grafana.ts b/packages/icons/src/icons/grafana.ts index cc9d56a339d2f..5747933e1b4d1 100644 --- a/packages/icons/src/icons/grafana.ts +++ b/packages/icons/src/icons/grafana.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Grafana * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgICBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiCiAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICBzdHJva2Utd2lkdGg9IjAiCiAgICByb2xlPSJpbWciCiAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICBoZWlnaHQ9IjI0IgogICAgd2lkdGg9IjI0IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxwYXRoIGQ9Ik0yMy4wMiAxMC41OWE4LjU3OCA4LjU3OCAwIDAgMC0uODYyLTMuMDM0IDguOTExIDguOTExIDAgMCAwLTEuNzg5LTIuNDQ1Yy4zMzctMS4zNDItLjQxMy0yLjUwNS0uNDEzLTIuNTA1LTEuMjkyLS4wOC0yLjExMy40LTIuNDE2LjYyLS4wNTItLjAyLS4xMDItLjA0NC0uMTU0LS4wNjQtLjIyLS4wODktLjQ0Ni0uMTcyLS42NzctLjI0Ny0uMjMxLS4wNzMtLjQ3LS4xNC0uNzExLS4xOTdhOS44NjcgOS44NjcgMCAwIDAtLjg3NS0uMTYxQzE0LjU1Ny43NTMgMTIuOTQgMCAxMi45NCAwYy0xLjgwNCAxLjE0NS0yLjE0NyAyLjc0NC0yLjE0NyAyLjc0NGwtLjAxOC4wOTNjLS4wOTguMDI5LS4yLjA1Ny0uMjk4LjA4OC0uMTM4LjA0Mi0uMjc1LjA5NC0uNDEzLjE0My0uMTM4LjA1NS0uMjc1LjEwNy0uNDEuMTY2YTguODY5IDguODY5IDAgMCAwLTEuNTU3Ljg3bC0uMDYzLS4wMjljLTIuNDk3LS45NTUtNC43MTYuMTk1LTQuNzE2LjE5NS0uMjAzIDIuNjU4Ljk5NiA0LjMzIDEuMjM1IDQuNjM2YTExLjYwOCAxMS42MDggMCAwIDAtLjYwNyAyLjYzNUMxLjYzNiAxMi42NzcuOTUzIDE1LjAxNC45NTMgMTUuMDE0YzEuOTI2IDIuMjE0IDQuMTcxIDIuMzUxIDQuMTcxIDIuMzUxLjAwMy0uMDAyLjAwNi0uMDAyLjAwNi0uMDA1LjI4NS41MDkuNjE1Ljk5NC45ODYgMS40NDYuMTU2LjE5LjMyLjM3MS40ODguNTQ4LS43MDQgMi4wMDkuMDk5IDMuNjguMDk5IDMuNjggMi4xNDQuMDggMy41NTMtLjkzNyAzLjg0OS0xLjE3M2E5Ljc4NCA5Ljc4NCAwIDAgMCAzLjE2NC41MDFoLjA4bC4wNTUtLjAwMy4xMDctLjAwMi4xMDMtLjAwNS4wMDMuMDAyYzEuMDEgMS40NCAyLjc4OCAxLjY0NiAyLjc4OCAxLjY0NiAxLjI2NC0xLjMzMiAxLjMzNy0yLjY1MyAxLjMzNy0yLjk0di0uMDU4YzAtLjAyLS4wMDMtLjAzOS0uMDAzLS4wNi4yNjUtLjE4Ny41Mi0uMzg3Ljc1OC0uNmE3Ljg3NSA3Ljg3NSAwIDAgMCAxLjQxNS0xLjdjMS40My4wODMgMi40MzctLjg4NSAyLjQzNy0uODg1LS4yMzYtMS40OS0xLjA4NS0yLjIxNi0xLjI2NC0yLjM1NGwtLjAxOC0uMDEzLS4wMTYtLjAxM2EuMjE3LjIxNyAwIDAgMS0uMDMxLS4wMmMuMDA4LS4wOTIuMDE2LS4xOC4wMi0uMjcuMDExLS4xNjIuMDE2LS4zMjMuMDE2LS40OHYtLjI1M2wtLjAwNS0uMDk4LS4wMDgtLjEzNWExLjg5MSAxLjg5MSAwIDAgMC0uMDEtLjEzYy0uMDAzLS4wNDItLjAwOC0uMDgzLS4wMTMtLjEyNWwtLjAxNi0uMTI0LS4wMTgtLjEyMmE2LjIxNSA2LjIxNSAwIDAgMC0yLjAzMi0zLjczIDYuMDE1IDYuMDE1IDAgMCAwLTMuMjIyLTEuNDYgNi4yOTIgNi4yOTIgMCAwIDAtLjg1LS4wNDhsLS4xMDcuMDAyaC0uMDYzbC0uMDQ0LjAwMy0uMTA0LjAwOGE0Ljc3NyA0Ljc3NyAwIDAgMC0zLjMzNSAxLjY5NWMtLjMzMi40LS41OTIuODQtLjc2OCAxLjI5N2E0LjU5NCA0LjU5NCAwIDAgMC0uMzEyIDEuODE3bC4wMDMuMDkxYy4wMDUuMDU1LjAwNy4xMS4wMTMuMTY0YTMuNjE1IDMuNjE1IDAgMCAwIC42OTggMS44MiAzLjUzIDMuNTMgMCAwIDAgMS44MjcgMS4yODJjLjMzLjA5OC42Ni4xNC45NzEuMTM3LjAzOSAwIC4wNzggMCAuMTE0LS4wMDJsLjA2My0uMDAzYy4wMiAwIC4wNDEtLjAwMy4wNjItLjAwMy4wMzQtLjAwMi4wNjUtLjAwNy4wOTktLjAxLjAwNyAwIC4wMTgtLjAwMy4wMjgtLjAwM2wuMDMxLS4wMDUuMDYtLjAwOGExLjE4IDEuMTggMCAwIDAgLjExMi0uMDJjLjAzNi0uMDA4LjA3Mi0uMDEzLjEwOS0uMDI0YTIuNjM0IDIuNjM0IDAgMCAwIC45MTQtLjQxNWMuMDI4LS4wMi4wNTYtLjA0MS4wODUtLjA2NWEuMjQ4LjI0OCAwIDAgMCAuMDM5LS4zNS4yNDQuMjQ0IDAgMCAwLS4zMDktLjA2bC0uMDc4LjA0MmMtLjA5LjA0NC0uMTg0LjA4My0uMjgzLjExNmEyLjQ3NiAyLjQ3NiAwIDAgMS0uNDc1LjA5NmMtLjAyOC4wMDMtLjA1NC4wMDYtLjA4My4wMDZsLS4wODMuMDAyYy0uMDI2IDAtLjA1NCAwLS4wOC0uMDAybC0uMTAyLS4wMDZoLS4wMTJsLS4wMjQuMDA2Yy0uMDE2LS4wMDMtLjAzMS0uMDAzLS4wNDQtLjAwNi0uMDMxLS4wMDItLjA2LS4wMDctLjA5MS0uMDFhMi41OSAyLjU5IDAgMCAxLS43MjQtLjIxMyAyLjU1NyAyLjU1NyAwIDAgMS0uNjY3LS40MzggMi41MiAyLjUyIDAgMCAxLS44MDUtMS40NzUgMi4zMDYgMi4zMDYgMCAwIDEtLjAyOS0uNDQ0bC4wMDYtLjEyMnYtLjAyM2wuMDAyLS4wMzFjLjAwMy0uMDIxLjAwMy0uMDQuMDA1LS4wNmEzLjE2MyAzLjE2MyAwIDAgMSAxLjM1Mi0yLjI5IDMuMTIgMy4xMiAwIDAgMSAuOTM3LS40MyAyLjk0NiAyLjk0NiAwIDAgMSAuNzc2LS4xMDFoLjA2bC4wNy4wMDIuMDQ1LjAwM2guMDI2bC4wNy4wMDVhNC4wNDEgNC4wNDEgMCAwIDEgMS42MzUuNDkgMy45NCAzLjk0IDAgMCAxIDEuNjAyIDEuNjYyIDMuNzcgMy43NyAwIDAgMSAuMzk3IDEuNDE0bC4wMDUuMDc2LjAwMy4wNzVjLjAwMi4wMjYuMDAyLjA1LjAwMi4wNzUgMCAuMDI0LjAwMy4wNTIgMCAuMDd2LjA2NWwtLjAwMi4wNzMtLjAwOC4xNzRhNi4xOTUgNi4xOTUgMCAwIDEtLjA4LjYzOSA1LjEgNS4xIDAgMCAxLS4yNjcuOTI3IDUuMzEgNS4zMSAwIDAgMS0uNjI0IDEuMTMgNS4wNTIgNS4wNTIgMCAwIDEtMy4yMzcgMi4wMTQgNC44MiA0LjgyIDAgMCAxLS42NDkuMDY2bC0uMDM5LjAwM2gtLjI4N2E2LjYwNyA2LjYwNyAwIDAgMS0xLjcxNi0uMjY1IDYuNzc2IDYuNzc2IDAgMCAxLTMuNC0yLjI3NCA2Ljc1IDYuNzUgMCAwIDEtLjc0Ni0xLjE1IDYuNjE2IDYuNjE2IDAgMCAxLS43MTQtMi41OTZsLS4wMDUtLjA4My0uMDAyLS4wMnYtLjA1NmwtLjAwMy0uMDczdi0uMDk2bC0uMDAzLS4xMDR2LS4wN2wuMDAzLS4xNjNjLjAwOC0uMjIuMDI2LS40NS4wNTQtLjY3OGE4LjcwNyA4LjcwNyAwIDAgMSAuMjgtMS4zNTVjLjEyOC0uNDQ0LjI4Ni0uODcyLjQ3My0xLjI3N2E3LjA0IDcuMDQgMCAwIDEgMS40NTYtMi4xIDUuOTI1IDUuOTI1IDAgMCAxIC45NTMtLjc2M2MuMTY5LS4xMTEuMzQzLS4yMTMuNTI0LS4zMDYuMDg5LS4wNS4xODItLjA5MS4yNzMtLjEzNS4wNDctLjAyLjA5My0uMDQyLjEzOC0uMDYyYTcuMTc3IDcuMTc3IDAgMCAxIC43MTQtLjI2N2wuMTQ1LS4wNDVjLjA0OS0uMDE1LjA5OC0uMDI2LjE0OC0uMDQxLjA5OC0uMDI5LjE5Ny0uMDUyLjI5Ni0uMDc2LjA0OS0uMDEzLjEtLjAyLjE1LS4wMzNsLjE1LS4wMzIuMTUxLS4wMjguMDc2LS4wMTMuMDc1LS4wMS4xNTMtLjAyNGMuMDU3LS4wMS4xMTQtLjAxMy4xNzEtLjAyM2wuMTY5LS4wMjFjLjAzNi0uMDAzLjA3My0uMDA4LjEwNi0uMDFsLjA3My0uMDA4LjAzNi0uMDAzLjA0Mi0uMDAyYy4wNTctLjAwMy4xMTQtLjAwOC4xNzEtLjAxbC4wODYtLjAwNmguMDIzbC4wMzctLjAwMy4xNDUtLjAwN2E3Ljk5OSA3Ljk5OSAwIDAgMSAxLjcwOC4xMjUgNy45MTcgNy45MTcgMCAwIDEgMi4wNDguNjggOC4yNTMgOC4yNTMgMCAwIDEgMS42NzIgMS4wOWwuMDkuMDc3LjA4OS4wNzhjLjA2LjA1Mi4xMTQuMTA3LjE3MS4xNTkuMDU3LjA1Mi4xMTIuMTA2LjE2Ni4xNi4wNTIuMDU1LjEwNy4xMDcuMTU5LjE2NGE4LjY3MSA4LjY3MSAwIDAgMSAxLjQxIDEuOTc4Yy4wMTIuMDI2LjAyOC4wNTIuMDQuMDc4bC4wNC4wNzguMDc1LjE1NmMuMDIzLjA1MS4wNS4xLjA3LjE1M2wuMDY1LjE1YTguODQ4IDguODQ4IDAgMCAxIC40NSAxLjM0LjE5LjE5IDAgMCAwIC4yMDEuMTQyLjE4Ni4xODYgMCAwIDAgLjE3Mi0uMTg0Yy4wMS0uMjQ2LjAwMi0uNTMyLS4wMjQtLjg1NnoiPjwvcGF0aD4KICA8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgICBzdHJva2U9Im5vbmUiCiAgICBmaWxsPSJjdXJyZW50Q29sb3IiCiAgICByb2xlPSJpbWciCiAgICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgICBoZWlnaHQ9IjI0IgogICAgd2lkdGg9IjI0IgogICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogID4KICAgIDxwYXRoIGQ9Ik0yMy4wMiAxMC41OWE4LjU3OCA4LjU3OCAwIDAgMC0uODYyLTMuMDM0IDguOTExIDguOTExIDAgMCAwLTEuNzg5LTIuNDQ1Yy4zMzctMS4zNDItLjQxMy0yLjUwNS0uNDEzLTIuNTA1LTEuMjkyLS4wOC0yLjExMy40LTIuNDE2LjYyLS4wNTItLjAyLS4xMDItLjA0NC0uMTU0LS4wNjQtLjIyLS4wODktLjQ0Ni0uMTcyLS42NzctLjI0Ny0uMjMxLS4wNzMtLjQ3LS4xNC0uNzExLS4xOTdhOS44NjcgOS44NjcgMCAwIDAtLjg3NS0uMTYxQzE0LjU1Ny43NTMgMTIuOTQgMCAxMi45NCAwYy0xLjgwNCAxLjE0NS0yLjE0NyAyLjc0NC0yLjE0NyAyLjc0NGwtLjAxOC4wOTNjLS4wOTguMDI5LS4yLjA1Ny0uMjk4LjA4OC0uMTM4LjA0Mi0uMjc1LjA5NC0uNDEzLjE0My0uMTM4LjA1NS0uMjc1LjEwNy0uNDEuMTY2YTguODY5IDguODY5IDAgMCAwLTEuNTU3Ljg3bC0uMDYzLS4wMjljLTIuNDk3LS45NTUtNC43MTYuMTk1LTQuNzE2LjE5NS0uMjAzIDIuNjU4Ljk5NiA0LjMzIDEuMjM1IDQuNjM2YTExLjYwOCAxMS42MDggMCAwIDAtLjYwNyAyLjYzNUMxLjYzNiAxMi42NzcuOTUzIDE1LjAxNC45NTMgMTUuMDE0YzEuOTI2IDIuMjE0IDQuMTcxIDIuMzUxIDQuMTcxIDIuMzUxLjAwMy0uMDAyLjAwNi0uMDAyLjAwNi0uMDA1LjI4NS41MDkuNjE1Ljk5NC45ODYgMS40NDYuMTU2LjE5LjMyLjM3MS40ODguNTQ4LS43MDQgMi4wMDkuMDk5IDMuNjguMDk5IDMuNjggMi4xNDQuMDggMy41NTMtLjkzNyAzLjg0OS0xLjE3M2E5Ljc4NCA5Ljc4NCAwIDAgMCAzLjE2NC41MDFoLjA4bC4wNTUtLjAwMy4xMDctLjAwMi4xMDMtLjAwNS4wMDMuMDAyYzEuMDEgMS40NCAyLjc4OCAxLjY0NiAyLjc4OCAxLjY0NiAxLjI2NC0xLjMzMiAxLjMzNy0yLjY1MyAxLjMzNy0yLjk0di0uMDU4YzAtLjAyLS4wMDMtLjAzOS0uMDAzLS4wNi4yNjUtLjE4Ny41Mi0uMzg3Ljc1OC0uNmE3Ljg3NSA3Ljg3NSAwIDAgMCAxLjQxNS0xLjdjMS40My4wODMgMi40MzctLjg4NSAyLjQzNy0uODg1LS4yMzYtMS40OS0xLjA4NS0yLjIxNi0xLjI2NC0yLjM1NGwtLjAxOC0uMDEzLS4wMTYtLjAxM2EuMjE3LjIxNyAwIDAgMS0uMDMxLS4wMmMuMDA4LS4wOTIuMDE2LS4xOC4wMi0uMjcuMDExLS4xNjIuMDE2LS4zMjMuMDE2LS40OHYtLjI1M2wtLjAwNS0uMDk4LS4wMDgtLjEzNWExLjg5MSAxLjg5MSAwIDAgMC0uMDEtLjEzYy0uMDAzLS4wNDItLjAwOC0uMDgzLS4wMTMtLjEyNWwtLjAxNi0uMTI0LS4wMTgtLjEyMmE2LjIxNSA2LjIxNSAwIDAgMC0yLjAzMi0zLjczIDYuMDE1IDYuMDE1IDAgMCAwLTMuMjIyLTEuNDYgNi4yOTIgNi4yOTIgMCAwIDAtLjg1LS4wNDhsLS4xMDcuMDAyaC0uMDYzbC0uMDQ0LjAwMy0uMTA0LjAwOGE0Ljc3NyA0Ljc3NyAwIDAgMC0zLjMzNSAxLjY5NWMtLjMzMi40LS41OTIuODQtLjc2OCAxLjI5N2E0LjU5NCA0LjU5NCAwIDAgMC0uMzEyIDEuODE3bC4wMDMuMDkxYy4wMDUuMDU1LjAwNy4xMS4wMTMuMTY0YTMuNjE1IDMuNjE1IDAgMCAwIC42OTggMS44MiAzLjUzIDMuNTMgMCAwIDAgMS44MjcgMS4yODJjLjMzLjA5OC42Ni4xNC45NzEuMTM3LjAzOSAwIC4wNzggMCAuMTE0LS4wMDJsLjA2My0uMDAzYy4wMiAwIC4wNDEtLjAwMy4wNjItLjAwMy4wMzQtLjAwMi4wNjUtLjAwNy4wOTktLjAxLjAwNyAwIC4wMTgtLjAwMy4wMjgtLjAwM2wuMDMxLS4wMDUuMDYtLjAwOGExLjE4IDEuMTggMCAwIDAgLjExMi0uMDJjLjAzNi0uMDA4LjA3Mi0uMDEzLjEwOS0uMDI0YTIuNjM0IDIuNjM0IDAgMCAwIC45MTQtLjQxNWMuMDI4LS4wMi4wNTYtLjA0MS4wODUtLjA2NWEuMjQ4LjI0OCAwIDAgMCAuMDM5LS4zNS4yNDQuMjQ0IDAgMCAwLS4zMDktLjA2bC0uMDc4LjA0MmMtLjA5LjA0NC0uMTg0LjA4My0uMjgzLjExNmEyLjQ3NiAyLjQ3NiAwIDAgMS0uNDc1LjA5NmMtLjAyOC4wMDMtLjA1NC4wMDYtLjA4My4wMDZsLS4wODMuMDAyYy0uMDI2IDAtLjA1NCAwLS4wOC0uMDAybC0uMTAyLS4wMDZoLS4wMTJsLS4wMjQuMDA2Yy0uMDE2LS4wMDMtLjAzMS0uMDAzLS4wNDQtLjAwNi0uMDMxLS4wMDItLjA2LS4wMDctLjA5MS0uMDFhMi41OSAyLjU5IDAgMCAxLS43MjQtLjIxMyAyLjU1NyAyLjU1NyAwIDAgMS0uNjY3LS40MzggMi41MiAyLjUyIDAgMCAxLS44MDUtMS40NzUgMi4zMDYgMi4zMDYgMCAwIDEtLjAyOS0uNDQ0bC4wMDYtLjEyMnYtLjAyM2wuMDAyLS4wMzFjLjAwMy0uMDIxLjAwMy0uMDQuMDA1LS4wNmEzLjE2MyAzLjE2MyAwIDAgMSAxLjM1Mi0yLjI5IDMuMTIgMy4xMiAwIDAgMSAuOTM3LS40MyAyLjk0NiAyLjk0NiAwIDAgMSAuNzc2LS4xMDFoLjA2bC4wNy4wMDIuMDQ1LjAwM2guMDI2bC4wNy4wMDVhNC4wNDEgNC4wNDEgMCAwIDEgMS42MzUuNDkgMy45NCAzLjk0IDAgMCAxIDEuNjAyIDEuNjYyIDMuNzcgMy43NyAwIDAgMSAuMzk3IDEuNDE0bC4wMDUuMDc2LjAwMy4wNzVjLjAwMi4wMjYuMDAyLjA1LjAwMi4wNzUgMCAuMDI0LjAwMy4wNTIgMCAuMDd2LjA2NWwtLjAwMi4wNzMtLjAwOC4xNzRhNi4xOTUgNi4xOTUgMCAwIDEtLjA4LjYzOSA1LjEgNS4xIDAgMCAxLS4yNjcuOTI3IDUuMzEgNS4zMSAwIDAgMS0uNjI0IDEuMTMgNS4wNTIgNS4wNTIgMCAwIDEtMy4yMzcgMi4wMTQgNC44MiA0LjgyIDAgMCAxLS42NDkuMDY2bC0uMDM5LjAwM2gtLjI4N2E2LjYwNyA2LjYwNyAwIDAgMS0xLjcxNi0uMjY1IDYuNzc2IDYuNzc2IDAgMCAxLTMuNC0yLjI3NCA2Ljc1IDYuNzUgMCAwIDEtLjc0Ni0xLjE1IDYuNjE2IDYuNjE2IDAgMCAxLS43MTQtMi41OTZsLS4wMDUtLjA4My0uMDAyLS4wMnYtLjA1NmwtLjAwMy0uMDczdi0uMDk2bC0uMDAzLS4xMDR2LS4wN2wuMDAzLS4xNjNjLjAwOC0uMjIuMDI2LS40NS4wNTQtLjY3OGE4LjcwNyA4LjcwNyAwIDAgMSAuMjgtMS4zNTVjLjEyOC0uNDQ0LjI4Ni0uODcyLjQ3My0xLjI3N2E3LjA0IDcuMDQgMCAwIDEgMS40NTYtMi4xIDUuOTI1IDUuOTI1IDAgMCAxIC45NTMtLjc2M2MuMTY5LS4xMTEuMzQzLS4yMTMuNTI0LS4zMDYuMDg5LS4wNS4xODItLjA5MS4yNzMtLjEzNS4wNDctLjAyLjA5My0uMDQyLjEzOC0uMDYyYTcuMTc3IDcuMTc3IDAgMCAxIC43MTQtLjI2N2wuMTQ1LS4wNDVjLjA0OS0uMDE1LjA5OC0uMDI2LjE0OC0uMDQxLjA5OC0uMDI5LjE5Ny0uMDUyLjI5Ni0uMDc2LjA0OS0uMDEzLjEtLjAyLjE1LS4wMzNsLjE1LS4wMzIuMTUxLS4wMjguMDc2LS4wMTMuMDc1LS4wMS4xNTMtLjAyNGMuMDU3LS4wMS4xMTQtLjAxMy4xNzEtLjAyM2wuMTY5LS4wMjFjLjAzNi0uMDAzLjA3My0uMDA4LjEwNi0uMDFsLjA3My0uMDA4LjAzNi0uMDAzLjA0Mi0uMDAyYy4wNTctLjAwMy4xMTQtLjAwOC4xNzEtLjAxbC4wODYtLjAwNmguMDIzbC4wMzctLjAwMy4xNDUtLjAwN2E3Ljk5OSA3Ljk5OSAwIDAgMSAxLjcwOC4xMjUgNy45MTcgNy45MTcgMCAwIDEgMi4wNDguNjggOC4yNTMgOC4yNTMgMCAwIDEgMS42NzIgMS4wOWwuMDkuMDc3LjA4OS4wNzhjLjA2LjA1Mi4xMTQuMTA3LjE3MS4xNTkuMDU3LjA1Mi4xMTIuMTA2LjE2Ni4xNi4wNTIuMDU1LjEwNy4xMDcuMTU5LjE2NGE4LjY3MSA4LjY3MSAwIDAgMSAxLjQxIDEuOTc4Yy4wMTIuMDI2LjAyOC4wNTIuMDQuMDc4bC4wNC4wNzguMDc1LjE1NmMuMDIzLjA1MS4wNS4xLjA3LjE1M2wuMDY1LjE1YTguODQ4IDguODQ4IDAgMCAxIC40NSAxLjM0LjE5LjE5IDAgMCAwIC4yMDEuMTQyLjE4Ni4xODYgMCAwIDAgLjE3Mi0uMTg0Yy4wMS0uMjQ2LjAwMi0uNTMyLS4wMjQtLjg1NnoiPjwvcGF0aD4KICA8L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Grafana = createSupabaseIcon( }, ], ], - { fill: 'currentColor', stroke: 'currentColor', strokeWidth: '0' }, + { fill: 'currentColor', stroke: 'none' }, ); export default Grafana; diff --git a/packages/icons/src/icons/graphql.ts b/packages/icons/src/icons/graphql.ts index ccc597f055600..dcd828a1b8203 100644 --- a/packages/icons/src/icons/graphql.ts +++ b/packages/icons/src/icons/graphql.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Graphql * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTEuOTAwNyAzLjc2ODU3TDE5LjAwMDcgNy44Njc3NVYxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDcuODY3NzVWMTYuMDY2MU0xMS45MDA3IDMuNzY4NTdMMTkuMDAwNyAxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxTDExLjkwMDcgMjAuMTY1M0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxSDQuODAwNzJNNi4wMTY0IDE2LjEzMjJDNi4wMTY0IDE2Ljc4OTUgNS40ODM1OCAxNy4zMjIzIDQuODI2MzEgMTcuMzIyM0M0LjE2OTA1IDE3LjMyMjMgMy42MzYyMyAxNi43ODk1IDMuNjM2MjMgMTYuMTMyMkMzLjYzNjIzIDE1LjQ3NDkgNC4xNjkwNSAxNC45NDIxIDQuODI2MzEgMTQuOTQyMUM1LjQ4MzU4IDE0Ljk0MjEgNi4wMTY0IDE1LjQ3NDkgNi4wMTY0IDE2LjEzMjJaTTUuMjg5MTIgMTYuMTMyMkM1LjI4OTEyIDE2LjM4NzggNS4wODE5MiAxNi41OTUgNC44MjYzMSAxNi41OTVDNC41NzA3MSAxNi41OTUgNC4zNjM1IDE2LjM4NzggNC4zNjM1IDE2LjEzMjJDNC4zNjM1IDE1Ljg3NjYgNC41NzA3MSAxNS42Njk0IDQuODI2MzEgMTUuNjY5NEM1LjA4MTkyIDE1LjY2OTQgNS4yODkxMiAxNS44NzY2IDUuMjg5MTIgMTYuMTMyMlpNMjAuMjk3NCAxNi4xMzIyQzIwLjI5NzQgMTYuNzg5NSAxOS43NjQ2IDE3LjMyMjMgMTkuMTA3MyAxNy4zMjIzQzE4LjQ1IDE3LjMyMjMgMTcuOTE3MiAxNi43ODk1IDE3LjkxNzIgMTYuMTMyMkMxNy45MTcyIDE1LjQ3NDkgMTguNDUgMTQuOTQyMSAxOS4xMDczIDE0Ljk0MjFDMTkuNzY0NiAxNC45NDIxIDIwLjI5NzQgMTUuNDc0OSAyMC4yOTc0IDE2LjEzMjJaTTE5LjU3MDEgMTYuMTMyMkMxOS41NzAxIDE2LjM4NzggMTkuMzYyOSAxNi41OTUgMTkuMTA3MyAxNi41OTVDMTguODUxNyAxNi41OTUgMTguNjQ0NSAxNi4zODc4IDE4LjY0NDUgMTYuMTMyMkMxOC42NDQ1IDE1Ljg3NjYgMTguODUxNyAxNS42Njk0IDE5LjEwNzMgMTUuNjY5NEMxOS4zNjI5IDE1LjY2OTQgMTkuNTcwMSAxNS44NzY2IDE5LjU3MDEgMTYuMTMyMlpNNi4wMTY0IDcuODY3NzVDNi4wMTY0IDguNTI1MDEgNS40ODM1OCA5LjA1NzgzIDQuODI2MzEgOS4wNTc4M0M0LjE2OTA1IDkuMDU3ODMgMy42MzYyMyA4LjUyNTAxIDMuNjM2MjMgNy44Njc3NUMzLjYzNjIzIDcuMjEwNDggNC4xNjkwNSA2LjY3NzY2IDQuODI2MzEgNi42Nzc2NkM1LjQ4MzU4IDYuNjc3NjYgNi4wMTY0IDcuMjEwNDggNi4wMTY0IDcuODY3NzVaTTUuMjg5MTIgNy44Njc3NUM1LjI4OTEyIDguMTIzMzUgNS4wODE5MiA4LjMzMDU2IDQuODI2MzEgOC4zMzA1NkM0LjU3MDcxIDguMzMwNTYgNC4zNjM1IDguMTIzMzUgNC4zNjM1IDcuODY3NzVDNC4zNjM1IDcuNjEyMTQgNC41NzA3MSA3LjQwNDk0IDQuODI2MzEgNy40MDQ5NEM1LjA4MTkyIDcuNDA0OTQgNS4yODkxMiA3LjYxMjE0IDUuMjg5MTIgNy44Njc3NVpNMjAuMjk3NCA3Ljg2Nzc1QzIwLjI5NzQgOC41MjUwMSAxOS43NjQ2IDkuMDU3ODMgMTkuMTA3MyA5LjA1NzgzQzE4LjQ1IDkuMDU3ODMgMTcuOTE3MiA4LjUyNTAxIDE3LjkxNzIgNy44Njc3NUMxNy45MTcyIDcuMjEwNDggMTguNDUgNi42Nzc2NiAxOS4xMDczIDYuNjc3NjZDMTkuNzY0NiA2LjY3NzY2IDIwLjI5NzQgNy4yMTA0OCAyMC4yOTc0IDcuODY3NzVaTTE5LjU3MDEgNy44Njc3NUMxOS41NzAxIDguMTIzMzUgMTkuMzYyOSA4LjMzMDU2IDE5LjEwNzMgOC4zMzA1NkMxOC44NTE3IDguMzMwNTYgMTguNjQ0NSA4LjEyMzM1IDE4LjY0NDUgNy44Njc3NUMxOC42NDQ1IDcuNjEyMTQgMTguODUxNyA3LjQwNDk0IDE5LjEwNzMgNy40MDQ5NEMxOS4zNjI5IDcuNDA0OTQgMTkuNTcwMSA3LjYxMjE0IDE5LjU3MDEgNy44Njc3NVpNMTMuMTU2OSAzLjc2ODU3QzEzLjE1NjkgNC40MjU4NCAxMi42MjQxIDQuOTU4NjYgMTEuOTY2OCA0Ljk1ODY2QzExLjMwOTUgNC45NTg2NiAxMC43NzY3IDQuNDI1ODQgMTAuNzc2NyAzLjc2ODU3QzEwLjc3NjcgMy4xMTEzMSAxMS4zMDk1IDIuNTc4NDkgMTEuOTY2OCAyLjU3ODQ5QzEyLjYyNDEgMi41Nzg0OSAxMy4xNTY5IDMuMTExMzEgMTMuMTU2OSAzLjc2ODU3Wk0xMi40Mjk2IDMuNzY4NTdDMTIuNDI5NiA0LjAyNDE4IDEyLjIyMjQgNC4yMzEzOCAxMS45NjY4IDQuMjMxMzhDMTEuNzExMiA0LjIzMTM4IDExLjUwNCA0LjAyNDE4IDExLjUwNCAzLjc2ODU3QzExLjUwNCAzLjUxMjk3IDExLjcxMTIgMy4zMDU3NiAxMS45NjY4IDMuMzA1NzZDMTIuMjIyNCAzLjMwNTc2IDEyLjQyOTYgMy41MTI5NyAxMi40Mjk2IDMuNzY4NTdaTTEzLjE1NjkgMjAuMTY1M0MxMy4xNTY5IDIwLjgyMjUgMTIuNjI0MSAyMS4zNTUzIDExLjk2NjggMjEuMzU1M0MxMS4zMDk1IDIxLjM1NTMgMTAuNzc2NyAyMC44MjI1IDEwLjc3NjcgMjAuMTY1M0MxMC43NzY3IDE5LjUwOCAxMS4zMDk1IDE4Ljk3NTIgMTEuOTY2OCAxOC45NzUyQzEyLjYyNDEgMTguOTc1MiAxMy4xNTY5IDE5LjUwOCAxMy4xNTY5IDIwLjE2NTNaTTEyLjQyOTYgMjAuMTY1M0MxMi40Mjk2IDIwLjQyMDkgMTIuMjIyNCAyMC42MjgxIDExLjk2NjggMjAuNjI4MUMxMS43MTEyIDIwLjYyODEgMTEuNTA0IDIwLjQyMDkgMTEuNTA0IDIwLjE2NTNDMTEuNTA0IDE5LjkwOTcgMTEuNzExMiAxOS43MDI1IDExLjk2NjggMTkuNzAyNUMxMi4yMjI0IDE5LjcwMjUgMTIuNDI5NiAxOS45MDk3IDEyLjQyOTYgMjAuMTY1M1oiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLXdpZHRoPSIwLjg1OTUwNCIvPgo8L3N2Zz4K) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTEuOTAwNyAzLjc2ODU3TDE5LjAwMDcgNy44Njc3NVYxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDcuODY3NzVWMTYuMDY2MU0xMS45MDA3IDMuNzY4NTdMMTkuMDAwNyAxNi4wNjYxTTExLjkwMDcgMy43Njg1N0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxTDExLjkwMDcgMjAuMTY1M0w0LjgwMDcyIDE2LjA2NjFNMTkuMDAwNyAxNi4wNjYxSDQuODAwNzJNNi4wMTY0IDE2LjEzMjJDNi4wMTY0IDE2Ljc4OTUgNS40ODM1OCAxNy4zMjIzIDQuODI2MzEgMTcuMzIyM0M0LjE2OTA1IDE3LjMyMjMgMy42MzYyMyAxNi43ODk1IDMuNjM2MjMgMTYuMTMyMkMzLjYzNjIzIDE1LjQ3NDkgNC4xNjkwNSAxNC45NDIxIDQuODI2MzEgMTQuOTQyMUM1LjQ4MzU4IDE0Ljk0MjEgNi4wMTY0IDE1LjQ3NDkgNi4wMTY0IDE2LjEzMjJaTTUuMjg5MTIgMTYuMTMyMkM1LjI4OTEyIDE2LjM4NzggNS4wODE5MiAxNi41OTUgNC44MjYzMSAxNi41OTVDNC41NzA3MSAxNi41OTUgNC4zNjM1IDE2LjM4NzggNC4zNjM1IDE2LjEzMjJDNC4zNjM1IDE1Ljg3NjYgNC41NzA3MSAxNS42Njk0IDQuODI2MzEgMTUuNjY5NEM1LjA4MTkyIDE1LjY2OTQgNS4yODkxMiAxNS44NzY2IDUuMjg5MTIgMTYuMTMyMlpNMjAuMjk3NCAxNi4xMzIyQzIwLjI5NzQgMTYuNzg5NSAxOS43NjQ2IDE3LjMyMjMgMTkuMTA3MyAxNy4zMjIzQzE4LjQ1IDE3LjMyMjMgMTcuOTE3MiAxNi43ODk1IDE3LjkxNzIgMTYuMTMyMkMxNy45MTcyIDE1LjQ3NDkgMTguNDUgMTQuOTQyMSAxOS4xMDczIDE0Ljk0MjFDMTkuNzY0NiAxNC45NDIxIDIwLjI5NzQgMTUuNDc0OSAyMC4yOTc0IDE2LjEzMjJaTTE5LjU3MDEgMTYuMTMyMkMxOS41NzAxIDE2LjM4NzggMTkuMzYyOSAxNi41OTUgMTkuMTA3MyAxNi41OTVDMTguODUxNyAxNi41OTUgMTguNjQ0NSAxNi4zODc4IDE4LjY0NDUgMTYuMTMyMkMxOC42NDQ1IDE1Ljg3NjYgMTguODUxNyAxNS42Njk0IDE5LjEwNzMgMTUuNjY5NEMxOS4zNjI5IDE1LjY2OTQgMTkuNTcwMSAxNS44NzY2IDE5LjU3MDEgMTYuMTMyMlpNNi4wMTY0IDcuODY3NzVDNi4wMTY0IDguNTI1MDEgNS40ODM1OCA5LjA1NzgzIDQuODI2MzEgOS4wNTc4M0M0LjE2OTA1IDkuMDU3ODMgMy42MzYyMyA4LjUyNTAxIDMuNjM2MjMgNy44Njc3NUMzLjYzNjIzIDcuMjEwNDggNC4xNjkwNSA2LjY3NzY2IDQuODI2MzEgNi42Nzc2NkM1LjQ4MzU4IDYuNjc3NjYgNi4wMTY0IDcuMjEwNDggNi4wMTY0IDcuODY3NzVaTTUuMjg5MTIgNy44Njc3NUM1LjI4OTEyIDguMTIzMzUgNS4wODE5MiA4LjMzMDU2IDQuODI2MzEgOC4zMzA1NkM0LjU3MDcxIDguMzMwNTYgNC4zNjM1IDguMTIzMzUgNC4zNjM1IDcuODY3NzVDNC4zNjM1IDcuNjEyMTQgNC41NzA3MSA3LjQwNDk0IDQuODI2MzEgNy40MDQ5NEM1LjA4MTkyIDcuNDA0OTQgNS4yODkxMiA3LjYxMjE0IDUuMjg5MTIgNy44Njc3NVpNMjAuMjk3NCA3Ljg2Nzc1QzIwLjI5NzQgOC41MjUwMSAxOS43NjQ2IDkuMDU3ODMgMTkuMTA3MyA5LjA1NzgzQzE4LjQ1IDkuMDU3ODMgMTcuOTE3MiA4LjUyNTAxIDE3LjkxNzIgNy44Njc3NUMxNy45MTcyIDcuMjEwNDggMTguNDUgNi42Nzc2NiAxOS4xMDczIDYuNjc3NjZDMTkuNzY0NiA2LjY3NzY2IDIwLjI5NzQgNy4yMTA0OCAyMC4yOTc0IDcuODY3NzVaTTE5LjU3MDEgNy44Njc3NUMxOS41NzAxIDguMTIzMzUgMTkuMzYyOSA4LjMzMDU2IDE5LjEwNzMgOC4zMzA1NkMxOC44NTE3IDguMzMwNTYgMTguNjQ0NSA4LjEyMzM1IDE4LjY0NDUgNy44Njc3NUMxOC42NDQ1IDcuNjEyMTQgMTguODUxNyA3LjQwNDk0IDE5LjEwNzMgNy40MDQ5NEMxOS4zNjI5IDcuNDA0OTQgMTkuNTcwMSA3LjYxMjE0IDE5LjU3MDEgNy44Njc3NVpNMTMuMTU2OSAzLjc2ODU3QzEzLjE1NjkgNC40MjU4NCAxMi42MjQxIDQuOTU4NjYgMTEuOTY2OCA0Ljk1ODY2QzExLjMwOTUgNC45NTg2NiAxMC43NzY3IDQuNDI1ODQgMTAuNzc2NyAzLjc2ODU3QzEwLjc3NjcgMy4xMTEzMSAxMS4zMDk1IDIuNTc4NDkgMTEuOTY2OCAyLjU3ODQ5QzEyLjYyNDEgMi41Nzg0OSAxMy4xNTY5IDMuMTExMzEgMTMuMTU2OSAzLjc2ODU3Wk0xMi40Mjk2IDMuNzY4NTdDMTIuNDI5NiA0LjAyNDE4IDEyLjIyMjQgNC4yMzEzOCAxMS45NjY4IDQuMjMxMzhDMTEuNzExMiA0LjIzMTM4IDExLjUwNCA0LjAyNDE4IDExLjUwNCAzLjc2ODU3QzExLjUwNCAzLjUxMjk3IDExLjcxMTIgMy4zMDU3NiAxMS45NjY4IDMuMzA1NzZDMTIuMjIyNCAzLjMwNTc2IDEyLjQyOTYgMy41MTI5NyAxMi40Mjk2IDMuNzY4NTdaTTEzLjE1NjkgMjAuMTY1M0MxMy4xNTY5IDIwLjgyMjUgMTIuNjI0MSAyMS4zNTUzIDExLjk2NjggMjEuMzU1M0MxMS4zMDk1IDIxLjM1NTMgMTAuNzc2NyAyMC44MjI1IDEwLjc3NjcgMjAuMTY1M0MxMC43NzY3IDE5LjUwOCAxMS4zMDk1IDE4Ljk3NTIgMTEuOTY2OCAxOC45NzUyQzEyLjYyNDEgMTguOTc1MiAxMy4xNTY5IDE5LjUwOCAxMy4xNTY5IDIwLjE2NTNaTTEyLjQyOTYgMjAuMTY1M0MxMi40Mjk2IDIwLjQyMDkgMTIuMjIyNCAyMC42MjgxIDExLjk2NjggMjAuNjI4MUMxMS43MTEyIDIwLjYyODEgMTEuNTA0IDIwLjQyMDkgMTEuNTA0IDIwLjE2NTNDMTEuNTA0IDE5LjkwOTcgMTEuNzExMiAxOS43MDI1IDExLjk2NjggMTkuNzAyNUMxMi4yMjI0IDE5LjcwMjUgMTIuNDI5NiAxOS45MDk3IDEyLjQyOTYgMjAuMTY1M1oiLz4KPC9zdmc+Cg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -17,13 +17,11 @@ const Graphql = createSupabaseIcon( 'path', { d: 'M11.9007 3.76857L19.0007 7.86775V16.0661M11.9007 3.76857L4.80072 7.86775V16.0661M11.9007 3.76857L19.0007 16.0661M11.9007 3.76857L4.80072 16.0661M19.0007 16.0661L11.9007 20.1653L4.80072 16.0661M19.0007 16.0661H4.80072M6.0164 16.1322C6.0164 16.7895 5.48358 17.3223 4.82631 17.3223C4.16905 17.3223 3.63623 16.7895 3.63623 16.1322C3.63623 15.4749 4.16905 14.9421 4.82631 14.9421C5.48358 14.9421 6.0164 15.4749 6.0164 16.1322ZM5.28912 16.1322C5.28912 16.3878 5.08192 16.595 4.82631 16.595C4.57071 16.595 4.3635 16.3878 4.3635 16.1322C4.3635 15.8766 4.57071 15.6694 4.82631 15.6694C5.08192 15.6694 5.28912 15.8766 5.28912 16.1322ZM20.2974 16.1322C20.2974 16.7895 19.7646 17.3223 19.1073 17.3223C18.45 17.3223 17.9172 16.7895 17.9172 16.1322C17.9172 15.4749 18.45 14.9421 19.1073 14.9421C19.7646 14.9421 20.2974 15.4749 20.2974 16.1322ZM19.5701 16.1322C19.5701 16.3878 19.3629 16.595 19.1073 16.595C18.8517 16.595 18.6445 16.3878 18.6445 16.1322C18.6445 15.8766 18.8517 15.6694 19.1073 15.6694C19.3629 15.6694 19.5701 15.8766 19.5701 16.1322ZM6.0164 7.86775C6.0164 8.52501 5.48358 9.05783 4.82631 9.05783C4.16905 9.05783 3.63623 8.52501 3.63623 7.86775C3.63623 7.21048 4.16905 6.67766 4.82631 6.67766C5.48358 6.67766 6.0164 7.21048 6.0164 7.86775ZM5.28912 7.86775C5.28912 8.12335 5.08192 8.33056 4.82631 8.33056C4.57071 8.33056 4.3635 8.12335 4.3635 7.86775C4.3635 7.61214 4.57071 7.40494 4.82631 7.40494C5.08192 7.40494 5.28912 7.61214 5.28912 7.86775ZM20.2974 7.86775C20.2974 8.52501 19.7646 9.05783 19.1073 9.05783C18.45 9.05783 17.9172 8.52501 17.9172 7.86775C17.9172 7.21048 18.45 6.67766 19.1073 6.67766C19.7646 6.67766 20.2974 7.21048 20.2974 7.86775ZM19.5701 7.86775C19.5701 8.12335 19.3629 8.33056 19.1073 8.33056C18.8517 8.33056 18.6445 8.12335 18.6445 7.86775C18.6445 7.61214 18.8517 7.40494 19.1073 7.40494C19.3629 7.40494 19.5701 7.61214 19.5701 7.86775ZM13.1569 3.76857C13.1569 4.42584 12.6241 4.95866 11.9668 4.95866C11.3095 4.95866 10.7767 4.42584 10.7767 3.76857C10.7767 3.11131 11.3095 2.57849 11.9668 2.57849C12.6241 2.57849 13.1569 3.11131 13.1569 3.76857ZM12.4296 3.76857C12.4296 4.02418 12.2224 4.23138 11.9668 4.23138C11.7112 4.23138 11.504 4.02418 11.504 3.76857C11.504 3.51297 11.7112 3.30576 11.9668 3.30576C12.2224 3.30576 12.4296 3.51297 12.4296 3.76857ZM13.1569 20.1653C13.1569 20.8225 12.6241 21.3553 11.9668 21.3553C11.3095 21.3553 10.7767 20.8225 10.7767 20.1653C10.7767 19.508 11.3095 18.9752 11.9668 18.9752C12.6241 18.9752 13.1569 19.508 13.1569 20.1653ZM12.4296 20.1653C12.4296 20.4209 12.2224 20.6281 11.9668 20.6281C11.7112 20.6281 11.504 20.4209 11.504 20.1653C11.504 19.9097 11.7112 19.7025 11.9668 19.7025C12.2224 19.7025 12.4296 19.9097 12.4296 20.1653Z', - stroke: 'currentColor', - 'stroke-width': '0.859504', - key: 'tj71qx', + key: 'cx9hfh', }, ], ], - { fill: 'none' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Graphql; diff --git a/packages/icons/src/icons/home.ts b/packages/icons/src/icons/home.ts index bee50b89ec1fa..8d72f616ff5ab 100644 --- a/packages/icons/src/icons/home.ts +++ b/packages/icons/src/icons/home.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Home * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik05LjQzNDE0IDIwLjgwM1YxMy4wNTU3QzkuNDM0MTQgMTIuNTAzNCA5Ljg4MTg2IDEyLjA1NTcgMTAuNDM0MSAxMi4wNTU3SDE0Ljc2NzlDMTUuMzIwMiAxMi4wNTU3IDE1Ljc2NzkgMTIuNTAzNCAxNS43Njc5IDEzLjA1NTdWMjAuODAzTTEyLjAxODEgMy40ODc5OEw1LjUzMDMxIDcuOTk4NEM1LjI2MTQ1IDguMTg1MzIgNS4xMDExNCA4LjQ5MjAyIDUuMTAxMTQgOC44MTk0OEw1LjEwMTE3IDE4LjgwM0M1LjEwMTE3IDE5LjkwNzUgNS45OTY2IDIwLjgwMyA3LjEwMTE3IDIwLjgwM0gxOC4xMDEyQzE5LjIwNTcgMjAuODAzIDIwLjEwMTIgMTkuOTA3NSAyMC4xMDEyIDE4LjgwM0wyMC4xMDExIDguODg1NTRDMjAuMTAxMSA4LjU1OTg4IDE5Ljk0MjYgOC4yNTQ2MiAxOS42NzYxIDguMDY3MzdMMTMuMTYzOSAzLjQ5MDg4QzEyLjgyMDQgMy4yNDk1MSAxMi4zNjI3IDMuMjQ4MzYgMTIuMDE4MSAzLjQ4Nzk4WiIgLz4KPC9zdmc+) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTkuNDM0MTQgMjAuODAzVjEzLjA1NTdDOS40MzQxNCAxMi41MDM0IDkuODgxODYgMTIuMDU1NyAxMC40MzQxIDEyLjA1NTdIMTQuNzY3OUMxNS4zMjAyIDEyLjA1NTcgMTUuNzY3OSAxMi41MDM0IDE1Ljc2NzkgMTMuMDU1N1YyMC44MDNNMTIuMDE4MSAzLjQ4Nzk4TDUuNTMwMzEgNy45OTg0QzUuMjYxNDUgOC4xODUzMiA1LjEwMTE0IDguNDkyMDIgNS4xMDExNCA4LjgxOTQ4TDUuMTAxMTcgMTguODAzQzUuMTAxMTcgMTkuOTA3NSA1Ljk5NjYgMjAuODAzIDcuMTAxMTcgMjAuODAzSDE4LjEwMTJDMTkuMjA1NyAyMC44MDMgMjAuMTAxMiAxOS45MDc1IDIwLjEwMTIgMTguODAzTDIwLjEwMTEgOC44ODU1NEMyMC4xMDExIDguNTU5ODggMTkuOTQyNiA4LjI1NDYyIDE5LjY3NjEgOC4wNjczN0wxMy4xNjM5IDMuNDkwODhDMTIuODIwNCAzLjI0OTUxIDEyLjM2MjcgMy4yNDgzNiAxMi4wMTgxIDMuNDg3OThaIiAvPgo8L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Home = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Home; diff --git a/packages/icons/src/icons/insert-code.ts b/packages/icons/src/icons/insert-code.ts index 03b89aacba61e..5ba5fd97d6758 100644 --- a/packages/icons/src/icons/insert-code.ts +++ b/packages/icons/src/icons/insert-code.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name InsertCode * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxwYXRoCiAgICAgICAgZD0iTS0yMDQzNyAtMTExNDJIMTIxMzFWLTExMTQ0SC0yMDQzN1YtMTExNDJaTTEyMTMyIC0xMTE0MVY3MTEzSDEyMTM0Vi0xMTE0MUgxMjEzMlpNMTIxMzEgNzExNEgtMjA0MzdWNzExNkgxMjEzMVY3MTE0Wk0tMjA0MzggNzExM1YtMTExNDFILTIwNDQwVjcxMTNILTIwNDM4Wk0tMjA0MzcgNzExNEMtMjA0MzcuNiA3MTE0IC0yMDQzOCA3MTEzLjU1IC0yMDQzOCA3MTEzSC0yMDQ0MEMtMjA0NDAgNzExNC42NiAtMjA0MzguNyA3MTE2IC0yMDQzNyA3MTE2VjcxMTRaTTEyMTMyIDcxMTNDMTIxMzIgNzExMy41NSAxMjEzMS42IDcxMTQgMTIxMzEgNzExNFY3MTE2QzEyMTMyLjcgNzExNiAxMjEzNCA3MTE0LjY2IDEyMTM0IDcxMTNIMTIxMzJaTTEyMTMxIC0xMTE0MkMxMjEzMS42IC0xMTE0MiAxMjEzMiAtMTExNDEuNiAxMjEzMiAtMTExNDFIMTIxMzRDMTIxMzQgLTExMTQyLjcgMTIxMzIuNyAtMTExNDQgMTIxMzEgLTExMTQ0Vi0xMTE0MlpNLTIwNDM3IC0xMTE0NEMtMjA0MzguNyAtMTExNDQgLTIwNDQwIC0xMTE0Mi43IC0yMDQ0MCAtMTExNDFILTIwNDM4Qy0yMDQzOCAtMTExNDEuNiAtMjA0MzcuNiAtMTExNDIgLTIwNDM3IC0xMTE0MlYtMTExNDRaIgogICAgICAgIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuMSIgLz4KICAgIDxwYXRoIGQ9Ik0yMi44NDM3IDguNjk0OTlMMTkuNTM2OSAxMi4wMDE4TDIyLjg0MzggMTUuMzA4NiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgogICAgPHJlY3QgeD0iMC41IiB5PSIxNC4wNjI1IiB3aWR0aD0iMTYiIGhlaWdodD0iOCIgcng9IjEiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIC8+CiAgICA8cmVjdCB4PSIwLjUiIHk9IjEuOTM3NSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHJ4PSIxIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGgKICAgICAgICBkPSJNLTIwNDM3IC0xMTE0MkgxMjEzMVYtMTExNDRILTIwNDM3Vi0xMTE0MlpNMTIxMzIgLTExMTQxVjcxMTNIMTIxMzRWLTExMTQxSDEyMTMyWk0xMjEzMSA3MTE0SC0yMDQzN1Y3MTE2SDEyMTMxVjcxMTRaTS0yMDQzOCA3MTEzVi0xMTE0MUgtMjA0NDBWNzExM0gtMjA0MzhaTS0yMDQzNyA3MTE0Qy0yMDQzNy42IDcxMTQgLTIwNDM4IDcxMTMuNTUgLTIwNDM4IDcxMTNILTIwNDQwQy0yMDQ0MCA3MTE0LjY2IC0yMDQzOC43IDcxMTYgLTIwNDM3IDcxMTZWNzExNFpNMTIxMzIgNzExM0MxMjEzMiA3MTEzLjU1IDEyMTMxLjYgNzExNCAxMjEzMSA3MTE0VjcxMTZDMTIxMzIuNyA3MTE2IDEyMTM0IDcxMTQuNjYgMTIxMzQgNzExM0gxMjEzMlpNMTIxMzEgLTExMTQyQzEyMTMxLjYgLTExMTQyIDEyMTMyIC0xMTE0MS42IDEyMTMyIC0xMTE0MUgxMjEzNEMxMjEzNCAtMTExNDIuNyAxMjEzMi43IC0xMTE0NCAxMjEzMSAtMTExNDRWLTExMTQyWk0tMjA0MzcgLTExMTQ0Qy0yMDQzOC43IC0xMTE0NCAtMjA0NDAgLTExMTQyLjcgLTIwNDQwIC0xMTE0MUgtMjA0MzhDLTIwNDM4IC0xMTE0MS42IC0yMDQzNy42IC0xMTE0MiAtMjA0MzcgLTExMTQyVi0xMTE0NFoiCiAgICAgICAgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4xIiAvPgogICAgPHBhdGggZD0iTTIyLjg0MzcgOC42OTQ5OUwxOS41MzY5IDEyLjAwMThMMjIuODQzOCAxNS4zMDg2IiAvPgogICAgPHJlY3QgeD0iMC41IiB5PSIxNC4wNjI1IiB3aWR0aD0iMTYiIGhlaWdodD0iOCIgcng9IjEiIC8+CiAgICA8cmVjdCB4PSIwLjUiIHk9IjEuOTM3NSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjgiIHJ4PSIxIiAvPgo8L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -22,44 +22,14 @@ const InsertCode = createSupabaseIcon( key: 'iaqtc1', }, ], - [ - 'path', - { - d: 'M22.8437 8.69499L19.5369 12.0018L22.8438 15.3086', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1gnkuu', - }, - ], - [ - 'rect', - { - x: '0.5', - y: '14.0625', - width: '16', - height: '8', - rx: '1', - 'stroke-linejoin': 'round', - key: 't6herz', - }, - ], - [ - 'rect', - { - x: '0.5', - y: '1.9375', - width: '16', - height: '8', - rx: '1', - 'stroke-linejoin': 'round', - key: '718qtu', - }, - ], + ['path', { d: 'M22.8437 8.69499L19.5369 12.0018L22.8438 15.3086', key: '1jwljd' }], + ['rect', { x: '0.5', y: '14.0625', width: '16', height: '8', rx: '1', key: 'hj20ku' }], + ['rect', { x: '0.5', y: '1.9375', width: '16', height: '8', rx: '1', key: 's8jbkj' }], ], { fill: 'none', stroke: 'currentColor', - strokeWidth: '1', + strokeWidth: '1.5', strokeLinecap: 'round', strokeLinejoin: 'round', }, diff --git a/packages/icons/src/icons/integrations.ts b/packages/icons/src/icons/integrations.ts index 41483c7c6460a..482c5052ec678 100644 --- a/packages/icons/src/icons/integrations.ts +++ b/packages/icons/src/icons/integrations.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Integrations * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xNy4yNjYxIDMuMjMyNTRWMTAuNzMyNU0xMy41MTYxIDYuOTgyOTFMMjEuMDE2MSA2Ljk4MjkxTTExLjAzOTEgMTYuOTUwOEMxMS4wMzkxIDE5LjE3NTIgOS4yMzU4NSAyMC45Nzg0IDcuMDExNDcgMjAuOTc4NEM0Ljc4NzEgMjAuOTc4NCAyLjk4Mzg5IDE5LjE3NTIgMi45ODM4OSAxNi45NTA4QzIuOTgzODkgMTQuNzI2NCA0Ljc4NzEgMTIuOTIzMiA3LjAxMTQ3IDEyLjkyMzJDOS4yMzU4NSAxMi45MjMyIDExLjAzOTEgMTQuNzI2NCAxMS4wMzkxIDE2Ljk1MDhaTTIxLjAxNjEgMTkuODU2OFYxNC4zNTY4QzIxLjAxNjEgMTMuODA0NSAyMC41Njg0IDEzLjM1NjggMjAuMDE2MSAxMy4zNTY4SDE0LjUxNjFDMTMuOTYzOCAxMy4zNTY4IDEzLjUxNjEgMTMuODA0NSAxMy41MTYxIDE0LjM1NjhWMTkuODU2OEMxMy41MTYxIDIwLjQwOTEgMTMuOTYzOCAyMC44NTY4IDE0LjUxNjEgMjAuODU2OEgyMC4wMTYxQzIwLjU2ODQgMjAuODU2OCAyMS4wMTYxIDIwLjQwOTEgMjEuMDE2MSAxOS44NTY4Wk00LjI2MjIxIDEwLjczMjVIOS43NjIyMUMxMC4zMTQ1IDEwLjczMjUgMTAuNzYyMiAxMC4yODQ4IDEwLjc2MjIgOS43MzI1NFY0LjIzMjU0QzEwLjc2MjIgMy42ODAyNiAxMC4zMTQ1IDMuMjMyNTQgOS43NjIyMSAzLjIzMjU0SDQuMjYyMjFDMy43MDk5MiAzLjIzMjU0IDMuMjYyMjEgMy42ODAyNiAzLjI2MjIxIDQuMjMyNTRWOS43MzI1NEMzLjI2MjIxIDEwLjI4NDggMy43MDk5MiAxMC43MzI1IDQuMjYyMjEgMTAuNzMyNVoiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE3LjI2NjEgMy4yMzI1NFYxMC43MzI1TTEzLjUxNjEgNi45ODI5MUwyMS4wMTYxIDYuOTgyOTFNMTEuMDM5MSAxNi45NTA4QzExLjAzOTEgMTkuMTc1MiA5LjIzNTg1IDIwLjk3ODQgNy4wMTE0NyAyMC45Nzg0QzQuNzg3MSAyMC45Nzg0IDIuOTgzODkgMTkuMTc1MiAyLjk4Mzg5IDE2Ljk1MDhDMi45ODM4OSAxNC43MjY0IDQuNzg3MSAxMi45MjMyIDcuMDExNDcgMTIuOTIzMkM5LjIzNTg1IDEyLjkyMzIgMTEuMDM5MSAxNC43MjY0IDExLjAzOTEgMTYuOTUwOFpNMjEuMDE2MSAxOS44NTY4VjE0LjM1NjhDMjEuMDE2MSAxMy44MDQ1IDIwLjU2ODQgMTMuMzU2OCAyMC4wMTYxIDEzLjM1NjhIMTQuNTE2MUMxMy45NjM4IDEzLjM1NjggMTMuNTE2MSAxMy44MDQ1IDEzLjUxNjEgMTQuMzU2OFYxOS44NTY4QzEzLjUxNjEgMjAuNDA5MSAxMy45NjM4IDIwLjg1NjggMTQuNTE2MSAyMC44NTY4SDIwLjAxNjFDMjAuNTY4NCAyMC44NTY4IDIxLjAxNjEgMjAuNDA5MSAyMS4wMTYxIDE5Ljg1NjhaTTQuMjYyMjEgMTAuNzMyNUg5Ljc2MjIxQzEwLjMxNDUgMTAuNzMyNSAxMC43NjIyIDEwLjI4NDggMTAuNzYyMiA5LjczMjU0VjQuMjMyNTRDMTAuNzYyMiAzLjY4MDI2IDEwLjMxNDUgMy4yMzI1NCA5Ljc2MjIxIDMuMjMyNTRINC4yNjIyMUMzLjcwOTkyIDMuMjMyNTQgMy4yNjIyMSAzLjY4MDI2IDMuMjYyMjEgNC4yMzI1NFY5LjczMjU0QzMuMjYyMjEgMTAuMjg0OCAzLjcwOTkyIDEwLjczMjUgNC4yNjIyMSAxMC43MzI1WiIgLz4KPC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Integrations = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Integrations; diff --git a/packages/icons/src/icons/logs.ts b/packages/icons/src/icons/logs.ts index 029c2ded54684..2ab9b9e9b83d4 100644 --- a/packages/icons/src/icons/logs.ts +++ b/packages/icons/src/icons/logs.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Logs * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik00LjUgNS4yMDY3OUg0LjUzNzEzTTcuNDYyNDEgNS4yMTcwN0gxOS41TTQuNSA5LjY1ODM5SDQuNTM3MTNNNy40NjI0MSA5LjY2ODY4SDE5LjVNNC41MjY5MiAxNC4xNjRINC41MzcxM003LjQ2MjQxIDE0LjE3NDJIMTkuNU00LjUyNjkyIDE4LjcwNjhMNC41MzcxMyAxOC42OTY1TTcuNDYyNDEgMTguNzA2OEgxOS41IiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTQuNSA1LjIwNjc5SDQuNTM3MTNNNy40NjI0MSA1LjIxNzA3SDE5LjVNNC41IDkuNjU4MzlINC41MzcxM003LjQ2MjQxIDkuNjY4NjhIMTkuNU00LjUyNjkyIDE0LjE2NEg0LjUzNzEzTTcuNDYyNDEgMTQuMTc0MkgxOS41TTQuNTI2OTIgMTguNzA2OEw0LjUzNzEzIDE4LjY5NjVNNy40NjI0MSAxOC43MDY4SDE5LjUiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Logs = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Logs; diff --git a/packages/icons/src/icons/otlp.ts b/packages/icons/src/icons/otlp.ts index b8d3b622699f4..6859d20349c14 100644 --- a/packages/icons/src/icons/otlp.ts +++ b/packages/icons/src/icons/otlp.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Otlp * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gIDxwYXRoIGQ9Ik0xMi42OCAxMy4wOWMtLjk4NCAuOTg0LS45ODQgMi41OCAwIDMuNTY0Ljk4NC45ODQgMi41OC45ODQgMy41NjQgMCAuOTg0LS45ODQuOTg0LTIuNTggMC0zLjU2NC0uOTg0LS45ODQtMi41OC0uOTg0LTMuNTY0IDB6bTIuNjY0IDIuNjY2YTEuMjQ2IDEuMjQ2IDAgMCAxLTEuNzY0IDAgMS4yNDYgMS4yNDYgMCAwIDEgMC0xLjc2NCAxLjI0NiAxLjI0NiAwIDAgMSAxLjc2NCAwYy40ODcuNDg1LjQ4NyAxLjI3NyAwIDEuNzY0ek0xNi4yMDUuNjg4bC0xLjU0NCAxLjU0NGEuNzgyLjc4MiAwIDAgMCAwIDEuMTAybDYuMDI4IDYuMDI4YS43ODIuNzgyIDAgMCAwIDEuMTAyIDBsMS41NDQtMS41NDRjLjMwMi0uMzAyLjMwMi0uNzk5IDAtMS4xMDFsLTYuMDI4LTYuMDI4YS43OC43OCAwIDAgMC0xLjEwMiAwek01LjM4OCAyMC40MThhLjcwNi43MDYgMCAwIDAgMC0uOTk2bC0uNzg0LS43ODRhLjcwNi43MDYgMCAwIDAtLjk5NiAwbC0xLjYyMSAxLjYyMS0uMDAzLjAwMi0uNDQ1LS40NDVjLS4yNDYtLjI0Ni0uNjQ3LS4yNDYtLjg5MSAwLS4yNDYuMjQ2LS4yNDYuNjQ3IDAgLjg5MWwyLjY3MSAyLjY3MWEuNjI5LjYyOSAwIDAgMCAuODkgMGMuMjQ0LS4yNDYuMjQ2LS42NDcgMC0uODlsLS40NDUtLjQ0NS4wMDMtLjAwMnptMCAwIi8+CiAgPHBhdGggZD0iTTEzLjU1NSA1LjEyMSAxMC4xMjYgOC41NWMtLjMwNS4zMDUtLjMwNS44MDYgMCAxLjExMWwyLjExOSAyLjExOWMxLjQ5Ny0xLjA3OCAzLjU5Ni0uOTQ0IDQuOTQzLjQwNGwxLjcxNS0xLjcxNWMuMzA0LS4zMDUuMzA0LS44MDYgMC0xLjExMWwtMy40MjktMy40MjlhLjc4NS43ODUgMCAwIDAtMS4xMSAwek0xMS4zNTMgMTIuNjczbC0xLjI1MS0xLjI1MWMtLjI5My0uMjkzLS43NzMtLjI5My0xLjA2NiAwbC00LjQxMSA0LjQxM2EuNzU3Ljc1NyAwIDAgMCAwIDEuMDY2bDIuNSAyLjVhLjc1Ny43NTcgMCAwIDAgMS4wNjYgMGwyLjgzNy0yLjg0MmMtLjYtMS4yNC0uNDkyLTIuNzM1LjMyNS0zLjg4NnptMCAwIi8+Cjwvc3ZnPgo=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICA8cGF0aCBkPSJNMTIuNjggMTMuMDljLS45ODQgLjk4NC0uOTg0IDIuNTggMCAzLjU2NC45ODQuOTg0IDIuNTguOTg0IDMuNTY0IDAgLjk4NC0uOTg0Ljk4NC0yLjU4IDAtMy41NjQtLjk4NC0uOTg0LTIuNTgtLjk4NC0zLjU2NCAwem0yLjY2NCAyLjY2NmExLjI0NiAxLjI0NiAwIDAgMS0xLjc2NCAwIDEuMjQ2IDEuMjQ2IDAgMCAxIDAtMS43NjQgMS4yNDYgMS4yNDYgMCAwIDEgMS43NjQgMGMuNDg3LjQ4NS40ODcgMS4yNzcgMCAxLjc2NHpNMTYuMjA1LjY4OGwtMS41NDQgMS41NDRhLjc4Mi43ODIgMCAwIDAgMCAxLjEwMmw2LjAyOCA2LjAyOGEuNzgyLjc4MiAwIDAgMCAxLjEwMiAwbDEuNTQ0LTEuNTQ0Yy4zMDItLjMwMi4zMDItLjc5OSAwLTEuMTAxbC02LjAyOC02LjAyOGEuNzguNzggMCAwIDAtMS4xMDIgMHpNNS4zODggMjAuNDE4YS43MDYuNzA2IDAgMCAwIDAtLjk5NmwtLjc4NC0uNzg0YS43MDYuNzA2IDAgMCAwLS45OTYgMGwtMS42MjEgMS42MjEtLjAwMy4wMDItLjQ0NS0uNDQ1Yy0uMjQ2LS4yNDYtLjY0Ny0uMjQ2LS44OTEgMC0uMjQ2LjI0Ni0uMjQ2LjY0NyAwIC44OTFsMi42NzEgMi42NzFhLjYyOS42MjkgMCAwIDAgLjg5IDBjLjI0NC0uMjQ2LjI0Ni0uNjQ3IDAtLjg5bC0uNDQ1LS40NDUuMDAzLS4wMDJ6bTAgMCIvPgogIDxwYXRoIGQ9Ik0xMy41NTUgNS4xMjEgMTAuMTI2IDguNTVjLS4zMDUuMzA1LS4zMDUuODA2IDAgMS4xMTFsMi4xMTkgMi4xMTljMS40OTctMS4wNzggMy41OTYtLjk0NCA0Ljk0My40MDRsMS43MTUtMS43MTVjLjMwNC0uMzA1LjMwNC0uODA2IDAtMS4xMTFsLTMuNDI5LTMuNDI5YS43ODUuNzg1IDAgMCAwLTEuMTEgMHpNMTEuMzUzIDEyLjY3M2wtMS4yNTEtMS4yNTFjLS4yOTMtLjI5My0uNzczLS4yOTMtMS4wNjYgMGwtNC40MTEgNC40MTNhLjc1Ny43NTcgMCAwIDAgMCAxLjA2NmwyLjUgMi41YS43NTcuNzU3IDAgMCAwIDEuMDY2IDBsMi44MzctMi44NDJjLS42LTEuMjQtLjQ5Mi0yLjczNS4zMjUtMy44ODZ6bTAgMCIvPgo8L3N2Zz4K) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -28,7 +28,7 @@ const Otlp = createSupabaseIcon( }, ], ], - { fill: 'currentColor', stroke: 'currentColor', strokeWidth: '0' }, + { fill: 'currentColor', stroke: 'none' }, ); export default Otlp; diff --git a/packages/icons/src/icons/postgres.ts b/packages/icons/src/icons/postgres.ts index edda4907a243f..d77015cc61482 100644 --- a/packages/icons/src/icons/postgres.ts +++ b/packages/icons/src/icons/postgres.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Postgres * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xMS41NDY2IDMuMjMxMDhDMTEuMjcwNCAzLjIzMTA4IDExLjA0NjYgMy40NTQ5NCAxMS4wNDY2IDMuNzMxMDhDMTEuMDQ2NiA0LjAwNzIyIDExLjI3MDQgNC4yMzEwOCAxMS41NDY2IDQuMjMxMDhWMy4yMzEwOFpNMjAuNjU2OSAxOS41MDQ2QzIwLjY1NjkgMTkuMjI4NSAyMC40MzMgMTkuMDA0NiAyMC4xNTY5IDE5LjAwNDZDMTkuODgwOCAxOS4wMDQ2IDE5LjY1NjkgMTkuMjI4NSAxOS42NTY5IDE5LjUwNDZIMjAuNjU2OVpNMTkuNjU2OSAxNS45NjU2QzE5LjY1NjkgMTYuMjQxNyAxOS44ODA4IDE2LjQ2NTYgMjAuMTU2OSAxNi40NjU2QzIwLjQzMyAxNi40NjU2IDIwLjY1NjkgMTYuMjQxNyAyMC42NTY5IDE1Ljk2NTZIMTkuNjU2OVpNMTMuMDExOSAxOS41NTM2QzEyLjk1OSAxOS4yODI2IDEyLjY5NjQgMTkuMTA1OCAxMi40MjU0IDE5LjE1ODZDMTIuMTU0NCAxOS4yMTE1IDExLjk3NzUgMTkuNDc0MSAxMi4wMzA0IDE5Ljc0NTJMMTMuMDExOSAxOS41NTM2Wk05Ljg3MzgxIDE4Ljg1NjVMOS4zNzM4MSAxOC44NTY1VjE4Ljg1NjVIOS44NzM4MVpNNC4yMDcyMSA1LjI5OTMyTDMuNzM3ODQgNS4xMjY5OUwzLjczNzg0IDUuMTI3TDQuMjA3MjEgNS4yOTkzMlpNMi41MjUyNyA5Ljg4MDQ2TDIuMDU1OSA5LjcwODE0TDIuMDU1OSA5LjcwODE0TDIuNTI1MjcgOS44ODA0NlpNMy4yNDkyMiAxMi42ODczTDIuOTIxNzYgMTMuMDY1MUwyLjkyMTc2IDEzLjA2NTFMMy4yNDkyMiAxMi42ODczWk00LjQwMzM0IDEzLjY4NzVMNC4wNzU4OCAxNC4wNjUzTDQuMDc1ODggMTQuMDY1M0w0LjQwMzM0IDEzLjY4NzVaTTUuMDA5NzEgMTUuMDE1NEw0LjUwOTcxIDE1LjAxNTRMNC41MDk3MSAxNS4wMTU0TDUuMDA5NzEgMTUuMDE1NFpNNS4wMDk2OSAxNi44NTM2TDUuNTA5NjkgMTYuODUzNkw1LjUwOTY5IDE2Ljg1MzZMNS4wMDk2OSAxNi44NTM2Wk05Ljg3Mzg1IDEwLjY2NjFMOS4zNzM4NSAxMC42NjYxTDkuMzczODUgMTAuNjY2MUw5Ljg3Mzg1IDEwLjY2NjFaTTExLjkzOTkgNi45MDc4M0MxMi4xMzYgNi43MTMzOSAxMi4xMzczIDYuMzk2ODEgMTEuOTQyOSA2LjIwMDczQzExLjc0ODQgNi4wMDQ2NCAxMS40MzE5IDYuMDAzMzEgMTEuMjM1OCA2LjE5Nzc0TDExLjkzOTkgNi45MDc4M1pNMTcuODQxIDE4Ljc1MDZMMTcuODQwOSAxOC4yNTA2TDE3Ljg0MDkgMTguMjUwNkwxNy44NDEgMTguNzUwNlpNMjMuMDY3NiAxOS4yNTA2QzIzLjM0MzcgMTkuMjUwNiAyMy41Njc2IDE5LjAyNjcgMjMuNTY3NSAxOC43NTA2QzIzLjU2NzUgMTguNDc0NCAyMy4zNDM3IDE4LjI1MDYgMjMuMDY3NSAxOC4yNTA2TDIzLjA2NzYgMTkuMjUwNlpNMTMuMDE3MSAxNS4yNDQ2QzEyLjg5NTUgMTQuOTk2NyAxMi41OTU5IDE0Ljg5NDMgMTIuMzQ4IDE1LjAxNkMxMi4xMDAxIDE1LjEzNzYgMTEuOTk3OCAxNS40MzcyIDEyLjExOTQgMTUuNjg1MUwxMy4wMTcxIDE1LjI0NDZaTTExLjU0NjYgNC4yMzEwOEgxMi42MDhWMy4yMzEwOEgxMS41NDY2VjQuMjMxMDhaTTE5LjY1NjkgMTkuNTA0NkMxOS42NTY5IDIxLjAyNjQgMTguMjQ2NyAyMi4yNjA2IDE2LjMwMzMgMjIuMjYwNlYyMy4yNjA2QzE4LjYxNjUgMjMuMjYwNiAyMC42NTY5IDIxLjc0NDkgMjAuNjU2OSAxOS41MDQ2SDE5LjY1NjlaTTEyLjYwOCA0LjIzMTA4QzE2LjUwMSA0LjIzMTA4IDE5LjY1NjkgNy4zODY5OCAxOS42NTY5IDExLjI4SDIwLjY1NjlDMjAuNjU2OSA2LjgzNDcgMTcuMDUzMyAzLjIzMTA4IDEyLjYwOCAzLjIzMTA4VjQuMjMxMDhaTTE5LjY1NjkgMTEuMjhWMTUuOTY1NkgyMC42NTY5VjExLjI4SDE5LjY1NjlaTTE2LjMwMzMgMjIuMjYwNkMxNC42NzI3IDIyLjI2MDYgMTMuMzEzIDIxLjA5NjQgMTMuMDExOSAxOS41NTM2TDEyLjAzMDQgMTkuNzQ1MkMxMi40MjE0IDIxLjc0ODUgMTQuMTg1MiAyMy4yNjA2IDE2LjMwMzMgMjMuMjYwNlYyMi4yNjA2Wk0xMS42NTUyIDMuMjIzMzlINi40NjQ1OVY0LjIyMzM5SDExLjY1NTJWMy4yMjMzOVpNMy43Mzc4NCA1LjEyN0wyLjA1NTkgOS43MDgxNEwyLjk5NDY0IDEwLjA1MjhMNC42NzY1OCA1LjQ3MTY0TDMuNzM3ODQgNS4xMjdaTTIuOTIxNzYgMTMuMDY1MUw0LjA3NTg4IDE0LjA2NTNMNC43MzA4IDEzLjMwOTZMMy41NzY2OCAxMi4zMDk0TDIuOTIxNzYgMTMuMDY1MVpNNC41MDk3MSAxNS4wMTU0TDQuNTA5NjkgMTYuODUzNkw1LjUwOTY5IDE2Ljg1MzZMNS41MDk3MSAxNS4wMTU0TDQuNTA5NzEgMTUuMDE1NFpNMTAuMzczOSAxMC42NjYxQzEwLjM3MzkgOS4yNTQ2MyAxMC45Mzc2IDcuOTAxNjYgMTEuOTM5OSA2LjkwNzgzTDExLjIzNTggNi4xOTc3NEMxMC4wNDQyIDcuMzc5MzQgOS4zNzM4NyA4Ljk4Nzk1IDkuMzczODUgMTAuNjY2MUwxMC4zNzM5IDEwLjY2NjFaTTIuMDU1OSA5LjcwODE0QzEuNjE4OTMgMTAuODk4MyAxLjk2MzYzIDEyLjIzNDggMi45MjE3NiAxMy4wNjUxTDMuNTc2NjggMTIuMzA5NEMyLjkzMjYgMTEuNzUxMiAyLjcwMDg5IDEwLjg1MjkgMi45OTQ2NCAxMC4wNTI4TDIuMDU1OSA5LjcwODE0Wk04LjQ0MzE5IDIwLjc4NzJDOS41MDk0NCAyMC43ODcyIDEwLjM3MzggMTkuOTIyOCAxMC4zNzM4IDE4Ljg1NjVIOS4zNzM4MUM5LjM3MzgxIDE5LjM3MDUgOC45NTcxNiAxOS43ODcyIDguNDQzMTkgMTkuNzg3MlYyMC43ODcyWk04LjQ0MzE5IDE5Ljc4NzJDNi44MjMwNSAxOS43ODcyIDUuNTA5NjcgMTguNDczOCA1LjUwOTY5IDE2Ljg1MzZMNC41MDk2OSAxNi44NTM2QzQuNTA5NjYgMTkuMDI2IDYuMjcwNzUgMjAuNzg3MiA4LjQ0MzE5IDIwLjc4NzJWMTkuNzg3MlpNNC4wNzU4OCAxNC4wNjUzQzQuMzUxNDIgMTQuMzA0MSA0LjUwOTcyIDE0LjY1MDggNC41MDk3MSAxNS4wMTU0TDUuNTA5NzEgMTUuMDE1NEM1LjUwOTcyIDE0LjM2MDggNS4yMjU1MiAxMy43Mzg0IDQuNzMwOCAxMy4zMDk2TDQuMDc1ODggMTQuMDY1M1pNNi40NjQ1OSAzLjIyMzM5QzUuMjQ2NDMgMy4yMjMzOSA0LjE1NzY4IDMuOTgzNDcgMy43Mzc4NCA1LjEyNjk5TDQuNjc2NTggNS40NzE2NEM0Ljk1MTg4IDQuNzIxOCA1LjY2NTgxIDQuMjIzMzkgNi40NjQ1OSA0LjIyMzM5VjMuMjIzMzlaTTE3Ljg0MSAxOS4yNTA2TDIzLjA2NzYgMTkuMjUwNkwyMy4wNjc1IDE4LjI1MDZMMTcuODQwOSAxOC4yNTA2TDE3Ljg0MSAxOS4yNTA2Wk0xMi4xMTk0IDE1LjY4NTFDMTMuMTkwNSAxNy44Njc2IDE1LjQwOTggMTkuMjUwNyAxNy44NDEgMTkuMjUwNkwxNy44NDA5IDE4LjI1MDZDMTUuNzkxMyAxOC4yNTA3IDEzLjkyMDEgMTcuMDg0NiAxMy4wMTcxIDE1LjI0NDZMMTIuMTE5NCAxNS42ODUxWk0xMC4zNzM4IDE4Ljg1NjVMMTAuMzczOSAxMC42NjYxTDkuMzczODUgMTAuNjY2MUw5LjM3MzgxIDE4Ljg1NjVMMTAuMzczOCAxOC44NTY1WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE1LjcxNTEgMTEuMjA1NkMxNS43MTUxIDExLjYyNTcgMTYuMDU1NiAxMS45NjYzIDE2LjQ3NTggMTEuOTY2M0MxNi44OTU5IDExLjk2NjMgMTcuMjM2NSAxMS42MjU3IDE3LjIzNjUgMTEuMjA1NkMxNy4yMzY1IDEwLjc4NTQgMTYuODk1OSAxMC40NDQ4IDE2LjQ3NTggMTAuNDQ0OEMxNi4wNTU2IDEwLjQ0NDggMTUuNzE1MSAxMC43ODU0IDE1LjcxNTEgMTEuMjA1NloiIC8+Cjwvc3ZnPgo=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTExLjU0NjYgMy4yMzEwOEMxMS4yNzA0IDMuMjMxMDggMTEuMDQ2NiAzLjQ1NDk0IDExLjA0NjYgMy43MzEwOEMxMS4wNDY2IDQuMDA3MjIgMTEuMjcwNCA0LjIzMTA4IDExLjU0NjYgNC4yMzEwOFYzLjIzMTA4Wk0yMC42NTY5IDE5LjUwNDZDMjAuNjU2OSAxOS4yMjg1IDIwLjQzMyAxOS4wMDQ2IDIwLjE1NjkgMTkuMDA0NkMxOS44ODA4IDE5LjAwNDYgMTkuNjU2OSAxOS4yMjg1IDE5LjY1NjkgMTkuNTA0NkgyMC42NTY5Wk0xOS42NTY5IDE1Ljk2NTZDMTkuNjU2OSAxNi4yNDE3IDE5Ljg4MDggMTYuNDY1NiAyMC4xNTY5IDE2LjQ2NTZDMjAuNDMzIDE2LjQ2NTYgMjAuNjU2OSAxNi4yNDE3IDIwLjY1NjkgMTUuOTY1NkgxOS42NTY5Wk0xMy4wMTE5IDE5LjU1MzZDMTIuOTU5IDE5LjI4MjYgMTIuNjk2NCAxOS4xMDU4IDEyLjQyNTQgMTkuMTU4NkMxMi4xNTQ0IDE5LjIxMTUgMTEuOTc3NSAxOS40NzQxIDEyLjAzMDQgMTkuNzQ1MkwxMy4wMTE5IDE5LjU1MzZaTTkuODczODEgMTguODU2NUw5LjM3MzgxIDE4Ljg1NjVWMTguODU2NUg5Ljg3MzgxWk00LjIwNzIxIDUuMjk5MzJMMy43Mzc4NCA1LjEyNjk5TDMuNzM3ODQgNS4xMjdMNC4yMDcyMSA1LjI5OTMyWk0yLjUyNTI3IDkuODgwNDZMMi4wNTU5IDkuNzA4MTRMMi4wNTU5IDkuNzA4MTRMMi41MjUyNyA5Ljg4MDQ2Wk0zLjI0OTIyIDEyLjY4NzNMMi45MjE3NiAxMy4wNjUxTDIuOTIxNzYgMTMuMDY1MUwzLjI0OTIyIDEyLjY4NzNaTTQuNDAzMzQgMTMuNjg3NUw0LjA3NTg4IDE0LjA2NTNMNC4wNzU4OCAxNC4wNjUzTDQuNDAzMzQgMTMuNjg3NVpNNS4wMDk3MSAxNS4wMTU0TDQuNTA5NzEgMTUuMDE1NEw0LjUwOTcxIDE1LjAxNTRMNS4wMDk3MSAxNS4wMTU0Wk01LjAwOTY5IDE2Ljg1MzZMNS41MDk2OSAxNi44NTM2TDUuNTA5NjkgMTYuODUzNkw1LjAwOTY5IDE2Ljg1MzZaTTkuODczODUgMTAuNjY2MUw5LjM3Mzg1IDEwLjY2NjFMOS4zNzM4NSAxMC42NjYxTDkuODczODUgMTAuNjY2MVpNMTEuOTM5OSA2LjkwNzgzQzEyLjEzNiA2LjcxMzM5IDEyLjEzNzMgNi4zOTY4MSAxMS45NDI5IDYuMjAwNzNDMTEuNzQ4NCA2LjAwNDY0IDExLjQzMTkgNi4wMDMzMSAxMS4yMzU4IDYuMTk3NzRMMTEuOTM5OSA2LjkwNzgzWk0xNy44NDEgMTguNzUwNkwxNy44NDA5IDE4LjI1MDZMMTcuODQwOSAxOC4yNTA2TDE3Ljg0MSAxOC43NTA2Wk0yMy4wNjc2IDE5LjI1MDZDMjMuMzQzNyAxOS4yNTA2IDIzLjU2NzYgMTkuMDI2NyAyMy41Njc1IDE4Ljc1MDZDMjMuNTY3NSAxOC40NzQ0IDIzLjM0MzcgMTguMjUwNiAyMy4wNjc1IDE4LjI1MDZMMjMuMDY3NiAxOS4yNTA2Wk0xMy4wMTcxIDE1LjI0NDZDMTIuODk1NSAxNC45OTY3IDEyLjU5NTkgMTQuODk0MyAxMi4zNDggMTUuMDE2QzEyLjEwMDEgMTUuMTM3NiAxMS45OTc4IDE1LjQzNzIgMTIuMTE5NCAxNS42ODUxTDEzLjAxNzEgMTUuMjQ0NlpNMTEuNTQ2NiA0LjIzMTA4SDEyLjYwOFYzLjIzMTA4SDExLjU0NjZWNC4yMzEwOFpNMTkuNjU2OSAxOS41MDQ2QzE5LjY1NjkgMjEuMDI2NCAxOC4yNDY3IDIyLjI2MDYgMTYuMzAzMyAyMi4yNjA2VjIzLjI2MDZDMTguNjE2NSAyMy4yNjA2IDIwLjY1NjkgMjEuNzQ0OSAyMC42NTY5IDE5LjUwNDZIMTkuNjU2OVpNMTIuNjA4IDQuMjMxMDhDMTYuNTAxIDQuMjMxMDggMTkuNjU2OSA3LjM4Njk4IDE5LjY1NjkgMTEuMjhIMjAuNjU2OUMyMC42NTY5IDYuODM0NyAxNy4wNTMzIDMuMjMxMDggMTIuNjA4IDMuMjMxMDhWNC4yMzEwOFpNMTkuNjU2OSAxMS4yOFYxNS45NjU2SDIwLjY1NjlWMTEuMjhIMTkuNjU2OVpNMTYuMzAzMyAyMi4yNjA2QzE0LjY3MjcgMjIuMjYwNiAxMy4zMTMgMjEuMDk2NCAxMy4wMTE5IDE5LjU1MzZMMTIuMDMwNCAxOS43NDUyQzEyLjQyMTQgMjEuNzQ4NSAxNC4xODUyIDIzLjI2MDYgMTYuMzAzMyAyMy4yNjA2VjIyLjI2MDZaTTExLjY1NTIgMy4yMjMzOUg2LjQ2NDU5VjQuMjIzMzlIMTEuNjU1MlYzLjIyMzM5Wk0zLjczNzg0IDUuMTI3TDIuMDU1OSA5LjcwODE0TDIuOTk0NjQgMTAuMDUyOEw0LjY3NjU4IDUuNDcxNjRMMy43Mzc4NCA1LjEyN1pNMi45MjE3NiAxMy4wNjUxTDQuMDc1ODggMTQuMDY1M0w0LjczMDggMTMuMzA5NkwzLjU3NjY4IDEyLjMwOTRMMi45MjE3NiAxMy4wNjUxWk00LjUwOTcxIDE1LjAxNTRMNC41MDk2OSAxNi44NTM2TDUuNTA5NjkgMTYuODUzNkw1LjUwOTcxIDE1LjAxNTRMNC41MDk3MSAxNS4wMTU0Wk0xMC4zNzM5IDEwLjY2NjFDMTAuMzczOSA5LjI1NDYzIDEwLjkzNzYgNy45MDE2NiAxMS45Mzk5IDYuOTA3ODNMMTEuMjM1OCA2LjE5Nzc0QzEwLjA0NDIgNy4zNzkzNCA5LjM3Mzg3IDguOTg3OTUgOS4zNzM4NSAxMC42NjYxTDEwLjM3MzkgMTAuNjY2MVpNMi4wNTU5IDkuNzA4MTRDMS42MTg5MyAxMC44OTgzIDEuOTYzNjMgMTIuMjM0OCAyLjkyMTc2IDEzLjA2NTFMMy41NzY2OCAxMi4zMDk0QzIuOTMyNiAxMS43NTEyIDIuNzAwODkgMTAuODUyOSAyLjk5NDY0IDEwLjA1MjhMMi4wNTU5IDkuNzA4MTRaTTguNDQzMTkgMjAuNzg3MkM5LjUwOTQ0IDIwLjc4NzIgMTAuMzczOCAxOS45MjI4IDEwLjM3MzggMTguODU2NUg5LjM3MzgxQzkuMzczODEgMTkuMzcwNSA4Ljk1NzE2IDE5Ljc4NzIgOC40NDMxOSAxOS43ODcyVjIwLjc4NzJaTTguNDQzMTkgMTkuNzg3MkM2LjgyMzA1IDE5Ljc4NzIgNS41MDk2NyAxOC40NzM4IDUuNTA5NjkgMTYuODUzNkw0LjUwOTY5IDE2Ljg1MzZDNC41MDk2NiAxOS4wMjYgNi4yNzA3NSAyMC43ODcyIDguNDQzMTkgMjAuNzg3MlYxOS43ODcyWk00LjA3NTg4IDE0LjA2NTNDNC4zNTE0MiAxNC4zMDQxIDQuNTA5NzIgMTQuNjUwOCA0LjUwOTcxIDE1LjAxNTRMNS41MDk3MSAxNS4wMTU0QzUuNTA5NzIgMTQuMzYwOCA1LjIyNTUyIDEzLjczODQgNC43MzA4IDEzLjMwOTZMNC4wNzU4OCAxNC4wNjUzWk02LjQ2NDU5IDMuMjIzMzlDNS4yNDY0MyAzLjIyMzM5IDQuMTU3NjggMy45ODM0NyAzLjczNzg0IDUuMTI2OTlMNC42NzY1OCA1LjQ3MTY0QzQuOTUxODggNC43MjE4IDUuNjY1ODEgNC4yMjMzOSA2LjQ2NDU5IDQuMjIzMzlWMy4yMjMzOVpNMTcuODQxIDE5LjI1MDZMMjMuMDY3NiAxOS4yNTA2TDIzLjA2NzUgMTguMjUwNkwxNy44NDA5IDE4LjI1MDZMMTcuODQxIDE5LjI1MDZaTTEyLjExOTQgMTUuNjg1MUMxMy4xOTA1IDE3Ljg2NzYgMTUuNDA5OCAxOS4yNTA3IDE3Ljg0MSAxOS4yNTA2TDE3Ljg0MDkgMTguMjUwNkMxNS43OTEzIDE4LjI1MDcgMTMuOTIwMSAxNy4wODQ2IDEzLjAxNzEgMTUuMjQ0NkwxMi4xMTk0IDE1LjY4NTFaTTEwLjM3MzggMTguODU2NUwxMC4zNzM5IDEwLjY2NjFMOS4zNzM4NSAxMC42NjYxTDkuMzczODEgMTguODU2NUwxMC4zNzM4IDE4Ljg1NjVaIiAvPgogICAgPHBhdGgKICAgICAgICBkPSJNMTUuNzE1MSAxMS4yMDU2QzE1LjcxNTEgMTEuNjI1NyAxNi4wNTU2IDExLjk2NjMgMTYuNDc1OCAxMS45NjYzQzE2Ljg5NTkgMTEuOTY2MyAxNy4yMzY1IDExLjYyNTcgMTcuMjM2NSAxMS4yMDU2QzE3LjIzNjUgMTAuNzg1NCAxNi44OTU5IDEwLjQ0NDggMTYuNDc1OCAxMC40NDQ4QzE2LjA1NTYgMTAuNDQ0OCAxNS43MTUxIDEwLjc4NTQgMTUuNzE1MSAxMS4yMDU2WiIgLz4KPC9zdmc+Cg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -28,7 +28,7 @@ const Postgres = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Postgres; diff --git a/packages/icons/src/icons/realtime.ts b/packages/icons/src/icons/realtime.ts index 4864e0b9bd734..f269dab184a86 100644 --- a/packages/icons/src/icons/realtime.ts +++ b/packages/icons/src/icons/realtime.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Realtime * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik04LjA0MjczIDEuNTgyMDNWNS4zMjIwNU01LjI0MzU0IDUuMzIyMDVMMi4wNDcxMiAyLjAyNzkxTTUuMjQzNTQgNy45MDk3OUgxLjU3NzY0TTE1LjM3NzYgMTUuNTUwN0wyMS4wNzkgMTQuMTMxNkMyMS41NDE3IDE0LjAxNjQgMjEuNTk1OSAxMy4zODA2IDIxLjE1OTUgMTMuMTg4N0w4LjAwODI4IDcuNDA1ODZDNy41OTEzNyA3LjIyMjU0IDcuMTY2NDMgNy42NDY2MSA3LjM0ODkgOC4wNjM4OUwxMy4wMzIxIDIxLjA2MDdDMTMuMjIyNCAyMS40OTYgMTMuODU1NiAyMS40NDU0IDEzLjk3NDMgMjAuOTg1NEwxNS4zNzc2IDE1LjU1MDdaIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTguMDQyNzMgMS41ODIwM1Y1LjMyMjA1TTUuMjQzNTQgNS4zMjIwNUwyLjA0NzEyIDIuMDI3OTFNNS4yNDM1NCA3LjkwOTc5SDEuNTc3NjRNMTUuMzc3NiAxNS41NTA3TDIxLjA3OSAxNC4xMzE2QzIxLjU0MTcgMTQuMDE2NCAyMS41OTU5IDEzLjM4MDYgMjEuMTU5NSAxMy4xODg3TDguMDA4MjggNy40MDU4NkM3LjU5MTM3IDcuMjIyNTQgNy4xNjY0MyA3LjY0NjYxIDcuMzQ4OSA4LjA2Mzg5TDEzLjAzMjEgMjEuMDYwN0MxMy4yMjI0IDIxLjQ5NiAxMy44NTU2IDIxLjQ0NTQgMTMuOTc0MyAyMC45ODU0TDE1LjM3NzYgMTUuNTUwN1oiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Realtime = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Realtime; diff --git a/packages/icons/src/icons/replace-code.ts b/packages/icons/src/icons/replace-code.ts index e47c56d50d89a..82931469038af 100644 --- a/packages/icons/src/icons/replace-code.ts +++ b/packages/icons/src/icons/replace-code.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name ReplaceCode * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiAgICBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICAgIDxwYXRoCiAgICAgICAgZD0iTS0yMDQwMyAtMTExNDJIMTIxNjVWLTExMTQ0SC0yMDQwM1YtMTExNDJaTTEyMTY2IC0xMTE0MVY3MTEzSDEyMTY4Vi0xMTE0MUgxMjE2NlpNMTIxNjUgNzExNEgtMjA0MDNWNzExNkgxMjE2NVY3MTE0Wk0tMjA0MDQgNzExM1YtMTExNDFILTIwNDA2VjcxMTNILTIwNDA0Wk0tMjA0MDMgNzExNEMtMjA0MDMuNiA3MTE0IC0yMDQwNCA3MTEzLjU1IC0yMDQwNCA3MTEzSC0yMDQwNkMtMjA0MDYgNzExNC42NiAtMjA0MDQuNyA3MTE2IC0yMDQwMyA3MTE2VjcxMTRaTTEyMTY2IDcxMTNDMTIxNjYgNzExMy41NSAxMjE2NS42IDcxMTQgMTIxNjUgNzExNFY3MTE2QzEyMTY2LjcgNzExNiAxMjE2OCA3MTE0LjY2IDEyMTY4IDcxMTNIMTIxNjZaTTEyMTY1IC0xMTE0MkMxMjE2NS42IC0xMTE0MiAxMjE2NiAtMTExNDEuNiAxMjE2NiAtMTExNDFIMTIxNjhDMTIxNjggLTExMTQyLjcgMTIxNjYuNyAtMTExNDQgMTIxNjUgLTExMTQ0Vi0xMTE0MlpNLTIwNDAzIC0xMTE0NEMtMjA0MDQuNyAtMTExNDQgLTIwNDA2IC0xMTE0Mi43IC0yMDQwNiAtMTExNDFILTIwNDA0Qy0yMDQwNCAtMTExNDEuNiAtMjA0MDMuNiAtMTExNDIgLTIwNDAzIC0xMTE0MlYtMTExNDRaIgogICAgICAgIGZpbGwtb3BhY2l0eT0iMC4xIiAvPgogICAgPHJlY3QgeD0iNi40NDUzMSIgeT0iMTQuMTEzMyIgd2lkdGg9IjE1Ljg0NTUiIGhlaWdodD0iNy45MTgxOCIgcng9IjMuOTU5MDkiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xMC41ODk2IDEwLjAxOTVMMTguMjE0OCAxMC4wMTk1QzE5LjA0MzMgMTAuMDE5NSAxOS43MTQ4IDkuMzQ3OTYgMTkuNzE0OCA4LjUxOTUzTDE5LjcxNDggMy41OTIyNUMxOS43MTQ4IDIuNzYzODMgMTkuMDQzMyAyLjA5MjI2IDE4LjIxNDggMi4wOTIyNkw1Ljk5NjA5IDIuMDkyMjYiCiAgICAgICAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiAvPgogICAgPHBhdGggZD0iTTUuOTg5MDIgMTAuNDY1NlY1Ljc4OTA2SDEuMzEyNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiAvPgogICAgPHBhdGggZD0iTTMuMjcxMTEgMTMuNjEzM1YxMy42MTMzQzEuNjE1MTUgMTIuMzkxNCAxLjQ3OTQ4IDkuOTY0NDYgMi45ODg5NCA4LjU2NTY0TDUuOTk2MDkgNS43Nzg5MSIKICAgICAgICBzdHJva2UtbGluZWNhcD0icm91bmQiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiAgICBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogICAgPHBhdGgKICAgICAgICBkPSJNLTIwNDAzIC0xMTE0MkgxMjE2NVYtMTExNDRILTIwNDAzVi0xMTE0MlpNMTIxNjYgLTExMTQxVjcxMTNIMTIxNjhWLTExMTQxSDEyMTY2Wk0xMjE2NSA3MTE0SC0yMDQwM1Y3MTE2SDEyMTY1VjcxMTRaTS0yMDQwNCA3MTEzVi0xMTE0MUgtMjA0MDZWNzExM0gtMjA0MDRaTS0yMDQwMyA3MTE0Qy0yMDQwMy42IDcxMTQgLTIwNDA0IDcxMTMuNTUgLTIwNDA0IDcxMTNILTIwNDA2Qy0yMDQwNiA3MTE0LjY2IC0yMDQwNC43IDcxMTYgLTIwNDAzIDcxMTZWNzExNFpNMTIxNjYgNzExM0MxMjE2NiA3MTEzLjU1IDEyMTY1LjYgNzExNCAxMjE2NSA3MTE0VjcxMTZDMTIxNjYuNyA3MTE2IDEyMTY4IDcxMTQuNjYgMTIxNjggNzExM0gxMjE2NlpNMTIxNjUgLTExMTQyQzEyMTY1LjYgLTExMTQyIDEyMTY2IC0xMTE0MS42IDEyMTY2IC0xMTE0MUgxMjE2OEMxMjE2OCAtMTExNDIuNyAxMjE2Ni43IC0xMTE0NCAxMjE2NSAtMTExNDRWLTExMTQyWk0tMjA0MDMgLTExMTQ0Qy0yMDQwNC43IC0xMTE0NCAtMjA0MDYgLTExMTQyLjcgLTIwNDA2IC0xMTE0MUgtMjA0MDRDLTIwNDA0IC0xMTE0MS42IC0yMDQwMy42IC0xMTE0MiAtMjA0MDMgLTExMTQyVi0xMTE0NFoiCiAgICAgICAgZmlsbC1vcGFjaXR5PSIwLjEiIC8+CiAgICA8cmVjdCB4PSI2LjQ0NTMxIiB5PSIxNC4xMTMzIiB3aWR0aD0iMTUuODQ1NSIgaGVpZ2h0PSI3LjkxODE4IiByeD0iMy45NTkwOSIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTEwLjU4OTYgMTAuMDE5NUwxOC4yMTQ4IDEwLjAxOTVDMTkuMDQzMyAxMC4wMTk1IDE5LjcxNDggOS4zNDc5NiAxOS43MTQ4IDguNTE5NTNMMTkuNzE0OCAzLjU5MjI1QzE5LjcxNDggMi43NjM4MyAxOS4wNDMzIDIuMDkyMjYgMTguMjE0OCAyLjA5MjI2TDUuOTk2MDkgMi4wOTIyNiIgLz4KICAgIDxwYXRoIGQ9Ik01Ljk4OTAyIDEwLjQ2NTZWNS43ODkwNkgxLjMxMjUiIC8+CiAgICA8cGF0aCBkPSJNMy4yNzExMSAxMy42MTMzVjEzLjYxMzNDMS42MTUxNSAxMi4zOTE0IDEuNDc5NDggOS45NjQ0NiAyLjk4ODk0IDguNTY1NjRMNS45OTYwOSA1Ljc3ODkxIiAvPgo8L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -36,32 +36,22 @@ const ReplaceCode = createSupabaseIcon( 'path', { d: 'M10.5896 10.0195L18.2148 10.0195C19.0433 10.0195 19.7148 9.34796 19.7148 8.51953L19.7148 3.59225C19.7148 2.76383 19.0433 2.09226 18.2148 2.09226L5.99609 2.09226', - 'stroke-linecap': 'round', - key: '18tp5x', - }, - ], - [ - 'path', - { - d: 'M5.98902 10.4656V5.78906H1.3125', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: 'sfubon', + key: 'ty8khj', }, ], + ['path', { d: 'M5.98902 10.4656V5.78906H1.3125', key: '1a8pc0' }], [ 'path', { d: 'M3.27111 13.6133V13.6133C1.61515 12.3914 1.47948 9.96446 2.98894 8.56564L5.99609 5.77891', - 'stroke-linecap': 'round', - key: '1w6ie7', + key: 'uu2l9q', }, ], ], { fill: 'none', stroke: 'currentColor', - strokeWidth: '1', + strokeWidth: '1.5', strokeLinecap: 'round', strokeLinejoin: 'round', }, diff --git a/packages/icons/src/icons/reports.ts b/packages/icons/src/icons/reports.ts index 7e2618cab7975..d02ee8999cab6 100644 --- a/packages/icons/src/icons/reports.ts +++ b/packages/icons/src/icons/reports.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Reports * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0zLjAzNDc5IDkuMDg0OUw4LjA3MjQxIDQuMDU3NUM4LjQ2Mjk2IDMuNjY3NzQgOS4wOTU0IDMuNjY3OTYgOS40ODU2OCA0LjA1Nzk5TDE0LjAyOTUgOC41OTg4MUMxNC40MiA4Ljk4OTEyIDE1LjA1MyA4Ljk4OTAxIDE1LjQ0MzUgOC41OTg1N0wyMC41ODc3IDMuNDU0MThNMTYuNDk5NiAzLjAxNTI2SDE5Ljk5OTZDMjAuNTUxOSAzLjAxNTI2IDIwLjk5OTYgMy40NjI5NyAyMC45OTk2IDQuMDE1MjZWNy41MTUyNk0yLjk5OTYzIDEyLjAxNTNMMi45OTk2MyAyMC4xOTU4QzIuOTk5NjMgMjAuNzQ4MSAzLjQ0NzM1IDIxLjE5NTggMy45OTk2MyAyMS4xOTU4TDIwLjAwMDQgMjEuMTk1OEMyMC41NTI3IDIxLjE5NTggMjEuMDAwNCAyMC43NDgxIDIxLjAwMDQgMjAuMTk1OFY5Ljg4NTc0TTguODI1MzIgOS44NzE4M0w4LjgyNTMxIDIxLjE5NThNMTUuMTc1NCAxNS4wNzQ2VjIxLjE5NDkiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTMuMDM0NzkgOS4wODQ5TDguMDcyNDEgNC4wNTc1QzguNDYyOTYgMy42Njc3NCA5LjA5NTQgMy42Njc5NiA5LjQ4NTY4IDQuMDU3OTlMMTQuMDI5NSA4LjU5ODgxQzE0LjQyIDguOTg5MTIgMTUuMDUzIDguOTg5MDEgMTUuNDQzNSA4LjU5ODU3TDIwLjU4NzcgMy40NTQxOE0xNi40OTk2IDMuMDE1MjZIMTkuOTk5NkMyMC41NTE5IDMuMDE1MjYgMjAuOTk5NiAzLjQ2Mjk3IDIwLjk5OTYgNC4wMTUyNlY3LjUxNTI2TTIuOTk5NjMgMTIuMDE1M0wyLjk5OTYzIDIwLjE5NThDMi45OTk2MyAyMC43NDgxIDMuNDQ3MzUgMjEuMTk1OCAzLjk5OTYzIDIxLjE5NThMMjAuMDAwNCAyMS4xOTU4QzIwLjU1MjcgMjEuMTk1OCAyMS4wMDA0IDIwLjc0ODEgMjEuMDAwNCAyMC4xOTU4VjkuODg1NzRNOC44MjUzMiA5Ljg3MTgzTDguODI1MzEgMjEuMTk1OE0xNS4xNzU0IDE1LjA3NDZWMjEuMTk0OSIgLz4KPC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Reports = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Reports; diff --git a/packages/icons/src/icons/sentry.ts b/packages/icons/src/icons/sentry.ts index b0de8d32e60a7..0ffef0905945d 100644 --- a/packages/icons/src/icons/sentry.ts +++ b/packages/icons/src/icons/sentry.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Sentry * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXNlbnRyeSB0ZXh0LWZvcmVncm91bmQtbGlnaHQiPjxwYXRoIGQ9Ik0xMy45MSAyLjUwNWMtLjg3My0xLjQ0OC0yLjk3Mi0xLjQ0OC0zLjg0NCAwTDYuOTA0IDcuOTJhMTUuNDc4IDE1LjQ3OCAwIDAgMSA4LjUzIDEyLjgxMWgtMi4yMjFBMTMuMzAxIDEzLjMwMSAwIDAgMCA1Ljc4NCA5LjgxNGwtMi45MjYgNS4wNmE3LjY1IDcuNjUgMCAwIDEgNC40MzUgNS44NDhIMi4xOTRhLjM2NS4zNjUgMCAwIDEtLjI5OC0uNTM0bDEuNDEzLTIuNDAyYTUuMTYgNS4xNiAwIDAgMC0xLjYxNC0uOTEzTC4yOTYgMTkuMjc1YTIuMTgyIDIuMTgyIDAgMCAwIC44MTIgMi45OTkgMi4yNCAyLjI0IDAgMCAwIDEuMDg2LjI4OGg2Ljk4M2E5LjMyMiA5LjMyMiAwIDAgMC0zLjg0NS04LjMxOGwxLjExLTEuOTIyYTExLjQ3IDExLjQ3IDAgMCAxIDQuOTUgMTAuMjRoNS45MTVhMTcuMjQyIDE3LjI0MiAwIDAgMC03Ljg4NS0xNS4yOGwyLjI0NC0zLjg0NWEuMzcuMzcgMCAwIDEgLjUwNC0uMTNjLjI1NS4xNCA5Ljc1IDE2LjcwOCA5LjkyOCAxNi45YS4zNjUuMzY1IDAgMCAxLS4zMjcuNTQzaC0yLjI4N2MuMDI5LjYxMi4wMjkgMS4yMjMgMCAxLjgzMWgyLjI5N2EyLjIwNiAyLjIwNiAwIDAgMCAxLjkyMi0zLjMxeiI+PC9wYXRoPjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0ibHVjaWRlIGx1Y2lkZS1zZW50cnkgdGV4dC1mb3JlZ3JvdW5kLWxpZ2h0Ij48cGF0aCBkPSJNMTMuOTEgMi41MDVjLS44NzMtMS40NDgtMi45NzItMS40NDgtMy44NDQgMEw2LjkwNCA3LjkyYTE1LjQ3OCAxNS40NzggMCAwIDEgOC41MyAxMi44MTFoLTIuMjIxQTEzLjMwMSAxMy4zMDEgMCAwIDAgNS43ODQgOS44MTRsLTIuOTI2IDUuMDZhNy42NSA3LjY1IDAgMCAxIDQuNDM1IDUuODQ4SDIuMTk0YS4zNjUuMzY1IDAgMCAxLS4yOTgtLjUzNGwxLjQxMy0yLjQwMmE1LjE2IDUuMTYgMCAwIDAtMS42MTQtLjkxM0wuMjk2IDE5LjI3NWEyLjE4MiAyLjE4MiAwIDAgMCAuODEyIDIuOTk5IDIuMjQgMi4yNCAwIDAgMCAxLjA4Ni4yODhoNi45ODNhOS4zMjIgOS4zMjIgMCAwIDAtMy44NDUtOC4zMThsMS4xMS0xLjkyMmExMS40NyAxMS40NyAwIDAgMSA0Ljk1IDEwLjI0aDUuOTE1YTE3LjI0MiAxNy4yNDIgMCAwIDAtNy44ODUtMTUuMjhsMi4yNDQtMy44NDVhLjM3LjM3IDAgMCAxIC41MDQtLjEzYy4yNTUuMTQgOS43NSAxNi43MDggOS45MjggMTYuOWEuMzY1LjM2NSAwIDAgMS0uMzI3LjU0M2gtMi4yODdjLjAyOS42MTIuMDI5IDEuMjIzIDAgMS44MzFoMi4yOTdhMi4yMDYgMi4yMDYgMCAwIDAgMS45MjItMy4zMXoiPjwvcGF0aD48L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,13 +21,7 @@ const Sentry = createSupabaseIcon( }, ], ], - { - fill: 'currentColor', - stroke: 'currentColor', - strokeWidth: '0', - strokeLinecap: 'round', - strokeLinejoin: 'round', - }, + { fill: 'currentColor', stroke: 'none', strokeLinecap: 'round', strokeLinejoin: 'round' }, ); export default Sentry; diff --git a/packages/icons/src/icons/settings.ts b/packages/icons/src/icons/settings.ts index 16d975ab63165..2c41d4d38beea 100644 --- a/packages/icons/src/icons/settings.ts +++ b/packages/icons/src/icons/settings.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Settings * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xOS4wMjIyIDkuMjQ3NzhDMTguNzY4NiA4LjYzMjA5IDE4LjkyMjYgNy45MDQ0NSAxOS4wMDg1IDcuMjQ0MTNDMTkuMDc0NSA2LjczNjg4IDE4LjkxNTggNi4yMDU0NiAxOC41MzA2IDUuODExMkMxOC4xNTYxIDUuNDI3OTUgMTcuNjQ3MSA1LjI1NTc0IDE3LjE1MTcgNS4yOTYyOEMxNi40NjUgNS4zNTI0OCAxNS42OTkzIDUuNDkxNjkgMTUuMDY3MyA1LjIxNzFDMTUuMDMzNyA1LjIwMjQ5IDE1IDUuMTg4MTIgMTQuOTY2MSA1LjE3Mzk5QzE0LjM2MzcgNC45MjI3MiAxMy45NDY3IDQuMzMzODggMTMuNTQ4IDMuODE3MDdDMTMuMjExIDMuMzgwMjUgMTIuNjgyMyAzLjA5ODg4IDEyLjA4OCAzLjA5ODg4QzExLjQ5NTQgMy4wOTg4OCAxMC45NjgxIDMuMzc4NTkgMTAuNjMxIDMuODEzMThDMTAuMjMwOSA0LjMyODk1IDkuODEyMjkgNC45MTY3MyA5LjIwOTE4IDUuMTY2NEM5LjE3MDQ0IDUuMTgyNDQgOS4xMzE4NyA1LjE5ODc5IDkuMDkzNDcgNS4yMTU0NUM4LjQ2NTM4IDUuNDg3OTQgNy43MDU2OSA1LjM1MTU3IDcuMDIzMjggNS4yOTYxOUM2LjUyODMgNS4yNTYwMSA2LjAxOTc4IDUuNDI4MjUgNS42NDU1OCA1LjgxMTJDNS4yNjY5MyA2LjE5ODcxIDUuMTA3MTUgNi43MTg3MiA1LjE2NDQ3IDcuMjE4MDZDNS4yNDExNiA3Ljg4NjE5IDUuMzkzMTMgOC42MjE3NCA1LjEzNjU3IDkuMjQzNEM0Ljg5Mjc2IDkuODM0MTcgNC4zMTczMiAxMC4yNTExIDMuODA4NCAxMC42Mzc3QzMuMzY1MzYgMTAuOTc0MyAzLjA3OTI4IDExLjUwNjggMy4wNzkyOCAxMi4xMDYxQzMuMDc5MjggMTIuNzA2IDMuMzY1OTUgMTMuMjM5IDMuODA5NzggMTMuNTc1NUM0LjMxODQ0IDEzLjk2MTIgNC44OTMyIDE0LjM3NzUgNS4xMzY3NiAxNC45Njc1QzUuMzkzNTMgMTUuNTg5NiA1LjI0MDc3IDE2LjMyNTggNS4xNjMxNSAxNi45OTQzQzUuMTA1MSAxNy40OTQzIDUuMjY0NzkgMTguMDE1MyA1LjY0NDAxIDE4LjQwMzRDNi4wMTg2NCAxOC43ODY4IDYuNTI3OSAxOC45NTkgNy4wMjM0MyAxOC45MTgzQzcuNzA3MDUgMTguODYyMSA4LjQ2ODM1IDE4LjcyNDMgOS4wOTc3NyAxOC45OTY5QzkuMTMzNzggMTkuMDEyNSA5LjE2OTkzIDE5LjAyNzggOS4yMDYyMiAxOS4wNDI5QzkuODEwNTIgMTkuMjkzMyAxMC4yMjk0IDE5Ljg4MzIgMTAuNjI5OCAyMC40MDA1QzEwLjk2NjkgMjAuODM1OSAxMS40OTQ3IDIxLjExNjMgMTIuMDg4IDIxLjExNjNDMTIuNjgzIDIxLjExNjMgMTMuMjEyMiAyMC44MzQzIDEzLjU0OTEgMjAuMzk2NkMxMy45NDgxIDE5Ljg3ODMgMTQuMzY1NCAxOS4yODczIDE0Ljk2OSAxOS4wMzUzQzE1LjAwMDUgMTkuMDIyMSAxNS4wMzE4IDE5LjAwODggMTUuMDYzMSAxOC45OTUyQzE1LjY5NjMgMTguNzIwNSAxNi40NjM2IDE4Ljg2MTIgMTcuMTUxNiAxOC45MTgyQzE3LjY0NzUgMTguOTU5MiAxOC4xNTcyIDE4Ljc4NzEgMTguNTMyMSAxOC40MDM0QzE4LjkxNzkgMTguMDA4NSAxOS4wNzY1IDE3LjQ3NjEgMTkuMDA5OCAxNi45NjgyQzE4LjkyMjkgMTYuMzA3NiAxOC43NjgyIDE1LjU3OTMgMTkuMDIyIDE0Ljk2MzJDMTkuMjYzNCAxNC4zNzc0IDE5LjgzNiAxMy45NjY0IDIwLjM0NiAxMy41OTA2QzIwLjgwMTMgMTMuMjU1IDIxLjA5NjcgMTIuNzE1IDIxLjA5NjcgMTIuMTA2MUMyMS4wOTY3IDExLjQ5NzcgMjAuODAxOSAxMC45NTgyIDIwLjM0NzQgMTAuNjIyNkMxOS44MzcyIDEwLjI0NTggMTkuMjYzOCA5LjgzNDI2IDE5LjAyMjIgOS4yNDc3OFoiIC8+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xMi4wMDAyIDE1LjEwNTFDMTMuNjU3IDE1LjEwNTEgMTUuMDAwMiAxMy43NjIgMTUuMDAwMiAxMi4xMDUxQzE1LjAwMDIgMTAuNDQ4MiAxMy42NTcgOS4xMDUxIDEyLjAwMDIgOS4xMDUxQzEwLjM0MzMgOS4xMDUxIDkuMDAwMTggMTAuNDQ4MiA5LjAwMDE4IDEyLjEwNTFDOS4wMDAxOCAxMy43NjIgMTAuMzQzMyAxNS4xMDUxIDEyLjAwMDIgMTUuMTA1MVoiIC8+Cjwvc3ZnPg==) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE5LjAyMjIgOS4yNDc3OEMxOC43Njg2IDguNjMyMDkgMTguOTIyNiA3LjkwNDQ1IDE5LjAwODUgNy4yNDQxM0MxOS4wNzQ1IDYuNzM2ODggMTguOTE1OCA2LjIwNTQ2IDE4LjUzMDYgNS44MTEyQzE4LjE1NjEgNS40Mjc5NSAxNy42NDcxIDUuMjU1NzQgMTcuMTUxNyA1LjI5NjI4QzE2LjQ2NSA1LjM1MjQ4IDE1LjY5OTMgNS40OTE2OSAxNS4wNjczIDUuMjE3MUMxNS4wMzM3IDUuMjAyNDkgMTUgNS4xODgxMiAxNC45NjYxIDUuMTczOTlDMTQuMzYzNyA0LjkyMjcyIDEzLjk0NjcgNC4zMzM4OCAxMy41NDggMy44MTcwN0MxMy4yMTEgMy4zODAyNSAxMi42ODIzIDMuMDk4ODggMTIuMDg4IDMuMDk4ODhDMTEuNDk1NCAzLjA5ODg4IDEwLjk2ODEgMy4zNzg1OSAxMC42MzEgMy44MTMxOEMxMC4yMzA5IDQuMzI4OTUgOS44MTIyOSA0LjkxNjczIDkuMjA5MTggNS4xNjY0QzkuMTcwNDQgNS4xODI0NCA5LjEzMTg3IDUuMTk4NzkgOS4wOTM0NyA1LjIxNTQ1QzguNDY1MzggNS40ODc5NCA3LjcwNTY5IDUuMzUxNTcgNy4wMjMyOCA1LjI5NjE5QzYuNTI4MyA1LjI1NjAxIDYuMDE5NzggNS40MjgyNSA1LjY0NTU4IDUuODExMkM1LjI2NjkzIDYuMTk4NzEgNS4xMDcxNSA2LjcxODcyIDUuMTY0NDcgNy4yMTgwNkM1LjI0MTE2IDcuODg2MTkgNS4zOTMxMyA4LjYyMTc0IDUuMTM2NTcgOS4yNDM0QzQuODkyNzYgOS44MzQxNyA0LjMxNzMyIDEwLjI1MTEgMy44MDg0IDEwLjYzNzdDMy4zNjUzNiAxMC45NzQzIDMuMDc5MjggMTEuNTA2OCAzLjA3OTI4IDEyLjEwNjFDMy4wNzkyOCAxMi43MDYgMy4zNjU5NSAxMy4yMzkgMy44MDk3OCAxMy41NzU1QzQuMzE4NDQgMTMuOTYxMiA0Ljg5MzIgMTQuMzc3NSA1LjEzNjc2IDE0Ljk2NzVDNS4zOTM1MyAxNS41ODk2IDUuMjQwNzcgMTYuMzI1OCA1LjE2MzE1IDE2Ljk5NDNDNS4xMDUxIDE3LjQ5NDMgNS4yNjQ3OSAxOC4wMTUzIDUuNjQ0MDEgMTguNDAzNEM2LjAxODY0IDE4Ljc4NjggNi41Mjc5IDE4Ljk1OSA3LjAyMzQzIDE4LjkxODNDNy43MDcwNSAxOC44NjIxIDguNDY4MzUgMTguNzI0MyA5LjA5Nzc3IDE4Ljk5NjlDOS4xMzM3OCAxOS4wMTI1IDkuMTY5OTMgMTkuMDI3OCA5LjIwNjIyIDE5LjA0MjlDOS44MTA1MiAxOS4yOTMzIDEwLjIyOTQgMTkuODgzMiAxMC42Mjk4IDIwLjQwMDVDMTAuOTY2OSAyMC44MzU5IDExLjQ5NDcgMjEuMTE2MyAxMi4wODggMjEuMTE2M0MxMi42ODMgMjEuMTE2MyAxMy4yMTIyIDIwLjgzNDMgMTMuNTQ5MSAyMC4zOTY2QzEzLjk0ODEgMTkuODc4MyAxNC4zNjU0IDE5LjI4NzMgMTQuOTY5IDE5LjAzNTNDMTUuMDAwNSAxOS4wMjIxIDE1LjAzMTggMTkuMDA4OCAxNS4wNjMxIDE4Ljk5NTJDMTUuNjk2MyAxOC43MjA1IDE2LjQ2MzYgMTguODYxMiAxNy4xNTE2IDE4LjkxODJDMTcuNjQ3NSAxOC45NTkyIDE4LjE1NzIgMTguNzg3MSAxOC41MzIxIDE4LjQwMzRDMTguOTE3OSAxOC4wMDg1IDE5LjA3NjUgMTcuNDc2MSAxOS4wMDk4IDE2Ljk2ODJDMTguOTIyOSAxNi4zMDc2IDE4Ljc2ODIgMTUuNTc5MyAxOS4wMjIgMTQuOTYzMkMxOS4yNjM0IDE0LjM3NzQgMTkuODM2IDEzLjk2NjQgMjAuMzQ2IDEzLjU5MDZDMjAuODAxMyAxMy4yNTUgMjEuMDk2NyAxMi43MTUgMjEuMDk2NyAxMi4xMDYxQzIxLjA5NjcgMTEuNDk3NyAyMC44MDE5IDEwLjk1ODIgMjAuMzQ3NCAxMC42MjI2QzE5LjgzNzIgMTAuMjQ1OCAxOS4yNjM4IDkuODM0MjYgMTkuMDIyMiA5LjI0Nzc4WiIgLz4KICAgIDxwYXRoCiAgICAgICAgZD0iTTEyLjAwMDIgMTUuMTA1MUMxMy42NTcgMTUuMTA1MSAxNS4wMDAyIDEzLjc2MiAxNS4wMDAyIDEyLjEwNTFDMTUuMDAwMiAxMC40NDgyIDEzLjY1NyA5LjEwNTEgMTIuMDAwMiA5LjEwNTFDMTAuMzQzMyA5LjEwNTEgOS4wMDAxOCAxMC40NDgyIDkuMDAwMTggMTIuMTA1MUM5LjAwMDE4IDEzLjc2MiAxMC4zNDMzIDE1LjEwNTEgMTIuMDAwMiAxNS4xMDUxWiIgLz4KPC9zdmc+) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -28,7 +28,7 @@ const Settings = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Settings; diff --git a/packages/icons/src/icons/sql-editor.ts b/packages/icons/src/icons/sql-editor.ts index ffb20bfe1c8d0..4552dd973fbc0 100644 --- a/packages/icons/src/icons/sql-editor.ts +++ b/packages/icons/src/icons/sql-editor.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name SqlEditor * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03Ljg5ODQ0IDguNDM0MkwxMS41MDA0IDEyLjAzNTZMNy44OTg0NCAxNS42Mzc1TTEyIDE1LjMyOTJIMTYuNU01IDIxLjEwNTVIMTlDMjAuMTA0NiAyMS4xMDU1IDIxIDIwLjIxIDIxIDE5LjEwNTVWNS4xMDU0N0MyMSA0LjAwMDkgMjAuMTA0NiAzLjEwNTQ3IDE5IDMuMTA1NDdINUMzLjg5NTQzIDMuMTA1NDcgMyA0LjAwMDkgMyA1LjEwNTQ3VjE5LjEwNTVDMyAyMC4yMSAzLjg5NTQzIDIxLjEwNTUgNSAyMS4xMDU1WiIgLz4KPC9zdmc+) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTcuODk4NDQgOC40MzQyTDExLjUwMDQgMTIuMDM1Nkw3Ljg5ODQ0IDE1LjYzNzVNMTIgMTUuMzI5MkgxNi41TTUgMjEuMTA1NUgxOUMyMC4xMDQ2IDIxLjEwNTUgMjEgMjAuMjEgMjEgMTkuMTA1NVY1LjEwNTQ3QzIxIDQuMDAwOSAyMC4xMDQ2IDMuMTA1NDcgMTkgMy4xMDU0N0g1QzMuODk1NDMgMy4xMDU0NyAzIDQuMDAwOSAzIDUuMTA1NDdWMTkuMTA1NUMzIDIwLjIxIDMuODk1NDMgMjEuMTA1NSA1IDIxLjEwNTVaIiAvPgo8L3N2Zz4=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const SqlEditor = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default SqlEditor; diff --git a/packages/icons/src/icons/storage.ts b/packages/icons/src/icons/storage.ts index a7251f018e7fe..d8eb99ea86ea6 100644 --- a/packages/icons/src/icons/storage.ts +++ b/packages/icons/src/icons/storage.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name Storage * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0xOS40OTk1IDExLjM2ODVWOC41MDcyNUwxNC4wNzIzIDMuMTA1ODRINS40OTk1MUM0Ljk0NzIyIDMuMTA1ODQgNC40OTk1MSAzLjU1MzU1IDQuNDk5NTEgNC4xMDU4NFY5LjEwNTFNMTkuNDQ2OCA4LjQ4MjE4TDE0LjA3MDEgMy4xMDU0N0wxNC4wNzAxIDcuNDgyMThDMTQuMDcwMSA4LjAzNDQ2IDE0LjUxNzggOC40ODIxOCAxNS4wNzAxIDguNDgyMThMMTkuNDQ2OCA4LjQ4MjE4Wk02Ljg2Njc1IDkuMTA1MUgzLjk2MDQ1QzMuNDA4MTYgOS4xMDUxIDIuOTYwNDUgOS41NTI4MiAyLjk2MDQ1IDEwLjEwNTFWMTkuMTA1MUMyLjk2MDQ1IDIwLjIwOTcgMy44NTU4OCAyMS4xMDUxIDQuOTYwNDUgMjEuMTA1MUgxOC45NjA0QzIwLjA2NSAyMS4xMDUxIDIwLjk2MDQgMjAuMjA5NyAyMC45NjA0IDE5LjEwNTFWMTIuMzY4NUMyMC45NjA0IDExLjgxNjIgMjAuNTEyNyAxMS4zNjg1IDE5Ljk2MDUgMTEuMzY4NUg5Ljk4NjIyQzkuNzIzODIgMTEuMzY4NSA5LjQ3MTk0IDExLjI2NTQgOS4yODQ4OSAxMS4wODEzTDcuNTY4MDggOS4zOTIyNkM3LjM4MTAzIDkuMjA4MjQgNy4xMjkxNSA5LjEwNTEgNi44NjY3NSA5LjEwNTFaIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTE5LjQ5OTUgMTEuMzY4NVY4LjUwNzI1TDE0LjA3MjMgMy4xMDU4NEg1LjQ5OTUxQzQuOTQ3MjIgMy4xMDU4NCA0LjQ5OTUxIDMuNTUzNTUgNC40OTk1MSA0LjEwNTg0VjkuMTA1MU0xOS40NDY4IDguNDgyMThMMTQuMDcwMSAzLjEwNTQ3TDE0LjA3MDEgNy40ODIxOEMxNC4wNzAxIDguMDM0NDYgMTQuNTE3OCA4LjQ4MjE4IDE1LjA3MDEgOC40ODIxOEwxOS40NDY4IDguNDgyMThaTTYuODY2NzUgOS4xMDUxSDMuOTYwNDVDMy40MDgxNiA5LjEwNTEgMi45NjA0NSA5LjU1MjgyIDIuOTYwNDUgMTAuMTA1MVYxOS4xMDUxQzIuOTYwNDUgMjAuMjA5NyAzLjg1NTg4IDIxLjEwNTEgNC45NjA0NSAyMS4xMDUxSDE4Ljk2MDRDMjAuMDY1IDIxLjEwNTEgMjAuOTYwNCAyMC4yMDk3IDIwLjk2MDQgMTkuMTA1MVYxMi4zNjg1QzIwLjk2MDQgMTEuODE2MiAyMC41MTI3IDExLjM2ODUgMTkuOTYwNSAxMS4zNjg1SDkuOTg2MjJDOS43MjM4MiAxMS4zNjg1IDkuNDcxOTQgMTEuMjY1NCA5LjI4NDg5IDExLjA4MTNMNy41NjgwOCA5LjM5MjI2QzcuMzgxMDMgOS4yMDgyNCA3LjEyOTE1IDkuMTA1MSA2Ljg2Njc1IDkuMTA1MVoiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const Storage = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default Storage; diff --git a/packages/icons/src/icons/table-editor.ts b/packages/icons/src/icons/table-editor.ts index f57c816001184..a7b21003948f1 100644 --- a/packages/icons/src/icons/table-editor.ts +++ b/packages/icons/src/icons/table-editor.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name TableEditor * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik0yLjk3MDcgMTUuMzQ5NEwyMC45NzA3IDE1LjM1NU0yMC45NDA1IDkuNjE1ODhIMi45OTY5OU04Ljc3NjYxIDkuNjE1ODhWMjEuMTM2N00yMC45NDA1IDUuODU1NDdWMTkuMTM2N0MyMC45NDA1IDIwLjI0MTMgMjAuMDQ1MSAyMS4xMzY3IDE4Ljk0MDUgMjEuMTM2N0g0Ljk5Njk5QzMuODkyNDIgMjEuMTM2NyAyLjk5Njk5IDIwLjI0MTMgMi45OTY5OSAxOS4xMzY3VjUuODU1NDdDMi45OTY5OSA0Ljc1MDkgMy44OTI0MiAzLjg1NTQ3IDQuOTk2OTkgMy44NTU0N0gxOC45NDA1QzIwLjA0NTEgMy44NTU0NyAyMC45NDA1IDQuNzUwOSAyMC45NDA1IDUuODU1NDdaIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTIuOTcwNyAxNS4zNDk0TDIwLjk3MDcgMTUuMzU1TTIwLjk0MDUgOS42MTU4OEgyLjk5Njk5TTguNzc2NjEgOS42MTU4OFYyMS4xMzY3TTIwLjk0MDUgNS44NTU0N1YxOS4xMzY3QzIwLjk0MDUgMjAuMjQxMyAyMC4wNDUxIDIxLjEzNjcgMTguOTQwNSAyMS4xMzY3SDQuOTk2OTlDMy44OTI0MiAyMS4xMzY3IDIuOTk2OTkgMjAuMjQxMyAyLjk5Njk5IDE5LjEzNjdWNS44NTU0N0MyLjk5Njk5IDQuNzUwOSAzLjg5MjQyIDMuODU1NDcgNC45OTY5OSAzLjg1NTQ3SDE4Ljk0MDVDMjAuMDQ1MSAzLjg1NTQ3IDIwLjk0MDUgNC43NTA5IDIwLjk0MDUgNS44NTU0N1oiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const TableEditor = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default TableEditor; diff --git a/packages/icons/src/icons/user.ts b/packages/icons/src/icons/user.ts index de406715c2f7a..92d3c82b70618 100644 --- a/packages/icons/src/icons/user.ts +++ b/packages/icons/src/icons/user.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name User * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMSI+CiAgICA8cGF0aAogICAgICAgIGQ9Ik03LjA2NDczIDE5LjYzMjhDNC42MTY0OCAxOC4wMjQ0IDMgMTUuMjUzNyAzIDEyLjEwNTVDMyA3LjEzNDkxIDcuMDI5NDQgMy4xMDU0NyAxMiAzLjEwNTQ3QzE2Ljk3MDYgMy4xMDU0NyAyMSA3LjEzNDkxIDIxIDEyLjEwNTVDMjEgMTUuMjUzNyAxOS40MjczIDE4LjAwOTQgMTYuOTc5IDE5LjYxNzhNMTYuOTc5OSAyMi4yODQ0VjE5LjcxMzZDMTYuOTc5OSAxNy4wMjU4IDE0LjgwMTEgMTQuODQ2OSAxMi4xMTMzIDE0Ljg0NjlDOS40MjU0NyAxNC44NDY5IDcuMjQ2NTggMTcuMDI1OCA3LjI0NjU4IDE5LjcxMzZWMjIuMjg0NE0xNSAxMS44NDY5QzE1IDEzLjUwMzggMTMuNjU2OSAxNC44NDY5IDEyIDE0Ljg0NjlDMTAuMzQzMSAxNC44NDY5IDkgMTMuNTAzOCA5IDExLjg0NjlDOSAxMC4xOTAxIDEwLjM0MzEgOC44NDY5MiAxMiA4Ljg0NjkyQzEzLjY1NjkgOC44NDY5MiAxNSAxMC4xOTAxIDE1IDExLjg0NjlaIiAvPgo8L3N2Zz4=) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiICAgIHN0cm9rZS13aWR0aD0iMS41Ij4KICAgIDxwYXRoCiAgICAgICAgZD0iTTcuMDY0NzMgMTkuNjMyOEM0LjYxNjQ4IDE4LjAyNDQgMyAxNS4yNTM3IDMgMTIuMTA1NUMzIDcuMTM0OTEgNy4wMjk0NCAzLjEwNTQ3IDEyIDMuMTA1NDdDMTYuOTcwNiAzLjEwNTQ3IDIxIDcuMTM0OTEgMjEgMTIuMTA1NUMyMSAxNS4yNTM3IDE5LjQyNzMgMTguMDA5NCAxNi45NzkgMTkuNjE3OE0xNi45Nzk5IDIyLjI4NDRWMTkuNzEzNkMxNi45Nzk5IDE3LjAyNTggMTQuODAxMSAxNC44NDY5IDEyLjExMzMgMTQuODQ2OUM5LjQyNTQ3IDE0Ljg0NjkgNy4yNDY1OCAxNy4wMjU4IDcuMjQ2NTggMTkuNzEzNlYyMi4yODQ0TTE1IDExLjg0NjlDMTUgMTMuNTAzOCAxMy42NTY5IDE0Ljg0NjkgMTIgMTQuODQ2OUMxMC4zNDMxIDE0Ljg0NjkgOSAxMy41MDM4IDkgMTEuODQ2OUM5IDEwLjE5MDEgMTAuMzQzMSA4Ljg0NjkyIDEyIDguODQ2OTJDMTMuNjU2OSA4Ljg0NjkyIDE1IDEwLjE5MDEgMTUgMTEuODQ2OVoiIC8+Cjwvc3ZnPg==) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -21,7 +21,7 @@ const User = createSupabaseIcon( }, ], ], - { fill: 'none', stroke: 'currentColor', strokeWidth: '1' }, + { fill: 'none', stroke: 'currentColor', strokeWidth: '1.5' }, ); export default User; diff --git a/packages/icons/src/icons/vector-bucket.ts b/packages/icons/src/icons/vector-bucket.ts index 24f5a0fa35adc..7efc5414841ef 100644 --- a/packages/icons/src/icons/vector-bucket.ts +++ b/packages/icons/src/icons/vector-bucket.ts @@ -4,7 +4,7 @@ import createSupabaseIcon from '../createSupabaseIcon'; * @component @name VectorBucket * @description Supabase SVG icon component, renders SVG Element with children. * - * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTkuOTk5OSAyMEMyMC41MzAzIDIwIDIxLjAzOSAxOS43ODkzIDIxLjQxNDEgMTkuNDE0MkMyMS43ODkyIDE5LjAzOTEgMjEuOTk5OSAxOC41MzA0IDIxLjk5OTkgMThWOEMyMS45OTk5IDcuNDY5NTcgMjEuNzg5MiA2Ljk2MDg2IDIxLjQxNDEgNi41ODU3OUMyMS4wMzkgNi4yMTA3MSAyMC41MzAzIDYgMTkuOTk5OSA2SDEyLjA5OTlDMTEuNzY1NCA2LjAwMzI4IDExLjQzNTQgNS45MjI2MSAxMS4xNDAyIDUuNzY1MzhDMTAuODQ0OSA1LjYwODE1IDEwLjU5MzggNS4zNzkzOCAxMC40MDk5IDUuMUw5LjU5OTg4IDMuOUM5LjQxNzc3IDMuNjIzNDcgOS4xNjk4NSAzLjM5NjQ4IDguODc4MzggMy4yMzk0QzguNTg2OSAzLjA4MjMxIDguMjYwOTkgMy4wMDAwNSA3LjkyOTg4IDNIMy45OTk4OEMzLjQ2OTQ0IDMgMi45NjA3NCAzLjIxMDcxIDIuNTg1NjYgMy41ODU3OUMyLjIxMDU5IDMuOTYwODYgMS45OTk4OCA0LjQ2OTU3IDEuOTk5ODggNVYxOEMxLjk5OTg4IDE4LjUzMDQgMi4yMTA1OSAxOS4wMzkxIDIuNTg1NjYgMTkuNDE0MkMyLjk2MDc0IDE5Ljc4OTMgMy40Njk0NCAyMCAzLjk5OTg4IDIwSDE5Ljk5OTlaIiBzdHJva2U9IiMwMDAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBib3JkZXItcmFkaXVzOiAycHgiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTExLjc4MzMgMTUuMjE5N1YxOS41TTExLjc4MzMgMTUuMjE5N0wxNi44MzI3IDEyLjI4NjhNMTEuNzgzMyAxNS4yMTk3TDYuNzM0MjUgMTIuMjg2OU02LjczNDI1IDEyLjI4NjlWMTUuNzk2NU02LjczNDI1IDEyLjI4NjlWMTIuMjU2OEw5Ljc1ODg1IDEwLjVNMTYuODMyOCAxNS44MjcyVjEyLjI1NjhMMTMuODA4MyAxMC41IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K) + * @preview ![img](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgYm9yZGVyLXJhZGl1czogMnB4IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xOS45OTk5IDIwQzIwLjUzMDMgMjAgMjEuMDM5IDE5Ljc4OTMgMjEuNDE0MSAxOS40MTQyQzIxLjc4OTIgMTkuMDM5MSAyMS45OTk5IDE4LjUzMDQgMjEuOTk5OSAxOFY4QzIxLjk5OTkgNy40Njk1NyAyMS43ODkyIDYuOTYwODYgMjEuNDE0MSA2LjU4NTc5QzIxLjAzOSA2LjIxMDcxIDIwLjUzMDMgNiAxOS45OTk5IDZIMTIuMDk5OUMxMS43NjU0IDYuMDAzMjggMTEuNDM1NCA1LjkyMjYxIDExLjE0MDIgNS43NjUzOEMxMC44NDQ5IDUuNjA4MTUgMTAuNTkzOCA1LjM3OTM4IDEwLjQwOTkgNS4xTDkuNTk5ODggMy45QzkuNDE3NzcgMy42MjM0NyA5LjE2OTg1IDMuMzk2NDggOC44NzgzOCAzLjIzOTRDOC41ODY5IDMuMDgyMzEgOC4yNjA5OSAzLjAwMDA1IDcuOTI5ODggM0gzLjk5OTg4QzMuNDY5NDQgMyAyLjk2MDc0IDMuMjEwNzEgMi41ODU2NiAzLjU4NTc5QzIuMjEwNTkgMy45NjA4NiAxLjk5OTg4IDQuNDY5NTcgMS45OTk4OCA1VjE4QzEuOTk5ODggMTguNTMwNCAyLjIxMDU5IDE5LjAzOTEgMi41ODU2NiAxOS40MTQyQzIuOTYwNzQgMTkuNzg5MyAzLjQ2OTQ0IDIwIDMuOTk5ODggMjBIMTkuOTk5OVoiLz4KPHBhdGggZD0iTTExLjc4MzMgMTUuMjE5N1YxOS41TTExLjc4MzMgMTUuMjE5N0wxNi44MzI3IDEyLjI4NjhNMTEuNzgzMyAxNS4yMTk3TDYuNzM0MjUgMTIuMjg2OU02LjczNDI1IDEyLjI4NjlWMTUuNzk2NU02LjczNDI1IDEyLjI4NjlWMTIuMjU2OEw5Ljc1ODg1IDEwLjVNMTYuODMyOCAxNS44MjcyVjEyLjI1NjhMMTMuODA4MyAxMC41Ii8+Cjwvc3ZnPgo=) * * @param {Object} props - Supabase icons props and any valid SVG attribute * @returns {JSX.Element} JSX Element @@ -17,26 +17,24 @@ const VectorBucket = createSupabaseIcon( 'path', { d: 'M19.9999 20C20.5303 20 21.039 19.7893 21.4141 19.4142C21.7892 19.0391 21.9999 18.5304 21.9999 18V8C21.9999 7.46957 21.7892 6.96086 21.4141 6.58579C21.039 6.21071 20.5303 6 19.9999 6H12.0999C11.7654 6.00328 11.4354 5.92261 11.1402 5.76538C10.8449 5.60815 10.5938 5.37938 10.4099 5.1L9.59988 3.9C9.41777 3.62347 9.16985 3.39648 8.87838 3.2394C8.5869 3.08231 8.26099 3.00005 7.92988 3H3.99988C3.46944 3 2.96074 3.21071 2.58566 3.58579C2.21059 3.96086 1.99988 4.46957 1.99988 5V18C1.99988 18.5304 2.21059 19.0391 2.58566 19.4142C2.96074 19.7893 3.46944 20 3.99988 20H19.9999Z', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1wdbdy', + key: '12tuto', }, ], [ 'path', { d: 'M11.7833 15.2197V19.5M11.7833 15.2197L16.8327 12.2868M11.7833 15.2197L6.73425 12.2869M6.73425 12.2869V15.7965M6.73425 12.2869V12.2568L9.75885 10.5M16.8328 15.8272V12.2568L13.8083 10.5', - stroke: 'currentColor', - 'stroke-width': '1.5', - 'stroke-linecap': 'round', - 'stroke-linejoin': 'round', - key: '1t09vn', + key: 'hnf5b7', }, ], ], - { fill: 'none' }, + { + fill: 'none', + stroke: 'currentColor', + strokeWidth: '1.5', + strokeLinecap: 'round', + strokeLinejoin: 'round', + }, ); export default VectorBucket; diff --git a/packages/icons/src/raw-icons/REST-api.svg b/packages/icons/src/raw-icons/REST-api.svg index 16243c09d97fd..3308425d664bf 100644 --- a/packages/icons/src/raw-icons/REST-api.svg +++ b/packages/icons/src/raw-icons/REST-api.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/_example-template.svg b/packages/icons/src/raw-icons/_example-template.svg index 59f4ac860a16f..53bf8f4a6a355 100644 --- a/packages/icons/src/raw-icons/_example-template.svg +++ b/packages/icons/src/raw-icons/_example-template.svg @@ -5,7 +5,7 @@ viewBox="0 0 24 24" fill="none" stroke="currentColor" - stroke-width="2" + stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" > diff --git a/packages/icons/src/raw-icons/analytics-bucket.svg b/packages/icons/src/raw-icons/analytics-bucket.svg index 7220cd599cc45..ae932512098e2 100644 --- a/packages/icons/src/raw-icons/analytics-bucket.svg +++ b/packages/icons/src/raw-icons/analytics-bucket.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/packages/icons/src/raw-icons/api-docs.svg b/packages/icons/src/raw-icons/api-docs.svg index d7a25e379699c..7450afcf6ae45 100644 --- a/packages/icons/src/raw-icons/api-docs.svg +++ b/packages/icons/src/raw-icons/api-docs.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/auth.svg b/packages/icons/src/raw-icons/auth.svg index 9d0de6b8d5c86..6237d5452b1ff 100644 --- a/packages/icons/src/raw-icons/auth.svg +++ b/packages/icons/src/raw-icons/auth.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/big-query.svg b/packages/icons/src/raw-icons/big-query.svg index 66361f7bd6160..248e3a449b71f 100644 --- a/packages/icons/src/raw-icons/big-query.svg +++ b/packages/icons/src/raw-icons/big-query.svg @@ -1,3 +1,3 @@ - - + + diff --git a/packages/icons/src/raw-icons/box-plus.svg b/packages/icons/src/raw-icons/box-plus.svg index d5fa81e2cfc2b..767d63c46a968 100644 --- a/packages/icons/src/raw-icons/box-plus.svg +++ b/packages/icons/src/raw-icons/box-plus.svg @@ -1,7 +1,7 @@ - - - - - - + + + + + + diff --git a/packages/icons/src/raw-icons/bucket-plus.svg b/packages/icons/src/raw-icons/bucket-plus.svg index 844c626fa70cb..27314d00ee1fe 100644 --- a/packages/icons/src/raw-icons/bucket-plus.svg +++ b/packages/icons/src/raw-icons/bucket-plus.svg @@ -1,5 +1,5 @@ - - - - + + + + diff --git a/packages/icons/src/raw-icons/click-house.svg b/packages/icons/src/raw-icons/click-house.svg index f6cb70d4084b0..1c6aaf742cfcb 100644 --- a/packages/icons/src/raw-icons/click-house.svg +++ b/packages/icons/src/raw-icons/click-house.svg @@ -1,3 +1,3 @@ - - + + diff --git a/packages/icons/src/raw-icons/database.svg b/packages/icons/src/raw-icons/database.svg index c01112b6883f6..671ea587ee8cf 100644 --- a/packages/icons/src/raw-icons/database.svg +++ b/packages/icons/src/raw-icons/database.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file + \ No newline at end of file diff --git a/packages/icons/src/raw-icons/edge-functions.svg b/packages/icons/src/raw-icons/edge-functions.svg index fcee4aa7672de..76eba657cb06b 100644 --- a/packages/icons/src/raw-icons/edge-functions.svg +++ b/packages/icons/src/raw-icons/edge-functions.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> - - + + + diff --git a/packages/icons/src/raw-icons/grafana.svg b/packages/icons/src/raw-icons/grafana.svg index d82a970009ccd..824731f8f2fcd 100644 --- a/packages/icons/src/raw-icons/grafana.svg +++ b/packages/icons/src/raw-icons/grafana.svg @@ -1,7 +1,6 @@ - + + diff --git a/packages/icons/src/raw-icons/home.svg b/packages/icons/src/raw-icons/home.svg index 42cb8187fbbae..3bb53507a1657 100644 --- a/packages/icons/src/raw-icons/home.svg +++ b/packages/icons/src/raw-icons/home.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/insert-code.svg b/packages/icons/src/raw-icons/insert-code.svg index bb3bcb5fb7d6c..9b28a33e47607 100644 --- a/packages/icons/src/raw-icons/insert-code.svg +++ b/packages/icons/src/raw-icons/insert-code.svg @@ -1,9 +1,9 @@ + stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"> - - - + + + \ No newline at end of file diff --git a/packages/icons/src/raw-icons/integrations.svg b/packages/icons/src/raw-icons/integrations.svg index d221330d2118c..7b5679f822633 100644 --- a/packages/icons/src/raw-icons/integrations.svg +++ b/packages/icons/src/raw-icons/integrations.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/logs.svg b/packages/icons/src/raw-icons/logs.svg index 1ef4e7bc9e3d5..1cdc1b47fa4dc 100644 --- a/packages/icons/src/raw-icons/logs.svg +++ b/packages/icons/src/raw-icons/logs.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/otlp.svg b/packages/icons/src/raw-icons/otlp.svg index c46acb322bcd4..8b5a4e87e996f 100644 --- a/packages/icons/src/raw-icons/otlp.svg +++ b/packages/icons/src/raw-icons/otlp.svg @@ -1,4 +1,4 @@ - + diff --git a/packages/icons/src/raw-icons/postgres.svg b/packages/icons/src/raw-icons/postgres.svg index 1fb1092f95445..073dec044bfeb 100644 --- a/packages/icons/src/raw-icons/postgres.svg +++ b/packages/icons/src/raw-icons/postgres.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/replace-code.svg b/packages/icons/src/raw-icons/replace-code.svg index 9d7c6242357a1..c64da15db79bf 100644 --- a/packages/icons/src/raw-icons/replace-code.svg +++ b/packages/icons/src/raw-icons/replace-code.svg @@ -1,13 +1,11 @@ + stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"> - - + d="M10.5896 10.0195L18.2148 10.0195C19.0433 10.0195 19.7148 9.34796 19.7148 8.51953L19.7148 3.59225C19.7148 2.76383 19.0433 2.09226 18.2148 2.09226L5.99609 2.09226" /> + + \ No newline at end of file diff --git a/packages/icons/src/raw-icons/reports.svg b/packages/icons/src/raw-icons/reports.svg index fa5948b0aee46..7e7727fcb8afd 100644 --- a/packages/icons/src/raw-icons/reports.svg +++ b/packages/icons/src/raw-icons/reports.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/sentry.svg b/packages/icons/src/raw-icons/sentry.svg index 3d0e0b79ed084..a1feac9629ca5 100644 --- a/packages/icons/src/raw-icons/sentry.svg +++ b/packages/icons/src/raw-icons/sentry.svg @@ -1 +1 @@ - + diff --git a/packages/icons/src/raw-icons/settings.svg b/packages/icons/src/raw-icons/settings.svg index 0d6963dd5c3d9..ac5dfaaf72dc9 100644 --- a/packages/icons/src/raw-icons/settings.svg +++ b/packages/icons/src/raw-icons/settings.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/storage.svg b/packages/icons/src/raw-icons/storage.svg index 4e1a08563c00d..3467f641675a3 100644 --- a/packages/icons/src/raw-icons/storage.svg +++ b/packages/icons/src/raw-icons/storage.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/table-editor.svg b/packages/icons/src/raw-icons/table-editor.svg index 578722406f232..a5b12a9ca0ab6 100644 --- a/packages/icons/src/raw-icons/table-editor.svg +++ b/packages/icons/src/raw-icons/table-editor.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/user.svg b/packages/icons/src/raw-icons/user.svg index 521844213f8e4..2e70dc98abca6 100644 --- a/packages/icons/src/raw-icons/user.svg +++ b/packages/icons/src/raw-icons/user.svg @@ -1,5 +1,5 @@ + stroke-width="1.5"> \ No newline at end of file diff --git a/packages/icons/src/raw-icons/vector-bucket.svg b/packages/icons/src/raw-icons/vector-bucket.svg index 60485c6437197..7c7a889e7dbfd 100644 --- a/packages/icons/src/raw-icons/vector-bucket.svg +++ b/packages/icons/src/raw-icons/vector-bucket.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/packages/shared-data/index.ts b/packages/shared-data/index.ts index e3f00b89ba931..3af6c105e2c82 100644 --- a/packages/shared-data/index.ts +++ b/packages/shared-data/index.ts @@ -16,7 +16,7 @@ import { pricing } from './pricing' import { PRODUCT_MODULES, products } from './products' import questions from './questions' import type { AWS_REGIONS_KEYS, CloudProvider, Region } from './regions' -import { AWS_REGIONS, FLY_REGIONS } from './regions' +import { AWS_REGIONS } from './regions' import tweets, { topTweets } from './tweets' export { @@ -32,7 +32,6 @@ export { ERROR_CODES, HTTP_ERROR_CODES, extensions, - FLY_REGIONS, logConstants, plans, pricing, diff --git a/packages/shared-data/regions.ts b/packages/shared-data/regions.ts index 5efd51c871915..7ba8ac9ae7272 100644 --- a/packages/shared-data/regions.ts +++ b/packages/shared-data/regions.ts @@ -1,5 +1,5 @@ -export type CloudProvider = 'FLY' | 'AWS' | 'AWS_K8S' | 'AWS_NIMBUS' -export type Region = Partial | Partial +export type CloudProvider = 'AWS' | 'AWS_K8S' | 'AWS_NIMBUS' +export type Region = Partial export const AWS_REGIONS = { WEST_US: { @@ -79,10 +79,6 @@ export const AWS_REGIONS = { export type AWS_REGIONS_KEYS = keyof typeof AWS_REGIONS -export const FLY_REGIONS = { - SOUTHEAST_ASIA: { code: 'sin', displayName: 'Singapore', location: [1.3521, 103.8198] }, -} as const - export const SMART_REGION_TO_EXACT_REGION_MAP = new Map([ ['Americas', 'East US (North Virginia)'], ['Europe', 'Central EU (Frankfurt)'], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 55dcc827d8724..6266009a7b77a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2393,6 +2393,9 @@ importers: '@types/react': specifier: 'catalog:' version: 19.2.14 + tsconfig: + specifier: workspace:* + version: link:../tsconfig packages/marketing: dependencies: diff --git a/supa-mdx-lint/Rule003Spelling.toml b/supa-mdx-lint/Rule003Spelling.toml index 2d9bd6b8d3f5c..2a830738c9504 100644 --- a/supa-mdx-lint/Rule003Spelling.toml +++ b/supa-mdx-lint/Rule003Spelling.toml @@ -35,6 +35,7 @@ allow_list = [ "BootFailure", "[Bb]reakpoints?", "[Bb]uilt-ins?", + "[Bb]undlers?", "[Cc]atalogs?", "[Cc]hangelogs?", "CircleCI", @@ -110,6 +111,7 @@ allow_list = [ "[Mm]ultipart", "[Mm]ultithreading", "[Nn]amespace(d|s)?", + "[Nn]o-ops?", "[Nn]onces?", "[Nn]ullable", "[Oo]ffboarding", @@ -149,6 +151,7 @@ allow_list = [ "[Ss]ubdomains?", "[Ss]ubfolders?", "[Ss]ubmodules?", + "[Ss]ubpaths?", "[Ss]wappiness", "TerminationRequested", "[Tt]imebox(ed)?",