diff --git a/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx b/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx index 195983325d90d..1ae88b582aea1 100644 --- a/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/TopNavBar.tsx @@ -110,7 +110,7 @@ const TopNavBar: FC = () => { } const HeaderLogo = memo(() => { - const { navigationLogoUrl } = useCustomContent(['navigation:logo_url']) + const { navigationLogo } = useCustomContent(['navigation:logo']) return ( { > Supabase wordmark Supabase wordmark DOCS diff --git a/apps/docs/hooks/custom-content/CustomContent.types.ts b/apps/docs/hooks/custom-content/CustomContent.types.ts index ece890f25daa1..ce845cef5b59d 100644 --- a/apps/docs/hooks/custom-content/CustomContent.types.ts +++ b/apps/docs/hooks/custom-content/CustomContent.types.ts @@ -1,7 +1,9 @@ export type CustomContentTypes = { homepageHeading: string - navigationLogoUrl: { + navigationLogo: { light: string dark: string + width?: number + height?: number } } diff --git a/apps/docs/hooks/custom-content/custom-content.json b/apps/docs/hooks/custom-content/custom-content.json index b6fe8d9eea660..71c311548424a 100644 --- a/apps/docs/hooks/custom-content/custom-content.json +++ b/apps/docs/hooks/custom-content/custom-content.json @@ -1,6 +1,6 @@ { "homepage:heading": "Supabase Documentation", - "navigation:logo_url": { + "navigation:logo": { "light": "/docs/supabase-light.svg", "dark": "/docs/supabase-dark.svg" } diff --git a/apps/docs/hooks/custom-content/useCustomContent.test.ts b/apps/docs/hooks/custom-content/useCustomContent.test.ts index 049d3eb450404..38145d93f5f63 100644 --- a/apps/docs/hooks/custom-content/useCustomContent.test.ts +++ b/apps/docs/hooks/custom-content/useCustomContent.test.ts @@ -15,19 +15,19 @@ describe('useCustomContent', () => { it('should return null if content is not found in the custom-content.json file', async () => { vi.doMock('./custom-content.json', () => ({ default: { - 'navigation:logo_url': null, + 'navigation:logo': null, }, })) const { useCustomContent } = await import('./useCustomContent') - const { result } = renderHook(() => useCustomContent(['navigation:logo_url'])) - expect(result.current.navigationLogoUrl).toEqual(null) + const { result } = renderHook(() => useCustomContent(['navigation:logo'])) + expect(result.current.navigationLogo).toEqual(null) }) it('should return the content for the key passed in if it exists in the custom-content.json file', async () => { vi.doMock('./custom-content.json', () => ({ default: { - 'navigation:logo_url': { + 'navigation:logo': { light: 'https://example.com/logo-light.svg', dark: 'https://example.com/logo-dark.svg', }, @@ -36,10 +36,8 @@ describe('useCustomContent', () => { })) const { useCustomContent } = await import('./useCustomContent') - const { result } = renderHook(() => - useCustomContent(['navigation:logo_url', 'homepage:heading']) - ) - expect(result.current.navigationLogoUrl).toEqual({ + const { result } = renderHook(() => useCustomContent(['navigation:logo', 'homepage:heading'])) + expect(result.current.navigationLogo).toEqual({ light: 'https://example.com/logo-light.svg', dark: 'https://example.com/logo-dark.svg', }) diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt index 7c7cfb3d29884..7aed925d2dbd5 100644 --- a/apps/docs/public/humans.txt +++ b/apps/docs/public/humans.txt @@ -140,6 +140,7 @@ Tyler Fontaine Tyler Shukert TzeYiing L Wen Bo Xie +Yorvi Arias Yuliya Marinova Yuri Santana ____________ diff --git a/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx b/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx index 9babccea5f648..139b5e315fffc 100644 --- a/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx +++ b/apps/www/_blog/2025-09-29-lovable-cloud-launch.mdx @@ -1,7 +1,7 @@ --- title: 'Lovable Cloud + Supabase: The Default Platform for AI Builders' description: Lovable Cloud makes building with AI agents easier than ever, with every project powered by Supabase behind the scenes. -author: wenbo +author: prashant image: 2025-09-lovable-cloud-launch/og.png thumb: 2025-09-lovable-cloud-launch/og.png categories: diff --git a/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx b/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx new file mode 100644 index 0000000000000..141962b69b2ce --- /dev/null +++ b/apps/www/_blog/2025-09-30-bolt-cloud-launch.mdx @@ -0,0 +1,76 @@ +--- +title: Enterprise speed, enterprise standards with Bolt Cloud + Supabase +description: With today's launch of Bolt Cloud, every project that needs a backend is powered by Supabase, giving developers enterprise standards with the speed of vibe coding. +author: prashant +image: 2025-09-bolt-cloud-launch/og.png +thumb: 2025-09-bolt-cloud-launch/og.png +categories: + - product + - bolt + - enterprise +date: 2025-09-30:08:00 +toc_depth: 2 +--- + +With today's launch of Bolt Cloud, every project in [Bolt Cloud](https://bolt.new) that needs a backend is powered by Supabase. Now, when you tell Bolt what you want to build, your project launches with a complete Supabase foundation including: + +- A full Postgres Database +- Authentication and user management +- Storage for files, videos, and more +- Edge Functions +- Realtime for more immersive user experiences + +Together, Bolt and Supabase give developers and product managers the best of both worlds: the speed of vibe coding and the standards enterprises require. Bolt has already connected their apps to over 600,000 Supabase backends today. + +## The enterprise developer problem + +Enterprise developers and product managers face familiar challenges: + +- **Endless error loops.** Quick demos often collapse under real-world traffic or audits. Supabase + Bolt ensure reliability from the start. +- **Half-wired backends.** Databases here, auth there, storage somewhere else — every integration adds friction and failure points. The Bolt agent wires everything up with Supabase built in. +- **Prototypes that stall.** Tools that accelerate early prototypes often fail at scale, forcing painful rewrites. Supabase scale plus Bolt Cloud means you can move fast without hitting a rewrite wall. + +Enterprise teams need speed and reliability. Supabase bridges both. It's the Postgres development platform that lets you build in a weekend and scale to millions, with the performance, compliance, and observability enterprises demand. Bolt Cloud proves the same point: speed only matters if you can trust the foundation. + +## Supabase and Bolt Cloud: build enterprise applications in minutes + +Bolt Cloud projects that use Supabase as their backend let teams move fast on infrastructure already trusted by enterprises across industries: + +- **[Postgres Database](/database).** Production-ready Postgres with extensions, scaling, and backups built in. No proprietary query languages, no migration headaches, just SQL. +- **[Supabase Auth](/auth).** Complete authentication and user management, including enterprise features like SAML and SSO, plus Row Level Security for granular access control. +- **[Supabase Storage](/storage).** S3-compatible object storage, built for handling user-generated content at scale. +- **[Supabase Edge Functions](/edge-functions).** Globally distributed functions for custom business logic, deployed close to your users. +- **[Realtime APIs](/realtime).** Postgres replication exposed as APIs, enabling collaboration and live data without additional infrastructure. + +Because Supabase is just Postgres, enterprises can reuse their skills, connect existing systems through Foreign Data Wrappers, and trust technology proven at global scale. + +## Enterprise standards included + +Bolt Cloud projects built on Supabase meet enterprise requirements: + +- SOC 2 and HIPAA certifications for compliance-driven industries +- Row Level Security for protecting sensitive data +- Read replicas and horizontal scaling for unpredictable traffic +- Point-in-time recovery and automatic backups for resilience + +These are not afterthoughts. They are table stakes for enterprise scale. Supabase delivers them out of the box. + +## Why this matters + +_Build in a weekend_. _Scale to millions_. This isn't just a tagline. It's how we operate. It means balancing the need for teams to move fast with the requirement to act responsibly and safely. Supabase is not just for startups. Modern enterprise teams face equal pressure to move faster than ever. + +Bolt Cloud shows how this vision works in practice. A modern frontend workflow can extend into a secure, scalable backend powered by Supabase. Enterprise developers can move at the speed of AI-assisted development without leaving behind the standards their organizations require. + +## Start building + +Supabase is more than a database. It is the fully integrated Postgres development platform that reduces complexity for developers and reduces risk for enterprises. Bolt Cloud highlights the same trend we built around: giving teams superpowers without compromise. + +**For developers:** Easy tools, instant setup, and seamless integrations. + +**For enterprises:** Compliance, reliability, and the ability to scale with confidence. + +It is not a tradeoff anymore. The new generation of tools delivers both. + +[Get started with Supabase →](https://supabase.com/dashboard) + +[Start your first Bolt Cloud project today →](https://bolt.new) diff --git a/apps/www/_blog/2025-09-30-postgrest-13-release.mdx b/apps/www/_blog/2025-09-30-postgrest-13-release.mdx new file mode 100644 index 0000000000000..d729893ebfc36 --- /dev/null +++ b/apps/www/_blog/2025-09-30-postgrest-13-release.mdx @@ -0,0 +1,204 @@ +--- +title: PostgREST 13 +description: New features and changes in PostgREST version 13. +author: steve_chavez,laurenceisla,avallete +image: 2025-09-30-postgrest-13-release/postgrest-13-release.png +thumb: 2025-09-30-postgrest-13-release/postgrest-13-release.png +categories: + - postgres +tags: + - postgres + - postgrest + - release-notes +date: '2025-09-30' +--- + +PostgREST 13 is out! It comes with API and Observabilty improvements. In this post, we'll see what's new. + +## Spread To-Many relationships + +This new feature allows you to represent one-to-many and many-to-many relationships as flat JSON arrays. + +For example, if you have database similar to IMDB and you’d like to represent it as a hierarchical JSON structure for your frontend, like so: + +```json +[ + { + "title": "The Shawshank Redemption", + "actors": ["Tim Robbins", "Morgan Freeman"], + "genres": ["Drama"] + }, + { + "title": "The Godfather", + "actors": ["Marlon Brando", "Al Pacino"], + "genres": ["Drama", "Crime"] + }, + { + "title": "The Dark Knight", + "actors": ["Christian Bale", "Heath Ledger"], + "genres": ["Drama", "Crime", "Action"] + } +] +``` + +You can now do it this way: + +<$CodeTabs> + +```js name=JavaScript +const { data, error } = await supabase.from('titles').select(` + title:primary_title, + ...people(actors:primary_name), + ...genres(genres:name) +`) +``` + +```bash name=Bash +curl --get 'https:///titles' + -d "select=title:primary_title,...people(actors:primary_name),...genres(genres:name)" + -H "Authorization: Bearer " +``` + +```swift name=Swift +try await supabase.from("titles").select( +""" + title:primary_title, + ...people(actors:primary_name), + ...genres(genres:name) +""") +``` + + + +The above `...people` is “spreading” the many-to-many relationship between `titles` and `people`, forming a flat array only consisting of the `primary_name` column. This flat array is then renamed to `actors`. We do a similar process for `genres` , which also forms a many-to-many relationship with `people`. + +You can see the data model used for this example on this [gist](https://gist.github.com/steve-chavez/93f7ae04b4323e1952710af7129b32cf). There are more details about this feature on the [official docs](https://docs.postgrest.org/en/v13/references/api/resource_embedding.html#spread-to-many-relationships). + +## Automatic tsvector convertion + +Previously you could only use the full text search operator on `tsvector` columns, now you can do it on `text` and `json/jsonb` columns too: + +<$CodeTabs> + +```js name=JavaScript +const { data, error } = await supabase.from('titles').textSearch('primary_name', `'god' & 'father'`) +``` + +```bash name=Bash +curl --get 'https:///titles' + -d "primary_name=fts.'god'%26'father" + -H "Authorization: Bearer " +``` + +```swift name=Swift +try await supabase + .from("titles") + .fts("primary_name",value: "'god' & 'father'") +``` + + + +This works because `text` and `json/jsonb` columns will be automatically converted with `to_tsvector`. + +To ensure this operation is fast, add an index: + +```sql +create index idx_titles on people +using gin (to_tsvector('english', primary_name)); +``` + +## Max Affected + +You can now limit to the amount of rows affected by an `update` or `delete` operation with `maxAffected`: + +<$CodeTabs> + +```js name=JavaScript +const { data, error } = await supabase + .from('people') + .update({ primary_name: 'Marlon Brando Jr.' }) + .eq('nconst', 'nm0000008') + .maxAffected(1) + +// This is available starting from supabase-js version 2.56.0 +``` + +```bash name=Bash +curl -X PATCH 'https:///people' \ + -d "nconst=eq.nm0000008" \ + -H "Authorization: Bearer " \ + -H "Prefer: handling=strict, max-affected=1" \ + -H "Content-Type: application/json" \ + -d @- < + +If the rows affected by the operation surpass the limit in `maxAffected`, an error will be thrown. + +This also works with `rpc()`, given that it modifies rows and returns the affected rows. More on details on the [official docs](https://docs.postgrest.org/en/v13/references/api/preferences.html#max-affected). + +## Content-Length header + +For observability, you can now verify the response body size in bytes in the `Content-Length` header. + +```bash +HTTP/1.1 200 OK +Content-Length: 104 +Content-Location: /items +``` + +This helps in cases where you want to know which requests consume the most traffic to avoid exceeding egress limits. + +## Proxy-Status header + +The PostgREST error code is now present in the `Proxy-Status` header. + +```bash +HTTP/1.1 406 Not Acceptable +Proxy-Status: PostgREST; error=PGRST116 +``` + +You can check the `Proxy-Status` and `Content-Length` headers in the Supabase Logs Explorer. + +## Breaking Changes + +### JWT `kid` validation + +PostgREST now validates the JWT `kid` claim. If your JWT contains a Key ID (`kid`), it will try to match this with one of the `kid`'s in the configured JSON Web Key Set. Check the [official docs](https://docs.postgrest.org/en/v13/references/auth.html#jwk-kid-validation) for more details. + +If you use Supabase Auth or the CLI to create JSON Web Keys, you shouldn’t worry about this change as both systems will ensure `kid`'s are present in the JSON Web Key Set. + +For users that integrate with other Auth systems, make sure that both your JWT and JWKS follow the above rules. + +### Schema validation in PostgREST search path + +The schemas inside `db-schemas` and `db-extra-search-path` are now validated. This means you cannot put a nonexistent schema there, if you do PostgREST will fail with an error message. + +If you drop a schema during a migration, you should make sure this is synced with the PostgREST search path, which is possible thanks to postgres transactional DDL: + +```sql +begin; +drop schema old_schema; +alter role authenticator set pgrst.db_schemas = 'public, pg_graphql, others'; -- make sure old_schema is not present here +commit; +``` + +## Try it out + +PostgREST v13 is now available for all new projects on the Supabase platform, old projects can upgrade to get this new version. + +You can look at the full changelog on the [release notes](https://github.com/PostgREST/postgrest/releases/tag/v13.0.0). diff --git a/apps/www/app/blog/[slug]/page.tsx b/apps/www/app/blog/[slug]/page.tsx index dd3ce29f66fab..d5f50513a30f5 100644 --- a/apps/www/app/blog/[slug]/page.tsx +++ b/apps/www/app/blog/[slug]/page.tsx @@ -39,7 +39,7 @@ async function getCMSPostFromAPI( const response = await fetch(url.toString(), fetchOptions) if (!response.ok) { - console.error('[getCMSPostFromAPI] Non-OK response:', response.status) + console.warn('[getCMSPostFromAPI] Non-OK response:', response.status) return null } @@ -47,7 +47,7 @@ async function getCMSPostFromAPI( return data.success ? data.post : null } catch (error) { - console.error('[getCMSPostFromAPI] Error:', error) + console.warn('[getCMSPostFromAPI] Error:', error) return null } } @@ -295,7 +295,7 @@ export default async function BlogPostPage({ params }: { params: Promise try { processedContent = await processCMSContent(cmsPost.richContent || cmsPost.content, tocDepth) } catch (error) { - console.error('Error processing CMS content, falling back to legacy processing:', error) + console.warn('Error processing CMS content, falling back to legacy processing:', error) // Fallback to legacy processing const mdxSource = await mdxSerialize(cmsPost.content || '', { tocDepth }) processedContent = { diff --git a/apps/www/components/CodeBlock/CodeBlock.tsx b/apps/www/components/CodeBlock/CodeBlock.tsx index 7e333ab0d4b19..e411aec300f6f 100644 --- a/apps/www/components/CodeBlock/CodeBlock.tsx +++ b/apps/www/components/CodeBlock/CodeBlock.tsx @@ -13,9 +13,10 @@ import sql from 'react-syntax-highlighter/dist/cjs/languages/hljs/sql' import yaml from 'react-syntax-highlighter/dist/cjs/languages/hljs/yaml' import json from 'react-syntax-highlighter/dist/cjs/languages/hljs/json' import { Button, cn } from 'ui' -import monokaiCustomTheme from './CodeBlock.utils' +import monokaiCustomTheme, { codeHikeTheme } from './CodeBlock.utils' export type LANG = 'js' | 'sql' | 'py' | 'bash' | 'ts' | 'tsx' | 'kotlin' | 'yaml' | 'json' + export interface CodeBlockProps { lang: LANG startingLineNumber?: number @@ -25,11 +26,13 @@ export interface CodeBlockProps { children?: string size?: 'small' | 'medium' | 'large' background?: string + filename?: string + theme?: 'monokai' | 'code-hike' } function CodeBlock(props: CodeBlockProps) { const { resolvedTheme } = useTheme() - const isDarkTheme = resolvedTheme?.includes('dark')! + const isDarkTheme = resolvedTheme?.includes('dark') ?? false const [copied, setCopied] = useState(false) const [mounted, setMounted] = useState(false) @@ -51,6 +54,8 @@ function CodeBlock(props: CodeBlockProps) { }, 1000) } + const isCodeHikeTheme = props.theme === 'code-hike' + let lang = props.lang ? props.lang : props.className @@ -111,7 +116,15 @@ function CodeBlock(props: CodeBlockProps) { {/* @ts-ignore */} diff --git a/apps/www/components/CodeBlock/CodeBlock.utils.js b/apps/www/components/CodeBlock/CodeBlock.utils.js index 7eea1da69cec3..4a3da382c6529 100644 --- a/apps/www/components/CodeBlock/CodeBlock.utils.js +++ b/apps/www/components/CodeBlock/CodeBlock.utils.js @@ -229,4 +229,237 @@ const monokaiCustomTheme = { }, } +// CodeHike theme based on the colors from code-hike.scss +const codeHikeTheme = { + dark: { + hljs: { + display: 'block', + overflowX: 'auto', + padding: '0.5em', + background: '#2a2929', // --ch-16 dark + color: '#f8f8f2', // --ch-4 + }, + 'hljs-tag': { + color: '#79c0ff', // --ch-2 + }, + 'hljs-keyword': { + color: '#79c0ff', // --ch-2 + fontWeight: 'normal', + }, + 'hljs-selector-tag': { + color: '#79c0ff', // --ch-2 + fontWeight: 'normal', + }, + 'hljs-literal': { + color: '#79c0ff', // --ch-2 + fontWeight: 'normal', + }, + 'hljs-strong': { + color: '#79c0ff', // --ch-2 + }, + 'hljs-name': { + color: '#79c0ff', // --ch-2 + }, + 'hljs-code': { + color: '#569cd6', // --ch-7 + }, + 'hljs-class .hljs-title': { + color: '#8b949e', // --ch-1 + }, + 'hljs-attribute': { + color: '#bda4ff', // --ch-5 + }, + 'hljs-symbol': { + color: '#bda4ff', // --ch-5 + }, + 'hljs-regexp': { + color: '#bda4ff', // --ch-5 + }, + 'hljs-link': { + color: '#bda4ff', // --ch-5 + }, + 'hljs-string': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-bullet': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-subst': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-title': { + color: '#ffcda1', // --ch-3 + fontWeight: 'normal', + }, + 'hljs-section': { + color: '#ffcda1', // --ch-3 + fontWeight: 'normal', + }, + 'hljs-emphasis': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-type': { + color: '#ffcda1', // --ch-3 + fontWeight: 'normal', + }, + 'hljs-built_in': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-builtin-name': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-selector-attr': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-selector-pseudo': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-addition': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-variable': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-template-tag': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-template-variable': { + color: '#ffcda1', // --ch-3 + }, + 'hljs-comment': { + color: '#8b949e', // --ch-1 + }, + 'hljs-quote': { + color: '#8b949e', // --ch-1 + }, + 'hljs-deletion': { + color: '#8b949e', // --ch-1 + }, + 'hljs-meta': { + color: '#8b949e', // --ch-1 + }, + 'hljs-doctag': { + fontWeight: 'normal', + }, + 'hljs-selector-id': { + fontWeight: 'normal', + }, + }, + light: { + hljs: { + display: 'block', + overflowX: 'auto', + padding: '0.5em', + background: '#eeeeee', // --ch-16 light + color: '#24292f', // --ch-4 + }, + 'hljs-tag': { + color: '#0550ae', // --ch-2 + }, + 'hljs-keyword': { + color: '#0550ae', // --ch-2 + fontWeight: 'normal', + }, + 'hljs-selector-tag': { + color: '#0550ae', // --ch-2 + fontWeight: 'normal', + }, + 'hljs-literal': { + color: '#0550ae', // --ch-2 + fontWeight: 'normal', + }, + 'hljs-strong': { + color: '#0550ae', // --ch-2 + }, + 'hljs-name': { + color: '#0550ae', // --ch-2 + }, + 'hljs-code': { + color: '#cf222e', // --ch-7 + }, + 'hljs-class .hljs-title': { + color: '#6e7781', // --ch-1 + }, + 'hljs-attribute': { + color: '#8250df', // --ch-5 + }, + 'hljs-symbol': { + color: '#8250df', // --ch-5 + }, + 'hljs-regexp': { + color: '#8250df', // --ch-5 + }, + 'hljs-link': { + color: '#8250df', // --ch-5 + }, + 'hljs-string': { + color: '#953800', // --ch-3 + }, + 'hljs-bullet': { + color: '#953800', // --ch-3 + }, + 'hljs-subst': { + color: '#953800', // --ch-3 + }, + 'hljs-title': { + color: '#953800', // --ch-3 + fontWeight: 'normal', + }, + 'hljs-section': { + color: '#953800', // --ch-3 + fontWeight: 'normal', + }, + 'hljs-emphasis': { + color: '#953800', // --ch-3 + }, + 'hljs-type': { + color: '#953800', // --ch-3 + fontWeight: 'normal', + }, + 'hljs-built_in': { + color: '#953800', // --ch-3 + }, + 'hljs-builtin-name': { + color: '#953800', // --ch-3 + }, + 'hljs-selector-attr': { + color: '#953800', // --ch-3 + }, + 'hljs-selector-pseudo': { + color: '#953800', // --ch-3 + }, + 'hljs-addition': { + color: '#953800', // --ch-3 + }, + 'hljs-variable': { + color: '#953800', // --ch-3 + }, + 'hljs-template-tag': { + color: '#953800', // --ch-3 + }, + 'hljs-template-variable': { + color: '#953800', // --ch-3 + }, + 'hljs-comment': { + color: '#6e7781', // --ch-1 + }, + 'hljs-quote': { + color: '#6e7781', // --ch-1 + }, + 'hljs-deletion': { + color: '#6e7781', // --ch-1 + }, + 'hljs-meta': { + color: '#6e7781', // --ch-1 + }, + 'hljs-doctag': { + fontWeight: 'normal', + }, + 'hljs-selector-id': { + fontWeight: 'normal', + }, + }, +} + +export { codeHikeTheme } export default monokaiCustomTheme diff --git a/apps/www/components/CodeTabs/CodeTabs.components.tsx b/apps/www/components/CodeTabs/CodeTabs.components.tsx new file mode 100644 index 0000000000000..b15f0d9ba745c --- /dev/null +++ b/apps/www/components/CodeTabs/CodeTabs.components.tsx @@ -0,0 +1,21 @@ +import type { PropsWithChildren } from 'react' + +import { cn } from 'ui' + +export function NamedCodeBlock({ name, children }: PropsWithChildren<{ name: string }>) { + return ( +
+
+ {name} +
+ {children} +
+ ) +} diff --git a/apps/www/components/CodeTabs/index.ts b/apps/www/components/CodeTabs/index.ts new file mode 100644 index 0000000000000..3366febfa064d --- /dev/null +++ b/apps/www/components/CodeTabs/index.ts @@ -0,0 +1,2 @@ +export { NamedCodeBlock } from './CodeTabs.components' +export { preprocessMdxWithCodeTabs } from './utils' diff --git a/apps/www/components/CodeTabs/simple-transform.ts b/apps/www/components/CodeTabs/simple-transform.ts new file mode 100644 index 0000000000000..8b85b9fb042fd --- /dev/null +++ b/apps/www/components/CodeTabs/simple-transform.ts @@ -0,0 +1,48 @@ +/** + * Simple string-based transformation for CodeTabs + * This avoids the complex AST manipulation that's causing issues + */ + +export function transformCodeTabs(mdx: string): string { + // Pattern to match <$CodeTabs>... blocks + const codeTabsPattern = /<\$CodeTabs>([\s\S]*?)<\/\$CodeTabs>/g + + return mdx.replace(codeTabsPattern, (match, content) => { + // Extract code blocks from the content + const codeBlockPattern = /```(\w+)(?:\s+name=([^\s]+))?\s*\n([\s\S]*?)\n```/g + const codeBlocks: Array<{ lang: string; name?: string; content: string }> = [] + + let blockMatch: RegExpExecArray | null + // biome-ignore lint/suspicious/noAssignInExpressions: required for regex loop + while ((blockMatch = codeBlockPattern.exec(content)) !== null) { + const [, lang, name, blockContent] = blockMatch + codeBlocks.push({ + lang, + name: name || `${lang}.${lang === 'bash' ? 'sh' : lang}`, + content: blockContent.trim(), + }) + } + + if (codeBlocks.length === 0) { + return match // Return original if no code blocks found + } + + // Generate the Tabs structure + const tabPanels = codeBlocks + .map( + (block) => ` + + +\`\`\`${block.lang} +${block.content} +\`\`\` + + ` + ) + .join('') + + return ` +${tabPanels} +` + }) +} diff --git a/apps/www/components/CodeTabs/utils.ts b/apps/www/components/CodeTabs/utils.ts new file mode 100644 index 0000000000000..e5befcfc12eea --- /dev/null +++ b/apps/www/components/CodeTabs/utils.ts @@ -0,0 +1,13 @@ +import { transformCodeTabs } from './simple-transform' + +export function preprocessMdxWithCodeTabs(mdx: string) { + try { + // Use simple string-based transformation + const transformed = transformCodeTabs(mdx) + return Promise.resolve(transformed) + } catch (error) { + console.error('preprocessMdxWithCodeTabs error:', error) + // Fallback to returning the original MDX + return Promise.resolve(mdx) + } +} diff --git a/apps/www/components/Tabs/Tabs.tsx b/apps/www/components/Tabs/Tabs.tsx new file mode 100644 index 0000000000000..4811f9fca94ab --- /dev/null +++ b/apps/www/components/Tabs/Tabs.tsx @@ -0,0 +1,77 @@ +'use client' + +import { useState, useEffect } from 'react' +import { cn, Tabs_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_, TabsContent_Shadcn_ } from 'ui' + +export interface TabsProps { + children: React.ReactNode + className?: string + defaultActiveId?: string + listClassNames?: string +} + +export interface TabPanelProps { + children: React.ReactNode + id: string + label: string + className?: string +} + +function Tabs({ children, className, defaultActiveId, listClassNames }: TabsProps) { + const [mounted, setMounted] = useState(false) + const [activeTab, setActiveTab] = useState(defaultActiveId) + + useEffect(() => { + setMounted(true) + }, []) + + if (!mounted) return null + + // Extract tab panels from children + const tabPanels = Array.isArray(children) ? children : [children] + const validTabPanels = tabPanels.filter( + (child) => child && typeof child === 'object' && 'props' in child && child.props.id + ) + + if (validTabPanels.length === 0) return null + + const currentActiveTab = activeTab || validTabPanels[0]?.props?.id + + return ( +
+ + + {validTabPanels.map((panel) => ( + + {panel.props.label} + + ))} + + {validTabPanels.map((panel) => ( + + {panel.props.children} + + ))} + +
+ ) +} + +function TabPanel({ children, id, label, className }: TabPanelProps) { + return ( +
+ {children} +
+ ) +} + +export { Tabs, TabPanel } +export default Tabs diff --git a/apps/www/components/Tabs/index.ts b/apps/www/components/Tabs/index.ts new file mode 100644 index 0000000000000..2b7eec56a135c --- /dev/null +++ b/apps/www/components/Tabs/index.ts @@ -0,0 +1,2 @@ +export { Tabs, TabPanel } from './Tabs' +export type { TabsProps, TabPanelProps } from './Tabs' diff --git a/apps/www/lib/authors.json b/apps/www/lib/authors.json index 4940276eb0c25..6e5af52174d17 100644 --- a/apps/www/lib/authors.json +++ b/apps/www/lib/authors.json @@ -106,6 +106,14 @@ "author_url": "https://github.com/laurenceisla", "author_image_url": "https://github.com/laurenceisla.png" }, + { + "author_id": "avallete", + "author": "Andrew Valleteau", + "username": "avallete", + "position": "Engineering", + "author_url": "https://github.com/avallete", + "author_image_url": "https://github.com/avallete.png" + }, { "author_id": "supabase", "author": "Supabase", diff --git a/apps/www/lib/mdx/mdxComponents.tsx b/apps/www/lib/mdx/mdxComponents.tsx index 90a00a1908cdc..2e391394b8a04 100644 --- a/apps/www/lib/mdx/mdxComponents.tsx +++ b/apps/www/lib/mdx/mdxComponents.tsx @@ -1,6 +1,5 @@ 'use client' -import { PropsWithChildren } from 'react' import { CH } from '@code-hike/mdx/components' import dynamic from 'next/dynamic' import { ArrowUpRight, Triangle } from 'lucide-react' @@ -14,11 +13,26 @@ import { Image, } from 'ui' import { Admonition } from 'ui-patterns/admonition' +import type { PropsWithChildren } from 'react' import type { ImageProps } from 'ui/src/components/Image/Image' const Avatar = dynamic(() => import('~/components/Avatar')) const Chart = dynamic(() => import('~/components/Charts/PGCharts')) const CodeBlock = dynamic(() => import('~/components/CodeBlock/CodeBlock')) +const Tabs = dynamic(() => import('~/components/Tabs/Tabs'), { ssr: false }) +const TabPanel = dynamic( + () => import('~/components/Tabs/Tabs').then((mod) => ({ default: mod.TabPanel })), + { ssr: false } +) +const NamedCodeBlock = dynamic( + () => + import('~/components/CodeTabs').then((mod) => ({ + default: mod.NamedCodeBlock, + })), + { + ssr: false, + } +) const ImageFadeStack = dynamic(() => import('~/components/ImageFadeStack')) const ImageGrid = dynamic(() => import('~/components/ImageGrid')) const InlineCodeTag = dynamic(() => import('~/components/InlineCode')) @@ -73,6 +87,9 @@ const BlogCollapsible = ({ export default function mdxComponents(type?: 'blog' | 'lp' | undefined) { const components = { CodeBlock, + Tabs, + TabPanel, + NamedCodeBlock, CH, h1: (props: any) => , h2: (props: any) => , @@ -110,6 +127,7 @@ export default function mdxComponents(type?: 'blog' | 'lp' | undefined) { /> ) } + // biome-ignore lint/a11y/useAltText: provided in props return }, Img: ({ zoomable = true, className, ...props }: ImageProps & { wide?: boolean }) => ( diff --git a/apps/www/lib/mdx/mdxSerialize.ts b/apps/www/lib/mdx/mdxSerialize.ts index 35a43940b50ae..7e4b6d7cd297a 100644 --- a/apps/www/lib/mdx/mdxSerialize.ts +++ b/apps/www/lib/mdx/mdxSerialize.ts @@ -2,8 +2,9 @@ import { serialize } from 'next-mdx-remote/serialize' import rehypeSlug from 'rehype-slug' import remarkGfm from 'remark-gfm' -import { CodeHikeConfig, remarkCodeHike } from '@code-hike/mdx' +import { type CodeHikeConfig, remarkCodeHike } from '@code-hike/mdx' import codeHikeTheme from 'config/code-hike.theme.json' with { type: 'json' } +import { preprocessMdxWithCodeTabs } from '~/components/CodeTabs' // mdx2 needs self-closing tags. // dragging an image onto a GitHub discussion creates an @@ -64,13 +65,18 @@ function createRemarkCollectToc(maxDepth: number) { walk(tree) // Attach to tree data for retrieval post-serialize - ;(tree.data || (tree.data = {})).__collectedToc = items + if (!tree.data) { + tree.data = {} + } + tree.data.__collectedToc = items } } } export async function mdxSerialize(source: string, options?: { tocDepth?: number }) { const formattedSource = addSelfClosingTags(source) + // Preprocess MDX to handle CodeTabs transformation + const preprocessedSource = await preprocessMdxWithCodeTabs(formattedSource) const codeHikeOptions: CodeHikeConfig = { theme: codeHikeTheme, lineNumbers: true, @@ -82,7 +88,7 @@ export async function mdxSerialize(source: string, options?: { tocDepth?: number const tocDepth = options?.tocDepth ?? 2 let collectedToc: TocItem[] = [] - const mdxSource: any = await serialize(formattedSource, { + const mdxSource = await serialize(preprocessedSource, { scope: { chCodeConfig: codeHikeOptions, }, @@ -91,10 +97,10 @@ export async function mdxSerialize(source: string, options?: { tocDepth?: number [remarkCodeHike, codeHikeOptions], remarkGfm, // Collect headings into a simple TOC structure - function () { + () => { const plugin = createRemarkCollectToc(tocDepth) const transformer = (plugin as any)() - return function (tree: any) { + return (tree: any) => { transformer(tree) if (tree?.data?.__collectedToc) { collectedToc = tree.data.__collectedToc as TocItem[] diff --git a/apps/www/package.json b/apps/www/package.json index 45fbe5561ab8b..ad034c28b758e 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -26,11 +26,11 @@ "@next/bundle-analyzer": "15.3.1", "@next/mdx": "15.3.1", "@octokit/auth-app": "^7.0.0", - "@payloadcms/live-preview-react": "^3.0.0", "@octokit/core": "^6.0.0", "@octokit/graphql": "^8.0.0", "@octokit/plugin-paginate-graphql": "^4.0.0", "@octokit/rest": "^21.0.0", + "@payloadcms/live-preview-react": "^3.0.0", "@radix-ui/react-dialog": "^1.0.5", "@sentry/nextjs": "^10", "@supabase/supabase-js": "catalog:", @@ -52,6 +52,13 @@ "icons": "workspace:*", "lucide-react": "*", "markdown-toc": "^1.2.0", + "mdast-util-from-markdown": "^2.0.2", + "mdast-util-gfm": "^2.0.2", + "mdast-util-mdx": "^2.0.1", + "mdast-util-mdx-jsx": "^2.1.4", + "mdast-util-to-markdown": "^1.5.0", + "micromark-extension-gfm": "^2.0.3", + "micromark-extension-mdxjs": "^1.0.1", "next": "catalog:", "next-mdx-remote": "^4.4.1", "next-seo": "^6.5.0", @@ -86,6 +93,7 @@ "@types/animejs": "^3.1.12", "@types/classnames": "^2.3.1", "@types/common-tags": "^1.8.4", + "@types/mdast": "^4.0.4", "@types/mdx-js__react": "^1.5.6", "@types/parse-numeric-range": "^0.0.1", "@types/react": "catalog:", @@ -97,7 +105,9 @@ "api-types": "workspace:*", "postcss": "^8.5.3", "react-hook-form": "^7.45.0", + "tailwindcss": "^3.4.1", "tsconfig": "workspace:*", + "unist-util-visit-parents": "5.1.3", "uuid": "^9.0.1", "zod": "catalog:" }, diff --git a/apps/www/public/images/blog/2025-09-30-postgrest-13-release/postgrest-13-release.png b/apps/www/public/images/blog/2025-09-30-postgrest-13-release/postgrest-13-release.png new file mode 100644 index 0000000000000..12d899045e44a Binary files /dev/null and b/apps/www/public/images/blog/2025-09-30-postgrest-13-release/postgrest-13-release.png differ diff --git a/apps/www/public/images/blog/2025-09-bolt-cloud-launch/og.png b/apps/www/public/images/blog/2025-09-bolt-cloud-launch/og.png new file mode 100644 index 0000000000000..510daf29725a6 Binary files /dev/null and b/apps/www/public/images/blog/2025-09-bolt-cloud-launch/og.png differ diff --git a/apps/www/public/sitemap_www.xml b/apps/www/public/sitemap_www.xml index 944e53e64b632..b27b565864822 100644 --- a/apps/www/public/sitemap_www.xml +++ b/apps/www/public/sitemap_www.xml @@ -2162,6 +2162,18 @@ 0.5 + + https://supabase.com/blog/defense-in-depth-mcp + weekly + 0.5 + + + + https://supabase.com/blog/postgrest-13-release + weekly + 0.5 + + https://supabase.com/customers/asap-work weekly diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d39f21839390c..41bbae33039ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -237,10 +237,10 @@ importers: version: 1.2.0 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-contentlayer2: specifier: 0.4.6 - version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) + version: 0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -382,13 +382,13 @@ importers: version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^10.3.0 - version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@supabase/supabase-js': specifier: 'catalog:' version: 2.49.3 '@tailwindcss/container-queries': specifier: ^0.1.1 - version: 0.1.1(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2))) + version: 0.1.1(tailwindcss@4.1.13) '@tanstack/react-query': specifier: ^5.13.4 version: 5.13.4(react@18.3.1) @@ -797,7 +797,7 @@ importers: version: 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^10.3.0 - version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@std/path': specifier: npm:@jsr/std__path@^1.0.8 version: '@jsr/std__path@1.0.8' @@ -932,13 +932,13 @@ importers: version: 0.52.2 next: specifier: 'catalog:' - version: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nuqs: specifier: ^2.4.1 - version: 2.4.1(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 2.4.1(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) openai: specifier: ^4.75.1 version: 4.104.0(encoding@0.1.13)(ws@8.18.3)(zod@3.25.76) @@ -1209,7 +1209,7 @@ importers: version: 2.4.11(typescript@5.9.2) next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) + version: 0.9.13(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) node-mocks-http: specifier: ^1.17.2 version: 1.17.2(@types/node@22.13.14) @@ -1573,7 +1573,7 @@ importers: version: 1.0.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: ^10 - version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@supabase/supabase-js': specifier: 'catalog:' version: 2.49.3 @@ -1631,6 +1631,27 @@ importers: markdown-toc: specifier: ^1.2.0 version: 1.2.0 + mdast-util-from-markdown: + specifier: ^2.0.2 + version: 2.0.2(supports-color@8.1.1) + mdast-util-gfm: + specifier: ^2.0.2 + version: 2.0.2(supports-color@8.1.1) + mdast-util-mdx: + specifier: ^2.0.1 + version: 2.0.1(supports-color@8.1.1) + mdast-util-mdx-jsx: + specifier: ^2.1.4 + version: 2.1.4(supports-color@8.1.1) + mdast-util-to-markdown: + specifier: ^1.5.0 + version: 1.5.0 + micromark-extension-gfm: + specifier: ^2.0.3 + version: 2.0.3 + micromark-extension-mdxjs: + specifier: ^1.0.1 + version: 1.0.1 next: specifier: 'catalog:' version: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) @@ -1728,6 +1749,9 @@ importers: '@types/common-tags': specifier: ^1.8.4 version: 1.8.4 + '@types/mdast': + specifier: ^4.0.4 + version: 4.0.4 '@types/mdx-js__react': specifier: ^1.5.6 version: 1.5.6 @@ -1761,9 +1785,15 @@ importers: react-hook-form: specifier: ^7.45.0 version: 7.47.0(react@18.3.1) + tailwindcss: + specifier: ^3.4.1 + version: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) tsconfig: specifier: workspace:* version: link:../../packages/tsconfig + unist-util-visit-parents: + specifier: 5.1.3 + version: 5.1.3 uuid: specifier: ^9.0.1 version: 9.0.1 @@ -2514,7 +2544,7 @@ importers: version: link:../api-types next-router-mock: specifier: ^0.9.13 - version: 0.9.13(next@15.5.2(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) + version: 0.9.13(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1) tsx: specifier: ^4.19.3 version: 4.19.3 @@ -4125,6 +4155,7 @@ packages: '@graphql-tools/prisma-loader@8.0.17': resolution: {integrity: sha512-fnuTLeQhqRbA156pAyzJYN0KxCjKYRU5bz1q/SKOwElSnAU4k7/G1kyVsWLh7fneY78LoMNH5n+KlFV8iQlnyg==} engines: {node: '>=16.0.0'} + deprecated: 'This package was intended to be used with an older versions of Prisma.\nThe newer versions of Prisma has a different approach to GraphQL integration.\nTherefore, this package is no longer needed and has been deprecated and removed.\nLearn more: https://www.prisma.io/graphql' peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -9452,6 +9483,9 @@ packages: '@types/mdast@4.0.1': resolution: {integrity: sha512-IlKct1rUTJ1T81d8OHzyop15kGv9A/ff7Gz7IJgrk6jDb4Udw77pCJ+vq8oxZf4Ghpm+616+i1s/LNg/Vh7d+g==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdx-js__react@1.5.6': resolution: {integrity: sha512-NPQSvm0NiUzagIWkqY8wcHILt61dI/FerbX5ZIilFpCmDBtRii20CtGdzXrbAZXOk49BziT69xBlOzOuROAAEw==} @@ -10633,9 +10667,6 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001695: - resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} - caniuse-lite@1.0.30001743: resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} @@ -12565,14 +12596,6 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -14027,10 +14050,6 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} - hasBin: true - jiti@2.5.1: resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true @@ -16145,10 +16164,6 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} @@ -18348,6 +18363,9 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tailwindcss@4.1.13: + resolution: {integrity: sha512-i+zidfmTqtwquj4hMEwdjshYYgMbOrPzb9a0M3ZgNa0JMoZeFC6bxZvO8yr8ozS6ix2SDz0+mvryPeBs2TFE+w==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -20021,8 +20039,8 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@antfu/ni@23.3.1': {} @@ -20035,7 +20053,7 @@ snapshots: '@ardatan/relay-compiler@12.0.3(encoding@0.1.13)(graphql@16.11.0)': dependencies: '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 + '@babel/parser': 7.28.4 '@babel/runtime': 7.26.10 chalk: 4.1.2 fb-watchman: 2.0.2 @@ -21334,7 +21352,7 @@ snapshots: '@babel/traverse': 7.27.0(supports-color@8.1.1) '@babel/types': 7.27.0 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -21354,7 +21372,7 @@ snapshots: '@babel/types': 7.28.4 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -21379,7 +21397,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helper-annotate-as-pure@7.27.3': dependencies: @@ -21429,23 +21447,23 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helper-function-name@7.24.7': dependencies: '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helper-globals@7.28.0': {} '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helper-member-expression-to-functions@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color @@ -21459,7 +21477,7 @@ snapshots: '@babel/helper-module-imports@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color @@ -21490,7 +21508,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helper-optimise-call-expression@7.27.1': dependencies: @@ -21521,7 +21539,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.25.9(supports-color@8.1.1)': dependencies: '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 transitivePeerDependencies: - supports-color @@ -21534,7 +21552,7 @@ snapshots: '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helper-string-parser@7.24.7': {} @@ -21555,7 +21573,7 @@ snapshots: '@babel/helpers@7.26.10': dependencies: '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@babel/helpers@7.28.4': dependencies: @@ -21685,7 +21703,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/parser': 7.27.0 '@babel/types': 7.27.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -21697,7 +21715,7 @@ snapshots: '@babel/parser': 7.27.0 '@babel/template': 7.27.0 '@babel/types': 7.27.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -21710,7 +21728,7 @@ snapshots: '@babel/parser': 7.28.4 '@babel/template': 7.27.2 '@babel/types': 7.28.4 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -22198,7 +22216,7 @@ snapshots: '@esbuild-plugins/node-resolve@0.2.2(esbuild@0.25.2)(supports-color@8.1.1)': dependencies: '@types/resolve': 1.20.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.25.2 escape-string-regexp: 4.0.0 resolve: 1.22.10 @@ -22297,7 +22315,7 @@ snapshots: '@eslint/eslintrc@2.1.4(supports-color@8.1.1)': dependencies: ajv: 6.12.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.2.4 @@ -22857,10 +22875,10 @@ snapshots: '@graphql-tools/graphql-tag-pluck@8.3.19(graphql@16.11.0)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) - '@babel/parser': 7.27.0 + '@babel/parser': 7.28.4 '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@graphql-tools/utils': 10.8.6(graphql@16.11.0) graphql: 16.11.0 tslib: 2.8.1 @@ -23079,7 +23097,7 @@ snapshots: '@humanwhocodes/config-array@0.11.14(supports-color@8.1.1)': dependencies: '@humanwhocodes/object-schema': 2.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -23257,19 +23275,19 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} @@ -23277,8 +23295,8 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.0': {} @@ -23287,12 +23305,12 @@ snapshots: '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/trace-mapping@0.3.9': dependencies: @@ -27425,10 +27443,6 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.9-commit.d91dfb5': {} - '@rollup/plugin-alias@5.1.1(rollup@4.38.0)': - optionalDependencies: - rollup: 4.38.0 - '@rollup/plugin-alias@5.1.1(rollup@4.50.2)': optionalDependencies: rollup: 4.50.2 @@ -27438,45 +27452,37 @@ snapshots: '@rollup/pluginutils': 5.1.4(rollup@4.38.0) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 + magic-string: 0.30.19 + picomatch: 4.0.3 optionalDependencies: rollup: 4.38.0 - '@rollup/plugin-commonjs@28.0.3(rollup@4.38.0)': + '@rollup/plugin-commonjs@28.0.3(rollup@4.50.2)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 + magic-string: 0.30.19 + picomatch: 4.0.3 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 '@rollup/plugin-commonjs@28.0.6(rollup@4.50.2)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.50.2) commondir: 1.0.1 estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.2) + fdir: 6.5.0(picomatch@4.0.3) is-reference: 1.2.1 magic-string: 0.30.19 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.50.2 - '@rollup/plugin-inject@5.0.5(rollup@4.38.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) - estree-walker: 2.0.2 - magic-string: 0.30.19 - optionalDependencies: - rollup: 4.38.0 - '@rollup/plugin-inject@5.0.5(rollup@4.50.2)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.50.2) @@ -27485,28 +27491,12 @@ snapshots: optionalDependencies: rollup: 4.50.2 - '@rollup/plugin-json@6.1.0(rollup@4.38.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) - optionalDependencies: - rollup: 4.38.0 - '@rollup/plugin-json@6.1.0(rollup@4.50.2)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.50.2) optionalDependencies: rollup: 4.50.2 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.38.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.10 - optionalDependencies: - rollup: 4.38.0 - '@rollup/plugin-node-resolve@16.0.1(rollup@4.50.2)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.50.2) @@ -27517,13 +27507,6 @@ snapshots: optionalDependencies: rollup: 4.50.2 - '@rollup/plugin-replace@6.0.2(rollup@4.38.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) - magic-string: 0.30.19 - optionalDependencies: - rollup: 4.38.0 - '@rollup/plugin-replace@6.0.2(rollup@4.50.2)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.50.2) @@ -27531,14 +27514,6 @@ snapshots: optionalDependencies: rollup: 4.50.2 - '@rollup/plugin-terser@0.4.4(rollup@4.38.0)': - dependencies: - serialize-javascript: 6.0.2 - smob: 1.5.0 - terser: 5.39.0 - optionalDependencies: - rollup: 4.38.0 - '@rollup/plugin-terser@0.4.4(rollup@4.50.2)': dependencies: serialize-javascript: 6.0.2 @@ -27551,7 +27526,7 @@ snapshots: dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.38.0 @@ -27559,7 +27534,7 @@ snapshots: dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: rollup: 4.50.2 @@ -27778,33 +27753,7 @@ snapshots: '@sentry/core@10.3.0': {} - '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.36.0 - '@rollup/plugin-commonjs': 28.0.1(rollup@4.38.0) - '@sentry-internal/browser-utils': 10.3.0 - '@sentry/core': 10.3.0 - '@sentry/node': 10.3.0(supports-color@8.1.1) - '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) - '@sentry/react': 10.3.0(react@18.3.1) - '@sentry/vercel-edge': 10.3.0 - '@sentry/webpack-plugin': 4.0.2(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0) - chalk: 3.0.0 - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) - resolve: 1.22.8 - rollup: 4.38.0 - stacktrace-parser: 0.1.10 - transitivePeerDependencies: - - '@opentelemetry/context-async-hooks' - - '@opentelemetry/core' - - '@opentelemetry/sdk-trace-base' - - encoding - - react - - supports-color - - webpack - - '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': + '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.36.0 @@ -28745,6 +28694,10 @@ snapshots: dependencies: tailwindcss: 3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) + '@tailwindcss/container-queries@0.1.1(tailwindcss@4.1.13)': + dependencies: + tailwindcss: 4.1.13 + '@tailwindcss/forms@0.5.6(tailwindcss@3.4.1(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)))': dependencies: mini-svg-data-uri: 1.4.4 @@ -28766,7 +28719,7 @@ snapshots: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/template': 7.27.0 '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@tanstack/router-utils': 1.114.12 babel-dead-code-elimination: 1.0.9(supports-color@8.1.1) dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -28965,7 +28918,7 @@ snapshots: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/template': 7.27.0 '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@tanstack/router-utils': 1.114.12 babel-dead-code-elimination: 1.0.9(supports-color@8.1.1) tiny-invariant: 1.3.3 @@ -29150,7 +29103,7 @@ snapshots: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/template': 7.27.0 '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@tanstack/router-core': 1.114.25 '@tanstack/router-generator': 1.114.27(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@tanstack/router-utils': 1.114.12 @@ -29172,7 +29125,7 @@ snapshots: '@tanstack/router-utils@1.114.12': dependencies: '@babel/generator': 7.27.0 - '@babel/parser': 7.27.0 + '@babel/parser': 7.28.4 ansis: 3.17.0 diff: 7.0.0 @@ -29184,7 +29137,7 @@ snapshots: '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) '@babel/template': 7.27.0 '@babel/traverse': 7.27.0(supports-color@8.1.1) - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@tanstack/directive-functions-plugin': 1.114.12(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1) babel-dead-code-elimination: 1.0.9(supports-color@8.1.1) dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -29472,17 +29425,17 @@ snapshots: '@types/babel__generator@7.6.5': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@types/babel__template@7.4.2': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@types/babel__traverse@7.20.2': dependencies: @@ -29490,7 +29443,7 @@ snapshots: '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.27.0 + '@babel/types': 7.28.4 '@types/braces@3.0.5': {} @@ -29745,6 +29698,10 @@ snapshots: dependencies: '@types/unist': 2.0.8 + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 2.0.8 + '@types/mdx-js__react@1.5.6': dependencies: '@types/react': 18.3.3 @@ -29974,7 +29931,7 @@ snapshots: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(supports-color@8.1.1)(typescript@5.9.2) '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.0(supports-color@8.1.1) optionalDependencies: typescript: 5.9.2 @@ -29985,7 +29942,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.9.2) '@typescript-eslint/types': 8.34.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color @@ -30008,7 +29965,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 8.34.1(supports-color@8.1.1)(typescript@5.9.2) '@typescript-eslint/utils': 8.34.1(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2) - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.0(supports-color@8.1.1) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 @@ -30023,7 +29980,7 @@ snapshots: dependencies: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/visitor-keys': 7.2.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 @@ -30040,7 +29997,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.34.1(typescript@5.9.2) '@typescript-eslint/types': 8.34.1 '@typescript-eslint/visitor-keys': 8.34.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -30105,10 +30062,10 @@ snapshots: optionalDependencies: '@aws-sdk/credential-provider-web-identity': 3.830.0 - '@vercel/nft@0.29.2(rollup@4.38.0)(supports-color@8.1.1)': + '@vercel/nft@0.29.2(rollup@4.50.2)(supports-color@8.1.1)': dependencies: '@mapbox/node-pre-gyp': 2.0.0(encoding@0.1.13)(supports-color@8.1.1) - '@rollup/pluginutils': 5.1.4(rollup@4.38.0) + '@rollup/pluginutils': 5.1.4(rollup@4.50.2) acorn: 8.14.1 acorn-import-attributes: 1.9.5(acorn@8.14.1) async-sema: 3.1.1 @@ -30117,7 +30074,7 @@ snapshots: glob: 10.4.5 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.2 + picomatch: 4.0.3 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -30136,7 +30093,7 @@ snapshots: glob: 10.4.5 graceful-fs: 4.2.11 node-gyp-build: 4.8.4 - picomatch: 4.0.2 + picomatch: 4.0.3 resolve-from: 5.0.0 transitivePeerDependencies: - encoding @@ -30164,7 +30121,7 @@ snapshots: mlly: 1.7.4 node-forge: 1.3.1 pathe: 1.1.2 - std-env: 3.8.1 + std-env: 3.9.0 ufo: 1.5.4 untun: 0.1.3 uqr: 0.1.2 @@ -30202,14 +30159,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6(supports-color@8.1.1) istanbul-reports: 3.1.7 - magic-string: 0.30.17 + magic-string: 0.30.19 magicast: 0.3.5 - std-env: 3.8.1 + std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 vitest: 3.0.9(@types/node@22.13.14)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1) @@ -30220,14 +30177,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6(supports-color@8.1.1) istanbul-reports: 3.1.7 - magic-string: 0.30.17 + magic-string: 0.30.19 magicast: 0.3.5 - std-env: 3.8.1 + std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1) @@ -30238,14 +30195,14 @@ snapshots: dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6(supports-color@8.1.1) istanbul-reports: 3.1.7 - magic-string: 0.30.17 + magic-string: 0.30.19 magicast: 0.3.5 - std-env: 3.8.1 + std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 vitest: 3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.5.1)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.9.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1) @@ -30632,10 +30589,6 @@ snapshots: dependencies: acorn: 8.15.0 - acorn-jsx@5.3.2(acorn@8.11.3): - dependencies: - acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.14.1): dependencies: acorn: 8.14.1 @@ -30658,7 +30611,7 @@ snapshots: agent-base@6.0.2(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -31128,7 +31081,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -31170,7 +31123,7 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001695 + caniuse-lite: 1.0.30001743 electron-to-chromium: 1.5.88 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -31232,7 +31185,7 @@ snapshots: dotenv: 16.5.0 exsolve: 1.0.4 giget: 2.0.0 - jiti: 2.4.2 + jiti: 2.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 1.0.0 @@ -31341,12 +31294,10 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.26.2 - caniuse-lite: 1.0.30001695 + caniuse-lite: 1.0.30001743 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001695: {} - caniuse-lite@1.0.30001743: {} capital-case@1.0.4: @@ -32201,17 +32152,17 @@ snapshots: optionalDependencies: supports-color: 8.1.1 - debug@4.4.0(supports-color@9.4.0): + debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 9.4.0 + supports-color: 8.1.1 - debug@4.4.3(supports-color@8.1.1): + debug@4.4.3(supports-color@9.4.0): dependencies: ms: 2.1.3 optionalDependencies: - supports-color: 8.1.1 + supports-color: 9.4.0 decimal.js-light@2.5.1: {} @@ -32694,7 +32645,7 @@ snapshots: esbuild-register@3.6.0(esbuild@0.25.2)(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) esbuild: 0.25.2 transitivePeerDependencies: - supports-color @@ -32841,7 +32792,7 @@ snapshots: eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-plugin-import@2.31.0)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) enhanced-resolve: 5.18.1 eslint: 8.57.0(supports-color@8.1.1) eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9(supports-color@8.1.1))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0(supports-color@8.1.1))(supports-color@8.1.1) @@ -33193,7 +33144,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -33384,10 +33335,6 @@ snapshots: transitivePeerDependencies: - encoding - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -33443,7 +33390,7 @@ snapshots: finalhandler@2.1.0(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -33917,7 +33864,7 @@ snapshots: '@graphql-tools/utils': 10.8.6(graphql@16.11.0) cosmiconfig: 9.0.0(typescript@5.9.2) graphql: 16.11.0 - jiti: 2.4.2 + jiti: 2.5.1 minimatch: 10.0.1 string-env-interpolation: 1.0.1 tslib: 2.8.1 @@ -34391,7 +34338,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2(supports-color@8.1.1) - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -34407,7 +34354,7 @@ snapshots: http-proxy-agent@7.0.2(supports-color@8.1.1): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -34428,35 +34375,35 @@ snapshots: https-proxy-agent@5.0.1(supports-color@8.1.1): dependencies: agent-base: 6.0.2(supports-color@8.1.1) - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@6.2.1(supports-color@8.1.1): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.4(supports-color@8.1.1): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6(supports-color@8.1.1): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6(supports-color@9.4.0): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@9.4.0) + debug: 4.4.3(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -34619,7 +34566,7 @@ snapshots: dependencies: '@ioredis/commands': 1.2.0 cluster-key-slot: 1.1.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -34633,7 +34580,7 @@ snapshots: dependencies: '@ioredis/commands': 1.4.0 cluster-key-slot: 1.1.2 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -34856,7 +34803,7 @@ snapshots: is-reference@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 is-regex@1.1.4: dependencies: @@ -35014,8 +34961,8 @@ snapshots: istanbul-lib-source-maps@5.0.6(supports-color@8.1.1): dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.4.0(supports-color@8.1.1) + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -35075,8 +35022,6 @@ snapshots: jiti@1.21.7: {} - jiti@2.4.2: {} - jiti@2.5.1: {} jose@5.9.6: {} @@ -35186,7 +35131,7 @@ snapshots: json-schema-resolver@2.0.0(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) rfdc: 1.4.1 uri-js: 4.4.1 transitivePeerDependencies: @@ -35581,12 +35526,12 @@ snapshots: magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 magicast@0.3.5: dependencies: - '@babel/parser': 7.27.0 - '@babel/types': 7.27.0 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 source-map-js: 1.2.1 make-dir@3.1.0: @@ -35712,7 +35657,7 @@ snapshots: mdast-util-find-and-replace@3.0.1: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 @@ -35736,7 +35681,7 @@ snapshots: mdast-util-from-markdown@2.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -35753,7 +35698,7 @@ snapshots: mdast-util-from-markdown@2.0.2(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 '@types/unist': 3.0.3 decode-named-character-reference: 1.0.2 devlop: 1.1.0 @@ -35770,7 +35715,7 @@ snapshots: mdast-util-frontmatter@2.0.1(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 escape-string-regexp: 5.0.0 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) @@ -35788,7 +35733,7 @@ snapshots: mdast-util-gfm-autolink-literal@2.0.0: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 mdast-util-find-and-replace: 3.0.1 @@ -35802,7 +35747,7 @@ snapshots: mdast-util-gfm-footnote@2.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 @@ -35817,7 +35762,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: @@ -35834,7 +35779,7 @@ snapshots: mdast-util-gfm-table@2.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 markdown-table: 3.0.3 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) @@ -35849,7 +35794,7 @@ snapshots: mdast-util-gfm-task-list-item@2.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 @@ -35883,7 +35828,7 @@ snapshots: mdast-util-math@3.0.0(supports-color@8.1.1): dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 longest-streak: 3.1.0 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) @@ -35906,7 +35851,7 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.1 '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 @@ -35934,7 +35879,7 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.1 '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 devlop: 1.1.0 @@ -35981,7 +35926,7 @@ snapshots: dependencies: '@types/estree-jsx': 1.0.1 '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 @@ -35995,7 +35940,7 @@ snapshots: mdast-util-phrasing@4.1.0: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 unist-util-is: 6.0.0 mdast-util-to-hast@12.3.0: @@ -36012,7 +35957,7 @@ snapshots: mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 @@ -36034,7 +35979,7 @@ snapshots: mdast-util-to-markdown@2.1.0: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 '@types/unist': 3.0.3 longest-streak: 3.1.0 mdast-util-phrasing: 4.1.0 @@ -36049,7 +35994,7 @@ snapshots: mdast-util-to-string@4.0.0: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-toc@6.1.1: dependencies: @@ -36377,8 +36322,8 @@ snapshots: micromark-extension-mdxjs@1.0.1: dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) micromark-extension-mdx-expression: 1.0.8 micromark-extension-mdx-jsx: 1.0.5 micromark-extension-mdx-md: 1.0.1 @@ -36628,7 +36573,7 @@ snapshots: micromark@3.2.0(supports-color@8.1.1): dependencies: '@types/debug': 4.1.9 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 micromark-factory-space: 1.1.0 @@ -36650,7 +36595,7 @@ snapshots: micromark@4.0.0(supports-color@8.1.1): dependencies: '@types/debug': 4.1.9 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -36967,6 +36912,20 @@ snapshots: neo-async@2.6.2: {} + next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1): + dependencies: + '@contentlayer2/core': 0.4.3(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + '@contentlayer2/utils': 0.4.3 + contentlayer2: 0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) + next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@effect-ts/otel-node' + - esbuild + - markdown-wasm + - supports-color + next-contentlayer2@0.4.6(contentlayer2@0.4.6(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1))(esbuild@0.25.2)(markdown-wasm@1.2.0)(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1): dependencies: '@contentlayer2/core': 0.4.3(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) @@ -36996,12 +36955,7 @@ snapshots: dependencies: js-yaml-loader: 1.2.2 - next-router-mock@0.9.13(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1): - dependencies: - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) - react: 18.3.1 - - next-router-mock@0.9.13(next@15.5.2(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1): + next-router-mock@0.9.13(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1): dependencies: next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react: 18.3.1 @@ -37023,7 +36977,7 @@ snapshots: dependencies: '@next/env': 15.5.2 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001695 + caniuse-lite: 1.0.30001743 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -37049,7 +37003,7 @@ snapshots: dependencies: '@next/env': 15.5.2 '@swc/helpers': 0.5.15 - caniuse-lite: 1.0.30001695 + caniuse-lite: 1.0.30001743 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -37077,14 +37031,14 @@ snapshots: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.0.4 - '@rollup/plugin-alias': 5.1.1(rollup@4.38.0) - '@rollup/plugin-commonjs': 28.0.3(rollup@4.38.0) - '@rollup/plugin-inject': 5.0.5(rollup@4.38.0) - '@rollup/plugin-json': 6.1.0(rollup@4.38.0) - '@rollup/plugin-node-resolve': 16.0.1(rollup@4.38.0) - '@rollup/plugin-replace': 6.0.2(rollup@4.38.0) - '@rollup/plugin-terser': 0.4.4(rollup@4.38.0) - '@vercel/nft': 0.29.2(rollup@4.38.0)(supports-color@8.1.1) + '@rollup/plugin-alias': 5.1.1(rollup@4.50.2) + '@rollup/plugin-commonjs': 28.0.3(rollup@4.50.2) + '@rollup/plugin-inject': 5.0.5(rollup@4.50.2) + '@rollup/plugin-json': 6.1.0(rollup@4.50.2) + '@rollup/plugin-node-resolve': 16.0.1(rollup@4.50.2) + '@rollup/plugin-replace': 6.0.2(rollup@4.50.2) + '@rollup/plugin-terser': 0.4.4(rollup@4.50.2) + '@vercel/nft': 0.29.2(rollup@4.50.2)(supports-color@8.1.1) archiver: 7.0.1 c12: 3.0.2(magicast@0.3.5) chokidar: 4.0.3 @@ -37109,11 +37063,11 @@ snapshots: hookable: 5.5.3 httpxy: 0.1.7 ioredis: 5.6.0(supports-color@8.1.1) - jiti: 2.4.2 + jiti: 2.5.1 klona: 2.0.6 knitwork: 1.2.0 listhen: 1.9.0 - magic-string: 0.30.17 + magic-string: 0.30.19 magicast: 0.3.5 mime: 4.0.6 mlly: 1.7.4 @@ -37127,14 +37081,14 @@ snapshots: pkg-types: 2.1.0 pretty-bytes: 6.1.1 radix3: 1.1.2 - rollup: 4.38.0 - rollup-plugin-visualizer: 5.14.0(rollup@4.38.0) + rollup: 4.50.2 + rollup-plugin-visualizer: 5.14.0(rollup@4.50.2) scule: 1.3.0 semver: 7.7.2 serve-placeholder: 2.0.2 serve-static: 1.16.2(supports-color@8.1.1) source-map: 0.7.4 - std-env: 3.8.1 + std-env: 3.9.0 ufo: 1.5.4 ultrahtml: 1.5.3 uncrypto: 0.1.3 @@ -37497,12 +37451,12 @@ snapshots: mitt: 3.0.1 next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) - nuqs@2.4.1(next@15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + nuqs@2.4.1(next@15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react-router@7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: mitt: 3.0.1 react: 18.3.1 optionalDependencies: - next: 15.5.2(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) + next: 15.5.2(@babel/core@7.28.4(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) react-router: 7.5.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nuxt@4.1.2(@electric-sql/pglite@0.2.15)(@parcel/watcher@2.5.1)(@types/node@22.13.14)(@vue/compiler-sfc@3.5.21)(aws4fetch@1.0.20)(db0@0.3.2(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(eslint@8.57.0(supports-color@8.1.1))(ioredis@5.7.0(supports-color@8.1.1))(magicast@0.3.5)(rollup@4.50.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(typescript@5.9.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1))(yaml@2.8.1): @@ -38294,8 +38248,6 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - picomatch@4.0.3: {} pidtree@0.3.1: {} @@ -38457,24 +38409,24 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-import@15.1.0(postcss@8.5.3): + postcss-import@15.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.5.3): + postcss-js@4.0.1(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.3 + postcss: 8.5.6 - postcss-load-config@4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)): + postcss-load-config@4.0.1(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)): dependencies: lilconfig: 2.1.0 - yaml: 2.4.5 + yaml: 2.8.1 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.6 ts-node: 10.9.2(@types/node@22.13.14)(typescript@5.9.2) postcss-merge-longhand@7.0.5(postcss@8.5.6): @@ -38516,9 +38468,9 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 - postcss-nested@6.0.1(postcss@8.5.3): + postcss-nested@6.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.3 + postcss: 8.5.6 postcss-selector-parser: 6.0.13 postcss-normalize-charset@7.0.1(postcss@8.5.6): @@ -38613,7 +38565,7 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -39086,7 +39038,7 @@ snapshots: react-markdown@10.1.0(@types/react@18.3.3)(react@18.3.1)(supports-color@8.1.1): dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 '@types/react': 18.3.3 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.6(supports-color@8.1.1) @@ -39628,7 +39580,7 @@ snapshots: remark-frontmatter@5.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-frontmatter: 2.0.1(supports-color@8.1.1) micromark-extension-frontmatter: 2.0.0 unified: 11.0.5 @@ -39646,7 +39598,7 @@ snapshots: remark-gfm@4.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-gfm: 3.0.0(supports-color@8.1.1) micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0(supports-color@8.1.1) @@ -39657,7 +39609,7 @@ snapshots: remark-html@16.0.1: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 hast-util-sanitize: 5.0.0 hast-util-to-html: 9.0.0 mdast-util-to-hast: 13.2.0 @@ -39665,7 +39617,7 @@ snapshots: remark-math@6.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-math: 3.0.0(supports-color@8.1.1) micromark-extension-math: 3.0.0 unified: 11.0.5 @@ -39674,12 +39626,12 @@ snapshots: remark-mdx-frontmatter@4.0.0: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 estree-util-is-identifier-name: 3.0.0 estree-util-value-to-estree: 3.3.3 toml: 3.0.0 unified: 11.0.5 - yaml: 2.4.5 + yaml: 2.8.1 remark-mdx@2.3.0(supports-color@8.1.1): dependencies: @@ -39705,7 +39657,7 @@ snapshots: remark-parse@11.0.0(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) micromark-util-types: 2.0.0 unified: 11.0.5 @@ -39722,7 +39674,7 @@ snapshots: remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-to-hast: 13.2.0 unified: 11.0.5 vfile: 6.0.3 @@ -39735,7 +39687,7 @@ snapshots: remark-stringify@11.0.0: dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 mdast-util-to-markdown: 2.1.0 unified: 11.0.5 @@ -39750,7 +39702,7 @@ snapshots: remark@15.0.1(supports-color@8.1.1): dependencies: - '@types/mdast': 4.0.1 + '@types/mdast': 4.0.4 remark-parse: 11.0.0(supports-color@8.1.1) remark-stringify: 11.0.0 unified: 11.0.5 @@ -39871,19 +39823,19 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.1 - rollup-plugin-visualizer@5.14.0(rollup@4.38.0): + rollup-plugin-visualizer@5.14.0(rollup@4.50.2): dependencies: open: 8.4.2 - picomatch: 4.0.2 + picomatch: 4.0.3 source-map: 0.7.4 yargs: 17.7.2 optionalDependencies: - rollup: 4.38.0 + rollup: 4.50.2 rollup-plugin-visualizer@6.0.3(rollup@4.50.2): dependencies: open: 8.4.2 - picomatch: 4.0.2 + picomatch: 4.0.3 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: @@ -39944,7 +39896,7 @@ snapshots: router@2.2.0(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -40118,7 +40070,7 @@ snapshots: send@1.2.0(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -40411,7 +40363,7 @@ snapshots: dependencies: '@kwsites/file-exists': 1.1.1(supports-color@8.1.1) '@kwsites/promise-deferred': 1.1.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -40423,7 +40375,7 @@ snapshots: simple-websocket@9.1.0(supports-color@8.1.1): dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) queue-microtask: 1.2.3 randombytes: 2.1.0 readable-stream: 3.6.2 @@ -40489,7 +40441,7 @@ snapshots: socks-proxy-agent@6.2.1(supports-color@8.1.1): dependencies: agent-base: 6.0.2(supports-color@8.1.1) - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -40497,7 +40449,7 @@ snapshots: socks-proxy-agent@8.0.3(supports-color@8.1.1): dependencies: agent-base: 7.1.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -40903,7 +40855,7 @@ snapshots: sucrase@3.34.0: dependencies: - '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/gen-mapping': 0.3.13 commander: 4.1.1 glob: 7.1.6 lines-and-columns: 1.2.4 @@ -41026,17 +40978,19 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.3 - postcss-import: 15.1.0(postcss@8.5.3) - postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.1(postcss@8.5.3)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) - postcss-nested: 6.0.1(postcss@8.5.3) + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.0.1(postcss@8.5.6) + postcss-load-config: 4.0.1(postcss@8.5.6)(ts-node@10.9.2(@types/node@22.13.14)(typescript@5.9.2)) + postcss-nested: 6.0.1(postcss@8.5.6) postcss-selector-parser: 6.0.13 resolve: 1.22.10 sucrase: 3.34.0 transitivePeerDependencies: - ts-node + tailwindcss@4.1.13: {} + tapable@2.2.1: {} tar-fs@2.1.3: @@ -41183,8 +41137,8 @@ snapshots: tinyglobby@0.2.14: dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 tinyglobby@0.2.15: dependencies: @@ -41652,14 +41606,14 @@ snapshots: escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.1.1 - magic-string: 0.30.17 + magic-string: 0.30.19 mlly: 1.7.4 pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 pkg-types: 1.3.1 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin: 2.2.2 unplugin-utils: 0.2.4 @@ -41802,7 +41756,7 @@ snapshots: unplugin-utils@0.2.4: dependencies: pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.3 unplugin-utils@0.3.0: dependencies: @@ -41914,7 +41868,7 @@ snapshots: unwasm@0.3.9: dependencies: knitwork: 1.2.0 - magic-string: 0.30.17 + magic-string: 0.30.19 mlly: 1.7.4 pathe: 1.1.2 pkg-types: 1.3.1 @@ -42220,7 +42174,7 @@ snapshots: vite-node@3.0.0-beta.2(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) es-module-lexer: 1.6.0 pathe: 1.1.2 vite: 6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1) @@ -42390,11 +42344,11 @@ snapshots: vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5): dependencies: esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.13.14 fsevents: 2.3.3 @@ -42407,11 +42361,11 @@ snapshots: vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.8.1): dependencies: esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.13.14 fsevents: 2.3.3 @@ -42424,11 +42378,11 @@ snapshots: vite@6.3.5(@types/node@22.13.14)(jiti@2.5.1)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.8.1): dependencies: esbuild: 0.25.2 - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - postcss: 8.5.3 - rollup: 4.38.0 - tinyglobby: 0.2.14 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.50.2 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.13.14 fsevents: 2.3.3