From 5dc6a0933bba8271aeca1887840ca8af4f828ea5 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 10 Jan 2025 09:57:47 -0500 Subject: [PATCH 001/467] chore(docs): rename docs to old-docs --- apps/{docs => old-docs}/.gitignore | 0 apps/{docs => old-docs}/.vscode/extensions.json | 0 apps/{docs => old-docs}/.vscode/launch.json | 0 apps/{docs => old-docs}/README.md | 0 apps/{docs => old-docs}/astro.config.mjs | 0 apps/{docs => old-docs}/components.json | 0 apps/{docs => old-docs}/package.json | 2 +- apps/{docs => old-docs}/public/favicon.png | Bin apps/{docs => old-docs}/public/og.jpeg | Bin apps/{docs => old-docs}/public/rnr-banner.png | Bin .../src/code-samples/tw-native-config.js | 0 .../src/code-samples/tw-universal-config.js | 0 apps/{docs => old-docs}/src/components/Code.astro | 0 apps/{docs => old-docs}/src/components/Head.astro | 0 .../src/components/ThemeSelect.astro | 0 .../src/components/react/CodeBlockWrapper.tsx | 0 .../src/components/react/LinkButton.tsx | 0 .../src/components/react/ThemeSelector.tsx | 0 .../{docs => old-docs}/src/components/ui/button.tsx | 0 .../src/components/ui/collapsible.tsx | 0 .../src/components/ui/dropdown-menu.tsx | 0 apps/{docs => old-docs}/src/content/config.ts | 0 .../src/content/docs/components/accordion.mdx | 0 .../src/content/docs/components/alert-dialog.mdx | 0 .../src/content/docs/components/alert.mdx | 0 .../src/content/docs/components/aspect-ratio.mdx | 0 .../src/content/docs/components/avatar.mdx | 0 .../src/content/docs/components/badge.mdx | 0 .../src/content/docs/components/button.mdx | 0 .../src/content/docs/components/card.mdx | 0 .../src/content/docs/components/checkbox.mdx | 0 .../src/content/docs/components/collapsible.mdx | 0 .../src/content/docs/components/context-menu.mdx | 0 .../src/content/docs/components/dialog.mdx | 0 .../src/content/docs/components/dropdown-menu.mdx | 0 .../src/content/docs/components/hover-card.mdx | 0 .../src/content/docs/components/input.mdx | 0 .../src/content/docs/components/label.mdx | 0 .../src/content/docs/components/menubar.mdx | 0 .../src/content/docs/components/navigation-menu.mdx | 0 .../src/content/docs/components/popover.mdx | 0 .../src/content/docs/components/progress.mdx | 0 .../src/content/docs/components/radio-group.mdx | 0 .../src/content/docs/components/select.mdx | 0 .../src/content/docs/components/separator.mdx | 0 .../src/content/docs/components/skeleton.mdx | 0 .../src/content/docs/components/switch.mdx | 0 .../src/content/docs/components/table.mdx | 0 .../src/content/docs/components/tabs.mdx | 0 .../src/content/docs/components/text.mdx | 0 .../src/content/docs/components/textarea.mdx | 0 .../src/content/docs/components/toggle-group.mdx | 0 .../src/content/docs/components/toggle.mdx | 0 .../src/content/docs/components/tooltip.mdx | 0 .../src/content/docs/components/typography.mdx | 0 .../content/docs/extras/android-navigation-bar.mdx | 0 .../src/content/docs/extras/keyboard.mdx | 0 .../src/content/docs/extras/material-top-tabs.mdx | 0 .../docs/getting-started/common-patterns.mdx | 0 .../src/content/docs/getting-started/icons.mdx | 0 .../content/docs/getting-started/initial-setup.mdx | 0 .../content/docs/getting-started/introduction.mdx | 0 apps/{docs => old-docs}/src/content/docs/index.mdx | 0 apps/{docs => old-docs}/src/env.d.ts | 0 apps/{docs => old-docs}/src/lib/utils.ts | 0 apps/{docs => old-docs}/src/tailwind.css | 0 apps/{docs => old-docs}/tailwind.config.mjs | 0 apps/{docs => old-docs}/tsconfig.json | 0 apps/{docs => old-docs}/vercel.json | 0 package.json | 1 + pnpm-lock.yaml | 4 ++-- 71 files changed, 4 insertions(+), 3 deletions(-) rename apps/{docs => old-docs}/.gitignore (100%) rename apps/{docs => old-docs}/.vscode/extensions.json (100%) rename apps/{docs => old-docs}/.vscode/launch.json (100%) rename apps/{docs => old-docs}/README.md (100%) rename apps/{docs => old-docs}/astro.config.mjs (100%) rename apps/{docs => old-docs}/components.json (100%) rename apps/{docs => old-docs}/package.json (97%) rename apps/{docs => old-docs}/public/favicon.png (100%) rename apps/{docs => old-docs}/public/og.jpeg (100%) rename apps/{docs => old-docs}/public/rnr-banner.png (100%) rename apps/{docs => old-docs}/src/code-samples/tw-native-config.js (100%) rename apps/{docs => old-docs}/src/code-samples/tw-universal-config.js (100%) rename apps/{docs => old-docs}/src/components/Code.astro (100%) rename apps/{docs => old-docs}/src/components/Head.astro (100%) rename apps/{docs => old-docs}/src/components/ThemeSelect.astro (100%) rename apps/{docs => old-docs}/src/components/react/CodeBlockWrapper.tsx (100%) rename apps/{docs => old-docs}/src/components/react/LinkButton.tsx (100%) rename apps/{docs => old-docs}/src/components/react/ThemeSelector.tsx (100%) rename apps/{docs => old-docs}/src/components/ui/button.tsx (100%) rename apps/{docs => old-docs}/src/components/ui/collapsible.tsx (100%) rename apps/{docs => old-docs}/src/components/ui/dropdown-menu.tsx (100%) rename apps/{docs => old-docs}/src/content/config.ts (100%) rename apps/{docs => old-docs}/src/content/docs/components/accordion.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/alert-dialog.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/alert.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/aspect-ratio.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/avatar.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/badge.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/button.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/card.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/checkbox.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/collapsible.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/context-menu.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/dialog.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/dropdown-menu.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/hover-card.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/input.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/label.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/menubar.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/navigation-menu.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/popover.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/progress.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/radio-group.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/select.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/separator.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/skeleton.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/switch.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/table.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/tabs.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/text.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/textarea.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/toggle-group.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/toggle.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/tooltip.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/components/typography.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/extras/android-navigation-bar.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/extras/keyboard.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/extras/material-top-tabs.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/getting-started/common-patterns.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/getting-started/icons.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/getting-started/initial-setup.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/getting-started/introduction.mdx (100%) rename apps/{docs => old-docs}/src/content/docs/index.mdx (100%) rename apps/{docs => old-docs}/src/env.d.ts (100%) rename apps/{docs => old-docs}/src/lib/utils.ts (100%) rename apps/{docs => old-docs}/src/tailwind.css (100%) rename apps/{docs => old-docs}/tailwind.config.mjs (100%) rename apps/{docs => old-docs}/tsconfig.json (100%) rename apps/{docs => old-docs}/vercel.json (100%) diff --git a/apps/docs/.gitignore b/apps/old-docs/.gitignore similarity index 100% rename from apps/docs/.gitignore rename to apps/old-docs/.gitignore diff --git a/apps/docs/.vscode/extensions.json b/apps/old-docs/.vscode/extensions.json similarity index 100% rename from apps/docs/.vscode/extensions.json rename to apps/old-docs/.vscode/extensions.json diff --git a/apps/docs/.vscode/launch.json b/apps/old-docs/.vscode/launch.json similarity index 100% rename from apps/docs/.vscode/launch.json rename to apps/old-docs/.vscode/launch.json diff --git a/apps/docs/README.md b/apps/old-docs/README.md similarity index 100% rename from apps/docs/README.md rename to apps/old-docs/README.md diff --git a/apps/docs/astro.config.mjs b/apps/old-docs/astro.config.mjs similarity index 100% rename from apps/docs/astro.config.mjs rename to apps/old-docs/astro.config.mjs diff --git a/apps/docs/components.json b/apps/old-docs/components.json similarity index 100% rename from apps/docs/components.json rename to apps/old-docs/components.json diff --git a/apps/docs/package.json b/apps/old-docs/package.json similarity index 97% rename from apps/docs/package.json rename to apps/old-docs/package.json index 117c00f8..74fbd09d 100644 --- a/apps/docs/package.json +++ b/apps/old-docs/package.json @@ -1,5 +1,5 @@ { - "name": "@rnr/docs", + "name": "@rnr/old-docs", "type": "module", "version": "0.1.0", "scripts": { diff --git a/apps/docs/public/favicon.png b/apps/old-docs/public/favicon.png similarity index 100% rename from apps/docs/public/favicon.png rename to apps/old-docs/public/favicon.png diff --git a/apps/docs/public/og.jpeg b/apps/old-docs/public/og.jpeg similarity index 100% rename from apps/docs/public/og.jpeg rename to apps/old-docs/public/og.jpeg diff --git a/apps/docs/public/rnr-banner.png b/apps/old-docs/public/rnr-banner.png similarity index 100% rename from apps/docs/public/rnr-banner.png rename to apps/old-docs/public/rnr-banner.png diff --git a/apps/docs/src/code-samples/tw-native-config.js b/apps/old-docs/src/code-samples/tw-native-config.js similarity index 100% rename from apps/docs/src/code-samples/tw-native-config.js rename to apps/old-docs/src/code-samples/tw-native-config.js diff --git a/apps/docs/src/code-samples/tw-universal-config.js b/apps/old-docs/src/code-samples/tw-universal-config.js similarity index 100% rename from apps/docs/src/code-samples/tw-universal-config.js rename to apps/old-docs/src/code-samples/tw-universal-config.js diff --git a/apps/docs/src/components/Code.astro b/apps/old-docs/src/components/Code.astro similarity index 100% rename from apps/docs/src/components/Code.astro rename to apps/old-docs/src/components/Code.astro diff --git a/apps/docs/src/components/Head.astro b/apps/old-docs/src/components/Head.astro similarity index 100% rename from apps/docs/src/components/Head.astro rename to apps/old-docs/src/components/Head.astro diff --git a/apps/docs/src/components/ThemeSelect.astro b/apps/old-docs/src/components/ThemeSelect.astro similarity index 100% rename from apps/docs/src/components/ThemeSelect.astro rename to apps/old-docs/src/components/ThemeSelect.astro diff --git a/apps/docs/src/components/react/CodeBlockWrapper.tsx b/apps/old-docs/src/components/react/CodeBlockWrapper.tsx similarity index 100% rename from apps/docs/src/components/react/CodeBlockWrapper.tsx rename to apps/old-docs/src/components/react/CodeBlockWrapper.tsx diff --git a/apps/docs/src/components/react/LinkButton.tsx b/apps/old-docs/src/components/react/LinkButton.tsx similarity index 100% rename from apps/docs/src/components/react/LinkButton.tsx rename to apps/old-docs/src/components/react/LinkButton.tsx diff --git a/apps/docs/src/components/react/ThemeSelector.tsx b/apps/old-docs/src/components/react/ThemeSelector.tsx similarity index 100% rename from apps/docs/src/components/react/ThemeSelector.tsx rename to apps/old-docs/src/components/react/ThemeSelector.tsx diff --git a/apps/docs/src/components/ui/button.tsx b/apps/old-docs/src/components/ui/button.tsx similarity index 100% rename from apps/docs/src/components/ui/button.tsx rename to apps/old-docs/src/components/ui/button.tsx diff --git a/apps/docs/src/components/ui/collapsible.tsx b/apps/old-docs/src/components/ui/collapsible.tsx similarity index 100% rename from apps/docs/src/components/ui/collapsible.tsx rename to apps/old-docs/src/components/ui/collapsible.tsx diff --git a/apps/docs/src/components/ui/dropdown-menu.tsx b/apps/old-docs/src/components/ui/dropdown-menu.tsx similarity index 100% rename from apps/docs/src/components/ui/dropdown-menu.tsx rename to apps/old-docs/src/components/ui/dropdown-menu.tsx diff --git a/apps/docs/src/content/config.ts b/apps/old-docs/src/content/config.ts similarity index 100% rename from apps/docs/src/content/config.ts rename to apps/old-docs/src/content/config.ts diff --git a/apps/docs/src/content/docs/components/accordion.mdx b/apps/old-docs/src/content/docs/components/accordion.mdx similarity index 100% rename from apps/docs/src/content/docs/components/accordion.mdx rename to apps/old-docs/src/content/docs/components/accordion.mdx diff --git a/apps/docs/src/content/docs/components/alert-dialog.mdx b/apps/old-docs/src/content/docs/components/alert-dialog.mdx similarity index 100% rename from apps/docs/src/content/docs/components/alert-dialog.mdx rename to apps/old-docs/src/content/docs/components/alert-dialog.mdx diff --git a/apps/docs/src/content/docs/components/alert.mdx b/apps/old-docs/src/content/docs/components/alert.mdx similarity index 100% rename from apps/docs/src/content/docs/components/alert.mdx rename to apps/old-docs/src/content/docs/components/alert.mdx diff --git a/apps/docs/src/content/docs/components/aspect-ratio.mdx b/apps/old-docs/src/content/docs/components/aspect-ratio.mdx similarity index 100% rename from apps/docs/src/content/docs/components/aspect-ratio.mdx rename to apps/old-docs/src/content/docs/components/aspect-ratio.mdx diff --git a/apps/docs/src/content/docs/components/avatar.mdx b/apps/old-docs/src/content/docs/components/avatar.mdx similarity index 100% rename from apps/docs/src/content/docs/components/avatar.mdx rename to apps/old-docs/src/content/docs/components/avatar.mdx diff --git a/apps/docs/src/content/docs/components/badge.mdx b/apps/old-docs/src/content/docs/components/badge.mdx similarity index 100% rename from apps/docs/src/content/docs/components/badge.mdx rename to apps/old-docs/src/content/docs/components/badge.mdx diff --git a/apps/docs/src/content/docs/components/button.mdx b/apps/old-docs/src/content/docs/components/button.mdx similarity index 100% rename from apps/docs/src/content/docs/components/button.mdx rename to apps/old-docs/src/content/docs/components/button.mdx diff --git a/apps/docs/src/content/docs/components/card.mdx b/apps/old-docs/src/content/docs/components/card.mdx similarity index 100% rename from apps/docs/src/content/docs/components/card.mdx rename to apps/old-docs/src/content/docs/components/card.mdx diff --git a/apps/docs/src/content/docs/components/checkbox.mdx b/apps/old-docs/src/content/docs/components/checkbox.mdx similarity index 100% rename from apps/docs/src/content/docs/components/checkbox.mdx rename to apps/old-docs/src/content/docs/components/checkbox.mdx diff --git a/apps/docs/src/content/docs/components/collapsible.mdx b/apps/old-docs/src/content/docs/components/collapsible.mdx similarity index 100% rename from apps/docs/src/content/docs/components/collapsible.mdx rename to apps/old-docs/src/content/docs/components/collapsible.mdx diff --git a/apps/docs/src/content/docs/components/context-menu.mdx b/apps/old-docs/src/content/docs/components/context-menu.mdx similarity index 100% rename from apps/docs/src/content/docs/components/context-menu.mdx rename to apps/old-docs/src/content/docs/components/context-menu.mdx diff --git a/apps/docs/src/content/docs/components/dialog.mdx b/apps/old-docs/src/content/docs/components/dialog.mdx similarity index 100% rename from apps/docs/src/content/docs/components/dialog.mdx rename to apps/old-docs/src/content/docs/components/dialog.mdx diff --git a/apps/docs/src/content/docs/components/dropdown-menu.mdx b/apps/old-docs/src/content/docs/components/dropdown-menu.mdx similarity index 100% rename from apps/docs/src/content/docs/components/dropdown-menu.mdx rename to apps/old-docs/src/content/docs/components/dropdown-menu.mdx diff --git a/apps/docs/src/content/docs/components/hover-card.mdx b/apps/old-docs/src/content/docs/components/hover-card.mdx similarity index 100% rename from apps/docs/src/content/docs/components/hover-card.mdx rename to apps/old-docs/src/content/docs/components/hover-card.mdx diff --git a/apps/docs/src/content/docs/components/input.mdx b/apps/old-docs/src/content/docs/components/input.mdx similarity index 100% rename from apps/docs/src/content/docs/components/input.mdx rename to apps/old-docs/src/content/docs/components/input.mdx diff --git a/apps/docs/src/content/docs/components/label.mdx b/apps/old-docs/src/content/docs/components/label.mdx similarity index 100% rename from apps/docs/src/content/docs/components/label.mdx rename to apps/old-docs/src/content/docs/components/label.mdx diff --git a/apps/docs/src/content/docs/components/menubar.mdx b/apps/old-docs/src/content/docs/components/menubar.mdx similarity index 100% rename from apps/docs/src/content/docs/components/menubar.mdx rename to apps/old-docs/src/content/docs/components/menubar.mdx diff --git a/apps/docs/src/content/docs/components/navigation-menu.mdx b/apps/old-docs/src/content/docs/components/navigation-menu.mdx similarity index 100% rename from apps/docs/src/content/docs/components/navigation-menu.mdx rename to apps/old-docs/src/content/docs/components/navigation-menu.mdx diff --git a/apps/docs/src/content/docs/components/popover.mdx b/apps/old-docs/src/content/docs/components/popover.mdx similarity index 100% rename from apps/docs/src/content/docs/components/popover.mdx rename to apps/old-docs/src/content/docs/components/popover.mdx diff --git a/apps/docs/src/content/docs/components/progress.mdx b/apps/old-docs/src/content/docs/components/progress.mdx similarity index 100% rename from apps/docs/src/content/docs/components/progress.mdx rename to apps/old-docs/src/content/docs/components/progress.mdx diff --git a/apps/docs/src/content/docs/components/radio-group.mdx b/apps/old-docs/src/content/docs/components/radio-group.mdx similarity index 100% rename from apps/docs/src/content/docs/components/radio-group.mdx rename to apps/old-docs/src/content/docs/components/radio-group.mdx diff --git a/apps/docs/src/content/docs/components/select.mdx b/apps/old-docs/src/content/docs/components/select.mdx similarity index 100% rename from apps/docs/src/content/docs/components/select.mdx rename to apps/old-docs/src/content/docs/components/select.mdx diff --git a/apps/docs/src/content/docs/components/separator.mdx b/apps/old-docs/src/content/docs/components/separator.mdx similarity index 100% rename from apps/docs/src/content/docs/components/separator.mdx rename to apps/old-docs/src/content/docs/components/separator.mdx diff --git a/apps/docs/src/content/docs/components/skeleton.mdx b/apps/old-docs/src/content/docs/components/skeleton.mdx similarity index 100% rename from apps/docs/src/content/docs/components/skeleton.mdx rename to apps/old-docs/src/content/docs/components/skeleton.mdx diff --git a/apps/docs/src/content/docs/components/switch.mdx b/apps/old-docs/src/content/docs/components/switch.mdx similarity index 100% rename from apps/docs/src/content/docs/components/switch.mdx rename to apps/old-docs/src/content/docs/components/switch.mdx diff --git a/apps/docs/src/content/docs/components/table.mdx b/apps/old-docs/src/content/docs/components/table.mdx similarity index 100% rename from apps/docs/src/content/docs/components/table.mdx rename to apps/old-docs/src/content/docs/components/table.mdx diff --git a/apps/docs/src/content/docs/components/tabs.mdx b/apps/old-docs/src/content/docs/components/tabs.mdx similarity index 100% rename from apps/docs/src/content/docs/components/tabs.mdx rename to apps/old-docs/src/content/docs/components/tabs.mdx diff --git a/apps/docs/src/content/docs/components/text.mdx b/apps/old-docs/src/content/docs/components/text.mdx similarity index 100% rename from apps/docs/src/content/docs/components/text.mdx rename to apps/old-docs/src/content/docs/components/text.mdx diff --git a/apps/docs/src/content/docs/components/textarea.mdx b/apps/old-docs/src/content/docs/components/textarea.mdx similarity index 100% rename from apps/docs/src/content/docs/components/textarea.mdx rename to apps/old-docs/src/content/docs/components/textarea.mdx diff --git a/apps/docs/src/content/docs/components/toggle-group.mdx b/apps/old-docs/src/content/docs/components/toggle-group.mdx similarity index 100% rename from apps/docs/src/content/docs/components/toggle-group.mdx rename to apps/old-docs/src/content/docs/components/toggle-group.mdx diff --git a/apps/docs/src/content/docs/components/toggle.mdx b/apps/old-docs/src/content/docs/components/toggle.mdx similarity index 100% rename from apps/docs/src/content/docs/components/toggle.mdx rename to apps/old-docs/src/content/docs/components/toggle.mdx diff --git a/apps/docs/src/content/docs/components/tooltip.mdx b/apps/old-docs/src/content/docs/components/tooltip.mdx similarity index 100% rename from apps/docs/src/content/docs/components/tooltip.mdx rename to apps/old-docs/src/content/docs/components/tooltip.mdx diff --git a/apps/docs/src/content/docs/components/typography.mdx b/apps/old-docs/src/content/docs/components/typography.mdx similarity index 100% rename from apps/docs/src/content/docs/components/typography.mdx rename to apps/old-docs/src/content/docs/components/typography.mdx diff --git a/apps/docs/src/content/docs/extras/android-navigation-bar.mdx b/apps/old-docs/src/content/docs/extras/android-navigation-bar.mdx similarity index 100% rename from apps/docs/src/content/docs/extras/android-navigation-bar.mdx rename to apps/old-docs/src/content/docs/extras/android-navigation-bar.mdx diff --git a/apps/docs/src/content/docs/extras/keyboard.mdx b/apps/old-docs/src/content/docs/extras/keyboard.mdx similarity index 100% rename from apps/docs/src/content/docs/extras/keyboard.mdx rename to apps/old-docs/src/content/docs/extras/keyboard.mdx diff --git a/apps/docs/src/content/docs/extras/material-top-tabs.mdx b/apps/old-docs/src/content/docs/extras/material-top-tabs.mdx similarity index 100% rename from apps/docs/src/content/docs/extras/material-top-tabs.mdx rename to apps/old-docs/src/content/docs/extras/material-top-tabs.mdx diff --git a/apps/docs/src/content/docs/getting-started/common-patterns.mdx b/apps/old-docs/src/content/docs/getting-started/common-patterns.mdx similarity index 100% rename from apps/docs/src/content/docs/getting-started/common-patterns.mdx rename to apps/old-docs/src/content/docs/getting-started/common-patterns.mdx diff --git a/apps/docs/src/content/docs/getting-started/icons.mdx b/apps/old-docs/src/content/docs/getting-started/icons.mdx similarity index 100% rename from apps/docs/src/content/docs/getting-started/icons.mdx rename to apps/old-docs/src/content/docs/getting-started/icons.mdx diff --git a/apps/docs/src/content/docs/getting-started/initial-setup.mdx b/apps/old-docs/src/content/docs/getting-started/initial-setup.mdx similarity index 100% rename from apps/docs/src/content/docs/getting-started/initial-setup.mdx rename to apps/old-docs/src/content/docs/getting-started/initial-setup.mdx diff --git a/apps/docs/src/content/docs/getting-started/introduction.mdx b/apps/old-docs/src/content/docs/getting-started/introduction.mdx similarity index 100% rename from apps/docs/src/content/docs/getting-started/introduction.mdx rename to apps/old-docs/src/content/docs/getting-started/introduction.mdx diff --git a/apps/docs/src/content/docs/index.mdx b/apps/old-docs/src/content/docs/index.mdx similarity index 100% rename from apps/docs/src/content/docs/index.mdx rename to apps/old-docs/src/content/docs/index.mdx diff --git a/apps/docs/src/env.d.ts b/apps/old-docs/src/env.d.ts similarity index 100% rename from apps/docs/src/env.d.ts rename to apps/old-docs/src/env.d.ts diff --git a/apps/docs/src/lib/utils.ts b/apps/old-docs/src/lib/utils.ts similarity index 100% rename from apps/docs/src/lib/utils.ts rename to apps/old-docs/src/lib/utils.ts diff --git a/apps/docs/src/tailwind.css b/apps/old-docs/src/tailwind.css similarity index 100% rename from apps/docs/src/tailwind.css rename to apps/old-docs/src/tailwind.css diff --git a/apps/docs/tailwind.config.mjs b/apps/old-docs/tailwind.config.mjs similarity index 100% rename from apps/docs/tailwind.config.mjs rename to apps/old-docs/tailwind.config.mjs diff --git a/apps/docs/tsconfig.json b/apps/old-docs/tsconfig.json similarity index 100% rename from apps/docs/tsconfig.json rename to apps/old-docs/tsconfig.json diff --git a/apps/docs/vercel.json b/apps/old-docs/vercel.json similarity index 100% rename from apps/docs/vercel.json rename to apps/old-docs/vercel.json diff --git a/package.json b/package.json index dd33e8ec..c88ca339 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "scripts": { "dev": "turbo dev", "dev:docs": "turbo dev --filter=docs", + "dev:old-docs": "turbo dev --filter=old-docs", "dev:showcase": "turbo dev --filter=showcase --concurrency 32", "dev:showcase:android": "turbo dev:android --filter=showcase --concurrency 32", "dev:showcase:web": "turbo dev:web --filter=showcase --concurrency 32", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ae9eaa1c..3c35f987 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,7 +115,7 @@ importers: specifier: ^5.8.3 version: 5.8.3 - apps/docs: + apps/old-docs: dependencies: '@astrojs/check': specifier: ^0.5.6 @@ -10793,7 +10793,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 17.0.45 + '@types/node': 22.10.3 '@types/stack-utils@2.0.3': {} From e9fd7edcd0e11ca3f5764e23ed309fabe77e677d Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 10 Jan 2025 10:59:31 -0500 Subject: [PATCH 002/467] feat(docs): init new docs app --- apps/docs/.eslintrc.json | 3 + apps/docs/.gitignore | 28 + apps/docs/README.md | 26 + apps/docs/app/(home)/layout.tsx | 7 + apps/docs/app/(home)/page.tsx | 19 + apps/docs/app/api/search/route.ts | 4 + apps/docs/app/docs/[[...slug]]/page.tsx | 46 + apps/docs/app/docs/layout.tsx | 12 + apps/docs/app/global.css | 3 + apps/docs/app/layout.config.tsx | 22 + apps/docs/app/layout.tsx | 18 + apps/docs/content/docs/index.mdx | 13 + apps/docs/content/docs/test.mdx | 17 + apps/docs/lib/source.ts | 8 + apps/docs/next.config.mjs | 10 + apps/docs/package.json | 31 + apps/docs/postcss.config.js | 6 + apps/docs/source.config.ts | 7 + apps/docs/tailwind.config.js | 14 + apps/docs/tsconfig.json | 29 + apps/old-docs/package.json | 2 +- packages/templates/starter-base/package.json | 5 +- pnpm-lock.yaml | 1688 +++++++++++++++++- 23 files changed, 2000 insertions(+), 18 deletions(-) create mode 100644 apps/docs/.eslintrc.json create mode 100644 apps/docs/.gitignore create mode 100644 apps/docs/README.md create mode 100644 apps/docs/app/(home)/layout.tsx create mode 100644 apps/docs/app/(home)/page.tsx create mode 100644 apps/docs/app/api/search/route.ts create mode 100644 apps/docs/app/docs/[[...slug]]/page.tsx create mode 100644 apps/docs/app/docs/layout.tsx create mode 100644 apps/docs/app/global.css create mode 100644 apps/docs/app/layout.config.tsx create mode 100644 apps/docs/app/layout.tsx create mode 100644 apps/docs/content/docs/index.mdx create mode 100644 apps/docs/content/docs/test.mdx create mode 100644 apps/docs/lib/source.ts create mode 100644 apps/docs/next.config.mjs create mode 100644 apps/docs/package.json create mode 100644 apps/docs/postcss.config.js create mode 100644 apps/docs/source.config.ts create mode 100644 apps/docs/tailwind.config.js create mode 100644 apps/docs/tsconfig.json diff --git a/apps/docs/.eslintrc.json b/apps/docs/.eslintrc.json new file mode 100644 index 00000000..37224185 --- /dev/null +++ b/apps/docs/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["next/core-web-vitals", "next/typescript"] +} diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore new file mode 100644 index 00000000..55a12ae7 --- /dev/null +++ b/apps/docs/.gitignore @@ -0,0 +1,28 @@ +# deps +/node_modules + +# generated content +.contentlayer +.content-collections +.source + +# test & build +/coverage +/.next/ +/out/ +/build +*.tsbuildinfo + +# misc +.DS_Store +*.pem +/.pnp +.pnp.js +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# others +.env*.local +.vercel +next-env.d.ts \ No newline at end of file diff --git a/apps/docs/README.md b/apps/docs/README.md new file mode 100644 index 00000000..dd12f474 --- /dev/null +++ b/apps/docs/README.md @@ -0,0 +1,26 @@ +# docs + +This is a Next.js application generated with +[Create Fumadocs](https://github.com/fuma-nama/fumadocs). + +Run development server: + +```bash +npm run dev +# or +pnpm dev +# or +yarn dev +``` + +Open http://localhost:3000 with your browser to see the result. + +## Learn More + +To learn more about Next.js and Fumadocs, take a look at the following +resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js + features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +- [Fumadocs](https://fumadocs.vercel.app) - learn about Fumadocs diff --git a/apps/docs/app/(home)/layout.tsx b/apps/docs/app/(home)/layout.tsx new file mode 100644 index 00000000..1dd4684d --- /dev/null +++ b/apps/docs/app/(home)/layout.tsx @@ -0,0 +1,7 @@ +import type { ReactNode } from 'react'; +import { HomeLayout } from 'fumadocs-ui/layouts/home'; +import { baseOptions } from '@/app/layout.config'; + +export default function Layout({ children }: { children: ReactNode }) { + return {children}; +} diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx new file mode 100644 index 00000000..e5b59f4d --- /dev/null +++ b/apps/docs/app/(home)/page.tsx @@ -0,0 +1,19 @@ +import Link from 'next/link'; + +export default function HomePage() { + return ( +
+

Hello World

+

+ You can open{' '} + + /docs + {' '} + and see the documentation. +

+
+ ); +} diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts new file mode 100644 index 00000000..df889626 --- /dev/null +++ b/apps/docs/app/api/search/route.ts @@ -0,0 +1,4 @@ +import { source } from '@/lib/source'; +import { createFromSource } from 'fumadocs-core/search/server'; + +export const { GET } = createFromSource(source); diff --git a/apps/docs/app/docs/[[...slug]]/page.tsx b/apps/docs/app/docs/[[...slug]]/page.tsx new file mode 100644 index 00000000..23cd442f --- /dev/null +++ b/apps/docs/app/docs/[[...slug]]/page.tsx @@ -0,0 +1,46 @@ +import { source } from '@/lib/source'; +import { + DocsPage, + DocsBody, + DocsDescription, + DocsTitle, +} from 'fumadocs-ui/page'; +import { notFound } from 'next/navigation'; +import defaultMdxComponents from 'fumadocs-ui/mdx'; + +export default async function Page(props: { + params: Promise<{ slug?: string[] }>; +}) { + const params = await props.params; + const page = source.getPage(params.slug); + if (!page) notFound(); + + const MDX = page.data.body; + + return ( + + {page.data.title} + {page.data.description} + + + + + ); +} + +export async function generateStaticParams() { + return source.generateParams(); +} + +export async function generateMetadata(props: { + params: Promise<{ slug?: string[] }>; +}) { + const params = await props.params; + const page = source.getPage(params.slug); + if (!page) notFound(); + + return { + title: page.data.title, + description: page.data.description, + }; +} diff --git a/apps/docs/app/docs/layout.tsx b/apps/docs/app/docs/layout.tsx new file mode 100644 index 00000000..a91d5585 --- /dev/null +++ b/apps/docs/app/docs/layout.tsx @@ -0,0 +1,12 @@ +import { DocsLayout } from 'fumadocs-ui/layouts/docs'; +import type { ReactNode } from 'react'; +import { baseOptions } from '@/app/layout.config'; +import { source } from '@/lib/source'; + +export default function Layout({ children }: { children: ReactNode }) { + return ( + + {children} + + ); +} diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css new file mode 100644 index 00000000..b5c61c95 --- /dev/null +++ b/apps/docs/app/global.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx new file mode 100644 index 00000000..e0aa689c --- /dev/null +++ b/apps/docs/app/layout.config.tsx @@ -0,0 +1,22 @@ +import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; + +/** + * Shared layout configurations + * + * you can configure layouts individually from: + * Home Layout: app/(home)/layout.tsx + * Docs Layout: app/docs/layout.tsx + */ +export const baseOptions: BaseLayoutProps = { + nav: { + // can be JSX too! + title: 'My App', + }, + links: [ + { + text: 'Documentation', + url: '/docs', + active: 'nested-url', + }, + ], +}; diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx new file mode 100644 index 00000000..9b67cddf --- /dev/null +++ b/apps/docs/app/layout.tsx @@ -0,0 +1,18 @@ +import './global.css'; +import { RootProvider } from 'fumadocs-ui/provider'; +import { Inter } from 'next/font/google'; +import type { ReactNode } from 'react'; + +const inter = Inter({ + subsets: ['latin'], +}); + +export default function Layout({ children }: { children: ReactNode }) { + return ( + + + {children} + + + ); +} diff --git a/apps/docs/content/docs/index.mdx b/apps/docs/content/docs/index.mdx new file mode 100644 index 00000000..986a7fa4 --- /dev/null +++ b/apps/docs/content/docs/index.mdx @@ -0,0 +1,13 @@ +--- +title: Hello World +description: Your first document +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/test.mdx b/apps/docs/content/docs/test.mdx new file mode 100644 index 00000000..d1ee3a86 --- /dev/null +++ b/apps/docs/content/docs/test.mdx @@ -0,0 +1,17 @@ +--- +title: Components +description: Components +--- + +## Code Block + +```js +console.log('Hello World'); +``` + +## Cards + + + + + diff --git a/apps/docs/lib/source.ts b/apps/docs/lib/source.ts new file mode 100644 index 00000000..d786824d --- /dev/null +++ b/apps/docs/lib/source.ts @@ -0,0 +1,8 @@ +import { docs, meta } from '@/.source'; +import { createMDXSource } from 'fumadocs-mdx'; +import { loader } from 'fumadocs-core/source'; + +export const source = loader({ + baseUrl: '/docs', + source: createMDXSource(docs, meta), +}); diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs new file mode 100644 index 00000000..457dcf29 --- /dev/null +++ b/apps/docs/next.config.mjs @@ -0,0 +1,10 @@ +import { createMDX } from 'fumadocs-mdx/next'; + +const withMDX = createMDX(); + +/** @type {import('next').NextConfig} */ +const config = { + reactStrictMode: true, +}; + +export default withMDX(config); diff --git a/apps/docs/package.json b/apps/docs/package.json new file mode 100644 index 00000000..5c6aec79 --- /dev/null +++ b/apps/docs/package.json @@ -0,0 +1,31 @@ +{ + "name": "@rnr/docs", + "version": "0.0.0", + "private": true, + "scripts": { + "build": "next build", + "dev": "next dev", + "start": "next start", + "postinstall": "fumadocs-mdx" + }, + "dependencies": { + "next": "15.1.3", + "fumadocs-ui": "14.7.2", + "fumadocs-core": "14.7.2", + "react": "18.3.1", + "react-dom": "18.3.1", + "fumadocs-mdx": "11.2.3" + }, + "devDependencies": { + "@types/node": "22.10.5", + "@types/react": "~18.3.12", + "@types/react-dom": "^18.2.19", + "typescript": "^5.3.3", + "@types/mdx": "^2.0.13", + "autoprefixer": "^10.4.20", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.14", + "eslint": "^8", + "eslint-config-next": "15.1.3" + } +} diff --git a/apps/docs/postcss.config.js b/apps/docs/postcss.config.js new file mode 100644 index 00000000..12a703d9 --- /dev/null +++ b/apps/docs/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/apps/docs/source.config.ts b/apps/docs/source.config.ts new file mode 100644 index 00000000..8dc21074 --- /dev/null +++ b/apps/docs/source.config.ts @@ -0,0 +1,7 @@ +import { defineDocs, defineConfig } from 'fumadocs-mdx/config'; + +export const { docs, meta } = defineDocs({ + dir: 'content/docs', +}); + +export default defineConfig(); diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js new file mode 100644 index 00000000..5ca03d86 --- /dev/null +++ b/apps/docs/tailwind.config.js @@ -0,0 +1,14 @@ +// @ts-check +import { createPreset } from 'fumadocs-ui/tailwind-plugin'; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + './components/**/*.{ts,tsx}', + './app/**/*.{ts,tsx}', + './content/**/*.{md,mdx}', + './mdx-components.{ts,tsx}', + '../../node_modules/fumadocs-ui/dist/**/*.js', + ], + presets: [createPreset()], +}; diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json new file mode 100644 index 00000000..755e6448 --- /dev/null +++ b/apps/docs/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "target": "ESNext", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "@/*": ["./*"] + }, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/apps/old-docs/package.json b/apps/old-docs/package.json index 74fbd09d..efa580a8 100644 --- a/apps/old-docs/package.json +++ b/apps/old-docs/package.json @@ -32,7 +32,7 @@ "react-dom": "19.0.0", "sharp": "^0.32.5", "tailwind-merge": "^2.2.1", - "tailwindcss": "3.3.5", + "tailwindcss": "^3.4.14", "tailwindcss-animate": "^1.0.7", "typescript": "^5.8.3" } diff --git a/packages/templates/starter-base/package.json b/packages/templates/starter-base/package.json index 66d30a4f..41503924 100644 --- a/packages/templates/starter-base/package.json +++ b/packages/templates/starter-base/package.json @@ -39,8 +39,9 @@ "react-native-svg": "15.11.2", "react-native-web": "~0.20.0", "tailwind-merge": "^2.2.1", - "tailwindcss": "3.3.5", - "tailwindcss-animate": "^1.0.7" + "tailwindcss": "^3.4.14", + "tailwindcss-animate": "^1.0.7", + "zustand": "^4.4.7" }, "devDependencies": { "@babel/core": "^7.26.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3c35f987..e9911f0d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,6 +115,58 @@ importers: specifier: ^5.8.3 version: 5.8.3 + apps/docs: + dependencies: + fumadocs-core: + specifier: 14.7.2 + version: 14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-mdx: + specifier: 11.2.3 + version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + fumadocs-ui: + specifier: 14.7.2 + version: 14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + next: + specifier: 15.1.3 + version: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: + specifier: 18.3.1 + version: 18.3.1 + react-dom: + specifier: 18.3.1 + version: 18.3.1(react@18.3.1) + devDependencies: + '@types/mdx': + specifier: ^2.0.13 + version: 2.0.13 + '@types/node': + specifier: 22.10.5 + version: 22.10.5 + '@types/react': + specifier: ~18.3.12 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.2.19 + version: 18.3.5(@types/react@18.3.18) + autoprefixer: + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.49) + eslint: + specifier: ^8 + version: 8.57.1 + eslint-config-next: + specifier: 15.1.3 + version: 15.1.3(eslint@8.57.1)(typescript@5.7.2) + postcss: + specifier: ^8.4.49 + version: 8.4.49 + tailwindcss: + specifier: ^3.4.14 + version: 3.4.17 + typescript: + specifier: ^5.3.3 + version: 5.7.2 + apps/old-docs: dependencies: '@astrojs/check': @@ -181,11 +233,11 @@ importers: specifier: ^2.2.1 version: 2.6.0 tailwindcss: - specifier: 3.3.5 - version: 3.3.5 + specifier: ^3.4.14 + version: 3.4.17 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.3.5) + version: 1.0.7(tailwindcss@3.4.17) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -320,7 +372,7 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.3.5) + version: 1.0.7(tailwindcss@3.4.17) zod: specifier: ^3.22.4 version: 3.25.17 @@ -332,8 +384,8 @@ importers: specifier: ~19.0.14 version: 19.0.14 tailwindcss: - specifier: 3.3.5 - version: 3.3.5 + specifier: ^3.4.14 + version: 3.4.17 typescript: specifier: ^5.8.3 version: 5.8.3 @@ -576,8 +628,8 @@ importers: specifier: ^2.2.1 version: 2.6.0 tailwindcss: - specifier: 3.3.5 - version: 3.3.5 + specifier: ^3.4.14 + version: 3.4.17 tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.3.5) @@ -1240,6 +1292,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.17.19': resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} engines: {node: '>=12'} @@ -1258,6 +1316,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.17.19': resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} engines: {node: '>=12'} @@ -1276,6 +1340,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.17.19': resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} engines: {node: '>=12'} @@ -1294,6 +1364,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.17.19': resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} engines: {node: '>=12'} @@ -1312,6 +1388,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.17.19': resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} engines: {node: '>=12'} @@ -1330,6 +1412,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.17.19': resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} engines: {node: '>=12'} @@ -1348,6 +1436,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.17.19': resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} engines: {node: '>=12'} @@ -1366,6 +1460,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.17.19': resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} engines: {node: '>=12'} @@ -1384,6 +1484,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.17.19': resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} engines: {node: '>=12'} @@ -1402,6 +1508,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.17.19': resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} engines: {node: '>=12'} @@ -1420,6 +1532,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.17.19': resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} engines: {node: '>=12'} @@ -1438,6 +1556,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.17.19': resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} engines: {node: '>=12'} @@ -1456,6 +1580,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.17.19': resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} engines: {node: '>=12'} @@ -1474,6 +1604,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.17.19': resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} engines: {node: '>=12'} @@ -1492,6 +1628,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.17.19': resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} engines: {node: '>=12'} @@ -1510,6 +1652,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.17.19': resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} engines: {node: '>=12'} @@ -1558,6 +1706,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.17.19': resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} engines: {node: '>=12'} @@ -1576,6 +1730,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.17.19': resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} engines: {node: '>=12'} @@ -1594,6 +1754,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.17.19': resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} engines: {node: '>=12'} @@ -1612,6 +1778,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.17.19': resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} engines: {node: '>=12'} @@ -1630,6 +1802,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.17.19': resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} engines: {node: '>=12'} @@ -1781,6 +1959,19 @@ packages: peerDependencies: react-hook-form: ^7.0.0 + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + '@img/sharp-darwin-arm64@0.33.5': resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -1959,6 +2150,60 @@ packages: '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + '@next/env@15.1.3': + resolution: {integrity: sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==} + + '@next/eslint-plugin-next@15.1.3': + resolution: {integrity: sha512-oeP1vnc5Cq9UoOb8SYHAEPbCXMzOgG70l+Zfd+Ie00R25FOm+CCVNrcIubJvB1tvBgakXE37MmqSycksXVPRqg==} + + '@next/swc-darwin-arm64@15.1.3': + resolution: {integrity: sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@15.1.3': + resolution: {integrity: sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@15.1.3': + resolution: {integrity: sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.1.3': + resolution: {integrity: sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.1.3': + resolution: {integrity: sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.1.3': + resolution: {integrity: sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@15.1.3': + resolution: {integrity: sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.1.3': + resolution: {integrity: sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3324,6 +3569,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} @@ -3354,6 +3602,9 @@ packages: '@types/node@22.15.21': resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + '@types/node@22.10.5': + resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} @@ -3511,6 +3762,9 @@ packages: peerDependencies: ajv: ^8.8.2 + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -3580,6 +3834,14 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} @@ -3590,6 +3852,30 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} @@ -3808,6 +4094,10 @@ packages: peerDependencies: esbuild: '>=0.17' + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -3886,6 +4176,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} @@ -4013,6 +4307,9 @@ packages: resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} engines: {node: '>= 0.8.0'} + compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -4090,6 +4387,18 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -4130,6 +4439,9 @@ packages: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -4193,6 +4505,14 @@ packages: dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -4253,6 +4573,10 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -4274,6 +4598,17 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -4295,6 +4630,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -4318,11 +4658,119 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} + eslint-config-next@15.1.3: + resolution: {integrity: sha512-wGYlNuWnh4ujuKtZvH+7B2Z2vy9nONZE6ztd+DKF7hAsIabkrxmD4TzYHzASHENo42lmz2tnT2B+zN2sOHvpJg==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-import-resolver-typescript@3.7.0: + resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' + eslint-plugin-import-x: '*' + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} + engines: {node: '>=4.0'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react@7.37.3: + resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + estree-util-attach-comments@3.0.0: resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} @@ -4338,6 +4786,9 @@ packages: estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + estree-util-value-to-estree@3.2.1: + resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==} + estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} @@ -4569,6 +5020,13 @@ packages: find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} @@ -4613,6 +5071,48 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + fumadocs-core@14.7.2: + resolution: {integrity: sha512-nHsqUxcli3YXmaseWTXxglZd5J8z4PjBpl5qt5Mpj5RmYzozuNtwaOXw5SfNegAzjJtipAyHi2DCy541N6aotA==} + peerDependencies: + '@orama/tokenizers': 2.x.x + '@oramacloud/client': 1.x.x || 2.x.x + algoliasearch: 4.24.0 + next: 14.x.x || 15.x.x + react: 18.x.x || 19.x.x + react-dom: 18.x.x || 19.x.x + peerDependenciesMeta: + '@orama/tokenizers': + optional: true + '@oramacloud/client': + optional: true + algoliasearch: + optional: true + next: + optional: true + react: + optional: true + react-dom: + optional: true + + fumadocs-mdx@11.2.3: + resolution: {integrity: sha512-2+EBHe85NT0JpSldaEi8rUwsGb/0ZL7+3bsmckeqbJbb5rS3Ugmws05tp90yEAORt+G6TdHC0/xeQKUfFfgoGw==} + hasBin: true + peerDependencies: + fumadocs-core: ^14.0.0 + next: 14.x.x || 15.x.x + + fumadocs-ui@14.7.2: + resolution: {integrity: sha512-cUanyDh9yBEKhePvaJQ9vzcAXeQ3zSeytLzzolXOazr12W1XsNTfeukr9xwXkj0PHdHV6FDrFdbS/G77E3eMOg==} + peerDependencies: + fumadocs-core: 14.7.2 + next: 14.x.x || 15.x.x + react: 18.x.x || 19.x.x + react-dom: 18.x.x || 19.x.x + tailwindcss: ^3.4.14 + peerDependenciesMeta: + tailwindcss: + optional: true + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} @@ -4680,6 +5180,14 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -4687,10 +5195,17 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -4873,6 +5388,10 @@ packages: inline-style-prefixer@7.0.1: resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -4888,6 +5407,14 @@ packages: is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-async-function@2.1.0: + resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -4900,6 +5427,14 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -4925,6 +5460,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -4945,6 +5484,14 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4969,6 +5516,18 @@ packages: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -4988,6 +5547,10 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -5062,15 +5625,28 @@ packages: engines: {node: '>=6'} hasBin: true + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5085,6 +5661,13 @@ packages: jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5105,6 +5688,10 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + lighthouse-logger@1.4.2: resolution: {integrity: sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==} @@ -5269,6 +5856,9 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} @@ -5322,6 +5912,11 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lucide-react@0.469.0: + resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -5699,6 +6294,9 @@ packages: peerDependencies: tailwindcss: '>3.3.0' + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} @@ -5802,6 +6400,34 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + on-finished@2.3.0: resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} engines: {node: '>= 0.8'} @@ -5844,6 +6470,10 @@ packages: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + ora@3.4.0: resolution: {integrity: sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==} engines: {node: '>=6'} @@ -6048,9 +6678,17 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + engines: {node: '>=4'} + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.4.49: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} @@ -6068,6 +6706,10 @@ packages: resolution: {integrity: sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==} engines: {node: '>=18.12'} + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + prettier@2.8.7: resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} engines: {node: '>=10.13.0'} @@ -6149,6 +6791,11 @@ packages: peerDependencies: react: ^19.0.0 + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -6363,6 +7010,10 @@ packages: react: '>= 15.2.1' react-native: '>= 0.30.0' + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -6382,6 +7033,10 @@ packages: regex@5.1.1: resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + regexpu-core@6.2.0: resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} engines: {node: '>=4'} @@ -6489,6 +7144,10 @@ packages: resolve@1.7.1: resolution: {integrity: sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==} + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + restore-cursor@2.0.0: resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==} engines: {node: '>=4'} @@ -6555,6 +7214,14 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + sax@1.4.1: resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} @@ -6565,6 +7232,9 @@ packages: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -6634,6 +7304,25 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + shiki@1.26.1: + resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -6793,6 +7482,10 @@ packages: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + structured-headers@0.4.1: resolution: {integrity: sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==} @@ -6802,6 +7495,19 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + styleq@0.1.3: resolution: {integrity: sha512-3ZUifmCDCQanjeej1f6kyl/BeP/Vae5EYkQ9iJfUm/QwZvlgnZzyflqAsAWYURdtea8Vkvswu2GrC57h3qffcA==} @@ -6838,8 +7544,8 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@3.3.5: - resolution: {integrity: sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==} + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} hasBin: true @@ -6880,6 +7586,9 @@ packages: text-decoder@1.2.3: resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -6930,6 +7639,12 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + ts-api-utils@2.0.0: + resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -6949,6 +7664,9 @@ packages: typescript: optional: true + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -7014,6 +7732,10 @@ packages: resolution: {integrity: sha512-1q7+9UJABuBAHrcC4Sxp5lOqYS5mvxRrwa33wpIyM18hlOCpRD/fTJNxZ0vhbMcJmz15o9kkVm743mPn7p6jpQ==} hasBin: true + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} @@ -7034,6 +7756,22 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} @@ -7157,6 +7895,9 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-callback-ref@1.3.3: resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} @@ -7459,6 +8200,18 @@ packages: whatwg-url@7.1.0: resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} @@ -7479,6 +8232,10 @@ packages: wonka@6.3.5: resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8510,6 +9267,9 @@ snapshots: '@esbuild/aix-ppc64@0.25.4': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/android-arm64@0.17.19': optional: true @@ -8519,6 +9279,9 @@ snapshots: '@esbuild/android-arm64@0.25.4': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm@0.17.19': optional: true @@ -8528,6 +9291,9 @@ snapshots: '@esbuild/android-arm@0.25.4': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-x64@0.17.19': optional: true @@ -8537,6 +9303,9 @@ snapshots: '@esbuild/android-x64@0.25.4': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.17.19': optional: true @@ -8546,6 +9315,9 @@ snapshots: '@esbuild/darwin-arm64@0.25.4': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.17.19': optional: true @@ -8555,6 +9327,9 @@ snapshots: '@esbuild/darwin-x64@0.25.4': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.17.19': optional: true @@ -8564,6 +9339,9 @@ snapshots: '@esbuild/freebsd-arm64@0.25.4': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.17.19': optional: true @@ -8573,6 +9351,9 @@ snapshots: '@esbuild/freebsd-x64@0.25.4': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.17.19': optional: true @@ -8582,6 +9363,9 @@ snapshots: '@esbuild/linux-arm64@0.25.4': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm@0.17.19': optional: true @@ -8591,6 +9375,9 @@ snapshots: '@esbuild/linux-arm@0.25.4': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-ia32@0.17.19': optional: true @@ -8600,6 +9387,9 @@ snapshots: '@esbuild/linux-ia32@0.25.4': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-loong64@0.17.19': optional: true @@ -8609,6 +9399,9 @@ snapshots: '@esbuild/linux-loong64@0.25.4': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.17.19': optional: true @@ -8618,6 +9411,9 @@ snapshots: '@esbuild/linux-mips64el@0.25.4': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.17.19': optional: true @@ -8627,6 +9423,9 @@ snapshots: '@esbuild/linux-ppc64@0.25.4': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.17.19': optional: true @@ -8636,6 +9435,9 @@ snapshots: '@esbuild/linux-riscv64@0.25.4': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-s390x@0.17.19': optional: true @@ -8645,6 +9447,9 @@ snapshots: '@esbuild/linux-s390x@0.25.4': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-x64@0.17.19': optional: true @@ -8657,6 +9462,12 @@ snapshots: '@esbuild/netbsd-arm64@0.25.4': optional: true + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true @@ -8669,6 +9480,9 @@ snapshots: '@esbuild/openbsd-arm64@0.25.4': optional: true + '@esbuild/openbsd-arm64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true @@ -8678,6 +9492,9 @@ snapshots: '@esbuild/openbsd-x64@0.25.4': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.17.19': optional: true @@ -8687,6 +9504,9 @@ snapshots: '@esbuild/sunos-x64@0.25.4': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.17.19': optional: true @@ -8696,6 +9516,9 @@ snapshots: '@esbuild/win32-arm64@0.25.4': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-ia32@0.17.19': optional: true @@ -8705,6 +9528,9 @@ snapshots: '@esbuild/win32-ia32@0.25.4': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-x64@0.17.19': optional: true @@ -9034,6 +9860,18 @@ snapshots: dependencies: react-hook-form: 7.56.4(react@19.0.0) + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.0.4 @@ -9252,6 +10090,36 @@ snapshots: - acorn - supports-color + '@next/env@15.1.3': {} + + '@next/eslint-plugin-next@15.1.3': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@15.1.3': + optional: true + + '@next/swc-darwin-x64@15.1.3': + optional: true + + '@next/swc-linux-arm64-gnu@15.1.3': + optional: true + + '@next/swc-linux-arm64-musl@15.1.3': + optional: true + + '@next/swc-linux-x64-gnu@15.1.3': + optional: true + + '@next/swc-linux-x64-musl@15.1.3': + optional: true + + '@next/swc-win32-arm64-msvc@15.1.3': + optional: true + + '@next/swc-win32-x64-msvc@15.1.3': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9264,6 +10132,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@orama/orama@2.1.1': {} + '@oslojs/encoding@1.1.0': {} '@pagefind/darwin-arm64@1.3.0': @@ -10744,6 +11614,8 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/json5@0.0.29': {} + '@types/jsonfile@6.1.4': dependencies: '@types/node': 22.15.21 @@ -10776,6 +11648,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.10.5': + dependencies: + undici-types: 6.20.0 + '@types/parse5@6.0.3': {} '@types/prompts@2.4.9': @@ -10793,7 +11669,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 22.10.3 + '@types/node': 22.10.5 '@types/stack-utils@2.0.3': {} @@ -10941,6 +11817,13 @@ snapshots: ajv: 8.17.1 fast-deep-equal: 3.1.3 + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -10999,12 +11882,76 @@ snapshots: aria-query@5.3.2: {} + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.6 + is-string: 1.1.1 + array-iterate@2.0.1: {} array-timsort@1.0.3: {} array-union@2.1.0: {} + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 + asap@2.0.6: {} ast-types@0.16.1: @@ -11365,6 +12312,10 @@ snapshots: esbuild: 0.17.19 load-tsconfig: 0.2.5 + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + bytes@3.1.2: {} cac@6.7.14: {} @@ -11428,6 +12379,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.0.2 + chownr@1.1.4: {} chownr@3.0.0: {} @@ -11554,6 +12509,8 @@ snapshots: transitivePeerDependencies: - supports-color + compute-scroll-into-view@3.1.0: {} + concat-map@0.0.1: {} connect@3.7.0: @@ -11634,6 +12591,24 @@ snapshots: data-uri-to-buffer@4.0.1: {} + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + debug@2.6.9: dependencies: ms: 2.0.0 @@ -11658,6 +12633,8 @@ snapshots: deep-extend@0.6.0: {} + deep-is@0.1.4: {} + deepmerge@4.3.1: {} defaults@1.0.4: @@ -11700,6 +12677,14 @@ snapshots: dlv@1.1.3: {} + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -11753,6 +12738,11 @@ snapshots: dependencies: once: 1.4.0 + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@4.5.0: {} entities@6.0.0: {} @@ -11769,6 +12759,23 @@ snapshots: es-module-lexer@1.7.0: {} + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -11862,6 +12869,34 @@ snapshots: '@esbuild/win32-ia32': 0.25.4 '@esbuild/win32-x64': 0.25.4 + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -11874,8 +12909,205 @@ snapshots: escape-string-regexp@5.0.0: {} + eslint-config-next@15.1.3(eslint@8.57.1)(typescript@5.7.2): + dependencies: + '@next/eslint-plugin-next': 15.1.3 + '@rushstack/eslint-patch': 1.10.5 + '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.7.2) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-react: 7.37.3(eslint@8.57.1) + eslint-plugin-react-hooks: 5.1.0(eslint@8.57.1) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): + dependencies: + '@nolyfill/is-core-module': 1.0.39 + debug: 4.4.0 + enhanced-resolve: 5.18.0 + eslint: 8.57.1 + fast-glob: 3.3.2 + get-tsconfig: 4.8.1 + is-bun-module: 1.3.0 + is-glob: 4.0.3 + stable-hash: 0.0.4 + optionalDependencies: + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.7.2) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) + transitivePeerDependencies: + - supports-color + + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.7.2) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): + dependencies: + aria-query: 5.3.2 + array-includes: 3.1.8 + array.prototype.flatmap: 1.3.3 + ast-types-flow: 0.0.8 + axe-core: 4.10.2 + axobject-query: 4.1.0 + damerau-levenshtein: 1.0.8 + emoji-regex: 9.2.2 + eslint: 8.57.1 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + language-tags: 1.0.9 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 + + eslint-plugin-react-hooks@5.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react@7.37.3(eslint@8.57.1): + dependencies: + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 8.57.1 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.1 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 3.4.3 + esprima@4.0.1: {} + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.7 @@ -11900,6 +13132,10 @@ snapshots: astring: 1.9.0 source-map: 0.7.4 + estree-util-value-to-estree@3.2.1: + dependencies: + '@types/estree': 1.0.6 + estree-util-visit@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -12205,6 +13441,14 @@ snapshots: micromatch: 4.0.8 pkg-dir: 4.2.0 + flat-cache@3.2.0: + dependencies: + flatted: 3.3.2 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.2: {} + flattie@1.1.1: {} flow-enums-runtime@0.0.6: {} @@ -12239,6 +13483,76 @@ snapshots: fsevents@2.3.3: optional: true + fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@formatjs/intl-localematcher': 0.5.10 + '@orama/orama': 2.1.1 + '@shikijs/rehype': 1.26.1 + github-slugger: 2.0.0 + hast-util-to-estree: 3.1.0 + hast-util-to-jsx-runtime: 2.3.2 + image-size: 1.2.0 + negotiator: 1.0.0 + react-remove-scroll: 2.6.2(@types/react@18.3.18)(react@18.3.1) + remark: 15.0.1 + remark-gfm: 4.0.0 + scroll-into-view-if-needed: 3.1.0 + shiki: 1.26.1 + unist-util-visit: 5.0.0 + optionalDependencies: + next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - supports-color + + fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + dependencies: + '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + chokidar: 4.0.3 + cross-spawn: 7.0.6 + esbuild: 0.24.2 + estree-util-value-to-estree: 3.2.1 + fast-glob: 3.3.2 + fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + gray-matter: 4.0.3 + micromatch: 4.0.8 + next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + unist-util-visit: 5.0.0 + zod: 3.24.1 + transitivePeerDependencies: + - acorn + - supports-color + + fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): + dependencies: + '@radix-ui/react-accordion': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-collapsible': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-dialog': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-navigation-menu': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-popover': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-scroll-area': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-tabs': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + class-variance-authority: 0.7.1 + fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + lodash.merge: 4.6.2 + lucide-react: 0.469.0(react@18.3.1) + next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next-themes: 0.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + postcss-selector-parser: 7.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-medium-image-zoom: 5.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tailwind-merge: 2.6.0 + optionalDependencies: + tailwindcss: 3.4.17 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + function-bind@1.1.2: {} fzf@0.5.2: {} @@ -12300,6 +13614,15 @@ snapshots: globals@11.12.0: {} + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -12311,6 +13634,8 @@ snapshots: graceful-fs@4.2.11: {} + graphemer@1.4.0: {} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 @@ -12318,6 +13643,8 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 + has-bigints@1.1.0: {} + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -12644,6 +13971,12 @@ snapshots: dependencies: css-in-js-utils: 3.1.0 + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -12659,6 +13992,17 @@ snapshots: is-arrayish@0.3.2: {} + is-async-function@2.1.0: + dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -12669,6 +14013,17 @@ snapshots: dependencies: hasown: 2.0.2 + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + is-decimal@2.0.1: {} is-directory@0.3.1: {} @@ -12681,6 +14036,10 @@ snapshots: is-extglob@2.1.1: {} + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 + is-fullwidth-code-point@3.0.0: {} is-glob@4.0.3: @@ -12695,6 +14054,13 @@ snapshots: is-interactive@2.0.0: {} + is-map@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + is-number@7.0.0: {} is-plain-obj@4.1.0: {} @@ -12707,6 +14073,17 @@ snapshots: is-unicode-supported@2.1.0: {} + is-weakmap@2.0.2: {} + + is-weakref@1.1.0: + dependencies: + call-bound: 1.0.3 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -12729,6 +14106,15 @@ snapshots: transitivePeerDependencies: - supports-color + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.6 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -12830,12 +14216,22 @@ snapshots: jsesc@3.1.0: {} + json-buffer@3.0.1: {} + json-parse-better-errors@1.0.2: {} json-parse-even-better-errors@2.3.1: {} + json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + json5@2.2.3: {} jsonc-parser@2.3.1: {} @@ -12848,6 +14244,17 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + kind-of@6.0.3: {} kleur@3.0.3: {} @@ -12858,6 +14265,11 @@ snapshots: leven@3.1.0: {} + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + lighthouse-logger@1.4.2: dependencies: debug: 2.6.9 @@ -12982,6 +14394,8 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.merge@4.6.2: {} + lodash.sortby@4.7.0: {} lodash.template@4.5.0: @@ -13033,6 +14447,10 @@ snapshots: dependencies: react: 19.0.0 + lucide-react@0.469.0(react@18.3.1): + dependencies: + react: 18.3.1 + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -13789,6 +15207,8 @@ snapshots: - react-native-svg - supports-color + natural-compare@1.4.0: {} + negotiator@0.6.3: {} negotiator@0.6.4: {} @@ -13868,6 +15288,45 @@ snapshots: object-hash@3.0.0: {} + object-inspect@1.13.3: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + on-finished@2.3.0: dependencies: ee-first: 1.1.1 @@ -13915,6 +15374,15 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + ora@3.4.0: dependencies: chalk: 2.4.2 @@ -14123,8 +15591,19 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@7.0.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-value-parser@4.2.0: {} + postcss@8.4.31: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.4.49: dependencies: nanoid: 3.3.11 @@ -14158,6 +15637,8 @@ snapshots: find-yarn-workspace-root2: 1.2.16 which-pm: 3.0.1 + prelude-ls@1.2.1: {} + prettier@2.8.7: optional: true @@ -14242,6 +15723,11 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 + react-dom@19.0.0(react@18.3.1): + dependencies: + react: 18.3.1 + scheduler: 0.25.0 + react-fast-compare@3.2.2: {} react-freeze@1.0.4(react@19.0.0): @@ -14537,6 +16023,17 @@ snapshots: react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) ts-object-utils: 0.0.5 + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -14556,6 +16053,15 @@ snapshots: dependencies: regex-utilities: 2.3.0 + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + regexpu-core@6.2.0: dependencies: regenerate: 1.4.2 @@ -14711,6 +16217,12 @@ snapshots: dependencies: path-parse: 1.0.7 + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + restore-cursor@2.0.0: dependencies: onetime: 2.0.1 @@ -14824,6 +16336,17 @@ snapshots: safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + sax@1.4.1: {} scheduler@0.25.0: {} @@ -14835,6 +16358,10 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.0 + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -14960,6 +16487,45 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + shiki@1.26.1: + dependencies: + '@shikijs/core': 1.26.1 + '@shikijs/engine-javascript': 1.26.1 + '@shikijs/engine-oniguruma': 1.26.1 + '@shikijs/langs': 1.26.1 + '@shikijs/themes': 1.26.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -15100,6 +16666,8 @@ snapshots: strip-json-comments@2.0.1: {} + strip-json-comments@3.1.1: {} + structured-headers@0.4.1: {} style-to-js@1.1.16: @@ -15110,6 +16678,13 @@ snapshots: dependencies: inline-style-parser: 0.2.4 + styled-jsx@5.1.6(@babel/core@7.26.0)(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + optionalDependencies: + '@babel/core': 7.26.0 + styleq@0.1.3: {} sucrase@3.35.0: @@ -15143,11 +16718,11 @@ snapshots: tailwind-merge@2.6.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.3.5): + tailwindcss-animate@1.0.7(tailwindcss@3.4.17): dependencies: - tailwindcss: 3.3.5 + tailwindcss: 3.4.17 - tailwindcss@3.3.5: + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -15158,7 +16733,7 @@ snapshots: glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.21.7 - lilconfig: 2.1.0 + lilconfig: 3.1.3 micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 @@ -15238,6 +16813,8 @@ snapshots: dependencies: b4a: 1.6.7 + text-table@0.2.0: {} + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -15279,6 +16856,10 @@ snapshots: trough@2.2.0: {} + ts-api-utils@2.0.0(typescript@5.7.2): + dependencies: + typescript: 5.7.2 + ts-interface-checker@0.1.13: {} ts-morph@18.0.0: @@ -15292,6 +16873,13 @@ snapshots: optionalDependencies: typescript: 5.8.3 + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -15361,6 +16949,10 @@ snapshots: turbo-windows-64: 1.13.4 turbo-windows-arm64: 1.13.4 + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + type-detect@4.0.8: {} type-fest@0.21.3: {} @@ -15371,6 +16963,39 @@ snapshots: type-fest@4.41.0: {} + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.10 + typesafe-path@0.2.2: {} typescript-auto-import-cache@0.3.6: @@ -15767,6 +17392,37 @@ snapshots: tr46: 1.0.1 webidl-conversions: 4.0.2 + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.1 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.0 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.0.10 + is-regex: 1.2.1 + is-weakref: 1.1.0 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + which-pm-runs@1.1.0: {} which-pm@3.0.1: @@ -15783,6 +17439,8 @@ snapshots: wonka@6.3.5: {} + word-wrap@1.2.5: {} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 From d697f0df4a0c6ae9e5d69cb19aa351ddc22a6ce5 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 10 Jan 2025 16:49:35 -0500 Subject: [PATCH 003/467] feat(docs): exploration --- apps/docs/app/layout.config.tsx | 10 +++++----- apps/docs/content/docs/meta.json | 3 +++ apps/docs/content/docs/react-native/index.mdx | 13 ++++++++++++ apps/docs/content/docs/react-native/meta.json | 20 +++++++++++++++++++ apps/docs/content/docs/react/index.mdx | 13 ++++++++++++ apps/docs/content/docs/react/meta.json | 20 +++++++++++++++++++ 6 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 apps/docs/content/docs/meta.json create mode 100644 apps/docs/content/docs/react-native/index.mdx create mode 100644 apps/docs/content/docs/react-native/meta.json create mode 100644 apps/docs/content/docs/react/index.mdx create mode 100644 apps/docs/content/docs/react/meta.json diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx index e0aa689c..d5800756 100644 --- a/apps/docs/app/layout.config.tsx +++ b/apps/docs/app/layout.config.tsx @@ -9,14 +9,14 @@ import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; */ export const baseOptions: BaseLayoutProps = { nav: { - // can be JSX too! - title: 'My App', + title:
Logo
, }, links: [ { - text: 'Documentation', - url: '/docs', - active: 'nested-url', + text: 'rn-primitives', + url: 'https://rnprimitives.com', + icon:

i

, }, ], + githubUrl: 'https://github.com/mrzachnugent/react-native-reusables', }; diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json new file mode 100644 index 00000000..36f9c09b --- /dev/null +++ b/apps/docs/content/docs/meta.json @@ -0,0 +1,3 @@ +{ + "pages": ["react", "react-native"] +} diff --git a/apps/docs/content/docs/react-native/index.mdx b/apps/docs/content/docs/react-native/index.mdx new file mode 100644 index 00000000..986a7fa4 --- /dev/null +++ b/apps/docs/content/docs/react-native/index.mdx @@ -0,0 +1,13 @@ +--- +title: Hello World +description: Your first document +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/react-native/meta.json b/apps/docs/content/docs/react-native/meta.json new file mode 100644 index 00000000..274dcf8a --- /dev/null +++ b/apps/docs/content/docs/react-native/meta.json @@ -0,0 +1,20 @@ +{ + "title": "React Native", + "description": "Reusables", + "icon": "Building2", + "root": true, + "pages": [ + "---Getting started---", + "index", + "comparisons", + "...", + "---Other---", + "manual-installation", + "static-export", + "(integrations)", + "---Components---", + "markdown", + "page-conventions", + "navigation" + ] +} diff --git a/apps/docs/content/docs/react/index.mdx b/apps/docs/content/docs/react/index.mdx new file mode 100644 index 00000000..986a7fa4 --- /dev/null +++ b/apps/docs/content/docs/react/index.mdx @@ -0,0 +1,13 @@ +--- +title: Hello World +description: Your first document +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/react/meta.json b/apps/docs/content/docs/react/meta.json new file mode 100644 index 00000000..89a47c2b --- /dev/null +++ b/apps/docs/content/docs/react/meta.json @@ -0,0 +1,20 @@ +{ + "title": "React", + "description": "Web", + "icon": "Building2", + "root": true, + "pages": [ + "---Getting Started---", + "index", + "comparisons", + "...", + "---Installation---", + "manual-installation", + "static-export", + "(integrations)", + "---Components---", + "markdown", + "page-conventions", + "navigation" + ] +} From 16710859cd2d24de2b16bdec83a02078fd4a1a4b Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 11 Jan 2025 17:11:58 -0500 Subject: [PATCH 004/467] feat: add real meta + make rn-primitives link in menu only --- apps/docs/app/layout.config.tsx | 2 ++ apps/docs/content/docs/meta.json | 23 ++++++++++++++++++- apps/docs/content/docs/react-native/meta.json | 20 ---------------- apps/docs/content/docs/react/index.mdx | 13 ----------- apps/docs/content/docs/react/meta.json | 20 ---------------- 5 files changed, 24 insertions(+), 54 deletions(-) delete mode 100644 apps/docs/content/docs/react-native/meta.json delete mode 100644 apps/docs/content/docs/react/index.mdx delete mode 100644 apps/docs/content/docs/react/meta.json diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx index d5800756..58e76333 100644 --- a/apps/docs/app/layout.config.tsx +++ b/apps/docs/app/layout.config.tsx @@ -16,6 +16,8 @@ export const baseOptions: BaseLayoutProps = { text: 'rn-primitives', url: 'https://rnprimitives.com', icon:

i

, + external: true, + on: 'menu', }, ], githubUrl: 'https://github.com/mrzachnugent/react-native-reusables', diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 36f9c09b..a8296087 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -1,3 +1,24 @@ { - "pages": ["react", "react-native"] + "title": "React Native Reusables", + "description": "", + "icon": "Building2", + "root": true, + "pages": [ + "---Getting started---", + "introduction", + "installation", + "recipes", + "---Customization---", + "cli", + "icons", + "components-json", + "theming", + "dark-mode", + "---Components---", + "...", + "---Bonus---", + "android-navigation-bar", + "use-keyboard", + "material-top-tabs" + ] } diff --git a/apps/docs/content/docs/react-native/meta.json b/apps/docs/content/docs/react-native/meta.json deleted file mode 100644 index 274dcf8a..00000000 --- a/apps/docs/content/docs/react-native/meta.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "React Native", - "description": "Reusables", - "icon": "Building2", - "root": true, - "pages": [ - "---Getting started---", - "index", - "comparisons", - "...", - "---Other---", - "manual-installation", - "static-export", - "(integrations)", - "---Components---", - "markdown", - "page-conventions", - "navigation" - ] -} diff --git a/apps/docs/content/docs/react/index.mdx b/apps/docs/content/docs/react/index.mdx deleted file mode 100644 index 986a7fa4..00000000 --- a/apps/docs/content/docs/react/index.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Hello World -description: Your first document ---- - -Welcome to the docs! You can start writing documents in `/content/docs`. - -## What is Next? - - - - - diff --git a/apps/docs/content/docs/react/meta.json b/apps/docs/content/docs/react/meta.json deleted file mode 100644 index 89a47c2b..00000000 --- a/apps/docs/content/docs/react/meta.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "title": "React", - "description": "Web", - "icon": "Building2", - "root": true, - "pages": [ - "---Getting Started---", - "index", - "comparisons", - "...", - "---Installation---", - "manual-installation", - "static-export", - "(integrations)", - "---Components---", - "markdown", - "page-conventions", - "navigation" - ] -} From 9efa3ee86970be1761a22a347797fd2453c6f625 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 12 Jan 2025 08:55:55 -0500 Subject: [PATCH 005/467] feat(cli): update root meta + start adding pages --- .../index.mdx => android-navigation-bar.mdx} | 4 ++-- apps/docs/content/docs/cli.mdx | 13 +++++++++++++ .../docs/{test.mdx => components-json.mdx} | 4 ++-- apps/docs/content/docs/icons.mdx | 13 +++++++++++++ apps/docs/content/docs/index.mdx | 4 ++-- apps/docs/content/docs/installation.mdx | 17 +++++++++++++++++ apps/docs/content/docs/material-top-tabs.mdx | 13 +++++++++++++ apps/docs/content/docs/meta.json | 13 ++++++------- apps/docs/content/docs/recipes.mdx | 13 +++++++++++++ apps/docs/content/docs/theming.mdx | 13 +++++++++++++ apps/docs/content/docs/use-keyboard.mdx | 13 +++++++++++++ 11 files changed, 107 insertions(+), 13 deletions(-) rename apps/docs/content/docs/{react-native/index.mdx => android-navigation-bar.mdx} (84%) create mode 100644 apps/docs/content/docs/cli.mdx rename apps/docs/content/docs/{test.mdx => components-json.mdx} (85%) create mode 100644 apps/docs/content/docs/icons.mdx create mode 100644 apps/docs/content/docs/installation.mdx create mode 100644 apps/docs/content/docs/material-top-tabs.mdx create mode 100644 apps/docs/content/docs/recipes.mdx create mode 100644 apps/docs/content/docs/theming.mdx create mode 100644 apps/docs/content/docs/use-keyboard.mdx diff --git a/apps/docs/content/docs/react-native/index.mdx b/apps/docs/content/docs/android-navigation-bar.mdx similarity index 84% rename from apps/docs/content/docs/react-native/index.mdx rename to apps/docs/content/docs/android-navigation-bar.mdx index 986a7fa4..fc6f6459 100644 --- a/apps/docs/content/docs/react-native/index.mdx +++ b/apps/docs/content/docs/android-navigation-bar.mdx @@ -1,6 +1,6 @@ --- -title: Hello World -description: Your first document +title: Android Navigation Bar +description: TODO --- Welcome to the docs! You can start writing documents in `/content/docs`. diff --git a/apps/docs/content/docs/cli.mdx b/apps/docs/content/docs/cli.mdx new file mode 100644 index 00000000..6b3e1d87 --- /dev/null +++ b/apps/docs/content/docs/cli.mdx @@ -0,0 +1,13 @@ +--- +title: CLI +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/test.mdx b/apps/docs/content/docs/components-json.mdx similarity index 85% rename from apps/docs/content/docs/test.mdx rename to apps/docs/content/docs/components-json.mdx index d1ee3a86..cddb0262 100644 --- a/apps/docs/content/docs/test.mdx +++ b/apps/docs/content/docs/components-json.mdx @@ -1,6 +1,6 @@ --- -title: Components -description: Components +title: components.json +description: TODO --- ## Code Block diff --git a/apps/docs/content/docs/icons.mdx b/apps/docs/content/docs/icons.mdx new file mode 100644 index 00000000..35ff700c --- /dev/null +++ b/apps/docs/content/docs/icons.mdx @@ -0,0 +1,13 @@ +--- +title: Icons +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/index.mdx b/apps/docs/content/docs/index.mdx index 986a7fa4..241fa807 100644 --- a/apps/docs/content/docs/index.mdx +++ b/apps/docs/content/docs/index.mdx @@ -1,6 +1,6 @@ --- -title: Hello World -description: Your first document +title: Introduction +description: TODO --- Welcome to the docs! You can start writing documents in `/content/docs`. diff --git a/apps/docs/content/docs/installation.mdx b/apps/docs/content/docs/installation.mdx new file mode 100644 index 00000000..6c1fdfa5 --- /dev/null +++ b/apps/docs/content/docs/installation.mdx @@ -0,0 +1,17 @@ +--- +title: Installation +description: TODO +--- + +## Code Block + +```js +console.log('Hello World'); +``` + +## Cards + + + + + diff --git a/apps/docs/content/docs/material-top-tabs.mdx b/apps/docs/content/docs/material-top-tabs.mdx new file mode 100644 index 00000000..a47749ae --- /dev/null +++ b/apps/docs/content/docs/material-top-tabs.mdx @@ -0,0 +1,13 @@ +--- +title: Material Top Tabs +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index a8296087..09c5c020 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -5,20 +5,19 @@ "root": true, "pages": [ "---Getting started---", - "introduction", + "index", "installation", - "recipes", - "---Customization---", - "cli", "icons", + "cli", + "---Customization---", "components-json", "theming", - "dark-mode", + "recipes", "---Components---", "...", "---Bonus---", "android-navigation-bar", - "use-keyboard", - "material-top-tabs" + "material-top-tabs", + "use-keyboard" ] } diff --git a/apps/docs/content/docs/recipes.mdx b/apps/docs/content/docs/recipes.mdx new file mode 100644 index 00000000..970c07b9 --- /dev/null +++ b/apps/docs/content/docs/recipes.mdx @@ -0,0 +1,13 @@ +--- +title: Recipes +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/theming.mdx b/apps/docs/content/docs/theming.mdx new file mode 100644 index 00000000..d8133423 --- /dev/null +++ b/apps/docs/content/docs/theming.mdx @@ -0,0 +1,13 @@ +--- +title: Theming +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/use-keyboard.mdx b/apps/docs/content/docs/use-keyboard.mdx new file mode 100644 index 00000000..b6a43ab3 --- /dev/null +++ b/apps/docs/content/docs/use-keyboard.mdx @@ -0,0 +1,13 @@ +--- +title: useKeyboard +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + From 0a25bbfeeffe7501c77362a474004ac7ddbb1d12 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Tue, 14 Jan 2025 14:00:56 -0500 Subject: [PATCH 006/467] patch: remove types from react-native assets registry js file --- package.json | 3 + ...react-native__assets-registry@0.76.6.patch | 162 ++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 patches/@react-native__assets-registry@0.76.6.patch diff --git a/package.json b/package.json index c88ca339..e130f20b 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,9 @@ "expo-modules-*", "typescript" ] + }, + "patchedDependencies": { + "@react-native/assets-registry@0.76.6": "patches/@react-native__assets-registry@0.76.6.patch" } }, "prettier": { diff --git a/patches/@react-native__assets-registry@0.76.6.patch b/patches/@react-native__assets-registry@0.76.6.patch new file mode 100644 index 00000000..e02c2a60 --- /dev/null +++ b/patches/@react-native__assets-registry@0.76.6.patch @@ -0,0 +1,162 @@ +diff --git a/path-support.js b/path-support.js +index 7d9388ad12567ba99d1c02650cb25c16a052d3de..60fd378f7950ef3400eada912511c79de192e76b 100644 +--- a/path-support.js ++++ b/path-support.js +@@ -8,17 +8,15 @@ + * @flow strict + */ + +-'use strict'; +- +-import type {PackagerAsset} from './registry.js'; ++"use strict"; + + const androidScaleSuffix = { +- '0.75': 'ldpi', +- '1': 'mdpi', +- '1.5': 'hdpi', +- '2': 'xhdpi', +- '3': 'xxhdpi', +- '4': 'xxxhdpi', ++ "0.75": "ldpi", ++ "1": "mdpi", ++ "1.5": "hdpi", ++ "2": "xhdpi", ++ "3": "xxhdpi", ++ "4": "xxxhdpi", + }; + + const ANDROID_BASE_DENSITY = 160; +@@ -27,7 +25,7 @@ const ANDROID_BASE_DENSITY = 160; + * FIXME: using number to represent discrete scale numbers is fragile in essence because of + * floating point numbers imprecision. + */ +-function getAndroidAssetSuffix(scale: number): string { ++function getAndroidAssetSuffix(scale) { + if (scale.toString() in androidScaleSuffix) { + // $FlowFixMe[invalid-computed-prop] + return androidScaleSuffix[scale.toString()]; +@@ -35,55 +33,52 @@ function getAndroidAssetSuffix(scale: number): string { + // NOTE: Android Gradle Plugin does not fully support the nnndpi format. + // See https://issuetracker.google.com/issues/72884435 + if (Number.isFinite(scale) && scale > 0) { +- return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; ++ return Math.round(scale * ANDROID_BASE_DENSITY) + "dpi"; + } +- throw new Error('no such scale ' + scale.toString()); ++ throw new Error("no such scale " + scale.toString()); + } + + // See https://developer.android.com/guide/topics/resources/drawable-resource.html + const drawableFileTypes = new Set([ +- 'gif', +- 'jpeg', +- 'jpg', +- 'ktx', +- 'png', +- 'svg', +- 'webp', +- 'xml', ++ "gif", ++ "jpeg", ++ "jpg", ++ "ktx", ++ "png", ++ "svg", ++ "webp", ++ "xml", + ]); + +-function getAndroidResourceFolderName( +- asset: PackagerAsset, +- scale: number, +-): string | $TEMPORARY$string<'raw'> { ++function getAndroidResourceFolderName(asset, scale) { + if (!drawableFileTypes.has(asset.type)) { +- return 'raw'; ++ return "raw"; + } + const suffix = getAndroidAssetSuffix(scale); + if (!suffix) { + throw new Error( + "Don't know which android drawable suffix to use for scale: " + + scale + +- '\nAsset: ' + +- JSON.stringify(asset, null, '\t') + +- '\nPossible scales are:' + +- JSON.stringify(androidScaleSuffix, null, '\t'), ++ "\nAsset: " + ++ JSON.stringify(asset, null, "\t") + ++ "\nPossible scales are:" + ++ JSON.stringify(androidScaleSuffix, null, "\t") + ); + } +- return 'drawable-' + suffix; ++ return "drawable-" + suffix; + } + +-function getAndroidResourceIdentifier(asset: PackagerAsset): string { +- return (getBasePath(asset) + '/' + asset.name) ++function getAndroidResourceIdentifier(asset) { ++ return (getBasePath(asset) + "/" + asset.name) + .toLowerCase() +- .replace(/\//g, '_') // Encode folder structure in file name +- .replace(/([^a-z0-9_])/g, '') // Remove illegal chars +- .replace(/^assets_/, ''); // Remove "assets_" prefix ++ .replace(/\//g, "_") // Encode folder structure in file name ++ .replace(/([^a-z0-9_])/g, "") // Remove illegal chars ++ .replace(/^assets_/, ""); // Remove "assets_" prefix + } + +-function getBasePath(asset: PackagerAsset): string { ++function getBasePath(asset) { + const basePath = asset.httpServerLocation; +- return basePath.startsWith('/') ? basePath.slice(1) : basePath; ++ return basePath.startsWith("/") ? basePath.slice(1) : basePath; + } + + module.exports = { +diff --git a/registry.js b/registry.js +index 64b2735d3bb5284bd2450bf0d06115c3de5dcf80..8bf537f37f2d0b877dcf57bf38e17dda3edb47b0 100644 +--- a/registry.js ++++ b/registry.js +@@ -8,34 +8,18 @@ + * @format + */ + +-'use strict'; ++"use strict"; + +-export type AssetDestPathResolver = 'android' | 'generic'; ++const assets = []; + +-export type PackagerAsset = { +- +__packager_asset: boolean, +- +fileSystemLocation: string, +- +httpServerLocation: string, +- +width: ?number, +- +height: ?number, +- +scales: Array, +- +hash: string, +- +name: string, +- +type: string, +- +resolver?: AssetDestPathResolver, +- ... +-}; +- +-const assets: Array = []; +- +-function registerAsset(asset: PackagerAsset): number { ++function registerAsset(asset) { + // `push` returns new array length, so the first asset will + // get id 1 (not 0) to make the value truthy + return assets.push(asset); + } + +-function getAssetByID(assetId: number): PackagerAsset { ++function getAssetByID(assetId) { + return assets[assetId - 1]; + } + +-module.exports = {registerAsset, getAssetByID}; ++module.exports = { registerAsset, getAssetByID }; From 9d50b2efa8b8f2e489ea7ca062cf2f84b1e9cc3f Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Tue, 14 Jan 2025 14:02:02 -0500 Subject: [PATCH 007/467] feat(docs): get reusables working in docs --- apps/docs/app/global.css | 64 ++++++ apps/docs/components/reusables.tsx | 183 ++++++++++++++++++ apps/docs/content/docs/index.mdx | 46 +++++ apps/docs/nativewind-env.d.ts | 1 + apps/docs/next.config.mjs | 69 ++++++- apps/docs/package.json | 24 ++- apps/docs/tailwind.config.js | 73 ++++++- apps/docs/tsconfig.json | 27 ++- .../reusables/src/components/ui/accordion.tsx | 16 +- pnpm-lock.yaml | 55 +++++- 10 files changed, 526 insertions(+), 32 deletions(-) create mode 100644 apps/docs/components/reusables.tsx create mode 100644 apps/docs/nativewind-env.d.ts diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index b5c61c95..799843c2 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -1,3 +1,67 @@ @tailwind base; @tailwind components; @tailwind utilities; + + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 5.9% 10%; + --radius: 0.5rem; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + } + + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } +} \ No newline at end of file diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx new file mode 100644 index 00000000..6c34547b --- /dev/null +++ b/apps/docs/components/reusables.tsx @@ -0,0 +1,183 @@ +'use client'; + +import { Ui } from '@rnr/reusables'; + +export const { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, + Alert, + AlertDescription, + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogOverlay, + AlertDialogPortal, + AlertDialogTitle, + AlertDialogTrigger, + AlertTitle, + AspectRatio, + Avatar, + AvatarFallback, + AvatarImage, + Badge, + BlockQuote, + Button, + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, + Checkbox, + Code, + Collapsible, + CollapsibleContent, + CollapsibleTrigger, + ContextMenu, + ContextMenuCheckboxItem, + ContextMenuContent, + ContextMenuGroup, + ContextMenuItem, + ContextMenuLabel, + ContextMenuRadioGroup, + ContextMenuRadioItem, + ContextMenuSeparator, + ContextMenuShortcut, + ContextMenuSub, + ContextMenuSubContent, + ContextMenuSubTrigger, + ContextMenuTrigger, + DataTable, + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogOverlay, + DialogPortal, + DialogTitle, + DialogTrigger, + DropdownMenu, + DropdownMenuCheckboxItem, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuPortal, + DropdownMenuRadioGroup, + DropdownMenuRadioItem, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, + Form, + FormCheckbox, + FormCombobox, + FormDatePicker, + FormDescription, + FormField, + FormInput, + FormItem, + FormLabel, + FormMessage, + FormRadioGroup, + FormSelect, + FormSwitch, + FormTextarea, + H1, + H2, + H3, + H4, + HoverCard, + HoverCardContent, + HoverCardTrigger, + Input, + Label, + Large, + Lead, + Menubar, + MenubarContent, + MenubarGroup, + MenubarCheckboxItem, + MenubarItem, + MenubarLabel, + MenubarMenu, + MenubarPortal, + MenubarRadioGroup, + MenubarRadioItem, + MenubarSeparator, + MenubarShortcut, + MenubarSub, + MenubarSubContent, + MenubarSubTrigger, + MenubarTrigger, + Muted, + NavigationMenu, + NavigationMenuContent, + NavigationMenuIndicator, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + NavigationMenuViewport, + P, + Popover, + PopoverContent, + PopoverTrigger, + Progress, + RadioGroup, + RadioGroupItem, + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, + Separator, + Skeleton, + Small, + Switch, + Table, + TableBody, + TableCell, + TableFooter, + TableHead, + TableHeader, + TableRow, + Tabs, + TabsContent, + TabsList, + TabsTrigger, + Text, + TextClassContext, + Textarea, + Toggle, + Tooltip, + TooltipContent, + TooltipTrigger, + ToggleGroup, + ToggleGroupIcon, + ToggleGroupItem, + ToggleIcon, + badgeTextVariants, + badgeVariants, + buttonTextVariants, + buttonVariants, + navigationMenuTriggerStyle, + toggleTextVariants, + toggleVariants, + useFormField, +} = Ui; diff --git a/apps/docs/content/docs/index.mdx b/apps/docs/content/docs/index.mdx index 241fa807..ee3a4e4a 100644 --- a/apps/docs/content/docs/index.mdx +++ b/apps/docs/content/docs/index.mdx @@ -3,8 +3,54 @@ title: Introduction description: TODO --- +import { + Button, Text, Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/reusables" + Welcome to the docs! You can start writing documents in `/content/docs`. + + + + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + + + What are universal components? + + + + In the world of React Native, universal components are components that work on both + web and native platforms. + + + + + + Is this component universal? + + + Yes. Try it out on the web, iOS, and/or Android. + + + + ## What is Next? diff --git a/apps/docs/nativewind-env.d.ts b/apps/docs/nativewind-env.d.ts new file mode 100644 index 00000000..a13e3136 --- /dev/null +++ b/apps/docs/nativewind-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 457dcf29..c0a74ed2 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -5,6 +5,73 @@ const withMDX = createMDX(); /** @type {import('next').NextConfig} */ const config = { reactStrictMode: true, + transpilePackages: [ + '@rnr/reusables', + 'react-native', + 'react-native-web', + 'expo', + 'nativewind', + 'react-native-css-interop', + 'react-native-reanimated', + 'react-native-calendars', + 'react-native-swipe-gestures', + 'react-native-toast-message', + ], + experimental: { + forceSwcTransforms: true, + }, }; -export default withMDX(config); +export default withMDX(withExpo(config)); + +// https://github.com/expo/expo-webpack-integrations/blob/main/packages/next-adapter/src/index.ts +function withExpo(nextConfig) { + return { + ...nextConfig, + webpack(config, options) { + // Mix in aliases + if (!config.resolve) { + config.resolve = {}; + } + + config.resolve.alias = { + ...(config.resolve.alias || {}), + // Alias direct react-native imports to react-native-web + 'react-native$': 'react-native-web', + // Alias internal react-native modules to react-native-web + 'react-native/Libraries/EventEmitter/RCTDeviceEventEmitter$': + 'react-native-web/dist/vendor/react-native/NativeEventEmitter/RCTDeviceEventEmitter', + 'react-native/Libraries/vendor/emitter/EventEmitter$': + 'react-native-web/dist/vendor/react-native/emitter/EventEmitter', + 'react-native/Libraries/EventEmitter/NativeEventEmitter$': + 'react-native-web/dist/vendor/react-native/NativeEventEmitter', + }; + + config.resolve.extensions = [ + '.web.js', + '.web.jsx', + '.web.ts', + '.web.tsx', + ...(config.resolve?.extensions ?? []), + ]; + + if (!config.plugins) { + config.plugins = []; + } + + // Expose __DEV__ from Metro. + config.plugins.push( + new options.webpack.DefinePlugin({ + __DEV__: JSON.stringify(process.env.NODE_ENV !== 'production'), + }) + ); + + // Execute the user-defined webpack config. + if (typeof nextConfig.webpack === 'function') { + return nextConfig.webpack(config, options); + } + + return config; + }, + }; +} diff --git a/apps/docs/package.json b/apps/docs/package.json index 5c6aec79..3aadeef3 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -4,28 +4,38 @@ "private": true, "scripts": { "build": "next build", + "clean": "rm -rf .next .source node_modules", "dev": "next dev", "start": "next start", "postinstall": "fumadocs-mdx" }, "dependencies": { - "next": "15.1.3", - "fumadocs-ui": "14.7.2", + "@rnr/reusables": "workspace:*", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.0", "fumadocs-core": "14.7.2", + "fumadocs-mdx": "11.2.3", + "fumadocs-ui": "14.7.2", + "lucide-react": "^0.471.1", + "nativewind": "^4.1.23", + "next": "15.1.3", "react": "18.3.1", "react-dom": "18.3.1", - "fumadocs-mdx": "11.2.3" + "react-native-reanimated": "~3.16.1", + "react-native-svg": "15.8.0", + "react-native-web": "~0.19.13", + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { + "@types/mdx": "^2.0.13", "@types/node": "22.10.5", "@types/react": "~18.3.12", "@types/react-dom": "^18.2.19", - "typescript": "^5.3.3", - "@types/mdx": "^2.0.13", "autoprefixer": "^10.4.20", + "eslint": "^8", + "eslint-config-next": "15.1.3", "postcss": "^8.4.49", "tailwindcss": "^3.4.14", - "eslint": "^8", - "eslint-config-next": "15.1.3" + "typescript": "^5.3.3" } } diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js index 5ca03d86..8b764612 100644 --- a/apps/docs/tailwind.config.js +++ b/apps/docs/tailwind.config.js @@ -1,14 +1,81 @@ -// @ts-check import { createPreset } from 'fumadocs-ui/tailwind-plugin'; /** @type {import('tailwindcss').Config} */ -export default { +const config = { content: [ './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './content/**/*.{md,mdx}', './mdx-components.{ts,tsx}', '../../node_modules/fumadocs-ui/dist/**/*.js', + './node_modules/@rnr/**/*.{ts,tsx}', + ], + presets: [ + // eslint-disable-next-line @typescript-eslint/no-require-imports + require('nativewind/preset'), + createPreset({ + cssPrefix: '', + preset: 'black', + }), + ], + important: 'html', + theme: { + extend: { + colors: { + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + }, + keyframes: { + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + }, + }, + plugins: [ + // eslint-disable-next-line @typescript-eslint/no-require-imports + require('tailwindcss-animate'), ], - presets: [createPreset()], }; + +export default config; diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 755e6448..ce6d3937 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -1,8 +1,13 @@ { "compilerOptions": { + "jsxImportSource": "nativewind", "baseUrl": ".", "target": "ESNext", - "lib": ["dom", "dom.iterable", "esnext"], + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], "allowJs": true, "skipLibCheck": true, "strict": true, @@ -16,14 +21,24 @@ "jsx": "preserve", "incremental": true, "paths": { - "@/*": ["./*"] + "@/*": [ + "./*" + ] }, "plugins": [ { "name": "next" } - ] + ], }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} + "include": [ + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "nativewind-env.d.ts" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index f23c49cb..00e71a95 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -64,13 +64,17 @@ function AccordionTrigger({ }) { const { isExpanded } = AccordionPrimitive.useItemContext(); - const progress = useDerivedValue(() => - isExpanded ? withTiming(1, { duration: 250 }) : withTiming(0, { duration: 200 }) + const progress = useDerivedValue( + () => (isExpanded ? withTiming(1, { duration: 250 }) : withTiming(0, { duration: 200 })), + [isExpanded] + ); + const chevronStyle = useAnimatedStyle( + () => ({ + transform: [{ rotate: `${progress.value * 180}deg` }], + opacity: interpolate(progress.value, [0, 1], [1, 0.8], Extrapolation.CLAMP), + }), + [progress] ); - const chevronStyle = useAnimatedStyle(() => ({ - transform: [{ rotate: `${progress.value * 180}deg` }], - opacity: interpolate(progress.value, [0, 1], [1, 0.8], Extrapolation.CLAMP), - })); return ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e9911f0d..f6a2010e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,11 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +patchedDependencies: + '@react-native/assets-registry@0.76.6': + hash: csy2zsrrdvxe3jh3napj5zo7di + path: patches/@react-native__assets-registry@0.76.6.patch + importers: .: @@ -117,15 +122,30 @@ importers: apps/docs: dependencies: + '@rnr/reusables': + specifier: workspace:* + version: link:../../packages/reusables + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.1 + clsx: + specifier: ^2.1.0 + version: 2.1.1 fumadocs-core: specifier: 14.7.2 - version: 14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) fumadocs-mdx: specifier: 11.2.3 - version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) fumadocs-ui: specifier: 14.7.2 - version: 14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + version: 14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + lucide-react: + specifier: ^0.471.1 + version: 0.471.1(react@18.3.1) + nativewind: + specifier: ^4.1.23 + version: 4.1.23(react-native-reanimated@3.16.6(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.12.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) next: specifier: 15.1.3 version: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -135,6 +155,18 @@ importers: react-dom: specifier: 18.3.1 version: 18.3.1(react@18.3.1) + react-native-reanimated: + specifier: ~3.16.1 + version: 3.16.6(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + react-native-svg: + specifier: 15.8.0 + version: 15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + react-native-web: + specifier: ~0.19.13 + version: 0.19.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.17) devDependencies: '@types/mdx': specifier: ^2.0.13 @@ -5917,6 +5949,11 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lucide-react@0.471.1: + resolution: {integrity: sha512-syOxwPhf62gg2YOsz72HRn+CIpeudFy67AeKnSR8Hn/fIIF4ubhNbRF+pQ2CaJrl+X9Os4PL87z2DXQi3DVeDA==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -13483,7 +13520,7 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@orama/orama': 2.1.1 @@ -13507,7 +13544,7 @@ snapshots: - '@types/react' - supports-color - fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.0) chokidar: 4.0.3 @@ -13515,7 +13552,7 @@ snapshots: esbuild: 0.24.2 estree-util-value-to-estree: 3.2.1 fast-glob: 3.3.2 - fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) gray-matter: 4.0.3 micromatch: 4.0.8 next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13525,7 +13562,7 @@ snapshots: - acorn - supports-color - fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): + fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): dependencies: '@radix-ui/react-accordion': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collapsible': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13537,7 +13574,7 @@ snapshots: '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-tabs': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) class-variance-authority: 0.7.1 - fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash.merge: 4.6.2 lucide-react: 0.469.0(react@18.3.1) next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -14447,7 +14484,7 @@ snapshots: dependencies: react: 19.0.0 - lucide-react@0.469.0(react@18.3.1): + lucide-react@0.471.1(react@18.3.1): dependencies: react: 18.3.1 From 4698836339df04f0504eb14df177dfe7f669e067 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Tue, 14 Jan 2025 14:42:27 -0500 Subject: [PATCH 008/467] feat(docs): add icons in nav bar --- .../{ => bonus}/android-navigation-bar.mdx | 0 .../docs/{ => bonus}/material-top-tabs.mdx | 0 .../content/docs/{ => bonus}/use-keyboard.mdx | 0 apps/docs/content/docs/meta.json | 27 ++++++++++--------- apps/docs/lib/source.ts | 11 +++++++- 5 files changed, 25 insertions(+), 13 deletions(-) rename apps/docs/content/docs/{ => bonus}/android-navigation-bar.mdx (100%) rename apps/docs/content/docs/{ => bonus}/material-top-tabs.mdx (100%) rename apps/docs/content/docs/{ => bonus}/use-keyboard.mdx (100%) diff --git a/apps/docs/content/docs/android-navigation-bar.mdx b/apps/docs/content/docs/bonus/android-navigation-bar.mdx similarity index 100% rename from apps/docs/content/docs/android-navigation-bar.mdx rename to apps/docs/content/docs/bonus/android-navigation-bar.mdx diff --git a/apps/docs/content/docs/material-top-tabs.mdx b/apps/docs/content/docs/bonus/material-top-tabs.mdx similarity index 100% rename from apps/docs/content/docs/material-top-tabs.mdx rename to apps/docs/content/docs/bonus/material-top-tabs.mdx diff --git a/apps/docs/content/docs/use-keyboard.mdx b/apps/docs/content/docs/bonus/use-keyboard.mdx similarity index 100% rename from apps/docs/content/docs/use-keyboard.mdx rename to apps/docs/content/docs/bonus/use-keyboard.mdx diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 09c5c020..1baff6cf 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -5,19 +5,22 @@ "root": true, "pages": [ "---Getting started---", - "index", - "installation", - "icons", - "cli", + "!index", + "!installation", + "!icons", + "!cli", + "[DoorOpen][Introduction](/docs)", + "[FolderDown][Installation](/docs/installation)", + "[Library][Icons](/docs/icons)", + "[SquareTerminal][CLI](/docs/cli)", "---Customization---", - "components-json", - "theming", - "recipes", + "!components-json", + "!theming", + "!recipes", + "[Braces][component.json](/docs/components-json)", + "[Palette][Theming](/docs/theming)", + "[ListOrdered][Recipes](/docs/recipes)", "---Components---", - "...", - "---Bonus---", - "android-navigation-bar", - "material-top-tabs", - "use-keyboard" + "..." ] } diff --git a/apps/docs/lib/source.ts b/apps/docs/lib/source.ts index d786824d..6d0a84d0 100644 --- a/apps/docs/lib/source.ts +++ b/apps/docs/lib/source.ts @@ -1,8 +1,17 @@ import { docs, meta } from '@/.source'; -import { createMDXSource } from 'fumadocs-mdx'; import { loader } from 'fumadocs-core/source'; +import { createMDXSource } from 'fumadocs-mdx'; +import { icons } from 'lucide-react'; +import { createElement } from 'react'; export const source = loader({ baseUrl: '/docs', source: createMDXSource(docs, meta), + icon(icon) { + if (!icon) { + return; + } + + if (icon in icons) return createElement(icons[icon as keyof typeof icons]); + }, }); From 283b0b9a170b66f35ed17ab307bdf5d2139cc765 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Wed, 15 Jan 2025 15:46:36 -0500 Subject: [PATCH 009/467] feat(docs): add raw-loader --- apps/docs/__registry__/content/accordion.ts | 3 + apps/docs/global.d.ts | 4 + apps/docs/next.config.mjs | 1 + apps/docs/package.json | 1 + apps/docs/tsconfig.json | 3 +- pnpm-lock.yaml | 162 ++++++++++++++++++++ 6 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 apps/docs/__registry__/content/accordion.ts create mode 100644 apps/docs/global.d.ts diff --git a/apps/docs/__registry__/content/accordion.ts b/apps/docs/__registry__/content/accordion.ts new file mode 100644 index 00000000..94bce603 --- /dev/null +++ b/apps/docs/__registry__/content/accordion.ts @@ -0,0 +1,3 @@ +import Content from '!!raw-loader!@rnr/reusables/components/ui/accordion'; + +export default Content; diff --git a/apps/docs/global.d.ts b/apps/docs/global.d.ts new file mode 100644 index 00000000..1ee41bdb --- /dev/null +++ b/apps/docs/global.d.ts @@ -0,0 +1,4 @@ +declare module '!!raw-loader!*' { + const content: string; + export default content; +} diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index c0a74ed2..77494002 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -5,6 +5,7 @@ const withMDX = createMDX(); /** @type {import('next').NextConfig} */ const config = { reactStrictMode: true, + pageExtensions: ['js', 'jsx', 'mdx', 'ts', 'tsx'], transpilePackages: [ '@rnr/reusables', 'react-native', diff --git a/apps/docs/package.json b/apps/docs/package.json index 3aadeef3..83b22972 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -35,6 +35,7 @@ "eslint": "^8", "eslint-config-next": "15.1.3", "postcss": "^8.4.49", + "raw-loader": "^4.0.2", "tailwindcss": "^3.4.14", "typescript": "^5.3.3" } diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index ce6d3937..60228d35 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -36,7 +36,8 @@ "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", - "nativewind-env.d.ts" + "nativewind-env.d.ts", + "global.d.ts" ], "exclude": [ "node_modules" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f6a2010e..68fb3aec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -149,6 +149,9 @@ importers: next: specifier: 15.1.3 version: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + raw-loader: + specifier: ^4.0.2 + version: 4.0.2(webpack@5.97.1) react: specifier: 18.3.1 version: 18.3.1 @@ -3568,6 +3571,12 @@ packages: '@types/diff@5.2.3': resolution: {integrity: sha512-K0Oqlrq3kQMaO2RhfrNQX5trmt+XLyom88zS0u84nnIcLvFnRUMRRHmrGny5GSM+kNO9IZLARsdQHDzkhAgmrQ==} + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -3789,6 +3798,11 @@ packages: ajv: optional: true + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + ajv-keywords@5.1.0: resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: @@ -4062,6 +4076,9 @@ packages: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -4224,6 +4241,10 @@ packages: engines: {node: '>=12.13.0'} hasBin: true + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + chromium-edge-launcher@0.2.0: resolution: {integrity: sha512-JfJjUnq25y9yg4FABRRVPmBGWPZZi+AQXT4mxupb67766/0UlhG8PAZCz6xzEMXTbW3CsSoE8PcCWA49n35mKg==} @@ -4594,6 +4615,10 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -4764,6 +4789,10 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4799,6 +4828,10 @@ packages: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -4841,6 +4874,10 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + exec-async@2.2.0: resolution: {integrity: sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==} @@ -5196,6 +5233,9 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -5618,6 +5658,10 @@ packages: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + jest-worker@29.7.0: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6812,10 +6856,19 @@ packages: queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + range-parser@1.2.1: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + raw-loader@4.0.2: + resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -7302,6 +7355,9 @@ packages: resolution: {integrity: sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==} engines: {node: '>=0.10.0'} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serve-static@1.16.2: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} @@ -8201,6 +8257,10 @@ packages: warn-once@0.1.1: resolution: {integrity: sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q==} + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} @@ -8224,6 +8284,20 @@ packages: resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} engines: {node: '>=8'} + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.97.1: + resolution: {integrity: sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} @@ -11614,6 +11688,16 @@ snapshots: '@types/diff@5.2.3': {} + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.6 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.7 @@ -11849,6 +11933,10 @@ snapshots: optionalDependencies: ajv: 8.17.1 + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + ajv-keywords@5.1.0(ajv@8.17.1): dependencies: ajv: 8.17.1 @@ -12265,6 +12353,8 @@ snapshots: big-integer@1.6.52: {} + big.js@5.2.2: {} + binary-extensions@2.3.0: {} bindings@1.5.0: @@ -12433,6 +12523,8 @@ snapshots: transitivePeerDependencies: - supports-color + chrome-trace-event@1.0.4: {} + chromium-edge-launcher@0.2.0: dependencies: '@types/node': 22.15.21 @@ -12767,6 +12859,8 @@ snapshots: emoji-regex@9.2.2: {} + emojis-list@3.0.0: {} + encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -13075,6 +13169,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 @@ -13143,6 +13242,8 @@ snapshots: dependencies: estraverse: 5.3.0 + estraverse@4.3.0: {} + estraverse@5.3.0: {} estree-util-attach-comments@3.0.0: @@ -13190,6 +13291,8 @@ snapshots: eventemitter3@5.0.1: {} + events@3.3.0: {} + exec-async@2.2.0: {} execa@5.1.1: @@ -13624,6 +13727,8 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + glob@10.4.5: dependencies: foreground-child: 3.3.1 @@ -14223,6 +14328,12 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 + jest-worker@27.5.1: + dependencies: + '@types/node': 22.10.5 + merge-stream: 2.0.0 + supports-color: 8.1.1 + jest-worker@29.7.0: dependencies: '@types/node': 22.15.21 @@ -15738,8 +15849,18 @@ snapshots: dependencies: inherits: 2.0.4 + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + range-parser@1.2.1: {} + raw-loader@4.0.2(webpack@5.97.1): + dependencies: + loader-utils: 2.0.4 + schema-utils: 3.3.0 + webpack: 5.97.1 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -16448,6 +16569,10 @@ snapshots: serialize-error@2.1.0: {} + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + serve-static@1.16.2: dependencies: encodeurl: 2.0.0 @@ -17394,6 +17519,11 @@ snapshots: warn-once@0.1.1: {} + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + wcwidth@1.0.1: dependencies: defaults: 1.0.4 @@ -17410,6 +17540,38 @@ snapshots: webidl-conversions@5.0.0: {} + webpack-sources@3.2.3: {} + + webpack@5.97.1: + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.14.0 + browserslist: 4.24.3 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.0 + es-module-lexer: 1.6.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.11(webpack@5.97.1) + watchpack: 2.4.2 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + whatwg-fetch@3.6.20: {} whatwg-url-without-unicode@8.0.0-3: From 216b3389c5eef6d66903dbb6ec441f9be965ea40 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Wed, 15 Jan 2025 15:47:08 -0500 Subject: [PATCH 010/467] feat(docs): add accordion poc --- .../content/docs/(components)/accordion.mdx | 72 +++++++++++++++++++ apps/docs/content/docs/meta.json | 2 + apps/docs/tailwind.config.js | 1 - 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/docs/(components)/accordion.mdx diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx new file mode 100644 index 00000000..b0ad67c6 --- /dev/null +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -0,0 +1,72 @@ +--- +title: Accordion +description: A vertically stacked set of interactive headings that each reveal a section of content. +--- + +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, + Text, +} from "@/components/reusables" + +import { Tabs, Tab } from 'fumadocs-ui/components/tabs'; +import { Pre, CodeBlock } from 'fumadocs-ui/components/codeblock'; +import AccordionCodeContent from '@/__registry__/content/accordion'; + + + + +
+ + + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + + + What are universal components? + + + + In the world of React Native, universal components are components that work on both + web and native platforms. + + + + + + Is this component universal? + + + Yes. Try it out on the web, iOS, and/or Android. + + + + +
+ + ```tsx + // Code is code + ``` + +
+ + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 1baff6cf..79bf8724 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -21,6 +21,8 @@ "[Palette][Theming](/docs/theming)", "[ListOrdered][Recipes](/docs/recipes)", "---Components---", + "!/(components)", + ".../(components)", "..." ] } diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js index 8b764612..b91ebe43 100644 --- a/apps/docs/tailwind.config.js +++ b/apps/docs/tailwind.config.js @@ -14,7 +14,6 @@ const config = { // eslint-disable-next-line @typescript-eslint/no-require-imports require('nativewind/preset'), createPreset({ - cssPrefix: '', preset: 'black', }), ], From b818c6f3f8bfabe4b07b1a627002b570eab7c9b8 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 17 Jan 2025 17:25:46 -0500 Subject: [PATCH 011/467] feat(docs): mvp accordion needs refactor --- apps/docs/__registry__/content.ts | 5 + apps/docs/__registry__/content/accordion.ts | 3 - apps/docs/app/docs/[[...slug]]/page.tsx | 43 ++- apps/docs/app/global.css | 54 ++-- apps/docs/app/layout.config.tsx | 8 + apps/docs/components.json | 21 ++ apps/docs/components/command-tabs.tsx | 29 ++ apps/docs/components/copy-button.tsx | 69 +++++ apps/docs/components/ui-icon.tsx | 35 +++ apps/docs/components/ui/button.tsx | 56 ++++ apps/docs/components/ui/section-tabs.tsx | 62 ++++ .../content/docs/(components)/accordion.mdx | 271 ++++++++++++++++-- apps/docs/content/docs/bonus/index.mdx | 13 + apps/docs/lib/utils.ts | 6 + apps/docs/package.json | 9 +- apps/docs/source.config.ts | 13 +- apps/docs/tailwind.config.js | 125 ++++---- pnpm-lock.yaml | 159 +++++++++- 18 files changed, 848 insertions(+), 133 deletions(-) create mode 100644 apps/docs/__registry__/content.ts delete mode 100644 apps/docs/__registry__/content/accordion.ts create mode 100644 apps/docs/components.json create mode 100644 apps/docs/components/command-tabs.tsx create mode 100644 apps/docs/components/copy-button.tsx create mode 100644 apps/docs/components/ui-icon.tsx create mode 100644 apps/docs/components/ui/button.tsx create mode 100644 apps/docs/components/ui/section-tabs.tsx create mode 100644 apps/docs/content/docs/bonus/index.mdx create mode 100644 apps/docs/lib/utils.ts diff --git a/apps/docs/__registry__/content.ts b/apps/docs/__registry__/content.ts new file mode 100644 index 00000000..f20a465a --- /dev/null +++ b/apps/docs/__registry__/content.ts @@ -0,0 +1,5 @@ +import Accordion from '!!raw-loader!@rnr/reusables/components/ui/accordion'; + +export const content = { + Accordion, +}; diff --git a/apps/docs/__registry__/content/accordion.ts b/apps/docs/__registry__/content/accordion.ts deleted file mode 100644 index 94bce603..00000000 --- a/apps/docs/__registry__/content/accordion.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Content from '!!raw-loader!@rnr/reusables/components/ui/accordion'; - -export default Content; diff --git a/apps/docs/app/docs/[[...slug]]/page.tsx b/apps/docs/app/docs/[[...slug]]/page.tsx index 23cd442f..8b09e09e 100644 --- a/apps/docs/app/docs/[[...slug]]/page.tsx +++ b/apps/docs/app/docs/[[...slug]]/page.tsx @@ -1,16 +1,11 @@ import { source } from '@/lib/source'; -import { - DocsPage, - DocsBody, - DocsDescription, - DocsTitle, -} from 'fumadocs-ui/page'; +import { DocsPage, DocsBody, DocsDescription, DocsTitle } from 'fumadocs-ui/page'; import { notFound } from 'next/navigation'; import defaultMdxComponents from 'fumadocs-ui/mdx'; +import { cn } from '@/lib/utils'; +import { Pre, CodeBlock } from 'fumadocs-ui/components/codeblock'; -export default async function Page(props: { - params: Promise<{ slug?: string[] }>; -}) { +export default async function Page(props: { params: Promise<{ slug?: string[] }> }) { const params = await props.params; const page = source.getPage(params.slug); if (!page) notFound(); @@ -19,10 +14,30 @@ export default async function Page(props: { return ( - {page.data.title} - {page.data.description} - + {page.data.title} + {page.data.description} + ( + +
{props.children}
+
+ ), + h3: ({ className, ...props }) => ( +

+ ), + }} + /> ); @@ -32,9 +47,7 @@ export async function generateStaticParams() { return source.generateParams(); } -export async function generateMetadata(props: { - params: Promise<{ slug?: string[] }>; -}) { +export async function generateMetadata(props: { params: Promise<{ slug?: string[] }> }) { const params = await props.params; const page = source.getPage(params.slug); if (!page) notFound(); diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index 799843c2..3a55b82c 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -6,24 +6,24 @@ @layer base { :root { --background: 0 0% 100%; - --foreground: 240 10% 3.9%; + --foreground: 0 0% 3.9%; --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; + --card-foreground: 0 0% 3.9%; --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 5.9% 10%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; --radius: 0.5rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; @@ -33,25 +33,25 @@ } .dark { - --background: 240 10% 3.9%; + --background: 0 0% 3.9%; --foreground: 0 0% 98%; - --card: 240 10% 3.9%; + --card: 0 0% 3.9%; --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; + --popover: 0 0% 3.9%; --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; --accent-foreground: 0 0% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; @@ -64,4 +64,8 @@ * { @apply border-border; } -} \ No newline at end of file + body { + @apply font-sans antialiased; + } +} + diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx index 58e76333..18305df1 100644 --- a/apps/docs/app/layout.config.tsx +++ b/apps/docs/app/layout.config.tsx @@ -1,3 +1,4 @@ +import { UiIcon } from '@/components/ui-icon'; import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; /** @@ -12,6 +13,13 @@ export const baseOptions: BaseLayoutProps = { title:
Logo
, }, links: [ + { + text: 'shadcn/ui', + url: 'https://ui.shadcn.com/', + icon: , + external: true, + on: 'menu', + }, { text: 'rn-primitives', url: 'https://rnprimitives.com', diff --git a/apps/docs/components.json b/apps/docs/components.json new file mode 100644 index 00000000..72b3fcdf --- /dev/null +++ b/apps/docs/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "tailwind.config.js", + "css": "app/global.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/apps/docs/components/command-tabs.tsx b/apps/docs/components/command-tabs.tsx new file mode 100644 index 00000000..62851e3e --- /dev/null +++ b/apps/docs/components/command-tabs.tsx @@ -0,0 +1,29 @@ +import { CodeBlock, Pre } from 'fumadocs-ui/components/codeblock'; +import { Tab, Tabs } from 'fumadocs-ui/components/tabs'; + +const MANAGERS = ['pnpm', 'npm', 'yarn', 'bun'] as const; + +const COMMAND: Record<(typeof MANAGERS)[number], string[]> = { + pnpm: ['pnpm', 'dlx'], + npm: ['npx'], + yarn: ['npx'], + bun: ['bunx', '--bun'], +}; + +export function CommandTabs({ args }: { args: string[] }) { + return ( +
+ + {MANAGERS.map((manager) => ( + + +
+                {[...COMMAND[manager], '@react-native-reusables', ...args].join(' ')}
+              
+
+
+ ))} +
+
+ ); +} diff --git a/apps/docs/components/copy-button.tsx b/apps/docs/components/copy-button.tsx new file mode 100644 index 00000000..286ea779 --- /dev/null +++ b/apps/docs/components/copy-button.tsx @@ -0,0 +1,69 @@ +'use client'; + +// This project uses code from fumadocs. +// The code is licensed under the MIT License. +// https://github.com/fuma-nama/fumadocs + +import { cn } from '@/lib/utils'; +import { CheckIcon, CopyIcon } from 'lucide-react'; +import * as React from 'react'; +import { buttonVariants } from './ui/button'; + +export function CopyButton({ + className, + content, + ...props +}: React.ButtonHTMLAttributes & { + content: string; +}): React.ReactElement { + const onCopy = React.useCallback(() => { + void navigator.clipboard.writeText(content ?? ''); + }, [content]); + const [checked, onClick] = useCopyButton(onCopy); + + return ( + + ); +} + +function useCopyButton(onCopy: () => void): [checked: boolean, onClick: React.MouseEventHandler] { + const [checked, setChecked] = React.useState(false); + const timeoutRef = React.useRef(null); + const callbackRef = React.useRef(onCopy); + callbackRef.current = onCopy; + + const onClick: React.MouseEventHandler = React.useCallback(() => { + if (timeoutRef.current) window.clearTimeout(timeoutRef.current); + timeoutRef.current = window.setTimeout(() => { + setChecked(false); + }, 1500); + callbackRef.current(); + setChecked(true); + }, []); + + // Avoid updates after being unmounted + React.useEffect(() => { + return () => { + if (timeoutRef.current) window.clearTimeout(timeoutRef.current); + }; + }, []); + + return [checked, onClick]; +} diff --git a/apps/docs/components/ui-icon.tsx b/apps/docs/components/ui-icon.tsx new file mode 100644 index 00000000..32bf7137 --- /dev/null +++ b/apps/docs/components/ui-icon.tsx @@ -0,0 +1,35 @@ +import { cn } from '@/lib/utils'; + +export function UiIcon({ className }: { className?: string }) { + return ( + + + + + + ); +} diff --git a/apps/docs/components/ui/button.tsx b/apps/docs/components/ui/button.tsx new file mode 100644 index 00000000..36496a28 --- /dev/null +++ b/apps/docs/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/apps/docs/components/ui/section-tabs.tsx b/apps/docs/components/ui/section-tabs.tsx new file mode 100644 index 00000000..5ebbbdef --- /dev/null +++ b/apps/docs/components/ui/section-tabs.tsx @@ -0,0 +1,62 @@ +'use client'; + +import * as React from 'react'; +import * as TabsPrimitive from '@radix-ui/react-tabs'; + +import { cn } from '@/lib/utils'; + +const SectionTabs = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); + +SectionTabs.displayName = TabsPrimitive.Root.displayName; + +const SectionTabsList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SectionTabsList.displayName = TabsPrimitive.List.displayName; + +const SectionTabsTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SectionTabsTrigger.displayName = TabsPrimitive.Trigger.displayName; + +const SectionTabsContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +SectionTabsContent.displayName = TabsPrimitive.Content.displayName; + +export { SectionTabs, SectionTabsList, SectionTabsTrigger, SectionTabsContent }; diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index b0ad67c6..37e5c373 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -11,35 +11,96 @@ import { Text, } from "@/components/reusables" -import { Tabs, Tab } from 'fumadocs-ui/components/tabs'; +import { Tab, Tabs, TabContent } from 'fumadocs-ui/components/tabs' import { Pre, CodeBlock } from 'fumadocs-ui/components/codeblock'; -import AccordionCodeContent from '@/__registry__/content/accordion'; +import { ExternalLinkIcon } from "lucide-react" +import accordion from '!!raw-loader!@rnr/reusables/components/ui/accordion'; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/ui/section-tabs" +import { CopyButton } from "@/components/copy-button" +import { Step, Steps } from 'fumadocs-ui/components/steps'; +import { CommandTabs } from "@/components/command-tabs" - - -
+ - + + Preview + Code + + +
+ + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + + + What are universal components? + + + + In the world of React Native, universal components are components that work on both + web and native platforms. + + + + + + Is this component universal? + + + Yes. Try it out on the web, iOS, and/or Android. + + + + ) +}`}/> + - Is it accessible? + Is it accessible? - Yes. It adheres to the WAI-ARIA design pattern. + Yes. It adheres to the WAI-ARIA design pattern. - What are universal components? + What are universal components? - + In the world of React Native, universal components are components that work on both web and native platforms. @@ -47,26 +108,178 @@ import AccordionCodeContent from '@/__registry__/content/accordion'; - Is this component universal? + Is this component universal? - Yes. Try it out on the web, iOS, and/or Android. + Yes. Try it out on the web, iOS, and/or Android. - -
- - ```tsx - // Code is code - ``` - - - - -## What is Next? - - - - - +
+ + +```tsx +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '~/components/ui/accordion'; +import { Text } from '~/components/ui/text'; + +export function AccordionDemo() { + return ( + + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + + + What are universal components? + + + + In the world of React Native, universal components are components that work on both + web and native platforms. + + + + + + Is this component universal? + + + Yes. Try it out on the web, iOS, and/or Android. + + + + ) +} +``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + + +#### Install the following dependency: + + ``` + npx expo install @rn-primitives/accordion + ``` + + + + + +#### Copy and paste the following code into your project. + + ```json doc-gen:file +{ + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } +} +``` + +```json doc-gen:file +{ + "file": "./node_modules/@rnr/reusables/src/components/ui/accordion.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/accordion.tsx\"" + } +} +``` + + + + + +#### Update the import paths to match your project setup. + + + + +#### Update `tailwind.config.js` + +Add the following animations to your tailwind.config.js file: + +```js title="tailwind.config.js" +/** @type {import('tailwindcss').Config} */ +module.exports = { + theme: { + extend: { + keyframes: { + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + }, + }, +} +``` + + + + + + +### Usage + +```tsx +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '~/components/ui/accordion'; +import { Text } from '~/components/ui/text'; +``` + +```tsx + + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + +``` diff --git a/apps/docs/content/docs/bonus/index.mdx b/apps/docs/content/docs/bonus/index.mdx new file mode 100644 index 00000000..f49ad8fd --- /dev/null +++ b/apps/docs/content/docs/bonus/index.mdx @@ -0,0 +1,13 @@ +--- +title: Bonus +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/lib/utils.ts b/apps/docs/lib/utils.ts new file mode 100644 index 00000000..bd0c391d --- /dev/null +++ b/apps/docs/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/apps/docs/package.json b/apps/docs/package.json index 83b22972..52ddd081 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -10,10 +10,13 @@ "postinstall": "fumadocs-mdx" }, "dependencies": { + "@radix-ui/react-slot": "^1.0.2", + "@radix-ui/react-tabs": "^1.1.2", "@rnr/reusables": "workspace:*", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", "fumadocs-core": "14.7.2", + "fumadocs-docgen": "^1.3.4", "fumadocs-mdx": "11.2.3", "fumadocs-ui": "14.7.2", "lucide-react": "^0.471.1", @@ -24,6 +27,8 @@ "react-native-reanimated": "~3.16.1", "react-native-svg": "15.8.0", "react-native-web": "~0.19.13", + "remark-variables": "^1.4.9", + "tailwind-merge": "^2.2.1", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { diff --git a/apps/docs/source.config.ts b/apps/docs/source.config.ts index 8dc21074..de08d6e0 100644 --- a/apps/docs/source.config.ts +++ b/apps/docs/source.config.ts @@ -1,7 +1,16 @@ -import { defineDocs, defineConfig } from 'fumadocs-mdx/config'; +import { fileGenerator, remarkDocGen } from 'fumadocs-docgen'; +import { defineConfig, defineDocs } from 'fumadocs-mdx/config'; export const { docs, meta } = defineDocs({ dir: 'content/docs', }); -export default defineConfig(); +export default defineConfig({ + mdxOptions: { + rehypeCodeOptions: { + themes: { light: 'github-dark-default', dark: 'github-dark-default' }, + theme: 'github-dark-default', + }, + remarkPlugins: [[remarkDocGen, { generators: [fileGenerator()] }]], + }, +}); diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js index b91ebe43..31d66824 100644 --- a/apps/docs/tailwind.config.js +++ b/apps/docs/tailwind.config.js @@ -2,7 +2,8 @@ import { createPreset } from 'fumadocs-ui/tailwind-plugin'; /** @type {import('tailwindcss').Config} */ const config = { - content: [ + darkMode: ['class'], + content: [ './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './content/**/*.{md,mdx}', @@ -19,57 +20,77 @@ const config = { ], important: 'html', theme: { - extend: { - colors: { - border: 'hsl(var(--border))', - input: 'hsl(var(--input))', - ring: 'hsl(var(--ring))', - background: 'hsl(var(--background))', - foreground: 'hsl(var(--foreground))', - primary: { - DEFAULT: 'hsl(var(--primary))', - foreground: 'hsl(var(--primary-foreground))', - }, - secondary: { - DEFAULT: 'hsl(var(--secondary))', - foreground: 'hsl(var(--secondary-foreground))', - }, - destructive: { - DEFAULT: 'hsl(var(--destructive))', - foreground: 'hsl(var(--destructive-foreground))', - }, - muted: { - DEFAULT: 'hsl(var(--muted))', - foreground: 'hsl(var(--muted-foreground))', - }, - accent: { - DEFAULT: 'hsl(var(--accent))', - foreground: 'hsl(var(--accent-foreground))', - }, - popover: { - DEFAULT: 'hsl(var(--popover))', - foreground: 'hsl(var(--popover-foreground))', - }, - card: { - DEFAULT: 'hsl(var(--card))', - foreground: 'hsl(var(--card-foreground))', - }, - }, - keyframes: { - 'accordion-down': { - from: { height: '0' }, - to: { height: 'var(--radix-accordion-content-height)' }, - }, - 'accordion-up': { - from: { height: 'var(--radix-accordion-content-height)' }, - to: { height: '0' }, - }, - }, - animation: { - 'accordion-down': 'accordion-down 0.2s ease-out', - 'accordion-up': 'accordion-up 0.2s ease-out', - }, - }, + extend: { + colors: { + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))' + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))' + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))' + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))' + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))' + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))' + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))' + }, + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))' + } + }, + keyframes: { + 'accordion-down': { + from: { + height: '0' + }, + to: { + height: 'var(--radix-accordion-content-height)' + } + }, + 'accordion-up': { + from: { + height: 'var(--radix-accordion-content-height)' + }, + to: { + height: '0' + } + } + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out' + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)' + } + } }, plugins: [ // eslint-disable-next-line @typescript-eslint/no-require-imports diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 68fb3aec..feef783f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -122,18 +122,27 @@ importers: apps/docs: dependencies: + '@radix-ui/react-slot': + specifier: ^1.0.2 + version: 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-tabs': + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@rnr/reusables': specifier: workspace:* version: link:../../packages/reusables class-variance-authority: - specifier: ^0.7.0 + specifier: ^0.7.1 version: 0.7.1 clsx: - specifier: ^2.1.0 + specifier: ^2.1.1 version: 2.1.1 fumadocs-core: specifier: 14.7.2 version: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-docgen: + specifier: ^1.3.4 + version: 1.3.4(typescript@5.7.2) fumadocs-mdx: specifier: 11.2.3 version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) @@ -149,9 +158,6 @@ importers: next: specifier: 15.1.3 version: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - raw-loader: - specifier: ^4.0.2 - version: 4.0.2(webpack@5.97.1) react: specifier: 18.3.1 version: 18.3.1 @@ -167,6 +173,12 @@ importers: react-native-web: specifier: ~0.19.13 version: 0.19.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + remark-variables: + specifier: ^1.4.9 + version: 1.4.9 + tailwind-merge: + specifier: ^2.2.1 + version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) @@ -195,6 +207,9 @@ importers: postcss: specifier: ^8.4.49 version: 8.4.49 + raw-loader: + specifier: ^4.0.2 + version: 4.0.2(webpack@5.97.1) tailwindcss: specifier: ^3.4.14 version: 3.4.17 @@ -2254,6 +2269,46 @@ packages: '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@oxc-transform/binding-darwin-arm64@0.43.0': + resolution: {integrity: sha512-RqqhTftyG9LwHdZ4v3YkJBMgZSI7BQp5qWpJQYCChVRVLOJjNtF1Oq5J/rKiqmntvSrWGrJHUeYQtOJnrlMb6g==} + cpu: [arm64] + os: [darwin] + + '@oxc-transform/binding-darwin-x64@0.43.0': + resolution: {integrity: sha512-Iw2a/uWWbeetxS8KplRBD2PnWcwATd/Yy/nIu7rQ0SopZxEoSA/qHZiTIztMcF/jOKJlgo/rhDtjASzD+hW/nw==} + cpu: [x64] + os: [darwin] + + '@oxc-transform/binding-linux-arm64-gnu@0.43.0': + resolution: {integrity: sha512-4mZg+lntLUStu/2qmpGE7Mqj3eTnBvcezXa4M1pBHtkRCA03bhLJ/Xv7e9Tknpv8joazxftCHSr0BSASdMlhPg==} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-arm64-musl@0.43.0': + resolution: {integrity: sha512-+0JxQ9IJNB4bvIWyy0EViRnwikeCo0FctejWW2lg7Mqh7z24uu0oQ1DDAb9plFeiJMmrytStpXEq3/92/GdqUA==} + cpu: [arm64] + os: [linux] + + '@oxc-transform/binding-linux-x64-gnu@0.43.0': + resolution: {integrity: sha512-he9LbBfZZAPnAJRgbdOQYnlD6dENryVtUCSLqUy0vkVCgRGvw6Y4KPdFNEFQYDDAlFpL0VPolQkuR+IUEaUXSQ==} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-linux-x64-musl@0.43.0': + resolution: {integrity: sha512-CLsXVSKhnjnr67PVrbNhvBLfR1yq6O9gUjZuYR0Y9vUi92f575r9PNVIsR00DMbog3q7sW/og4oTd5sqms22ug==} + cpu: [x64] + os: [linux] + + '@oxc-transform/binding-win32-arm64-msvc@0.43.0': + resolution: {integrity: sha512-xbvSsbV32y62N5APQ14SuzIdLPHryMIdLQ1tRoH43kfZcWqi2qeWtgZX/hUnxh3vM9h0sfspXl4S2ohi5q3glw==} + cpu: [arm64] + os: [win32] + + '@oxc-transform/binding-win32-x64-msvc@0.43.0': + resolution: {integrity: sha512-rUEUaGIFkcgPAKDvpTQ2o18KWAinLJS6T2TDQMNrS5RYH4u1k7+d9lUCno/f8xbYMnP/AKO3F17HzcvL6U75qg==} + cpu: [x64] + os: [win32] + '@pagefind/darwin-arm64@1.3.0': resolution: {integrity: sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==} cpu: [arm64] @@ -3547,6 +3602,9 @@ packages: '@ts-morph/common@0.19.0': resolution: {integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==} + '@ts-morph/common@0.25.0': + resolution: {integrity: sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==} + '@tsconfig/recommended@1.0.8': resolution: {integrity: sha512-TotjFaaXveVUdsrXCdalyF6E5RyG6+7hHHQVZonQtdlk1rJZ1myDIvPUUKPhoYv+JAzThb2lQJh9+9ZfF46hsA==} @@ -3646,6 +3704,9 @@ packages: '@types/node@22.10.5': resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/node@22.8.1': + resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==} + '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} @@ -4300,6 +4361,9 @@ packages: code-block-writer@12.0.0: resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + code-block-writer@13.0.3: + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -5163,6 +5227,9 @@ packages: react-dom: optional: true + fumadocs-docgen@1.3.4: + resolution: {integrity: sha512-NL/ZXxckbAE4J6rXP4gGQTUQtX3P+rv0dM+XUAhWgWItuL9Z3fzVsY3e4wWpYnp0TpHRySYnNg3RcbSmovrFyQ==} + fumadocs-mdx@11.2.3: resolution: {integrity: sha512-2+EBHe85NT0JpSldaEi8rUwsGb/0ZL7+3bsmckeqbJbb5rS3Ugmws05tp90yEAORt+G6TdHC0/xeQKUfFfgoGw==} hasBin: true @@ -5170,6 +5237,11 @@ packages: fumadocs-core: ^14.0.0 next: 14.x.x || 15.x.x + fumadocs-typescript@3.0.2: + resolution: {integrity: sha512-SqYJy+NxjjuQQeom7wLpODYiWtIKWfndguHL3XKXaMUvhlsjmsWWTaXJWKaqIfOStiYJQlGWrXxFA2Rrpbx63Q==} + peerDependencies: + typescript: '*' + fumadocs-ui@14.7.2: resolution: {integrity: sha512-cUanyDh9yBEKhePvaJQ9vzcAXeQ3zSeytLzzolXOazr12W1XsNTfeukr9xwXkj0PHdHV6FDrFdbS/G77E3eMOg==} peerDependencies: @@ -6463,6 +6535,10 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-to-yarn@3.0.1: + resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -7744,6 +7820,9 @@ packages: ts-morph@18.0.0: resolution: {integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==} + ts-morph@24.0.0: + resolution: {integrity: sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==} + ts-object-utils@0.0.5: resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==} @@ -10247,6 +10326,30 @@ snapshots: '@oslojs/encoding@1.1.0': {} + '@oxc-transform/binding-darwin-arm64@0.43.0': + optional: true + + '@oxc-transform/binding-darwin-x64@0.43.0': + optional: true + + '@oxc-transform/binding-linux-arm64-gnu@0.43.0': + optional: true + + '@oxc-transform/binding-linux-arm64-musl@0.43.0': + optional: true + + '@oxc-transform/binding-linux-x64-gnu@0.43.0': + optional: true + + '@oxc-transform/binding-linux-x64-musl@0.43.0': + optional: true + + '@oxc-transform/binding-win32-arm64-msvc@0.43.0': + optional: true + + '@oxc-transform/binding-win32-x64-msvc@0.43.0': + optional: true + '@pagefind/darwin-arm64@1.3.0': optional: true @@ -11657,6 +11760,12 @@ snapshots: mkdirp: 2.1.6 path-browserify: 1.0.1 + '@ts-morph/common@0.25.0': + dependencies: + minimatch: 9.0.5 + path-browserify: 1.0.1 + tinyglobby: 0.2.10 + '@tsconfig/recommended@1.0.8': {} '@types/babel__core@7.20.5': @@ -11773,6 +11882,10 @@ snapshots: dependencies: undici-types: 6.20.0 + '@types/node@22.8.1': + dependencies: + undici-types: 6.19.8 + '@types/parse5@6.0.3': {} '@types/prompts@2.4.9': @@ -12576,6 +12689,8 @@ snapshots: code-block-writer@12.0.0: {} + code-block-writer@13.0.3: {} + collapse-white-space@2.1.0: {} color-convert@1.9.3: @@ -13647,6 +13762,19 @@ snapshots: - '@types/react' - supports-color + fumadocs-docgen@1.3.4(typescript@5.7.2): + dependencies: + estree-util-value-to-estree: 3.2.1 + fumadocs-typescript: 3.0.2(typescript@5.7.2) + hast-util-to-estree: 3.1.0 + npm-to-yarn: 3.0.1 + oxc-transform: 0.43.0 + unist-util-visit: 5.0.0 + zod: 3.24.1 + transitivePeerDependencies: + - supports-color + - typescript + fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.0) @@ -13665,6 +13793,20 @@ snapshots: - acorn - supports-color + fumadocs-typescript@3.0.2(typescript@5.7.2): + dependencies: + '@types/node': 22.8.1 + fast-glob: 3.3.2 + hast-util-to-jsx-runtime: 2.3.2 + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm: 3.0.0 + mdast-util-to-hast: 13.2.0 + shiki: 1.26.1 + ts-morph: 24.0.0 + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): dependencies: '@radix-ui/react-accordion': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -15422,6 +15564,8 @@ snapshots: dependencies: path-key: 4.0.0 + npm-to-yarn@3.0.1: {} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -17029,6 +17173,11 @@ snapshots: '@ts-morph/common': 0.19.0 code-block-writer: 12.0.0 + ts-morph@24.0.0: + dependencies: + '@ts-morph/common': 0.25.0 + code-block-writer: 13.0.3 + ts-object-utils@0.0.5: {} tsconfck@3.1.6(typescript@5.8.3): From 001889e584f56190f7f8f3689e08bdf3ee6d8e09 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 17 Jan 2025 22:26:21 -0500 Subject: [PATCH 012/467] feat(docs): complete accordion --- apps/docs/__registry__/content.ts | 5 - apps/docs/components/external-links.tsx | 27 ++ .../docs/components/{ui => }/section-tabs.tsx | 0 .../content/docs/(components)/accordion.mdx | 355 +++++++----------- apps/docs/lib/file-generator.ts | 64 ++++ apps/docs/previews/accordion.tsx | 41 ++ apps/docs/source.config.ts | 3 +- apps/docs/tsconfig.json | 5 +- 8 files changed, 269 insertions(+), 231 deletions(-) delete mode 100644 apps/docs/__registry__/content.ts create mode 100644 apps/docs/components/external-links.tsx rename apps/docs/components/{ui => }/section-tabs.tsx (100%) create mode 100644 apps/docs/lib/file-generator.ts create mode 100644 apps/docs/previews/accordion.tsx diff --git a/apps/docs/__registry__/content.ts b/apps/docs/__registry__/content.ts deleted file mode 100644 index f20a465a..00000000 --- a/apps/docs/__registry__/content.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Accordion from '!!raw-loader!@rnr/reusables/components/ui/accordion'; - -export const content = { - Accordion, -}; diff --git a/apps/docs/components/external-links.tsx b/apps/docs/components/external-links.tsx new file mode 100644 index 00000000..3c05473d --- /dev/null +++ b/apps/docs/components/external-links.tsx @@ -0,0 +1,27 @@ +import { ExternalLinkIcon } from 'lucide-react'; + +type ExternalLinksProps = { + links: { + title: string; + url: string; + }[]; +}; + +export function ExternalLinks(props: ExternalLinksProps) { + return ( +
+ {props.links.map((link) => ( + +
+ {link.title} +
+
+ ))} +
+ ); +} diff --git a/apps/docs/components/ui/section-tabs.tsx b/apps/docs/components/section-tabs.tsx similarity index 100% rename from apps/docs/components/ui/section-tabs.tsx rename to apps/docs/components/section-tabs.tsx diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index 37e5c373..ab986739 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -3,259 +3,166 @@ title: Accordion description: A vertically stacked set of interactive headings that each reveal a section of content. --- -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, - Text, -} from "@/components/reusables" - -import { Tab, Tabs, TabContent } from 'fumadocs-ui/components/tabs' -import { Pre, CodeBlock } from 'fumadocs-ui/components/codeblock'; -import { ExternalLinkIcon } from "lucide-react" -import accordion from '!!raw-loader!@rnr/reusables/components/ui/accordion'; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/ui/section-tabs" -import { CopyButton } from "@/components/copy-button" +import accordionPreview from "!!raw-loader!@/previews/accordion"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { AccordionPreview } from "@/previews/accordion"; import { Step, Steps } from 'fumadocs-ui/components/steps'; -import { CommandTabs } from "@/components/command-tabs" + - +
- + Preview Code - -
- - - - Is it accessible? - - - Yes. It adheres to the WAI-ARIA design pattern. - - - - - What are universal components? - - - - In the world of React Native, universal components are components that work on both - web and native platforms. - - - - - - Is this component universal? - - - Yes. Try it out on the web, iOS, and/or Android. - - - - ) -}`}/> - - - - Is it accessible? - - - Yes. It adheres to the WAI-ARIA design pattern. - - - - - What are universal components? - - - - In the world of React Native, universal components are components that work on both - web and native platforms. - - - - - - Is this component universal? - - - Yes. Try it out on the web, iOS, and/or Android. - - - + +
+ +
-```tsx -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from '~/components/ui/accordion'; -import { Text } from '~/components/ui/text'; -export function AccordionDemo() { - return ( - - - - Is it accessible? - - - Yes. It adheres to the WAI-ARIA design pattern. - - - - - What are universal components? - - - - In the world of React Native, universal components are components that work on both - web and native platforms. - - - - - - Is this component universal? - - - Yes. Try it out on the web, iOS, and/or Android. - - - - ) -} -``` + ```json doc-gen:file + { + "file": "./previews/accordion.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` ## Installation - + CLI Manual - - - + + + + + + + + #### Update `tailwind.config.js` + + Add the following animations to your tailwind.config.js file: + + ```js title="tailwind.config.js" + /** @type {import('tailwindcss').Config} */ + module.exports = { + theme: { + extend: { + keyframes: { + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + }, + }, + } + ``` + + + - - - + + -#### Install the following dependency: + #### Install the following dependency: - ``` - npx expo install @rn-primitives/accordion - ``` + ``` + npx expo install @rn-primitives/accordion + ``` - - - + + -#### Copy and paste the following code into your project. - - ```json doc-gen:file -{ - "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", - "codeblock": { - "lang": "tsx", - "meta": "title=\"~/components/ui/text.tsx\"" - } -} -``` - -```json doc-gen:file -{ - "file": "./node_modules/@rnr/reusables/src/components/ui/accordion.tsx", - "codeblock": { - "lang": "tsx", - "meta": "title=\"~/components/ui/accordion.tsx\"" - } -} -``` + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/accordion.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/accordion.tsx\"" + } + } + ``` - - - - -#### Update the import paths to match your project setup. - - - - -#### Update `tailwind.config.js` - -Add the following animations to your tailwind.config.js file: - -```js title="tailwind.config.js" -/** @type {import('tailwindcss').Config} */ -module.exports = { - theme: { - extend: { - keyframes: { - 'accordion-down': { - from: { height: '0' }, - to: { height: 'var(--radix-accordion-content-height)' }, - }, - 'accordion-up': { - from: { height: 'var(--radix-accordion-content-height)' }, - to: { height: '0' }, - }, - }, - animation: { - 'accordion-down': 'accordion-down 0.2s ease-out', - 'accordion-up': 'accordion-up 0.2s ease-out', - }, - }, - }, -} -``` - - - + + + + #### Update the import paths to match your project setup. + + + + + #### Update `tailwind.config.js` + + Add the following animations to your tailwind.config.js file: + + ```js title="tailwind.config.js" + /** @type {import('tailwindcss').Config} */ + module.exports = { + theme: { + extend: { + keyframes: { + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, + }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + }, + }, + } + ``` + + + diff --git a/apps/docs/lib/file-generator.ts b/apps/docs/lib/file-generator.ts new file mode 100644 index 00000000..cbdd431e --- /dev/null +++ b/apps/docs/lib/file-generator.ts @@ -0,0 +1,64 @@ +import * as fs from 'node:fs/promises'; +import * as path from 'node:path'; +import type { Code, Paragraph } from 'mdast'; +import { z } from 'zod'; +import { DocGenerator } from 'fumadocs-docgen'; + +// This project uses code from fumadocs. +// The code is licensed under the MIT License. +// https://github.com/fuma-nama/fumadocs + +const fileGeneratorSchema = z.object({ + file: z.string(), + + /** + * Turn file content into a code block + * + * @defaultValue false + */ + codeblock: z + .union([ + z.object({ + lang: z.string().optional(), + meta: z.string().optional(), + }), + z.boolean(), + ]) + .default(false), +}); + +export function fileGenerator(): DocGenerator { + return { + name: 'file', + async run(input, ctx) { + const { file, codeblock = false } = fileGeneratorSchema.parse(input); + + const dest = path.resolve(ctx.cwd, file); + const value = fixImports(await fs.readFile(dest).then((res) => res.toString())); + + if (codeblock === false) { + return { + type: 'paragraph', + children: [{ type: 'text', value }], + } as Paragraph; + } + + const codeOptions = codeblock === true ? {} : codeblock; + + return { + type: 'code', + lang: codeOptions.lang ?? path.extname(dest).slice(1), + meta: codeOptions.meta, + value, + } as Code; + }, + }; +} + +function fixImports(value: string) { + return value + .replace('./typography', '~/components/ui/typography') + .replace('./text', '~/components/ui/text') + .replaceAll('../../components', '~/components') + .replaceAll('../../lib', '~/lib'); +} diff --git a/apps/docs/previews/accordion.tsx b/apps/docs/previews/accordion.tsx new file mode 100644 index 00000000..6dabbb53 --- /dev/null +++ b/apps/docs/previews/accordion.tsx @@ -0,0 +1,41 @@ +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '~/components/ui/accordion'; +import { Text } from '~/components/ui/text'; + +export function AccordionPreview() { + return ( + + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + + + What are universal components? + + + + In the world of React Native, universal components are components that work on both web + and native platforms. + + + + + + Is this component universal? + + + Yes. Try it out on the web, iOS, and/or Android. + + + + ); +} diff --git a/apps/docs/source.config.ts b/apps/docs/source.config.ts index de08d6e0..877fe882 100644 --- a/apps/docs/source.config.ts +++ b/apps/docs/source.config.ts @@ -1,4 +1,5 @@ -import { fileGenerator, remarkDocGen } from 'fumadocs-docgen'; +import { fileGenerator } from '@/lib/file-generator'; +import { remarkDocGen } from 'fumadocs-docgen'; import { defineConfig, defineDocs } from 'fumadocs-mdx/config'; export const { docs, meta } = defineDocs({ diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 60228d35..585c045d 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -23,7 +23,10 @@ "paths": { "@/*": [ "./*" - ] + ], + "~/components/ui/*": [ + "./components/reusables" + ], }, "plugins": [ { From c7e19b9d40d600f9f75d6549dafa6bfc5d32a09a Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 17 Jan 2025 22:58:17 -0500 Subject: [PATCH 013/467] feat(docs): add alert --- apps/docs/components/external-links.tsx | 2 +- apps/docs/components/reusables.tsx | 6 +- .../content/docs/(components)/accordion.mdx | 2 +- apps/docs/content/docs/(components)/alert.mdx | 148 ++++++++++++++++++ apps/docs/previews/accordion.tsx | 14 +- apps/docs/previews/alert-destructive.tsx | 11 ++ apps/docs/previews/alert.tsx | 11 ++ apps/docs/tsconfig.json | 3 + .../reusables/src/components/ui/alert.tsx | 8 +- 9 files changed, 190 insertions(+), 15 deletions(-) create mode 100644 apps/docs/content/docs/(components)/alert.mdx create mode 100644 apps/docs/previews/alert-destructive.tsx create mode 100644 apps/docs/previews/alert.tsx diff --git a/apps/docs/components/external-links.tsx b/apps/docs/components/external-links.tsx index 3c05473d..750e85b5 100644 --- a/apps/docs/components/external-links.tsx +++ b/apps/docs/components/external-links.tsx @@ -9,7 +9,7 @@ type ExternalLinksProps = { export function ExternalLinks(props: ExternalLinksProps) { return ( -
+
{props.links.map((link) => ( -
+
diff --git a/apps/docs/content/docs/(components)/alert.mdx b/apps/docs/content/docs/(components)/alert.mdx new file mode 100644 index 00000000..5ba35495 --- /dev/null +++ b/apps/docs/content/docs/(components)/alert.mdx @@ -0,0 +1,148 @@ +--- +title: Alert +description: Displays a callout for user attention. +--- + +import alertPreview from "!!raw-loader!@/previews/alert"; +import alertDestructivePreview from "!!raw-loader!@/previews/alert-destructive"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { AlertPreview } from "@/previews/alert"; +import { AlertDestructive } from "@/previews/alert-destructive"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +
+ + + + Preview + Code + + +
+ + +
+
+ + + ```json doc-gen:file + { + "file": "./previews/alert.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + +
+ + +## Installation + + + + CLI + Manual + + + + + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/alert.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/alert.tsx\"" + } + } + ``` + + + + + #### Update the import paths to match your project setup. + + + + + + +### Usage + +```tsx +import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; +import { Terminal } from '~/lib/icons/Terminal'; +``` + +```tsx + + Heads up! + + You can use a terminal to run commands on your computer. + + +``` + +### Examples + +#### Default + + + + Preview + Code + + +
+ + +
+
+ + + ```json doc-gen:file + { + "file": "./previews/alert.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + +
+ +
+ +#### Destructive + + + + Preview + Code + + +
+ + +
+
+ + + ```json doc-gen:file + { + "file": "./previews/alert-destructive.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + +
\ No newline at end of file diff --git a/apps/docs/previews/accordion.tsx b/apps/docs/previews/accordion.tsx index 6dabbb53..c247aa5a 100644 --- a/apps/docs/previews/accordion.tsx +++ b/apps/docs/previews/accordion.tsx @@ -8,21 +8,21 @@ import { Text } from '~/components/ui/text'; export function AccordionPreview() { return ( - + - Is it accessible? + Is it accessible? - Yes. It adheres to the WAI-ARIA design pattern. + Yes. It adheres to the WAI-ARIA design pattern. - What are universal components? + What are universal components? - + In the world of React Native, universal components are components that work on both web and native platforms. @@ -30,10 +30,10 @@ export function AccordionPreview() { - Is this component universal? + Is this component universal? - Yes. Try it out on the web, iOS, and/or Android. + Yes. Try it out on the web, iOS, and/or Android. diff --git a/apps/docs/previews/alert-destructive.tsx b/apps/docs/previews/alert-destructive.tsx new file mode 100644 index 00000000..e33ed6eb --- /dev/null +++ b/apps/docs/previews/alert-destructive.tsx @@ -0,0 +1,11 @@ +import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; +import { AlertCircle } from '~/lib/icons/AlertCircle'; + +export function AlertDestructive() { + return ( + + Error + Your session has expired. Please log in again. + + ); +} diff --git a/apps/docs/previews/alert.tsx b/apps/docs/previews/alert.tsx new file mode 100644 index 00000000..863e675a --- /dev/null +++ b/apps/docs/previews/alert.tsx @@ -0,0 +1,11 @@ +import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; +import { Terminal } from '~/lib/icons/Terminal'; + +export function AlertPreview() { + return ( + + Heads up! + You can use a terminal to run commands on your computer. + + ); +} diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 585c045d..c305a982 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -27,6 +27,9 @@ "~/components/ui/*": [ "./components/reusables" ], + "~/lib/icons/*": [ + "./components/reusables" + ], }, "plugins": [ { diff --git a/packages/reusables/src/components/ui/alert.tsx b/packages/reusables/src/components/ui/alert.tsx index fb3147cd..9d5de9a1 100644 --- a/packages/reusables/src/components/ui/alert.tsx +++ b/packages/reusables/src/components/ui/alert.tsx @@ -1,13 +1,12 @@ -import { useTheme } from '@react-navigation/native'; import { cva, type VariantProps } from 'class-variance-authority'; import type { LucideIcon } from 'lucide-react-native'; import * as React from 'react'; import { View, type ViewProps } from 'react-native'; import { cn } from '../../lib/utils'; -import { Text } from './text'; +import { Text, TextClassContext } from './text'; const alertVariants = cva( - 'relative bg-background w-full rounded-lg border border-border p-4 shadow shadow-foreground/10', + 'relative bg-background w-full rounded-lg border border-border px-4 py-3', { variants: { variant: { @@ -45,8 +44,7 @@ function Alert({ color={variant === 'destructive' ? colors.notification : colors.text} /> - {children} - + ); } From 59e6f9df087843979f9cbeab982a93a13251245c Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 17 Jan 2025 23:44:22 -0500 Subject: [PATCH 014/467] feat(docs): add preview card and platform switcher --- apps/docs/components/copy-button.tsx | 2 +- apps/docs/components/preview-card.tsx | 74 ++++++++ apps/docs/components/ui/select.tsx | 160 ++++++++++++++++++ .../content/docs/(components)/accordion.mdx | 6 +- apps/docs/content/docs/(components)/alert.mdx | 6 +- apps/docs/package.json | 1 + pnpm-lock.yaml | 3 + 7 files changed, 243 insertions(+), 9 deletions(-) create mode 100644 apps/docs/components/preview-card.tsx create mode 100644 apps/docs/components/ui/select.tsx diff --git a/apps/docs/components/copy-button.tsx b/apps/docs/components/copy-button.tsx index 286ea779..e3aaba18 100644 --- a/apps/docs/components/copy-button.tsx +++ b/apps/docs/components/copy-button.tsx @@ -29,7 +29,7 @@ export function CopyButton({ variant: 'ghost', size: 'icon', }), - 'transition-opacity group-hover:opacity-100 size-8', + 'transition-opacity group-hover:opacity-100 size-7', !checked && 'opacity-0', className )} diff --git a/apps/docs/components/preview-card.tsx b/apps/docs/components/preview-card.tsx new file mode 100644 index 00000000..91cafe20 --- /dev/null +++ b/apps/docs/components/preview-card.tsx @@ -0,0 +1,74 @@ +'use client'; + +import { type SelectProps } from '@radix-ui/react-select'; +import * as React from 'react'; +import { CopyButton } from './copy-button'; + +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; + +const PLATFORMS = [ + { name: 'web', label: 'Web' }, + { name: 'ios', label: 'iOS' }, + { name: 'android', label: 'Android' }, +]; + +type Platform = (typeof PLATFORMS)[number]['name']; + +export function PreviewCard({ + copyContent, + webPreview, + iosPreview, + androidPreview, +}: { + copyContent: string; + webPreview: React.ReactNode; + iosPreview?: React.ReactNode; + androidPreview?: React.ReactNode; +}) { + const [platform, setPlatform] = React.useState( + (localStorage.getItem('platform') as Platform | null) ?? 'web' + ); + return ( +
+
+ { + setPlatform(value); + localStorage.setItem('platform', value); + }} + /> + +
+
+ {platform === 'android' ? androidPreview : platform === 'ios' ? iosPreview : webPreview} +
+
+ ); +} + +function PlatformSwitcher({ + defaultValue = window !== undefined ? localStorage.getItem('platform') ?? 'web' : 'web', + ...props +}: SelectProps) { + return ( + + ); +} diff --git a/apps/docs/components/ui/select.tsx b/apps/docs/components/ui/select.tsx new file mode 100644 index 00000000..cbe5a36b --- /dev/null +++ b/apps/docs/components/ui/select.tsx @@ -0,0 +1,160 @@ +"use client" + +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { Check, ChevronDown, ChevronUp } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +} diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index fff7ab94..6cabf0a4 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -7,6 +7,7 @@ import accordionPreview from "!!raw-loader!@/previews/accordion"; import { CommandTabs } from "@/components/command-tabs"; import { CopyButton } from "@/components/copy-button"; import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; import { AccordionPreview } from "@/previews/accordion"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -26,10 +27,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code -
- - -
+ }/>
diff --git a/apps/docs/content/docs/(components)/alert.mdx b/apps/docs/content/docs/(components)/alert.mdx index 5ba35495..523b5972 100644 --- a/apps/docs/content/docs/(components)/alert.mdx +++ b/apps/docs/content/docs/(components)/alert.mdx @@ -7,6 +7,7 @@ import alertPreview from "!!raw-loader!@/previews/alert"; import alertDestructivePreview from "!!raw-loader!@/previews/alert-destructive"; import { CommandTabs } from "@/components/command-tabs"; import { CopyButton } from "@/components/copy-button"; +import { PreviewCard } from "@/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; import { AlertPreview } from "@/previews/alert"; import { AlertDestructive } from "@/previews/alert-destructive"; @@ -20,10 +21,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code -
- - -
+ }/>
diff --git a/apps/docs/package.json b/apps/docs/package.json index 52ddd081..08b246ed 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -10,6 +10,7 @@ "postinstall": "fumadocs-mdx" }, "dependencies": { + "@radix-ui/react-select": "^2.1.4", "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-tabs": "^1.1.2", "@rnr/reusables": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index feef783f..6b5c4fc1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -122,6 +122,9 @@ importers: apps/docs: dependencies: + '@radix-ui/react-select': + specifier: ^2.1.4 + version: 2.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-slot': specifier: ^1.0.2 version: 1.1.1(@types/react@18.3.18)(react@18.3.1) From 90b841a3bcf50ae13772a895b950c9f0b312fba9 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 18 Jan 2025 08:39:27 -0500 Subject: [PATCH 015/467] feat(docs): add alert-dialog --- apps/docs/components/preview-card.tsx | 2 +- .../docs/(components)/alert-dialog.mdx | 151 ++++++++++++++++++ apps/docs/previews/alert-dialog.tsx | 42 +++++ .../src/components/ui/alert-dialog.tsx | 2 +- 4 files changed, 195 insertions(+), 2 deletions(-) create mode 100644 apps/docs/content/docs/(components)/alert-dialog.mdx create mode 100644 apps/docs/previews/alert-dialog.tsx diff --git a/apps/docs/components/preview-card.tsx b/apps/docs/components/preview-card.tsx index 91cafe20..b456a9ff 100644 --- a/apps/docs/components/preview-card.tsx +++ b/apps/docs/components/preview-card.tsx @@ -58,7 +58,7 @@ function PlatformSwitcher({ }: SelectProps) { return ( Platform: - + {!isClient ? ( + + {PLATFORMS.find((platform) => platform.name === defaultValue)?.label} + + ) : ( + + )} {PLATFORMS.map((platform) => ( diff --git a/apps/docs/components/preview-card/index.tsx b/apps/docs/components/preview-card/index.tsx new file mode 100644 index 00000000..09cd1682 --- /dev/null +++ b/apps/docs/components/preview-card/index.tsx @@ -0,0 +1,10 @@ +import { cookies } from 'next/headers'; +import { type PreviewCardClientProps, type Platform, PreviewCardClient } from './client'; + +type PreviewCardProps = Omit; + +export async function PreviewCard(props: PreviewCardProps) { + const cookieStore = cookies(); + const platformCookie = cookieStore.get('platform')?.value as Platform; + return ; +} diff --git a/apps/docs/package.json b/apps/docs/package.json index 08b246ed..db0d4139 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -16,13 +16,14 @@ "@rnr/reusables": "workspace:*", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "cookies-next": "4.3.0", "fumadocs-core": "14.7.2", "fumadocs-docgen": "^1.3.4", "fumadocs-mdx": "11.2.3", "fumadocs-ui": "14.7.2", "lucide-react": "^0.471.1", "nativewind": "^4.1.23", - "next": "15.1.3", + "next": "^14.2.15", "react": "18.3.1", "react-dom": "18.3.1", "react-native-reanimated": "~3.16.1", diff --git a/apps/old-docs/src/content/docs/getting-started/initial-setup.mdx b/apps/old-docs/src/content/docs/getting-started/initial-setup.mdx index 83c62026..9e29b65b 100644 --- a/apps/old-docs/src/content/docs/getting-started/initial-setup.mdx +++ b/apps/old-docs/src/content/docs/getting-started/initial-setup.mdx @@ -385,8 +385,16 @@ import importedTwNativeCondig from '@/code-samples/tw-native-config.js?raw'; ); } - const useIsomorphicLayoutEffect = - Platform.OS === 'web' && typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect; + function useIsomorphicLayoutEffect( + effect: React.EffectCallback, + dependencies?: React.DependencyList + ) { + if (Platform.OS === 'web' && typeof window === 'undefined') { + React.useEffect(effect, dependencies); + } else { + React.useLayoutEffect(effect, dependencies); + } + } `} /> diff --git a/packages/reusables/src/components/deprecated-ui/accordion.tsx b/packages/reusables/src/components/deprecated-ui/accordion.tsx index e8a58625..3c335721 100644 --- a/packages/reusables/src/components/deprecated-ui/accordion.tsx +++ b/packages/reusables/src/components/deprecated-ui/accordion.tsx @@ -59,7 +59,7 @@ const AccordionItem = React.forwardRef< innerContentRef, contentHeight, open, - progress, + progress: progress as SharedValue, nativeID, }} > diff --git a/packages/reusables/src/components/deprecated-ui/toast.tsx b/packages/reusables/src/components/deprecated-ui/toast.tsx index 92dc1afe..03bdd285 100644 --- a/packages/reusables/src/components/deprecated-ui/toast.tsx +++ b/packages/reusables/src/components/deprecated-ui/toast.tsx @@ -1,4 +1,3 @@ -import * as React from 'react'; import { Pressable } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import Toast, { ToastConfig } from 'react-native-toast-message'; @@ -10,11 +9,12 @@ import { Info } from '../../lib/icons/Info'; /** * Temporary fix for warning when accessing useLayoutEffect on the server. See issue * https://github.com/calintamas/react-native-toast-message/issues/530 + * Uncomment the following code to remove the warning. */ -if (typeof document === 'undefined') { - // @ts-ignore - React.useLayoutEffect = React.useEffect; -} +// if (typeof document === 'undefined') { +// // @ts-ignore +// React.useLayoutEffect = React.useEffect; +// } /** * @docs https://github.com/calintamas/react-native-toast-message/blob/main/docs/quick-start.md diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b5c4fc1..cd6b75ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,27 +140,30 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + cookies-next: + specifier: 4.3.0 + version: 4.3.0 fumadocs-core: specifier: 14.7.2 - version: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) fumadocs-docgen: specifier: ^1.3.4 - version: 1.3.4(typescript@5.7.2) + version: 1.3.4(typescript@5.7.3) fumadocs-mdx: specifier: 11.2.3 - version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) fumadocs-ui: specifier: 14.7.2 - version: 14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + version: 14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) lucide-react: specifier: ^0.471.1 - version: 0.471.1(react@18.3.1) + version: 0.471.2(react@18.3.1) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.16.6(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.12.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + version: 4.1.23(react-native-reanimated@3.16.7(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.12.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) next: - specifier: 15.1.3 - version: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^14.2.15 + version: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: 18.3.1 version: 18.3.1 @@ -169,7 +172,7 @@ importers: version: 18.3.1(react@18.3.1) react-native-reanimated: specifier: ~3.16.1 - version: 3.16.6(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + version: 3.16.7(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) react-native-svg: specifier: 15.8.0 version: 15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -200,16 +203,16 @@ importers: version: 18.3.5(@types/react@18.3.18) autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.49) + version: 10.4.20(postcss@8.5.1) eslint: specifier: ^8 version: 8.57.1 eslint-config-next: specifier: 15.1.3 - version: 15.1.3(eslint@8.57.1)(typescript@5.7.2) + version: 15.1.3(eslint@8.57.1)(typescript@5.7.3) postcss: specifier: ^8.4.49 - version: 8.4.49 + version: 8.5.1 raw-loader: specifier: ^4.0.2 version: 4.0.2(webpack@5.97.1) @@ -218,7 +221,7 @@ importers: version: 3.4.17 typescript: specifier: ^5.3.3 - version: 5.7.2 + version: 5.7.3 apps/old-docs: dependencies: @@ -2203,54 +2206,111 @@ packages: '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + '@next/env@14.2.23': + resolution: {integrity: sha512-CysUC9IO+2Bh0omJ3qrb47S8DtsTKbFidGm6ow4gXIG6reZybqxbkH2nhdEm1tC8SmgzDdpq3BIML0PWsmyUYA==} + '@next/env@15.1.3': resolution: {integrity: sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==} '@next/eslint-plugin-next@15.1.3': resolution: {integrity: sha512-oeP1vnc5Cq9UoOb8SYHAEPbCXMzOgG70l+Zfd+Ie00R25FOm+CCVNrcIubJvB1tvBgakXE37MmqSycksXVPRqg==} + '@next/swc-darwin-arm64@14.2.23': + resolution: {integrity: sha512-WhtEntt6NcbABA8ypEoFd3uzq5iAnrl9AnZt9dXdO+PZLACE32z3a3qA5OoV20JrbJfSJ6Sd6EqGZTrlRnGxQQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-arm64@15.1.3': resolution: {integrity: sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] + '@next/swc-darwin-x64@14.2.23': + resolution: {integrity: sha512-vwLw0HN2gVclT/ikO6EcE+LcIN+0mddJ53yG4eZd0rXkuEr/RnOaMH8wg/sYl5iz5AYYRo/l6XX7FIo6kwbw1Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-darwin-x64@15.1.3': resolution: {integrity: sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-linux-arm64-gnu@14.2.23': + resolution: {integrity: sha512-uuAYwD3At2fu5CH1wD7FpP87mnjAv4+DNvLaR9kiIi8DLStWSW304kF09p1EQfhcbUI1Py2vZlBO2VaVqMRtpg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-gnu@15.1.3': resolution: {integrity: sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@14.2.23': + resolution: {integrity: sha512-Mm5KHd7nGgeJ4EETvVgFuqKOyDh+UMXHXxye6wRRFDr4FdVRI6YTxajoV2aHE8jqC14xeAMVZvLqYqS7isHL+g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@15.1.3': resolution: {integrity: sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-x64-gnu@14.2.23': + resolution: {integrity: sha512-Ybfqlyzm4sMSEQO6lDksggAIxnvWSG2cDWnG2jgd+MLbHYn2pvFA8DQ4pT2Vjk3Cwrv+HIg7vXJ8lCiLz79qoQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-gnu@15.1.3': resolution: {integrity: sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@14.2.23': + resolution: {integrity: sha512-OSQX94sxd1gOUz3jhhdocnKsy4/peG8zV1HVaW6DLEbEmRRtUCUQZcKxUD9atLYa3RZA+YJx+WZdOnTkDuNDNA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@15.1.3': resolution: {integrity: sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-win32-arm64-msvc@14.2.23': + resolution: {integrity: sha512-ezmbgZy++XpIMTcTNd0L4k7+cNI4ET5vMv/oqNfTuSXkZtSA9BURElPFyarjjGtRgZ9/zuKDHoMdZwDZIY3ehQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-arm64-msvc@15.1.3': resolution: {integrity: sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-ia32-msvc@14.2.23': + resolution: {integrity: sha512-zfHZOGguFCqAJ7zldTKg4tJHPJyJCOFhpoJcVxKL9BSUHScVDnMdDuOU1zPPGdOzr/GWxbhYTjyiEgLEpAoFPA==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@next/swc-win32-x64-msvc@14.2.23': + resolution: {integrity: sha512-xCtq5BD553SzOgSZ7UH5LH+OATQihydObTrCTvVzOro8QiWYKdBVwcB2Mn2MLMo6DGW9yH1LSPw7jS7HhgJgjw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@next/swc-win32-x64-msvc@15.1.3': resolution: {integrity: sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==} engines: {node: '>= 10'} @@ -4427,8 +4487,8 @@ packages: resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} engines: {node: '>= 0.8.0'} - compute-scroll-into-view@3.1.0: - resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -4850,8 +4910,8 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react@7.37.3: - resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 @@ -6068,8 +6128,8 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lucide-react@0.471.1: - resolution: {integrity: sha512-syOxwPhf62gg2YOsz72HRn+CIpeudFy67AeKnSR8Hn/fIIF4ubhNbRF+pQ2CaJrl+X9Os4PL87z2DXQi3DVeDA==} + lucide-react@0.471.2: + resolution: {integrity: sha512-A8fDycQxGeaSOTaI7Bm4fg8LBXO7Qr9ORAX47bDRvugCsjLIliugQO0PkKFoeAD57LIQwlWKd3NIQ3J7hYp84g==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -6960,11 +7020,6 @@ packages: peerDependencies: react: ^19.0.0 - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} - peerDependencies: - react: ^19.0.0 - react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -7667,6 +7722,19 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + styled-jsx@5.1.1: + resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} @@ -10283,33 +10351,63 @@ snapshots: - acorn - supports-color - '@next/env@15.1.3': {} + '@next/env@14.2.23': {} + + '@next/env@15.1.3': + optional: true '@next/eslint-plugin-next@15.1.3': dependencies: fast-glob: 3.3.1 + '@next/swc-darwin-arm64@14.2.23': + optional: true + '@next/swc-darwin-arm64@15.1.3': optional: true + '@next/swc-darwin-x64@14.2.23': + optional: true + '@next/swc-darwin-x64@15.1.3': optional: true + '@next/swc-linux-arm64-gnu@14.2.23': + optional: true + '@next/swc-linux-arm64-gnu@15.1.3': optional: true + '@next/swc-linux-arm64-musl@14.2.23': + optional: true + '@next/swc-linux-arm64-musl@15.1.3': optional: true + '@next/swc-linux-x64-gnu@14.2.23': + optional: true + '@next/swc-linux-x64-gnu@15.1.3': optional: true + '@next/swc-linux-x64-musl@14.2.23': + optional: true + '@next/swc-linux-x64-musl@15.1.3': optional: true + '@next/swc-win32-arm64-msvc@14.2.23': + optional: true + '@next/swc-win32-arm64-msvc@15.1.3': optional: true + '@next/swc-win32-ia32-msvc@14.2.23': + optional: true + + '@next/swc-win32-x64-msvc@14.2.23': + optional: true + '@next/swc-win32-x64-msvc@15.1.3': optional: true @@ -12133,8 +12231,8 @@ snapshots: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 is-string: 1.1.1 array-iterate@2.0.1: {} @@ -12149,7 +12247,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.findlastindex@1.2.5: @@ -12158,7 +12256,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.3: @@ -12624,7 +12722,7 @@ snapshots: chokidar@4.0.3: dependencies: - readdirp: 4.0.2 + readdirp: 4.1.1 chownr@1.1.4: {} @@ -12756,7 +12854,7 @@ snapshots: transitivePeerDependencies: - supports-color - compute-scroll-into-view@3.1.0: {} + compute-scroll-into-view@3.1.1: {} concat-map@0.0.1: {} @@ -13011,7 +13109,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -13158,21 +13256,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@15.1.3(eslint@8.57.1)(typescript@5.7.2): + eslint-config-next@15.1.3(eslint@8.57.1)(typescript@5.7.3): dependencies: '@next/eslint-plugin-next': 15.1.3 '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) - eslint-plugin-react: 7.37.3(eslint@8.57.1) + eslint-plugin-react: 7.37.4(eslint@8.57.1) eslint-plugin-react-hooks: 5.1.0(eslint@8.57.1) optionalDependencies: - typescript: 5.7.2 + typescript: 5.7.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x @@ -13192,28 +13290,28 @@ snapshots: debug: 4.4.0 enhanced-resolve: 5.18.0 eslint: 8.57.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 get-tsconfig: 4.8.1 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -13224,7 +13322,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.19.1(eslint@8.57.1)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13236,7 +13334,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.19.1(eslint@8.57.1)(typescript@5.7.2) + '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13265,7 +13363,7 @@ snapshots: dependencies: eslint: 8.57.1 - eslint-plugin-react@7.37.3(eslint@8.57.1): + eslint-plugin-react@7.37.4(eslint@8.57.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -13741,13 +13839,13 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@orama/orama': 2.1.1 - '@shikijs/rehype': 1.26.1 + '@shikijs/rehype': 1.27.2 github-slugger: 2.0.0 - hast-util-to-estree: 3.1.0 + hast-util-to-estree: 3.1.1 hast-util-to-jsx-runtime: 2.3.2 image-size: 1.2.0 negotiator: 1.0.0 @@ -13755,21 +13853,21 @@ snapshots: remark: 15.0.1 remark-gfm: 4.0.0 scroll-into-view-if-needed: 3.1.0 - shiki: 1.26.1 + shiki: 1.27.2 unist-util-visit: 5.0.0 optionalDependencies: - next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' - supports-color - fumadocs-docgen@1.3.4(typescript@5.7.2): + fumadocs-docgen@1.3.4(typescript@5.7.3): dependencies: estree-util-value-to-estree: 3.2.1 - fumadocs-typescript: 3.0.2(typescript@5.7.2) - hast-util-to-estree: 3.1.0 + fumadocs-typescript: 3.0.2(typescript@5.7.3) + hast-util-to-estree: 3.1.1 npm-to-yarn: 3.0.1 oxc-transform: 0.43.0 unist-util-visit: 5.0.0 @@ -13778,39 +13876,39 @@ snapshots: - supports-color - typescript - fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.0) chokidar: 4.0.3 cross-spawn: 7.0.6 esbuild: 0.24.2 estree-util-value-to-estree: 3.2.1 - fast-glob: 3.3.2 - fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fast-glob: 3.3.3 + fumadocs-core: 14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) gray-matter: 4.0.3 micromatch: 4.0.8 - next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) unist-util-visit: 5.0.0 zod: 3.24.1 transitivePeerDependencies: - acorn - supports-color - fumadocs-typescript@3.0.2(typescript@5.7.2): + fumadocs-typescript@3.0.2(typescript@5.7.3): dependencies: '@types/node': 22.8.1 - fast-glob: 3.3.2 + fast-glob: 3.3.3 hast-util-to-jsx-runtime: 2.3.2 mdast-util-from-markdown: 2.0.2 mdast-util-gfm: 3.0.0 mdast-util-to-hast: 13.2.0 - shiki: 1.26.1 + shiki: 1.27.2 ts-morph: 24.0.0 - typescript: 5.7.2 + typescript: 5.7.3 transitivePeerDependencies: - supports-color - fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): + fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): dependencies: '@radix-ui/react-accordion': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-collapsible': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -13822,10 +13920,10 @@ snapshots: '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) '@radix-ui/react-tabs': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) class-variance-authority: 0.7.1 - fumadocs-core: 14.7.2(@types/react@18.3.18)(next@15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-core: 14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) lodash.merge: 4.6.2 lucide-react: 0.469.0(react@18.3.1) - next: 15.1.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) postcss-selector-parser: 7.0.0 react: 18.3.1 @@ -14396,8 +14494,8 @@ snapshots: iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.6 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 @@ -14740,7 +14838,7 @@ snapshots: dependencies: react: 19.0.0 - lucide-react@0.471.1(react@18.3.1): + lucide-react@0.471.2(react@18.3.1): dependencies: react: 18.3.1 @@ -15592,7 +15690,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -15600,14 +15698,14 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: @@ -15620,7 +15718,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 on-finished@2.3.0: dependencies: @@ -16028,11 +16126,6 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 - react-dom@19.0.0(react@18.3.1): - dependencies: - react: 18.3.1 - scheduler: 0.25.0 - react-fast-compare@3.2.2: {} react-freeze@1.0.4(react@19.0.0): @@ -16334,7 +16427,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.2.7 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -16665,7 +16758,7 @@ snapshots: scroll-into-view-if-needed@3.1.0: dependencies: - compute-scroll-into-view: 3.1.0 + compute-scroll-into-view: 3.1.1 section-matter@1.0.0: dependencies: @@ -16816,14 +16909,14 @@ snapshots: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.6 + get-intrinsic: 1.2.7 object-inspect: 1.13.3 side-channel-map: 1.0.1 @@ -16987,12 +17080,20 @@ snapshots: dependencies: inline-style-parser: 0.2.4 + styled-jsx@5.1.1(@babel/core@7.26.0)(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + optionalDependencies: + '@babel/core': 7.26.0 + styled-jsx@5.1.6(@babel/core@7.26.0)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 optionalDependencies: '@babel/core': 7.26.0 + optional: true styleq@0.1.3: {} @@ -17165,9 +17266,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.0(typescript@5.7.2): + ts-api-utils@2.0.0(typescript@5.7.3): dependencies: - typescript: 5.7.2 + typescript: 5.7.3 ts-interface-checker@0.1.13: {} @@ -17702,7 +17803,7 @@ snapshots: '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 - browserslist: 4.24.3 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 es-module-lexer: 1.6.0 @@ -17759,7 +17860,7 @@ snapshots: is-async-function: 2.1.0 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.0.10 + is-generator-function: 1.1.0 is-regex: 1.2.1 is-weakref: 1.1.0 isarray: 2.0.5 From 7c6446120d34b532cf4f8ac250bf5dd534fb02a6 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 19 Jan 2025 14:11:10 -0500 Subject: [PATCH 021/467] feat(docs): add tentative rnr logo --- apps/docs/app/(home)/page.tsx | 11 ++-- apps/docs/app/layout.config.tsx | 13 ++++- apps/docs/app/layout.tsx | 4 +- apps/docs/components/icons/rnr-icon.tsx | 60 ++++++++++++++++++++ apps/docs/components/{ => icons}/ui-icon.tsx | 3 +- 5 files changed, 79 insertions(+), 12 deletions(-) create mode 100644 apps/docs/components/icons/rnr-icon.tsx rename apps/docs/components/{ => icons}/ui-icon.tsx (88%) diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index e5b59f4d..a7229f07 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -2,14 +2,11 @@ import Link from 'next/link'; export default function HomePage() { return ( -
-

Hello World

-

+

+

Hello World

+

You can open{' '} - + /docs {' '} and see the documentation. diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx index 18305df1..43c64c83 100644 --- a/apps/docs/app/layout.config.tsx +++ b/apps/docs/app/layout.config.tsx @@ -1,4 +1,5 @@ -import { UiIcon } from '@/components/ui-icon'; +import { UiIcon } from '@/components/icons/ui-icon'; +import { RnrIcon } from '@/components/icons/rnr-icon'; import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; /** @@ -10,7 +11,15 @@ import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; */ export const baseOptions: BaseLayoutProps = { nav: { - title:

Logo
, + title: ( +
+ +

RNR

+
+ ), }, links: [ { diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx index 9b67cddf..d8040914 100644 --- a/apps/docs/app/layout.tsx +++ b/apps/docs/app/layout.tsx @@ -9,8 +9,8 @@ const inter = Inter({ export default function Layout({ children }: { children: ReactNode }) { return ( - - + + {children} diff --git a/apps/docs/components/icons/rnr-icon.tsx b/apps/docs/components/icons/rnr-icon.tsx new file mode 100644 index 00000000..6001781d --- /dev/null +++ b/apps/docs/components/icons/rnr-icon.tsx @@ -0,0 +1,60 @@ +import { cn } from '@/lib/utils'; + +export function RnrIcon({ + className, + strokeWidth = 24, + reactPathClassName, + ...props +}: React.ComponentProps<'svg'> & { reactPathClassName?: string }) { + return ( + + + + + + + + + + + + + + + ); +} diff --git a/apps/docs/components/ui-icon.tsx b/apps/docs/components/icons/ui-icon.tsx similarity index 88% rename from apps/docs/components/ui-icon.tsx rename to apps/docs/components/icons/ui-icon.tsx index 32bf7137..da213934 100644 --- a/apps/docs/components/ui-icon.tsx +++ b/apps/docs/components/icons/ui-icon.tsx @@ -1,11 +1,12 @@ import { cn } from '@/lib/utils'; -export function UiIcon({ className }: { className?: string }) { +export function UiIcon({ className, ...props }: React.ComponentProps<'svg'>) { return ( Date: Sun, 19 Jan 2025 14:29:22 -0500 Subject: [PATCH 022/467] fix(docs): rnr icon path attributes --- apps/docs/components/icons/rnr-icon.tsx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/docs/components/icons/rnr-icon.tsx b/apps/docs/components/icons/rnr-icon.tsx index 6001781d..8b9307ce 100644 --- a/apps/docs/components/icons/rnr-icon.tsx +++ b/apps/docs/components/icons/rnr-icon.tsx @@ -19,35 +19,35 @@ export function RnrIcon({ - + From bbfc9180f672ba6c47dc820dea07cfc7ab18913d Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 19 Jan 2025 14:29:51 -0500 Subject: [PATCH 023/467] fix(docs): preview card platform select --- apps/docs/components/preview-card/client.tsx | 35 ++++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/apps/docs/components/preview-card/client.tsx b/apps/docs/components/preview-card/client.tsx index b97c7089..55006405 100644 --- a/apps/docs/components/preview-card/client.tsx +++ b/apps/docs/components/preview-card/client.tsx @@ -37,15 +37,22 @@ export function PreviewCardClient({ platformCookie, }: PreviewCardClientProps) { const [platform, setPlatform] = React.useState(platformCookie ?? 'web'); + + function onValueChange(value: Platform) { + setPlatform(value); + setCookie('platform', value); + const event = new CustomEvent('cookieChange', { detail: { name: 'platform', value } }); + window.dispatchEvent(event); + } + return (
{ - setPlatform(value); - setCookie('platform', value); - }} + onValueChange={onValueChange} defaultValue={platformCookie} + setPlatform={setPlatform} + value={platform} />
@@ -56,20 +63,34 @@ export function PreviewCardClient({ ); } -function PlatformSwitcher({ defaultValue = 'web', ...props }: SelectProps) { +function PlatformSwitcher({ + setPlatform, + ...props +}: SelectProps & { setPlatform: (value: Platform) => void }) { const [isClient, setIsClient] = React.useState(false); React.useEffect(() => { setIsClient(true); + function handleCookieChange(ev: Event) { + const detail = (ev as Event & { detail: { name: string; value: Platform } }).detail; + if (detail.name === 'platform') { + setPlatform(detail.value); + } + } + + window.addEventListener('cookieChange', handleCookieChange); + return () => { + window.removeEventListener('cookieChange', handleCookieChange); + }; }, []); return ( - Platform: {!isClient ? ( - {PLATFORMS.find((platform) => platform.name === defaultValue)?.label} + {PLATFORMS.find((platform) => platform.name === props.value)?.label} ) : ( From 0932e61accee78c549123bc6cff557599a5610f2 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 19 Jan 2025 16:09:29 -0500 Subject: [PATCH 024/467] feat(docs): add button, add internal react-native, fix aspect-ratio --- apps/docs/app/global.css | 3 +- apps/docs/components/react-native.tsx | 15 + apps/docs/components/reusables.tsx | 2 +- apps/docs/content/docs/(components)/alert.mdx | 14 +- apps/docs/content/docs/(components)/badge.mdx | 26 +- .../docs/content/docs/(components)/button.mdx | 375 ++++++++++++++++++ apps/docs/lib/file-generator.ts | 3 +- apps/docs/next.config.mjs | 12 + apps/docs/package.json | 1 + .../{alert.tsx => alert/alert-default.tsx} | 0 .../{ => alert}/alert-destructive.tsx | 0 apps/docs/previews/aspect-ratio.tsx | 15 +- .../{badge.tsx => badge/badge-default.tsx} | 0 .../{ => badge}/badge-destructive.tsx | 0 .../previews/{ => badge}/badge-outline.tsx | 0 .../previews/{ => badge}/badge-secondary.tsx | 0 .../previews/button/button-destructive.tsx | 10 + apps/docs/previews/button/button-ghost.tsx | 10 + apps/docs/previews/button/button-icon.tsx | 10 + apps/docs/previews/button/button-link.tsx | 10 + apps/docs/previews/button/button-loading.tsx | 15 + apps/docs/previews/button/button-outline.tsx | 10 + apps/docs/previews/button/button-primary.tsx | 10 + .../docs/previews/button/button-secondary.tsx | 10 + .../docs/previews/button/button-with-icon.tsx | 12 + apps/docs/tsconfig.json | 2 +- .../reusables/src/components/ui/button.tsx | 4 +- packages/reusables/src/lib/icons/Loader2.tsx | 4 + packages/reusables/src/lib/icons/Mail.tsx | 2 +- packages/reusables/src/lib/icons/index.ts | 1 + pnpm-lock.yaml | 3 + 31 files changed, 545 insertions(+), 34 deletions(-) create mode 100644 apps/docs/components/react-native.tsx create mode 100644 apps/docs/content/docs/(components)/button.mdx rename apps/docs/previews/{alert.tsx => alert/alert-default.tsx} (100%) rename apps/docs/previews/{ => alert}/alert-destructive.tsx (100%) rename apps/docs/previews/{badge.tsx => badge/badge-default.tsx} (100%) rename apps/docs/previews/{ => badge}/badge-destructive.tsx (100%) rename apps/docs/previews/{ => badge}/badge-outline.tsx (100%) rename apps/docs/previews/{ => badge}/badge-secondary.tsx (100%) create mode 100644 apps/docs/previews/button/button-destructive.tsx create mode 100644 apps/docs/previews/button/button-ghost.tsx create mode 100644 apps/docs/previews/button/button-icon.tsx create mode 100644 apps/docs/previews/button/button-link.tsx create mode 100644 apps/docs/previews/button/button-loading.tsx create mode 100644 apps/docs/previews/button/button-outline.tsx create mode 100644 apps/docs/previews/button/button-primary.tsx create mode 100644 apps/docs/previews/button/button-secondary.tsx create mode 100644 apps/docs/previews/button/button-with-icon.tsx create mode 100644 packages/reusables/src/lib/icons/Loader2.tsx diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index 3a55b82c..c77c173e 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -67,5 +67,4 @@ body { @apply font-sans antialiased; } -} - +} \ No newline at end of file diff --git a/apps/docs/components/react-native.tsx b/apps/docs/components/react-native.tsx new file mode 100644 index 00000000..f9ed8730 --- /dev/null +++ b/apps/docs/components/react-native.tsx @@ -0,0 +1,15 @@ +import { cn } from '@/lib/utils'; +import NextImage, { ImageProps } from 'next/image'; + +export function View(props: React.ComponentProps<'div'>) { + return
; +} + +export function Image({ + fill = true, + source, + className, + ...props +}: Omit & { source: { uri: string } }) { + return ; +} diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index 8005648c..8cad5cd5 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -184,4 +184,4 @@ export const { const { Icons } = Lib; -export const { Terminal, AlertCircle } = Icons; +export const { Terminal, AlertCircle, ChevronRight, Mail, Loader2 } = Icons; diff --git a/apps/docs/content/docs/(components)/alert.mdx b/apps/docs/content/docs/(components)/alert.mdx index 3a65f0ce..af05f3d9 100644 --- a/apps/docs/content/docs/(components)/alert.mdx +++ b/apps/docs/content/docs/(components)/alert.mdx @@ -3,14 +3,14 @@ title: Alert description: Displays a callout for user attention. --- -import alertPreview from "!!raw-loader!@/previews/alert"; -import alertDestructivePreview from "!!raw-loader!@/previews/alert-destructive"; +import alertPreview from "!!raw-loader!@/previews/alert/alert-default"; +import alertDestructivePreview from "!!raw-loader!@/previews/alert/alert-destructive"; import { CommandTabs } from "@/components/command-tabs"; import { CopyButton } from "@/components/copy-button"; import { PreviewCard } from "@/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { AlertPreview } from "@/previews/alert"; -import { AlertDestructive } from "@/previews/alert-destructive"; +import { AlertPreview } from "@/previews/alert/alert-default"; +import { AlertDestructive } from "@/previews/alert/alert-destructive"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -27,7 +27,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/alert.tsx", + "file": "./previews/alert/alert-default.tsx", "codeblock": { "lang": "tsx" } @@ -105,7 +105,7 @@ import { Terminal } from '~/lib/icons/Terminal'; ```json doc-gen:file { - "file": "./previews/alert.tsx", + "file": "./previews/alert/alert-default.tsx", "codeblock": { "lang": "tsx" } @@ -130,7 +130,7 @@ import { Terminal } from '~/lib/icons/Terminal'; ```json doc-gen:file { - "file": "./previews/alert-destructive.tsx", + "file": "./previews/alert/alert-destructive.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/badge.mdx b/apps/docs/content/docs/(components)/badge.mdx index c542f733..bd5e6ce3 100644 --- a/apps/docs/content/docs/(components)/badge.mdx +++ b/apps/docs/content/docs/(components)/badge.mdx @@ -3,19 +3,19 @@ title: Badge description: Displays a badge or a component that looks like a badge. --- -import badgePreview from "!!raw-loader!@/previews/badge"; -import badgeDestructivePreview from "!!raw-loader!@/previews/badge-destructive"; -import badgeOutlinePreview from "!!raw-loader!@/previews/badge-outline"; -import badgeSecondaryPreview from "!!raw-loader!@/previews/badge-secondary"; +import badgePreview from "!!raw-loader!@/previews/badge/badge-default"; +import badgeDestructivePreview from "!!raw-loader!@/previews/badge/badge-destructive"; +import badgeOutlinePreview from "!!raw-loader!@/previews/badge/badge-outline"; +import badgeSecondaryPreview from "!!raw-loader!@/previews/badge/badge-secondary"; import { CommandTabs } from "@/components/command-tabs"; import { CopyButton } from "@/components/copy-button"; import { ExternalLinks } from "@/components/external-links"; import { PreviewCard } from "@/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { BadgePreview } from "@/previews/badge"; -import { BadgeDestructivePreview } from "@/previews/badge-destructive"; -import { BadgeOutlinePreview } from "@/previews/badge-outline"; -import { BadgeSecondaryPreview } from "@/previews/badge-secondary"; +import { BadgePreview } from "@/previews/badge/badge-default"; +import { BadgeDestructivePreview } from "@/previews/badge/badge-destructive"; +import { BadgeOutlinePreview } from "@/previews/badge/badge-outline"; +import { BadgeSecondaryPreview } from "@/previews/badge/badge-secondary"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -32,7 +32,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/badge.tsx", + "file": "./previews/badge/badge-default.tsx", "codeblock": { "lang": "tsx" } @@ -137,7 +137,7 @@ import { badgeVariants, badgeTextVariants } from "~/components/ui/badge" ```json doc-gen:file { - "file": "./previews/alert.tsx", + "file": "./previews/badge/badge-default.tsx", "codeblock": { "lang": "tsx" } @@ -162,7 +162,7 @@ import { badgeVariants, badgeTextVariants } from "~/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge-secondary.tsx", + "file": "./previews/badge/badge-secondary.tsx", "codeblock": { "lang": "tsx" } @@ -188,7 +188,7 @@ import { badgeVariants, badgeTextVariants } from "~/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge-outline.tsx", + "file": "./previews/badge/badge-outline.tsx", "codeblock": { "lang": "tsx" } @@ -214,7 +214,7 @@ import { badgeVariants, badgeTextVariants } from "~/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge-destructive.tsx", + "file": "./previews/badge/badge-destructive.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/button.mdx b/apps/docs/content/docs/(components)/button.mdx new file mode 100644 index 00000000..8cdd12d0 --- /dev/null +++ b/apps/docs/content/docs/(components)/button.mdx @@ -0,0 +1,375 @@ +--- +title: Button +description: Displays a button or a component that looks like a button. +--- + +import buttonPreview from "!!raw-loader!@/previews/button/button-primary"; +import buttonDestructivePreview from "!!raw-loader!@/previews/button/button-destructive"; +import buttonOutlinePreview from "!!raw-loader!@/previews/button/button-outline"; +import buttonSecondaryPreview from "!!raw-loader!@/previews/button/button-secondary"; +import buttonGhostPreview from "!!raw-loader!@/previews/button/button-ghost"; +import buttonLinkPreview from "!!raw-loader!@/previews/button/button-link"; +import buttonIconPreview from "!!raw-loader!@/previews/button/button-icon"; +import buttonWithIconPreview from "!!raw-loader!@/previews/button/button-with-icon"; +import buttonLoadingPreview from "!!raw-loader!@/previews/button/button-loading"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { ButtonPreview } from "@/previews/button/button-primary"; +import { ButtonDestructivePreview } from "@/previews/button/button-destructive"; +import { ButtonOutlinePreview } from "@/previews/button/button-outline"; +import { ButtonSecondaryPreview } from "@/previews/button/button-secondary"; +import { ButtonGhostPreview } from "@/previews/button/button-ghost"; +import { ButtonLinkPreview } from "@/previews/button/button-link"; +import { ButtonIconPreview } from "@/previews/button/button-icon"; +import { ButtonWithIconPreview } from "@/previews/button/button-with-icon"; +import { ButtonLoadingPreview } from "@/previews/button/button-loading"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-primary.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependencies: + + ``` + npx expo install @rn-primitives/types @rn-primitives/slot + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/button.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/button.tsx\"" + } + } + ``` + + + + + + + +### Usage + +```tsx +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +``` + +```tsx + +``` + +#### Link + +You can use the `buttonVariants` and `buttonTextVariants` helpers to create a link that looks like a button. + +```tsx +import { buttonVariants, buttonTextVariants } from "~/components/ui/button" +``` + +```tsx + + Click here + +``` + +Alternatively, you can set the `asChild` parameter and nest the link component. + +```tsx + +``` + +### Examples + +#### Primary + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-primary.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +
+ +#### Secondary + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-secondary.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### Destructive + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-destructive.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### Outline + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-outline.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### Ghost + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-ghost.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### Link + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-link.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### Icon + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-icon.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### With Icon + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-with-icon.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +
+ +#### Loading + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/button/button-loading.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + \ No newline at end of file diff --git a/apps/docs/lib/file-generator.ts b/apps/docs/lib/file-generator.ts index cbdd431e..a84a3c41 100644 --- a/apps/docs/lib/file-generator.ts +++ b/apps/docs/lib/file-generator.ts @@ -60,5 +60,6 @@ function fixImports(value: string) { .replace('./typography', '~/components/ui/typography') .replace('./text', '~/components/ui/text') .replaceAll('../../components', '~/components') - .replaceAll('../../lib', '~/lib'); + .replaceAll('../../lib', '~/lib') + .replaceAll('@/components/react-native', 'react-native'); } diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 77494002..f9c34c42 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -18,6 +18,18 @@ const config = { 'react-native-swipe-gestures', 'react-native-toast-message', ], + images: { + remotePatterns: [ + { + protocol: 'https', + hostname: 'avatars.githubusercontent.com', + }, + { + protocol: 'https', + hostname: 'images.unsplash.com', + }, + ], + }, experimental: { forceSwcTransforms: true, }, diff --git a/apps/docs/package.json b/apps/docs/package.json index db0d4139..ffc4014e 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -26,6 +26,7 @@ "next": "^14.2.15", "react": "18.3.1", "react-dom": "18.3.1", + "react-native": "0.76.6", "react-native-reanimated": "~3.16.1", "react-native-svg": "15.8.0", "react-native-web": "~0.19.13", diff --git a/apps/docs/previews/alert.tsx b/apps/docs/previews/alert/alert-default.tsx similarity index 100% rename from apps/docs/previews/alert.tsx rename to apps/docs/previews/alert/alert-default.tsx diff --git a/apps/docs/previews/alert-destructive.tsx b/apps/docs/previews/alert/alert-destructive.tsx similarity index 100% rename from apps/docs/previews/alert-destructive.tsx rename to apps/docs/previews/alert/alert-destructive.tsx diff --git a/apps/docs/previews/aspect-ratio.tsx b/apps/docs/previews/aspect-ratio.tsx index a7b8b19b..688142ef 100644 --- a/apps/docs/previews/aspect-ratio.tsx +++ b/apps/docs/previews/aspect-ratio.tsx @@ -1,13 +1,16 @@ import { AspectRatio } from '~/components/ui/aspect-ratio'; -import { Text } from '~/components/ui/text'; +import { Image } from '@/components/react-native'; export function AspectRatioPreview() { return ( - - 16:9 + + Photo by Drew Beamer ); } diff --git a/apps/docs/previews/badge.tsx b/apps/docs/previews/badge/badge-default.tsx similarity index 100% rename from apps/docs/previews/badge.tsx rename to apps/docs/previews/badge/badge-default.tsx diff --git a/apps/docs/previews/badge-destructive.tsx b/apps/docs/previews/badge/badge-destructive.tsx similarity index 100% rename from apps/docs/previews/badge-destructive.tsx rename to apps/docs/previews/badge/badge-destructive.tsx diff --git a/apps/docs/previews/badge-outline.tsx b/apps/docs/previews/badge/badge-outline.tsx similarity index 100% rename from apps/docs/previews/badge-outline.tsx rename to apps/docs/previews/badge/badge-outline.tsx diff --git a/apps/docs/previews/badge-secondary.tsx b/apps/docs/previews/badge/badge-secondary.tsx similarity index 100% rename from apps/docs/previews/badge-secondary.tsx rename to apps/docs/previews/badge/badge-secondary.tsx diff --git a/apps/docs/previews/button/button-destructive.tsx b/apps/docs/previews/button/button-destructive.tsx new file mode 100644 index 00000000..970813bc --- /dev/null +++ b/apps/docs/previews/button/button-destructive.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +export function ButtonDestructivePreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-ghost.tsx b/apps/docs/previews/button/button-ghost.tsx new file mode 100644 index 00000000..d8db5918 --- /dev/null +++ b/apps/docs/previews/button/button-ghost.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +export function ButtonGhostPreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-icon.tsx b/apps/docs/previews/button/button-icon.tsx new file mode 100644 index 00000000..97a07964 --- /dev/null +++ b/apps/docs/previews/button/button-icon.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { ChevronRight } from '~/lib/icons/ChevronRight'; + +export function ButtonIconPreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-link.tsx b/apps/docs/previews/button/button-link.tsx new file mode 100644 index 00000000..fe517b8e --- /dev/null +++ b/apps/docs/previews/button/button-link.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +export function ButtonLinkPreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-loading.tsx b/apps/docs/previews/button/button-loading.tsx new file mode 100644 index 00000000..08500fca --- /dev/null +++ b/apps/docs/previews/button/button-loading.tsx @@ -0,0 +1,15 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; +import { Loader2 } from '~/lib/icons/Loader2'; +import { View } from '@/components/react-native'; + +export function ButtonLoadingPreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-outline.tsx b/apps/docs/previews/button/button-outline.tsx new file mode 100644 index 00000000..d4d03ad1 --- /dev/null +++ b/apps/docs/previews/button/button-outline.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +export function ButtonOutlinePreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-primary.tsx b/apps/docs/previews/button/button-primary.tsx new file mode 100644 index 00000000..b708914f --- /dev/null +++ b/apps/docs/previews/button/button-primary.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +export function ButtonPreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-secondary.tsx b/apps/docs/previews/button/button-secondary.tsx new file mode 100644 index 00000000..d6450b34 --- /dev/null +++ b/apps/docs/previews/button/button-secondary.tsx @@ -0,0 +1,10 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; + +export function ButtonSecondaryPreview() { + return ( + + ); +} diff --git a/apps/docs/previews/button/button-with-icon.tsx b/apps/docs/previews/button/button-with-icon.tsx new file mode 100644 index 00000000..d3ee966b --- /dev/null +++ b/apps/docs/previews/button/button-with-icon.tsx @@ -0,0 +1,12 @@ +import { Button } from '~/components/ui/button'; +import { Text } from '~/components/ui/text'; +import { Mail } from '~/lib/icons/Mail'; + +export function ButtonWithIconPreview() { + return ( + + ); +} diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index c305a982..0ebaaf43 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -29,7 +29,7 @@ ], "~/lib/icons/*": [ "./components/reusables" - ], + ] }, "plugins": [ { diff --git a/packages/reusables/src/components/ui/button.tsx b/packages/reusables/src/components/ui/button.tsx index 3e197279..87167445 100644 --- a/packages/reusables/src/components/ui/button.tsx +++ b/packages/reusables/src/components/ui/button.tsx @@ -5,7 +5,7 @@ import { cn } from '../../lib/utils'; import { TextClassContext } from './text'; const buttonVariants = cva( - 'group flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2', + 'group flex flex-row gap-2 items-center justify-center rounded-md web:whitespace-nowrap web:ring-offset-background web:transition-colors web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 web:[&_svg]:pointer-events-none web:[&_svg]:size-4 web:[&_svg]:shrink-0', { variants: { variant: { @@ -32,7 +32,7 @@ const buttonVariants = cva( ); const buttonTextVariants = cva( - 'web:whitespace-nowrap text-sm native:text-base font-medium text-foreground web:transition-colors', + 'text-sm native:text-base font-medium text-foreground web:transition-colors', { variants: { variant: { diff --git a/packages/reusables/src/lib/icons/Loader2.tsx b/packages/reusables/src/lib/icons/Loader2.tsx new file mode 100644 index 00000000..56cf8a24 --- /dev/null +++ b/packages/reusables/src/lib/icons/Loader2.tsx @@ -0,0 +1,4 @@ +import { Loader2 } from 'lucide-react-native'; +import { iconWithClassName } from './iconWithClassName'; +iconWithClassName(Loader2); +export { Loader2 }; diff --git a/packages/reusables/src/lib/icons/Mail.tsx b/packages/reusables/src/lib/icons/Mail.tsx index 679717d4..43635c65 100644 --- a/packages/reusables/src/lib/icons/Mail.tsx +++ b/packages/reusables/src/lib/icons/Mail.tsx @@ -1,4 +1,4 @@ import { Mail } from 'lucide-react-native'; import { iconWithClassName } from './iconWithClassName'; iconWithClassName(Mail); -export { Mail }; \ No newline at end of file +export { Mail }; diff --git a/packages/reusables/src/lib/icons/index.ts b/packages/reusables/src/lib/icons/index.ts index ef270ee9..74e33a69 100644 --- a/packages/reusables/src/lib/icons/index.ts +++ b/packages/reusables/src/lib/icons/index.ts @@ -37,6 +37,7 @@ export { Italic } from './Italic'; export { Lamp } from './Lamp'; export { LayoutPanelLeft } from './LayoutPanelLeft'; export { LifeBuoy } from './LifeBuoy'; +export { Loader2 } from './Loader2'; export { LogOut } from './LogOut'; export { Mail } from './Mail'; export { MenuSquare } from './MenuSquare'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd6b75ac..cc507c5a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -170,6 +170,9 @@ importers: react-dom: specifier: 18.3.1 version: 18.3.1(react@18.3.1) + react-native: + specifier: 0.76.6 + version: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1) react-native-reanimated: specifier: ~3.16.1 version: 3.16.7(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) From e59a8ca0346fe728475fed7827e431d1ca496e3d Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 20 Jan 2025 15:21:07 -0500 Subject: [PATCH 025/467] feat(docs): add card --- apps/docs/components/preview-card/index.tsx | 8 +- .../{client.tsx => preview-card-client.tsx} | 4 +- apps/docs/components/react-native.tsx | 7 +- apps/docs/components/reusables.tsx | 2 +- apps/docs/content/docs/(components)/card.mdx | 143 ++++++++++++++++++ apps/docs/previews/card/card-default.tsx | 69 +++++++++ apps/docs/previews/card/card-example.tsx | 73 +++++++++ 7 files changed, 297 insertions(+), 9 deletions(-) rename apps/docs/components/preview-card/{client.tsx => preview-card-client.tsx} (96%) create mode 100644 apps/docs/content/docs/(components)/card.mdx create mode 100644 apps/docs/previews/card/card-default.tsx create mode 100644 apps/docs/previews/card/card-example.tsx diff --git a/apps/docs/components/preview-card/index.tsx b/apps/docs/components/preview-card/index.tsx index 09cd1682..55dd9cf0 100644 --- a/apps/docs/components/preview-card/index.tsx +++ b/apps/docs/components/preview-card/index.tsx @@ -1,9 +1,13 @@ import { cookies } from 'next/headers'; -import { type PreviewCardClientProps, type Platform, PreviewCardClient } from './client'; +import { + type PreviewCardClientProps, + type Platform, + PreviewCardClient, +} from './preview-card-client'; type PreviewCardProps = Omit; -export async function PreviewCard(props: PreviewCardProps) { +export function PreviewCard(props: PreviewCardProps) { const cookieStore = cookies(); const platformCookie = cookieStore.get('platform')?.value as Platform; return ; diff --git a/apps/docs/components/preview-card/client.tsx b/apps/docs/components/preview-card/preview-card-client.tsx similarity index 96% rename from apps/docs/components/preview-card/client.tsx rename to apps/docs/components/preview-card/preview-card-client.tsx index 55006405..12a08927 100644 --- a/apps/docs/components/preview-card/client.tsx +++ b/apps/docs/components/preview-card/preview-card-client.tsx @@ -46,7 +46,7 @@ export function PreviewCardClient({ } return ( -
+
-
+
{platform === 'android' ? androidPreview : platform === 'ios' ? iosPreview : webPreview}
diff --git a/apps/docs/components/react-native.tsx b/apps/docs/components/react-native.tsx index f9ed8730..d6fb60ec 100644 --- a/apps/docs/components/react-native.tsx +++ b/apps/docs/components/react-native.tsx @@ -1,15 +1,14 @@ import { cn } from '@/lib/utils'; import NextImage, { ImageProps } from 'next/image'; -export function View(props: React.ComponentProps<'div'>) { - return
; +export function View({ className, ...props }: React.ComponentProps<'div'>) { + return
; } export function Image({ fill = true, source, - className, ...props }: Omit & { source: { uri: string } }) { - return ; + return ; } diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index 8cad5cd5..d4d76849 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -184,4 +184,4 @@ export const { const { Icons } = Lib; -export const { Terminal, AlertCircle, ChevronRight, Mail, Loader2 } = Icons; +export const { Terminal, AlertCircle, ChevronRight, Mail, Loader2, Check, Sparkles } = Icons; diff --git a/apps/docs/content/docs/(components)/card.mdx b/apps/docs/content/docs/(components)/card.mdx new file mode 100644 index 00000000..3b408569 --- /dev/null +++ b/apps/docs/content/docs/(components)/card.mdx @@ -0,0 +1,143 @@ +--- +title: Card +description: Displays a card with header, content, and footer. +--- + +import cardPreview from "!!raw-loader!@/previews/card/card-default"; +import cardExample from "!!raw-loader!@/previews/card/card-example"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { CardPreview } from "@/previews/card/card-default"; +import { CardExample } from "@/previews/card/card-example"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/card/card-default.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependencies: + + ``` + npx expo install @rn-primitives/types + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/card.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/card.tsx\"" + } + } + ``` + + + + + + + +### Usage + +```tsx +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '~/components/ui/card'; +import { Text } from '~/components/ui/text'; + +``` + +```tsx + + + Card Title + Card Description + + + Card Content + + + Card Footer + + +``` + +### Example + + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/card/card-example.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + diff --git a/apps/docs/previews/card/card-default.tsx b/apps/docs/previews/card/card-default.tsx new file mode 100644 index 00000000..3ddb6417 --- /dev/null +++ b/apps/docs/previews/card/card-default.tsx @@ -0,0 +1,69 @@ +import { View } from '@/components/react-native'; +import { Button } from '~/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '~/components/ui/card'; +import { Input } from '~/components/ui/input'; +import { Label } from '~/components/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '~/components/ui/select'; +import { Text } from '~/components/ui/text'; + +export function CardPreview() { + return ( + + + Create project + Deploy your new project in one-click. + + + + + + + + + + + + + + + + + + + ); +} diff --git a/apps/docs/previews/card/card-example.tsx b/apps/docs/previews/card/card-example.tsx new file mode 100644 index 00000000..3733f253 --- /dev/null +++ b/apps/docs/previews/card/card-example.tsx @@ -0,0 +1,73 @@ +import { View } from '@/components/react-native'; +import { Button } from '~/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '~/components/ui/card'; +import { Switch } from '~/components/ui/switch'; +import { Text } from '~/components/ui/text'; +import { Check } from '~/lib/icons/Check'; +import { Sparkles } from '~/lib/icons/Sparkles'; + +const NOTIFICATIONS = [ + { + title: 'Your call has been confirmed.', + description: '1 hour ago', + }, + { + title: 'You have a new message!', + description: '1 hour ago', + }, + { + title: 'Your subscription is expiring soon!', + description: '2 hours ago', + }, +]; + +export function CardExample() { + return ( + + + Notifications + You have 3 unread messages. + + + + + + Push Notifications + + Send notifications to device. + + + {/* @ts-expect-error requires onCheckedChange prop */} + + + + {NOTIFICATIONS.map((notification, index) => ( + + + + + + + {notification.title} + + {notification.description} + + + ))} + + + + + + + ); +} From 1baad3f574256d91d6e55ae5925b6f87f2c53187 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 20 Jan 2025 17:06:05 -0500 Subject: [PATCH 026/467] feat(docs): add wip checkbox + collapsible --- apps/docs/components/reusables.tsx | 12 +- .../content/docs/(components)/checkbox.mdx | 98 ++++++++++++++++ .../content/docs/(components)/collapsible.mdx | 105 ++++++++++++++++++ apps/docs/previews/card/card-example.tsx | 1 + .../previews/checkbox/checkbox-default.tsx | 15 +++ .../collapsible/collapsible-native.tsx | 53 +++++++++ .../previews/collapsible/collapsible-web.tsx | 40 +++++++ 7 files changed, 323 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/docs/(components)/checkbox.mdx create mode 100644 apps/docs/content/docs/(components)/collapsible.mdx create mode 100644 apps/docs/previews/checkbox/checkbox-default.tsx create mode 100644 apps/docs/previews/collapsible/collapsible-native.tsx create mode 100644 apps/docs/previews/collapsible/collapsible-web.tsx diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index d4d76849..fd65ccdb 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -184,4 +184,14 @@ export const { const { Icons } = Lib; -export const { Terminal, AlertCircle, ChevronRight, Mail, Loader2, Check, Sparkles } = Icons; +export const { + Terminal, + AlertCircle, + ChevronRight, + Mail, + Loader2, + Check, + Sparkles, + ChevronsDownUp, + ChevronsUpDown, +} = Icons; diff --git a/apps/docs/content/docs/(components)/checkbox.mdx b/apps/docs/content/docs/(components)/checkbox.mdx new file mode 100644 index 00000000..d3977f2f --- /dev/null +++ b/apps/docs/content/docs/(components)/checkbox.mdx @@ -0,0 +1,98 @@ +--- +title: Checkbox +description: A control that allows the user to toggle between checked and not checked. +--- + +import checkboxPreview from "!!raw-loader!@/previews/avatar"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { CheckboxPreview } from "@/previews/checkbox/checkbox-default"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/checkbox/checkbox-default.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/checkbox + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/checkbox.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/checkbox.tsx\"" + } + } + ``` + + + + + + + +### Usage + +```tsx +import { Checkbox } from "@/components/ui/checkbox" + +``` + +```tsx + +``` + +// TODO: Add more examples diff --git a/apps/docs/content/docs/(components)/collapsible.mdx b/apps/docs/content/docs/(components)/collapsible.mdx new file mode 100644 index 00000000..4ea9b54d --- /dev/null +++ b/apps/docs/content/docs/(components)/collapsible.mdx @@ -0,0 +1,105 @@ +--- +title: Collapsible +description: A control that allows the user to toggle between checked and not checked. +--- + +import collapsiblePreview from "!!raw-loader!@/previews/collapsible/collapsible-web"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { CollapsiblePreview } from "@/previews/collapsible/collapsible-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/collapsible/collapsible-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/collapsible + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/collapsible.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/collapsible.tsx\"" + } + } + ``` + + + + + + + +### Usage + +```tsx +import { Collapsible } from "@/components/ui/collapsible" +import { Text } from "@/components/ui/text" + +``` + +```tsx + + + Can I use this in my project? + + + Yes. Free to use for personal and commercial projects. No attribution + required. + + +``` \ No newline at end of file diff --git a/apps/docs/previews/card/card-example.tsx b/apps/docs/previews/card/card-example.tsx index 3733f253..bd001a99 100644 --- a/apps/docs/previews/card/card-example.tsx +++ b/apps/docs/previews/card/card-example.tsx @@ -44,6 +44,7 @@ export function CardExample() { Send notifications to device. + {/* TODO */} {/* @ts-expect-error requires onCheckedChange prop */} diff --git a/apps/docs/previews/checkbox/checkbox-default.tsx b/apps/docs/previews/checkbox/checkbox-default.tsx new file mode 100644 index 00000000..5dc46276 --- /dev/null +++ b/apps/docs/previews/checkbox/checkbox-default.tsx @@ -0,0 +1,15 @@ +import { View } from '@/components/react-native'; +import { Checkbox } from '~/components/ui/checkbox'; +import { Label } from '~/components/ui/label'; + +export function CheckboxPreview() { + return ( + + {/* TODO */} + + + + ); +} diff --git a/apps/docs/previews/collapsible/collapsible-native.tsx b/apps/docs/previews/collapsible/collapsible-native.tsx new file mode 100644 index 00000000..8e0f5acb --- /dev/null +++ b/apps/docs/previews/collapsible/collapsible-native.tsx @@ -0,0 +1,53 @@ +import { Platform, Text, View } from 'react-native'; +import Animated, { FadeInDown, LinearTransition } from 'react-native-reanimated'; +import { Button } from '~/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '~/components/ui/collapsible'; +import { ChevronsUpDown } from '~/lib/icons/ChevronsUpDown'; + +export function CollapsiblePreview() { + return ( + + + + + + @peduarte starred 3 repositories + + + + + + + @radix-ui/primitives + + + @radix-ui/react + @stitches/core + + + + + ); +} + +function CollapsibleItem({ children, delay }: { children: string; delay: number }) { + if (Platform.OS === 'web') { + return ( + + {children} + + ); + } + + return ( + + {children} + + ); +} diff --git a/apps/docs/previews/collapsible/collapsible-web.tsx b/apps/docs/previews/collapsible/collapsible-web.tsx new file mode 100644 index 00000000..f3ade3bf --- /dev/null +++ b/apps/docs/previews/collapsible/collapsible-web.tsx @@ -0,0 +1,40 @@ +import { View } from '@/components/react-native'; +import { Button } from '~/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '~/components/ui/collapsible'; +import { Text } from '~/components/ui/text'; +import { ChevronsUpDown } from '~/lib/icons/ChevronsUpDown'; + +export function CollapsiblePreview() { + return ( + + + + @peduarte starred 3 repositories + + + + + + + @radix-ui/primitives + + + @radix-ui/react + @stitches/core + + + ); +} + +function CollapsibleItem({ children }: { children: string }) { + return ( + + {children} + + ); +} From 5f351e82e9c96cb4e2b000ad771233d7a9ed6622 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 24 Jan 2025 15:19:21 -0500 Subject: [PATCH 027/467] feat(docs): add coming soon to ios and android preview card selections --- apps/docs/components/preview-card/preview-card-client.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/docs/components/preview-card/preview-card-client.tsx b/apps/docs/components/preview-card/preview-card-client.tsx index 12a08927..c8755c91 100644 --- a/apps/docs/components/preview-card/preview-card-client.tsx +++ b/apps/docs/components/preview-card/preview-card-client.tsx @@ -57,7 +57,11 @@ export function PreviewCardClient({
- {platform === 'android' ? androidPreview : platform === 'ios' ? iosPreview : webPreview} + {platform === 'android' + ? androidPreview ?? Coming soon... + : platform === 'ios' + ? iosPreview ?? Coming soon... + : webPreview}
); From b809f42dea9507f704c9129b38e5abd000bb1d9d Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 24 Jan 2025 15:20:12 -0500 Subject: [PATCH 028/467] feat(docs): add context menu + portal info alert + portal to side nav --- apps/docs/app/docs/[[...slug]]/page.tsx | 2 +- apps/docs/components/portal-info-alert.tsx | 18 +++ apps/docs/components/ui/alert.tsx | 49 +++++++ .../docs/(components)/alert-dialog.mdx | 3 + .../docs/(components)/context-menu.mdx | 123 ++++++++++++++++++ apps/docs/content/docs/index.mdx | 6 + apps/docs/content/docs/meta.json | 2 + apps/docs/content/docs/portal.mdx | 13 ++ .../context-menu/context-menu-native.tsx | 108 +++++++++++++++ .../context-menu/context-menu-web.tsx | 88 +++++++++++++ 10 files changed, 411 insertions(+), 1 deletion(-) create mode 100644 apps/docs/components/portal-info-alert.tsx create mode 100644 apps/docs/components/ui/alert.tsx create mode 100644 apps/docs/content/docs/(components)/context-menu.mdx create mode 100644 apps/docs/content/docs/portal.mdx create mode 100644 apps/docs/previews/context-menu/context-menu-native.tsx create mode 100644 apps/docs/previews/context-menu/context-menu-web.tsx diff --git a/apps/docs/app/docs/[[...slug]]/page.tsx b/apps/docs/app/docs/[[...slug]]/page.tsx index 8b09e09e..3559e213 100644 --- a/apps/docs/app/docs/[[...slug]]/page.tsx +++ b/apps/docs/app/docs/[[...slug]]/page.tsx @@ -34,7 +34,7 @@ export default async function Page(props: { params: Promise<{ slug?: string[] }> ), h3: ({ className, ...props }) => ( -

+

), }} /> diff --git a/apps/docs/components/portal-info-alert.tsx b/apps/docs/components/portal-info-alert.tsx new file mode 100644 index 00000000..ced6974e --- /dev/null +++ b/apps/docs/components/portal-info-alert.tsx @@ -0,0 +1,18 @@ +import { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'; +import { InfoIcon } from 'lucide-react'; + +export function PortalInfoAlert() { + return ( + + + Note + + A{' '} + + PortalHost + {' '} + is required at the root of your project for this to work on native platforms. + + + ); +} diff --git a/apps/docs/components/ui/alert.tsx b/apps/docs/components/ui/alert.tsx new file mode 100644 index 00000000..c39221da --- /dev/null +++ b/apps/docs/components/ui/alert.tsx @@ -0,0 +1,49 @@ +import * as React from 'react'; +import { cva, type VariantProps } from 'class-variance-authority'; + +import { cn } from '@/lib/utils'; + +const alertVariants = cva( + 'not-prose relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground', + { + variants: { + variant: { + default: 'bg-background text-foreground', + destructive: + 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive', + }, + }, + defaultVariants: { + variant: 'default', + }, + } +); + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)); +Alert.displayName = 'Alert'; + +const AlertTitle = React.forwardRef>( + ({ className, ...props }, ref) => ( +
+ ) +); +AlertTitle.displayName = 'AlertTitle'; + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)); +AlertDescription.displayName = 'AlertDescription'; + +export { Alert, AlertTitle, AlertDescription }; diff --git a/apps/docs/content/docs/(components)/alert-dialog.mdx b/apps/docs/content/docs/(components)/alert-dialog.mdx index 0a943262..18b010b6 100644 --- a/apps/docs/content/docs/(components)/alert-dialog.mdx +++ b/apps/docs/content/docs/(components)/alert-dialog.mdx @@ -7,6 +7,7 @@ import alertDialogPreview from "!!raw-loader!@/previews/alert-dialog"; import { CommandTabs } from "@/components/command-tabs"; import { CopyButton } from "@/components/copy-button"; import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; import { PreviewCard } from "@/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; import { AlertDialogPreview } from "@/previews/alert-dialog"; @@ -110,6 +111,8 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage + + ```tsx import { AlertDialog, diff --git a/apps/docs/content/docs/(components)/context-menu.mdx b/apps/docs/content/docs/(components)/context-menu.mdx new file mode 100644 index 00000000..d891254c --- /dev/null +++ b/apps/docs/content/docs/(components)/context-menu.mdx @@ -0,0 +1,123 @@ +--- +title: Context Menu +description: Displays a menu to the user — such as a set of actions or functions — triggered by a button. +--- + +import contextMenuPreview from "!!raw-loader!@/previews/context-menu/context-menu-web"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { ContextMenuPreview } from "@/previews/context-menu/context-menu-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/context-menu/context-menu-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/context-menu + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/context-menu.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/context-menu.tsx\"" + } + } + ``` + + + + + + + +### Usage + + + +```tsx +import { + ContextMenu, + ContextMenuContent, + ContextMenuItem, + ContextMenuTrigger, +} from '~/components/ui/context-menu'; +import { Text } from '~/components/ui/text'; + +``` + +```tsx + + + Right click + + + + Profile + + + Billing + + + Team + + + Subscription + + + +``` \ No newline at end of file diff --git a/apps/docs/content/docs/index.mdx b/apps/docs/content/docs/index.mdx index ee3a4e4a..6fede855 100644 --- a/apps/docs/content/docs/index.mdx +++ b/apps/docs/content/docs/index.mdx @@ -12,6 +12,12 @@ import { Welcome to the docs! You can start writing documents in `/content/docs`. +Differences: +- Portal +- No cascading styles +- Use of reanimated +- rn-primitives + diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 79bf8724..442aa1fd 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -8,10 +8,12 @@ "!index", "!installation", "!icons", + "!portal", "!cli", "[DoorOpen][Introduction](/docs)", "[FolderDown][Installation](/docs/installation)", "[Library][Icons](/docs/icons)", + "[Replace][Portal](/docs/portal)", "[SquareTerminal][CLI](/docs/cli)", "---Customization---", "!components-json", diff --git a/apps/docs/content/docs/portal.mdx b/apps/docs/content/docs/portal.mdx new file mode 100644 index 00000000..0a0e0261 --- /dev/null +++ b/apps/docs/content/docs/portal.mdx @@ -0,0 +1,13 @@ +--- +title: Portal +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/previews/context-menu/context-menu-native.tsx b/apps/docs/previews/context-menu/context-menu-native.tsx new file mode 100644 index 00000000..b3b8e651 --- /dev/null +++ b/apps/docs/previews/context-menu/context-menu-native.tsx @@ -0,0 +1,108 @@ +import * as React from 'react'; +import { Platform } from 'react-native'; +import Animated, { FadeIn } from 'react-native-reanimated'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { + ContextMenu, + ContextMenuCheckboxItem, + ContextMenuContent, + ContextMenuItem, + ContextMenuLabel, + ContextMenuRadioGroup, + ContextMenuRadioItem, + ContextMenuSeparator, + ContextMenuShortcut, + ContextMenuSub, + ContextMenuSubContent, + ContextMenuSubTrigger, + ContextMenuTrigger, +} from '~/components/ui/context-menu'; +import { Text } from '~/components/ui/text'; + +export function ContextMenuPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + const [checkboxValue, setCheckboxValue] = React.useState(false); + const [subCheckboxValue, setSubCheckboxValue] = React.useState(false); + const [radioValue, setRadioValue] = React.useState('pedro'); + + return ( + + + + {Platform.OS === 'web' ? 'Right click here' : 'Long press here'} + + + + + + Back + ⌘[ + + + Forward + ⌘] + + + Reload + ⌘R + + + + + More Tools + + + + + Save Page As... + ⇧⌘S + + + Create Shortcut... + + + + + Developer Tools + + + + + + + + Show Bookmarks Bar + ⌘⇧B + + + Show Full URLs + + + + People + + + Elmer Fudd + + + Foghorn Leghorn + + + + + ); +} diff --git a/apps/docs/previews/context-menu/context-menu-web.tsx b/apps/docs/previews/context-menu/context-menu-web.tsx new file mode 100644 index 00000000..b2a5183c --- /dev/null +++ b/apps/docs/previews/context-menu/context-menu-web.tsx @@ -0,0 +1,88 @@ +import { + ContextMenu, + ContextMenuCheckboxItem, + ContextMenuContent, + ContextMenuItem, + ContextMenuLabel, + ContextMenuRadioGroup, + ContextMenuRadioItem, + ContextMenuSeparator, + ContextMenuShortcut, + ContextMenuSub, + ContextMenuSubContent, + ContextMenuSubTrigger, + ContextMenuTrigger, +} from '~/components/ui/context-menu'; +import { Text } from '~/components/ui/text'; + +// TODO(zach): update primitives for options value and onChange + +export function ContextMenuPreview() { + return ( + + + + + + + + Back + ⌘[ + + + Forward + ⌘] + + + Reload + ⌘R + + + + + More Tools + + + + Save Page As... + ⇧⌘S + + + Create Shortcut... + + + + + Developer Tools + + + + + + + Show Bookmarks Bar + ⌘⇧B + + + Show Full URLs + + + + People + + + Elmer Fudd + + + Foghorn Leghorn + + + + + ); +} From 629bddab29b49e74911e5de2b0e2f369925fac6c Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 24 Jan 2025 16:09:53 -0500 Subject: [PATCH 029/467] feat(docs): wip landing page --- apps/docs/app/(home)/page.tsx | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index a7229f07..f61afaf2 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -1,16 +1,28 @@ +import { Button } from '@/components/ui/button'; import Link from 'next/link'; export default function HomePage() { return ( -
-

Hello World

-

- You can open{' '} - - /docs - {' '} - and see the documentation. -

+
+
+
+

+ A port of{' '} + + shadcn/ui + +

+

+ Bringing shadcn/ui to React Native. Beautifully crafted components with NativeWind, open + source, and almost as easy to use. +

+
+
+ +
+
); } From f94e4bdc341812d0b0b8089fc2be7b3c469aa1a5 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 25 Jan 2025 14:21:11 -0500 Subject: [PATCH 030/467] feat(docs): add dialog --- .../docs/(components)/context-menu.mdx | 11 ++ .../docs/content/docs/(components)/dialog.mdx | 118 ++++++++++++++++++ apps/docs/previews/dialog/dialog-native.tsx | 59 +++++++++ apps/docs/previews/dialog/dialog-web.tsx | 61 +++++++++ 4 files changed, 249 insertions(+) create mode 100644 apps/docs/content/docs/(components)/dialog.mdx create mode 100644 apps/docs/previews/dialog/dialog-native.tsx create mode 100644 apps/docs/previews/dialog/dialog-web.tsx diff --git a/apps/docs/content/docs/(components)/context-menu.mdx b/apps/docs/content/docs/(components)/context-menu.mdx index d891254c..0ad77493 100644 --- a/apps/docs/content/docs/(components)/context-menu.mdx +++ b/apps/docs/content/docs/(components)/context-menu.mdx @@ -69,6 +69,17 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + ```json doc-gen:file { "file": "./node_modules/@rnr/reusables/src/components/ui/context-menu.tsx", diff --git a/apps/docs/content/docs/(components)/dialog.mdx b/apps/docs/content/docs/(components)/dialog.mdx new file mode 100644 index 00000000..6a14287b --- /dev/null +++ b/apps/docs/content/docs/(components)/dialog.mdx @@ -0,0 +1,118 @@ +--- +title: Dialog +description: A window overlaid on either the primary window or another dialog window, rendering the content underneath inert. +--- + +import dialogPreview from "!!raw-loader!@/previews/dialog/dialog-native"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { DialogPreview } from "@/previews/dialog/dialog-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/dialog/dialog-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/dialog + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/dialog.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/dialog.tsx\"" + } + } + ``` + + + + + + + +### Usage + + + +```tsx +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, + DialogTrigger, +} from "@/components/ui/dialog" +``` + +```tsx + + + Open + + + + Are you absolutely sure? + + This action cannot be undone. This will permanently delete your account and remove your data + from our servers. + + + + +``` \ No newline at end of file diff --git a/apps/docs/previews/dialog/dialog-native.tsx b/apps/docs/previews/dialog/dialog-native.tsx new file mode 100644 index 00000000..02e80e30 --- /dev/null +++ b/apps/docs/previews/dialog/dialog-native.tsx @@ -0,0 +1,59 @@ +import { View } from '@/components/react-native'; +import { Button } from '~/components/ui/button'; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '~/components/ui/dialog'; +import { Label } from '~/components/ui/label'; +import { Input } from '~/components/ui/input'; +import { Text } from '~/components/ui/text'; + +// TODO(zach): check this works on native + +export function DialogPreview() { + return ( + + + + + + + Edit profile + + {"Make changes to your profile here. Click save when you're done."} + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/apps/docs/previews/dialog/dialog-web.tsx b/apps/docs/previews/dialog/dialog-web.tsx new file mode 100644 index 00000000..4c507af7 --- /dev/null +++ b/apps/docs/previews/dialog/dialog-web.tsx @@ -0,0 +1,61 @@ +import { View } from '@/components/react-native'; +import { Button } from '~/components/ui/button'; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '~/components/ui/dialog'; +import { Label } from '~/components/ui/label'; +import { Input } from '~/components/ui/input'; +import { Text } from '~/components/ui/text'; + +export function DialogPreview() { + return ( + + + + + + + Edit profile + + {"Make changes to your profile here. Click save when you're done."} + + + + +
+ +
+ +
+ +
+ +
+ +
+
+ + + + + + +
+
+ ); +} From 094c03c5bc21ed37f0209443f40f200f42960c7a Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 14:24:13 -0500 Subject: [PATCH 031/467] fix(docs): remove material top tabs --- apps/docs/content/docs/extra/material-top-tabs.mdx | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 apps/docs/content/docs/extra/material-top-tabs.mdx diff --git a/apps/docs/content/docs/extra/material-top-tabs.mdx b/apps/docs/content/docs/extra/material-top-tabs.mdx deleted file mode 100644 index a47749ae..00000000 --- a/apps/docs/content/docs/extra/material-top-tabs.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Material Top Tabs -description: TODO ---- - -Welcome to the docs! You can start writing documents in `/content/docs`. - -## What is Next? - - - - - From d5b42135a8dc62fcb7e4fa9da1904b410fe41d86 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 14:41:07 -0500 Subject: [PATCH 032/467] feat(docs): add dropdown menu --- apps/docs/components/reusables.tsx | 49 ++++++- .../docs/(components)/dropdown-menu.mdx | 134 ++++++++++++++++++ .../dropdown-menu/dropdown-menu-native.tsx | 109 ++++++++++++++ .../dropdown-menu/dropdown-menu-web.tsx | 97 +++++++++++++ apps/showcase/app/dropdown-menu.tsx | 5 + apps/showcase/lib/icons/User.tsx | 2 + packages/reusables/src/lib/icons/User.tsx | 4 + packages/reusables/src/lib/icons/index.ts | 1 + 8 files changed, 400 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/docs/(components)/dropdown-menu.mdx create mode 100644 apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx create mode 100644 apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx create mode 100644 apps/showcase/lib/icons/User.tsx create mode 100644 packages/reusables/src/lib/icons/User.tsx diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index fd65ccdb..9d97eb85 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Ui, Lib } from '@rnr/reusables'; +import { Lib, Ui } from '@rnr/reusables'; export const { Accordion, @@ -194,4 +194,51 @@ export const { Sparkles, ChevronsDownUp, ChevronsUpDown, + Cloud, + Github, + LifeBuoy, + LogOut, + MessageSquare, + Plus, + PlusCircle, + UserPlus, + Users, + Activity, + Airplay, + AlarmClockIcon, + AlertTriangle, + AlignCenter, + AlignJustify, + AlignLeft, + AlignRight, + ArrowDown, + ArrowUp, + Baby, + BadgeAlert, + Bold, + Calendar, + CalendarDays, + CheckSquare, + ChevronDown, + ChevronLeft, + ChevronUp, + CircleUserRound, + Code: CodeIcon, + Copy, + Database, + Ear, + Fan, + GalleryHorizontal, + Info, + Italic, + Lamp, + LayoutPanelLeft, + MenuSquare, + MoonStar, + Search, + Sun, + Table: TabelIcon, + Underline, + User, + X, } = Icons; diff --git a/apps/docs/content/docs/(components)/dropdown-menu.mdx b/apps/docs/content/docs/(components)/dropdown-menu.mdx new file mode 100644 index 00000000..7684ee4b --- /dev/null +++ b/apps/docs/content/docs/(components)/dropdown-menu.mdx @@ -0,0 +1,134 @@ +--- +title: Dropdown Menu +description: Displays a menu to the user — such as a set of actions or functions — triggered by a button. +--- + +import dropdownMenuPreview from "!!raw-loader!@/previews/dropdown-menu/dropdown-menu-web"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { DropdownMenuPreview } from "@/previews/dropdown-menu/dropdown-menu-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/dropdown-menu/dropdown-menu-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/dropdown-menu + ``` + + + + + #### Copy and paste the following code into your project. + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/dropdown-menu.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/dropdown-menu.tsx\"" + } + } + ``` + + + + + + + +### Usage + + + +```tsx +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu" +import { Text } from '~/components/ui/text'; + +``` + +```tsx + + + Open + + + + My Account + + + + Profile + + + Team + + + +``` \ No newline at end of file diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx new file mode 100644 index 00000000..d4310355 --- /dev/null +++ b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx @@ -0,0 +1,109 @@ +import Animated, { FadeIn } from 'react-native-reanimated'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { Button } from '~/components/ui/button'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, +} from '~/components/ui/dropdown-menu'; +import { Text } from '~/components/ui/text'; +import { Cloud } from '~/lib/icons/Cloud'; +import { Github } from '~/lib/icons/Github'; +import { LifeBuoy } from '~/lib/icons/LifeBuoy'; +import { LogOut } from '~/lib/icons/LogOut'; +import { Mail } from '~/lib/icons/Mail'; +import { MessageSquare } from '~/lib/icons/MessageSquare'; +import { Plus } from '~/lib/icons/Plus'; +import { PlusCircle } from '~/lib/icons/PlusCircle'; +import { User } from '~/lib/icons/User'; +import { UserPlus } from '~/lib/icons/UserPlus'; +import { Users } from '~/lib/icons/Users'; + +export default function DropdownMenuPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + + return ( + + + + + + My Account + + + + + Profile + + + + Team + + + + + Invite users + + + + + + Email + + + + Message + + + + + More... + + + + + + + New Team + ⌘+T + + + + + + GitHub + + + + Support + + + + API + + + + + Log out + ⇧⌘Q + + + + ); +} diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx new file mode 100644 index 00000000..1acc85a6 --- /dev/null +++ b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx @@ -0,0 +1,97 @@ +import { Button } from '~/components/ui/button'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, +} from '~/components/ui/dropdown-menu'; +import { Text } from '~/components/ui/text'; +import { Cloud } from '~/lib/icons/Cloud'; +import { Github } from '~/lib/icons/Github'; +import { LifeBuoy } from '~/lib/icons/LifeBuoy'; +import { LogOut } from '~/lib/icons/LogOut'; +import { Mail } from '~/lib/icons/Mail'; +import { MessageSquare } from '~/lib/icons/MessageSquare'; +import { Plus } from '~/lib/icons/Plus'; +import { PlusCircle } from '~/lib/icons/PlusCircle'; +import { User } from '~/lib/icons/User'; +import { UserPlus } from '~/lib/icons/UserPlus'; +import { Users } from '~/lib/icons/Users'; + +export function DropdownMenuPreview() { + return ( + + + + + + My Account + + + + + Profile + + + + Team + + + + + Invite users + + + + + Email + + + + Message + + + + + More... + + + + + + New Team + ⌘+T + + + + + + GitHub + + + + Support + + + + API + + + + + Log out + ⇧⌘Q + + + + ); +} diff --git a/apps/showcase/app/dropdown-menu.tsx b/apps/showcase/app/dropdown-menu.tsx index 32175e2f..199264be 100644 --- a/apps/showcase/app/dropdown-menu.tsx +++ b/apps/showcase/app/dropdown-menu.tsx @@ -25,6 +25,7 @@ import { Mail } from '~/lib/icons/Mail'; import { MessageSquare } from '~/lib/icons/MessageSquare'; import { Plus } from '~/lib/icons/Plus'; import { PlusCircle } from '~/lib/icons/PlusCircle'; +import { User } from '~/lib/icons/User'; import { UserPlus } from '~/lib/icons/UserPlus'; import { Users } from '~/lib/icons/Users'; @@ -57,6 +58,10 @@ export default function DropdownMenuScreen() { My Account + + + Profile + Team diff --git a/apps/showcase/lib/icons/User.tsx b/apps/showcase/lib/icons/User.tsx new file mode 100644 index 00000000..08809f95 --- /dev/null +++ b/apps/showcase/lib/icons/User.tsx @@ -0,0 +1,2 @@ +import { Lib } from '@rnr/reusables'; +export const { User } = Lib.Icons; diff --git a/packages/reusables/src/lib/icons/User.tsx b/packages/reusables/src/lib/icons/User.tsx new file mode 100644 index 00000000..1b228069 --- /dev/null +++ b/packages/reusables/src/lib/icons/User.tsx @@ -0,0 +1,4 @@ +import { User } from 'lucide-react-native'; +import { iconWithClassName } from './iconWithClassName'; +iconWithClassName(User); +export { User }; diff --git a/packages/reusables/src/lib/icons/index.ts b/packages/reusables/src/lib/icons/index.ts index 74e33a69..1bdd6091 100644 --- a/packages/reusables/src/lib/icons/index.ts +++ b/packages/reusables/src/lib/icons/index.ts @@ -52,5 +52,6 @@ export { Table } from './Table'; export { Terminal } from './Terminal'; export { Underline } from './Underline'; export { UserPlus } from './UserPlus'; +export { User } from './User'; export { Users } from './Users'; export { X } from './X'; From b121651cedba744364c3c0849341e9cb03d70a70 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 14:42:50 -0500 Subject: [PATCH 033/467] feat(docs): remove use keyboard and add typography --- .../content/docs/extra/{use-keyboard.mdx => typography.mdx} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename apps/docs/content/docs/extra/{use-keyboard.mdx => typography.mdx} (93%) diff --git a/apps/docs/content/docs/extra/use-keyboard.mdx b/apps/docs/content/docs/extra/typography.mdx similarity index 93% rename from apps/docs/content/docs/extra/use-keyboard.mdx rename to apps/docs/content/docs/extra/typography.mdx index b6a43ab3..f666aa8c 100644 --- a/apps/docs/content/docs/extra/use-keyboard.mdx +++ b/apps/docs/content/docs/extra/typography.mdx @@ -1,5 +1,5 @@ --- -title: useKeyboard +title: Typography description: TODO --- From 0f68ee3727f93e70f624f714735fdccd7aae5a15 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 14:56:53 -0500 Subject: [PATCH 034/467] feat(docs): add hover-card --- .../content/docs/(components)/hover-card.mdx | 122 ++++++++++++++++++ .../previews/hover-card/hover-card-native.tsx | 48 +++++++ .../previews/hover-card/hover-card-web.tsx | 40 ++++++ 3 files changed, 210 insertions(+) create mode 100644 apps/docs/content/docs/(components)/hover-card.mdx create mode 100644 apps/docs/previews/hover-card/hover-card-native.tsx create mode 100644 apps/docs/previews/hover-card/hover-card-web.tsx diff --git a/apps/docs/content/docs/(components)/hover-card.mdx b/apps/docs/content/docs/(components)/hover-card.mdx new file mode 100644 index 00000000..bfe7097d --- /dev/null +++ b/apps/docs/content/docs/(components)/hover-card.mdx @@ -0,0 +1,122 @@ +--- +title: Hover Card +description: For sighted users to preview content available behind a link. +--- + +import hoverCardPreview from "!!raw-loader!@/previews/hover-card/hover-card-web"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { HoverCardPreview } from "@/previews/hover-card/hover-card-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/hover-card/hover-card-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/hover-card + ``` + + + + + #### Copy and paste the following code into your project. + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/hover-card.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/hover-card.tsx\"" + } + } + ``` + + + + + + + +### Usage + + + +```tsx +import { + HoverCard, + HoverCardContent, + HoverCardTrigger, +} from "@/components/ui/hover-card" +import { Text } from '~/components/ui/text'; + +``` + +```tsx + + + Hover + + + The React Framework – created and maintained by @vercel. + + +``` \ No newline at end of file diff --git a/apps/docs/previews/hover-card/hover-card-native.tsx b/apps/docs/previews/hover-card/hover-card-native.tsx new file mode 100644 index 00000000..38b7cae2 --- /dev/null +++ b/apps/docs/previews/hover-card/hover-card-native.tsx @@ -0,0 +1,48 @@ +import { View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; +import { Button } from '~/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; +import { Text } from '~/components/ui/text'; +import { CalendarDays } from '~/lib/icons/CalendarDays'; + +export function HoverCardPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + return ( + + + + + + + + + + VA + + + + @nextjs + + The React Framework – created and maintained by @vercel. + + + + + Joined December 2021 + + + + + + + ); +} diff --git a/apps/docs/previews/hover-card/hover-card-web.tsx b/apps/docs/previews/hover-card/hover-card-web.tsx new file mode 100644 index 00000000..345ceb3a --- /dev/null +++ b/apps/docs/previews/hover-card/hover-card-web.tsx @@ -0,0 +1,40 @@ +import { View } from '@/components/react-native'; +import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; +import { Button } from '~/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; +import { Text } from '~/components/ui/text'; +import { CalendarDays } from '~/lib/icons/CalendarDays'; + +export function HoverCardPreview() { + return ( + + + + + + + + + + VA + + + + @nextjs + + The React Framework – created and maintained by @vercel. + + + + + Joined December 2021 + + + + + + + ); +} From 2be018fbbc4e987258f6823123eec99c2c720b5f Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 15:05:41 -0500 Subject: [PATCH 035/467] feat(docs): add input --- .../content/docs/(components)/checkbox.mdx | 2 +- apps/docs/content/docs/(components)/input.mdx | 101 ++++++++++++++++++ apps/docs/previews/input.tsx | 12 +++ 3 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 apps/docs/content/docs/(components)/input.mdx create mode 100644 apps/docs/previews/input.tsx diff --git a/apps/docs/content/docs/(components)/checkbox.mdx b/apps/docs/content/docs/(components)/checkbox.mdx index d3977f2f..a4357e1e 100644 --- a/apps/docs/content/docs/(components)/checkbox.mdx +++ b/apps/docs/content/docs/(components)/checkbox.mdx @@ -95,4 +95,4 @@ import { Checkbox } from "@/components/ui/checkbox" ``` -// TODO: Add more examples +{/* TODO(examples) */} diff --git a/apps/docs/content/docs/(components)/input.mdx b/apps/docs/content/docs/(components)/input.mdx new file mode 100644 index 00000000..bda3f190 --- /dev/null +++ b/apps/docs/content/docs/(components)/input.mdx @@ -0,0 +1,101 @@ +--- +title: Input +description: Displays a form input field or a component that looks like an input field. +--- + +import inputPreview from "!!raw-loader!@/previews/input"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { InputPreview } from "@/previews/input"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +
+ + + + Preview + Code + + + + +
+ } + /> + + + + ```json doc-gen:file + { + "file": "./previews/input.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/input + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/input.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/input.tsx\"" + } + } + ``` + + + + + #### Update the import paths to match your project setup. + + + + + + +### Usage + +```tsx +import { Input } from "@/components/ui/input" +``` + +```tsx + +``` + +{/* TODO(examples) */} \ No newline at end of file diff --git a/apps/docs/previews/input.tsx b/apps/docs/previews/input.tsx new file mode 100644 index 00000000..48856a47 --- /dev/null +++ b/apps/docs/previews/input.tsx @@ -0,0 +1,12 @@ +import { Input } from '@/components/reusables'; + +export function InputPreview() { + return ( + + ); +} From 504a9666a3105290420807e051133f56235b1f5b Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 15:21:42 -0500 Subject: [PATCH 036/467] feat(docs): improve coming soon preview --- .../preview-card/preview-card-client.tsx | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/apps/docs/components/preview-card/preview-card-client.tsx b/apps/docs/components/preview-card/preview-card-client.tsx index c8755c91..55674740 100644 --- a/apps/docs/components/preview-card/preview-card-client.tsx +++ b/apps/docs/components/preview-card/preview-card-client.tsx @@ -1,9 +1,10 @@ 'use client'; +import { CopyButton } from '@/components/copy-button'; import { type SelectProps } from '@radix-ui/react-select'; import * as React from 'react'; -import { CopyButton } from '@/components/copy-button'; +import { Button } from '@/components/ui/button'; import { Select, SelectContent, @@ -45,6 +46,10 @@ export function PreviewCardClient({ window.dispatchEvent(event); } + function selectWebPreview() { + onValueChange('web'); + } + return (
@@ -58,9 +63,9 @@ export function PreviewCardClient({
{platform === 'android' - ? androidPreview ?? Coming soon... + ? androidPreview ?? : platform === 'ios' - ? iosPreview ?? Coming soon... + ? iosPreview ?? : webPreview}
@@ -110,3 +115,26 @@ function PlatformSwitcher({ ); } + +function ComingSoon({ selectWebPreview }: { selectWebPreview: () => void }) { + return ( +
+
+

Coming soon

+ TM +
+

+ We're working on this preview. In the meantime, check out the web preview. +

+ + +
+ ); +} From a4de594240ac3e6dec8f6457182a8156150055bf Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 15:31:40 -0500 Subject: [PATCH 037/467] feat(docs): add label --- apps/docs/content/docs/(components)/label.mdx | 95 +++++++++++++++++++ apps/docs/previews/label/label-default.tsx | 15 +++ 2 files changed, 110 insertions(+) create mode 100644 apps/docs/content/docs/(components)/label.mdx create mode 100644 apps/docs/previews/label/label-default.tsx diff --git a/apps/docs/content/docs/(components)/label.mdx b/apps/docs/content/docs/(components)/label.mdx new file mode 100644 index 00000000..762500f9 --- /dev/null +++ b/apps/docs/content/docs/(components)/label.mdx @@ -0,0 +1,95 @@ +--- +title: Label +description: Renders an accessible label associated with controls. +--- + +import labelPreview from "!!raw-loader!@/previews/label/label-default"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { LabelPreview } from "@/previews/label/label-default"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + +
+ + + + Preview + Code + + + } + /> + + + + ```json doc-gen:file + { + "file": "./previews/label/label-default.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/label + ``` + + + + + #### Copy and paste the following code into your project. + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/label.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/label.tsx\"" + } + } + ``` + + + + + #### Update the import paths to match your project setup. + + + + + + +### Usage + +```tsx +import { Label } from "~/components/ui/label" +``` + +```tsx + +``` diff --git a/apps/docs/previews/label/label-default.tsx b/apps/docs/previews/label/label-default.tsx new file mode 100644 index 00000000..94e55b40 --- /dev/null +++ b/apps/docs/previews/label/label-default.tsx @@ -0,0 +1,15 @@ +import { View } from '@/components/react-native'; +import { Checkbox } from '~/components/ui/checkbox'; +import { Label } from '~/components/ui/label'; + +export function LabelPreview() { + return ( + + {/* TODO */} + + + + ); +} From 111210a77b3513c48b9841d7aa5befc322460459 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 15:31:58 -0500 Subject: [PATCH 038/467] fix(docs): import alias --- apps/docs/content/docs/(components)/checkbox.mdx | 2 +- apps/docs/content/docs/(components)/collapsible.mdx | 4 ++-- apps/docs/content/docs/(components)/dialog.mdx | 2 +- apps/docs/content/docs/(components)/dropdown-menu.mdx | 2 +- apps/docs/content/docs/(components)/hover-card.mdx | 2 +- apps/docs/content/docs/(components)/input.mdx | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/docs/content/docs/(components)/checkbox.mdx b/apps/docs/content/docs/(components)/checkbox.mdx index a4357e1e..bd01f572 100644 --- a/apps/docs/content/docs/(components)/checkbox.mdx +++ b/apps/docs/content/docs/(components)/checkbox.mdx @@ -87,7 +87,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Checkbox } from "@/components/ui/checkbox" +import { Checkbox } from "~/components/ui/checkbox" ``` diff --git a/apps/docs/content/docs/(components)/collapsible.mdx b/apps/docs/content/docs/(components)/collapsible.mdx index 4ea9b54d..7707259c 100644 --- a/apps/docs/content/docs/(components)/collapsible.mdx +++ b/apps/docs/content/docs/(components)/collapsible.mdx @@ -87,8 +87,8 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Collapsible } from "@/components/ui/collapsible" -import { Text } from "@/components/ui/text" +import { Collapsible } from "~/components/ui/collapsible" +import { Text } from "~/components/ui/text" ``` diff --git a/apps/docs/content/docs/(components)/dialog.mdx b/apps/docs/content/docs/(components)/dialog.mdx index 6a14287b..2cd5996e 100644 --- a/apps/docs/content/docs/(components)/dialog.mdx +++ b/apps/docs/content/docs/(components)/dialog.mdx @@ -97,7 +97,7 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from "@/components/ui/dialog" +} from "~/components/ui/dialog" ``` ```tsx diff --git a/apps/docs/content/docs/(components)/dropdown-menu.mdx b/apps/docs/content/docs/(components)/dropdown-menu.mdx index 7684ee4b..e6e6e5c7 100644 --- a/apps/docs/content/docs/(components)/dropdown-menu.mdx +++ b/apps/docs/content/docs/(components)/dropdown-menu.mdx @@ -108,7 +108,7 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, -} from "@/components/ui/dropdown-menu" +} from "~/components/ui/dropdown-menu" import { Text } from '~/components/ui/text'; ``` diff --git a/apps/docs/content/docs/(components)/hover-card.mdx b/apps/docs/content/docs/(components)/hover-card.mdx index bfe7097d..32fb3aa3 100644 --- a/apps/docs/content/docs/(components)/hover-card.mdx +++ b/apps/docs/content/docs/(components)/hover-card.mdx @@ -105,7 +105,7 @@ import { HoverCard, HoverCardContent, HoverCardTrigger, -} from "@/components/ui/hover-card" +} from "~/components/ui/hover-card" import { Text } from '~/components/ui/text'; ``` diff --git a/apps/docs/content/docs/(components)/input.mdx b/apps/docs/content/docs/(components)/input.mdx index bda3f190..5ae92f24 100644 --- a/apps/docs/content/docs/(components)/input.mdx +++ b/apps/docs/content/docs/(components)/input.mdx @@ -91,7 +91,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Input } from "@/components/ui/input" +import { Input } from "~/components/ui/input" ``` ```tsx From 3f778fda2b09be06124ed2eee3534ce941a8a863 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 26 Jan 2025 15:59:04 -0500 Subject: [PATCH 039/467] feat(docs): add menubar --- .../content/docs/(components)/menubar.mdx | 141 +++++++++++ apps/docs/previews/menubar/menubar-native.tsx | 230 ++++++++++++++++++ apps/docs/previews/menubar/menubar-web.tsx | 167 +++++++++++++ .../reusables/src/components/ui/menubar.tsx | 5 +- 4 files changed, 539 insertions(+), 4 deletions(-) create mode 100644 apps/docs/content/docs/(components)/menubar.mdx create mode 100644 apps/docs/previews/menubar/menubar-native.tsx create mode 100644 apps/docs/previews/menubar/menubar-web.tsx diff --git a/apps/docs/content/docs/(components)/menubar.mdx b/apps/docs/content/docs/(components)/menubar.mdx new file mode 100644 index 00000000..bae928c0 --- /dev/null +++ b/apps/docs/content/docs/(components)/menubar.mdx @@ -0,0 +1,141 @@ +--- +title: Menubar +description: A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands. +--- + +import menubarPreview from "!!raw-loader!@/previews/menubar/menubar-web"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { MenubarPreview } from "@/previews/menubar/menubar-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./previews/menubar/menubar-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/menubar + ``` + + + + + #### Copy and paste the following code into your project. + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/menubar.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/menubar.tsx\"" + } + } + ``` + + + + + + + +### Usage + + + +```tsx +import { + Menubar, + MenubarContent, + MenubarItem, + MenubarMenu, + MenubarSeparator, + MenubarShortcut, + MenubarTrigger, +} from "~/components/ui/menubar" +import { Text } from '~/components/ui/text'; + +``` + +```tsx + + + + File + + + + New Tab ⌘T + + + New Window + + + + Share + + + + Print + + + + +``` \ No newline at end of file diff --git a/apps/docs/previews/menubar/menubar-native.tsx b/apps/docs/previews/menubar/menubar-native.tsx new file mode 100644 index 00000000..e775d718 --- /dev/null +++ b/apps/docs/previews/menubar/menubar-native.tsx @@ -0,0 +1,230 @@ +import { useNavigation } from 'expo-router'; +import * as React from 'react'; +import { Pressable, StyleSheet, View } from 'react-native'; +import Animated, { FadeIn } from 'react-native-reanimated'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { + Menubar, + MenubarCheckboxItem, + MenubarContent, + MenubarItem, + MenubarMenu, + MenubarRadioGroup, + MenubarRadioItem, + MenubarSeparator, + MenubarShortcut, + MenubarSub, + MenubarSubContent, + MenubarSubTrigger, + MenubarTrigger, +} from '~/components/ui/menubar'; +import { Text } from '~/components/ui/text'; + +// TODO(zach): review this + +export function MenubarPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + const [value, setValue] = React.useState(); + const [isSubOpen, setIsSubOpen] = React.useState(false); + const [isSubOpen2, setIsSubOpen2] = React.useState(false); + const [isChecked, setIsChecked] = React.useState(false); + const [isChecked2, setIsChecked2] = React.useState(false); + const [radio, setRadio] = React.useState('michael'); + const navigation = useNavigation(); + React.useEffect(() => { + const sub = navigation.addListener('blur', () => { + onValueChange(undefined); + }); + + return sub; + }, []); + + function closeSubs() { + setIsSubOpen(false); + setIsSubOpen2(false); + } + + function onValueChange(val: string | undefined) { + if (typeof val === 'string') { + setValue(val); + return; + } + closeSubs(); + setValue(undefined); + } + + return ( + + {!!value && ( + { + onValueChange(undefined); + }} + style={StyleSheet.absoluteFillObject} + /> + )} + + + + File + + + + New Tab + ⌘T + + + New Window + ⌘N + + + New Incognito Window + + + + + Share + + + + + Email link + + + Messages + + + Notes + + + + + + + Print... + ⌘P + + + + + + Edit + + + + Undo + ⌘Z + + + Redo + ⇧⌘Z + + + + + Find + + + + + Search the web + + + + Find... + + + Find Next + + + Find Previous + + + + + + + Cut + + + Copy + + + Paste + + + + + + View + + + + Always Show Bookmarks Bar + + + Always Show Full URLs + + + + Reload + ⌘R + + + Force Reload + ⇧⌘R + + + + Toggle Fullscreen + + + + Hide Sidebar + + + + + + Profiles + + + + + Andy + + + Michael + + + Creed + + + + + Edit... + + + + Add Profile... + + + + + + ); +} diff --git a/apps/docs/previews/menubar/menubar-web.tsx b/apps/docs/previews/menubar/menubar-web.tsx new file mode 100644 index 00000000..348c97cc --- /dev/null +++ b/apps/docs/previews/menubar/menubar-web.tsx @@ -0,0 +1,167 @@ +import { + Menubar, + MenubarCheckboxItem, + MenubarContent, + MenubarItem, + MenubarMenu, + MenubarRadioGroup, + MenubarRadioItem, + MenubarSeparator, + MenubarShortcut, + MenubarSub, + MenubarSubContent, + MenubarSubTrigger, + MenubarTrigger, +} from '~/components/ui/menubar'; +import { Text } from '~/components/ui/text'; + +// TODO(zach): fix primitive + double enter animation + +export function MenubarPreview() { + return ( + + + + File + + + + New Tab + ⌘T + + + New Window + ⌘N + + + New Incognito Window + + + + + Share + + + + Email link + + + Messages + + + Notes + + + + + + Print... + ⌘P + + + + + + Edit + + + + Undo + ⌘Z + + + Redo + ⇧⌘Z + + + + + Find + + + + Search the web + + + + Find... + + + Find Next + + + Find Previous + + + + + + Cut + + + Copy + + + Paste + + + + + + View + + + + Always Show Bookmarks Bar + + + Always Show Full URLs + + + + Reload + ⌘R + + + Force Reload + ⇧⌘R + + + + Toggle Fullscreen + + + + Hide Sidebar + + + + + + Profiles + + + + + Andy + + + Michael + + + Creed + + + + + Edit... + + + + Add Profile... + + + + + ); +} diff --git a/packages/reusables/src/components/ui/menubar.tsx b/packages/reusables/src/components/ui/menubar.tsx index 6323fa7a..20c1334f 100644 --- a/packages/reusables/src/components/ui/menubar.tsx +++ b/packages/reusables/src/components/ui/menubar.tsx @@ -71,10 +71,7 @@ function MenubarSubTrigger({ const Icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown; return ( Date: Mon, 27 Jan 2025 17:14:25 -0500 Subject: [PATCH 040/467] feat(docs): start navigation menu --- apps/docs/content/docs/(components)/navigation-menu.mdx | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 apps/docs/content/docs/(components)/navigation-menu.mdx diff --git a/apps/docs/content/docs/(components)/navigation-menu.mdx b/apps/docs/content/docs/(components)/navigation-menu.mdx new file mode 100644 index 00000000..1f4929a5 --- /dev/null +++ b/apps/docs/content/docs/(components)/navigation-menu.mdx @@ -0,0 +1,5 @@ +--- +title: Navigation Menu +description: A collection of links for navigating screens. +--- + From 7df0a549fb62c63aa48b76e7a5088ecd26b3bf8a Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Tue, 28 Jan 2025 14:11:44 -0500 Subject: [PATCH 041/467] feat(docs): add navigation menu --- apps/cli/src/items/components.ts | 2 +- .../docs/(components)/navigation-menu.mdx | 133 ++++++++++++++ .../navigation-menu-native.tsx | 164 ++++++++++++++++++ .../navigation-menu/navigation-menu-web.tsx | 138 +++++++++++++++ .../reusables/src/components/ui/accordion.tsx | 2 +- .../src/components/ui/navigation-menu.tsx | 18 +- 6 files changed, 449 insertions(+), 8 deletions(-) create mode 100644 apps/docs/previews/navigation-menu/navigation-menu-native.tsx create mode 100644 apps/docs/previews/navigation-menu/navigation-menu-web.tsx diff --git a/apps/cli/src/items/components.ts b/apps/cli/src/items/components.ts index e2d7d8cc..b07d6e2b 100644 --- a/apps/cli/src/items/components.ts +++ b/apps/cli/src/items/components.ts @@ -256,7 +256,7 @@ export const COMPONENTS = [ }, { name: 'navigation-menu', - dependencies: [], + dependencies: ['text'], icons: ['ChevronDown'], npmPackages: ['@rn-primitives/navigation-menu'], paths: [ diff --git a/apps/docs/content/docs/(components)/navigation-menu.mdx b/apps/docs/content/docs/(components)/navigation-menu.mdx index 1f4929a5..a772250d 100644 --- a/apps/docs/content/docs/(components)/navigation-menu.mdx +++ b/apps/docs/content/docs/(components)/navigation-menu.mdx @@ -3,3 +3,136 @@ title: Navigation Menu description: A collection of links for navigating screens. --- + +import navigationMenuPreview from "!!raw-loader!@/previews/navigation-menu/navigation-menu-web"; +import { CommandTabs } from "@/components/command-tabs"; +import { CopyButton } from "@/components/copy-button"; +import { ExternalLinks } from "@/components/external-links"; +import { PortalInfoAlert } from '@/components/portal-info-alert'; +import { PreviewCard } from "@/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; +import { NavigationMenuPreview } from "@/previews/navigation-menu/navigation-menu-web"; +import { Step, Steps } from 'fumadocs-ui/components/steps'; + + + +
+ + + + Preview + Code + + + }/> + + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/text.tsx\"" + } + } + ``` + + ```json doc-gen:file + { + "file": "./previews/navigation-menu/navigation-menu-native.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + + +## Installation + + + + CLI + Manual + + + + + + + + + #### Install the following dependency: + + ``` + npx expo install @rn-primitives/navigation-menu + ``` + + + + + #### Copy and paste the following code into your project. + + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/reusables/src/components/ui/navigation-menu.tsx", + "codeblock": { + "lang": "tsx", + "meta": "title=\"~/components/ui/navigation-menu.tsx\"" + } + } + ``` + + + + + + + +### Usage + + + +```tsx +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuIndicator, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + NavigationMenuViewport, +} from "@/components/ui/navigation-menu" +import { Text } from '~/components/ui/text'; + +``` + +```tsx + + + + + Item One + + + + Link + + + + + +``` + + +{/* TODO(zach): add warning about managing overlay on native */} \ No newline at end of file diff --git a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx new file mode 100644 index 00000000..9344b730 --- /dev/null +++ b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx @@ -0,0 +1,164 @@ +import type { TextRef } from '@rn-primitives/types'; +import { useNavigation } from 'expo-router'; +import * as React from 'react'; +import { View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + navigationMenuTriggerStyle, +} from '~/components/ui/navigation-menu'; +import { Text } from '~/components/ui/text'; +import { Sparkles } from '~/lib/icons/Sparkles'; + +export function NavigationMenuPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + const [value, setValue] = React.useState(); + const navigation = useNavigation(); + + function closeAll() { + setValue(''); + } + + React.useEffect(() => { + const sub = navigation.addListener('blur', () => { + closeAll(); + }); + + return sub; + }, []); + + return ( + + + + + Getting started + + + + + + + + + react-native-reusables + + + Universal components that you can copy and paste into your apps. Accessible. + Customizable. Open Source. + + + + + + Re-usable components built using Radix UI on the web and Tailwind CSS. + + + How to install dependencies and structure your app. + + + Styles for headings, paragraphs, lists...etc + + + + + + + Components + + + + {COMPONENTS.map((component) => ( + + {component.description} + + ))} + + + + + + Documentation + + + + + ); +} + +const ListItem = React.forwardRef< + TextRef, + React.ComponentPropsWithoutRef & { title: string; href: string } +>(({ title, children, ...props }, ref) => { + return ( + + + + {title} + + + {children} + + + + ); +}); +ListItem.displayName = 'ListItem'; + +const COMPONENTS: { title: string; href: string; description: string }[] = [ + { + title: 'Alert Dialog', + href: '/alert-dialog/alert-dialog-universal', + description: + 'A modal dialog that interrupts the user with important content and expects a response.', + }, + { + title: 'Hover Card', + href: '/hover-card/hover-card-universal', + description: 'For sighted users to preview content available behind a link.', + }, + { + title: 'Progress', + href: '/progress/progress-universal', + description: + 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', + }, + { + title: 'Scroll-area', + href: '/scroll-area/scroll-area-universal', + description: 'Visually or semantically separates content.', + }, + { + title: 'Tabs', + href: '/tabs/tabs-universal', + description: + 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', + }, + { + title: 'Tooltip', + href: '/tooltip/tooltip-universal', + description: + 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', + }, +]; diff --git a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx new file mode 100644 index 00000000..2678536e --- /dev/null +++ b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx @@ -0,0 +1,138 @@ +import { View } from '@/components/react-native'; +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, +} from '~/components/ui/navigation-menu'; +import { Text } from '~/components/ui/text'; +import { Sparkles } from '~/lib/icons/Sparkles'; + +// TODO(zach) + +export function NavigationMenuPreview() { + return ( + + + + + Getting started + + + + + + + + + react-native-reusables + + + Universal components that you can copy and paste into your apps. Accessible. + Customizable. Open Source. + + + + + + Re-usable components built using Radix UI on the web and Tailwind CSS. + + + How to install dependencies and structure your app. + + + Styles for headings, paragraphs, lists...etc + + + + + + + Components + + + + {COMPONENTS.map((component) => ( + + {component.description} + + ))} + + + + + + Documentation + + + + + ); +} + +function ListItem({ + title, + children, + ...props +}: React.ComponentPropsWithoutRef & { title: string; href: string }) { + return ( + + + + {title} + + + {children} + + + + ); +} + +const COMPONENTS: { title: string; href: string; description: string }[] = [ + { + title: 'Alert Dialog', + href: '/alert-dialog/alert-dialog-universal', + description: + 'A modal dialog that interrupts the user with important content and expects a response.', + }, + { + title: 'Hover Card', + href: '/hover-card/hover-card-universal', + description: 'For sighted users to preview content available behind a link.', + }, + { + title: 'Progress', + href: '/progress/progress-universal', + description: + 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', + }, + { + title: 'Scroll-area', + href: '/scroll-area/scroll-area-universal', + description: 'Visually or semantically separates content.', + }, + { + title: 'Tabs', + href: '/tabs/tabs-universal', + description: + 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', + }, + { + title: 'Tooltip', + href: '/tooltip/tooltip-universal', + description: + 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', + }, +]; diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index 00e71a95..edd0bf7d 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -88,7 +88,7 @@ function AccordionTrigger({ > {children} - + diff --git a/packages/reusables/src/components/ui/navigation-menu.tsx b/packages/reusables/src/components/ui/navigation-menu.tsx index 9eed0717..8705f219 100644 --- a/packages/reusables/src/components/ui/navigation-menu.tsx +++ b/packages/reusables/src/components/ui/navigation-menu.tsx @@ -11,6 +11,7 @@ import Animated, { useDerivedValue, withTiming, } from 'react-native-reanimated'; +import { TextClassContext } from './text'; import { ChevronDown } from '../../lib/icons/ChevronDown'; import { cn } from '../../lib/utils'; @@ -66,13 +67,18 @@ function NavigationMenuTrigger({ const { value } = NavigationMenuPrimitive.useRootContext(); const { value: itemValue } = NavigationMenuPrimitive.useItemContext(); - const progress = useDerivedValue(() => - value === itemValue ? withTiming(1, { duration: 250 }) : withTiming(0, { duration: 200 }) + const progress = useDerivedValue( + () => + value === itemValue ? withTiming(1, { duration: 250 }) : withTiming(0, { duration: 200 }), + [value === itemValue] + ); + const chevronStyle = useAnimatedStyle( + () => ({ + transform: [{ rotate: `${progress.value * 180}deg` }], + opacity: interpolate(progress.value, [0, 1], [1, 0.8], Extrapolation.CLAMP), + }), + [progress] ); - const chevronStyle = useAnimatedStyle(() => ({ - transform: [{ rotate: `${progress.value * 180}deg` }], - opacity: interpolate(progress.value, [0, 1], [1, 0.8], Extrapolation.CLAMP), - })); return ( Date: Tue, 28 Jan 2025 14:24:24 -0500 Subject: [PATCH 042/467] feat(docs): make recipes a folder --- apps/docs/content/docs/meta.json | 4 ++-- .../content/docs/{recipes.mdx => recipes/index.mdx} | 0 .../content/docs/recipes/managing-ui-states.mdx | 13 +++++++++++++ apps/docs/content/docs/recipes/portal-in-modal.mdx | 13 +++++++++++++ apps/docs/content/docs/recipes/slots.mdx | 13 +++++++++++++ 5 files changed, 41 insertions(+), 2 deletions(-) rename apps/docs/content/docs/{recipes.mdx => recipes/index.mdx} (100%) create mode 100644 apps/docs/content/docs/recipes/managing-ui-states.mdx create mode 100644 apps/docs/content/docs/recipes/portal-in-modal.mdx create mode 100644 apps/docs/content/docs/recipes/slots.mdx diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 442aa1fd..43cf1db9 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -18,10 +18,10 @@ "---Customization---", "!components-json", "!theming", - "!recipes", "[Braces][component.json](/docs/components-json)", "[Palette][Theming](/docs/theming)", - "[ListOrdered][Recipes](/docs/recipes)", + "------", + "recipes", "---Components---", "!/(components)", ".../(components)", diff --git a/apps/docs/content/docs/recipes.mdx b/apps/docs/content/docs/recipes/index.mdx similarity index 100% rename from apps/docs/content/docs/recipes.mdx rename to apps/docs/content/docs/recipes/index.mdx diff --git a/apps/docs/content/docs/recipes/managing-ui-states.mdx b/apps/docs/content/docs/recipes/managing-ui-states.mdx new file mode 100644 index 00000000..41c68d23 --- /dev/null +++ b/apps/docs/content/docs/recipes/managing-ui-states.mdx @@ -0,0 +1,13 @@ +--- +title: Managing UI States +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/recipes/portal-in-modal.mdx b/apps/docs/content/docs/recipes/portal-in-modal.mdx new file mode 100644 index 00000000..a408d6e0 --- /dev/null +++ b/apps/docs/content/docs/recipes/portal-in-modal.mdx @@ -0,0 +1,13 @@ +--- +title: Portal in Modal +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + diff --git a/apps/docs/content/docs/recipes/slots.mdx b/apps/docs/content/docs/recipes/slots.mdx new file mode 100644 index 00000000..9e13d3a0 --- /dev/null +++ b/apps/docs/content/docs/recipes/slots.mdx @@ -0,0 +1,13 @@ +--- +title: Slots/asChild +description: TODO +--- + +Welcome to the docs! You can start writing documents in `/content/docs`. + +## What is Next? + + + + + From ad8e3813d4bc5181e205894439748dcf3fc2f4ee Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Thu, 5 Jun 2025 12:34:52 -0400 Subject: [PATCH 043/467] chore(docs): update deps --- apps/docs/components/preview-card/index.tsx | 4 +- apps/docs/package.json | 24 +- apps/showcase/package.json | 2 +- package.json | 3 - .../reusables/src/components/ui/alert.tsx | 20 +- packages/reusables/tsconfig.json | 12 +- ...react-native__assets-registry@0.76.6.patch | 162 - pnpm-lock.yaml | 3308 ++++++++++++++--- 8 files changed, 2831 insertions(+), 704 deletions(-) delete mode 100644 patches/@react-native__assets-registry@0.76.6.patch diff --git a/apps/docs/components/preview-card/index.tsx b/apps/docs/components/preview-card/index.tsx index 55dd9cf0..3f2d99a9 100644 --- a/apps/docs/components/preview-card/index.tsx +++ b/apps/docs/components/preview-card/index.tsx @@ -7,8 +7,8 @@ import { type PreviewCardProps = Omit; -export function PreviewCard(props: PreviewCardProps) { - const cookieStore = cookies(); +export async function PreviewCard(props: PreviewCardProps) { + const cookieStore = await cookies(); const platformCookie = cookieStore.get('platform')?.value as Platform; return ; } diff --git a/apps/docs/package.json b/apps/docs/package.json index ffc4014e..7cdd72e6 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -10,9 +10,9 @@ "postinstall": "fumadocs-mdx" }, "dependencies": { - "@radix-ui/react-select": "^2.1.4", - "@radix-ui/react-slot": "^1.0.2", - "@radix-ui/react-tabs": "^1.1.2", + "@radix-ui/react-select": "^2.2.5", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-tabs": "^1.1.12", "@rnr/reusables": "workspace:*", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", @@ -23,13 +23,13 @@ "fumadocs-ui": "14.7.2", "lucide-react": "^0.471.1", "nativewind": "^4.1.23", - "next": "^14.2.15", - "react": "18.3.1", - "react-dom": "18.3.1", - "react-native": "0.76.6", - "react-native-reanimated": "~3.16.1", - "react-native-svg": "15.8.0", - "react-native-web": "~0.19.13", + "next": "15.3.2", + "react": "19.0.0", + "react-dom": "19.0.0", + "react-native": "0.79.2", + "react-native-reanimated": "~3.17.5", + "react-native-svg": "15.11.2", + "react-native-web": "~0.20.0", "remark-variables": "^1.4.9", "tailwind-merge": "^2.2.1", "tailwindcss-animate": "^1.0.7" @@ -37,8 +37,8 @@ "devDependencies": { "@types/mdx": "^2.0.13", "@types/node": "22.10.5", - "@types/react": "~18.3.12", - "@types/react-dom": "^18.2.19", + "@types/react": "19.0.10", + "@types/react-dom": "19.1.5", "autoprefixer": "^10.4.20", "eslint": "^8", "eslint-config-next": "15.1.3", diff --git a/apps/showcase/package.json b/apps/showcase/package.json index 5c3e7c6b..82b32dd5 100644 --- a/apps/showcase/package.json +++ b/apps/showcase/package.json @@ -62,7 +62,7 @@ "devDependencies": { "@babel/core": "^7.26.0", "@types/react": "~19.0.14", - "tailwindcss": "3.3.5", + "tailwindcss": "^3.4.14", "typescript": "^5.8.3" }, "private": true diff --git a/package.json b/package.json index e130f20b..c88ca339 100644 --- a/package.json +++ b/package.json @@ -29,9 +29,6 @@ "expo-modules-*", "typescript" ] - }, - "patchedDependencies": { - "@react-native/assets-registry@0.76.6": "patches/@react-native__assets-registry@0.76.6.patch" } }, "prettier": { diff --git a/packages/reusables/src/components/ui/alert.tsx b/packages/reusables/src/components/ui/alert.tsx index 9d5de9a1..6a01ccae 100644 --- a/packages/reusables/src/components/ui/alert.tsx +++ b/packages/reusables/src/components/ui/alert.tsx @@ -35,14 +35,20 @@ function Alert({ iconSize?: number; iconClassName?: string; }) { - const { colors } = useTheme(); return ( - - - + + + + + + {children} ); diff --git a/packages/reusables/tsconfig.json b/packages/reusables/tsconfig.json index ed3c7d38..d1ca0e1f 100644 --- a/packages/reusables/tsconfig.json +++ b/packages/reusables/tsconfig.json @@ -1,8 +1,14 @@ { "extends": "@tsconfig/recommended/tsconfig.json", - "include": ["*.ts", "src", "nativewind-env.d.ts"], + "include": [ + "*.ts", + "src", + "nativewind-env.d.ts" + ], "compilerOptions": { "jsx": "react-jsx" }, - "exclude": ["node_modules"] -} + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/patches/@react-native__assets-registry@0.76.6.patch b/patches/@react-native__assets-registry@0.76.6.patch deleted file mode 100644 index e02c2a60..00000000 --- a/patches/@react-native__assets-registry@0.76.6.patch +++ /dev/null @@ -1,162 +0,0 @@ -diff --git a/path-support.js b/path-support.js -index 7d9388ad12567ba99d1c02650cb25c16a052d3de..60fd378f7950ef3400eada912511c79de192e76b 100644 ---- a/path-support.js -+++ b/path-support.js -@@ -8,17 +8,15 @@ - * @flow strict - */ - --'use strict'; -- --import type {PackagerAsset} from './registry.js'; -+"use strict"; - - const androidScaleSuffix = { -- '0.75': 'ldpi', -- '1': 'mdpi', -- '1.5': 'hdpi', -- '2': 'xhdpi', -- '3': 'xxhdpi', -- '4': 'xxxhdpi', -+ "0.75": "ldpi", -+ "1": "mdpi", -+ "1.5": "hdpi", -+ "2": "xhdpi", -+ "3": "xxhdpi", -+ "4": "xxxhdpi", - }; - - const ANDROID_BASE_DENSITY = 160; -@@ -27,7 +25,7 @@ const ANDROID_BASE_DENSITY = 160; - * FIXME: using number to represent discrete scale numbers is fragile in essence because of - * floating point numbers imprecision. - */ --function getAndroidAssetSuffix(scale: number): string { -+function getAndroidAssetSuffix(scale) { - if (scale.toString() in androidScaleSuffix) { - // $FlowFixMe[invalid-computed-prop] - return androidScaleSuffix[scale.toString()]; -@@ -35,55 +33,52 @@ function getAndroidAssetSuffix(scale: number): string { - // NOTE: Android Gradle Plugin does not fully support the nnndpi format. - // See https://issuetracker.google.com/issues/72884435 - if (Number.isFinite(scale) && scale > 0) { -- return Math.round(scale * ANDROID_BASE_DENSITY) + 'dpi'; -+ return Math.round(scale * ANDROID_BASE_DENSITY) + "dpi"; - } -- throw new Error('no such scale ' + scale.toString()); -+ throw new Error("no such scale " + scale.toString()); - } - - // See https://developer.android.com/guide/topics/resources/drawable-resource.html - const drawableFileTypes = new Set([ -- 'gif', -- 'jpeg', -- 'jpg', -- 'ktx', -- 'png', -- 'svg', -- 'webp', -- 'xml', -+ "gif", -+ "jpeg", -+ "jpg", -+ "ktx", -+ "png", -+ "svg", -+ "webp", -+ "xml", - ]); - --function getAndroidResourceFolderName( -- asset: PackagerAsset, -- scale: number, --): string | $TEMPORARY$string<'raw'> { -+function getAndroidResourceFolderName(asset, scale) { - if (!drawableFileTypes.has(asset.type)) { -- return 'raw'; -+ return "raw"; - } - const suffix = getAndroidAssetSuffix(scale); - if (!suffix) { - throw new Error( - "Don't know which android drawable suffix to use for scale: " + - scale + -- '\nAsset: ' + -- JSON.stringify(asset, null, '\t') + -- '\nPossible scales are:' + -- JSON.stringify(androidScaleSuffix, null, '\t'), -+ "\nAsset: " + -+ JSON.stringify(asset, null, "\t") + -+ "\nPossible scales are:" + -+ JSON.stringify(androidScaleSuffix, null, "\t") - ); - } -- return 'drawable-' + suffix; -+ return "drawable-" + suffix; - } - --function getAndroidResourceIdentifier(asset: PackagerAsset): string { -- return (getBasePath(asset) + '/' + asset.name) -+function getAndroidResourceIdentifier(asset) { -+ return (getBasePath(asset) + "/" + asset.name) - .toLowerCase() -- .replace(/\//g, '_') // Encode folder structure in file name -- .replace(/([^a-z0-9_])/g, '') // Remove illegal chars -- .replace(/^assets_/, ''); // Remove "assets_" prefix -+ .replace(/\//g, "_") // Encode folder structure in file name -+ .replace(/([^a-z0-9_])/g, "") // Remove illegal chars -+ .replace(/^assets_/, ""); // Remove "assets_" prefix - } - --function getBasePath(asset: PackagerAsset): string { -+function getBasePath(asset) { - const basePath = asset.httpServerLocation; -- return basePath.startsWith('/') ? basePath.slice(1) : basePath; -+ return basePath.startsWith("/") ? basePath.slice(1) : basePath; - } - - module.exports = { -diff --git a/registry.js b/registry.js -index 64b2735d3bb5284bd2450bf0d06115c3de5dcf80..8bf537f37f2d0b877dcf57bf38e17dda3edb47b0 100644 ---- a/registry.js -+++ b/registry.js -@@ -8,34 +8,18 @@ - * @format - */ - --'use strict'; -+"use strict"; - --export type AssetDestPathResolver = 'android' | 'generic'; -+const assets = []; - --export type PackagerAsset = { -- +__packager_asset: boolean, -- +fileSystemLocation: string, -- +httpServerLocation: string, -- +width: ?number, -- +height: ?number, -- +scales: Array, -- +hash: string, -- +name: string, -- +type: string, -- +resolver?: AssetDestPathResolver, -- ... --}; -- --const assets: Array = []; -- --function registerAsset(asset: PackagerAsset): number { -+function registerAsset(asset) { - // `push` returns new array length, so the first asset will - // get id 1 (not 0) to make the value truthy - return assets.push(asset); - } - --function getAssetByID(assetId: number): PackagerAsset { -+function getAssetByID(assetId) { - return assets[assetId - 1]; - } - --module.exports = {registerAsset, getAssetByID}; -+module.exports = { registerAsset, getAssetByID }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc507c5a..05005898 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,11 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -patchedDependencies: - '@react-native/assets-registry@0.76.6': - hash: csy2zsrrdvxe3jh3napj5zo7di - path: patches/@react-native__assets-registry@0.76.6.patch - importers: .: @@ -123,14 +118,14 @@ importers: apps/docs: dependencies: '@radix-ui/react-select': - specifier: ^2.1.4 - version: 2.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.2.5 + version: 2.2.5(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-slot': - specifier: ^1.0.2 - version: 1.1.1(@types/react@18.3.18)(react@18.3.1) + specifier: ^1.2.3 + version: 1.2.3(@types/react@19.0.10)(react@19.0.0) '@radix-ui/react-tabs': - specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@rnr/reusables': specifier: workspace:* version: link:../../packages/reusables @@ -145,43 +140,43 @@ importers: version: 4.3.0 fumadocs-core: specifier: 14.7.2 - version: 14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fumadocs-docgen: specifier: ^1.3.4 - version: 1.3.4(typescript@5.7.3) + version: 1.3.8(typescript@5.8.3) fumadocs-mdx: specifier: 11.2.3 - version: 11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 11.2.3(acorn@8.14.1)(fumadocs-core@14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) fumadocs-ui: specifier: 14.7.2 - version: 14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + version: 14.7.2(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(fumadocs-core@14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) lucide-react: specifier: ^0.471.1 - version: 0.471.2(react@18.3.1) + version: 0.471.2(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.16.7(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.12.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) next: - specifier: ^14.2.15 - version: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 15.3.2 + version: 15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: - specifier: 18.3.1 - version: 18.3.1 + specifier: 19.0.0 + version: 19.0.0 react-dom: - specifier: 18.3.1 - version: 18.3.1(react@18.3.1) + specifier: 19.0.0 + version: 19.0.0(react@19.0.0) react-native: - specifier: 0.76.6 - version: 0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1) + specifier: 0.79.2 + version: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) react-native-reanimated: - specifier: ~3.16.1 - version: 3.16.7(@babel/core@7.26.0)(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ~3.17.5 + version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) react-native-svg: - specifier: 15.8.0 - version: 15.8.0(react-native@0.76.6(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: 15.11.2 + version: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) react-native-web: - specifier: ~0.19.13 - version: 0.19.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ~0.20.0 + version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) remark-variables: specifier: ^1.4.9 version: 1.4.9 @@ -199,23 +194,23 @@ importers: specifier: 22.10.5 version: 22.10.5 '@types/react': - specifier: ~18.3.12 - version: 18.3.18 + specifier: 19.0.10 + version: 19.0.10 '@types/react-dom': - specifier: ^18.2.19 - version: 18.3.5(@types/react@18.3.18) + specifier: 19.1.5 + version: 19.1.5(@types/react@19.0.10) autoprefixer: specifier: ^10.4.20 - version: 10.4.20(postcss@8.5.1) + version: 10.4.21(postcss@8.5.3) eslint: specifier: ^8 version: 8.57.1 eslint-config-next: specifier: 15.1.3 - version: 15.1.3(eslint@8.57.1)(typescript@5.7.3) + version: 15.1.3(eslint@8.57.1)(typescript@5.8.3) postcss: specifier: ^8.4.49 - version: 8.5.1 + version: 8.5.3 raw-loader: specifier: ^4.0.2 version: 4.0.2(webpack@5.97.1) @@ -224,7 +219,7 @@ importers: version: 3.4.17 typescript: specifier: ^5.3.3 - version: 5.7.3 + version: 5.8.3 apps/old-docs: dependencies: @@ -239,13 +234,13 @@ importers: version: 0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)) '@astrojs/starlight-tailwind': specifier: ^2.0.1 - version: 2.0.3(@astrojs/starlight@0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)))(@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.3.5))(tailwindcss@3.3.5) + version: 2.0.3(@astrojs/starlight@0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)))(@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.4.17))(tailwindcss@3.4.17) '@astrojs/tailwind': specifier: ^5.1.0 - version: 5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.3.5) + version: 5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.4.17) '@astrojs/vercel': specifier: ^7.3.4 - version: 7.8.2(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(react@19.0.0)(rollup@4.41.0) + version: 7.8.2(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(rollup@4.41.0) '@radix-ui/react-collapsible': specifier: ^1.0.3 version: 1.1.11(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -266,7 +261,7 @@ importers: version: 19.1.5(@types/react@19.0.14) '@vercel/analytics': specifier: ^1.5.0 - version: 1.5.0(react@19.0.0) + version: 1.5.0(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) astro: specifier: ^4.4.9 version: 4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3) @@ -386,7 +381,7 @@ importers: version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.3.5) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) react: specifier: 19.0.0 version: 19.0.0 @@ -567,7 +562,7 @@ importers: version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.3.5) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) react-hook-form: specifier: ^7.49.2 version: 7.56.4(react@19.0.0) @@ -658,7 +653,7 @@ importers: version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.3.5) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) react: specifier: 19.0.0 version: 19.0.0 @@ -691,7 +686,10 @@ importers: version: 3.4.17 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.3.5) + version: 1.0.7(tailwindcss@3.4.17) + zustand: + specifier: ^4.4.7 + version: 4.5.7(@types/react@19.0.14)(react@19.0.0) devDependencies: '@babel/core': specifier: ^7.26.0 @@ -1345,14 +1343,20 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.4': resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] @@ -1369,14 +1373,20 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.4': resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} cpu: [arm64] os: [android] @@ -1393,14 +1403,20 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.4': resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} cpu: [arm] os: [android] @@ -1417,14 +1433,20 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.4': resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} cpu: [x64] os: [android] @@ -1441,14 +1463,20 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.4': resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] @@ -1465,14 +1493,20 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.4': resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] @@ -1489,14 +1523,20 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.4': resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] @@ -1513,14 +1553,20 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.4': resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] @@ -1537,14 +1583,20 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.4': resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] @@ -1561,14 +1613,20 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.4': resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] @@ -1585,14 +1643,20 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.4': resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] @@ -1609,14 +1673,20 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.4': resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] @@ -1633,14 +1703,20 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.4': resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] @@ -1657,14 +1733,20 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.4': resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] @@ -1681,14 +1763,20 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.4': resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] @@ -1705,14 +1793,20 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.4': resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] @@ -1729,18 +1823,42 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.25.4': resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-arm64@0.25.4': resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.17.19': resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} engines: {node: '>=12'} @@ -1753,20 +1871,38 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.4': resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-arm64@0.25.4': resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] @@ -1783,14 +1919,20 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.4': resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] @@ -1807,14 +1949,20 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.4': resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] @@ -1831,14 +1979,20 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.4': resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] @@ -1855,14 +2009,20 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.4': resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] @@ -1879,12 +2039,42 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.4': resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@expo/cli@0.24.13': resolution: {integrity: sha512-2LSdbvYs+WmUljnplQXMCUyNzyX4H+F4l8uExfA1hud25Bl5kyaGrx1jjtgNxMTXmfmMjvgBdK798R50imEhkA==} hasBin: true @@ -1992,6 +2182,9 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@formatjs/intl-localematcher@0.5.10': + resolution: {integrity: sha512-af3qATX+m4Rnd9+wHcjJ4w2ijq+rAVP3CCinJQvFv1kgSu1W6jypUmvleJxcewdxmutM8dmIRZFxO/IQBZmP2Q==} + '@gorhom/bottom-sheet@5.1.4': resolution: {integrity: sha512-A49fbCLL3wxDhGvEsMzHDpBF+BqVCbXHEhLJo9plPSAxNjjPJFzJ65axj95R38+iqML0gmXyawpZ45PD4EEMAw==} peerDependencies: @@ -2037,105 +2230,221 @@ packages: cpu: [arm64] os: [darwin] + '@img/sharp-darwin-arm64@0.34.2': + resolution: {integrity: sha512-OfXHZPppddivUJnqyKoi5YVeHRkkNE2zUFT2gbpKxp/JZCFYEYubnMg+gOp6lWfasPrTS+KPosKqdI+ELYVDtg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + '@img/sharp-darwin-x64@0.33.5': resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] + '@img/sharp-darwin-x64@0.34.2': + resolution: {integrity: sha512-dYvWqmjU9VxqXmjEtjmvHnGqF8GrVjM2Epj9rJ6BUIXvk8slvNDJbhGFvIoXzkDhrJC2jUxNLz/GUjjvSzfw+g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.0.4': resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + cpu: [arm64] + os: [darwin] + '@img/sharp-libvips-darwin-x64@1.0.4': resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-linux-arm64@1.0.4': resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linux-arm@1.0.5': resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + '@img/sharp-libvips-linux-s390x@1.0.4': resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + cpu: [s390x] + os: [linux] + '@img/sharp-libvips-linux-x64@1.0.4': resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.0.4': resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + cpu: [x64] + os: [linux] + '@img/sharp-linux-arm64@0.33.5': resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linux-arm64@0.34.2': + resolution: {integrity: sha512-D8n8wgWmPDakc83LORcfJepdOSN6MvWNzzz2ux0MnIbOqdieRZwVYY32zxVx+IFUT8er5KPcyU3XXsn+GzG/0Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linux-arm@0.33.5': resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + '@img/sharp-linux-arm@0.34.2': + resolution: {integrity: sha512-0DZzkvuEOqQUP9mo2kjjKNok5AmnOr1jB2XYjkaoNRwpAYMDzRmAqUIa1nRi58S2WswqSfPOWLNOr0FDT3H5RQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + '@img/sharp-linux-s390x@0.33.5': resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + '@img/sharp-linux-s390x@0.34.2': + resolution: {integrity: sha512-EGZ1xwhBI7dNISwxjChqBGELCWMGDvmxZXKjQRuqMrakhO8QoMgqCrdjnAqJq/CScxfRn+Bb7suXBElKQpPDiw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + '@img/sharp-linux-x64@0.33.5': resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linux-x64@0.34.2': + resolution: {integrity: sha512-sD7J+h5nFLMMmOXYH4DD9UtSNBD05tWSSdWAcEyzqW8Cn5UxXvsHAxmxSesYUsTOBmUnjtxghKDl15EvfqLFbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linuxmusl-arm64@0.33.5': resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linuxmusl-arm64@0.34.2': + resolution: {integrity: sha512-NEE2vQ6wcxYav1/A22OOxoSOGiKnNmDzCYFOZ949xFmrWZOVII1Bp3NqVVpvj+3UeHMFyN5eP/V5hzViQ5CZNA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linuxmusl-x64@0.33.5': resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linuxmusl-x64@0.34.2': + resolution: {integrity: sha512-DOYMrDm5E6/8bm/yQLCWyuDJwUnlevR8xtF8bs+gjZ7cyUNYXiSf/E8Kp0Ss5xasIaXSHzb888V1BE4i1hFhAA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-wasm32@0.33.5': resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-wasm32@0.34.2': + resolution: {integrity: sha512-/VI4mdlJ9zkaq53MbIG6rZY+QRN3MLbR6usYlgITEzi4Rpx5S6LFKsycOQjkOGmqTNmkIdLjEvooFKwww6OpdQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.2': + resolution: {integrity: sha512-cfP/r9FdS63VA5k0xiqaNaEoGxBg9k7uE+RQGzuK9fHt7jib4zAVVseR9LsE4gJcNWgT6APKMNnCcnyOtmSEUQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + '@img/sharp-win32-ia32@0.33.5': resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] + '@img/sharp-win32-ia32@0.34.2': + resolution: {integrity: sha512-QLjGGvAbj0X/FXl8n1WbtQ6iVBpWU7JO94u/P2M4a8CFYsvQi4GW2mRy/JqkRx0qpBzaOdKJKw8uc930EX2AHw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + '@img/sharp-win32-x64@0.33.5': resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] + '@img/sharp-win32-x64@0.34.2': + resolution: {integrity: sha512-aUdT6zEYtDKCaxkofmmJDJYGCf0+pJg3eU9/oBuqvEeoB9dKI6ZLc/1iLJCTuJQDO4ptntAlkUmHgGjyuobZbw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2209,113 +2518,56 @@ packages: '@mdx-js/mdx@3.1.0': resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} - '@next/env@14.2.23': - resolution: {integrity: sha512-CysUC9IO+2Bh0omJ3qrb47S8DtsTKbFidGm6ow4gXIG6reZybqxbkH2nhdEm1tC8SmgzDdpq3BIML0PWsmyUYA==} - - '@next/env@15.1.3': - resolution: {integrity: sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==} + '@next/env@15.3.2': + resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} '@next/eslint-plugin-next@15.1.3': resolution: {integrity: sha512-oeP1vnc5Cq9UoOb8SYHAEPbCXMzOgG70l+Zfd+Ie00R25FOm+CCVNrcIubJvB1tvBgakXE37MmqSycksXVPRqg==} - '@next/swc-darwin-arm64@14.2.23': - resolution: {integrity: sha512-WhtEntt6NcbABA8ypEoFd3uzq5iAnrl9AnZt9dXdO+PZLACE32z3a3qA5OoV20JrbJfSJ6Sd6EqGZTrlRnGxQQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-arm64@15.1.3': - resolution: {integrity: sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==} + '@next/swc-darwin-arm64@15.3.2': + resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.23': - resolution: {integrity: sha512-vwLw0HN2gVclT/ikO6EcE+LcIN+0mddJ53yG4eZd0rXkuEr/RnOaMH8wg/sYl5iz5AYYRo/l6XX7FIo6kwbw1Q==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-darwin-x64@15.1.3': - resolution: {integrity: sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==} + '@next/swc-darwin-x64@15.3.2': + resolution: {integrity: sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.23': - resolution: {integrity: sha512-uuAYwD3At2fu5CH1wD7FpP87mnjAv4+DNvLaR9kiIi8DLStWSW304kF09p1EQfhcbUI1Py2vZlBO2VaVqMRtpg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-gnu@15.1.3': - resolution: {integrity: sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@14.2.23': - resolution: {integrity: sha512-Mm5KHd7nGgeJ4EETvVgFuqKOyDh+UMXHXxye6wRRFDr4FdVRI6YTxajoV2aHE8jqC14xeAMVZvLqYqS7isHL+g==} + '@next/swc-linux-arm64-gnu@15.3.2': + resolution: {integrity: sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.1.3': - resolution: {integrity: sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==} + '@next/swc-linux-arm64-musl@15.3.2': + resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.23': - resolution: {integrity: sha512-Ybfqlyzm4sMSEQO6lDksggAIxnvWSG2cDWnG2jgd+MLbHYn2pvFA8DQ4pT2Vjk3Cwrv+HIg7vXJ8lCiLz79qoQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-gnu@15.1.3': - resolution: {integrity: sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@14.2.23': - resolution: {integrity: sha512-OSQX94sxd1gOUz3jhhdocnKsy4/peG8zV1HVaW6DLEbEmRRtUCUQZcKxUD9atLYa3RZA+YJx+WZdOnTkDuNDNA==} + '@next/swc-linux-x64-gnu@15.3.2': + resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.1.3': - resolution: {integrity: sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==} + '@next/swc-linux-x64-musl@15.3.2': + resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.23': - resolution: {integrity: sha512-ezmbgZy++XpIMTcTNd0L4k7+cNI4ET5vMv/oqNfTuSXkZtSA9BURElPFyarjjGtRgZ9/zuKDHoMdZwDZIY3ehQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-arm64-msvc@15.1.3': - resolution: {integrity: sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==} + '@next/swc-win32-arm64-msvc@15.3.2': + resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.23': - resolution: {integrity: sha512-zfHZOGguFCqAJ7zldTKg4tJHPJyJCOFhpoJcVxKL9BSUHScVDnMdDuOU1zPPGdOzr/GWxbhYTjyiEgLEpAoFPA==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - - '@next/swc-win32-x64-msvc@14.2.23': - resolution: {integrity: sha512-xCtq5BD553SzOgSZ7UH5LH+OATQihydObTrCTvVzOro8QiWYKdBVwcB2Mn2MLMo6DGW9yH1LSPw7jS7HhgJgjw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.1.3': - resolution: {integrity: sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==} + '@next/swc-win32-x64-msvc@15.3.2': + resolution: {integrity: sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2332,46 +2584,54 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@nolyfill/is-core-module@1.0.39': + resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} + engines: {node: '>=12.4.0'} + + '@orama/orama@2.1.1': + resolution: {integrity: sha512-euTV/2kya290SNkl5m8e/H1na8iDygk74nNtl4E0YZNyYIrEMwE1JwamoroMKGZw2Uz+in/8gH3m1+2YfP0j1w==} + engines: {node: '>= 16.0.0'} + '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} - '@oxc-transform/binding-darwin-arm64@0.43.0': - resolution: {integrity: sha512-RqqhTftyG9LwHdZ4v3YkJBMgZSI7BQp5qWpJQYCChVRVLOJjNtF1Oq5J/rKiqmntvSrWGrJHUeYQtOJnrlMb6g==} + '@oxc-transform/binding-darwin-arm64@0.51.0': + resolution: {integrity: sha512-HYZzgm/lCUAJP7Ya9IXbqb5t5gNo33tR9rmMr2RslgmkcxsEku1nCWDuZezdhYEuvrhnzwGnwmqK25dvwSCN4g==} cpu: [arm64] os: [darwin] - '@oxc-transform/binding-darwin-x64@0.43.0': - resolution: {integrity: sha512-Iw2a/uWWbeetxS8KplRBD2PnWcwATd/Yy/nIu7rQ0SopZxEoSA/qHZiTIztMcF/jOKJlgo/rhDtjASzD+hW/nw==} + '@oxc-transform/binding-darwin-x64@0.51.0': + resolution: {integrity: sha512-GB57jsdGN2UQPLlZFrzopUHiC9DZqZvQpErwNEoIuan2DJeYNvxppI7Jgv4HH735KgZuMi+a/39/cNjroDpq5w==} cpu: [x64] os: [darwin] - '@oxc-transform/binding-linux-arm64-gnu@0.43.0': - resolution: {integrity: sha512-4mZg+lntLUStu/2qmpGE7Mqj3eTnBvcezXa4M1pBHtkRCA03bhLJ/Xv7e9Tknpv8joazxftCHSr0BSASdMlhPg==} + '@oxc-transform/binding-linux-arm64-gnu@0.51.0': + resolution: {integrity: sha512-qmD8PqpBEdQLJzhEonna21G2sazGGoEXMfGxiMEOQcbJcKTdZPBwzEI1LqwHzMDIZ9m6bUevoIKsPECkdbPJ2A==} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-arm64-musl@0.43.0': - resolution: {integrity: sha512-+0JxQ9IJNB4bvIWyy0EViRnwikeCo0FctejWW2lg7Mqh7z24uu0oQ1DDAb9plFeiJMmrytStpXEq3/92/GdqUA==} + '@oxc-transform/binding-linux-arm64-musl@0.51.0': + resolution: {integrity: sha512-9LUaIDFBORKGz3mluTB+BcFQQX8zSgG23mFDrNXRlE9VBZkn54NCMN8LX5W51/Uxo4FJmlj5GYcjmmplgfTsRQ==} cpu: [arm64] os: [linux] - '@oxc-transform/binding-linux-x64-gnu@0.43.0': - resolution: {integrity: sha512-he9LbBfZZAPnAJRgbdOQYnlD6dENryVtUCSLqUy0vkVCgRGvw6Y4KPdFNEFQYDDAlFpL0VPolQkuR+IUEaUXSQ==} + '@oxc-transform/binding-linux-x64-gnu@0.51.0': + resolution: {integrity: sha512-RQSjTs2PAtIirnHYbNW6TyD6aaUxXzcYM4h1k/Q6MhPzRUxwNot5iSN7jUOcyX+eM8YtoVvwJdXgciaoBYC7lQ==} cpu: [x64] os: [linux] - '@oxc-transform/binding-linux-x64-musl@0.43.0': - resolution: {integrity: sha512-CLsXVSKhnjnr67PVrbNhvBLfR1yq6O9gUjZuYR0Y9vUi92f575r9PNVIsR00DMbog3q7sW/og4oTd5sqms22ug==} + '@oxc-transform/binding-linux-x64-musl@0.51.0': + resolution: {integrity: sha512-q/0q3UGbU31dJaV/ZOL5bwiWXMol51mdOm7m1zPN49dmPv+yDXQpK94v5gqbWnw/jgGgMSWynAjsh0BQXrgWMA==} cpu: [x64] os: [linux] - '@oxc-transform/binding-win32-arm64-msvc@0.43.0': - resolution: {integrity: sha512-xbvSsbV32y62N5APQ14SuzIdLPHryMIdLQ1tRoH43kfZcWqi2qeWtgZX/hUnxh3vM9h0sfspXl4S2ohi5q3glw==} + '@oxc-transform/binding-win32-arm64-msvc@0.51.0': + resolution: {integrity: sha512-Z/cdSIRWCeBSqCZAOg+hm082g+RNVfzrG73yYXLo++yG1+Fdf5GfS0Y2BRS1XgKxowTqKKYr2A+RILLYo20hMw==} cpu: [arm64] os: [win32] - '@oxc-transform/binding-win32-x64-msvc@0.43.0': - resolution: {integrity: sha512-rUEUaGIFkcgPAKDvpTQ2o18KWAinLJS6T2TDQMNrS5RYH4u1k7+d9lUCno/f8xbYMnP/AKO3F17HzcvL6U75qg==} + '@oxc-transform/binding-win32-x64-msvc@0.51.0': + resolution: {integrity: sha512-Frw6EdCSotGMMBh5kSaJhhhQySHelTR/wKigZ55g9UL8I4UHKzzPSNqbQN1yGSeqt3ghnVYFFzdz/+WpGQqgnw==} cpu: [x64] os: [win32] @@ -2539,7 +2799,7 @@ packages: resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' - react: 19.0.0 + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true @@ -2770,6 +3030,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-scroll-area@1.2.9': + resolution: {integrity: sha512-YSjEfBXnhUELsO2VzjdtYYD4CfQjvao+lhhrX5XsHD7/cyUNzljF1FHEbgTPN7LH2MClfwRMIsYlqTYpKTTe2A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-select@2.2.5': resolution: {integrity: sha512-HnMTdXEVuuyzx63ME0ut4+sEMYW6oouHWNGUZc7ddvUWIcfCva/AMoqEW/3wnEllriMWBa0RHspCYnfCWJQYmA==} peerDependencies: @@ -3617,24 +3890,51 @@ packages: cpu: [x64] os: [win32] + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@rushstack/eslint-patch@1.11.0': + resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + '@shikijs/core@1.29.2': resolution: {integrity: sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==} + '@shikijs/core@3.5.0': + resolution: {integrity: sha512-iycvvnVG7MWZHRNuoqpYkV3Qc8DNLU74Lxh/roDwUqJJoXRnCTbbVJGfSWAdBslUgJMsjSHwFL42i55voavDDg==} + '@shikijs/engine-javascript@1.29.2': resolution: {integrity: sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==} + '@shikijs/engine-javascript@3.5.0': + resolution: {integrity: sha512-3MhSnVHEdGb4L4FS/HAPc7WtPmIfHjRZraObf6tKxQaGuQGZfBsoLVCGuoGfiqt/zy0MKpll3oiZiQ/maT/wlQ==} + '@shikijs/engine-oniguruma@1.29.2': resolution: {integrity: sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==} + '@shikijs/engine-oniguruma@3.5.0': + resolution: {integrity: sha512-DLM1VL+WvWFHQlikP8MTc8T2MdEGAOJhAi9+48wkQ7kO7c/99h4ALK0b0CPQBCeLMp37raoM1Ucuo3OTSjtUxA==} + '@shikijs/langs@1.29.2': resolution: {integrity: sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==} + '@shikijs/langs@3.5.0': + resolution: {integrity: sha512-kBJhmj0ZkULbf3O+Asr8Xs7hcFtQdPnqIld2kKrG9WhDpIvqMRWSj3L9LECi2TH7vV6ROrvJ78/1yEASL0d00w==} + + '@shikijs/rehype@1.29.2': + resolution: {integrity: sha512-sxi53HZe5XDz0s2UqF+BVN/kgHPMS9l6dcacM4Ra3ZDzCJa5rDGJ+Ukpk4LxdD1+MITBM6hoLbPfGv9StV8a5Q==} + '@shikijs/themes@1.29.2': resolution: {integrity: sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==} + '@shikijs/themes@3.5.0': + resolution: {integrity: sha512-xr4bPmAORm2fhfVeaCDfRXiq0rxAxPRR0Bhiw+EaofgJ79Jj61fnVZDF40nJKvmMoKnC60TqCTpbr15ToTgTOA==} + '@shikijs/types@1.29.2': resolution: {integrity: sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==} + '@shikijs/types@3.5.0': + resolution: {integrity: sha512-VvqGHhS8BWClF7eVnEJLe0nAhQw/1L+xC5mp6uj+tVr3tjD2ASx2Mx9M9l7tZQO++1qwZeIIusvSRhz4aKODFQ==} + '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -3654,6 +3954,12 @@ packages: '@sinonjs/fake-timers@10.3.0': resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@tanstack/react-table@8.21.3': resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} engines: {node: '>=12'} @@ -3668,8 +3974,8 @@ packages: '@ts-morph/common@0.19.0': resolution: {integrity: sha512-Unz/WHmd4pGax91rdIKWi51wnVUW11QttMEPpBiBgIewnc9UQIX7UDLxr5vRlqeByXCwhkF6VabSsI0raWcyAQ==} - '@ts-morph/common@0.25.0': - resolution: {integrity: sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==} + '@ts-morph/common@0.26.1': + resolution: {integrity: sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==} '@tsconfig/recommended@1.0.8': resolution: {integrity: sha512-TotjFaaXveVUdsrXCdalyF6E5RyG6+7hHHQVZonQtdlk1rJZ1myDIvPUUKPhoYv+JAzThb2lQJh9+9ZfF46hsA==} @@ -3764,14 +4070,11 @@ packages: '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - '@types/node@22.15.21': - resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} - '@types/node@22.10.5': resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} - '@types/node@22.8.1': - resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==} + '@types/node@22.15.21': + resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} @@ -3784,6 +4087,9 @@ packages: peerDependencies: '@types/react': ^19.0.0 + '@types/react@19.0.10': + resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==} + '@types/react@19.0.14': resolution: {integrity: sha512-ixLZ7zG7j1fM0DijL9hDArwhwcCb4vqmePgwtV0GfnkHRSCUEv4LvzarcTdhoqgyMznUx/EhoTUv31CKZzkQlw==} @@ -3805,6 +4111,65 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + '@typescript-eslint/eslint-plugin@8.33.1': + resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.33.1 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.33.1': + resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/project-service@8.33.1': + resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.33.1': + resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.33.1': + resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.33.1': + resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.33.1': + resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.33.1': + resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.33.1': + resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.33.1': + resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -3882,10 +4247,61 @@ packages: '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + '@xmldom/xmldom@0.8.10': resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} engines: {node: '>=10.0.0'} + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + abbrev@3.0.1: resolution: {integrity: sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -4052,6 +4468,9 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + ast-types-flow@0.0.8: + resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + ast-types@0.16.1: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} @@ -4083,6 +4502,14 @@ packages: peerDependencies: postcss: ^8.1.0 + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} + engines: {node: '>=4'} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -4282,6 +4709,18 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + caller-callsite@2.0.0: resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} engines: {node: '>=4'} @@ -4511,6 +4950,9 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + cookies-next@4.3.0: + resolution: {integrity: sha512-XxeCwLR30cWwRd94sa9X5lRCDLVujtx73tv+N0doQCFIDl83fuuYdxbu/WQUt9aSV7EJx7bkMvJldjvzuFqr4w==} + core-js-compat@3.42.0: resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==} @@ -4566,6 +5008,9 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + damerau-levenshtein@1.0.8: + resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} @@ -4632,10 +5077,18 @@ packages: defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -4721,6 +5174,10 @@ packages: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -4782,9 +5239,29 @@ packages: error-stack-parser@2.1.4: resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} @@ -4812,13 +5289,18 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} + hasBin: true + esbuild@0.25.4: resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} engines: {node: '>=18'} hasBin: true - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} engines: {node: '>=18'} hasBin: true @@ -4981,8 +5463,8 @@ packages: estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - estree-util-value-to-estree@3.2.1: - resolution: {integrity: sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==} + estree-util-value-to-estree@3.4.0: + resolution: {integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==} estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} @@ -4993,6 +5475,10 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} @@ -5155,6 +5641,10 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.1: + resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} + engines: {node: '>=8.6.0'} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -5162,6 +5652,9 @@ packages: fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} @@ -5189,6 +5682,10 @@ packages: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -5236,6 +5733,10 @@ packages: fontfaceobserver@2.3.0: resolution: {integrity: sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -5293,8 +5794,8 @@ packages: react-dom: optional: true - fumadocs-docgen@1.3.4: - resolution: {integrity: sha512-NL/ZXxckbAE4J6rXP4gGQTUQtX3P+rv0dM+XUAhWgWItuL9Z3fzVsY3e4wWpYnp0TpHRySYnNg3RcbSmovrFyQ==} + fumadocs-docgen@1.3.8: + resolution: {integrity: sha512-vm8tahW0Bi34AwkFw6p9gugueo8u+MFh6mjcxlpSEiCCECiuROSS7Szhi8uMY5RnM8ivnVy3zrlSE/WVcHN8Ow==} fumadocs-mdx@11.2.3: resolution: {integrity: sha512-2+EBHe85NT0JpSldaEi8rUwsGb/0ZL7+3bsmckeqbJbb5rS3Ugmws05tp90yEAORt+G6TdHC0/xeQKUfFfgoGw==} @@ -5303,8 +5804,8 @@ packages: fumadocs-core: ^14.0.0 next: 14.x.x || 15.x.x - fumadocs-typescript@3.0.2: - resolution: {integrity: sha512-SqYJy+NxjjuQQeom7wLpODYiWtIKWfndguHL3XKXaMUvhlsjmsWWTaXJWKaqIfOStiYJQlGWrXxFA2Rrpbx63Q==} + fumadocs-typescript@3.1.0: + resolution: {integrity: sha512-H8zEMUrQfM8dqUBGhMepAjXi5hRbSKSK5565ObXXzQI7kFHnLH5Jc1MFBa6LXyaatZIv7B7ozWdVm7XaUHDtiA==} peerDependencies: typescript: '*' @@ -5323,6 +5824,13 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + fzf@0.5.2: resolution: {integrity: sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==} @@ -5338,6 +5846,10 @@ packages: resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} @@ -5346,10 +5858,18 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + get-tsconfig@4.10.1: resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} @@ -5402,6 +5922,10 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -5428,6 +5952,21 @@ packages: resolution: {integrity: sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==} engines: {node: '>=8'} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -5562,6 +6101,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + image-size@1.2.1: resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} @@ -5611,6 +6154,10 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -5629,10 +6176,21 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} + is-bun-module@1.3.0: + resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -5678,6 +6236,10 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -5698,6 +6260,10 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -5706,10 +6272,26 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -5718,6 +6300,18 @@ packages: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} @@ -5730,8 +6324,8 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} is-weakset@2.0.4: @@ -5746,6 +6340,9 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -5898,6 +6495,13 @@ packages: resolution: {integrity: sha512-0qPYjNoD89v+bfhkIqFBYGBAof1xhxLqjX8bkNN1kQdP81UHpZw5TDXgEjwB+X2iCFGQmzF8TRmvg4vQcykyDA==} hasBin: true + language-subtag-registry@0.3.23: + resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + + language-tags@1.0.9: + resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} + engines: {node: '>=0.10'} + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -6056,6 +6660,14 @@ packages: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -6121,11 +6733,6 @@ packages: react-native: '*' react-native-svg: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 - lucide-react@0.511.0: - resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - lucide-react@0.469.0: resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} peerDependencies: @@ -6136,6 +6743,11 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lucide-react@0.511.0: + resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} @@ -6155,6 +6767,10 @@ packages: marky@1.3.0: resolution: {integrity: sha512-ocnPZQLNpvbedwTy9kNrQEsknEfgvcLMvOtz3sFeWApDq1MXH1TqkCIx58xlpESsfwQOnuBO9beyQuNGzVvuhQ==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} @@ -6524,6 +7140,13 @@ packages: resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} + negotiator@1.0.0: + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neotraverse@0.6.18: resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} engines: {node: '>= 10'} @@ -6531,6 +7154,33 @@ packages: nested-error-stacks@2.0.1: resolution: {integrity: sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==} + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + + next@15.3.2: + resolution: {integrity: sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + nlcst-to-string@3.1.1: resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} @@ -6627,6 +7277,10 @@ packages: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -6682,9 +7336,15 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + oniguruma-to-es@2.3.0: resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + open@7.4.2: resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} engines: {node: '>=8'} @@ -6709,6 +7369,13 @@ packages: resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} engines: {node: '>=18'} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + oxc-transform@0.51.0: + resolution: {integrity: sha512-5hmju6LD5cGXWzvweduIg9hCcBKWMIq2ILvwwiKEgb03cxPoKYsx65FfITJPVOkBzHFYRGri2AXo/mY1DJRmJQ==} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -6855,6 +7522,10 @@ packages: resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} engines: {node: '>=4.0.0'} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -6901,8 +7572,8 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-selector-parser@7.0.0: - resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -7047,6 +7718,12 @@ packages: react-is@19.1.0: resolution: {integrity: sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==} + react-medium-image-zoom@5.2.14: + resolution: {integrity: sha512-nfTVYcAUnBzXQpPDcZL+cG/e6UceYUIG+zDcnemL7jtAqbJjVVkA85RgneGtJeni12dTyiRPZVM6Szkmwd/o8w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-native-calendars@1.1312.0: resolution: {integrity: sha512-Hx0AZ/MXlwiKu47DPnGop9Zqf2poRR4OEk/EhcpgRr41iBL6yM+puhCciJGAghVaHHxZ4lny2ZvM7b+NOeE5WQ==} engines: {node: '>=18'} @@ -7215,6 +7892,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + recast@0.23.11: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} @@ -7254,12 +7935,18 @@ packages: regex-recursion@5.1.1: resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} regex@5.1.1: resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -7319,6 +8006,13 @@ packages: remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + remark-variables@1.4.9: + resolution: {integrity: sha512-AsCju40G47pcDAnzdBsn/sCDsR2hsHnUxuxbZWtIDaWfb6LkXYuqMWWx52tpNWvcwNmwSadjMlxclgsSSGisUg==} + engines: {node: '>=8'} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + repeat-string@1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} @@ -7438,6 +8132,10 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -7455,6 +8153,10 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + schema-utils@4.3.2: resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} engines: {node: '>= 10.13.0'} @@ -7502,6 +8204,18 @@ packages: server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -7519,6 +8233,10 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.34.2: + resolution: {integrity: sha512-lszvBmB9QURERtyKT2bNmsgxXK0ShJrL/fvqlonCo7e6xBF8nT8xU6pW+PMIbLsz0RxQk3rgH9kd8UmvOzlMJg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -7534,8 +8252,8 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} - shiki@1.26.1: - resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==} + shiki@3.5.0: + resolution: {integrity: sha512-1lyPuqIPPAlmR1BKtDkxiuoZTB2IKSyr+GeHXu4ReOyHoEMhCnUoGZDUv4SJRH0Bi4QmsEPsrkQCRSOgnVRC+g==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -7621,6 +8339,9 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -7648,6 +8369,10 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + stream-buffers@2.2.0: resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==} engines: {node: '>= 0.10.0'} @@ -7655,6 +8380,10 @@ packages: stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + streamx@2.22.0: resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} @@ -7674,6 +8403,29 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -7725,19 +8477,6 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - styled-jsx@5.1.1: - resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} engines: {node: '>= 12.0.0'} @@ -7792,6 +8531,10 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + tapable@2.2.2: + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + engines: {node: '>=6'} + tar-fs@2.1.2: resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} @@ -7817,6 +8560,22 @@ packages: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} + terser-webpack-plugin@5.3.14: + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + terser@5.39.2: resolution: {integrity: sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==} engines: {node: '>=10'} @@ -7882,8 +8641,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.0.0: - resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -7894,8 +8653,8 @@ packages: ts-morph@18.0.0: resolution: {integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==} - ts-morph@24.0.0: - resolution: {integrity: sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==} + ts-morph@25.0.1: + resolution: {integrity: sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==} ts-object-utils@0.0.5: resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==} @@ -7986,6 +8745,10 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} @@ -8036,6 +8799,13 @@ packages: ultrahtml@1.6.0: resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -8484,6 +9254,10 @@ packages: resolution: {integrity: sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==} engines: {node: '>=18.12'} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -8634,6 +9408,24 @@ packages: zod@3.25.17: resolution: {integrity: sha512-8hQzQ/kMOIFbwOgPrm9Sf9rtFHpFUMy4HvN0yEB0spw14aYi0uT5xG5CE2DB9cd51GWNsz+DNO7se1kztHMKnw==} + zod@3.25.51: + resolution: {integrity: sha512-TQSnBldh+XSGL+opiSIq0575wvDPqu09AqWe1F7JhUMKY+M91/aGlK4MhpVNO7MgYfHcVCB1ffwAUTJzllKJqg==} + + zustand@4.5.7: + resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0.6' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + zustand@5.0.5: resolution: {integrity: sha512-mILtRfKW9xM47hqxGIxCv12gXusoY/xTSHBYApXozR0HmQv299whhBeeAcRy+KrPPybzosvJBCOmVjq6x12fCg==} engines: {node: '>=12.20.0'} @@ -8816,13 +9608,13 @@ snapshots: dependencies: sitemap: 8.0.0 stream-replace-string: 2.0.0 - zod: 3.25.17 + zod: 3.25.51 - '@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)))(@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.3.5))(tailwindcss@3.3.5)': + '@astrojs/starlight-tailwind@2.0.3(@astrojs/starlight@0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)))(@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.4.17))(tailwindcss@3.4.17)': dependencies: '@astrojs/starlight': 0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)) - '@astrojs/tailwind': 5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.3.5) - tailwindcss: 3.3.5 + '@astrojs/tailwind': 5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.4.17) + tailwindcss: 3.4.17 '@astrojs/starlight@0.21.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))': dependencies: @@ -8849,13 +9641,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.3.5)': + '@astrojs/tailwind@5.1.5(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(tailwindcss@3.4.17)': dependencies: astro: 4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3) autoprefixer: 10.4.21(postcss@8.5.3) postcss: 8.5.3 postcss-load-config: 4.0.2(postcss@8.5.3) - tailwindcss: 3.3.5 + tailwindcss: 3.4.17 transitivePeerDependencies: - ts-node @@ -8871,10 +9663,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/vercel@7.8.2(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(react@19.0.0)(rollup@4.41.0)': + '@astrojs/vercel@7.8.2(astro@4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3))(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)(rollup@4.41.0)': dependencies: '@astrojs/internal-helpers': 0.4.2 - '@vercel/analytics': 1.5.0(react@19.0.0) + '@vercel/analytics': 1.5.0(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) '@vercel/edge': 1.2.1 '@vercel/nft': 0.27.10(rollup@4.41.0) astro: 4.16.18(@types/node@22.15.21)(lightningcss@1.30.1)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3) @@ -9528,10 +10320,13 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.24.2': + optional: true + '@esbuild/aix-ppc64@0.25.4': optional: true - '@esbuild/aix-ppc64@0.24.2': + '@esbuild/aix-ppc64@0.25.5': optional: true '@esbuild/android-arm64@0.17.19': @@ -9540,10 +10335,13 @@ snapshots: '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.24.2': + optional: true + '@esbuild/android-arm64@0.25.4': optional: true - '@esbuild/android-arm64@0.24.2': + '@esbuild/android-arm64@0.25.5': optional: true '@esbuild/android-arm@0.17.19': @@ -9552,10 +10350,13 @@ snapshots: '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.24.2': + optional: true + '@esbuild/android-arm@0.25.4': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm@0.25.5': optional: true '@esbuild/android-x64@0.17.19': @@ -9564,10 +10365,13 @@ snapshots: '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.24.2': + optional: true + '@esbuild/android-x64@0.25.4': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/android-x64@0.25.5': optional: true '@esbuild/darwin-arm64@0.17.19': @@ -9576,10 +10380,13 @@ snapshots: '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.24.2': + optional: true + '@esbuild/darwin-arm64@0.25.4': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/darwin-arm64@0.25.5': optional: true '@esbuild/darwin-x64@0.17.19': @@ -9588,10 +10395,13 @@ snapshots: '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.24.2': + optional: true + '@esbuild/darwin-x64@0.25.4': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/darwin-x64@0.25.5': optional: true '@esbuild/freebsd-arm64@0.17.19': @@ -9600,10 +10410,13 @@ snapshots: '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.24.2': + optional: true + '@esbuild/freebsd-arm64@0.25.4': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/freebsd-arm64@0.25.5': optional: true '@esbuild/freebsd-x64@0.17.19': @@ -9612,10 +10425,13 @@ snapshots: '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.24.2': + optional: true + '@esbuild/freebsd-x64@0.25.4': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/freebsd-x64@0.25.5': optional: true '@esbuild/linux-arm64@0.17.19': @@ -9624,10 +10440,13 @@ snapshots: '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.24.2': + optional: true + '@esbuild/linux-arm64@0.25.4': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/linux-arm64@0.25.5': optional: true '@esbuild/linux-arm@0.17.19': @@ -9636,10 +10455,13 @@ snapshots: '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.24.2': + optional: true + '@esbuild/linux-arm@0.25.4': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/linux-arm@0.25.5': optional: true '@esbuild/linux-ia32@0.17.19': @@ -9648,10 +10470,13 @@ snapshots: '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.24.2': + optional: true + '@esbuild/linux-ia32@0.25.4': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/linux-ia32@0.25.5': optional: true '@esbuild/linux-loong64@0.17.19': @@ -9660,10 +10485,13 @@ snapshots: '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.24.2': + optional: true + '@esbuild/linux-loong64@0.25.4': optional: true - '@esbuild/linux-loong64@0.24.2': + '@esbuild/linux-loong64@0.25.5': optional: true '@esbuild/linux-mips64el@0.17.19': @@ -9672,10 +10500,13 @@ snapshots: '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.24.2': + optional: true + '@esbuild/linux-mips64el@0.25.4': optional: true - '@esbuild/linux-mips64el@0.24.2': + '@esbuild/linux-mips64el@0.25.5': optional: true '@esbuild/linux-ppc64@0.17.19': @@ -9684,10 +10515,13 @@ snapshots: '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.24.2': + optional: true + '@esbuild/linux-ppc64@0.25.4': optional: true - '@esbuild/linux-ppc64@0.24.2': + '@esbuild/linux-ppc64@0.25.5': optional: true '@esbuild/linux-riscv64@0.17.19': @@ -9696,10 +10530,13 @@ snapshots: '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.24.2': + optional: true + '@esbuild/linux-riscv64@0.25.4': optional: true - '@esbuild/linux-riscv64@0.24.2': + '@esbuild/linux-riscv64@0.25.5': optional: true '@esbuild/linux-s390x@0.17.19': @@ -9708,10 +10545,13 @@ snapshots: '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.24.2': + optional: true + '@esbuild/linux-s390x@0.25.4': optional: true - '@esbuild/linux-s390x@0.24.2': + '@esbuild/linux-s390x@0.25.5': optional: true '@esbuild/linux-x64@0.17.19': @@ -9720,43 +10560,61 @@ snapshots: '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/linux-x64@0.25.4': + '@esbuild/linux-x64@0.24.2': optional: true - '@esbuild/netbsd-arm64@0.25.4': + '@esbuild/linux-x64@0.25.4': optional: true - '@esbuild/linux-x64@0.24.2': + '@esbuild/linux-x64@0.25.5': optional: true '@esbuild/netbsd-arm64@0.24.2': optional: true + '@esbuild/netbsd-arm64@0.25.4': + optional: true + + '@esbuild/netbsd-arm64@0.25.5': + optional: true + '@esbuild/netbsd-x64@0.17.19': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.24.2': + optional: true + '@esbuild/netbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-arm64@0.25.4': + '@esbuild/netbsd-x64@0.25.5': optional: true '@esbuild/openbsd-arm64@0.24.2': optional: true + '@esbuild/openbsd-arm64@0.25.4': + optional: true + + '@esbuild/openbsd-arm64@0.25.5': + optional: true + '@esbuild/openbsd-x64@0.17.19': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.24.2': + optional: true + '@esbuild/openbsd-x64@0.25.4': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@esbuild/openbsd-x64@0.25.5': optional: true '@esbuild/sunos-x64@0.17.19': @@ -9765,10 +10623,13 @@ snapshots: '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.24.2': + optional: true + '@esbuild/sunos-x64@0.25.4': optional: true - '@esbuild/sunos-x64@0.24.2': + '@esbuild/sunos-x64@0.25.5': optional: true '@esbuild/win32-arm64@0.17.19': @@ -9777,10 +10638,13 @@ snapshots: '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.24.2': + optional: true + '@esbuild/win32-arm64@0.25.4': optional: true - '@esbuild/win32-arm64@0.24.2': + '@esbuild/win32-arm64@0.25.5': optional: true '@esbuild/win32-ia32@0.17.19': @@ -9789,10 +10653,13 @@ snapshots: '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.24.2': + optional: true + '@esbuild/win32-ia32@0.25.4': optional: true - '@esbuild/win32-ia32@0.24.2': + '@esbuild/win32-ia32@0.25.5': optional: true '@esbuild/win32-x64@0.17.19': @@ -9801,9 +10668,38 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.24.2': + optional: true + '@esbuild/win32-x64@0.25.4': optional: true + '@esbuild/win32-x64@0.25.5': + optional: true + + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + '@expo/cli@0.24.13': dependencies: '@0no-co/graphql.web': 1.1.2 @@ -10103,6 +10999,10 @@ snapshots: '@floating-ui/utils@0.2.9': {} + '@formatjs/intl-localematcher@0.5.10': + dependencies: + tslib: 2.8.1 + '@gorhom/bottom-sheet@5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@gorhom/portal': 1.0.14(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) @@ -10127,7 +11027,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -10141,76 +11041,157 @@ snapshots: '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true + '@img/sharp-darwin-arm64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true + '@img/sharp-darwin-x64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + '@img/sharp-libvips-linux-arm@1.0.5': optional: true + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + '@img/sharp-libvips-linux-x64@1.0.4': optional: true + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true + '@img/sharp-linux-arm64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + '@img/sharp-linux-arm@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.0.5 optional: true + '@img/sharp-linux-arm@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true + '@img/sharp-linux-s390x@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + '@img/sharp-linux-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.0.4 optional: true + '@img/sharp-linux-x64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true + '@img/sharp-linuxmusl-arm64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true + '@img/sharp-linuxmusl-x64@0.34.2': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + '@img/sharp-wasm32@0.33.5': dependencies: '@emnapi/runtime': 1.4.3 optional: true + '@img/sharp-wasm32@0.34.2': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-win32-arm64@0.34.2': + optional: true + '@img/sharp-win32-ia32@0.33.5': optional: true + '@img/sharp-win32-ia32@0.34.2': + optional: true + '@img/sharp-win32-x64@0.33.5': optional: true + '@img/sharp-win32-x64@0.34.2': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -10244,14 +11225,14 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.10.5 jest-mock: 29.7.0 '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.21 + '@types/node': 22.10.5 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -10285,7 +11266,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.21 + '@types/node': 22.10.5 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -10354,64 +11335,34 @@ snapshots: - acorn - supports-color - '@next/env@14.2.23': {} - - '@next/env@15.1.3': - optional: true + '@next/env@15.3.2': {} '@next/eslint-plugin-next@15.1.3': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@14.2.23': - optional: true - - '@next/swc-darwin-arm64@15.1.3': - optional: true - - '@next/swc-darwin-x64@14.2.23': - optional: true - - '@next/swc-darwin-x64@15.1.3': - optional: true - - '@next/swc-linux-arm64-gnu@14.2.23': - optional: true - - '@next/swc-linux-arm64-gnu@15.1.3': - optional: true - - '@next/swc-linux-arm64-musl@14.2.23': - optional: true - - '@next/swc-linux-arm64-musl@15.1.3': - optional: true - - '@next/swc-linux-x64-gnu@14.2.23': - optional: true - - '@next/swc-linux-x64-gnu@15.1.3': + '@next/swc-darwin-arm64@15.3.2': optional: true - '@next/swc-linux-x64-musl@14.2.23': + '@next/swc-darwin-x64@15.3.2': optional: true - '@next/swc-linux-x64-musl@15.1.3': + '@next/swc-linux-arm64-gnu@15.3.2': optional: true - '@next/swc-win32-arm64-msvc@14.2.23': + '@next/swc-linux-arm64-musl@15.3.2': optional: true - '@next/swc-win32-arm64-msvc@15.1.3': + '@next/swc-linux-x64-gnu@15.3.2': optional: true - '@next/swc-win32-ia32-msvc@14.2.23': + '@next/swc-linux-x64-musl@15.3.2': optional: true - '@next/swc-win32-x64-msvc@14.2.23': + '@next/swc-win32-arm64-msvc@15.3.2': optional: true - '@next/swc-win32-x64-msvc@15.1.3': + '@next/swc-win32-x64-msvc@15.3.2': optional: true '@nodelib/fs.scandir@2.1.5': @@ -10426,32 +11377,34 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@nolyfill/is-core-module@1.0.39': {} + '@orama/orama@2.1.1': {} '@oslojs/encoding@1.1.0': {} - '@oxc-transform/binding-darwin-arm64@0.43.0': + '@oxc-transform/binding-darwin-arm64@0.51.0': optional: true - '@oxc-transform/binding-darwin-x64@0.43.0': + '@oxc-transform/binding-darwin-x64@0.51.0': optional: true - '@oxc-transform/binding-linux-arm64-gnu@0.43.0': + '@oxc-transform/binding-linux-arm64-gnu@0.51.0': optional: true - '@oxc-transform/binding-linux-arm64-musl@0.43.0': + '@oxc-transform/binding-linux-arm64-musl@0.51.0': optional: true - '@oxc-transform/binding-linux-x64-gnu@0.43.0': + '@oxc-transform/binding-linux-x64-gnu@0.51.0': optional: true - '@oxc-transform/binding-linux-x64-musl@0.43.0': + '@oxc-transform/binding-linux-x64-musl@0.51.0': optional: true - '@oxc-transform/binding-win32-arm64-msvc@0.43.0': + '@oxc-transform/binding-win32-arm64-msvc@0.51.0': optional: true - '@oxc-transform/binding-win32-x64-msvc@0.43.0': + '@oxc-transform/binding-win32-x64-msvc@0.51.0': optional: true '@pagefind/darwin-arm64@1.3.0': @@ -10478,6 +11431,23 @@ snapshots: '@radix-ui/primitive@1.1.2': {} + '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10509,6 +11479,15 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -10534,6 +11513,22 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10550,6 +11545,18 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) @@ -10562,6 +11569,12 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 @@ -10582,12 +11595,40 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-context@1.1.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-context@1.1.2(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.0(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10610,12 +11651,31 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-direction@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-direction@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10644,12 +11704,29 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) @@ -10678,6 +11755,13 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-id@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-id@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) @@ -10738,6 +11822,28 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-navigation-menu@1.2.13(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-navigation-menu@1.2.13(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10760,6 +11866,29 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.0(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10783,6 +11912,24 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/rect': 1.1.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -10798,8 +11945,18 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.0.14 + '@types/react-dom': 19.1.5(@types/react@19.0.14) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: @@ -10811,6 +11968,16 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) @@ -10821,6 +11988,15 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-slot': 1.2.3(@types/react@19.0.14)(react@19.0.0) @@ -10858,6 +12034,23 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -10875,6 +12068,52 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-scroll-area@1.2.9(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + + '@radix-ui/react-select@2.2.5(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + aria-hidden: 1.2.6 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.7.0(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-select@2.2.5(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/number': 1.1.1 @@ -10939,6 +12178,13 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-slot@1.2.3(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-slot@1.2.3(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) @@ -10961,6 +12207,22 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -11038,12 +12300,26 @@ snapshots: '@types/react': 19.0.14 '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.0.14)(react@19.0.0) @@ -11052,6 +12328,13 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) @@ -11059,6 +12342,13 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) @@ -11066,18 +12356,37 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-previous@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-previous@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-rect@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-rect@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/rect': 1.1.1 @@ -11085,6 +12394,13 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-use-size@1.1.1(@types/react@19.0.10)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-size@1.1.1(@types/react@19.0.14)(react@19.0.0)': dependencies: '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) @@ -11092,6 +12408,15 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.1.5(@types/react@19.0.10) + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -11219,6 +12544,15 @@ snapshots: '@react-native/normalize-colors@0.79.2': {} + '@react-native/virtualized-lists@0.79.2(@types/react@19.0.10)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)': + dependencies: + invariant: 2.2.4 + nullthrows: 1.1.1 + react: 19.0.0 + react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + '@react-native/virtualized-lists@0.79.2(@types/react@19.0.14)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: invariant: 2.2.4 @@ -11796,6 +13130,10 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.41.0': optional: true + '@rtsao/scc@1.1.0': {} + + '@rushstack/eslint-patch@1.11.0': {} + '@shikijs/core@1.29.2': dependencies: '@shikijs/engine-javascript': 1.29.2 @@ -11805,30 +13143,70 @@ snapshots: '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 + '@shikijs/core@3.5.0': + dependencies: + '@shikijs/types': 3.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + '@shikijs/engine-javascript@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 2.3.0 + '@shikijs/engine-javascript@3.5.0': + dependencies: + '@shikijs/types': 3.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + '@shikijs/engine-oniguruma@1.29.2': dependencies: '@shikijs/types': 1.29.2 '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-oniguruma@3.5.0': + dependencies: + '@shikijs/types': 3.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/langs@1.29.2': dependencies: '@shikijs/types': 1.29.2 + '@shikijs/langs@3.5.0': + dependencies: + '@shikijs/types': 3.5.0 + + '@shikijs/rehype@1.29.2': + dependencies: + '@shikijs/types': 1.29.2 + '@types/hast': 3.0.4 + hast-util-to-string: 3.0.1 + shiki: 1.29.2 + unified: 11.0.5 + unist-util-visit: 5.0.0 + '@shikijs/themes@1.29.2': dependencies: '@shikijs/types': 1.29.2 + '@shikijs/themes@3.5.0': + dependencies: + '@shikijs/types': 3.5.0 + '@shikijs/types@1.29.2': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + '@shikijs/types@3.5.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + '@shikijs/vscode-textmate@10.0.2': {} '@shopify/flash-list@1.7.6(@babel/runtime@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': @@ -11849,6 +13227,12 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + '@tanstack/react-table@8.21.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@tanstack/table-core': 8.21.3 @@ -11864,11 +13248,11 @@ snapshots: mkdirp: 2.1.6 path-browserify: 1.0.1 - '@ts-morph/common@0.25.0': + '@ts-morph/common@0.26.1': dependencies: + fast-glob: 3.3.3 minimatch: 9.0.5 path-browserify: 1.0.1 - tinyglobby: 0.2.10 '@tsconfig/recommended@1.0.8': {} @@ -11904,11 +13288,11 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@types/json-schema': 7.0.15 '@types/estree-jsx@1.0.5': @@ -11924,7 +13308,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.10.5 '@types/hammerjs@2.0.46': {} @@ -11978,17 +13362,13 @@ snapshots: '@types/node@17.0.45': {} - '@types/node@22.15.21': - dependencies: - undici-types: 6.21.0 - '@types/node@22.10.5': dependencies: undici-types: 6.20.0 - '@types/node@22.8.1': + '@types/node@22.15.21': dependencies: - undici-types: 6.19.8 + undici-types: 6.21.0 '@types/parse5@6.0.3': {} @@ -11997,10 +13377,18 @@ snapshots: '@types/node': 22.15.21 kleur: 3.0.3 + '@types/react-dom@19.1.5(@types/react@19.0.10)': + dependencies: + '@types/react': 19.0.10 + '@types/react-dom@19.1.5(@types/react@19.0.14)': dependencies: '@types/react': 19.0.14 + '@types/react@19.0.10': + dependencies: + csstype: 3.1.3 + '@types/react@19.0.14': dependencies: csstype: 3.1.3 @@ -12021,6 +13409,98 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/type-utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.1 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.1 + debug: 4.4.1 + eslint: 8.57.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + debug: 4.4.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.33.1': + dependencies: + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/visitor-keys': 8.33.1 + + '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': + dependencies: + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@8.57.1)(typescript@5.8.3) + debug: 4.4.1 + eslint: 8.57.1 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.33.1': {} + + '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/visitor-keys': 8.33.1 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.2 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.33.1(eslint@8.57.1)(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + eslint: 8.57.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.33.1': + dependencies: + '@typescript-eslint/types': 8.33.1 + eslint-visitor-keys: 4.2.0 + '@ungap/structured-clone@1.3.0': {} '@urql/core@5.1.1': @@ -12035,8 +13515,9 @@ snapshots: '@urql/core': 5.1.1 wonka: 6.3.5 - '@vercel/analytics@1.5.0(react@19.0.0)': + '@vercel/analytics@1.5.0(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)': optionalDependencies: + next: 15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 '@vercel/edge@1.2.1': {} @@ -12121,8 +13602,88 @@ snapshots: '@vscode/l10n@0.0.18': {} + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + '@xmldom/xmldom@0.8.10': {} + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + abbrev@3.0.1: {} abort-controller@3.0.0: @@ -12226,16 +13787,16 @@ snapshots: array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-array-buffer: 3.0.5 array-includes@3.1.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-string: 1.1.1 array-iterate@2.0.1: {} @@ -12248,7 +13809,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 @@ -12257,7 +13818,7 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 @@ -12266,21 +13827,21 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-shim-unscopables: 1.0.2 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 @@ -12289,13 +13850,15 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 asap@2.0.6: {} + ast-types-flow@0.0.8: {} + ast-types@0.16.1: dependencies: tslib: 2.8.1 @@ -12401,6 +13964,12 @@ snapshots: postcss: 8.5.3 postcss-value-parser: 4.2.0 + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + axe-core@4.10.3: {} + axobject-query@4.1.0: {} b4a@1.6.7: {} @@ -12664,6 +14233,23 @@ snapshots: cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + caller-callsite@2.0.0: dependencies: callsites: 2.0.0 @@ -12725,7 +14311,7 @@ snapshots: chokidar@4.0.3: dependencies: - readdirp: 4.1.1 + readdirp: 4.1.2 chownr@1.1.4: {} @@ -12733,7 +14319,7 @@ snapshots: chrome-launcher@0.15.2: dependencies: - '@types/node': 22.15.21 + '@types/node': 22.10.5 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -12744,7 +14330,7 @@ snapshots: chromium-edge-launcher@0.2.0: dependencies: - '@types/node': 22.15.21 + '@types/node': 22.10.5 escape-string-regexp: 4.0.0 is-wsl: 2.2.0 lighthouse-logger: 1.4.2 @@ -12876,6 +14462,11 @@ snapshots: cookie@0.7.2: {} + cookies-next@4.3.0: + dependencies: + '@types/cookie': 0.6.0 + cookie: 0.7.2 + core-js-compat@3.42.0: dependencies: browserslist: 4.24.5 @@ -12937,23 +14528,25 @@ snapshots: csstype@3.1.3: {} + damerau-levenshtein@1.0.8: {} + data-uri-to-buffer@4.0.1: {} data-view-buffer@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 @@ -12989,8 +14582,20 @@ snapshots: dependencies: clone: 1.0.4 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + define-lazy-prop@2.0.0: {} + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + depd@2.0.0: {} dequal@2.0.3: {} @@ -13059,6 +14664,12 @@ snapshots: dset@3.1.4: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + eastasianwidth@0.2.0: {} ee-first@1.1.1: {} @@ -13091,7 +14702,7 @@ snapshots: enhanced-resolve@5.18.0: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.1 + tapable: 2.2.2 entities@4.5.0: {} @@ -13107,12 +14718,96 @@ snapshots: dependencies: stackframe: 1.3.4 + es-abstract@1.24.0: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -13191,6 +14886,34 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + esbuild@0.25.4: optionalDependencies: '@esbuild/aix-ppc64': 0.25.4 @@ -13219,33 +14942,33 @@ snapshots: '@esbuild/win32-ia32': 0.25.4 '@esbuild/win32-x64': 0.25.4 - esbuild@0.24.2: + esbuild@0.25.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 escalade@3.2.0: {} @@ -13259,21 +14982,21 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-next@15.1.3(eslint@8.57.1)(typescript@5.7.3): + eslint-config-next@15.1.3(eslint@8.57.1)(typescript@5.8.3): dependencies: '@next/eslint-plugin-next': 15.1.3 - '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint@8.57.1)(typescript@5.7.3) - '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3) + '@rushstack/eslint-patch': 1.11.0 + '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint@8.57.1)(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-react: 7.37.4(eslint@8.57.1) eslint-plugin-react-hooks: 5.1.0(eslint@8.57.1) optionalDependencies: - typescript: 5.7.3 + typescript: 5.8.3 transitivePeerDependencies: - eslint-import-resolver-webpack - eslint-plugin-import-x @@ -13290,31 +15013,31 @@ snapshots: eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.0 + debug: 4.4.1 enhanced-resolve: 5.18.0 eslint: 8.57.1 fast-glob: 3.3.3 - get-tsconfig: 4.8.1 + get-tsconfig: 4.10.1 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-typescript@3.7.0)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -13325,7 +15048,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.1(eslint@8.57.1)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -13337,7 +15060,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.7.3) + '@typescript-eslint/parser': 8.33.1(eslint@8.57.1)(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -13349,7 +15072,7 @@ snapshots: array-includes: 3.1.8 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.2 + axe-core: 4.10.3 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -13404,18 +15127,18 @@ snapshots: eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.1 + '@ungap/structured-clone': 1.3.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.1 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -13447,8 +15170,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -13489,9 +15212,9 @@ snapshots: astring: 1.9.0 source-map: 0.7.4 - estree-util-value-to-estree@3.2.1: + estree-util-value-to-estree@3.4.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 estree-util-visit@2.0.0: dependencies: @@ -13504,6 +15227,8 @@ snapshots: dependencies: '@types/estree': 1.0.7 + esutils@2.0.3: {} + etag@1.8.1: {} event-target-shim@5.0.1: {} @@ -13720,6 +15445,14 @@ snapshots: fast-fifo@1.3.2: {} + fast-glob@3.3.1: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13730,6 +15463,8 @@ snapshots: fast-json-stable-stringify@2.1.0: {} + fast-levenshtein@2.0.6: {} + fast-uri@3.0.6: {} fastq@1.19.1: @@ -13763,6 +15498,10 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 3.3.3 + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + file-uri-to-path@1.0.0: {} fill-range@7.1.1: @@ -13814,6 +15553,10 @@ snapshots: fontfaceobserver@2.3.0: {} + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -13842,96 +15585,98 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + fumadocs-core@14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@orama/orama': 2.1.1 - '@shikijs/rehype': 1.27.2 + '@shikijs/rehype': 1.29.2 github-slugger: 2.0.0 - hast-util-to-estree: 3.1.1 - hast-util-to-jsx-runtime: 2.3.2 - image-size: 1.2.0 + hast-util-to-estree: 3.1.3 + hast-util-to-jsx-runtime: 2.3.6 + image-size: 1.2.1 negotiator: 1.0.0 - react-remove-scroll: 2.6.2(@types/react@18.3.18)(react@18.3.1) + react-remove-scroll: 2.7.0(@types/react@19.0.10)(react@19.0.0) remark: 15.0.1 - remark-gfm: 4.0.0 + remark-gfm: 4.0.1 scroll-into-view-if-needed: 3.1.0 - shiki: 1.27.2 + shiki: 1.29.2 unist-util-visit: 5.0.0 optionalDependencies: - next: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + next: 15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) transitivePeerDependencies: - '@types/react' - supports-color - fumadocs-docgen@1.3.4(typescript@5.7.3): + fumadocs-docgen@1.3.8(typescript@5.8.3): dependencies: - estree-util-value-to-estree: 3.2.1 - fumadocs-typescript: 3.0.2(typescript@5.7.3) - hast-util-to-estree: 3.1.1 + estree-util-to-js: 2.0.0 + estree-util-value-to-estree: 3.4.0 + fumadocs-typescript: 3.1.0(typescript@5.8.3) + hast-util-to-estree: 3.1.3 npm-to-yarn: 3.0.1 - oxc-transform: 0.43.0 + oxc-transform: 0.51.0 unist-util-visit: 5.0.0 - zod: 3.24.1 + zod: 3.25.51 transitivePeerDependencies: - supports-color - typescript - fumadocs-mdx@11.2.3(acorn@8.14.0)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + fumadocs-mdx@11.2.3(acorn@8.14.1)(fumadocs-core@14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + '@mdx-js/mdx': 3.1.0(acorn@8.14.1) chokidar: 4.0.3 cross-spawn: 7.0.6 esbuild: 0.24.2 - estree-util-value-to-estree: 3.2.1 + estree-util-value-to-estree: 3.4.0 fast-glob: 3.3.3 - fumadocs-core: 14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-core: 14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) gray-matter: 4.0.3 micromatch: 4.0.8 - next: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) unist-util-visit: 5.0.0 - zod: 3.24.1 + zod: 3.25.51 transitivePeerDependencies: - acorn - supports-color - fumadocs-typescript@3.0.2(typescript@5.7.3): + fumadocs-typescript@3.1.0(typescript@5.8.3): dependencies: - '@types/node': 22.8.1 + estree-util-value-to-estree: 3.4.0 fast-glob: 3.3.3 - hast-util-to-jsx-runtime: 2.3.2 - mdast-util-from-markdown: 2.0.2 - mdast-util-gfm: 3.0.0 - mdast-util-to-hast: 13.2.0 - shiki: 1.27.2 - ts-morph: 24.0.0 - typescript: 5.7.3 + hast-util-to-estree: 3.1.3 + hast-util-to-jsx-runtime: 2.3.6 + remark: 15.0.1 + remark-rehype: 11.1.2 + shiki: 3.5.0 + ts-morph: 25.0.1 + typescript: 5.8.3 + unist-util-visit: 5.0.0 transitivePeerDependencies: - supports-color - fumadocs-ui@14.7.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(fumadocs-core@14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17): - dependencies: - '@radix-ui/react-accordion': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-collapsible': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-dialog': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-navigation-menu': 1.2.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-popover': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-scroll-area': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) - '@radix-ui/react-tabs': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-ui@14.7.2(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(fumadocs-core@14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + dependencies: + '@radix-ui/react-accordion': 1.2.11(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-navigation-menu': 1.2.13(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-popover': 1.1.14(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-scroll-area': 1.2.9(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.0.0) + '@radix-ui/react-tabs': 1.1.12(@types/react-dom@19.1.5(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) class-variance-authority: 0.7.1 - fumadocs-core: 14.7.2(@types/react@18.3.18)(next@14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fumadocs-core: 14.7.2(@types/react@19.0.10)(next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-dom@19.0.0(react@19.0.0))(react@19.0.0) lodash.merge: 4.6.2 - lucide-react: 0.469.0(react@18.3.1) - next: 14.2.23(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next-themes: 0.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - postcss-selector-parser: 7.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-medium-image-zoom: 5.2.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + lucide-react: 0.469.0(react@19.0.0) + next: 15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next-themes: 0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + postcss-selector-parser: 7.1.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-medium-image-zoom: 5.2.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tailwind-merge: 2.6.0 optionalDependencies: tailwindcss: 3.4.17 @@ -13941,6 +15686,17 @@ snapshots: function-bind@1.1.2: {} + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + fzf@0.5.2: {} gensync@1.0.0-beta.2: {} @@ -13949,12 +15705,36 @@ snapshots: get-east-asian-width@1.3.0: {} + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} get-package-type@0.1.0: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + get-stream@6.0.1: {} + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -14020,6 +15800,8 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + gopd@1.2.0: {} + graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -14039,6 +15821,20 @@ snapshots: has-own-prop@2.0.0: {} + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -14326,6 +16122,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + image-size@1.2.1: dependencies: queue: 6.0.2 @@ -14376,13 +16174,19 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} is-async-function@2.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -14395,21 +16199,32 @@ snapshots: dependencies: binary-extensions: 2.3.0 + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + is-buffer@2.0.5: {} + is-bun-module@1.3.0: + dependencies: + semver: 7.7.2 + + is-callable@1.2.7: {} + is-core-module@2.16.1: dependencies: hasown: 2.0.2 is-data-view@1.0.2: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-decimal@2.0.1: {} @@ -14426,10 +16241,17 @@ snapshots: is-finalizationregistry@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -14444,33 +16266,65 @@ snapshots: is-map@2.0.3: {} + is-negative-zero@2.0.3: {} + is-number-object@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} + is-path-inside@3.0.3: {} + is-plain-obj@4.1.0: {} + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + is-stream@2.0.1: {} is-stream@3.0.0: {} + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.19 + is-unicode-supported@1.3.0: {} is-unicode-supported@2.1.0: {} is-weakmap@2.0.2: {} - is-weakref@1.1.0: + is-weakref@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-weakset@2.0.4: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-wsl@2.2.0: dependencies: @@ -14480,6 +16334,8 @@ snapshots: dependencies: is-inside-container: 1.0.0 + isarray@2.0.5: {} + isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -14498,7 +16354,7 @@ snapshots: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 @@ -14514,7 +16370,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.10.5 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -14524,7 +16380,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.21 + '@types/node': 22.10.5 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -14551,7 +16407,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.10.5 jest-util: 29.7.0 jest-regex-util@29.6.3: {} @@ -14559,7 +16415,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.10.5 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -14582,7 +16438,7 @@ snapshots: jest-worker@29.7.0: dependencies: - '@types/node': 22.15.21 + '@types/node': 22.10.5 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14657,6 +16513,12 @@ snapshots: lan-network@0.1.6: {} + language-subtag-registry@0.3.23: {} + + language-tags@1.0.9: + dependencies: + language-subtag-registry: 0.3.23 + leven@3.1.0: {} levn@0.4.1: @@ -14776,6 +16638,14 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 + loader-runner@4.3.0: {} + + loader-utils@2.0.4: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -14837,13 +16707,17 @@ snapshots: react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-svg: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - lucide-react@0.511.0(react@19.0.0): + lucide-react@0.469.0(react@19.0.0): + dependencies: + react: 19.0.0 + + lucide-react@0.471.2(react@19.0.0): dependencies: react: 19.0.0 - lucide-react@0.471.2(react@18.3.1): + lucide-react@0.511.0(react@19.0.0): dependencies: - react: 18.3.1 + react: 19.0.0 magic-string@0.30.17: dependencies: @@ -14865,6 +16739,8 @@ snapshots: marky@1.3.0: {} + math-intrinsics@1.1.0: {} + mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.4 @@ -15587,12 +17463,26 @@ snapshots: napi-build-utils@2.0.0: {} - nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.3.5): + nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + dependencies: + comment-json: 4.2.5 + debug: 4.4.1 + react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + tailwindcss: 3.4.17 + transitivePeerDependencies: + - react + - react-native + - react-native-reanimated + - react-native-safe-area-context + - react-native-svg + - supports-color + + nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): dependencies: comment-json: 4.2.5 debug: 4.4.1 - react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.3.5) - tailwindcss: 3.3.5 + react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + tailwindcss: 3.4.17 transitivePeerDependencies: - react - react-native @@ -15607,10 +17497,44 @@ snapshots: negotiator@0.6.4: {} + negotiator@1.0.0: {} + + neo-async@2.6.2: {} + neotraverse@0.6.18: {} nested-error-stacks@2.0.1: {} + next-themes@0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + next@15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.3.2 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001718 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(@babel/core@7.27.1)(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.3.2 + '@next/swc-darwin-x64': 15.3.2 + '@next/swc-linux-arm64-gnu': 15.3.2 + '@next/swc-linux-arm64-musl': 15.3.2 + '@next/swc-linux-x64-gnu': 15.3.2 + '@next/swc-linux-x64-musl': 15.3.2 + '@next/swc-win32-arm64-msvc': 15.3.2 + '@next/swc-win32-x64-msvc': 15.3.2 + sharp: 0.34.2 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nlcst-to-string@3.1.1: dependencies: '@types/nlcst': 1.0.4 @@ -15686,12 +17610,14 @@ snapshots: object-inspect@1.13.3: {} + object-inspect@1.13.4: {} + object-keys@1.1.1: {} object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 @@ -15707,19 +17633,19 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 object.values@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -15753,12 +17679,20 @@ snapshots: dependencies: mimic-function: 5.0.1 + oniguruma-parser@0.12.1: {} + oniguruma-to-es@2.3.0: dependencies: emoji-regex-xs: 1.0.0 regex: 5.1.1 regex-recursion: 5.1.1 + oniguruma-to-es@4.3.3: + dependencies: + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 + open@7.4.2: dependencies: is-docker: 2.2.1 @@ -15812,6 +17746,23 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.1.0 + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + oxc-transform@0.51.0: + optionalDependencies: + '@oxc-transform/binding-darwin-arm64': 0.51.0 + '@oxc-transform/binding-darwin-x64': 0.51.0 + '@oxc-transform/binding-linux-arm64-gnu': 0.51.0 + '@oxc-transform/binding-linux-arm64-musl': 0.51.0 + '@oxc-transform/binding-linux-x64-gnu': 0.51.0 + '@oxc-transform/binding-linux-x64-musl': 0.51.0 + '@oxc-transform/binding-win32-arm64-msvc': 0.51.0 + '@oxc-transform/binding-win32-x64-msvc': 0.51.0 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -15951,6 +17902,8 @@ snapshots: pngjs@3.4.0: {} + possible-typed-array-names@1.1.0: {} + postcss-import@15.1.0(postcss@8.5.3): dependencies: postcss: 8.5.3 @@ -15987,7 +17940,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.0.0: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -15996,7 +17949,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 @@ -16145,6 +18098,11 @@ snapshots: react-is@19.1.0: {} + react-medium-image-zoom@5.2.14(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-native-calendars@1.1312.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: hoist-non-react-statics: 3.3.2 @@ -16161,7 +18119,24 @@ snapshots: - react - react-native - react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.3.5): + react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + dependencies: + '@babel/helper-module-imports': 7.27.1 + '@babel/traverse': 7.27.1 + '@babel/types': 7.27.1 + debug: 4.4.1 + lightningcss: 1.30.1 + react: 19.0.0 + react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + semver: 7.7.2 + tailwindcss: 3.4.17 + optionalDependencies: + react-native-svg: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + transitivePeerDependencies: + - supports-color + + react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/traverse': 7.27.1 @@ -16172,7 +18147,7 @@ snapshots: react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) semver: 7.7.2 - tailwindcss: 3.3.5 + tailwindcss: 3.4.17 optionalDependencies: react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-svg: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) @@ -16192,6 +18167,11 @@ snapshots: react: 19.0.0 react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-is-edge-to-edge@1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native-is-edge-to-edge@1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 @@ -16202,6 +18182,26 @@ snapshots: react: 19.0.0 react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): + dependencies: + '@babel/core': 7.27.1 + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.1) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.1) + '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) + convert-source-map: 2.0.0 + invariant: 2.2.4 + react: 19.0.0 + react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + transitivePeerDependencies: + - supports-color + react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: '@babel/core': 7.27.1 @@ -16239,6 +18239,14 @@ snapshots: react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) warn-once: 0.1.1 + react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): + dependencies: + css-select: 5.1.0 + css-tree: 1.1.3 + react: 19.0.0 + react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + warn-once: 0.1.1 + react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: css-select: 5.1.0 @@ -16283,6 +18291,54 @@ snapshots: transitivePeerDependencies: - encoding + react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0): + dependencies: + '@jest/create-cache-key-function': 29.7.0 + '@react-native/assets-registry': 0.79.2 + '@react-native/codegen': 0.79.2(@babel/core@7.27.1) + '@react-native/community-cli-plugin': 0.79.2 + '@react-native/gradle-plugin': 0.79.2 + '@react-native/js-polyfills': 0.79.2 + '@react-native/normalize-colors': 0.79.2 + '@react-native/virtualized-lists': 0.79.2(@types/react@19.0.10)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + abort-controller: 3.0.0 + anser: 1.4.10 + ansi-regex: 5.0.1 + babel-jest: 29.7.0(@babel/core@7.27.1) + babel-plugin-syntax-hermes-parser: 0.25.1 + base64-js: 1.5.1 + chalk: 4.1.2 + commander: 12.1.0 + event-target-shim: 5.0.1 + flow-enums-runtime: 0.0.6 + glob: 7.2.3 + invariant: 2.2.4 + jest-environment-node: 29.7.0 + memoize-one: 5.2.1 + metro-runtime: 0.82.4 + metro-source-map: 0.82.4 + nullthrows: 1.1.1 + pretty-format: 29.7.0 + promise: 8.3.0 + react: 19.0.0 + react-devtools-core: 6.1.2 + react-refresh: 0.14.2 + regenerator-runtime: 0.13.11 + scheduler: 0.25.0 + semver: 7.7.2 + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + ws: 6.2.3 + yargs: 17.7.2 + optionalDependencies: + '@types/react': 19.0.10 + transitivePeerDependencies: + - '@babel/core' + - '@react-native-community/cli' + - bufferutil + - supports-color + - utf-8-validate + react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0): dependencies: '@jest/create-cache-key-function': 29.7.0 @@ -16335,6 +18391,14 @@ snapshots: react-refresh@0.17.0: {} + react-remove-scroll-bar@2.3.8(@types/react@19.0.10)(react@19.0.0): + dependencies: + react: 19.0.0 + react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + react-remove-scroll-bar@2.3.8(@types/react@19.0.14)(react@19.0.0): dependencies: react: 19.0.0 @@ -16343,6 +18407,17 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + react-remove-scroll@2.7.0(@types/react@19.0.10)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.10)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.10)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.10)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.10)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.10 + react-remove-scroll@2.7.0(@types/react@19.0.14)(react@19.0.0): dependencies: react: 19.0.0 @@ -16354,6 +18429,14 @@ snapshots: optionalDependencies: '@types/react': 19.0.14 + react-style-singleton@2.2.3(@types/react@19.0.10)(react@19.0.0): + dependencies: + get-nonce: 1.0.1 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + react-style-singleton@2.2.3(@types/react@19.0.14)(react@19.0.0): dependencies: get-nonce: 1.0.1 @@ -16378,6 +18461,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.1.2: {} + recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -16428,10 +18513,10 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -16448,12 +18533,20 @@ snapshots: regex: 5.1.1 regex-utilities: 2.3.0 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + regex-utilities@2.3.0: {} regex@5.1.1: dependencies: regex-utilities: 2.3.0 + regex@6.0.1: + dependencies: + regex-utilities: 2.3.0 + regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -16580,6 +18673,17 @@ snapshots: mdast-util-to-markdown: 2.1.2 unified: 11.0.5 + remark-variables@1.4.9: {} + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + repeat-string@1.6.1: {} request-light@0.5.8: {} @@ -16735,6 +18839,14 @@ snapshots: dependencies: queue-microtask: 1.2.3 + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + safe-buffer@5.2.1: {} safe-push-apply@1.0.0: @@ -16744,7 +18856,7 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 @@ -16752,6 +18864,12 @@ snapshots: scheduler@0.25.0: {} + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + schema-utils@4.3.2: dependencies: '@types/json-schema': 7.0.15 @@ -16827,6 +18945,28 @@ snapshots: server-only@0.0.1: {} + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -16873,6 +19013,35 @@ snapshots: '@img/sharp-win32-x64': 0.33.5 optional: true + sharp@0.34.2: + dependencies: + color: 4.2.3 + detect-libc: 2.0.4 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.2 + '@img/sharp-darwin-x64': 0.34.2 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.2 + '@img/sharp-linux-arm64': 0.34.2 + '@img/sharp-linux-s390x': 0.34.2 + '@img/sharp-linux-x64': 0.34.2 + '@img/sharp-linuxmusl-arm64': 0.34.2 + '@img/sharp-linuxmusl-x64': 0.34.2 + '@img/sharp-wasm32': 0.34.2 + '@img/sharp-win32-arm64': 0.34.2 + '@img/sharp-win32-ia32': 0.34.2 + '@img/sharp-win32-x64': 0.34.2 + optional: true + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -16892,15 +19061,15 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - shiki@1.26.1: + shiki@3.5.0: dependencies: - '@shikijs/core': 1.26.1 - '@shikijs/engine-javascript': 1.26.1 - '@shikijs/engine-oniguruma': 1.26.1 - '@shikijs/langs': 1.26.1 - '@shikijs/themes': 1.26.1 - '@shikijs/types': 1.26.1 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/core': 3.5.0 + '@shikijs/engine-javascript': 3.5.0 + '@shikijs/engine-oniguruma': 3.5.0 + '@shikijs/langs': 3.5.0 + '@shikijs/themes': 3.5.0 + '@shikijs/types': 3.5.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 side-channel-list@1.0.0: @@ -16910,16 +19079,16 @@ snapshots: side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-inspect: 1.13.3 side-channel-map: 1.0.1 @@ -16989,6 +19158,8 @@ snapshots: sprintf-js@1.0.3: {} + stable-hash@0.0.4: {} + stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -17009,10 +19180,17 @@ snapshots: stdin-discarder@0.2.2: {} + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + stream-buffers@2.2.0: {} stream-replace-string@2.0.0: {} + streamsearch@1.1.0: {} + streamx@2.22.0: dependencies: fast-fifo: 1.3.2 @@ -17040,6 +19218,56 @@ snapshots: get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 + string.prototype.includes@2.0.1: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.0 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -17083,20 +19311,12 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.1(@babel/core@7.26.0)(react@18.3.1): + styled-jsx@5.1.6(@babel/core@7.27.1)(react@19.0.0): dependencies: client-only: 0.0.1 - react: 18.3.1 - optionalDependencies: - '@babel/core': 7.26.0 - - styled-jsx@5.1.6(@babel/core@7.26.0)(react@18.3.1): - dependencies: - client-only: 0.0.1 - react: 18.3.1 + react: 19.0.0 optionalDependencies: - '@babel/core': 7.26.0 - optional: true + '@babel/core': 7.27.1 styleq@0.1.3: {} @@ -17162,6 +19382,8 @@ snapshots: transitivePeerDependencies: - ts-node + tapable@2.2.2: {} + tar-fs@2.1.2: dependencies: chownr: 1.1.4 @@ -17209,6 +19431,15 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 + terser-webpack-plugin@5.3.14(webpack@5.97.1): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 4.3.2 + serialize-javascript: 6.0.2 + terser: 5.39.2 + webpack: 5.97.1 + terser@5.39.2: dependencies: '@jridgewell/source-map': 0.3.6 @@ -17269,9 +19500,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.0(typescript@5.7.3): + ts-api-utils@2.1.0(typescript@5.8.3): dependencies: - typescript: 5.7.3 + typescript: 5.8.3 ts-interface-checker@0.1.13: {} @@ -17280,9 +19511,9 @@ snapshots: '@ts-morph/common': 0.19.0 code-block-writer: 12.0.0 - ts-morph@24.0.0: + ts-morph@25.0.1: dependencies: - '@ts-morph/common': 0.25.0 + '@ts-morph/common': 0.26.1 code-block-writer: 13.0.3 ts-object-utils@0.0.5: {} @@ -17373,6 +19604,8 @@ snapshots: type-detect@4.0.8: {} + type-fest@0.20.2: {} + type-fest@0.21.3: {} type-fest@0.7.1: {} @@ -17383,14 +19616,14 @@ snapshots: typed-array-buffer@1.0.3: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -17399,7 +19632,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -17408,10 +19641,10 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 typesafe-path@0.2.2: {} @@ -17426,6 +19659,15 @@ snapshots: ultrahtml@1.6.0: {} + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@6.20.0: {} + undici-types@6.21.0: {} undici@6.21.3: {} @@ -17557,6 +19799,17 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + use-callback-ref@1.3.3(@types/react@19.0.10)(react@19.0.0): + dependencies: + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + use-callback-ref@1.3.3(@types/react@19.0.14)(react@19.0.0): dependencies: react: 19.0.0 @@ -17572,6 +19825,14 @@ snapshots: dependencies: react: 19.0.0 + use-sidecar@1.1.3(@types/react@19.0.10)(react@19.0.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.10 + use-sidecar@1.1.3(@types/react@19.0.14)(react@19.0.0): dependencies: detect-node-es: 1.1.0 @@ -17639,7 +19900,7 @@ snapshots: vite@6.3.5(@types/node@22.15.21)(jiti@1.21.7)(lightningcss@1.30.1)(terser@5.39.2)(tsx@4.19.4)(yaml@2.8.0): dependencies: - esbuild: 0.25.4 + esbuild: 0.25.5 fdir: 6.4.4(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 @@ -17801,15 +20062,15 @@ snapshots: webpack@5.97.1: dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.0 - browserslist: 4.24.4 + acorn: 8.14.1 + browserslist: 4.24.5 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 - es-module-lexer: 1.6.0 + es-module-lexer: 1.7.0 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -17819,8 +20080,8 @@ snapshots: mime-types: 2.1.35 neo-async: 2.6.2 schema-utils: 3.3.0 - tapable: 2.2.1 - terser-webpack-plugin: 5.3.11(webpack@5.97.1) + tapable: 2.2.2 + terser-webpack-plugin: 5.3.14(webpack@5.97.1) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -17850,14 +20111,14 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 which-builtin-type@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.1.0 @@ -17865,11 +20126,11 @@ snapshots: is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: @@ -17884,6 +20145,16 @@ snapshots: dependencies: load-yaml-file: 0.2.0 + which-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 @@ -18001,6 +20272,15 @@ snapshots: zod@3.25.17: {} + zod@3.25.51: {} + + zustand@4.5.7(@types/react@19.0.14)(react@19.0.0): + dependencies: + use-sync-external-store: 1.5.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.14 + react: 19.0.0 + zustand@5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)): optionalDependencies: '@types/react': 19.0.14 From b4239bb8a6e1c9c911cea03289b641635689561f Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Thu, 5 Jun 2025 12:42:41 -0400 Subject: [PATCH 044/467] chore: run expo install fix --- apps/docs/package.json | 2 +- apps/showcase/package.json | 12 +- packages/reusables/package.json | 2 +- packages/templates/starter-base/package.json | 12 +- pnpm-lock.yaml | 996 ++++++++++--------- 5 files changed, 518 insertions(+), 506 deletions(-) diff --git a/apps/docs/package.json b/apps/docs/package.json index 7cdd72e6..69f94ab7 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -26,7 +26,7 @@ "next": "15.3.2", "react": "19.0.0", "react-dom": "19.0.0", - "react-native": "0.79.2", + "react-native": "0.79.3", "react-native-reanimated": "~3.17.5", "react-native-svg": "15.11.2", "react-native-web": "~0.20.0", diff --git a/apps/showcase/package.json b/apps/showcase/package.json index 82b32dd5..3b155293 100644 --- a/apps/showcase/package.json +++ b/apps/showcase/package.json @@ -31,26 +31,26 @@ "@tanstack/react-table": "^8.11.7", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", - "expo": "^53.0.9", + "expo": "^53.0.10", "expo-font": "~13.3.1", "expo-haptics": "~14.1.4", "expo-linking": "~7.1.5", - "expo-navigation-bar": "~4.2.4", + "expo-navigation-bar": "~4.2.5", "expo-router": "~5.0.7", - "expo-splash-screen": "~0.30.8", + "expo-splash-screen": "~0.30.9", "expo-status-bar": "~2.2.3", - "expo-system-ui": "~5.0.7", + "expo-system-ui": "~5.0.8", "lucide-react-native": "^0.511.0", "nativewind": "^4.1.23", "react": "19.0.0", "react-dom": "19.0.0", "react-hook-form": "^7.49.2", - "react-native": "0.79.2", + "react-native": "0.79.3", "react-native-calendars": "^1.1302.0", "react-native-gesture-handler": "~2.24.0", "react-native-reanimated": "~3.17.5", "react-native-safe-area-context": "5.4.0", - "react-native-screens": "^4.10.0", + "react-native-screens": "^4.11.1", "react-native-svg": "15.11.2", "react-native-tab-view": "^3.5.2", "react-native-toast-message": "^2.2.0", diff --git a/packages/reusables/package.json b/packages/reusables/package.json index ac8e4ff4..60e250da 100644 --- a/packages/reusables/package.json +++ b/packages/reusables/package.json @@ -189,7 +189,7 @@ "@tsconfig/recommended": "^1.0.1", "@types/react": "~19.0.14", "react": "19.0.0", - "react-native": "0.79.2" + "react-native": "0.79.3" }, "peerDependencies": { "react": "*", diff --git a/packages/templates/starter-base/package.json b/packages/templates/starter-base/package.json index 41503924..36ecb03e 100644 --- a/packages/templates/starter-base/package.json +++ b/packages/templates/starter-base/package.json @@ -21,21 +21,21 @@ "@rn-primitives/tooltip": "~1.2.0", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", - "expo": "^53.0.9", + "expo": "^53.0.10", "expo-linking": "~7.1.5", - "expo-navigation-bar": "~4.2.4", + "expo-navigation-bar": "~4.2.5", "expo-router": "~5.0.7", - "expo-splash-screen": "~0.30.8", + "expo-splash-screen": "~0.30.9", "expo-status-bar": "~2.2.3", - "expo-system-ui": "~5.0.7", + "expo-system-ui": "~5.0.8", "lucide-react-native": "^0.511.0", "nativewind": "^4.1.23", "react": "19.0.0", "react-dom": "19.0.0", - "react-native": "0.79.2", + "react-native": "0.79.3", "react-native-reanimated": "~3.17.5", "react-native-safe-area-context": "5.4.0", - "react-native-screens": "^4.10.0", + "react-native-screens": "^4.11.1", "react-native-svg": "15.11.2", "react-native-web": "~0.20.0", "tailwind-merge": "^2.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05005898..1389ea57 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -155,7 +155,7 @@ importers: version: 0.471.2(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) next: specifier: 15.3.2 version: 15.3.2(@babel/core@7.27.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -166,14 +166,14 @@ importers: specifier: 19.0.0 version: 19.0.0(react@19.0.0) react-native: - specifier: 0.79.2 - version: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + specifier: 0.79.3 + version: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) react-native-reanimated: specifier: ~3.17.5 - version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) react-native-svg: specifier: 15.11.2 - version: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + version: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) react-native-web: specifier: ~0.20.0 version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -300,7 +300,7 @@ importers: dependencies: '@gorhom/bottom-sheet': specifier: ^5.1.4 - version: 5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@hookform/resolvers': specifier: ^3.3.4 version: 3.10.0(react-hook-form@7.56.4(react@19.0.0)) @@ -309,37 +309,37 @@ importers: version: 4.5.6 '@react-navigation/material-top-tabs': specifier: ^7.0.0 - version: 7.2.13(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.2.13(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@react-navigation/native': specifier: ^7.0.0 - version: 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/aspect-ratio': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/collapsible': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/label': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/portal': specifier: ~1.3.0 - version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) '@rn-primitives/slider': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/toast': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/toolbar': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rnr/reusables': specifier: workspace:* version: link:../../packages/reusables '@shopify/flash-list': specifier: 1.7.6 - version: 1.7.6(@babel/runtime@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.7.6(@babel/runtime@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@tanstack/react-table': specifier: ^8.11.7 version: 8.21.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -350,38 +350,38 @@ importers: specifier: ^2.1.0 version: 2.1.1 expo: - specifier: ^53.0.9 - version: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^53.0.10 + version: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-font: specifier: ~13.3.1 - version: 13.3.1(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + version: 13.3.1(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) expo-haptics: specifier: ~14.1.4 - version: 14.1.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + version: 14.1.4(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) expo-linking: specifier: ~7.1.5 - version: 7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-navigation-bar: - specifier: ~4.2.4 - version: 4.2.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~4.2.5 + version: 4.2.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-router: specifier: ~5.0.7 - version: 5.0.7(@types/react@19.0.14)(expo-constants@17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(expo-linking@7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.0.7(@types/react@19.0.14)(expo-constants@17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(expo-linking@7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-splash-screen: - specifier: ~0.30.8 - version: 0.30.8(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ~0.30.9 + version: 0.30.9(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) expo-status-bar: specifier: ~2.2.3 - version: 2.2.3(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 2.2.3(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-system-ui: - specifier: ~5.0.7 - version: 5.0.7(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + specifier: ~5.0.8 + version: 5.0.8(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) lucide-react-native: specifier: ^0.511.0 - version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) react: specifier: 19.0.0 version: 19.0.0 @@ -392,32 +392,32 @@ importers: specifier: ^7.49.2 version: 7.56.4(react@19.0.0) react-native: - specifier: 0.79.2 - version: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.79.3 + version: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-calendars: specifier: ^1.1302.0 - version: 1.1312.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.1312.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-gesture-handler: specifier: ~2.24.0 - version: 2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 2.24.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-reanimated: specifier: ~3.17.5 - version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-safe-area-context: specifier: 5.4.0 - version: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-screens: - specifier: ^4.10.0 - version: 4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^4.11.1 + version: 4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-svg: specifier: 15.11.2 - version: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-tab-view: specifier: ^3.5.2 - version: 3.5.2(react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 3.5.2(react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-toast-message: specifier: ^2.2.0 - version: 2.3.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 2.3.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-web: specifier: ~0.20.0 version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -448,7 +448,7 @@ importers: dependencies: '@gorhom/bottom-sheet': specifier: ^5.1.4 - version: 5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@hookform/resolvers': specifier: ^3.3.4 version: 3.10.0(react-hook-form@7.56.4(react@19.0.0)) @@ -457,97 +457,97 @@ importers: version: 4.5.5 '@react-navigation/native': specifier: ^7.0.0 - version: 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/accordion': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/alert-dialog': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/aspect-ratio': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/avatar': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/checkbox': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/collapsible': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/context-menu': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/dialog': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/dropdown-menu': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/hover-card': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/label': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/menubar': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/navigation-menu': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/popover': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/portal': specifier: ~1.3.0 - version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) '@rn-primitives/progress': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/radio-group': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/select': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/separator': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/slider': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/slot': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/switch': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/table': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/tabs': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/toast': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/toggle': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/toggle-group': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/toolbar': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/tooltip': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@shopify/flash-list': specifier: 1.7.6 - version: 1.7.6(@babel/runtime@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.7.6(@babel/runtime@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@tanstack/react-table': specifier: ^8.11.7 version: 8.21.3(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -559,28 +559,28 @@ importers: version: 2.1.1 lucide-react-native: specifier: ^0.511.0 - version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) react-hook-form: specifier: ^7.49.2 version: 7.56.4(react@19.0.0) react-native-calendars: specifier: ^1.1302.0 - version: 1.1312.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.1312.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-reanimated: specifier: ~3.17.5 - version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-safe-area-context: specifier: 5.4.0 - version: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-svg: specifier: 15.11.2 - version: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-toast-message: specifier: ^2.2.0 - version: 2.3.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 2.3.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-web: specifier: '*' version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -598,29 +598,29 @@ importers: specifier: 19.0.0 version: 19.0.0 react-native: - specifier: 0.79.2 - version: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.79.3 + version: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) packages/templates/starter-base: dependencies: '@react-navigation/native': specifier: ^7.0.0 - version: 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/avatar': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/portal': specifier: ~1.3.0 - version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + version: 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) '@rn-primitives/progress': specifier: ~1.2.0 - version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/slot': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) '@rn-primitives/tooltip': specifier: ~1.2.0 - version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -628,32 +628,32 @@ importers: specifier: ^2.1.0 version: 2.1.1 expo: - specifier: ^53.0.9 - version: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^53.0.10 + version: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-linking: specifier: ~7.1.5 - version: 7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-navigation-bar: - specifier: ~4.2.4 - version: 4.2.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~4.2.5 + version: 4.2.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-router: specifier: ~5.0.7 - version: 5.0.7(@types/react@19.0.14)(expo-constants@17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(expo-linking@7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.0.7(@types/react@19.0.14)(expo-constants@17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(expo-linking@7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-splash-screen: - specifier: ~0.30.8 - version: 0.30.8(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ~0.30.9 + version: 0.30.9(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) expo-status-bar: specifier: ~2.2.3 - version: 2.2.3(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 2.2.3(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) expo-system-ui: - specifier: ~5.0.7 - version: 5.0.7(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + specifier: ~5.0.8 + version: 5.0.8(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) lucide-react-native: specifier: ^0.511.0 - version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) nativewind: specifier: ^4.1.23 - version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + version: 4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) react: specifier: 19.0.0 version: 19.0.0 @@ -661,20 +661,20 @@ importers: specifier: 19.0.0 version: 19.0.0(react@19.0.0) react-native: - specifier: 0.79.2 - version: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.79.3 + version: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-reanimated: specifier: ~3.17.5 - version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-safe-area-context: specifier: 5.4.0 - version: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-screens: - specifier: ^4.10.0 - version: 4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^4.11.1 + version: 4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-svg: specifier: 15.11.2 - version: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-web: specifier: ~0.20.0 version: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -2075,8 +2075,8 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@expo/cli@0.24.13': - resolution: {integrity: sha512-2LSdbvYs+WmUljnplQXMCUyNzyX4H+F4l8uExfA1hud25Bl5kyaGrx1jjtgNxMTXmfmMjvgBdK798R50imEhkA==} + '@expo/cli@0.24.14': + resolution: {integrity: sha512-o+QYyfIBhSRTgaywKTLJhm2Fg5PrSeUVCXS+uQySamgoMjLNhHa8QwE64mW/FmJr5hZLiqUEQxb60FK4JcyqXg==} hasBin: true '@expo/code-signing-certificates@0.0.5': @@ -3272,28 +3272,28 @@ packages: '@react-native-community/slider@4.5.6': resolution: {integrity: sha512-UhLPFeqx0YfPLrEz8ffT3uqAyXWu6iqFjohNsbp4cOU7hnJwg2RXtDnYHoHMr7MOkZDVdlLMdrSrAuzY6KGqrg==} - '@react-native/assets-registry@0.79.2': - resolution: {integrity: sha512-5h2Z7/+/HL/0h88s0JHOdRCW4CXMCJoROxqzHqxdrjGL6EBD1DdaB4ZqkCOEVSW4Vjhir5Qb97C8i/MPWEYPtg==} + '@react-native/assets-registry@0.79.3': + resolution: {integrity: sha512-Vy8DQXCJ21YSAiHxrNBz35VqVlZPpRYm50xRTWRf660JwHuJkFQG8cUkrLzm7AUriqUXxwpkQHcY+b0ibw9ejQ==} engines: {node: '>=18'} - '@react-native/babel-plugin-codegen@0.79.2': - resolution: {integrity: sha512-d+NB7Uosn2ZWd4O4+7ZkB6q1a+0z2opD/4+Bzhk/Tv6fc5FrSftK2Noqxvo3/bhbdGFVPxf0yvLE8et4W17x/Q==} + '@react-native/babel-plugin-codegen@0.79.3': + resolution: {integrity: sha512-Zb8F4bSEKKZfms5n1MQ0o5mudDcpAINkKiFuFTU0PErYGjY3kZ+JeIP+gS6KCXsckxCfMEKQwqKicP/4DWgsZQ==} engines: {node: '>=18'} - '@react-native/babel-preset@0.79.2': - resolution: {integrity: sha512-/HNu869oUq4FUXizpiNWrIhucsYZqu0/0spudJEzk9SEKar0EjVDP7zkg/sKK+KccNypDQGW7nFXT8onzvQ3og==} + '@react-native/babel-preset@0.79.3': + resolution: {integrity: sha512-VHGNP02bDD2Ul1my0pLVwe/0dsEBHxR343ySpgnkCNEEm9C1ANQIL2wvnJrHZPcqfAkWfFQ8Ln3t+6fdm4A/Dg==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/codegen@0.79.2': - resolution: {integrity: sha512-8JTlGLuLi1p8Jx2N/enwwEd7/2CfrqJpv90Cp77QLRX3VHF2hdyavRIxAmXMwN95k+Me7CUuPtqn2X3IBXOWYg==} + '@react-native/codegen@0.79.3': + resolution: {integrity: sha512-CZejXqKch/a5/s/MO5T8mkAgvzCXgsTkQtpCF15kWR9HN8T+16k0CsN7TXAxXycltoxiE3XRglOrZNEa/TiZUQ==} engines: {node: '>=18'} peerDependencies: '@babel/core': '*' - '@react-native/community-cli-plugin@0.79.2': - resolution: {integrity: sha512-E+YEY2dL+68HyR2iahsZdyBKBUi9QyPyaN9vsnda1jNgCjNpSPk2yAF5cXsho+zKK5ZQna3JSeE1Kbi2IfGJbw==} + '@react-native/community-cli-plugin@0.79.3': + resolution: {integrity: sha512-N/+p4HQqN4yK6IRzn7OgMvUIcrmEWkecglk1q5nj+AzNpfIOzB+mqR20SYmnPfeXF+mZzYCzRANb3KiM+WsSDA==} engines: {node: '>=18'} peerDependencies: '@react-native-community/cli': '*' @@ -3301,20 +3301,20 @@ packages: '@react-native-community/cli': optional: true - '@react-native/debugger-frontend@0.79.2': - resolution: {integrity: sha512-cGmC7X6kju76DopSBNc+PRAEetbd7TWF9J9o84hOp/xL3ahxR2kuxJy0oJX8Eg8oehhGGEXTuMKHzNa3rDBeSg==} + '@react-native/debugger-frontend@0.79.3': + resolution: {integrity: sha512-ImNDuEeKH6lEsLXms3ZsgIrNF94jymfuhPcVY5L0trzaYNo9ZFE9Ni2/18E1IbfXxdeIHrCSBJlWD6CTm7wu5A==} engines: {node: '>=18'} - '@react-native/dev-middleware@0.79.2': - resolution: {integrity: sha512-9q4CpkklsAs1L0Bw8XYCoqqyBSrfRALGEw4/r0EkR38Y/6fVfNfdsjSns0pTLO6h0VpxswK34L/hm4uK3MoLHw==} + '@react-native/dev-middleware@0.79.3': + resolution: {integrity: sha512-x88+RGOyG71+idQefnQg7wLhzjn/Scs+re1O5vqCkTVzRAc/f7SdHMlbmECUxJPd08FqMcOJr7/X3nsJBrNuuw==} engines: {node: '>=18'} - '@react-native/gradle-plugin@0.79.2': - resolution: {integrity: sha512-6MJFemrwR0bOT0QM+2BxX9k3/pvZQNmJ3Js5pF/6owsA0cUDiCO57otiEU8Fz+UywWEzn1FoQfOfQ8vt2GYmoA==} + '@react-native/gradle-plugin@0.79.3': + resolution: {integrity: sha512-imfpZLhNBc9UFSzb/MOy2tNcIBHqVmexh/qdzw83F75BmUtLb/Gs1L2V5gw+WI1r7RqDILbWk7gXB8zUllwd+g==} engines: {node: '>=18'} - '@react-native/js-polyfills@0.79.2': - resolution: {integrity: sha512-IaY87Ckd4GTPMkO1/Fe8fC1IgIx3vc3q9Tyt/6qS3Mtk9nC0x9q4kSR5t+HHq0/MuvGtu8HpdxXGy5wLaM+zUw==} + '@react-native/js-polyfills@0.79.3': + resolution: {integrity: sha512-PEBtg6Kox6KahjCAch0UrqCAmHiNLEbp2SblUEoFAQnov4DSxBN9safh+QSVaCiMAwLjvNfXrJyygZz60Dqz3Q==} engines: {node: '>=18'} '@react-native/normalize-colors@0.74.89': @@ -3323,8 +3323,11 @@ packages: '@react-native/normalize-colors@0.79.2': resolution: {integrity: sha512-+b+GNrupWrWw1okHnEENz63j7NSMqhKeFMOyzYLBwKcprG8fqJQhDIGXfizKdxeIa5NnGSAevKL1Ev1zJ56X8w==} - '@react-native/virtualized-lists@0.79.2': - resolution: {integrity: sha512-9G6ROJeP+rdw9Bvr5ruOlag11ET7j1z/En1riFFNo6W3xZvJY+alCuH1ttm12y9+zBm4n8jwCk4lGhjYaV4dKw==} + '@react-native/normalize-colors@0.79.3': + resolution: {integrity: sha512-T75NIQPRFCj6DFMxtcVMJTZR+3vHXaUMSd15t+CkJpc5LnyX91GVaPxpRSAdjFh7m3Yppl5MpdjV/fntImheYQ==} + + '@react-native/virtualized-lists@0.79.3': + resolution: {integrity: sha512-/0rRozkn+iIHya2vnnvprDgT7QkfI54FLrACAN3BLP7MRlfOIGOrZsXpRLndnLBVnjNzkcre84i1RecjoXnwIA==} engines: {node: '>=18'} peerDependencies: '@types/react': ^19.0.0 @@ -4560,8 +4563,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - babel-preset-expo@13.1.11: - resolution: {integrity: sha512-jigWjvhRVdm9UTPJ1wjLYJ0OJvD5vLZ8YYkEknEl6+9S1JWORO/y3xtHr/hNj5n34nOilZqdXrmNFcqKc8YTsg==} + babel-preset-expo@13.2.0: + resolution: {integrity: sha512-oNUeUZPMNRPmx/2jaKJLSQFP/MFI1M91vP+Gp+j8/FPl9p/ps603DNwCaRdcT/Vj3FfREdlIwRio1qDCjY0oAA==} peerDependencies: babel-plugin-react-compiler: ^19.0.0-beta-e993439-20250405 peerDependenciesMeta: @@ -5555,11 +5558,11 @@ packages: resolution: {integrity: sha512-k93fzoszrYTKbZ51DSVnewYIGUV6Gi22Su8qySXPFJEfvtDs2NUUNRHBZNKgLHvwc6xPzVC5j7JYbrpXNuY44A==} hasBin: true - expo-modules-core@2.3.13: - resolution: {integrity: sha512-vmKHv7tEo2wUQoYDV6grhsLsQfD3DUnew5Up3yNnOE1gHGQE+zhV1SBYqaPMPB12OvpyD1mlfzGhu6r9PODnng==} + expo-modules-core@2.4.0: + resolution: {integrity: sha512-Ko5eHBdvuMykjw9P9C9PF54/wBSsGOxaOjx92I5BwgKvEmUwN3UrXFV4CXzlLVbLfSYUQaLcB220xmPfgvT7Fg==} - expo-navigation-bar@4.2.4: - resolution: {integrity: sha512-aagtBaGtqeFT9GbxTBU0sUrwupZO6OLbKYJgvmZ54KSMQa5QfwNk1qScPTy5VzHs9lwAGUkBkzC1QKrnsXtj0w==} + expo-navigation-bar@4.2.5: + resolution: {integrity: sha512-yKNr32ByL1ZBIVsiMq1mk5LdvIVW76nxHJYMVGGybIdf0MDCriNnBHCXp0bT6KXxpAlqUncA+9EbGhl15lXPOw==} peerDependencies: expo: '*' react: '*' @@ -5584,8 +5587,8 @@ packages: react-native-reanimated: optional: true - expo-splash-screen@0.30.8: - resolution: {integrity: sha512-2eh+uA543brfeG5HILXmtNKA7E2/pfywKzNumzy3Ef6OtDjYy6zJUGNSbhnZRbVEjUZo3/QNRs0JRBfY80okZg==} + expo-splash-screen@0.30.9: + resolution: {integrity: sha512-curHUaZxUTZ2dWvz32ao3xPv5mJr1LBqn5V8xm/IULAehB9RGCn8iKiROMN1PYebSG+56vPMuJmBm9P+ayvJpA==} peerDependencies: expo: '*' @@ -5595,8 +5598,8 @@ packages: react: '*' react-native: '*' - expo-system-ui@5.0.7: - resolution: {integrity: sha512-ijSnSFA4VfuQc84N6WyCUNsKKTIyQb6QuC8q2zGvYC/sBXTMrOtZg0zrisQGzCRW+WhritQTiVqHlp3Ix9xDmQ==} + expo-system-ui@5.0.8: + resolution: {integrity: sha512-2sI7ALq3W8sKKa3FRW7PmuNznk+48cb1VzFy96vYZLZgTDZViz+fEJNdp1RHgLui/mAl3f8md1LneygSJvZ1EQ==} peerDependencies: expo: '*' react-native: '*' @@ -5605,8 +5608,8 @@ packages: react-native-web: optional: true - expo@53.0.9: - resolution: {integrity: sha512-UFG68aVOpccg3s++S3pbtI3YCQCnlu/TFvhnQ5vaD3vhOox1Uk/f2O2T95jmwA/EvKvetqGj34lys3DNXvPqgQ==} + expo@53.0.10: + resolution: {integrity: sha512-rN3HcQOeum4i+4Fq1+wBuTWbUjHZqTE7YgGGioOtY2WnhYt+4OSrTlxjRjp13AtkLuKSKkh34gkdFMlUepKlXA==} hasBin: true peerDependencies: '@expo/dom-webview': '*' @@ -5877,6 +5880,10 @@ packages: resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==} engines: {node: '>=6'} + getenv@2.0.0: + resolution: {integrity: sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ==} + engines: {node: '>=6'} + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} @@ -7787,8 +7794,8 @@ packages: react: '*' react-native: '*' - react-native-screens@4.10.0: - resolution: {integrity: sha512-Tw21NGuXm3PbiUGtZd0AnXirUixaAbPXDjNR0baBH7/WJDaDTTELLcQ7QRXuqAWbmr/EVCrKj1348ei1KFIr8A==} + react-native-screens@4.11.1: + resolution: {integrity: sha512-F0zOzRVa3ptZfLpD0J8ROdo+y1fEPw+VBFq1MTY/iyDu08al7qFUO5hLMd+EYMda5VXGaTFCa8q7bOppUszhJw==} peerDependencies: react: '*' react-native: '*' @@ -7828,13 +7835,13 @@ packages: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - react-native@0.79.2: - resolution: {integrity: sha512-AnGzb56JvU5YCL7cAwg10+ewDquzvmgrMddiBM0GAWLwQM/6DJfGd2ZKrMuKKehHerpDDZgG+EY64gk3x3dEkw==} + react-native@0.79.3: + resolution: {integrity: sha512-EzH1+9gzdyEo9zdP6u7Sh3Jtf5EOMwzy+TK65JysdlgAzfEVfq4mNeXcAZ6SmD+CW6M7ARJbvXLyTD0l2S5rpg==} engines: {node: '>=18'} hasBin: true peerDependencies: '@types/react': ^19.0.0 - react: 19.0.0 + react: ^19.0.0 peerDependenciesMeta: '@types/react': optional: true @@ -10700,7 +10707,7 @@ snapshots: '@eslint/js@8.57.1': {} - '@expo/cli@0.24.13': + '@expo/cli@0.24.14': dependencies: '@0no-co/graphql.web': 1.1.2 '@babel/runtime': 7.27.1 @@ -10719,7 +10726,7 @@ snapshots: '@expo/spawn-async': 1.7.2 '@expo/ws-tunnel': 1.0.6 '@expo/xcpretty': 4.3.2 - '@react-native/dev-middleware': 0.79.2 + '@react-native/dev-middleware': 0.79.3 '@urql/core': 5.1.1 '@urql/exchange-retry': 1.3.1(@urql/core@5.1.1) accepts: 1.3.8 @@ -10734,7 +10741,7 @@ snapshots: debug: 4.4.1 env-editor: 0.4.2 freeport-async: 2.0.0 - getenv: 1.0.0 + getenv: 2.0.0 glob: 10.4.5 lan-network: 0.1.6 minimatch: 9.0.5 @@ -10887,9 +10894,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))': + '@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))': dependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) '@expo/osascript@2.2.4': dependencies: @@ -10943,11 +10950,11 @@ snapshots: '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@expo/vector-icons@14.1.0(expo-font@13.3.1(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - expo-font: 13.3.1(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + expo-font: 13.3.1(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) '@expo/ws-tunnel@1.0.6': {} @@ -11003,22 +11010,22 @@ snapshots: dependencies: tslib: 2.8.1 - '@gorhom/bottom-sheet@5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@gorhom/bottom-sheet@5.1.4(@types/react@19.0.14)(react-native-gesture-handler@2.24.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@gorhom/portal': 1.0.14(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@gorhom/portal': 1.0.14(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) invariant: 2.2.4 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-gesture-handler: 2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-gesture-handler: 2.24.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) optionalDependencies: '@types/react': 19.0.14 - '@gorhom/portal@1.0.14(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@gorhom/portal@1.0.14(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: nanoid: 3.3.11 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) '@hookform/resolvers@3.10.0(react-hook-form@7.56.4(react@19.0.0))': dependencies: @@ -12432,17 +12439,17 @@ snapshots: '@react-native-community/slider@4.5.6': {} - '@react-native/assets-registry@0.79.2': {} + '@react-native/assets-registry@0.79.3': {} - '@react-native/babel-plugin-codegen@0.79.2(@babel/core@7.27.1)': + '@react-native/babel-plugin-codegen@0.79.3(@babel/core@7.27.1)': dependencies: '@babel/traverse': 7.27.1 - '@react-native/codegen': 0.79.2(@babel/core@7.27.1) + '@react-native/codegen': 0.79.3(@babel/core@7.27.1) transitivePeerDependencies: - '@babel/core' - supports-color - '@react-native/babel-preset@0.79.2(@babel/core@7.27.1)': + '@react-native/babel-preset@0.79.3(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.27.1) @@ -12485,14 +12492,14 @@ snapshots: '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.1) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.1) '@babel/template': 7.27.2 - '@react-native/babel-plugin-codegen': 0.79.2(@babel/core@7.27.1) + '@react-native/babel-plugin-codegen': 0.79.3(@babel/core@7.27.1) babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.27.1) react-refresh: 0.14.2 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.79.2(@babel/core@7.27.1)': + '@react-native/codegen@0.79.3(@babel/core@7.27.1)': dependencies: '@babel/core': 7.27.1 glob: 7.2.3 @@ -12501,9 +12508,9 @@ snapshots: nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.79.2': + '@react-native/community-cli-plugin@0.79.3': dependencies: - '@react-native/dev-middleware': 0.79.2 + '@react-native/dev-middleware': 0.79.3 chalk: 4.1.2 debug: 2.6.9 invariant: 2.2.4 @@ -12516,12 +12523,12 @@ snapshots: - supports-color - utf-8-validate - '@react-native/debugger-frontend@0.79.2': {} + '@react-native/debugger-frontend@0.79.3': {} - '@react-native/dev-middleware@0.79.2': + '@react-native/dev-middleware@0.79.3': dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.79.2 + '@react-native/debugger-frontend': 0.79.3 chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 @@ -12536,41 +12543,43 @@ snapshots: - supports-color - utf-8-validate - '@react-native/gradle-plugin@0.79.2': {} + '@react-native/gradle-plugin@0.79.3': {} - '@react-native/js-polyfills@0.79.2': {} + '@react-native/js-polyfills@0.79.3': {} '@react-native/normalize-colors@0.74.89': {} '@react-native/normalize-colors@0.79.2': {} - '@react-native/virtualized-lists@0.79.2(@types/react@19.0.10)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)': + '@react-native/normalize-colors@0.79.3': {} + + '@react-native/virtualized-lists@0.79.3(@types/react@19.0.10)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) optionalDependencies: '@types/react': 19.0.10 - '@react-native/virtualized-lists@0.79.2(@types/react@19.0.14)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-native/virtualized-lists@0.79.3(@types/react@19.0.14)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) optionalDependencies: '@types/react': 19.0.14 - '@react-navigation/bottom-tabs@7.3.13(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/bottom-tabs@7.3.13(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@react-navigation/elements': 2.4.2(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.4.2(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native': 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) color: 4.2.3 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-safe-area-context: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-screens: 4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' @@ -12585,481 +12594,481 @@ snapshots: use-latest-callback: 0.2.3(react@19.0.0) use-sync-external-store: 1.5.0(react@19.0.0) - '@react-navigation/elements@2.4.2(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/elements@2.4.2(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@react-navigation/native': 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native': 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) color: 4.2.3 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-safe-area-context: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/material-top-tabs@7.2.13(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/material-top-tabs@7.2.13(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@react-navigation/elements': 2.4.2(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.4.2(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native': 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) color: 4.2.3 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-pager-view: 6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-tab-view: 4.1.0(react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-pager-view: 6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-safe-area-context: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-tab-view: 4.1.0(react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native-stack@7.3.13(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/native-stack@7.3.13(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@react-navigation/elements': 2.4.2(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.4.2(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native': 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-safe-area-context: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-screens: 4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@react-navigation/core': 7.9.2(react@19.0.0) escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) use-latest-callback: 0.2.3(react@19.0.0) '@react-navigation/routers@7.3.7': dependencies: nanoid: 3.3.11 - '@rn-primitives/accordion@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/accordion@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-accordion': 1.2.11(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/alert-dialog@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/alert-dialog@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-alert-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/aspect-ratio@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/aspect-ratio@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/avatar@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/avatar@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/checkbox@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/checkbox@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-checkbox': 1.3.2(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/collapsible@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/collapsible@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/context-menu@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/context-menu@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-context-menu': 2.2.15(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/dialog@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/dialog@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/dropdown-menu@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/dropdown-menu@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-dropdown-menu': 2.1.15(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/hooks@1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/hooks@1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hover-card@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/hover-card@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-hover-card': 1.1.14(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/popover': 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/popover': 1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/label@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/label@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-label': 2.1.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/menubar@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/menubar@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-menubar': 1.1.15(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/navigation-menu@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/navigation-menu@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-navigation-menu': 1.2.13(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/popover@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/popover@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-popover': 1.1.14(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0))': + '@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0))': dependencies: react: 19.0.0 zustand: 5.0.5(@types/react@19.0.14)(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - immer - use-sync-external-store - '@rn-primitives/progress@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/progress@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-progress': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/radio-group@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/radio-group@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-radio-group': 1.3.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/select@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/select@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-select': 2.2.5(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/separator@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/separator@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-separator': 1.1.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/slider@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/slider@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-slider': 1.3.5(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/slot@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/slot@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/switch@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/switch@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-switch': 1.2.5(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/table@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/table@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/tabs@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/tabs@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-tabs': 1.1.12(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/toast@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/toast@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/toggle-group@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/toggle-group@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-toggle-group': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/toggle@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/toggle@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-toggle': 1.1.9(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/toolbar@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/toolbar@1.2.0(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-toolbar': 1.1.10(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/utils': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/tooltip@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/tooltip@1.2.0(@rn-primitives/portal@1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)))(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-tooltip': 1.2.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) - '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/hooks': 1.3.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/portal': 1.3.0(@types/react@19.0.14)(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(use-sync-external-store@1.5.0(react@19.0.0)) + '@rn-primitives/slot': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/types@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/types@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@rn-primitives/utils@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/utils@1.2.0(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@rollup/pluginutils@5.1.4(rollup@4.41.0)': @@ -13209,12 +13218,12 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@shopify/flash-list@1.7.6(@babel/runtime@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@shopify/flash-list@1.7.6(@babel/runtime@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': dependencies: '@babel/runtime': 7.27.1 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - recyclerlistview: 4.2.3(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + recyclerlistview: 4.2.3(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) tslib: 2.8.1 '@sinclair/typebox@0.27.8': {} @@ -14059,7 +14068,7 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.1) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.1) - babel-preset-expo@13.1.11(@babel/core@7.27.1): + babel-preset-expo@13.2.0(@babel/core@7.27.1): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/plugin-proposal-decorators': 7.27.1(@babel/core@7.27.1) @@ -14075,7 +14084,7 @@ snapshots: '@babel/plugin-transform-runtime': 7.27.1(@babel/core@7.27.1) '@babel/preset-react': 7.27.1(@babel/core@7.27.1) '@babel/preset-typescript': 7.27.1(@babel/core@7.27.1) - '@react-native/babel-preset': 0.79.2(@babel/core@7.27.1) + '@react-native/babel-preset': 0.79.3(@babel/core@7.27.1) babel-plugin-react-native-web: 0.19.13 babel-plugin-syntax-hermes-parser: 0.25.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.27.1) @@ -15265,51 +15274,51 @@ snapshots: expand-template@2.0.3: {} - expo-asset@11.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-asset@11.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: '@expo/image-utils': 0.7.4 - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo-constants: 17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) transitivePeerDependencies: - supports-color - expo-constants@17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)): + expo-constants@17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)): dependencies: '@expo/config': 11.0.10 '@expo/env': 1.0.5 - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) transitivePeerDependencies: - supports-color - expo-file-system@18.1.10(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)): + expo-file-system@18.1.10(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)): dependencies: - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - expo-font@13.3.1(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-font@13.3.1(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): dependencies: - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) fontfaceobserver: 2.3.0 react: 19.0.0 - expo-haptics@14.1.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-haptics@14.1.4(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): dependencies: - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-keep-awake@14.1.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-keep-awake@14.1.4(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): dependencies: - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 - expo-linking@7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-linking@7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + expo-constants: 17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) invariant: 2.2.4 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) transitivePeerDependencies: - expo - supports-color @@ -15324,45 +15333,45 @@ snapshots: require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@2.3.13: + expo-modules-core@2.4.0: dependencies: invariant: 2.2.4 - expo-navigation-bar@4.2.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-navigation-bar@4.2.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: - '@react-native/normalize-colors': 0.79.2 + '@react-native/normalize-colors': 0.79.3 debug: 4.4.1 - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-edge-to-edge: 1.6.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - ? expo-router@5.0.7(@types/react@19.0.14)(expo-constants@17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(expo-linking@7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + ? expo-router@5.0.7(@types/react@19.0.14)(expo-constants@17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(expo-linking@7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) : dependencies: - '@expo/metro-runtime': 5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + '@expo/metro-runtime': 5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) '@expo/server': 0.6.2 '@radix-ui/react-slot': 1.2.0(@types/react@19.0.14)(react@19.0.0) - '@react-navigation/bottom-tabs': 7.3.13(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native-stack': 7.3.13(@react-navigation/native@7.1.9(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/bottom-tabs': 7.3.13(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native': 7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native-stack': 7.3.13(@react-navigation/native@7.1.9(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) client-only: 0.0.1 - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) - expo-linking: 7.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo-constants: 17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + expo-linking: 7.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) invariant: 2.2.4 react-fast-compare: 3.2.2 - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-safe-area-context: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-screens: 4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) schema-utils: 4.3.2 semver: 7.6.3 server-only: 0.0.1 shallowequal: 1.1.0 optionalDependencies: - react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@types/react' @@ -15370,54 +15379,54 @@ snapshots: - react-native - supports-color - expo-splash-screen@0.30.8(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-splash-screen@0.30.9(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): dependencies: '@expo/prebuild-config': 9.0.6 - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - expo-status-bar@2.2.3(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-status-bar@2.2.3(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-edge-to-edge: 1.6.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-system-ui@5.0.7(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)): + expo-system-ui@5.0.8(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)): dependencies: - '@react-native/normalize-colors': 0.79.2 + '@react-native/normalize-colors': 0.79.3 debug: 4.4.1 - expo: 53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + expo: 53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) optionalDependencies: react-native-web: 0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: '@babel/runtime': 7.27.1 - '@expo/cli': 0.24.13 + '@expo/cli': 0.24.14 '@expo/config': 11.0.10 '@expo/config-plugins': 10.0.2 '@expo/fingerprint': 0.12.4 '@expo/metro-config': 0.20.14 - '@expo/vector-icons': 14.1.0(expo-font@13.3.1(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - babel-preset-expo: 13.1.11(@babel/core@7.27.1) - expo-asset: 11.1.5(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.6(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) - expo-file-system: 18.1.10(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) - expo-font: 13.3.1(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) - expo-keep-awake: 14.1.4(expo@53.0.9(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + '@expo/vector-icons': 14.1.0(expo-font@13.3.1(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + babel-preset-expo: 13.2.0(@babel/core@7.27.1) + expo-asset: 11.1.5(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo-constants: 17.1.6(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + expo-file-system: 18.1.10(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + expo-font: 13.3.1(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + expo-keep-awake: 14.1.4(expo@53.0.10(@babel/core@7.27.1)(@expo/metro-runtime@5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) expo-modules-autolinking: 2.1.10 - expo-modules-core: 2.3.13 + expo-modules-core: 2.4.0 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-edge-to-edge: 1.6.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 5.0.4(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) + '@expo/metro-runtime': 5.0.4(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0)) transitivePeerDependencies: - '@babel/core' - babel-plugin-react-compiler @@ -15741,6 +15750,8 @@ snapshots: getenv@1.0.0: {} + getenv@2.0.0: {} + github-from-package@0.0.0: {} github-slugger@2.0.0: {} @@ -16701,11 +16712,11 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react-native@0.511.0(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + lucide-react-native@0.511.0(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-svg: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-svg: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) lucide-react@0.469.0(react@19.0.0): dependencies: @@ -17463,11 +17474,11 @@ snapshots: napi-build-utils@2.0.0: {} - nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): dependencies: comment-json: 4.2.5 debug: 4.4.1 - react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) tailwindcss: 3.4.17 transitivePeerDependencies: - react @@ -17477,11 +17488,11 @@ snapshots: - react-native-svg - supports-color - nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + nativewind@4.1.23(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): dependencies: comment-json: 4.2.5 debug: 4.4.1 - react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) + react-native-css-interop: 0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17) tailwindcss: 3.4.17 transitivePeerDependencies: - react @@ -18103,15 +18114,15 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-native-calendars@1.1312.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-calendars@1.1312.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: hoist-non-react-statics: 3.3.2 lodash: 4.17.21 memoize-one: 5.2.1 prop-types: 15.8.1 - react-native-safe-area-context: 4.5.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-safe-area-context: 4.5.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) react-native-swipe-gestures: 1.0.5 - recyclerlistview: 4.2.3(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + recyclerlistview: 4.2.3(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) xdate: 0.8.3 optionalDependencies: moment: 2.30.1 @@ -18119,7 +18130,7 @@ snapshots: - react - react-native - react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/traverse': 7.27.1 @@ -18127,16 +18138,16 @@ snapshots: debug: 4.4.1 lightningcss: 1.30.1 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) semver: 7.7.2 tailwindcss: 3.4.17 optionalDependencies: - react-native-svg: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + react-native-svg: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): + react-native-css-interop@0.1.22(react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.17): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/traverse': 7.27.1 @@ -18144,45 +18155,45 @@ snapshots: debug: 4.4.1 lightningcss: 1.30.1 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-reanimated: 3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) semver: 7.7.2 tailwindcss: 3.4.17 optionalDependencies: - react-native-safe-area-context: 5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-svg: 15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-safe-area-context: 5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-svg: 15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - react-native-edge-to-edge@1.6.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-edge-to-edge@1.6.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-gesture-handler@2.24.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-gesture-handler@2.24.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: '@egjs/hammerjs': 2.0.17 hoist-non-react-statics: 3.3.2 invariant: 2.2.4 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-is-edge-to-edge@1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): + react-native-is-edge-to-edge@1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) - react-native-is-edge-to-edge@1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-is-edge-to-edge@1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): + react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): dependencies: '@babel/core': 7.27.1 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1) @@ -18197,12 +18208,12 @@ snapshots: convert-source-map: 2.0.0 invariant: 2.2.4 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-reanimated@3.17.5(@babel/core@7.27.1)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: '@babel/core': 7.27.1 '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.1) @@ -18217,64 +18228,65 @@ snapshots: convert-source-map: 2.0.0 invariant: 2.2.4 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) transitivePeerDependencies: - supports-color - react-native-safe-area-context@4.5.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-safe-area-context@4.5.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context@5.4.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-safe-area-context@5.4.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-screens@4.10.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-screens@4.11.1(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 react-freeze: 1.0.4(react@19.0.0) - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-is-edge-to-edge: 1.1.7(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) warn-once: 0.1.1 - react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): + react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0): dependencies: css-select: 5.1.0 css-tree: 1.1.3 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0) warn-once: 0.1.1 - react-native-svg@15.11.2(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-svg@15.11.2(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: css-select: 5.1.0 css-tree: 1.1.3 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) warn-once: 0.1.1 react-native-swipe-gestures@1.0.5: {} - react-native-tab-view@3.5.2(react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-tab-view@3.5.2(react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-pager-view: 6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-pager-view: 6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) use-latest-callback: 0.1.11(react@19.0.0) - react-native-tab-view@4.1.0(react-native-pager-view@6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-tab-view@4.1.0(react-native-pager-view@6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) - react-native-pager-view: 6.8.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native-pager-view: 6.8.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) use-latest-callback: 0.2.3(react@19.0.0) - react-native-toast-message@2.3.0(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-toast-message@2.3.0(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) react-native-web@0.20.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: @@ -18291,16 +18303,16 @@ snapshots: transitivePeerDependencies: - encoding - react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0): + react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.79.2 - '@react-native/codegen': 0.79.2(@babel/core@7.27.1) - '@react-native/community-cli-plugin': 0.79.2 - '@react-native/gradle-plugin': 0.79.2 - '@react-native/js-polyfills': 0.79.2 - '@react-native/normalize-colors': 0.79.2 - '@react-native/virtualized-lists': 0.79.2(@types/react@19.0.10)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) + '@react-native/assets-registry': 0.79.3 + '@react-native/codegen': 0.79.3(@babel/core@7.27.1) + '@react-native/community-cli-plugin': 0.79.3 + '@react-native/gradle-plugin': 0.79.3 + '@react-native/js-polyfills': 0.79.3 + '@react-native/normalize-colors': 0.79.3 + '@react-native/virtualized-lists': 0.79.3(@types/react@19.0.10)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.10)(react@19.0.0))(react@19.0.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -18339,16 +18351,16 @@ snapshots: - supports-color - utf-8-validate - react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0): + react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.79.2 - '@react-native/codegen': 0.79.2(@babel/core@7.27.1) - '@react-native/community-cli-plugin': 0.79.2 - '@react-native/gradle-plugin': 0.79.2 - '@react-native/js-polyfills': 0.79.2 - '@react-native/normalize-colors': 0.79.2 - '@react-native/virtualized-lists': 0.79.2(@types/react@19.0.14)(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-native/assets-registry': 0.79.3 + '@react-native/codegen': 0.79.3(@babel/core@7.27.1) + '@react-native/community-cli-plugin': 0.79.3 + '@react-native/gradle-plugin': 0.79.3 + '@react-native/js-polyfills': 0.79.3 + '@react-native/normalize-colors': 0.79.3 + '@react-native/virtualized-lists': 0.79.3(@types/react@19.0.14)(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -18501,12 +18513,12 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - recyclerlistview@4.2.3(react-native@0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + recyclerlistview@4.2.3(react-native@0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): dependencies: lodash.debounce: 4.0.8 prop-types: 15.8.1 react: 19.0.0 - react-native: 0.79.2(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) + react-native: 0.79.3(@babel/core@7.27.1)(@types/react@19.0.14)(react@19.0.0) ts-object-utils: 0.0.5 reflect.getprototypeof@1.0.10: From e15ffef8e3ebc137301aef36eb64a1c9b39e0f84 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Thu, 5 Jun 2025 14:38:07 -0400 Subject: [PATCH 045/467] fix: typescript alias to use @ and have reusables pkg source of truth --- apps/cli/src/commands/add.ts | 10 +-- apps/cli/src/commands/init.ts | 6 +- apps/cli/src/index.ts | 4 +- apps/cli/src/utils/get-config.ts | 6 +- apps/cli/src/utils/handle-error.ts | 16 ++-- apps/cli/src/utils/prompt-for-config.ts | 4 +- apps/cli/tsconfig.json | 18 ++-- apps/docs/app/(home)/layout.tsx | 2 +- apps/docs/app/(home)/page.tsx | 2 +- apps/docs/app/api/search/route.ts | 2 +- apps/docs/app/docs/[[...slug]]/page.tsx | 4 +- apps/docs/app/docs/layout.tsx | 4 +- apps/docs/app/layout.config.tsx | 4 +- apps/docs/components.json | 10 +-- apps/docs/components/copy-button.tsx | 2 +- apps/docs/components/icons/rnr-icon.tsx | 2 +- apps/docs/components/icons/ui-icon.tsx | 2 +- apps/docs/components/portal-info-alert.tsx | 2 +- .../preview-card/preview-card-client.tsx | 6 +- apps/docs/components/react-native.tsx | 2 +- apps/docs/components/section-tabs.tsx | 2 +- apps/docs/components/ui/alert.tsx | 2 +- apps/docs/components/ui/button.tsx | 57 ++++++------ apps/docs/components/ui/select.tsx | 89 +++++++++---------- .../content/docs/(components)/accordion.mdx | 22 ++--- .../docs/(components)/alert-dialog.mdx | 26 +++--- apps/docs/content/docs/(components)/alert.mdx | 22 ++--- .../docs/(components)/aspect-ratio.mdx | 20 ++--- .../docs/content/docs/(components)/avatar.mdx | 20 ++--- apps/docs/content/docs/(components)/badge.mdx | 36 ++++---- .../docs/content/docs/(components)/button.mdx | 56 ++++++------ apps/docs/content/docs/(components)/card.mdx | 26 +++--- .../content/docs/(components)/checkbox.mdx | 18 ++-- .../content/docs/(components)/collapsible.mdx | 20 ++--- .../docs/(components)/context-menu.mdx | 24 ++--- .../docs/content/docs/(components)/dialog.mdx | 20 ++--- .../docs/(components)/dropdown-menu.mdx | 24 ++--- .../content/docs/(components)/hover-card.mdx | 24 ++--- apps/docs/content/docs/(components)/input.mdx | 18 ++-- apps/docs/content/docs/(components)/label.mdx | 18 ++-- .../content/docs/(components)/menubar.mdx | 24 ++--- .../docs/(components)/navigation-menu.mdx | 24 ++--- apps/docs/content/docs/index.mdx | 9 +- apps/docs/lib/file-generator.ts | 10 +-- apps/docs/lib/source.ts | 2 +- apps/docs/previews/accordion.tsx | 4 +- apps/docs/previews/alert-dialog.tsx | 6 +- apps/docs/previews/alert/alert-default.tsx | 4 +- .../docs/previews/alert/alert-destructive.tsx | 4 +- apps/docs/previews/aspect-ratio.tsx | 4 +- apps/docs/previews/avatar.tsx | 4 +- apps/docs/previews/badge/badge-default.tsx | 4 +- .../docs/previews/badge/badge-destructive.tsx | 4 +- apps/docs/previews/badge/badge-outline.tsx | 4 +- apps/docs/previews/badge/badge-secondary.tsx | 4 +- .../previews/button/button-destructive.tsx | 4 +- apps/docs/previews/button/button-ghost.tsx | 4 +- apps/docs/previews/button/button-icon.tsx | 4 +- apps/docs/previews/button/button-link.tsx | 4 +- apps/docs/previews/button/button-loading.tsx | 8 +- apps/docs/previews/button/button-outline.tsx | 4 +- apps/docs/previews/button/button-primary.tsx | 4 +- .../docs/previews/button/button-secondary.tsx | 4 +- .../docs/previews/button/button-with-icon.tsx | 6 +- apps/docs/previews/card/card-default.tsx | 14 +-- apps/docs/previews/card/card-example.tsx | 18 ++-- .../previews/checkbox/checkbox-default.tsx | 6 +- .../collapsible/collapsible-native.tsx | 6 +- .../previews/collapsible/collapsible-web.tsx | 10 +-- .../context-menu/context-menu-native.tsx | 4 +- .../context-menu/context-menu-web.tsx | 4 +- apps/docs/previews/dialog/dialog-native.tsx | 12 +-- apps/docs/previews/dialog/dialog-web.tsx | 12 +-- .../dropdown-menu/dropdown-menu-native.tsx | 28 +++--- .../dropdown-menu/dropdown-menu-web.tsx | 28 +++--- .../previews/hover-card/hover-card-native.tsx | 10 +-- .../previews/hover-card/hover-card-web.tsx | 12 +-- apps/docs/previews/input.tsx | 2 +- apps/docs/previews/label/label-default.tsx | 6 +- apps/docs/previews/menubar/menubar-native.tsx | 4 +- apps/docs/previews/menubar/menubar-web.tsx | 4 +- .../navigation-menu-native.tsx | 6 +- .../navigation-menu/navigation-menu-web.tsx | 8 +- apps/docs/source.config.ts | 2 +- apps/docs/tsconfig.json | 6 +- apps/old-docs/components.json | 6 +- apps/old-docs/src/components/Code.astro | 2 +- .../src/components/react/CodeBlockWrapper.tsx | 11 +-- .../src/components/react/LinkButton.tsx | 2 +- .../src/components/react/ThemeSelector.tsx | 6 +- apps/old-docs/src/components/ui/button.tsx | 2 +- .../src/components/ui/dropdown-menu.tsx | 2 +- .../src/content/docs/components/accordion.mdx | 12 +-- .../content/docs/components/alert-dialog.mdx | 14 +-- .../src/content/docs/components/alert.mdx | 14 +-- .../content/docs/components/aspect-ratio.mdx | 10 +-- .../src/content/docs/components/avatar.mdx | 12 +-- .../src/content/docs/components/badge.mdx | 12 +-- .../src/content/docs/components/button.mdx | 12 +-- .../src/content/docs/components/card.mdx | 12 +-- .../src/content/docs/components/checkbox.mdx | 10 +-- .../content/docs/components/collapsible.mdx | 12 +-- .../content/docs/components/context-menu.mdx | 12 +-- .../src/content/docs/components/dialog.mdx | 14 +-- .../content/docs/components/dropdown-menu.mdx | 14 +-- .../content/docs/components/hover-card.mdx | 18 ++-- .../src/content/docs/components/input.mdx | 12 +-- .../src/content/docs/components/label.mdx | 10 +-- .../src/content/docs/components/menubar.mdx | 12 +-- .../docs/components/navigation-menu.mdx | 16 ++-- .../src/content/docs/components/popover.mdx | 14 +-- .../src/content/docs/components/progress.mdx | 10 +-- .../content/docs/components/radio-group.mdx | 12 +-- .../src/content/docs/components/select.mdx | 10 +-- .../src/content/docs/components/separator.mdx | 12 +-- .../src/content/docs/components/skeleton.mdx | 10 +-- .../src/content/docs/components/switch.mdx | 12 +-- .../src/content/docs/components/table.mdx | 18 ++-- .../src/content/docs/components/tabs.mdx | 20 ++--- .../src/content/docs/components/text.mdx | 14 +-- .../src/content/docs/components/textarea.mdx | 12 +-- .../content/docs/components/toggle-group.mdx | 16 ++-- .../src/content/docs/components/toggle.mdx | 12 +-- .../src/content/docs/components/tooltip.mdx | 14 +-- .../content/docs/components/typography.mdx | 8 +- .../docs/extras/android-navigation-bar.mdx | 10 +-- .../src/content/docs/extras/keyboard.mdx | 10 +-- .../content/docs/extras/material-top-tabs.mdx | 4 +- .../docs/getting-started/common-patterns.mdx | 12 +-- .../content/docs/getting-started/icons.mdx | 10 +-- .../docs/getting-started/initial-setup.mdx | 28 +++--- .../docs/getting-started/introduction.mdx | 4 +- apps/old-docs/src/lib/utils.ts | 8 +- apps/old-docs/tsconfig.json | 6 +- apps/showcase/app/(tabs)/_layout.tsx | 8 +- apps/showcase/app/(tabs)/components/index.tsx | 12 +-- .../app/(tabs)/components/primitives.tsx | 24 ++--- apps/showcase/app/(tabs)/index.tsx | 30 +++---- apps/showcase/app/+not-found.tsx | 2 +- apps/showcase/app/_layout.tsx | 10 +-- apps/showcase/app/accordion.tsx | 4 +- apps/showcase/app/alert-dialog.tsx | 6 +- apps/showcase/app/alert.tsx | 6 +- apps/showcase/app/aspect-ratio.tsx | 4 +- apps/showcase/app/avatar.tsx | 4 +- apps/showcase/app/badge.tsx | 4 +- apps/showcase/app/bottom-sheet.tsx | 8 +- apps/showcase/app/button.tsx | 4 +- apps/showcase/app/calendar.tsx | 2 +- apps/showcase/app/card.tsx | 4 +- apps/showcase/app/checkbox.tsx | 4 +- apps/showcase/app/collapsible.tsx | 8 +- apps/showcase/app/command.tsx | 30 +++---- apps/showcase/app/context-menu.tsx | 4 +- apps/showcase/app/data-table.tsx | 16 ++-- apps/showcase/app/date-picker.tsx | 4 +- apps/showcase/app/dialog.tsx | 6 +- apps/showcase/app/dropdown-menu.tsx | 28 +++--- apps/showcase/app/form.tsx | 14 +-- apps/showcase/app/hover-card.tsx | 10 +-- apps/showcase/app/input.tsx | 8 +- apps/showcase/app/label/index.tsx | 2 +- apps/showcase/app/material-top-tabs/green.tsx | 4 +- apps/showcase/app/material-top-tabs/index.tsx | 4 +- .../showcase/app/material-top-tabs/purple.tsx | 4 +- apps/showcase/app/material-top-tabs/red.tsx | 4 +- apps/showcase/app/menubar.tsx | 4 +- apps/showcase/app/modal.tsx | 10 +-- apps/showcase/app/navigation-menu.tsx | 8 +- apps/showcase/app/popover.tsx | 10 +-- apps/showcase/app/progress.tsx | 6 +- apps/showcase/app/radio-group.tsx | 4 +- apps/showcase/app/select.tsx | 4 +- apps/showcase/app/separator.tsx | 4 +- apps/showcase/app/skeleton.tsx | 2 +- apps/showcase/app/slider/index.tsx | 4 +- apps/showcase/app/slider/slider-primitive.tsx | 2 +- apps/showcase/app/switch.tsx | 4 +- apps/showcase/app/table.tsx | 14 +-- apps/showcase/app/tabs.tsx | 12 +-- apps/showcase/app/textarea.tsx | 4 +- apps/showcase/app/toast/index.tsx | 10 +-- apps/showcase/app/toggle-group.tsx | 8 +- apps/showcase/app/toggle.tsx | 4 +- .../app/toolbar/toolbar-primitive.tsx | 10 +-- apps/showcase/app/tooltip.tsx | 6 +- apps/showcase/app/typography.tsx | 2 +- apps/showcase/components/ModalToggle.tsx | 4 +- apps/showcase/components/ThemeToggle.tsx | 8 +- apps/showcase/lib/android-navigation-bar.ts | 2 +- apps/showcase/tsconfig.json | 5 +- packages/reusables/package.json | 6 ++ .../src/components/deprecated-ui/index.ts | 68 +++++++------- .../reusables/src/components/ui/accordion.tsx | 6 +- .../src/components/ui/alert-dialog.tsx | 6 +- .../reusables/src/components/ui/alert.tsx | 4 +- .../reusables/src/components/ui/avatar.tsx | 2 +- .../reusables/src/components/ui/badge.tsx | 4 +- .../reusables/src/components/ui/button.tsx | 4 +- packages/reusables/src/components/ui/card.tsx | 4 +- .../reusables/src/components/ui/checkbox.tsx | 4 +- .../src/components/ui/context-menu.tsx | 12 +-- .../src/components/ui/data-table.tsx | 18 ++-- .../reusables/src/components/ui/dialog.tsx | 4 +- .../src/components/ui/dropdown-menu.tsx | 12 +-- packages/reusables/src/components/ui/form.tsx | 42 ++++----- .../src/components/ui/hover-card.tsx | 4 +- packages/reusables/src/components/ui/index.ts | 70 +++++++-------- .../reusables/src/components/ui/input.tsx | 2 +- .../reusables/src/components/ui/label.tsx | 2 +- .../reusables/src/components/ui/menubar.tsx | 12 +-- .../src/components/ui/navigation-menu.tsx | 5 +- .../reusables/src/components/ui/popover.tsx | 4 +- .../reusables/src/components/ui/progress.tsx | 2 +- .../src/components/ui/radio-group.tsx | 2 +- .../reusables/src/components/ui/select.tsx | 8 +- .../reusables/src/components/ui/separator.tsx | 2 +- .../reusables/src/components/ui/skeleton.tsx | 2 +- .../reusables/src/components/ui/switch.tsx | 4 +- .../reusables/src/components/ui/table.tsx | 4 +- packages/reusables/src/components/ui/tabs.tsx | 4 +- packages/reusables/src/components/ui/text.tsx | 2 +- .../reusables/src/components/ui/textarea.tsx | 2 +- .../src/components/ui/toggle-group.tsx | 8 +- .../reusables/src/components/ui/toggle.tsx | 4 +- .../reusables/src/components/ui/tooltip.tsx | 4 +- .../src/components/ui/typography.tsx | 2 +- packages/reusables/src/index.ts | 6 +- packages/reusables/src/lib/index.ts | 10 +-- packages/reusables/tsconfig.json | 8 +- .../templates/starter-base/app/+not-found.tsx | 2 +- .../templates/starter-base/app/_layout.tsx | 10 +-- packages/templates/starter-base/app/index.tsx | 14 +-- .../starter-base/components/ThemeToggle.tsx | 8 +- .../starter-base/components/ui/avatar.tsx | 2 +- .../starter-base/components/ui/button.tsx | 4 +- .../starter-base/components/ui/card.tsx | 4 +- .../starter-base/components/ui/progress.tsx | 2 +- .../starter-base/components/ui/text.tsx | 2 +- .../starter-base/components/ui/tooltip.tsx | 4 +- .../lib/android-navigation-bar.ts | 2 +- packages/templates/starter-base/tsconfig.json | 2 +- 242 files changed, 1201 insertions(+), 1209 deletions(-) diff --git a/apps/cli/src/commands/add.ts b/apps/cli/src/commands/add.ts index 2dae1216..5478e857 100644 --- a/apps/cli/src/commands/add.ts +++ b/apps/cli/src/commands/add.ts @@ -1,8 +1,8 @@ -import { Config, getConfig } from '@/src/utils/get-config'; -import { getPackageManager } from '@/src/utils/get-package-manager'; -import { handleError } from '@/src/utils/handle-error'; -import { logger } from '@/src/utils/logger'; -import { promptForConfig } from '@/src/utils/prompt-for-config'; +import { Config, getConfig } from '@cli/src/utils/get-config'; +import { getPackageManager } from '@cli/src/utils/get-package-manager'; +import { handleError } from '@cli/src/utils/handle-error'; +import { logger } from '@cli/src/utils/logger'; +import { promptForConfig } from '@cli/src/utils/prompt-for-config'; import chalk from 'chalk'; import { Command } from 'commander'; import { execa } from 'execa'; diff --git a/apps/cli/src/commands/init.ts b/apps/cli/src/commands/init.ts index 17930cbf..723f9806 100644 --- a/apps/cli/src/commands/init.ts +++ b/apps/cli/src/commands/init.ts @@ -1,6 +1,6 @@ -import { copyFolder } from '@/src/utils/copy-folder'; -import { handleError } from '@/src/utils/handle-error'; -import { logger } from '@/src/utils/logger'; +import { copyFolder } from '@cli/src/utils/copy-folder'; +import { handleError } from '@cli/src/utils/handle-error'; +import { logger } from '@cli/src/utils/logger'; import chalk from 'chalk'; import { execSync } from 'child_process'; import { Command } from 'commander'; diff --git a/apps/cli/src/index.ts b/apps/cli/src/index.ts index 16b43167..624bcd30 100644 --- a/apps/cli/src/index.ts +++ b/apps/cli/src/index.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node -import { add } from '@/src/commands/add'; -import { init } from '@/src/commands/init'; +import { add } from '@cli/src/commands/add'; +import { init } from '@cli/src/commands/init'; import { Command } from 'commander'; diff --git a/apps/cli/src/utils/get-config.ts b/apps/cli/src/utils/get-config.ts index ef7e3ae3..268af5d5 100644 --- a/apps/cli/src/utils/get-config.ts +++ b/apps/cli/src/utils/get-config.ts @@ -1,10 +1,10 @@ -import { resolveImport } from '@/src/utils/resolve-import'; +import { resolveImport } from '@cli/src/utils/resolve-import'; import { cosmiconfig } from 'cosmiconfig'; import { loadConfig } from 'tsconfig-paths'; import { z } from 'zod'; -export const DEFAULT_COMPONENTS = '~/components'; -export const DEFAULT_LIB = '~/lib'; +export const DEFAULT_COMPONENTS = '@/components'; +export const DEFAULT_LIB = '@/lib'; const explorer = cosmiconfig('components', { searchPlaces: ['components.json'], diff --git a/apps/cli/src/utils/handle-error.ts b/apps/cli/src/utils/handle-error.ts index 3e366636..44093ea7 100644 --- a/apps/cli/src/utils/handle-error.ts +++ b/apps/cli/src/utils/handle-error.ts @@ -1,16 +1,16 @@ -import { logger } from "@/src/utils/logger" +import { logger } from '@cli/src/utils/logger'; export function handleError(error: unknown) { - if (typeof error === "string") { - logger.error(error) - process.exit(1) + if (typeof error === 'string') { + logger.error(error); + process.exit(1); } if (error instanceof Error) { - logger.error(error.message) - process.exit(1) + logger.error(error.message); + process.exit(1); } - logger.error("Something went wrong. Please try again.") - process.exit(1) + logger.error('Something went wrong. Please try again.'); + process.exit(1); } diff --git a/apps/cli/src/utils/prompt-for-config.ts b/apps/cli/src/utils/prompt-for-config.ts index 05d9d722..07e9f54d 100644 --- a/apps/cli/src/utils/prompt-for-config.ts +++ b/apps/cli/src/utils/prompt-for-config.ts @@ -3,8 +3,8 @@ import { DEFAULT_LIB, rawConfigSchema, resolveConfigPaths, -} from '@/src/utils/get-config'; -import { logger } from '@/src/utils/logger'; +} from '@cli/src/utils/get-config'; +import { logger } from '@cli/src/utils/logger'; import chalk from 'chalk'; import { promises as fs } from 'fs'; import ora from 'ora'; diff --git a/apps/cli/tsconfig.json b/apps/cli/tsconfig.json index 35eb4637..b6e9096c 100644 --- a/apps/cli/tsconfig.json +++ b/apps/cli/tsconfig.json @@ -4,7 +4,9 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@/*": ["./*"] + "@cli/*": [ + "./*" + ] }, "composite": false, "declaration": true, @@ -19,10 +21,16 @@ "preserveWatchOutput": true, "skipLibCheck": true, "strict": true, - "lib": ["es2021"], + "lib": [ + "es2021" + ], "module": "ESNext", "target": "ESNext" }, - "include": ["src/**/*.ts"], - "exclude": ["node_modules"] -} + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/apps/docs/app/(home)/layout.tsx b/apps/docs/app/(home)/layout.tsx index 1dd4684d..5a62349d 100644 --- a/apps/docs/app/(home)/layout.tsx +++ b/apps/docs/app/(home)/layout.tsx @@ -1,6 +1,6 @@ import type { ReactNode } from 'react'; import { HomeLayout } from 'fumadocs-ui/layouts/home'; -import { baseOptions } from '@/app/layout.config'; +import { baseOptions } from '@docs/app/layout.config'; export default function Layout({ children }: { children: ReactNode }) { return {children}; diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index f61afaf2..d06760d8 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -1,4 +1,4 @@ -import { Button } from '@/components/ui/button'; +import { Button } from '@docs/components/ui/button'; import Link from 'next/link'; export default function HomePage() { diff --git a/apps/docs/app/api/search/route.ts b/apps/docs/app/api/search/route.ts index df889626..0460493d 100644 --- a/apps/docs/app/api/search/route.ts +++ b/apps/docs/app/api/search/route.ts @@ -1,4 +1,4 @@ -import { source } from '@/lib/source'; +import { source } from '@docs/lib/source'; import { createFromSource } from 'fumadocs-core/search/server'; export const { GET } = createFromSource(source); diff --git a/apps/docs/app/docs/[[...slug]]/page.tsx b/apps/docs/app/docs/[[...slug]]/page.tsx index 3559e213..3508eea2 100644 --- a/apps/docs/app/docs/[[...slug]]/page.tsx +++ b/apps/docs/app/docs/[[...slug]]/page.tsx @@ -1,8 +1,8 @@ -import { source } from '@/lib/source'; +import { source } from '@docs/lib/source'; import { DocsPage, DocsBody, DocsDescription, DocsTitle } from 'fumadocs-ui/page'; import { notFound } from 'next/navigation'; import defaultMdxComponents from 'fumadocs-ui/mdx'; -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; import { Pre, CodeBlock } from 'fumadocs-ui/components/codeblock'; export default async function Page(props: { params: Promise<{ slug?: string[] }> }) { diff --git a/apps/docs/app/docs/layout.tsx b/apps/docs/app/docs/layout.tsx index a91d5585..741e16a4 100644 --- a/apps/docs/app/docs/layout.tsx +++ b/apps/docs/app/docs/layout.tsx @@ -1,7 +1,7 @@ import { DocsLayout } from 'fumadocs-ui/layouts/docs'; import type { ReactNode } from 'react'; -import { baseOptions } from '@/app/layout.config'; -import { source } from '@/lib/source'; +import { baseOptions } from '@docs/app/layout.config'; +import { source } from '@docs/lib/source'; export default function Layout({ children }: { children: ReactNode }) { return ( diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx index 43c64c83..b06ac1d9 100644 --- a/apps/docs/app/layout.config.tsx +++ b/apps/docs/app/layout.config.tsx @@ -1,5 +1,5 @@ -import { UiIcon } from '@/components/icons/ui-icon'; -import { RnrIcon } from '@/components/icons/rnr-icon'; +import { UiIcon } from '@docs/components/icons/ui-icon'; +import { RnrIcon } from '@docs/components/icons/rnr-icon'; import type { BaseLayoutProps } from 'fumadocs-ui/layouts/shared'; /** diff --git a/apps/docs/components.json b/apps/docs/components.json index 72b3fcdf..947d7cf6 100644 --- a/apps/docs/components.json +++ b/apps/docs/components.json @@ -11,11 +11,11 @@ "prefix": "" }, "aliases": { - "components": "@/components", - "utils": "@/lib/utils", - "ui": "@/components/ui", - "lib": "@/lib", - "hooks": "@/hooks" + "components": "@docs/components", + "utils": "@docs/lib/utils", + "ui": "@docs/components/ui", + "lib": "@docs/lib", + "hooks": "@docs/hooks" }, "iconLibrary": "lucide" } diff --git a/apps/docs/components/copy-button.tsx b/apps/docs/components/copy-button.tsx index e3aaba18..007b90b5 100644 --- a/apps/docs/components/copy-button.tsx +++ b/apps/docs/components/copy-button.tsx @@ -4,7 +4,7 @@ // The code is licensed under the MIT License. // https://github.com/fuma-nama/fumadocs -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; import { CheckIcon, CopyIcon } from 'lucide-react'; import * as React from 'react'; import { buttonVariants } from './ui/button'; diff --git a/apps/docs/components/icons/rnr-icon.tsx b/apps/docs/components/icons/rnr-icon.tsx index 8b9307ce..80da4e94 100644 --- a/apps/docs/components/icons/rnr-icon.tsx +++ b/apps/docs/components/icons/rnr-icon.tsx @@ -1,4 +1,4 @@ -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; export function RnrIcon({ className, diff --git a/apps/docs/components/icons/ui-icon.tsx b/apps/docs/components/icons/ui-icon.tsx index da213934..594a1ac5 100644 --- a/apps/docs/components/icons/ui-icon.tsx +++ b/apps/docs/components/icons/ui-icon.tsx @@ -1,4 +1,4 @@ -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; export function UiIcon({ className, ...props }: React.ComponentProps<'svg'>) { return ( diff --git a/apps/docs/components/portal-info-alert.tsx b/apps/docs/components/portal-info-alert.tsx index ced6974e..57de5cdb 100644 --- a/apps/docs/components/portal-info-alert.tsx +++ b/apps/docs/components/portal-info-alert.tsx @@ -1,4 +1,4 @@ -import { Alert, AlertTitle, AlertDescription } from '@/components/ui/alert'; +import { Alert, AlertTitle, AlertDescription } from '@docs/components/ui/alert'; import { InfoIcon } from 'lucide-react'; export function PortalInfoAlert() { diff --git a/apps/docs/components/preview-card/preview-card-client.tsx b/apps/docs/components/preview-card/preview-card-client.tsx index 55674740..37a8ec9a 100644 --- a/apps/docs/components/preview-card/preview-card-client.tsx +++ b/apps/docs/components/preview-card/preview-card-client.tsx @@ -1,17 +1,17 @@ 'use client'; -import { CopyButton } from '@/components/copy-button'; +import { CopyButton } from '@docs/components/copy-button'; import { type SelectProps } from '@radix-ui/react-select'; import * as React from 'react'; -import { Button } from '@/components/ui/button'; +import { Button } from '@docs/components/ui/button'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from '@/components/ui/select'; +} from '@docs/components/ui/select'; import { setCookie } from 'cookies-next'; const PLATFORMS = [ diff --git a/apps/docs/components/react-native.tsx b/apps/docs/components/react-native.tsx index d6fb60ec..058072b1 100644 --- a/apps/docs/components/react-native.tsx +++ b/apps/docs/components/react-native.tsx @@ -1,4 +1,4 @@ -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; import NextImage, { ImageProps } from 'next/image'; export function View({ className, ...props }: React.ComponentProps<'div'>) { diff --git a/apps/docs/components/section-tabs.tsx b/apps/docs/components/section-tabs.tsx index 5ebbbdef..fc28885f 100644 --- a/apps/docs/components/section-tabs.tsx +++ b/apps/docs/components/section-tabs.tsx @@ -3,7 +3,7 @@ import * as React from 'react'; import * as TabsPrimitive from '@radix-ui/react-tabs'; -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; const SectionTabs = React.forwardRef< React.ElementRef, diff --git a/apps/docs/components/ui/alert.tsx b/apps/docs/components/ui/alert.tsx index c39221da..abdc487e 100644 --- a/apps/docs/components/ui/alert.tsx +++ b/apps/docs/components/ui/alert.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { cva, type VariantProps } from 'class-variance-authority'; -import { cn } from '@/lib/utils'; +import { cn } from '@docs/lib/utils'; const alertVariants = cva( 'not-prose relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground', diff --git a/apps/docs/components/ui/button.tsx b/apps/docs/components/ui/button.tsx index 36496a28..19a7d359 100644 --- a/apps/docs/components/ui/button.tsx +++ b/apps/docs/components/ui/button.tsx @@ -1,56 +1,49 @@ -import * as React from "react" -import { Slot } from "@radix-ui/react-slot" -import { cva, type VariantProps } from "class-variance-authority" +import * as React from 'react'; +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; -import { cn } from "@/lib/utils" +import { cn } from '@docs/lib/utils'; const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', { variants: { variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", - destructive: - "bg-destructive text-destructive-foreground hover:bg-destructive/90", - outline: - "border border-input bg-background hover:bg-accent hover:text-accent-foreground", - secondary: - "bg-secondary text-secondary-foreground hover:bg-secondary/80", - ghost: "hover:bg-accent hover:text-accent-foreground", - link: "text-primary underline-offset-4 hover:underline", + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90', + outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', + secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', }, size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10", + default: 'h-10 px-4 py-2', + sm: 'h-9 rounded-md px-3', + lg: 'h-11 rounded-md px-8', + icon: 'h-10 w-10', }, }, defaultVariants: { - variant: "default", - size: "default", + variant: 'default', + size: 'default', }, } -) +); export interface ButtonProps extends React.ButtonHTMLAttributes, VariantProps { - asChild?: boolean + asChild?: boolean; } const Button = React.forwardRef( ({ className, variant, size, asChild = false, ...props }, ref) => { - const Comp = asChild ? Slot : "button" + const Comp = asChild ? Slot : 'button'; return ( - - ) + + ); } -) -Button.displayName = "Button" +); +Button.displayName = 'Button'; -export { Button, buttonVariants } +export { Button, buttonVariants }; diff --git a/apps/docs/components/ui/select.tsx b/apps/docs/components/ui/select.tsx index cbe5a36b..7a515a55 100644 --- a/apps/docs/components/ui/select.tsx +++ b/apps/docs/components/ui/select.tsx @@ -1,16 +1,16 @@ -"use client" +'use client'; -import * as React from "react" -import * as SelectPrimitive from "@radix-ui/react-select" -import { Check, ChevronDown, ChevronUp } from "lucide-react" +import * as React from 'react'; +import * as SelectPrimitive from '@radix-ui/react-select'; +import { Check, ChevronDown, ChevronUp } from 'lucide-react'; -import { cn } from "@/lib/utils" +import { cn } from '@docs/lib/utils'; -const Select = SelectPrimitive.Root +const Select = SelectPrimitive.Root; -const SelectGroup = SelectPrimitive.Group +const SelectGroup = SelectPrimitive.Group; -const SelectValue = SelectPrimitive.Value +const SelectValue = SelectPrimitive.Value; const SelectTrigger = React.forwardRef< React.ElementRef, @@ -19,18 +19,18 @@ const SelectTrigger = React.forwardRef< span]:line-clamp-1", + 'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1', className )} {...props} > {children} - + -)) -SelectTrigger.displayName = SelectPrimitive.Trigger.displayName +)); +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName; const SelectScrollUpButton = React.forwardRef< React.ElementRef, @@ -38,16 +38,13 @@ const SelectScrollUpButton = React.forwardRef< >(({ className, ...props }, ref) => ( - + -)) -SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName +)); +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName; const SelectScrollDownButton = React.forwardRef< React.ElementRef, @@ -55,29 +52,25 @@ const SelectScrollDownButton = React.forwardRef< >(({ className, ...props }, ref) => ( - + -)) -SelectScrollDownButton.displayName = - SelectPrimitive.ScrollDownButton.displayName +)); +SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName; const SelectContent = React.forwardRef< React.ElementRef, React.ComponentPropsWithoutRef ->(({ className, children, position = "popper", ...props }, ref) => ( +>(({ className, children, position = 'popper', ...props }, ref) => ( {children} @@ -96,8 +89,8 @@ const SelectContent = React.forwardRef< -)) -SelectContent.displayName = SelectPrimitive.Content.displayName +)); +SelectContent.displayName = SelectPrimitive.Content.displayName; const SelectLabel = React.forwardRef< React.ElementRef, @@ -105,11 +98,11 @@ const SelectLabel = React.forwardRef< >(({ className, ...props }, ref) => ( -)) -SelectLabel.displayName = SelectPrimitive.Label.displayName +)); +SelectLabel.displayName = SelectPrimitive.Label.displayName; const SelectItem = React.forwardRef< React.ElementRef, @@ -118,21 +111,21 @@ const SelectItem = React.forwardRef< - + - + {children} -)) -SelectItem.displayName = SelectPrimitive.Item.displayName +)); +SelectItem.displayName = SelectPrimitive.Item.displayName; const SelectSeparator = React.forwardRef< React.ElementRef, @@ -140,11 +133,11 @@ const SelectSeparator = React.forwardRef< >(({ className, ...props }, ref) => ( -)) -SelectSeparator.displayName = SelectPrimitive.Separator.displayName +)); +SelectSeparator.displayName = SelectPrimitive.Separator.displayName; export { Select, @@ -157,4 +150,4 @@ export { SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, -} +}; diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index 6cabf0a4..e515ae3d 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -3,13 +3,13 @@ title: Accordion description: A vertically stacked set of interactive headings that each reveal a section of content. --- -import accordionPreview from "!!raw-loader!@/previews/accordion"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { AccordionPreview } from "@/previews/accordion"; +import accordionPreview from "!!raw-loader!@docs/previews/accordion"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { AccordionPreview } from "@docs/previews/accordion"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -58,7 +58,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/alert.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/alert.tsx\"" + "meta": "title=\"@/components/ui/alert.tsx\"" } } ``` @@ -76,8 +76,8 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; -import { Terminal } from '~/lib/icons/Terminal'; +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { Terminal } from '@/lib/icons/Terminal'; ``` ```tsx diff --git a/apps/docs/content/docs/(components)/aspect-ratio.mdx b/apps/docs/content/docs/(components)/aspect-ratio.mdx index 08e77a59..3b16d46c 100644 --- a/apps/docs/content/docs/(components)/aspect-ratio.mdx +++ b/apps/docs/content/docs/(components)/aspect-ratio.mdx @@ -3,13 +3,13 @@ title: Aspect Ratio description: Displays content within a desired ratio. --- -import aspectRatioPreview from "!!raw-loader!@/previews/aspect-ratio"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { AspectRatioPreview } from "@/previews/aspect-ratio"; +import aspectRatioPreview from "!!raw-loader!@docs/previews/aspect-ratio"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { AspectRatioPreview } from "@docs/previews/aspect-ratio"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -72,7 +72,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/text.tsx\"" + "meta": "title=\"@/components/ui/text.tsx\"" } } ``` @@ -82,7 +82,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/badge.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/badge.tsx\"" + "meta": "title=\"@/components/ui/badge.tsx\"" } } ``` @@ -96,8 +96,8 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Badge } from '~/components/ui/badge'; -import { Text } from '~/components/ui/text'; +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; ``` @@ -112,7 +112,7 @@ import { Text } from '~/components/ui/text'; You can use the `badgeVariants` and `badgeTextVariants` helpers to create a link that looks like a badge. ```tsx -import { badgeVariants, badgeTextVariants } from "~/components/ui/badge" +import { badgeVariants, badgeTextVariants } from "@/components/ui/badge" ``` ```tsx diff --git a/apps/docs/content/docs/(components)/button.mdx b/apps/docs/content/docs/(components)/button.mdx index 8cdd12d0..a0c241f1 100644 --- a/apps/docs/content/docs/(components)/button.mdx +++ b/apps/docs/content/docs/(components)/button.mdx @@ -3,29 +3,29 @@ title: Button description: Displays a button or a component that looks like a button. --- -import buttonPreview from "!!raw-loader!@/previews/button/button-primary"; -import buttonDestructivePreview from "!!raw-loader!@/previews/button/button-destructive"; -import buttonOutlinePreview from "!!raw-loader!@/previews/button/button-outline"; -import buttonSecondaryPreview from "!!raw-loader!@/previews/button/button-secondary"; -import buttonGhostPreview from "!!raw-loader!@/previews/button/button-ghost"; -import buttonLinkPreview from "!!raw-loader!@/previews/button/button-link"; -import buttonIconPreview from "!!raw-loader!@/previews/button/button-icon"; -import buttonWithIconPreview from "!!raw-loader!@/previews/button/button-with-icon"; -import buttonLoadingPreview from "!!raw-loader!@/previews/button/button-loading"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { ButtonPreview } from "@/previews/button/button-primary"; -import { ButtonDestructivePreview } from "@/previews/button/button-destructive"; -import { ButtonOutlinePreview } from "@/previews/button/button-outline"; -import { ButtonSecondaryPreview } from "@/previews/button/button-secondary"; -import { ButtonGhostPreview } from "@/previews/button/button-ghost"; -import { ButtonLinkPreview } from "@/previews/button/button-link"; -import { ButtonIconPreview } from "@/previews/button/button-icon"; -import { ButtonWithIconPreview } from "@/previews/button/button-with-icon"; -import { ButtonLoadingPreview } from "@/previews/button/button-loading"; +import buttonPreview from "!!raw-loader!@docs/previews/button/button-primary"; +import buttonDestructivePreview from "!!raw-loader!@docs/previews/button/button-destructive"; +import buttonOutlinePreview from "!!raw-loader!@docs/previews/button/button-outline"; +import buttonSecondaryPreview from "!!raw-loader!@docs/previews/button/button-secondary"; +import buttonGhostPreview from "!!raw-loader!@docs/previews/button/button-ghost"; +import buttonLinkPreview from "!!raw-loader!@docs/previews/button/button-link"; +import buttonIconPreview from "!!raw-loader!@docs/previews/button/button-icon"; +import buttonWithIconPreview from "!!raw-loader!@docs/previews/button/button-with-icon"; +import buttonLoadingPreview from "!!raw-loader!@docs/previews/button/button-loading"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { ButtonPreview } from "@docs/previews/button/button-primary"; +import { ButtonDestructivePreview } from "@docs/previews/button/button-destructive"; +import { ButtonOutlinePreview } from "@docs/previews/button/button-outline"; +import { ButtonSecondaryPreview } from "@docs/previews/button/button-secondary"; +import { ButtonGhostPreview } from "@docs/previews/button/button-ghost"; +import { ButtonLinkPreview } from "@docs/previews/button/button-link"; +import { ButtonIconPreview } from "@docs/previews/button/button-icon"; +import { ButtonWithIconPreview } from "@docs/previews/button/button-with-icon"; +import { ButtonLoadingPreview } from "@docs/previews/button/button-loading"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -82,7 +82,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/text.tsx\"" + "meta": "title=\"@/components/ui/text.tsx\"" } } ``` @@ -92,7 +92,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/button.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/button.tsx\"" + "meta": "title=\"@/components/ui/button.tsx\"" } } ``` @@ -106,8 +106,8 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; ``` @@ -122,7 +122,7 @@ import { Text } from '~/components/ui/text'; You can use the `buttonVariants` and `buttonTextVariants` helpers to create a link that looks like a button. ```tsx -import { buttonVariants, buttonTextVariants } from "~/components/ui/button" +import { buttonVariants, buttonTextVariants } from "@/components/ui/button" ``` ```tsx diff --git a/apps/docs/content/docs/(components)/card.mdx b/apps/docs/content/docs/(components)/card.mdx index 3b408569..5f96b8c1 100644 --- a/apps/docs/content/docs/(components)/card.mdx +++ b/apps/docs/content/docs/(components)/card.mdx @@ -3,15 +3,15 @@ title: Card description: Displays a card with header, content, and footer. --- -import cardPreview from "!!raw-loader!@/previews/card/card-default"; -import cardExample from "!!raw-loader!@/previews/card/card-example"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { CardPreview } from "@/previews/card/card-default"; -import { CardExample } from "@/previews/card/card-example"; +import cardPreview from "!!raw-loader!@docs/previews/card/card-default"; +import cardExample from "!!raw-loader!@docs/previews/card/card-example"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { CardPreview } from "@docs/previews/card/card-default"; +import { CardExample } from "@docs/previews/card/card-example"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -68,7 +68,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/text.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/text.tsx\"" + "meta": "title=\"@/components/ui/text.tsx\"" } } ``` @@ -78,7 +78,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/card.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/card.tsx\"" + "meta": "title=\"@/components/ui/card.tsx\"" } } ``` @@ -99,8 +99,8 @@ import { CardFooter, CardHeader, CardTitle, -} from '~/components/ui/card'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/card'; +import { Text } from '@/components/ui/text'; ``` diff --git a/apps/docs/content/docs/(components)/checkbox.mdx b/apps/docs/content/docs/(components)/checkbox.mdx index bd01f572..50ca8c93 100644 --- a/apps/docs/content/docs/(components)/checkbox.mdx +++ b/apps/docs/content/docs/(components)/checkbox.mdx @@ -3,13 +3,13 @@ title: Checkbox description: A control that allows the user to toggle between checked and not checked. --- -import checkboxPreview from "!!raw-loader!@/previews/avatar"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { CheckboxPreview } from "@/previews/checkbox/checkbox-default"; +import checkboxPreview from "!!raw-loader!@docs/previews/avatar"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { CheckboxPreview } from "@docs/previews/checkbox/checkbox-default"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -73,7 +73,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/input.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/input.tsx\"" + "meta": "title=\"@/components/ui/input.tsx\"" } } ``` @@ -91,7 +91,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Input } from "~/components/ui/input" +import { Input } from "@/components/ui/input" ``` ```tsx diff --git a/apps/docs/content/docs/(components)/label.mdx b/apps/docs/content/docs/(components)/label.mdx index 762500f9..c7e26606 100644 --- a/apps/docs/content/docs/(components)/label.mdx +++ b/apps/docs/content/docs/(components)/label.mdx @@ -3,13 +3,13 @@ title: Label description: Renders an accessible label associated with controls. --- -import labelPreview from "!!raw-loader!@/previews/label/label-default"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { LabelPreview } from "@/previews/label/label-default"; +import labelPreview from "!!raw-loader!@docs/previews/label/label-default"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { LabelPreview } from "@docs/previews/label/label-default"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -69,7 +69,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; "file": "./node_modules/@rnr/reusables/src/components/ui/label.tsx", "codeblock": { "lang": "tsx", - "meta": "title=\"~/components/ui/label.tsx\"" + "meta": "title=\"@/components/ui/label.tsx\"" } } ``` @@ -87,7 +87,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ### Usage ```tsx -import { Label } from "~/components/ui/label" +import { Label } from "@/components/ui/label" ``` ```tsx diff --git a/apps/docs/content/docs/(components)/menubar.mdx b/apps/docs/content/docs/(components)/menubar.mdx index bae928c0..565d9bdc 100644 --- a/apps/docs/content/docs/(components)/menubar.mdx +++ b/apps/docs/content/docs/(components)/menubar.mdx @@ -3,14 +3,14 @@ title: Menubar description: A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands. --- -import menubarPreview from "!!raw-loader!@/previews/menubar/menubar-web"; -import { CommandTabs } from "@/components/command-tabs"; -import { CopyButton } from "@/components/copy-button"; -import { ExternalLinks } from "@/components/external-links"; -import { PortalInfoAlert } from '@/components/portal-info-alert'; -import { PreviewCard } from "@/components/preview-card"; -import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@/components/section-tabs"; -import { MenubarPreview } from "@/previews/menubar/menubar-web"; +import menubarPreview from "!!raw-loader!@docs/previews/menubar/menubar-web"; +import { CommandTabs } from "@docs/components/command-tabs"; +import { CopyButton } from "@docs/components/copy-button"; +import { ExternalLinks } from "@docs/components/external-links"; +import { PortalInfoAlert } from '@docs/components/portal-info-alert'; +import { PreviewCard } from "@docs/components/preview-card"; +import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; +import { MenubarPreview } from "@docs/previews/menubar/menubar-web"; import { Step, Steps } from 'fumadocs-ui/components/steps'; {/* TODO */} - {/* @ts-expect-error requires onCheckedChange prop */} @@ -66,7 +65,8 @@ export function CardExample() { diff --git a/apps/docs/previews/checkbox/checkbox-default.tsx b/apps/docs/previews/checkbox/checkbox-default.tsx index 5dc46276..cf2c6e28 100644 --- a/apps/docs/previews/checkbox/checkbox-default.tsx +++ b/apps/docs/previews/checkbox/checkbox-default.tsx @@ -1,6 +1,6 @@ -import { View } from '@/components/react-native'; -import { Checkbox } from '~/components/ui/checkbox'; -import { Label } from '~/components/ui/label'; +import { View } from '@docs/components/react-native'; +import { Checkbox } from '@/components/ui/checkbox'; +import { Label } from '@/components/ui/label'; export function CheckboxPreview() { return ( diff --git a/apps/docs/previews/collapsible/collapsible-native.tsx b/apps/docs/previews/collapsible/collapsible-native.tsx index 8e0f5acb..27afeecb 100644 --- a/apps/docs/previews/collapsible/collapsible-native.tsx +++ b/apps/docs/previews/collapsible/collapsible-native.tsx @@ -1,8 +1,8 @@ import { Platform, Text, View } from 'react-native'; import Animated, { FadeInDown, LinearTransition } from 'react-native-reanimated'; -import { Button } from '~/components/ui/button'; -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '~/components/ui/collapsible'; -import { ChevronsUpDown } from '~/lib/icons/ChevronsUpDown'; +import { Button } from '@/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; +import { ChevronsUpDown } from '@/lib/icons/ChevronsUpDown'; export function CollapsiblePreview() { return ( diff --git a/apps/docs/previews/collapsible/collapsible-web.tsx b/apps/docs/previews/collapsible/collapsible-web.tsx index f3ade3bf..eb29b4dc 100644 --- a/apps/docs/previews/collapsible/collapsible-web.tsx +++ b/apps/docs/previews/collapsible/collapsible-web.tsx @@ -1,8 +1,8 @@ -import { View } from '@/components/react-native'; -import { Button } from '~/components/ui/button'; -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '~/components/ui/collapsible'; -import { Text } from '~/components/ui/text'; -import { ChevronsUpDown } from '~/lib/icons/ChevronsUpDown'; +import { View } from '@docs/components/react-native'; +import { Button } from '@/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; +import { Text } from '@/components/ui/text'; +import { ChevronsUpDown } from '@/lib/icons/ChevronsUpDown'; export function CollapsiblePreview() { return ( diff --git a/apps/docs/previews/context-menu/context-menu-native.tsx b/apps/docs/previews/context-menu/context-menu-native.tsx index b3b8e651..553d6844 100644 --- a/apps/docs/previews/context-menu/context-menu-native.tsx +++ b/apps/docs/previews/context-menu/context-menu-native.tsx @@ -16,8 +16,8 @@ import { ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, -} from '~/components/ui/context-menu'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/context-menu'; +import { Text } from '@/components/ui/text'; export function ContextMenuPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/context-menu/context-menu-web.tsx b/apps/docs/previews/context-menu/context-menu-web.tsx index b2a5183c..db04d5b7 100644 --- a/apps/docs/previews/context-menu/context-menu-web.tsx +++ b/apps/docs/previews/context-menu/context-menu-web.tsx @@ -12,8 +12,8 @@ import { ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, -} from '~/components/ui/context-menu'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/context-menu'; +import { Text } from '@/components/ui/text'; // TODO(zach): update primitives for options value and onChange diff --git a/apps/docs/previews/dialog/dialog-native.tsx b/apps/docs/previews/dialog/dialog-native.tsx index 02e80e30..bcebfb63 100644 --- a/apps/docs/previews/dialog/dialog-native.tsx +++ b/apps/docs/previews/dialog/dialog-native.tsx @@ -1,5 +1,5 @@ -import { View } from '@/components/react-native'; -import { Button } from '~/components/ui/button'; +import { View } from '@docs/components/react-native'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogClose, @@ -9,10 +9,10 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '~/components/ui/dialog'; -import { Label } from '~/components/ui/label'; -import { Input } from '~/components/ui/input'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/dialog'; +import { Label } from '@/components/ui/label'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; // TODO(zach): check this works on native diff --git a/apps/docs/previews/dialog/dialog-web.tsx b/apps/docs/previews/dialog/dialog-web.tsx index 4c507af7..241bbbc2 100644 --- a/apps/docs/previews/dialog/dialog-web.tsx +++ b/apps/docs/previews/dialog/dialog-web.tsx @@ -1,5 +1,5 @@ -import { View } from '@/components/react-native'; -import { Button } from '~/components/ui/button'; +import { View } from '@docs/components/react-native'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogClose, @@ -9,10 +9,10 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '~/components/ui/dialog'; -import { Label } from '~/components/ui/label'; -import { Input } from '~/components/ui/input'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/dialog'; +import { Label } from '@/components/ui/label'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; export function DialogPreview() { return ( diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx index d4310355..98214172 100644 --- a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx +++ b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx @@ -1,6 +1,6 @@ import Animated, { FadeIn } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -13,19 +13,19 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from '~/components/ui/dropdown-menu'; -import { Text } from '~/components/ui/text'; -import { Cloud } from '~/lib/icons/Cloud'; -import { Github } from '~/lib/icons/Github'; -import { LifeBuoy } from '~/lib/icons/LifeBuoy'; -import { LogOut } from '~/lib/icons/LogOut'; -import { Mail } from '~/lib/icons/Mail'; -import { MessageSquare } from '~/lib/icons/MessageSquare'; -import { Plus } from '~/lib/icons/Plus'; -import { PlusCircle } from '~/lib/icons/PlusCircle'; -import { User } from '~/lib/icons/User'; -import { UserPlus } from '~/lib/icons/UserPlus'; -import { Users } from '~/lib/icons/Users'; +} from '@/components/ui/dropdown-menu'; +import { Text } from '@/components/ui/text'; +import { Cloud } from '@/lib/icons/Cloud'; +import { Github } from '@/lib/icons/Github'; +import { LifeBuoy } from '@/lib/icons/LifeBuoy'; +import { LogOut } from '@/lib/icons/LogOut'; +import { Mail } from '@/lib/icons/Mail'; +import { MessageSquare } from '@/lib/icons/MessageSquare'; +import { Plus } from '@/lib/icons/Plus'; +import { PlusCircle } from '@/lib/icons/PlusCircle'; +import { User } from '@/lib/icons/User'; +import { UserPlus } from '@/lib/icons/UserPlus'; +import { Users } from '@/lib/icons/Users'; export default function DropdownMenuPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx index 1acc85a6..b0e5d2b1 100644 --- a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx +++ b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx @@ -1,4 +1,4 @@ -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -11,19 +11,19 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from '~/components/ui/dropdown-menu'; -import { Text } from '~/components/ui/text'; -import { Cloud } from '~/lib/icons/Cloud'; -import { Github } from '~/lib/icons/Github'; -import { LifeBuoy } from '~/lib/icons/LifeBuoy'; -import { LogOut } from '~/lib/icons/LogOut'; -import { Mail } from '~/lib/icons/Mail'; -import { MessageSquare } from '~/lib/icons/MessageSquare'; -import { Plus } from '~/lib/icons/Plus'; -import { PlusCircle } from '~/lib/icons/PlusCircle'; -import { User } from '~/lib/icons/User'; -import { UserPlus } from '~/lib/icons/UserPlus'; -import { Users } from '~/lib/icons/Users'; +} from '@/components/ui/dropdown-menu'; +import { Text } from '@/components/ui/text'; +import { Cloud } from '@/lib/icons/Cloud'; +import { Github } from '@/lib/icons/Github'; +import { LifeBuoy } from '@/lib/icons/LifeBuoy'; +import { LogOut } from '@/lib/icons/LogOut'; +import { Mail } from '@/lib/icons/Mail'; +import { MessageSquare } from '@/lib/icons/MessageSquare'; +import { Plus } from '@/lib/icons/Plus'; +import { PlusCircle } from '@/lib/icons/PlusCircle'; +import { User } from '@/lib/icons/User'; +import { UserPlus } from '@/lib/icons/UserPlus'; +import { Users } from '@/lib/icons/Users'; export function DropdownMenuPreview() { return ( diff --git a/apps/docs/previews/hover-card/hover-card-native.tsx b/apps/docs/previews/hover-card/hover-card-native.tsx index 38b7cae2..fac273b0 100644 --- a/apps/docs/previews/hover-card/hover-card-native.tsx +++ b/apps/docs/previews/hover-card/hover-card-native.tsx @@ -1,10 +1,10 @@ import { View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Button } from '~/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; -import { Text } from '~/components/ui/text'; -import { CalendarDays } from '~/lib/icons/CalendarDays'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Text } from '@/components/ui/text'; +import { CalendarDays } from '@/lib/icons/CalendarDays'; export function HoverCardPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/hover-card/hover-card-web.tsx b/apps/docs/previews/hover-card/hover-card-web.tsx index 345ceb3a..41660a01 100644 --- a/apps/docs/previews/hover-card/hover-card-web.tsx +++ b/apps/docs/previews/hover-card/hover-card-web.tsx @@ -1,9 +1,9 @@ -import { View } from '@/components/react-native'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Button } from '~/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; -import { Text } from '~/components/ui/text'; -import { CalendarDays } from '~/lib/icons/CalendarDays'; +import { View } from '@docs/components/react-native'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Text } from '@/components/ui/text'; +import { CalendarDays } from '@/lib/icons/CalendarDays'; export function HoverCardPreview() { return ( diff --git a/apps/docs/previews/input.tsx b/apps/docs/previews/input.tsx index 48856a47..d5f7a9e2 100644 --- a/apps/docs/previews/input.tsx +++ b/apps/docs/previews/input.tsx @@ -1,4 +1,4 @@ -import { Input } from '@/components/reusables'; +import { Input } from '@/components/ui/input'; export function InputPreview() { return ( diff --git a/apps/docs/previews/label/label-default.tsx b/apps/docs/previews/label/label-default.tsx index 94e55b40..83c40c42 100644 --- a/apps/docs/previews/label/label-default.tsx +++ b/apps/docs/previews/label/label-default.tsx @@ -1,6 +1,6 @@ -import { View } from '@/components/react-native'; -import { Checkbox } from '~/components/ui/checkbox'; -import { Label } from '~/components/ui/label'; +import { View } from '@docs/components/react-native'; +import { Checkbox } from '@/components/ui/checkbox'; +import { Label } from '@/components/ui/label'; export function LabelPreview() { return ( diff --git a/apps/docs/previews/menubar/menubar-native.tsx b/apps/docs/previews/menubar/menubar-native.tsx index e775d718..b3eb5f4d 100644 --- a/apps/docs/previews/menubar/menubar-native.tsx +++ b/apps/docs/previews/menubar/menubar-native.tsx @@ -17,8 +17,8 @@ import { MenubarSubContent, MenubarSubTrigger, MenubarTrigger, -} from '~/components/ui/menubar'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/menubar'; +import { Text } from '@/components/ui/text'; // TODO(zach): review this diff --git a/apps/docs/previews/menubar/menubar-web.tsx b/apps/docs/previews/menubar/menubar-web.tsx index 348c97cc..782c5777 100644 --- a/apps/docs/previews/menubar/menubar-web.tsx +++ b/apps/docs/previews/menubar/menubar-web.tsx @@ -12,8 +12,8 @@ import { MenubarSubContent, MenubarSubTrigger, MenubarTrigger, -} from '~/components/ui/menubar'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/menubar'; +import { Text } from '@/components/ui/text'; // TODO(zach): fix primitive + double enter animation diff --git a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx index 9344b730..2cd10316 100644 --- a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx +++ b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx @@ -11,9 +11,9 @@ import { NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, -} from '~/components/ui/navigation-menu'; -import { Text } from '~/components/ui/text'; -import { Sparkles } from '~/lib/icons/Sparkles'; +} from '@/components/ui/navigation-menu'; +import { Text } from '@/components/ui/text'; +import { Sparkles } from '@/lib/icons/Sparkles'; export function NavigationMenuPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx index 2678536e..21d6e6d4 100644 --- a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx +++ b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx @@ -1,4 +1,4 @@ -import { View } from '@/components/react-native'; +import { View } from '@docs/components/react-native'; import { NavigationMenu, NavigationMenuContent, @@ -6,9 +6,9 @@ import { NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, -} from '~/components/ui/navigation-menu'; -import { Text } from '~/components/ui/text'; -import { Sparkles } from '~/lib/icons/Sparkles'; +} from '@/components/ui/navigation-menu'; +import { Text } from '@/components/ui/text'; +import { Sparkles } from '@/lib/icons/Sparkles'; // TODO(zach) diff --git a/apps/docs/source.config.ts b/apps/docs/source.config.ts index 877fe882..037af747 100644 --- a/apps/docs/source.config.ts +++ b/apps/docs/source.config.ts @@ -1,4 +1,4 @@ -import { fileGenerator } from '@/lib/file-generator'; +import { fileGenerator } from '@docs/lib/file-generator'; import { remarkDocGen } from 'fumadocs-docgen'; import { defineConfig, defineDocs } from 'fumadocs-mdx/config'; diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 0ebaaf43..93fc8358 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -21,13 +21,13 @@ "jsx": "preserve", "incremental": true, "paths": { - "@/*": [ + "@docs/*": [ "./*" ], - "~/components/ui/*": [ + "@/components/ui/*": [ "./components/reusables" ], - "~/lib/icons/*": [ + "@/lib/icons/*": [ "./components/reusables" ] }, diff --git a/apps/old-docs/components.json b/apps/old-docs/components.json index 09bb58c8..a18a3a2b 100644 --- a/apps/old-docs/components.json +++ b/apps/old-docs/components.json @@ -11,7 +11,7 @@ "prefix": "" }, "aliases": { - "components": "@/components", - "utils": "@/lib/utils" + "components": "@old-docs/components", + "utils": "@old-docs/lib/utils" } -} \ No newline at end of file +} diff --git a/apps/old-docs/src/components/Code.astro b/apps/old-docs/src/components/Code.astro index 30dfccea..4b1324a8 100644 --- a/apps/old-docs/src/components/Code.astro +++ b/apps/old-docs/src/components/Code.astro @@ -1,7 +1,7 @@ --- import { Code as StarlightCode } from '@astrojs/starlight/components'; import { CodeBlockWrapper } from '../components/react/CodeBlockWrapper'; -import { fixImports } from '@/lib/utils'; +import { fixImports } from '@old-docs/lib/utils'; const { title = '', code = '', lang = 'tsx' } = Astro.props; --- diff --git a/apps/old-docs/src/components/react/CodeBlockWrapper.tsx b/apps/old-docs/src/components/react/CodeBlockWrapper.tsx index 297f8c9c..86edbaa4 100644 --- a/apps/old-docs/src/components/react/CodeBlockWrapper.tsx +++ b/apps/old-docs/src/components/react/CodeBlockWrapper.tsx @@ -1,10 +1,10 @@ -import { Button } from '@/components/ui/button'; +import { Button } from '@old-docs/components/ui/button'; import { Collapsible, CollapsibleContent, CollapsibleTrigger, -} from '@/components/ui/collapsible'; -import { cn } from '@/lib/utils'; +} from '@old-docs/components/ui/collapsible'; +import { cn } from '@old-docs/lib/utils'; import * as React from 'react'; export function CodeBlockWrapper({ children }: { children: React.ReactNode }) { @@ -13,10 +13,7 @@ export function CodeBlockWrapper({ children }: { children: React.ReactNode }) { return (
- +
) { diff --git a/apps/old-docs/src/components/react/ThemeSelector.tsx b/apps/old-docs/src/components/react/ThemeSelector.tsx index 0d10cf92..e9d47b16 100644 --- a/apps/old-docs/src/components/react/ThemeSelector.tsx +++ b/apps/old-docs/src/components/react/ThemeSelector.tsx @@ -1,4 +1,4 @@ -import { Button } from '@/components/ui/button'; +import { Button } from '@old-docs/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -7,8 +7,8 @@ import { DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger, -} from '@/components/ui/dropdown-menu'; -import { cn } from '@/lib/utils'; +} from '@old-docs/components/ui/dropdown-menu'; +import { cn } from '@old-docs/lib/utils'; import { ExternalLink, Moon, Sun } from 'lucide-react'; import * as React from 'react'; diff --git a/apps/old-docs/src/components/ui/button.tsx b/apps/old-docs/src/components/ui/button.tsx index 7035879b..6b219b87 100644 --- a/apps/old-docs/src/components/ui/button.tsx +++ b/apps/old-docs/src/components/ui/button.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { Slot } from '@radix-ui/react-slot'; import { cva, type VariantProps } from 'class-variance-authority'; -import { cn } from '@/lib/utils'; +import { cn } from '@old-docs/lib/utils'; const buttonVariants = cva( 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50', diff --git a/apps/old-docs/src/components/ui/dropdown-menu.tsx b/apps/old-docs/src/components/ui/dropdown-menu.tsx index 1c78269b..ec96a894 100644 --- a/apps/old-docs/src/components/ui/dropdown-menu.tsx +++ b/apps/old-docs/src/components/ui/dropdown-menu.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'; import { Check, ChevronRight, Circle } from 'lucide-react'; -import { cn } from '@/lib/utils'; +import { cn } from '@old-docs/lib/utils'; const DropdownMenu = DropdownMenuPrimitive.Root; diff --git a/apps/old-docs/src/content/docs/components/accordion.mdx b/apps/old-docs/src/content/docs/components/accordion.mdx index 33b56aee..251a5a1e 100644 --- a/apps/old-docs/src/content/docs/components/accordion.mdx +++ b/apps/old-docs/src/content/docs/components/accordion.mdx @@ -6,8 +6,8 @@ description: A vertically stacked set of interactive headings that each reveal a {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/accordion?raw'; @@ -40,10 +40,10 @@ A vertically stacked set of interactive headings that each reveal a section of c
- **Copy/paste the following code to `~/components/ui/accordion.tsx`:** + **Copy/paste the following code to `@/components/ui/accordion.tsx`:** - + @@ -55,8 +55,8 @@ import { AccordionContent, AccordionItem, AccordionTrigger, -} from '~/components/ui/accordion'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/accordion'; +import { Text } from '@/components/ui/text'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/alert-dialog.mdx b/apps/old-docs/src/content/docs/components/alert-dialog.mdx index fe708f7f..fb34edb7 100644 --- a/apps/old-docs/src/content/docs/components/alert-dialog.mdx +++ b/apps/old-docs/src/content/docs/components/alert-dialog.mdx @@ -6,8 +6,8 @@ description: A modal dialog that interrupts the user with important content and {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/alert-dialog?raw'; @@ -36,9 +36,9 @@ A modal dialog that interrupts the user with important content and expects a res
- **Copy/paste the following code to `~/components/ui/alert-dialog.tsx`:** + **Copy/paste the following code to `@/components/ui/alert-dialog.tsx`:** - + ### Usage @@ -74,9 +74,9 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '~/components/ui/alert-dialog'; -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/alert-dialog'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; function AlertDialogScreen() { return ( diff --git a/apps/old-docs/src/content/docs/components/alert.mdx b/apps/old-docs/src/content/docs/components/alert.mdx index 89e25cf6..c2c2bc01 100644 --- a/apps/old-docs/src/content/docs/components/alert.mdx +++ b/apps/old-docs/src/content/docs/components/alert.mdx @@ -6,8 +6,8 @@ description: A notification to capture user attention. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/alert?raw'; @@ -29,17 +29,17 @@ A notification to capture user attention. - **Copy/paste the following code to `~/components/ui/alert.tsx`:** + **Copy/paste the following code to `@/components/ui/alert.tsx`:** - + ### Usage ```tsx -import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; -import { AlertTriangle } from '~/lib/icons/AlertTriangle'; -import { Terminal } from '~/lib/icons/Terminal'; +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { AlertTriangle } from '@/lib/icons/AlertTriangle'; +import { Terminal } from '@/lib/icons/Terminal'; function AlertExample() { return ( diff --git a/apps/old-docs/src/content/docs/components/aspect-ratio.mdx b/apps/old-docs/src/content/docs/components/aspect-ratio.mdx index 4ce234fb..ee5dc10f 100644 --- a/apps/old-docs/src/content/docs/components/aspect-ratio.mdx +++ b/apps/old-docs/src/content/docs/components/aspect-ratio.mdx @@ -6,8 +6,8 @@ description: Presents content within a chosen aspect ratio. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/aspect-ratio?raw'; @@ -36,16 +36,16 @@ Presents content within a chosen aspect ratio.
- **Copy/paste the following code to `~/components/ui/aspect-ratio.tsx`:** + **Copy/paste the following code to `@/components/ui/aspect-ratio.tsx`:** - + ### Usage ```tsx -import { AspectRatio } from '~/components/ui/aspect-ratio'; +import { AspectRatio } from '@/components/ui/aspect-ratio'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/avatar.mdx b/apps/old-docs/src/content/docs/components/avatar.mdx index 6f20243e..2436d99a 100644 --- a/apps/old-docs/src/content/docs/components/avatar.mdx +++ b/apps/old-docs/src/content/docs/components/avatar.mdx @@ -6,8 +6,8 @@ description: An image component featuring an alternative representation for depi {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/avatar?raw'; @@ -36,17 +36,17 @@ An image component featuring an alternative representation for depicting the use
- **Copy/paste the following code to `~/components/ui/avatar.tsx`:** + **Copy/paste the following code to `@/components/ui/avatar.tsx`:** - + ### Usage ```tsx -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Text } from '~/components/ui/text'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Text } from '@/components/ui/text'; const GITHUB_AVATAR_URI = 'https://github.com/mrzachnugent.png'; diff --git a/apps/old-docs/src/content/docs/components/badge.mdx b/apps/old-docs/src/content/docs/components/badge.mdx index b107e8f2..e174a6a5 100644 --- a/apps/old-docs/src/content/docs/components/badge.mdx +++ b/apps/old-docs/src/content/docs/components/badge.mdx @@ -6,8 +6,8 @@ description: Shows a badge or a badge-like component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/badge?raw'; @@ -38,16 +38,16 @@ Shows a badge or a badge-like component. - **Copy/paste the following code to `~/components/ui/badge.tsx`** + **Copy/paste the following code to `@/components/ui/badge.tsx`** - + ## Usage ```tsx -import { Badge } from '~/components/ui/badge'; -import { Text } from '~/components/ui/text'; +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/button.mdx b/apps/old-docs/src/content/docs/components/button.mdx index ec075d93..f116470b 100644 --- a/apps/old-docs/src/content/docs/components/button.mdx +++ b/apps/old-docs/src/content/docs/components/button.mdx @@ -6,8 +6,8 @@ description: Shows a button component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/button?raw'; @@ -36,16 +36,16 @@ Shows a button component. - **Copy/paste the following code to `~/components/ui/button.tsx`** + **Copy/paste the following code to `@/components/ui/button.tsx`** - + ## Usage ```tsx -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/card.mdx b/apps/old-docs/src/content/docs/components/card.mdx index a29beea2..bbb8e95b 100644 --- a/apps/old-docs/src/content/docs/components/card.mdx +++ b/apps/old-docs/src/content/docs/components/card.mdx @@ -6,8 +6,8 @@ description: Shows a card component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/card?raw'; @@ -36,9 +36,9 @@ Shows a card component. - **Copy/paste the following code to `~/components/ui/card.tsx`** + **Copy/paste the following code to `@/components/ui/card.tsx`** - + ## Usage @@ -51,8 +51,8 @@ import { CardFooter, CardHeader, CardTitle, -} from '~/components/ui/card'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/card'; +import { Text } from '@/components/ui/text'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/checkbox.mdx b/apps/old-docs/src/content/docs/components/checkbox.mdx index bf56a182..322b4e30 100644 --- a/apps/old-docs/src/content/docs/components/checkbox.mdx +++ b/apps/old-docs/src/content/docs/components/checkbox.mdx @@ -6,8 +6,8 @@ description: A box that is a checked (ticked) indicator when activated. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/checkbox?raw'; @@ -36,16 +36,16 @@ A box that is a checked (ticked) indicator when activated.
- **Copy/paste the following code to `~/components/ui/checkbox.tsx`:** + **Copy/paste the following code to `@/components/ui/checkbox.tsx`:** - + ### Usage ```tsx -import { Checkbox } from '~/components/ui/checkbox'; +import { Checkbox } from '@/components/ui/checkbox'; function Example() { const [checked, setChecked] = React.useState(false); diff --git a/apps/old-docs/src/content/docs/components/collapsible.mdx b/apps/old-docs/src/content/docs/components/collapsible.mdx index 9748ff5d..c0351b3c 100644 --- a/apps/old-docs/src/content/docs/components/collapsible.mdx +++ b/apps/old-docs/src/content/docs/components/collapsible.mdx @@ -6,8 +6,8 @@ description: A dynamic element that facilitates the expansion or collapse of a p {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/collapsible?raw'; @@ -37,18 +37,18 @@ A dynamic element that facilitates the expansion or collapse of a panel.
- **Copy/paste the following code to `~/components/ui/collapsible.tsx`:** + **Copy/paste the following code to `@/components/ui/collapsible.tsx`:** - + ## Usage ```tsx -import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '~/components/ui/collapsible'; -import { Text } from '~/components/ui/text'; +import { Collapsible, CollapsibleTrigger, CollapsibleContent } from '@/components/ui/collapsible'; +import { Text } from '@/components/ui/text'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/context-menu.mdx b/apps/old-docs/src/content/docs/components/context-menu.mdx index 7d615977..966b5225 100644 --- a/apps/old-docs/src/content/docs/components/context-menu.mdx +++ b/apps/old-docs/src/content/docs/components/context-menu.mdx @@ -6,8 +6,8 @@ description: Shows a menu activated by either a right-click or a long-press. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/context-menu?raw'; @@ -36,9 +36,9 @@ Shows a menu activated by either a right-click or a long-press.
- **Copy/paste the following code to `~/components/ui/context-menu.tsx`:** + **Copy/paste the following code to `@/components/ui/context-menu.tsx`:** - + @@ -83,8 +83,8 @@ import { ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, -} from '~/components/ui/context-menu'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/context-menu'; +import { Text } from '@/components/ui/text'; function Example() { const insets = useSafeAreaInsets(); diff --git a/apps/old-docs/src/content/docs/components/dialog.mdx b/apps/old-docs/src/content/docs/components/dialog.mdx index f81773ca..df36c225 100644 --- a/apps/old-docs/src/content/docs/components/dialog.mdx +++ b/apps/old-docs/src/content/docs/components/dialog.mdx @@ -5,8 +5,8 @@ description: A modal dialog that interrupts the user with important content and {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/dialog?raw'; @@ -34,9 +34,9 @@ A modal dialog that interrupts the user with important content and expects a res
- **Copy/paste the following code to `~/components/ui/dialog.tsx`:** + **Copy/paste the following code to `@/components/ui/dialog.tsx`:** - + @@ -64,7 +64,7 @@ A modal dialog that interrupts the user with important content and expects a res ```tsx import * as React from 'react'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogClose, @@ -74,8 +74,8 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '~/components/ui/dialog'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/dialog'; +import { Text } from '@/components/ui/text'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/dropdown-menu.mdx b/apps/old-docs/src/content/docs/components/dropdown-menu.mdx index e005e1c4..07c8697e 100644 --- a/apps/old-docs/src/content/docs/components/dropdown-menu.mdx +++ b/apps/old-docs/src/content/docs/components/dropdown-menu.mdx @@ -6,8 +6,8 @@ description: Shows a menu with options or actions when a user clicks the trigger {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/dropdown-menu?raw'; @@ -36,9 +36,9 @@ Shows a menu with options or actions when a user clicks the trigger button.
- **Copy/paste the following code to `~/components/ui/dropdown-menu.tsx`:** + **Copy/paste the following code to `@/components/ui/dropdown-menu.tsx`:** - + @@ -68,7 +68,7 @@ Shows a menu with options or actions when a user clicks the trigger button. ```tsx import * as React from 'react'; import Animated, { FadeIn } from 'react-native-reanimated'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -81,8 +81,8 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from '~/components/ui/dropdown-menu'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/dropdown-menu'; +import { Text } from '@/components/ui/text'; function Example() { diff --git a/apps/old-docs/src/content/docs/components/hover-card.mdx b/apps/old-docs/src/content/docs/components/hover-card.mdx index 16af729e..4520ca8b 100644 --- a/apps/old-docs/src/content/docs/components/hover-card.mdx +++ b/apps/old-docs/src/content/docs/components/hover-card.mdx @@ -5,8 +5,8 @@ description: Allows users with vision to preview the content hidden behind an el {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/hover-card?raw'; @@ -34,9 +34,9 @@ Allows users with vision to preview the content hidden behind an element before
- **Copy/paste the following code to `~/components/ui/hover-card.tsx`:** + **Copy/paste the following code to `@/components/ui/hover-card.tsx`:** - + @@ -65,11 +65,11 @@ Allows users with vision to preview the content hidden behind an element before ```tsx import { View } from 'react-native'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Button } from '~/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; -import { Text } from '~/components/ui/text'; -import { CalendarDays } from '~/lib/icons/CalendarDays'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Text } from '@/components/ui/text'; +import { CalendarDays } from '@/lib/icons/CalendarDays'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/input.mdx b/apps/old-docs/src/content/docs/components/input.mdx index 7cf1edd5..d7ee523e 100644 --- a/apps/old-docs/src/content/docs/components/input.mdx +++ b/apps/old-docs/src/content/docs/components/input.mdx @@ -6,8 +6,8 @@ description: Shows an input component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/input?raw'; @@ -28,9 +28,9 @@ Shows an input component. ``` -**Copy/paste the following code to `~/components/ui/input.tsx`** +**Copy/paste the following code to `@/components/ui/input.tsx`** - + @@ -38,8 +38,8 @@ Shows an input component. ## Usage ```tsx -import { Input } from '~/components/ui/input'; -import { Text } from '~/components/ui/text'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; function Example() { const [value, setValue] = React.useState(''); diff --git a/apps/old-docs/src/content/docs/components/label.mdx b/apps/old-docs/src/content/docs/components/label.mdx index cb2079b1..98f03344 100644 --- a/apps/old-docs/src/content/docs/components/label.mdx +++ b/apps/old-docs/src/content/docs/components/label.mdx @@ -6,8 +6,8 @@ description: A user-friendly label linked to controls for improved accessibility {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/label?raw'; @@ -37,10 +37,10 @@ A user-friendly label linked to controls for improved accessibility.
- **Copy/paste the following code to `~/components/ui/label.tsx`:** + **Copy/paste the following code to `@/components/ui/label.tsx`:** - + @@ -48,7 +48,7 @@ A user-friendly label linked to controls for improved accessibility. ### Usage ```tsx -import { Label } from '~/components/ui/label'; +import { Label } from '@/components/ui/label'; function Example() { return diff --git a/apps/old-docs/src/content/docs/components/menubar.mdx b/apps/old-docs/src/content/docs/components/menubar.mdx index a69bc1a9..616cff35 100644 --- a/apps/old-docs/src/content/docs/components/menubar.mdx +++ b/apps/old-docs/src/content/docs/components/menubar.mdx @@ -6,8 +6,8 @@ description: A menu that stays visible on the screen, often seen in desktop apps {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/menubar?raw'; @@ -36,9 +36,9 @@ A menu that stays visible on the screen, often seen in desktop apps, offering ea
- **Copy/paste the following code to `~/components/ui/menubar.tsx`:** + **Copy/paste the following code to `@/components/ui/menubar.tsx`:** - + @@ -84,8 +84,8 @@ import { MenubarSubContent, MenubarSubTrigger, MenubarTrigger, -} from '~/components/ui/menubar'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/menubar'; +import { Text } from '@/components/ui/text'; function Example() { const insets = useSafeAreaInsets(); diff --git a/apps/old-docs/src/content/docs/components/navigation-menu.mdx b/apps/old-docs/src/content/docs/components/navigation-menu.mdx index 07bdf13a..bd658d22 100644 --- a/apps/old-docs/src/content/docs/components/navigation-menu.mdx +++ b/apps/old-docs/src/content/docs/components/navigation-menu.mdx @@ -6,8 +6,8 @@ description: Shows a collection of navigation links. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/navigation-menu?raw'; @@ -35,9 +35,9 @@ Shows a collection of navigation links.
- **Copy/paste the following code to `~/components/ui/navigation-menu.tsx`:** + **Copy/paste the following code to `@/components/ui/navigation-menu.tsx`:** - + @@ -78,10 +78,10 @@ import { NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, -} from '~/components/ui/navigation-menu'; -import { Text } from '~/components/ui/text'; - import { Sparkles } from '~/lib/icons/Sparkles'; -import { cn } from '~/lib/utils'; +} from '@/components/ui/navigation-menu'; +import { Text } from '@/components/ui/text'; + import { Sparkles } from '@/lib/icons/Sparkles'; +import { cn } from '@/lib/utils'; const components: { title: string; href: string; description: string }[] = [ { diff --git a/apps/old-docs/src/content/docs/components/popover.mdx b/apps/old-docs/src/content/docs/components/popover.mdx index f55571cc..802b109f 100644 --- a/apps/old-docs/src/content/docs/components/popover.mdx +++ b/apps/old-docs/src/content/docs/components/popover.mdx @@ -5,8 +5,8 @@ description: Dynamic content within a portal, activated by a button press. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/popover?raw'; @@ -35,9 +35,9 @@ Dynamic content within a portal, activated by a button press.
- **Copy/paste the following code to `~/components/ui/popover.tsx`:** + **Copy/paste the following code to `@/components/ui/popover.tsx`:** - + @@ -68,9 +68,9 @@ Dynamic content within a portal, activated by a button press. import * as React from 'react'; import { Platform, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; -import { Popover, PopoverContent, PopoverTrigger } from '~/components/ui/popover'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; +import { Text } from '@/components/ui/text'; function Example() { const insets = useSafeAreaInsets(); diff --git a/apps/old-docs/src/content/docs/components/progress.mdx b/apps/old-docs/src/content/docs/components/progress.mdx index 9f7e9d46..ee5f1d12 100644 --- a/apps/old-docs/src/content/docs/components/progress.mdx +++ b/apps/old-docs/src/content/docs/components/progress.mdx @@ -5,8 +5,8 @@ description: Shows an indicator representing the advancement status of a task. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/progress?raw'; @@ -34,9 +34,9 @@ Shows an indicator representing the advancement status of a task.
- **Copy/paste the following code to `~/components/ui/progress.tsx`:** + **Copy/paste the following code to `@/components/ui/progress.tsx`:** - + @@ -44,7 +44,7 @@ Shows an indicator representing the advancement status of a task. ### Usage ```tsx -import { Progress } from '~/components/ui/progress'; +import { Progress } from '@/components/ui/progress'; function Example() { return ; diff --git a/apps/old-docs/src/content/docs/components/radio-group.mdx b/apps/old-docs/src/content/docs/components/radio-group.mdx index 475246ca..8e599e87 100644 --- a/apps/old-docs/src/content/docs/components/radio-group.mdx +++ b/apps/old-docs/src/content/docs/components/radio-group.mdx @@ -6,8 +6,8 @@ description: A group of selectable buttons, commonly referred to as radio button {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/radio-group?raw'; @@ -35,9 +35,9 @@ A group of selectable buttons, commonly referred to as radio buttons, wherein on
- **Copy/paste the following code to `~/components/ui/radio-group.tsx`:** + **Copy/paste the following code to `@/components/ui/radio-group.tsx`:** - + @@ -47,8 +47,8 @@ A group of selectable buttons, commonly referred to as radio buttons, wherein on ```tsx import * as React from 'react'; import { View } from 'react-native'; -import { Label } from '~/components/ui/label'; -import { RadioGroup, RadioGroupItem } from '~/components/ui/radio-group'; +import { Label } from '@/components/ui/label'; +import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; function Example() { const [value, setValue] = React.useState('Comfortable'); diff --git a/apps/old-docs/src/content/docs/components/select.mdx b/apps/old-docs/src/content/docs/components/select.mdx index 0c6043d0..54175935 100644 --- a/apps/old-docs/src/content/docs/components/select.mdx +++ b/apps/old-docs/src/content/docs/components/select.mdx @@ -5,8 +5,8 @@ description: Presents a selection of options for the user to choose from, activa {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/select?raw'; @@ -34,9 +34,9 @@ Presents a selection of options for the user to choose from, activated by a butt
- **Copy/paste the following code to `~/components/ui/select.tsx`:** + **Copy/paste the following code to `@/components/ui/select.tsx`:** - + @@ -73,7 +73,7 @@ import { SelectLabel, SelectTrigger, SelectValue, -} from '~/components/ui/select'; +} from '@/components/ui/select'; function Example() { const insets = useSafeAreaInsets(); diff --git a/apps/old-docs/src/content/docs/components/separator.mdx b/apps/old-docs/src/content/docs/components/separator.mdx index e880839e..259fb7e9 100644 --- a/apps/old-docs/src/content/docs/components/separator.mdx +++ b/apps/old-docs/src/content/docs/components/separator.mdx @@ -6,8 +6,8 @@ description: Creates a visual or semantic distinction between content. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/separator?raw'; @@ -36,9 +36,9 @@ Creates a visual or semantic distinction between content. - **Copy/paste the following code to `~/components/ui/separator.tsx`** + **Copy/paste the following code to `@/components/ui/separator.tsx`** - + @@ -47,8 +47,8 @@ Creates a visual or semantic distinction between content. ```tsx import { View } from 'react-native'; -import { Separator } from '~/components/ui/separator'; -import { H4, P, Small } from '~/components/ui/typography'; +import { Separator } from '@/components/ui/separator'; +import { H4, P, Small } from '@/components/ui/typography'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/skeleton.mdx b/apps/old-docs/src/content/docs/components/skeleton.mdx index 2d5f7fc5..64e3d70c 100644 --- a/apps/old-docs/src/content/docs/components/skeleton.mdx +++ b/apps/old-docs/src/content/docs/components/skeleton.mdx @@ -6,8 +6,8 @@ description: Shows a skeleton component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/skeleton?raw'; @@ -28,9 +28,9 @@ Shows a skeleton component. ``` - **Copy/paste the following code to `~/components/ui/skeleton.tsx`** + **Copy/paste the following code to `@/components/ui/skeleton.tsx`** - + @@ -38,7 +38,7 @@ Shows a skeleton component. ## Usage ```tsx -import { Skeleton } from '~/components/ui/skeleton'; +import { Skeleton } from '@/components/ui/skeleton'; function Example() { return ( diff --git a/apps/old-docs/src/content/docs/components/switch.mdx b/apps/old-docs/src/content/docs/components/switch.mdx index 453db867..4543e988 100644 --- a/apps/old-docs/src/content/docs/components/switch.mdx +++ b/apps/old-docs/src/content/docs/components/switch.mdx @@ -6,8 +6,8 @@ description: A control enabling the user to switch between a checked and uncheck {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/switch?raw'; @@ -35,9 +35,9 @@ A control enabling the user to switch between a checked and unchecked state.
- **Copy/paste the following code to `~/components/ui/switch.tsx`:** + **Copy/paste the following code to `@/components/ui/switch.tsx`:** - + @@ -47,8 +47,8 @@ A control enabling the user to switch between a checked and unchecked state. ```tsx import * as React from 'react'; import { View } from 'react-native'; -import { Label } from '~/components/ui/label'; -import { Switch } from '~/components/ui/switch'; +import { Label } from '@/components/ui/label'; +import { Switch } from '@/components/ui/switch'; function Example() { const [checked, setChecked] = React.useState(false); diff --git a/apps/old-docs/src/content/docs/components/table.mdx b/apps/old-docs/src/content/docs/components/table.mdx index 6e1326f9..61dd9e8a 100644 --- a/apps/old-docs/src/content/docs/components/table.mdx +++ b/apps/old-docs/src/content/docs/components/table.mdx @@ -6,8 +6,8 @@ description: Shows a table component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/table?raw'; @@ -37,9 +37,9 @@ Shows a table component. - **Copy/paste the following code to `~/components/ui/table.tsx`** + **Copy/paste the following code to `@/components/ui/table.tsx`** - + @@ -52,7 +52,7 @@ import { Stack } from 'expo-router'; import * as React from 'react'; import { Alert, ScrollView, View, useWindowDimensions } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Table, TableBody, @@ -61,10 +61,10 @@ import { TableHead, TableHeader, TableRow, -} from '~/components/ui/table'; -import { Text } from '~/components/ui/text'; -import { ChevronDown } from '~/lib/icons/ChevronDown'; -import { cn } from '~/lib/utils'; +} from '@/components/ui/table'; +import { Text } from '@/components/ui/text'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { cn } from '@/lib/utils'; const INVOICES = [ { diff --git a/apps/old-docs/src/content/docs/components/tabs.mdx b/apps/old-docs/src/content/docs/components/tabs.mdx index 344ba43b..74a0311f 100644 --- a/apps/old-docs/src/content/docs/components/tabs.mdx +++ b/apps/old-docs/src/content/docs/components/tabs.mdx @@ -6,8 +6,8 @@ description: A collection of layered content sections, referred to as tab panels {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/tabs?raw'; @@ -36,9 +36,9 @@ A collection of layered content sections, referred to as tab panels, displayed i
- **Copy/paste the following code to `~/components/ui/tabs.tsx`:** + **Copy/paste the following code to `@/components/ui/tabs.tsx`:** - + @@ -48,7 +48,7 @@ A collection of layered content sections, referred to as tab panels, displayed i ```tsx import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Card, CardContent, @@ -56,11 +56,11 @@ import { CardFooter, CardHeader, CardTitle, -} from '~/components/ui/card'; -import { Input } from '~/components/ui/input'; -import { Label } from '~/components/ui/label'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '~/components/ui/tabs'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; +import { Text } from '@/components/ui/text'; export default function TabsScreen() { const [value, setValue] = React.useState('account'); diff --git a/apps/old-docs/src/content/docs/components/text.mdx b/apps/old-docs/src/content/docs/components/text.mdx index fbbf94f0..ef8ebb8b 100644 --- a/apps/old-docs/src/content/docs/components/text.mdx +++ b/apps/old-docs/src/content/docs/components/text.mdx @@ -6,8 +6,8 @@ description: Accessible styled texts with an inheritance system. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedTextCode from '@rnr/reusables/components/ui/text?raw'; @@ -39,9 +39,9 @@ Styled text component and inheritance system. Before copy/pasting, add the slot primitive and types primitive to your project. - **Copy/paste the following code to `~/components/ui/text.tsx`:** + **Copy/paste the following code to `@/components/ui/text.tsx`:** - + @@ -81,7 +81,7 @@ The algorithm used to determine which styles to apply is based on the following ```tsx - import { Text } from '~/components/ui/text'; + import { Text } from '@/components/ui/text'; import { Parent } from './Parent'; import { OtherParent } from './OtherParent'; @@ -107,7 +107,7 @@ The algorithm used to determine which styles to apply is based on the following ```tsx - import { TextClassContext } from '~/components/ui/text'; + import { TextClassContext } from '@/components/ui/text'; export function Parent({ children }) { return ( @@ -122,7 +122,7 @@ The algorithm used to determine which styles to apply is based on the following ```tsx - import { TextClassContext } from '~/components/ui/text'; + import { TextClassContext } from '@/components/ui/text'; export function OtherParent({ children }) { return ( diff --git a/apps/old-docs/src/content/docs/components/textarea.mdx b/apps/old-docs/src/content/docs/components/textarea.mdx index e842864a..1295d8fe 100644 --- a/apps/old-docs/src/content/docs/components/textarea.mdx +++ b/apps/old-docs/src/content/docs/components/textarea.mdx @@ -6,8 +6,8 @@ description: Shows an textarea component. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/textarea?raw'; @@ -28,9 +28,9 @@ Shows an textarea component. ``` - **Copy/paste the following code to `~/components/ui/textarea.tsx`** + **Copy/paste the following code to `@/components/ui/textarea.tsx`** - + @@ -38,8 +38,8 @@ Shows an textarea component. ## Usage ```tsx -import { Textarea } from '~/components/ui/textarea'; -import { Text } from '~/components/ui/text'; +import { Textarea } from '@/components/ui/textarea'; +import { Text } from '@/components/ui/text'; function Example() { const [value, setValue] = React.useState(''); diff --git a/apps/old-docs/src/content/docs/components/toggle-group.mdx b/apps/old-docs/src/content/docs/components/toggle-group.mdx index af823fa9..b99c052b 100644 --- a/apps/old-docs/src/content/docs/components/toggle-group.mdx +++ b/apps/old-docs/src/content/docs/components/toggle-group.mdx @@ -6,8 +6,8 @@ description: A collection of buttons with true or false states, which can be act {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/toggle-group?raw'; @@ -36,9 +36,9 @@ A collection of buttons with true or false states, which can be activated or dea
- **Copy/paste the following code to `~/components/ui/toggle-group.tsx`:** + **Copy/paste the following code to `@/components/ui/toggle-group.tsx`:** - + @@ -48,10 +48,10 @@ A collection of buttons with true or false states, which can be activated or dea ```tsx import * as React from 'react'; import { View } from 'react-native'; -import { ToggleGroup, ToggleGroupIcon, ToggleGroupItem } from '~/components/ui/toggle-group'; -import { Bold } from '~/lib/icons/Bold'; -import { Italic } from '~/lib/icons/Italic'; -import { Underline } from '~/lib/icons/Underline'; +import { ToggleGroup, ToggleGroupIcon, ToggleGroupItem } from '@/components/ui/toggle-group'; +import { Bold } from '@/lib/icons/Bold'; +import { Italic } from '@/lib/icons/Italic'; +import { Underline } from '@/lib/icons/Underline'; function Example() { const [value, setValue] = React.useState([]); diff --git a/apps/old-docs/src/content/docs/components/toggle.mdx b/apps/old-docs/src/content/docs/components/toggle.mdx index 24dec8c9..f9d38594 100644 --- a/apps/old-docs/src/content/docs/components/toggle.mdx +++ b/apps/old-docs/src/content/docs/components/toggle.mdx @@ -6,8 +6,8 @@ description: A button with a true or false state, which can be activated or deac {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/toggle?raw'; @@ -36,9 +36,9 @@ A button with a true or false state, which can be activated or deactivated by to
- **Copy/paste the following code to `~/components/ui/toggle.tsx`:** + **Copy/paste the following code to `@/components/ui/toggle.tsx`:** - + @@ -48,8 +48,8 @@ A button with a true or false state, which can be activated or deactivated by to ```tsx import * as React from 'react'; import { View } from 'react-native'; -import { Toggle, ToggleIcon } from '~/components/ui/toggle'; -import { Bold } from '~/lib/icons/Bold'; +import { Toggle, ToggleIcon } from '@/components/ui/toggle'; +import { Bold } from '@/lib/icons/Bold'; function Example() { const [pressed, setPressed] = React.useState(false); diff --git a/apps/old-docs/src/content/docs/components/tooltip.mdx b/apps/old-docs/src/content/docs/components/tooltip.mdx index 1706cbad..aafac77a 100644 --- a/apps/old-docs/src/content/docs/components/tooltip.mdx +++ b/apps/old-docs/src/content/docs/components/tooltip.mdx @@ -5,8 +5,8 @@ description: A pop-up presenting relevant information pertaining to an element w {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/components/ui/tooltip?raw'; @@ -35,9 +35,9 @@ A pop-up presenting relevant information pertaining to an element whenever the e
- **Copy/paste the following code to `~/components/ui/tooltip.tsx`:** + **Copy/paste the following code to `@/components/ui/tooltip.tsx`:** - + @@ -68,9 +68,9 @@ A pop-up presenting relevant information pertaining to an element whenever the e import * as React from 'react'; import { Platform, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; -import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; +import { Text } from '@/components/ui/text'; function Example() { const insets = useSafeAreaInsets(); diff --git a/apps/old-docs/src/content/docs/components/typography.mdx b/apps/old-docs/src/content/docs/components/typography.mdx index 4b6414a4..066bf82b 100644 --- a/apps/old-docs/src/content/docs/components/typography.mdx +++ b/apps/old-docs/src/content/docs/components/typography.mdx @@ -6,8 +6,8 @@ description: Accessible styled typography components with an inheritance system. {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Tabs, TabItem } from '@astrojs/starlight/components'; import importedTypographyCode from '@rnr/reusables/components/ui/typography?raw'; @@ -51,9 +51,9 @@ Semantic and styled typography components. Before copy/pasting, add the slot primitive and
types primitive to your project. - **Copy/paste the following code to `~/components/ui/typography.tsx`:** + **Copy/paste the following code to `@/components/ui/typography.tsx`:** - + diff --git a/apps/old-docs/src/content/docs/extras/android-navigation-bar.mdx b/apps/old-docs/src/content/docs/extras/android-navigation-bar.mdx index aced3f9d..8a4a7974 100644 --- a/apps/old-docs/src/content/docs/extras/android-navigation-bar.mdx +++ b/apps/old-docs/src/content/docs/extras/android-navigation-bar.mdx @@ -6,8 +6,8 @@ description: A function to set the android navigation bar's content color based {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside, Card } from '@astrojs/starlight/components'; @@ -26,14 +26,14 @@ A function to set the android navigation bar's content color based on the theme. npx expo install expo-navigation-bar ``` -**Copy/paste the following code to `~/lib/android-navigation-bar.tsx`**: +**Copy/paste the following code to `@/lib/android-navigation-bar.tsx`**: +} lang="tsx" title="@/lib/android-navigation-bar.tsx" /> **Whenever you set the color scheme, call the function to update the navigation bar** diff --git a/apps/old-docs/src/content/docs/extras/keyboard.mdx b/apps/old-docs/src/content/docs/extras/keyboard.mdx index 89671642..aad1f0e8 100644 --- a/apps/old-docs/src/content/docs/extras/keyboard.mdx +++ b/apps/old-docs/src/content/docs/extras/keyboard.mdx @@ -6,7 +6,7 @@ description: A hook for observing the state of the keyboard {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; +import Code from '@docs/components/Code.astro'; import { Aside } from '@astrojs/starlight/components'; import importedCode from '@rnr/reusables/lib/keyboard?raw'; @@ -14,17 +14,17 @@ A hook for observing the state of the keyboard ### Installation -**Copy/paste the following code to `~/lib/keyboard.tsx`**: +**Copy/paste the following code to `@/lib/keyboard.tsx`**: - + ### Usage ```tsx import * as React from 'react'; -import { Input } from '~/components/ui/input'; -import { useKeyboard } from '~/lib/keyboard'; +import { Input } from '@/components/ui/input'; +import { useKeyboard } from '@/lib/keyboard'; function Example() { const { isKeyboardVisible, keyboardHeight, dismissKeyboard } = useKeyboard(); diff --git a/apps/old-docs/src/content/docs/extras/material-top-tabs.mdx b/apps/old-docs/src/content/docs/extras/material-top-tabs.mdx index 2a29fa47..6bd1927a 100644 --- a/apps/old-docs/src/content/docs/extras/material-top-tabs.mdx +++ b/apps/old-docs/src/content/docs/extras/material-top-tabs.mdx @@ -6,8 +6,8 @@ description: A navigator that lets you switch between different routes by tappin {/* prettier-ignore-start */} {/* prettier-ignore-end */} -import Code from '@/components/Code.astro'; -import { LinkButton } from '@/components/react/LinkButton'; +import Code from '@docs/components/Code.astro'; +import { LinkButton } from '@docs/components/react/LinkButton'; import { Aside } from '@astrojs/starlight/components'; diff --git a/apps/old-docs/src/content/docs/getting-started/common-patterns.mdx b/apps/old-docs/src/content/docs/getting-started/common-patterns.mdx index 03fb1bfc..640c8c50 100644 --- a/apps/old-docs/src/content/docs/getting-started/common-patterns.mdx +++ b/apps/old-docs/src/content/docs/getting-started/common-patterns.mdx @@ -25,7 +25,7 @@ Most primitive components have an `asChild` prop. When it is set to `true`, it p Using the `asChild` prop to conditionally render a custom `Button` as a `Pressable` or a `Slot.Pressable`. - - Add the `iconWithClassName` function in the `~/lib/icons/iconWithClassName.ts` file. + Add the `iconWithClassName` function in the `@/lib/icons/iconWithClassName.ts` file. ```tsx import type { LucideIcon } from 'lucide-react-native'; @@ -55,11 +55,11 @@ import { Aside, Code, Steps } from '@astrojs/starlight/components'; `color` or `opacity` props via the `className` prop. -### Create a file for each icon in `~/lib/icons/` +### Create a file for each icon in `@/lib/icons/` Wrap your icon components with `iconWithClassName` to add a class name to the icon. - **First**, create a new file in the `~/lib/icons/` directory with the name of the [LucideIcon](https://lucide.dev/icons/). + **First**, create a new file in the `@/lib/icons/` directory with the name of the [LucideIcon](https://lucide.dev/icons/). **Then**, in each file: @@ -81,7 +81,7 @@ import { Aside, Code, Steps } from '@astrojs/starlight/components'; **Sun** - @@ -152,7 +152,7 @@ import importedTwNativeCondig from '@/code-samples/tw-native-config.js?raw'; "compilerOptions": { "baseUrl": ".", "paths": { - "~/*": ["*"] + "@docs/*": ["*"] } } } @@ -163,7 +163,7 @@ import importedTwNativeCondig from '@/code-samples/tw-native-config.js?raw'; 4. Add a cn helper - Add the following code to the `~/lib/utils.ts` file: + Add the following code to the `@/lib/utils.ts` file: ```ts import { clsx, type ClassValue } from 'clsx'; @@ -180,7 +180,7 @@ import importedTwNativeCondig from '@/code-samples/tw-native-config.js?raw'; - Add the following code to the `~/lib/useColorScheme.tsx` file: + Add the following code to the `@/lib/useColorScheme.tsx` file: ```tsx import { useColorScheme as useNativewindColorScheme } from 'nativewind'; @@ -197,11 +197,11 @@ import importedTwNativeCondig from '@/code-samples/tw-native-config.js?raw'; ``` - 6. Add the following css variables to `~/global.css` file. + 6. Add the following css variables to `@/global.css` file. - 7. Add the following code in the `~/lib/constants.ts` file for the navigation theme colors: + 7. Add the following code in the `@/lib/constants.ts` file for the navigation theme colors: - If you changed the colors in the `~/global.css` file, update the `~/lib/constants.ts` file with the new colors. + If you changed the colors in the `@/global.css` file, update the `@/lib/constants.ts` file with the new colors. Each color has a commented css variable name next to it. @@ -331,15 +331,15 @@ import importedTwNativeCondig from '@/code-samples/tw-native-config.js?raw'; - components/ diff --git a/apps/old-docs/src/lib/utils.ts b/apps/old-docs/src/lib/utils.ts index 324587a4..2ab48ea5 100644 --- a/apps/old-docs/src/lib/utils.ts +++ b/apps/old-docs/src/lib/utils.ts @@ -7,8 +7,8 @@ export function cn(...inputs: ClassValue[]) { export function fixImports(rawfile: string) { return rawfile - .replace('./typography', '~/components/ui/typography') - .replace('./text', '~/components/ui/text') - .replaceAll('../../components', '~/components') - .replaceAll('../../lib', '~/lib'); + .replace('./typography', '@/components/ui/typography') + .replace('./text', '@/components/ui/text') + .replaceAll('../../components', '@/components') + .replaceAll('../../lib', '@/lib'); } diff --git a/apps/old-docs/tsconfig.json b/apps/old-docs/tsconfig.json index 6fb01797..89bbfd88 100644 --- a/apps/old-docs/tsconfig.json +++ b/apps/old-docs/tsconfig.json @@ -4,8 +4,10 @@ "jsx": "react-jsx", "baseUrl": ".", "paths": { - "@/*": ["./src/*"] + "@old-docs/*": [ + "./src/*" + ] }, "jsxImportSource": "react" } -} +} \ No newline at end of file diff --git a/apps/showcase/app/(tabs)/_layout.tsx b/apps/showcase/app/(tabs)/_layout.tsx index b6ed3c2b..c5c1abff 100644 --- a/apps/showcase/app/(tabs)/_layout.tsx +++ b/apps/showcase/app/(tabs)/_layout.tsx @@ -1,8 +1,8 @@ import { Tabs } from 'expo-router'; -import { ModalToggle } from '~/components/ModalToggle'; -import { ThemeToggle } from '~/components/ThemeToggle'; -import { LayoutPanelLeft } from '~/lib/icons/LayoutPanelLeft'; -import { MenuSquare } from '~/lib/icons/MenuSquare'; +import { ModalToggle } from '@showcase/components/ModalToggle'; +import { ThemeToggle } from '@showcase/components/ThemeToggle'; +import { LayoutPanelLeft } from '@/lib/icons/LayoutPanelLeft'; +import { MenuSquare } from '@/lib/icons/MenuSquare'; export default function TabsLayout() { return ( diff --git a/apps/showcase/app/(tabs)/components/index.tsx b/apps/showcase/app/(tabs)/components/index.tsx index ace234df..1946c0d5 100644 --- a/apps/showcase/app/(tabs)/components/index.tsx +++ b/apps/showcase/app/(tabs)/components/index.tsx @@ -3,12 +3,12 @@ import { FlashList } from '@shopify/flash-list'; import { Link } from 'expo-router'; import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '~/components/ui/button'; -import { Input } from '~/components/ui/input'; -import { Text } from '~/components/ui/text'; -import { COMPONENTS } from '~/lib/constants'; -import { ChevronRight } from '~/lib/icons/ChevronRight'; -import { cn } from '~/lib/utils'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; +import { COMPONENTS } from '@showcase/lib/constants'; +import { ChevronRight } from '@/lib/icons/ChevronRight'; +import { cn } from '@/lib/utils'; export default function ComponentsScreen() { const [search, setSearch] = React.useState(''); diff --git a/apps/showcase/app/(tabs)/components/primitives.tsx b/apps/showcase/app/(tabs)/components/primitives.tsx index 119f3f3f..c51706d9 100644 --- a/apps/showcase/app/(tabs)/components/primitives.tsx +++ b/apps/showcase/app/(tabs)/components/primitives.tsx @@ -3,12 +3,12 @@ import { FlashList } from '@shopify/flash-list'; import { Link } from 'expo-router'; import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '~/components/ui/button'; -import { Input } from '~/components/ui/input'; -import { Text } from '~/components/ui/text'; -import { PRIMITIVES } from '~/lib/constants'; -import { ExternalLink } from '~/lib/icons/ExternalLink'; -import { cn } from '~/lib/utils'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; +import { PRIMITIVES } from '@showcase/lib/constants'; +import { ExternalLink } from '@/lib/icons/ExternalLink'; +import { cn } from '@/lib/utils'; export default function PrimitivesScreen() { const [search, setSearch] = React.useState(''); @@ -55,15 +55,3 @@ export default function PrimitivesScreen() { ); } - -function toOptions(name: string) { - const title = name - .split('-') - .map(function (str: string) { - return str.replace(/\b\w/g, function (char) { - return char.toUpperCase(); - }); - }) - .join(' '); - return title; -} diff --git a/apps/showcase/app/(tabs)/index.tsx b/apps/showcase/app/(tabs)/index.tsx index 9cc4bec1..f484fe08 100644 --- a/apps/showcase/app/(tabs)/index.tsx +++ b/apps/showcase/app/(tabs)/index.tsx @@ -10,16 +10,16 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '~/components/ui/alert-dialog'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Button } from '~/components/ui/button'; -import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '~/components/ui/card'; +} from '@/components/ui/alert-dialog'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger, -} from '~/components/ui/context-menu'; +} from '@/components/ui/context-menu'; import { Dialog, DialogClose, @@ -29,7 +29,7 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '~/components/ui/dialog'; +} from '@/components/ui/dialog'; import { DropdownMenu, DropdownMenuContent, @@ -38,15 +38,15 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, -} from '~/components/ui/dropdown-menu'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; -import { Text } from '~/components/ui/text'; -import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; -import { Muted } from '~/components/ui/typography'; -import { CalendarDays } from '~/lib/icons/CalendarDays'; -import { ChevronDown } from '~/lib/icons/ChevronDown'; -import { Info } from '~/lib/icons/Info'; -import { cn } from '~/lib/utils'; +} from '@/components/ui/dropdown-menu'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Text } from '@/components/ui/text'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; +import { Muted } from '@/components/ui/typography'; +import { CalendarDays } from '@/lib/icons/CalendarDays'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { Info } from '@/lib/icons/Info'; +import { cn } from '@/lib/utils'; export default function ExampleScreen() { return ( diff --git a/apps/showcase/app/+not-found.tsx b/apps/showcase/app/+not-found.tsx index 6c7bfe76..aed2e3a1 100644 --- a/apps/showcase/app/+not-found.tsx +++ b/apps/showcase/app/+not-found.tsx @@ -1,6 +1,6 @@ import { Link, Stack } from 'expo-router'; import { View } from 'react-native'; -import { Text } from '~/components/ui/text'; +import { Text } from '@/components/ui/text'; export default function NotFoundScreen() { return ( diff --git a/apps/showcase/app/_layout.tsx b/apps/showcase/app/_layout.tsx index b9979e22..1b8824d4 100644 --- a/apps/showcase/app/_layout.tsx +++ b/apps/showcase/app/_layout.tsx @@ -7,11 +7,11 @@ import { StatusBar } from 'expo-status-bar'; import * as React from 'react'; import { Appearance, Platform } from 'react-native'; import { GestureHandlerRootView } from 'react-native-gesture-handler'; -import { ThemeToggle } from '~/components/ThemeToggle'; -import { Text } from '~/components/ui/text'; -import { setAndroidNavigationBar } from '~/lib/android-navigation-bar'; -import { NAV_THEME } from '~/lib/constants'; -import { useColorScheme } from '~/lib/useColorScheme'; +import { ThemeToggle } from '@showcase/components/ThemeToggle'; +import { Text } from '@/components/ui/text'; +import { setAndroidNavigationBar } from '@showcase/lib/android-navigation-bar'; +import { NAV_THEME } from '@/lib/constants'; +import { useColorScheme } from '@/lib/useColorScheme'; const { ToastProvider } = DeprecatedUi; diff --git a/apps/showcase/app/accordion.tsx b/apps/showcase/app/accordion.tsx index b40d288b..b46e88e2 100644 --- a/apps/showcase/app/accordion.tsx +++ b/apps/showcase/app/accordion.tsx @@ -4,8 +4,8 @@ import { AccordionContent, AccordionItem, AccordionTrigger, -} from '~/components/ui/accordion'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/accordion'; +import { Text } from '@/components/ui/text'; export default function AccordionScreen() { return ( diff --git a/apps/showcase/app/alert-dialog.tsx b/apps/showcase/app/alert-dialog.tsx index 46be82fa..bb2b6669 100644 --- a/apps/showcase/app/alert-dialog.tsx +++ b/apps/showcase/app/alert-dialog.tsx @@ -9,9 +9,9 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '~/components/ui/alert-dialog'; -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/alert-dialog'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; export default function AlertDialogScreen() { return ( diff --git a/apps/showcase/app/alert.tsx b/apps/showcase/app/alert.tsx index 6ea58e4b..aba901bb 100644 --- a/apps/showcase/app/alert.tsx +++ b/apps/showcase/app/alert.tsx @@ -1,7 +1,7 @@ import { View } from 'react-native'; -import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; -import { AlertTriangle } from '~/lib/icons/AlertTriangle'; -import { Terminal } from '~/lib/icons/Terminal'; +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { AlertTriangle } from '@/lib/icons/AlertTriangle'; +import { Terminal } from '@/lib/icons/Terminal'; export default function AlertScreen() { return ( diff --git a/apps/showcase/app/aspect-ratio.tsx b/apps/showcase/app/aspect-ratio.tsx index a7e0c01f..b18ff16e 100644 --- a/apps/showcase/app/aspect-ratio.tsx +++ b/apps/showcase/app/aspect-ratio.tsx @@ -1,6 +1,6 @@ import { View } from 'react-native'; -import { AspectRatio } from '~/components/ui/aspect-ratio'; -import { H1 } from '~/components/ui/typography'; +import { AspectRatio } from '@/components/ui/aspect-ratio'; +import { H1 } from '@/components/ui/typography'; export default function AspectRatioScreen() { return ( diff --git a/apps/showcase/app/avatar.tsx b/apps/showcase/app/avatar.tsx index b223be7e..ebf71797 100644 --- a/apps/showcase/app/avatar.tsx +++ b/apps/showcase/app/avatar.tsx @@ -1,6 +1,6 @@ import { View } from 'react-native'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Text } from '~/components/ui/text'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Text } from '@/components/ui/text'; const GITHUB_AVATAR_URI = 'https://github.com/mrzachnugent.png'; diff --git a/apps/showcase/app/badge.tsx b/apps/showcase/app/badge.tsx index 93be10f9..cf8e22e3 100644 --- a/apps/showcase/app/badge.tsx +++ b/apps/showcase/app/badge.tsx @@ -1,6 +1,6 @@ import { View } from 'react-native'; -import { Badge } from '~/components/ui/badge'; -import { Text } from '~/components/ui/text'; +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; export default function BadgeScreen() { return ( diff --git a/apps/showcase/app/bottom-sheet.tsx b/apps/showcase/app/bottom-sheet.tsx index 9d88e535..ffbc40d9 100644 --- a/apps/showcase/app/bottom-sheet.tsx +++ b/apps/showcase/app/bottom-sheet.tsx @@ -1,10 +1,10 @@ import { DeprecatedUi } from '@rnr/reusables'; import * as React from 'react'; import { Platform, View } from 'react-native'; -import { Button } from '~/components/ui/button'; -import { Label } from '~/components/ui/label'; -import { Text } from '~/components/ui/text'; -import { cn } from '~/lib/utils'; +import { Button } from '@/components/ui/button'; +import { Label } from '@/components/ui/label'; +import { Text } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; const { BottomSheet, diff --git a/apps/showcase/app/button.tsx b/apps/showcase/app/button.tsx index 5cf26bbc..269f5c5e 100644 --- a/apps/showcase/app/button.tsx +++ b/apps/showcase/app/button.tsx @@ -1,6 +1,6 @@ import { View } from 'react-native'; -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; export default function ButtonScreen() { return ( diff --git a/apps/showcase/app/calendar.tsx b/apps/showcase/app/calendar.tsx index 204dff39..dd5c9d79 100644 --- a/apps/showcase/app/calendar.tsx +++ b/apps/showcase/app/calendar.tsx @@ -1,7 +1,7 @@ import { DeprecatedUi } from '@rnr/reusables'; import * as React from 'react'; import { ScrollView } from 'react-native'; -import { useColorScheme } from '~/lib/useColorScheme'; +import { useColorScheme } from '@/lib/useColorScheme'; const { Calendar, LocaleConfig } = DeprecatedUi; diff --git a/apps/showcase/app/card.tsx b/apps/showcase/app/card.tsx index bab9cb4c..d02adf29 100644 --- a/apps/showcase/app/card.tsx +++ b/apps/showcase/app/card.tsx @@ -6,8 +6,8 @@ import { CardFooter, CardHeader, CardTitle, -} from '~/components/ui/card'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/card'; +import { Text } from '@/components/ui/text'; export default function CardScreen() { return ( diff --git a/apps/showcase/app/checkbox.tsx b/apps/showcase/app/checkbox.tsx index 26fc157a..7c6cc531 100644 --- a/apps/showcase/app/checkbox.tsx +++ b/apps/showcase/app/checkbox.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Checkbox } from '~/components/ui/checkbox'; -import { Label } from '~/components/ui/label'; +import { Checkbox } from '@/components/ui/checkbox'; +import { Label } from '@/components/ui/label'; export default function CheckboxScreen() { const [checked, setChecked] = React.useState(false); diff --git a/apps/showcase/app/collapsible.tsx b/apps/showcase/app/collapsible.tsx index fb184440..8e91437c 100644 --- a/apps/showcase/app/collapsible.tsx +++ b/apps/showcase/app/collapsible.tsx @@ -1,10 +1,10 @@ import * as React from 'react'; import { Platform, Text, View } from 'react-native'; import Animated, { FadeInDown, LinearTransition } from 'react-native-reanimated'; -import { ChevronsDownUp } from '~/lib/icons/ChevronsDownUp'; -import { ChevronsUpDown } from '~/lib/icons/ChevronsUpDown'; -import { Button } from '~/components/ui/button'; -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '~/components/ui/collapsible'; +import { ChevronsDownUp } from '@/lib/icons/ChevronsDownUp'; +import { ChevronsUpDown } from '@/lib/icons/ChevronsUpDown'; +import { Button } from '@/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; export default function CollapsibleScreen() { const [open, setOpen] = React.useState(false); diff --git a/apps/showcase/app/command.tsx b/apps/showcase/app/command.tsx index 017fcdaf..147a565f 100644 --- a/apps/showcase/app/command.tsx +++ b/apps/showcase/app/command.tsx @@ -1,21 +1,21 @@ import { DeprecatedUi } from '@rnr/reusables'; import * as React from 'react'; import { Alert, Pressable, Text, View } from 'react-native'; -import { Activity } from '~/lib/icons/Activity'; -import { Airplay } from '~/lib/icons/Airplay'; -import { AlarmClockIcon } from '~/lib/icons/AlarmClockIcon'; -import { AlertCircle } from '~/lib/icons/AlertCircle'; -import { AlignRight } from '~/lib/icons/AlignRight'; -import { Baby } from '~/lib/icons/Baby'; -import { BadgeAlert } from '~/lib/icons/BadgeAlert'; -import { Calendar } from '~/lib/icons/Calendar'; -import { Database } from '~/lib/icons/Database'; -import { Ear } from '~/lib/icons/Ear'; -import { Fan } from '~/lib/icons/Fan'; -import { GalleryHorizontal } from '~/lib/icons/GalleryHorizontal'; -import { Lamp } from '~/lib/icons/Lamp'; -import { Table } from '~/lib/icons/Table'; -import { cn } from '~/lib/utils'; +import { Activity } from '@/lib/icons/Activity'; +import { Airplay } from '@/lib/icons/Airplay'; +import { AlarmClockIcon } from '@/lib/icons/AlarmClockIcon'; +import { AlertCircle } from '@/lib/icons/AlertCircle'; +import { AlignRight } from '@/lib/icons/AlignRight'; +import { Baby } from '@/lib/icons/Baby'; +import { BadgeAlert } from '@/lib/icons/BadgeAlert'; +import { Calendar } from '@/lib/icons/Calendar'; +import { Database } from '@/lib/icons/Database'; +import { Ear } from '@/lib/icons/Ear'; +import { Fan } from '@/lib/icons/Fan'; +import { GalleryHorizontal } from '@/lib/icons/GalleryHorizontal'; +import { Lamp } from '@/lib/icons/Lamp'; +import { Table } from '@/lib/icons/Table'; +import { cn } from '@/lib/utils'; const { buttonTextVariants, diff --git a/apps/showcase/app/context-menu.tsx b/apps/showcase/app/context-menu.tsx index f9b5d563..f03bd091 100644 --- a/apps/showcase/app/context-menu.tsx +++ b/apps/showcase/app/context-menu.tsx @@ -16,8 +16,8 @@ import { ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, -} from '~/components/ui/context-menu'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/context-menu'; +import { Text } from '@/components/ui/text'; export default function ContextScreen() { const triggerRef = React.useRef>(null); diff --git a/apps/showcase/app/data-table.tsx b/apps/showcase/app/data-table.tsx index cb6a32dd..09e872ba 100644 --- a/apps/showcase/app/data-table.tsx +++ b/apps/showcase/app/data-table.tsx @@ -4,14 +4,14 @@ import * as React from 'react'; import { Dimensions } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import Toast from 'react-native-toast-message'; -import { Button } from '~/components/ui/button'; -import { DataTable } from '~/components/ui/data-table'; -import { Skeleton } from '~/components/ui/skeleton'; -import { TableCell, TableRow } from '~/components/ui/table'; -import { Text } from '~/components/ui/text'; -import { ArrowDown } from '~/lib/icons/ArrowDown'; -import { ArrowUp } from '~/lib/icons/ArrowUp'; -import { Info } from '~/lib/icons/Info'; +import { Button } from '@/components/ui/button'; +import { DataTable } from '@/components/ui/data-table'; +import { Skeleton } from '@/components/ui/skeleton'; +import { TableCell, TableRow } from '@/components/ui/table'; +import { Text } from '@/components/ui/text'; +import { ArrowDown } from '@/lib/icons/ArrowDown'; +import { ArrowUp } from '@/lib/icons/ArrowUp'; +import { Info } from '@/lib/icons/Info'; const { width, height } = Dimensions.get('screen'); diff --git a/apps/showcase/app/date-picker.tsx b/apps/showcase/app/date-picker.tsx index 8db5d5b2..ef8fe2ce 100644 --- a/apps/showcase/app/date-picker.tsx +++ b/apps/showcase/app/date-picker.tsx @@ -1,8 +1,8 @@ import { DeprecatedUi } from '@rnr/reusables'; import * as React from 'react'; import { Text, View } from 'react-native'; -import { Calendar as CalendarIcon } from '~/lib/icons/Calendar'; -import { cn } from '~/lib/utils'; +import { Calendar as CalendarIcon } from '@/lib/icons/Calendar'; +import { cn } from '@/lib/utils'; const { BottomSheet, diff --git a/apps/showcase/app/dialog.tsx b/apps/showcase/app/dialog.tsx index b48ae521..e5649c85 100644 --- a/apps/showcase/app/dialog.tsx +++ b/apps/showcase/app/dialog.tsx @@ -1,5 +1,5 @@ import { ScrollView } from 'react-native'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Dialog, DialogClose, @@ -9,8 +9,8 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '~/components/ui/dialog'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/dialog'; +import { Text } from '@/components/ui/text'; export default function DialogScreen() { return ( diff --git a/apps/showcase/app/dropdown-menu.tsx b/apps/showcase/app/dropdown-menu.tsx index 199264be..30be0b62 100644 --- a/apps/showcase/app/dropdown-menu.tsx +++ b/apps/showcase/app/dropdown-menu.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import { Pressable, View } from 'react-native'; import Animated, { FadeIn } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -15,19 +15,19 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from '~/components/ui/dropdown-menu'; -import { Text } from '~/components/ui/text'; -import { Cloud } from '~/lib/icons/Cloud'; -import { Github } from '~/lib/icons/Github'; -import { LifeBuoy } from '~/lib/icons/LifeBuoy'; -import { LogOut } from '~/lib/icons/LogOut'; -import { Mail } from '~/lib/icons/Mail'; -import { MessageSquare } from '~/lib/icons/MessageSquare'; -import { Plus } from '~/lib/icons/Plus'; -import { PlusCircle } from '~/lib/icons/PlusCircle'; -import { User } from '~/lib/icons/User'; -import { UserPlus } from '~/lib/icons/UserPlus'; -import { Users } from '~/lib/icons/Users'; +} from '@/components/ui/dropdown-menu'; +import { Text } from '@/components/ui/text'; +import { Cloud } from '@/lib/icons/Cloud'; +import { Github } from '@/lib/icons/Github'; +import { LifeBuoy } from '@/lib/icons/LifeBuoy'; +import { LogOut } from '@/lib/icons/LogOut'; +import { Mail } from '@/lib/icons/Mail'; +import { MessageSquare } from '@/lib/icons/MessageSquare'; +import { Plus } from '@/lib/icons/Plus'; +import { PlusCircle } from '@/lib/icons/PlusCircle'; +import { User } from '@/lib/icons/User'; +import { UserPlus } from '@/lib/icons/UserPlus'; +import { Users } from '@/lib/icons/Users'; export default function DropdownMenuScreen() { const triggerRef = React.useRef>(null); diff --git a/apps/showcase/app/form.tsx b/apps/showcase/app/form.tsx index 66d34706..edb7b4b6 100644 --- a/apps/showcase/app/form.tsx +++ b/apps/showcase/app/form.tsx @@ -4,7 +4,7 @@ import { useForm } from 'react-hook-form'; import { Alert, ScrollView, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import * as z from 'zod'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Form, FormCheckbox, @@ -16,18 +16,18 @@ import { FormSelect, FormSwitch, FormTextarea, -} from '~/components/ui/form'; -import { Label } from '~/components/ui/label'; -import { RadioGroupItem } from '~/components/ui/radio-group'; +} from '@/components/ui/form'; +import { Label } from '@/components/ui/label'; +import { RadioGroupItem } from '@/components/ui/radio-group'; import { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, -} from '~/components/ui/select'; -import { Text } from '~/components/ui/text'; -import { cn } from '~/lib/utils'; +} from '@/components/ui/select'; +import { Text } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; const frameworks = [ { diff --git a/apps/showcase/app/hover-card.tsx b/apps/showcase/app/hover-card.tsx index 8e33c853..35257786 100644 --- a/apps/showcase/app/hover-card.tsx +++ b/apps/showcase/app/hover-card.tsx @@ -1,11 +1,11 @@ import * as React from 'react'; import { Pressable, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Button } from '~/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; -import { Text } from '~/components/ui/text'; -import { CalendarDays } from '~/lib/icons/CalendarDays'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Text } from '@/components/ui/text'; +import { CalendarDays } from '@/lib/icons/CalendarDays'; export default function HoverCardScreen() { const triggerRef = React.useRef>(null); diff --git a/apps/showcase/app/input.tsx b/apps/showcase/app/input.tsx index 47e2eeb9..9f8c4d8f 100644 --- a/apps/showcase/app/input.tsx +++ b/apps/showcase/app/input.tsx @@ -1,10 +1,10 @@ import * as React from 'react'; import { Platform, ScrollView, TextInput, View } from 'react-native'; import Animated, { FadeInDown, FadeOut } from 'react-native-reanimated'; -import { Input } from '~/components/ui/input'; -import { Label } from '~/components/ui/label'; -import { Text } from '~/components/ui/text'; -import { cn } from '~/lib/utils'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Text } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; export default function InputScreen() { const inputRef = React.useRef(null); diff --git a/apps/showcase/app/label/index.tsx b/apps/showcase/app/label/index.tsx index 0ec39d69..baa2df21 100644 --- a/apps/showcase/app/label/index.tsx +++ b/apps/showcase/app/label/index.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Label } from '~/components/ui/label'; +import { Label } from '@/components/ui/label'; export default function LabelScreen() { return ( diff --git a/apps/showcase/app/material-top-tabs/green.tsx b/apps/showcase/app/material-top-tabs/green.tsx index 16f236d2..d519bf6d 100644 --- a/apps/showcase/app/material-top-tabs/green.tsx +++ b/apps/showcase/app/material-top-tabs/green.tsx @@ -1,7 +1,7 @@ import { Link } from 'expo-router'; import { View } from 'react-native'; -import { Text } from '~/components/ui/text'; -import { H1, Muted } from '~/components/ui/typography'; +import { Text } from '@/components/ui/text'; +import { H1, Muted } from '@/components/ui/typography'; export default function GreenScreen() { return ( diff --git a/apps/showcase/app/material-top-tabs/index.tsx b/apps/showcase/app/material-top-tabs/index.tsx index 72d417d2..6dc50c31 100644 --- a/apps/showcase/app/material-top-tabs/index.tsx +++ b/apps/showcase/app/material-top-tabs/index.tsx @@ -1,7 +1,7 @@ import { Link } from 'expo-router'; import { View } from 'react-native'; -import { Text } from '~/components/ui/text'; -import { H1, Muted } from '~/components/ui/typography'; +import { Text } from '@/components/ui/text'; +import { H1, Muted } from '@/components/ui/typography'; export default function BlueScreen() { return ( diff --git a/apps/showcase/app/material-top-tabs/purple.tsx b/apps/showcase/app/material-top-tabs/purple.tsx index 48717e7f..3c3b010b 100644 --- a/apps/showcase/app/material-top-tabs/purple.tsx +++ b/apps/showcase/app/material-top-tabs/purple.tsx @@ -1,7 +1,7 @@ import { Link } from 'expo-router'; import { View } from 'react-native'; -import { Text } from '~/components/ui/text'; -import { H1, Muted } from '~/components/ui/typography'; +import { Text } from '@/components/ui/text'; +import { H1, Muted } from '@/components/ui/typography'; export default function PurpleScreen() { return ( diff --git a/apps/showcase/app/material-top-tabs/red.tsx b/apps/showcase/app/material-top-tabs/red.tsx index 7f4956a3..29798c2a 100644 --- a/apps/showcase/app/material-top-tabs/red.tsx +++ b/apps/showcase/app/material-top-tabs/red.tsx @@ -1,7 +1,7 @@ import { Link } from 'expo-router'; import { View } from 'react-native'; -import { Text } from '~/components/ui/text'; -import { H1, Muted } from '~/components/ui/typography'; +import { Text } from '@/components/ui/text'; +import { H1, Muted } from '@/components/ui/typography'; export default function RedScreen() { return ( diff --git a/apps/showcase/app/menubar.tsx b/apps/showcase/app/menubar.tsx index ca9f9061..36e2c62d 100644 --- a/apps/showcase/app/menubar.tsx +++ b/apps/showcase/app/menubar.tsx @@ -17,8 +17,8 @@ import { MenubarSubContent, MenubarSubTrigger, MenubarTrigger, -} from '~/components/ui/menubar'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/menubar'; +import { Text } from '@/components/ui/text'; export default function MenubarScreen() { const insets = useSafeAreaInsets(); diff --git a/apps/showcase/app/modal.tsx b/apps/showcase/app/modal.tsx index a2d0c150..167efc73 100644 --- a/apps/showcase/app/modal.tsx +++ b/apps/showcase/app/modal.tsx @@ -3,8 +3,8 @@ import * as React from 'react'; import { Platform, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { FullWindowOverlay } from 'react-native-screens'; -import { Button } from '~/components/ui/button'; -import { Input } from '~/components/ui/input'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; import { Select, SelectContent, @@ -13,9 +13,9 @@ import { SelectLabel, SelectTrigger, SelectValue, -} from '~/components/ui/select'; -import { Text } from '~/components/ui/text'; -import { H1, Muted } from '~/components/ui/typography'; +} from '@/components/ui/select'; +import { Text } from '@/components/ui/text'; +import { H1, Muted } from '@/components/ui/typography'; const IOS_PORTAL_HOST_NAME = 'modal-example'; diff --git a/apps/showcase/app/navigation-menu.tsx b/apps/showcase/app/navigation-menu.tsx index f0e62728..2b9898b3 100644 --- a/apps/showcase/app/navigation-menu.tsx +++ b/apps/showcase/app/navigation-menu.tsx @@ -10,10 +10,10 @@ import { NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, -} from '~/components/ui/navigation-menu'; -import { Text } from '~/components/ui/text'; -import { Sparkles } from '~/lib/icons/Sparkles'; -import { cn } from '~/lib/utils'; +} from '@/components/ui/navigation-menu'; +import { Text } from '@/components/ui/text'; +import { Sparkles } from '@/lib/icons/Sparkles'; +import { cn } from '@/lib/utils'; export default function NavigationMenuScreen() { const insets = useSafeAreaInsets(); diff --git a/apps/showcase/app/popover.tsx b/apps/showcase/app/popover.tsx index 28003cec..6733fce6 100644 --- a/apps/showcase/app/popover.tsx +++ b/apps/showcase/app/popover.tsx @@ -1,11 +1,11 @@ import * as React from 'react'; import { Platform, Pressable, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; -import { Input } from '~/components/ui/input'; -import { Label } from '~/components/ui/label'; -import { Popover, PopoverContent, PopoverTrigger } from '~/components/ui/popover'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; +import { Text } from '@/components/ui/text'; export default function PopoverScreen() { const triggerRef = React.useRef>(null); diff --git a/apps/showcase/app/progress.tsx b/apps/showcase/app/progress.tsx index ae2766a5..d6222e4e 100644 --- a/apps/showcase/app/progress.tsx +++ b/apps/showcase/app/progress.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '~/components/ui/button'; -import { Progress } from '~/components/ui/progress'; -import { Text } from '~/components/ui/text'; +import { Button } from '@/components/ui/button'; +import { Progress } from '@/components/ui/progress'; +import { Text } from '@/components/ui/text'; export default function ProgressScreen() { const [progress, setProgress] = React.useState(13); diff --git a/apps/showcase/app/radio-group.tsx b/apps/showcase/app/radio-group.tsx index cb42f989..a261e67e 100644 --- a/apps/showcase/app/radio-group.tsx +++ b/apps/showcase/app/radio-group.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Label } from '~/components/ui/label'; -import { RadioGroup, RadioGroupItem } from '~/components/ui/radio-group'; +import { Label } from '@/components/ui/label'; +import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; export default function RadioGroupScreen() { const [value, setValue] = React.useState('Comfortable'); diff --git a/apps/showcase/app/select.tsx b/apps/showcase/app/select.tsx index bf8f9939..f9ca7d46 100644 --- a/apps/showcase/app/select.tsx +++ b/apps/showcase/app/select.tsx @@ -10,8 +10,8 @@ import { SelectLabel, SelectTrigger, SelectValue, -} from '~/components/ui/select'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/select'; +import { Text } from '@/components/ui/text'; export default function SelectScreen() { const triggerRef = React.useRef>(null); diff --git a/apps/showcase/app/separator.tsx b/apps/showcase/app/separator.tsx index daab9865..49af3901 100644 --- a/apps/showcase/app/separator.tsx +++ b/apps/showcase/app/separator.tsx @@ -1,6 +1,6 @@ import { View } from 'react-native'; -import { Separator } from '~/components/ui/separator'; -import { H4, P, Small } from '~/components/ui/typography'; +import { Separator } from '@/components/ui/separator'; +import { H4, P, Small } from '@/components/ui/typography'; export default function SeparatorScreen() { return ( diff --git a/apps/showcase/app/skeleton.tsx b/apps/showcase/app/skeleton.tsx index db446e46..bd75ffa9 100644 --- a/apps/showcase/app/skeleton.tsx +++ b/apps/showcase/app/skeleton.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Skeleton } from '~/components/ui/skeleton'; +import { Skeleton } from '@/components/ui/skeleton'; export default function SkeletonScreen() { return ( diff --git a/apps/showcase/app/slider/index.tsx b/apps/showcase/app/slider/index.tsx index 7eef9b4c..308335de 100644 --- a/apps/showcase/app/slider/index.tsx +++ b/apps/showcase/app/slider/index.tsx @@ -1,8 +1,8 @@ import { DeprecatedUi } from '@rnr/reusables'; import * as React from 'react'; import { Text, View } from 'react-native'; -import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; -import { Code } from '~/lib/icons/Code'; +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { Code } from '@/lib/icons/Code'; const { Slider } = DeprecatedUi; diff --git a/apps/showcase/app/slider/slider-primitive.tsx b/apps/showcase/app/slider/slider-primitive.tsx index f273de8c..ea8964f9 100644 --- a/apps/showcase/app/slider/slider-primitive.tsx +++ b/apps/showcase/app/slider/slider-primitive.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { Pressable, View, Text, Platform } from 'react-native'; import * as Slider from '@rn-primitives/slider'; -import { cn } from '~/lib/utils'; +import { cn } from '@/lib/utils'; export default function SliderScreen() { const [value, setValue] = React.useState(50); diff --git a/apps/showcase/app/switch.tsx b/apps/showcase/app/switch.tsx index 6f8827ec..57e87e33 100644 --- a/apps/showcase/app/switch.tsx +++ b/apps/showcase/app/switch.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Label } from '~/components/ui/label'; -import { Switch } from '~/components/ui/switch'; +import { Label } from '@/components/ui/label'; +import { Switch } from '@/components/ui/switch'; export default function SwitchScreen() { const [checked, setChecked] = React.useState(false); diff --git a/apps/showcase/app/table.tsx b/apps/showcase/app/table.tsx index 102f6887..552c6a65 100644 --- a/apps/showcase/app/table.tsx +++ b/apps/showcase/app/table.tsx @@ -4,8 +4,8 @@ import * as React from 'react'; import { Alert, ScrollView, View, useWindowDimensions } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import Toast from 'react-native-toast-message'; -import { Button } from '~/components/ui/button'; -import { Popover, PopoverContent, PopoverTrigger } from '~/components/ui/popover'; +import { Button } from '@/components/ui/button'; +import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; import { Table, TableBody, @@ -14,11 +14,11 @@ import { TableHead, TableHeader, TableRow, -} from '~/components/ui/table'; -import { Text } from '~/components/ui/text'; -import { ChevronDown } from '~/lib/icons/ChevronDown'; -import { Info } from '~/lib/icons/Info'; -import { cn } from '~/lib/utils'; +} from '@/components/ui/table'; +import { Text } from '@/components/ui/text'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { Info } from '@/lib/icons/Info'; +import { cn } from '@/lib/utils'; const MIN_COLUMN_WIDTHS = [120, 120, 100, 120]; diff --git a/apps/showcase/app/tabs.tsx b/apps/showcase/app/tabs.tsx index 8dca2e02..7cfe210f 100644 --- a/apps/showcase/app/tabs.tsx +++ b/apps/showcase/app/tabs.tsx @@ -1,6 +1,6 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '~/components/ui/button'; +import { Button } from '@/components/ui/button'; import { Card, CardContent, @@ -8,11 +8,11 @@ import { CardFooter, CardHeader, CardTitle, -} from '~/components/ui/card'; -import { Input } from '~/components/ui/input'; -import { Label } from '~/components/ui/label'; -import { Tabs, TabsContent, TabsList, TabsTrigger } from '~/components/ui/tabs'; -import { Text } from '~/components/ui/text'; +} from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; +import { Text } from '@/components/ui/text'; export default function TabsScreen() { const [value, setValue] = React.useState('account'); diff --git a/apps/showcase/app/textarea.tsx b/apps/showcase/app/textarea.tsx index a3f47aba..82b9ddd7 100644 --- a/apps/showcase/app/textarea.tsx +++ b/apps/showcase/app/textarea.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { ScrollView, TextInput, View } from 'react-native'; -import { Label } from '~/components/ui/label'; -import { Textarea } from '~/components/ui/textarea'; +import { Label } from '@/components/ui/label'; +import { Textarea } from '@/components/ui/textarea'; export default function InputScreen() { const inputRef = React.useRef(null); diff --git a/apps/showcase/app/toast/index.tsx b/apps/showcase/app/toast/index.tsx index 5ff57551..bf8b1943 100644 --- a/apps/showcase/app/toast/index.tsx +++ b/apps/showcase/app/toast/index.tsx @@ -1,11 +1,11 @@ import { View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import Toast from 'react-native-toast-message'; -import { Alert, AlertDescription, AlertTitle } from '~/components/ui/alert'; -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; -import { Code } from '~/lib/icons/Code'; -import { Terminal } from '~/lib/icons/Terminal'; +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; +import { Code } from '@/lib/icons/Code'; +import { Terminal } from '@/lib/icons/Terminal'; export default function ToastScreen() { const insets = useSafeAreaInsets(); diff --git a/apps/showcase/app/toggle-group.tsx b/apps/showcase/app/toggle-group.tsx index 2ebf4a73..2788666e 100644 --- a/apps/showcase/app/toggle-group.tsx +++ b/apps/showcase/app/toggle-group.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { View } from 'react-native'; -import { ToggleGroup, ToggleGroupIcon, ToggleGroupItem } from '~/components/ui/toggle-group'; -import { Bold } from '~/lib/icons/Bold'; -import { Italic } from '~/lib/icons/Italic'; -import { Underline } from '~/lib/icons/Underline'; +import { ToggleGroup, ToggleGroupIcon, ToggleGroupItem } from '@/components/ui/toggle-group'; +import { Bold } from '@/lib/icons/Bold'; +import { Italic } from '@/lib/icons/Italic'; +import { Underline } from '@/lib/icons/Underline'; export default function ToggleGroupScreen() { const [value, setValue] = React.useState([]); diff --git a/apps/showcase/app/toggle.tsx b/apps/showcase/app/toggle.tsx index 47c75e9c..5941a0cf 100644 --- a/apps/showcase/app/toggle.tsx +++ b/apps/showcase/app/toggle.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Toggle, ToggleIcon } from '~/components/ui/toggle'; -import { Bold } from '~/lib/icons/Bold'; +import { Toggle, ToggleIcon } from '@/components/ui/toggle'; +import { Bold } from '@/lib/icons/Bold'; export default function ToggleUniversalcreen() { const [pressed, setPressed] = React.useState(false); diff --git a/apps/showcase/app/toolbar/toolbar-primitive.tsx b/apps/showcase/app/toolbar/toolbar-primitive.tsx index 887cf9ac..d98d4f2a 100644 --- a/apps/showcase/app/toolbar/toolbar-primitive.tsx +++ b/apps/showcase/app/toolbar/toolbar-primitive.tsx @@ -1,11 +1,11 @@ import * as Toolbar from '@rn-primitives/toolbar'; import * as React from 'react'; import { Text, View } from 'react-native'; -import { AlignCenter } from '~/lib/icons/AlignCenter'; -import { AlignLeft } from '~/lib/icons/AlignLeft'; -import { Bold } from '~/lib/icons/Bold'; -import { Italic } from '~/lib/icons/Italic'; -import { cn } from '~/lib/utils'; +import { AlignCenter } from '@/lib/icons/AlignCenter'; +import { AlignLeft } from '@/lib/icons/AlignLeft'; +import { Bold } from '@/lib/icons/Bold'; +import { Italic } from '@/lib/icons/Italic'; +import { cn } from '@/lib/utils'; export default function ToolbarScreen() { const [singleValue, setSingleValue] = React.useState(); diff --git a/apps/showcase/app/tooltip.tsx b/apps/showcase/app/tooltip.tsx index 6f4491fb..38ca4c00 100644 --- a/apps/showcase/app/tooltip.tsx +++ b/apps/showcase/app/tooltip.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { Platform, Pressable, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '~/components/ui/button'; -import { Text } from '~/components/ui/text'; -import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; export default function TooltipScreen() { const triggerRef = React.useRef>(null); diff --git a/apps/showcase/app/typography.tsx b/apps/showcase/app/typography.tsx index a95cdb1f..173f5ca8 100644 --- a/apps/showcase/app/typography.tsx +++ b/apps/showcase/app/typography.tsx @@ -1,5 +1,5 @@ import { ScrollView, View } from 'react-native'; -import { BlockQuote, H1, H2, H3, Large, Lead, P } from '~/components/ui/typography'; +import { BlockQuote, H1, H2, H3, Large, Lead, P } from '@/components/ui/typography'; export default function TypographyScreen() { return ( diff --git a/apps/showcase/components/ModalToggle.tsx b/apps/showcase/components/ModalToggle.tsx index 20f164ab..41c0dda7 100644 --- a/apps/showcase/components/ModalToggle.tsx +++ b/apps/showcase/components/ModalToggle.tsx @@ -1,7 +1,7 @@ import { router } from 'expo-router'; import { Pressable, View } from 'react-native'; -import { CircleUserRound } from '~/lib/icons/CircleUserRound'; -import { cn } from '~/lib/utils'; +import { CircleUserRound } from '@/lib/icons/CircleUserRound'; +import { cn } from '@/lib/utils'; export function ModalToggle() { return ( diff --git a/apps/showcase/components/ThemeToggle.tsx b/apps/showcase/components/ThemeToggle.tsx index ac7c6edb..e0826321 100644 --- a/apps/showcase/components/ThemeToggle.tsx +++ b/apps/showcase/components/ThemeToggle.tsx @@ -1,8 +1,8 @@ import { Pressable, View } from 'react-native'; -import { setAndroidNavigationBar } from '~/lib/android-navigation-bar'; -import { MoonStar } from '~/lib/icons/MoonStar'; -import { Sun } from '~/lib/icons/Sun'; -import { useColorScheme } from '~/lib/useColorScheme'; +import { setAndroidNavigationBar } from '@showcase/lib/android-navigation-bar'; +import { MoonStar } from '@/lib/icons/MoonStar'; +import { Sun } from '@/lib/icons/Sun'; +import { useColorScheme } from '@/lib/useColorScheme'; export function ThemeToggle() { const { isDarkColorScheme, setColorScheme } = useColorScheme(); diff --git a/apps/showcase/lib/android-navigation-bar.ts b/apps/showcase/lib/android-navigation-bar.ts index 78187e6b..ad163f08 100644 --- a/apps/showcase/lib/android-navigation-bar.ts +++ b/apps/showcase/lib/android-navigation-bar.ts @@ -1,6 +1,6 @@ import * as NavigationBar from 'expo-navigation-bar'; import { Platform } from 'react-native'; -import { NAV_THEME } from '~/lib/constants'; +import { NAV_THEME } from '@/lib/constants'; export async function setAndroidNavigationBar(theme: 'light' | 'dark') { if (Platform.OS !== 'android') return; diff --git a/apps/showcase/tsconfig.json b/apps/showcase/tsconfig.json index c5697a90..9634902c 100644 --- a/apps/showcase/tsconfig.json +++ b/apps/showcase/tsconfig.json @@ -3,8 +3,11 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "~/*": [ + "@showcase/*": [ "./*" + ], + "@/*": [ + "../../packages/reusables/src/*" ] }, "jsx": "react-native", diff --git a/packages/reusables/package.json b/packages/reusables/package.json index 60e250da..0d0f9740 100644 --- a/packages/reusables/package.json +++ b/packages/reusables/package.json @@ -8,6 +8,12 @@ }, "type": "module", "version": "0.0.0", + "imports": { + "@/*": [ + "./src/*.ts", + "./src/*.tsx" + ] + }, "exports": { ".": "./src/index.ts", "./components/deprecated-ui/alert": "./src/components/deprecated-ui/alert.tsx", diff --git a/packages/reusables/src/components/deprecated-ui/index.ts b/packages/reusables/src/components/deprecated-ui/index.ts index e38a0266..7d175f91 100644 --- a/packages/reusables/src/components/deprecated-ui/index.ts +++ b/packages/reusables/src/components/deprecated-ui/index.ts @@ -1,34 +1,34 @@ -export * from './accordion'; -export * from './alert-dialog'; -export * from './alert'; -export * from './avatar'; -export * from './badge'; -export * from './bottom-sheet'; -export * from './button'; -export * from './calendar'; -export * from './card'; -export * from './checkbox'; -export * from './collapsible'; -export * from './combobox'; -export * from './command'; -export * from './context-menu'; -export * from './data-table'; -export * from './dialog'; -export * from './dropdown-menu'; -export * from './form'; -export * from './input'; -export * from './label'; -export * from './menubar'; -export * from './popover'; -export * from './progress'; -export * from './radio-group'; -export * from './section-list'; -export * from './select'; -export * from './separator'; -export * from './slider'; -export * from './switch'; -export * from './table'; -export * from './textarea'; -export * from './toast'; -export * from './toggle-group'; -export * from './toggle'; +export * from '@/components/deprecated-ui/accordion'; +export * from '@/components/deprecated-ui/alert-dialog'; +export * from '@/components/deprecated-ui/alert'; +export * from '@/components/deprecated-ui/avatar'; +export * from '@/components/deprecated-ui/badge'; +export * from '@/components/deprecated-ui/bottom-sheet'; +export * from '@/components/deprecated-ui/button'; +export * from '@/components/deprecated-ui/calendar'; +export * from '@/components/deprecated-ui/card'; +export * from '@/components/deprecated-ui/checkbox'; +export * from '@/components/deprecated-ui/collapsible'; +export * from '@/components/deprecated-ui/combobox'; +export * from '@/components/deprecated-ui/command'; +export * from '@/components/deprecated-ui/context-menu'; +export * from '@/components/deprecated-ui/data-table'; +export * from '@/components/deprecated-ui/dialog'; +export * from '@/components/deprecated-ui/dropdown-menu'; +export * from '@/components/deprecated-ui/form'; +export * from '@/components/deprecated-ui/input'; +export * from '@/components/deprecated-ui/label'; +export * from '@/components/deprecated-ui/menubar'; +export * from '@/components/deprecated-ui/popover'; +export * from '@/components/deprecated-ui/progress'; +export * from '@/components/deprecated-ui/radio-group'; +export * from '@/components/deprecated-ui/section-list'; +export * from '@/components/deprecated-ui/select'; +export * from '@/components/deprecated-ui/separator'; +export * from '@/components/deprecated-ui/slider'; +export * from '@/components/deprecated-ui/switch'; +export * from '@/components/deprecated-ui/table'; +export * from '@/components/deprecated-ui/textarea'; +export * from '@/components/deprecated-ui/toast'; +export * from '@/components/deprecated-ui/toggle-group'; +export * from '@/components/deprecated-ui/toggle'; diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index edd0bf7d..b1170ea6 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -1,3 +1,6 @@ +import { TextClassContext } from '@/components/ui/text'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { cn } from '@/lib/utils'; import * as AccordionPrimitive from '@rn-primitives/accordion'; import * as React from 'react'; import { Platform, Pressable, View } from 'react-native'; @@ -12,9 +15,6 @@ import Animated, { useDerivedValue, withTiming, } from 'react-native-reanimated'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; function Accordion({ children, diff --git a/packages/reusables/src/components/ui/alert-dialog.tsx b/packages/reusables/src/components/ui/alert-dialog.tsx index 771fdf2c..4bb92d1b 100644 --- a/packages/reusables/src/components/ui/alert-dialog.tsx +++ b/packages/reusables/src/components/ui/alert-dialog.tsx @@ -1,10 +1,10 @@ +import { buttonTextVariants, buttonVariants } from '@/components/ui/button'; +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as AlertDialogPrimitive from '@rn-primitives/alert-dialog'; import * as React from 'react'; import { Platform, View, type ViewProps } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; -import { buttonTextVariants, buttonVariants } from '../../components/ui/button'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const AlertDialog = AlertDialogPrimitive.Root; diff --git a/packages/reusables/src/components/ui/alert.tsx b/packages/reusables/src/components/ui/alert.tsx index 6a01ccae..23d491c3 100644 --- a/packages/reusables/src/components/ui/alert.tsx +++ b/packages/reusables/src/components/ui/alert.tsx @@ -1,9 +1,9 @@ +import { Text, TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import { cva, type VariantProps } from 'class-variance-authority'; import type { LucideIcon } from 'lucide-react-native'; import * as React from 'react'; import { View, type ViewProps } from 'react-native'; -import { cn } from '../../lib/utils'; -import { Text, TextClassContext } from './text'; const alertVariants = cva( 'relative bg-background w-full rounded-lg border border-border px-4 py-3', diff --git a/packages/reusables/src/components/ui/avatar.tsx b/packages/reusables/src/components/ui/avatar.tsx index 669e40c3..93439b8d 100644 --- a/packages/reusables/src/components/ui/avatar.tsx +++ b/packages/reusables/src/components/ui/avatar.tsx @@ -1,6 +1,6 @@ +import { cn } from '@/lib/utils'; import * as AvatarPrimitive from '@rn-primitives/avatar'; import * as React from 'react'; -import { cn } from '../../lib/utils'; function Avatar({ className, diff --git a/packages/reusables/src/components/ui/badge.tsx b/packages/reusables/src/components/ui/badge.tsx index 6671a32a..d44e2397 100644 --- a/packages/reusables/src/components/ui/badge.tsx +++ b/packages/reusables/src/components/ui/badge.tsx @@ -1,8 +1,8 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as Slot from '@rn-primitives/slot'; import { cva, type VariantProps } from 'class-variance-authority'; import { View, ViewProps } from 'react-native'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const badgeVariants = cva( 'web:inline-flex items-center rounded-full border border-border px-2.5 py-0.5 web:transition-colors web:focus:outline-none web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2', diff --git a/packages/reusables/src/components/ui/button.tsx b/packages/reusables/src/components/ui/button.tsx index 87167445..0cc29d71 100644 --- a/packages/reusables/src/components/ui/button.tsx +++ b/packages/reusables/src/components/ui/button.tsx @@ -1,8 +1,8 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import { cva, type VariantProps } from 'class-variance-authority'; import * as React from 'react'; import { Pressable } from 'react-native'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const buttonVariants = cva( 'group flex flex-row gap-2 items-center justify-center rounded-md web:whitespace-nowrap web:ring-offset-background web:transition-colors web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 web:[&_svg]:pointer-events-none web:[&_svg]:size-4 web:[&_svg]:shrink-0', diff --git a/packages/reusables/src/components/ui/card.tsx b/packages/reusables/src/components/ui/card.tsx index 3bc3681a..f794c33e 100644 --- a/packages/reusables/src/components/ui/card.tsx +++ b/packages/reusables/src/components/ui/card.tsx @@ -1,7 +1,7 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as React from 'react'; import { Text, type TextProps, View, type ViewProps } from 'react-native'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; function Card({ className, diff --git a/packages/reusables/src/components/ui/checkbox.tsx b/packages/reusables/src/components/ui/checkbox.tsx index 576438ef..d0196cfd 100644 --- a/packages/reusables/src/components/ui/checkbox.tsx +++ b/packages/reusables/src/components/ui/checkbox.tsx @@ -1,8 +1,8 @@ +import { Check } from '@/lib/icons/Check'; +import { cn } from '@/lib/utils'; import * as CheckboxPrimitive from '@rn-primitives/checkbox'; import * as React from 'react'; import { Platform } from 'react-native'; -import { Check } from '../../lib/icons/Check'; -import { cn } from '../../lib/utils'; function Checkbox({ className, diff --git a/packages/reusables/src/components/ui/context-menu.tsx b/packages/reusables/src/components/ui/context-menu.tsx index a1c8ca27..e1d2fc4f 100644 --- a/packages/reusables/src/components/ui/context-menu.tsx +++ b/packages/reusables/src/components/ui/context-menu.tsx @@ -1,3 +1,9 @@ +import { TextClassContext } from '@/components/ui/text'; +import { Check } from '@/lib/icons/Check'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { ChevronRight } from '@/lib/icons/ChevronRight'; +import { ChevronUp } from '@/lib/icons/ChevronUp'; +import { cn } from '@/lib/utils'; import * as ContextMenuPrimitive from '@rn-primitives/context-menu'; import * as React from 'react'; import { @@ -9,12 +15,6 @@ import { View, type ViewStyle, } from 'react-native'; -import { Check } from '../../lib/icons/Check'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; -import { ChevronRight } from '../../lib/icons/ChevronRight'; -import { ChevronUp } from '../../lib/icons/ChevronUp'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const ContextMenu = ContextMenuPrimitive.Root; const ContextMenuTrigger = ContextMenuPrimitive.Trigger; diff --git a/packages/reusables/src/components/ui/data-table.tsx b/packages/reusables/src/components/ui/data-table.tsx index fc3440ce..0a0beccd 100644 --- a/packages/reusables/src/components/ui/data-table.tsx +++ b/packages/reusables/src/components/ui/data-table.tsx @@ -1,3 +1,12 @@ +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table'; +import { cn } from '@/lib/utils'; import { FlashList, type FlashListProps } from '@shopify/flash-list'; import { ColumnDef, @@ -12,15 +21,6 @@ import * as React from 'react'; import { ActivityIndicator, Dimensions, RefreshControl, ScrollView } from 'react-native'; import Animated, { FadeInUp, FadeOutUp } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { - Table, - TableBody, - TableCell, - TableHead, - TableHeader, - TableRow, -} from '../../components/ui/table'; -import { cn } from '../../lib/utils'; interface DataTableProps { columns: ColumnDef[]; diff --git a/packages/reusables/src/components/ui/dialog.tsx b/packages/reusables/src/components/ui/dialog.tsx index 849da6d6..520572d6 100644 --- a/packages/reusables/src/components/ui/dialog.tsx +++ b/packages/reusables/src/components/ui/dialog.tsx @@ -1,9 +1,9 @@ +import { X } from '@/lib/icons/X'; +import { cn } from '@/lib/utils'; import * as DialogPrimitive from '@rn-primitives/dialog'; import * as React from 'react'; import { Platform, StyleSheet, View, type ViewProps } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; -import { X } from '../../lib/icons/X'; -import { cn } from '../../lib/utils'; const Dialog = DialogPrimitive.Root; diff --git a/packages/reusables/src/components/ui/dropdown-menu.tsx b/packages/reusables/src/components/ui/dropdown-menu.tsx index fc507a02..8460c7ae 100644 --- a/packages/reusables/src/components/ui/dropdown-menu.tsx +++ b/packages/reusables/src/components/ui/dropdown-menu.tsx @@ -1,3 +1,9 @@ +import { TextClassContext } from '@/components/ui/text'; +import { Check } from '@/lib/icons/Check'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { ChevronRight } from '@/lib/icons/ChevronRight'; +import { ChevronUp } from '@/lib/icons/ChevronUp'; +import { cn } from '@/lib/utils'; import * as DropdownMenuPrimitive from '@rn-primitives/dropdown-menu'; import * as React from 'react'; import { @@ -9,12 +15,6 @@ import { View, type ViewStyle, } from 'react-native'; -import { Check } from '../../lib/icons/Check'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; -import { ChevronRight } from '../../lib/icons/ChevronRight'; -import { ChevronUp } from '../../lib/icons/ChevronUp'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const DropdownMenu = DropdownMenuPrimitive.Root; diff --git a/packages/reusables/src/components/ui/form.tsx b/packages/reusables/src/components/ui/form.tsx index 67584fee..83dbd02a 100644 --- a/packages/reusables/src/components/ui/form.tsx +++ b/packages/reusables/src/components/ui/form.tsx @@ -2,6 +2,27 @@ // The code is licensed under the MIT License. // https://github.com/shadcn-ui/ui +import { + BottomSheet, + BottomSheetCloseTrigger, + BottomSheetContent, + BottomSheetOpenTrigger, + BottomSheetView, +} from '@/components/deprecated-ui/bottom-sheet'; +import { Calendar } from '@/components/deprecated-ui/calendar'; +import { Combobox, ComboboxOption } from '@/components/deprecated-ui/combobox'; +import { Button, buttonTextVariants } from '@/components/ui/button'; +import { Checkbox } from '@/components/ui/checkbox'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { RadioGroup } from '@/components/ui/radio-group'; +import { Select, type Option } from '@/components/ui/select'; +import { Switch } from '@/components/ui/switch'; +import { Text } from '@/components/ui/text'; +import { Textarea } from '@/components/ui/textarea'; +import { Calendar as CalendarIcon } from '@/lib/icons/Calendar'; +import { X } from '@/lib/icons/X'; +import { cn } from '@/lib/utils'; import * as React from 'react'; import { Controller, @@ -14,27 +35,6 @@ import { } from 'react-hook-form'; import { View } from 'react-native'; import Animated, { FadeInDown, FadeOut } from 'react-native-reanimated'; -import { - BottomSheet, - BottomSheetCloseTrigger, - BottomSheetContent, - BottomSheetOpenTrigger, - BottomSheetView, -} from '../../components/deprecated-ui/bottom-sheet'; -import { Calendar } from '../../components/deprecated-ui/calendar'; -import { Combobox, ComboboxOption } from '../../components/deprecated-ui/combobox'; -import { Button, buttonTextVariants } from '../../components/ui/button'; -import { Checkbox } from '../../components/ui/checkbox'; -import { Input } from '../../components/ui/input'; -import { Label } from '../../components/ui/label'; -import { RadioGroup } from '../../components/ui/radio-group'; -import { Select, type Option } from '../../components/ui/select'; -import { Switch } from '../../components/ui/switch'; -import { Textarea } from '../../components/ui/textarea'; -import { Calendar as CalendarIcon } from '../../lib/icons/Calendar'; -import { X } from '../../lib/icons/X'; -import { cn } from '../../lib/utils'; -import { Text } from './text'; const Form = FormProvider; diff --git a/packages/reusables/src/components/ui/hover-card.tsx b/packages/reusables/src/components/ui/hover-card.tsx index cf3c7866..59a9d370 100644 --- a/packages/reusables/src/components/ui/hover-card.tsx +++ b/packages/reusables/src/components/ui/hover-card.tsx @@ -1,9 +1,9 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as HoverCardPrimitive from '@rn-primitives/hover-card'; import * as React from 'react'; import { Platform, StyleSheet } from 'react-native'; import Animated, { FadeIn } from 'react-native-reanimated'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const HoverCard = HoverCardPrimitive.Root; diff --git a/packages/reusables/src/components/ui/index.ts b/packages/reusables/src/components/ui/index.ts index 8fef2742..e9638cfb 100644 --- a/packages/reusables/src/components/ui/index.ts +++ b/packages/reusables/src/components/ui/index.ts @@ -1,35 +1,35 @@ -export * from './accordion'; -export * from './alert-dialog'; -export * from './aspect-ratio'; -export * from './alert'; -export * from './avatar'; -export * from './badge'; -export * from './button'; -export * from './card'; -export * from './checkbox'; -export * from './collapsible'; -export * from './context-menu'; -export * from './data-table'; -export * from './dialog'; -export * from './dropdown-menu'; -export * from './form'; -export * from './hover-card'; -export * from './input'; -export * from './label'; -export * from './menubar'; -export * from './navigation-menu'; -export * from './popover'; -export * from './progress'; -export * from './radio-group'; -export * from './select'; -export * from './separator'; -export * from './skeleton'; -export * from './switch'; -export * from './table'; -export * from './tabs'; -export * from './text'; -export * from './textarea'; -export * from './toggle-group'; -export * from './toggle'; -export * from './tooltip'; -export * from './typography'; +export * from '@/components/ui/accordion'; +export * from '@/components/ui/alert-dialog'; +export * from '@/components/ui/aspect-ratio'; +export * from '@/components/ui/alert'; +export * from '@/components/ui/avatar'; +export * from '@/components/ui/badge'; +export * from '@/components/ui/button'; +export * from '@/components/ui/card'; +export * from '@/components/ui/checkbox'; +export * from '@/components/ui/collapsible'; +export * from '@/components/ui/context-menu'; +export * from '@/components/ui/data-table'; +export * from '@/components/ui/dialog'; +export * from '@/components/ui/dropdown-menu'; +export * from '@/components/ui/form'; +export * from '@/components/ui/hover-card'; +export * from '@/components/ui/input'; +export * from '@/components/ui/label'; +export * from '@/components/ui/menubar'; +export * from '@/components/ui/navigation-menu'; +export * from '@/components/ui/popover'; +export * from '@/components/ui/progress'; +export * from '@/components/ui/radio-group'; +export * from '@/components/ui/select'; +export * from '@/components/ui/separator'; +export * from '@/components/ui/skeleton'; +export * from '@/components/ui/switch'; +export * from '@/components/ui/table'; +export * from '@/components/ui/tabs'; +export * from '@/components/ui/text'; +export * from '@/components/ui/textarea'; +export * from '@/components/ui/toggle-group'; +export * from '@/components/ui/toggle'; +export * from '@/components/ui/tooltip'; +export * from '@/components/ui/typography'; diff --git a/packages/reusables/src/components/ui/input.tsx b/packages/reusables/src/components/ui/input.tsx index 584f80f6..e5913760 100644 --- a/packages/reusables/src/components/ui/input.tsx +++ b/packages/reusables/src/components/ui/input.tsx @@ -1,6 +1,6 @@ +import { cn } from '@/lib/utils'; import * as React from 'react'; import { TextInput, type TextInputProps } from 'react-native'; -import { cn } from '../../lib/utils'; function Input({ className, diff --git a/packages/reusables/src/components/ui/label.tsx b/packages/reusables/src/components/ui/label.tsx index 71fa19d6..e3cf703a 100644 --- a/packages/reusables/src/components/ui/label.tsx +++ b/packages/reusables/src/components/ui/label.tsx @@ -1,6 +1,6 @@ +import { cn } from '@/lib/utils'; import * as LabelPrimitive from '@rn-primitives/label'; import * as React from 'react'; -import { cn } from '../../lib/utils'; function Label({ className, diff --git a/packages/reusables/src/components/ui/menubar.tsx b/packages/reusables/src/components/ui/menubar.tsx index 20c1334f..955caa14 100644 --- a/packages/reusables/src/components/ui/menubar.tsx +++ b/packages/reusables/src/components/ui/menubar.tsx @@ -1,12 +1,12 @@ +import { TextClassContext } from '@/components/ui/text'; +import { Check } from '@/lib/icons/Check'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { ChevronRight } from '@/lib/icons/ChevronRight'; +import { ChevronUp } from '@/lib/icons/ChevronUp'; +import { cn } from '@/lib/utils'; import * as MenubarPrimitive from '@rn-primitives/menubar'; import * as React from 'react'; import { Platform, Text, type TextProps, View } from 'react-native'; -import { Check } from '../../lib/icons/Check'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; -import { ChevronRight } from '../../lib/icons/ChevronRight'; -import { ChevronUp } from '../../lib/icons/ChevronUp'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const MenubarMenu = MenubarPrimitive.Menu; diff --git a/packages/reusables/src/components/ui/navigation-menu.tsx b/packages/reusables/src/components/ui/navigation-menu.tsx index 8705f219..f624cf8e 100644 --- a/packages/reusables/src/components/ui/navigation-menu.tsx +++ b/packages/reusables/src/components/ui/navigation-menu.tsx @@ -1,3 +1,5 @@ +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { cn } from '@/lib/utils'; import * as NavigationMenuPrimitive from '@rn-primitives/navigation-menu'; import { cva } from 'class-variance-authority'; import * as React from 'react'; @@ -11,9 +13,6 @@ import Animated, { useDerivedValue, withTiming, } from 'react-native-reanimated'; -import { TextClassContext } from './text'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; -import { cn } from '../../lib/utils'; function NavigationMenu({ className, diff --git a/packages/reusables/src/components/ui/popover.tsx b/packages/reusables/src/components/ui/popover.tsx index 7d7fcd3f..25a628b7 100644 --- a/packages/reusables/src/components/ui/popover.tsx +++ b/packages/reusables/src/components/ui/popover.tsx @@ -1,8 +1,8 @@ import * as PopoverPrimitive from '@rn-primitives/popover'; import { Platform, StyleSheet } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; +import { cn } from '@/lib/utils'; +import { TextClassContext } from '@/components/ui/text'; const Popover = PopoverPrimitive.Root; diff --git a/packages/reusables/src/components/ui/progress.tsx b/packages/reusables/src/components/ui/progress.tsx index 291f55c1..c5698a7e 100644 --- a/packages/reusables/src/components/ui/progress.tsx +++ b/packages/reusables/src/components/ui/progress.tsx @@ -1,3 +1,4 @@ +import { cn } from '@/lib/utils'; import * as ProgressPrimitive from '@rn-primitives/progress'; import * as React from 'react'; import { Platform, View } from 'react-native'; @@ -8,7 +9,6 @@ import Animated, { useDerivedValue, withSpring, } from 'react-native-reanimated'; -import { cn } from '../../lib/utils'; function Progress({ className, diff --git a/packages/reusables/src/components/ui/radio-group.tsx b/packages/reusables/src/components/ui/radio-group.tsx index a7e451e2..7e4d189d 100644 --- a/packages/reusables/src/components/ui/radio-group.tsx +++ b/packages/reusables/src/components/ui/radio-group.tsx @@ -1,6 +1,6 @@ +import { cn } from '@/lib/utils'; import * as RadioGroupPrimitive from '@rn-primitives/radio-group'; import { View } from 'react-native'; -import { cn } from '../../lib/utils'; function RadioGroup({ className, diff --git a/packages/reusables/src/components/ui/select.tsx b/packages/reusables/src/components/ui/select.tsx index 17d54f5b..440528bc 100644 --- a/packages/reusables/src/components/ui/select.tsx +++ b/packages/reusables/src/components/ui/select.tsx @@ -1,11 +1,11 @@ +import { Check } from '@/lib/icons/Check'; +import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { ChevronUp } from '@/lib/icons/ChevronUp'; +import { cn } from '@/lib/utils'; import * as SelectPrimitive from '@rn-primitives/select'; import * as React from 'react'; import { Platform, StyleSheet, View } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; -import { Check } from '../../lib/icons/Check'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; -import { ChevronUp } from '../../lib/icons/ChevronUp'; -import { cn } from '../../lib/utils'; type Option = SelectPrimitive.Option; diff --git a/packages/reusables/src/components/ui/separator.tsx b/packages/reusables/src/components/ui/separator.tsx index 79dd6eb3..cb0d4e2e 100644 --- a/packages/reusables/src/components/ui/separator.tsx +++ b/packages/reusables/src/components/ui/separator.tsx @@ -1,6 +1,6 @@ +import { cn } from '@/lib/utils'; import * as SeparatorPrimitive from '@rn-primitives/separator'; import * as React from 'react'; -import { cn } from '../../lib/utils'; function Separator({ className, diff --git a/packages/reusables/src/components/ui/skeleton.tsx b/packages/reusables/src/components/ui/skeleton.tsx index ae155a2d..3c1f542d 100644 --- a/packages/reusables/src/components/ui/skeleton.tsx +++ b/packages/reusables/src/components/ui/skeleton.tsx @@ -1,3 +1,4 @@ +import { cn } from '@/lib/utils'; import * as React from 'react'; import Animated, { useAnimatedStyle, @@ -6,7 +7,6 @@ import Animated, { withSequence, withTiming, } from 'react-native-reanimated'; -import { cn } from '../../lib/utils'; const duration = 1000; diff --git a/packages/reusables/src/components/ui/switch.tsx b/packages/reusables/src/components/ui/switch.tsx index 98038cda..d21bc7e5 100644 --- a/packages/reusables/src/components/ui/switch.tsx +++ b/packages/reusables/src/components/ui/switch.tsx @@ -1,3 +1,5 @@ +import { useColorScheme } from '@/lib/useColorScheme'; +import { cn } from '@/lib/utils'; import * as SwitchPrimitives from '@rn-primitives/switch'; import * as React from 'react'; import { Platform } from 'react-native'; @@ -7,8 +9,6 @@ import Animated, { useDerivedValue, withTiming, } from 'react-native-reanimated'; -import { useColorScheme } from '../../lib/useColorScheme'; -import { cn } from '../../lib/utils'; function SwitchWeb({ className, diff --git a/packages/reusables/src/components/ui/table.tsx b/packages/reusables/src/components/ui/table.tsx index 7f66e0e2..c6479bd0 100644 --- a/packages/reusables/src/components/ui/table.tsx +++ b/packages/reusables/src/components/ui/table.tsx @@ -1,7 +1,7 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as TablePrimitive from '@rn-primitives/table'; import * as React from 'react'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; function Table({ className, diff --git a/packages/reusables/src/components/ui/tabs.tsx b/packages/reusables/src/components/ui/tabs.tsx index 0500bd41..1a763016 100644 --- a/packages/reusables/src/components/ui/tabs.tsx +++ b/packages/reusables/src/components/ui/tabs.tsx @@ -1,7 +1,7 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as TabsPrimitive from '@rn-primitives/tabs'; import * as React from 'react'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const Tabs = TabsPrimitive.Root; diff --git a/packages/reusables/src/components/ui/text.tsx b/packages/reusables/src/components/ui/text.tsx index 00d150eb..851b3bfd 100644 --- a/packages/reusables/src/components/ui/text.tsx +++ b/packages/reusables/src/components/ui/text.tsx @@ -1,7 +1,7 @@ +import { cn } from '@/lib/utils'; import * as Slot from '@rn-primitives/slot'; import * as React from 'react'; import { Text as RNText } from 'react-native'; -import { cn } from '../../lib/utils'; const TextClassContext = React.createContext(undefined); diff --git a/packages/reusables/src/components/ui/textarea.tsx b/packages/reusables/src/components/ui/textarea.tsx index bf13d1aa..2c47643f 100644 --- a/packages/reusables/src/components/ui/textarea.tsx +++ b/packages/reusables/src/components/ui/textarea.tsx @@ -1,6 +1,6 @@ +import { cn } from '@/lib/utils'; import * as React from 'react'; import { TextInput, type TextInputProps } from 'react-native'; -import { cn } from '../../lib/utils'; function Textarea({ className, diff --git a/packages/reusables/src/components/ui/toggle-group.tsx b/packages/reusables/src/components/ui/toggle-group.tsx index 380c5cbb..f591b4e1 100644 --- a/packages/reusables/src/components/ui/toggle-group.tsx +++ b/packages/reusables/src/components/ui/toggle-group.tsx @@ -1,10 +1,10 @@ +import { TextClassContext } from '@/components/ui/text'; +import { toggleTextVariants, toggleVariants } from '@/components/ui/toggle'; +import { cn } from '@/lib/utils'; +import * as ToggleGroupPrimitive from '@rn-primitives/toggle-group'; import type { VariantProps } from 'class-variance-authority'; import type { LucideIcon } from 'lucide-react-native'; import * as React from 'react'; -import { toggleTextVariants, toggleVariants } from '../../components/ui/toggle'; -import { TextClassContext } from './text'; -import * as ToggleGroupPrimitive from '@rn-primitives/toggle-group'; -import { cn } from '../../lib/utils'; const ToggleGroupContext = React.createContext | null>(null); diff --git a/packages/reusables/src/components/ui/toggle.tsx b/packages/reusables/src/components/ui/toggle.tsx index 794f768c..97398332 100644 --- a/packages/reusables/src/components/ui/toggle.tsx +++ b/packages/reusables/src/components/ui/toggle.tsx @@ -1,9 +1,9 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as TogglePrimitive from '@rn-primitives/toggle'; import { cva, type VariantProps } from 'class-variance-authority'; import type { LucideIcon } from 'lucide-react-native'; import * as React from 'react'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const toggleVariants = cva( 'web:group web:inline-flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:hover:bg-muted active:bg-muted web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2', diff --git a/packages/reusables/src/components/ui/tooltip.tsx b/packages/reusables/src/components/ui/tooltip.tsx index 3ad808c4..3517b982 100644 --- a/packages/reusables/src/components/ui/tooltip.tsx +++ b/packages/reusables/src/components/ui/tooltip.tsx @@ -1,9 +1,9 @@ +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import * as TooltipPrimitive from '@rn-primitives/tooltip'; import * as React from 'react'; import { Platform, StyleSheet } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; -import { cn } from '../../lib/utils'; -import { TextClassContext } from './text'; const Tooltip = TooltipPrimitive.Root; const TooltipTrigger = TooltipPrimitive.Trigger; diff --git a/packages/reusables/src/components/ui/typography.tsx b/packages/reusables/src/components/ui/typography.tsx index 0d556b60..04ce6f09 100644 --- a/packages/reusables/src/components/ui/typography.tsx +++ b/packages/reusables/src/components/ui/typography.tsx @@ -1,7 +1,7 @@ +import { cn } from '@/lib/utils'; import * as Slot from '@rn-primitives/slot'; import * as React from 'react'; import { Platform, Text as RNText } from 'react-native'; -import { cn } from '../../lib/utils'; type TypographyProps = React.ComponentProps & { ref?: React.RefObject; diff --git a/packages/reusables/src/index.ts b/packages/reusables/src/index.ts index bd9557cb..735fc712 100644 --- a/packages/reusables/src/index.ts +++ b/packages/reusables/src/index.ts @@ -1,3 +1,3 @@ -export * as Ui from './components/ui'; -export * as DeprecatedUi from './components/deprecated-ui'; -export * as Lib from './lib'; +export * as Ui from '@/components/ui'; +export * as DeprecatedUi from '@/components/deprecated-ui'; +export * as Lib from '@/lib'; diff --git a/packages/reusables/src/lib/index.ts b/packages/reusables/src/lib/index.ts index 789c74c5..35df1709 100644 --- a/packages/reusables/src/lib/index.ts +++ b/packages/reusables/src/lib/index.ts @@ -1,5 +1,5 @@ -export * from './constants'; -export * from './utils'; -export * from './keyboard'; -export * from './useColorScheme'; -export * as Icons from './icons'; +export * from '@/lib/constants'; +export * from '@/lib/utils'; +export * from '@/lib/keyboard'; +export * from '@/lib/useColorScheme'; +export * as Icons from '@/lib/icons'; diff --git a/packages/reusables/tsconfig.json b/packages/reusables/tsconfig.json index d1ca0e1f..362006c4 100644 --- a/packages/reusables/tsconfig.json +++ b/packages/reusables/tsconfig.json @@ -6,7 +6,13 @@ "nativewind-env.d.ts" ], "compilerOptions": { - "jsx": "react-jsx" + "jsx": "react-jsx", + "baseUrl": ".", + "paths": { + "@/*": [ + "src/*" + ] + }, }, "exclude": [ "node_modules" diff --git a/packages/templates/starter-base/app/+not-found.tsx b/packages/templates/starter-base/app/+not-found.tsx index 08c97b6b..ae217402 100644 --- a/packages/templates/starter-base/app/+not-found.tsx +++ b/packages/templates/starter-base/app/+not-found.tsx @@ -1,6 +1,6 @@ import { Link, Stack } from 'expo-router'; import { View } from 'react-native'; -import { Text } from '~/components/ui/text'; +import { Text } from '@/components/ui/text'; export default function NotFoundScreen() { return ( diff --git a/packages/templates/starter-base/app/_layout.tsx b/packages/templates/starter-base/app/_layout.tsx index adaff159..5d7beced 100644 --- a/packages/templates/starter-base/app/_layout.tsx +++ b/packages/templates/starter-base/app/_layout.tsx @@ -1,15 +1,15 @@ -import '~/global.css'; +import '@/global.css'; import { DarkTheme, DefaultTheme, Theme, ThemeProvider } from '@react-navigation/native'; import { Stack } from 'expo-router'; import { StatusBar } from 'expo-status-bar'; import * as React from 'react'; import { Appearance, Platform, View } from 'react-native'; -import { NAV_THEME } from '~/lib/constants'; -import { useColorScheme } from '~/lib/useColorScheme'; +import { NAV_THEME } from '@/lib/constants'; +import { useColorScheme } from '@/lib/useColorScheme'; import { PortalHost } from '@rn-primitives/portal'; -import { ThemeToggle } from '~/components/ThemeToggle'; -import { setAndroidNavigationBar } from '~/lib/android-navigation-bar'; +import { ThemeToggle } from '@/components/ThemeToggle'; +import { setAndroidNavigationBar } from '@/lib/android-navigation-bar'; const LIGHT_THEME: Theme = { ...DefaultTheme, diff --git a/packages/templates/starter-base/app/index.tsx b/packages/templates/starter-base/app/index.tsx index fbbe2617..a5857947 100644 --- a/packages/templates/starter-base/app/index.tsx +++ b/packages/templates/starter-base/app/index.tsx @@ -1,9 +1,9 @@ import * as React from 'react'; import { View } from 'react-native'; import Animated, { FadeInUp, FadeOutDown, LayoutAnimationConfig } from 'react-native-reanimated'; -import { Info } from '~/lib/icons/Info'; -import { Avatar, AvatarFallback, AvatarImage } from '~/components/ui/avatar'; -import { Button } from '~/components/ui/button'; +import { Info } from '@/lib/icons/Info'; +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; import { Card, CardContent, @@ -11,10 +11,10 @@ import { CardFooter, CardHeader, CardTitle, -} from '~/components/ui/card'; -import { Progress } from '~/components/ui/progress'; -import { Text } from '~/components/ui/text'; -import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; +} from '@/components/ui/card'; +import { Progress } from '@/components/ui/progress'; +import { Text } from '@/components/ui/text'; +import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'; const GITHUB_AVATAR_URI = 'https://i.pinimg.com/originals/ef/a2/8d/efa28d18a04e7fa40ed49eeb0ab660db.jpg'; diff --git a/packages/templates/starter-base/components/ThemeToggle.tsx b/packages/templates/starter-base/components/ThemeToggle.tsx index ac7c6edb..12fdf161 100644 --- a/packages/templates/starter-base/components/ThemeToggle.tsx +++ b/packages/templates/starter-base/components/ThemeToggle.tsx @@ -1,8 +1,8 @@ import { Pressable, View } from 'react-native'; -import { setAndroidNavigationBar } from '~/lib/android-navigation-bar'; -import { MoonStar } from '~/lib/icons/MoonStar'; -import { Sun } from '~/lib/icons/Sun'; -import { useColorScheme } from '~/lib/useColorScheme'; +import { setAndroidNavigationBar } from '@/lib/android-navigation-bar'; +import { MoonStar } from '@/lib/icons/MoonStar'; +import { Sun } from '@/lib/icons/Sun'; +import { useColorScheme } from '@/lib/useColorScheme'; export function ThemeToggle() { const { isDarkColorScheme, setColorScheme } = useColorScheme(); diff --git a/packages/templates/starter-base/components/ui/avatar.tsx b/packages/templates/starter-base/components/ui/avatar.tsx index 590e0c08..14ea5c93 100644 --- a/packages/templates/starter-base/components/ui/avatar.tsx +++ b/packages/templates/starter-base/components/ui/avatar.tsx @@ -1,6 +1,6 @@ import * as AvatarPrimitive from '@rn-primitives/avatar'; import * as React from 'react'; -import { cn } from '~/lib/utils'; +import { cn } from '@/lib/utils'; function Avatar({ className, diff --git a/packages/templates/starter-base/components/ui/button.tsx b/packages/templates/starter-base/components/ui/button.tsx index bb618441..737eafde 100644 --- a/packages/templates/starter-base/components/ui/button.tsx +++ b/packages/templates/starter-base/components/ui/button.tsx @@ -1,8 +1,8 @@ import { cva, type VariantProps } from 'class-variance-authority'; import * as React from 'react'; import { Pressable } from 'react-native'; -import { TextClassContext } from '~/components/ui/text'; -import { cn } from '~/lib/utils'; +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; const buttonVariants = cva( 'group flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2', diff --git a/packages/templates/starter-base/components/ui/card.tsx b/packages/templates/starter-base/components/ui/card.tsx index c38a114a..5dd834ec 100644 --- a/packages/templates/starter-base/components/ui/card.tsx +++ b/packages/templates/starter-base/components/ui/card.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { Text, TextProps, View, ViewProps } from 'react-native'; -import { TextClassContext } from '~/components/ui/text'; -import { cn } from '~/lib/utils'; +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; function Card({ className, diff --git a/packages/templates/starter-base/components/ui/progress.tsx b/packages/templates/starter-base/components/ui/progress.tsx index 577402c1..36fb119a 100644 --- a/packages/templates/starter-base/components/ui/progress.tsx +++ b/packages/templates/starter-base/components/ui/progress.tsx @@ -8,7 +8,7 @@ import Animated, { useDerivedValue, withSpring, } from 'react-native-reanimated'; -import { cn } from '~/lib/utils'; +import { cn } from '@/lib/utils'; function Progress({ className, diff --git a/packages/templates/starter-base/components/ui/text.tsx b/packages/templates/starter-base/components/ui/text.tsx index 507fef7b..bf892d6f 100644 --- a/packages/templates/starter-base/components/ui/text.tsx +++ b/packages/templates/starter-base/components/ui/text.tsx @@ -1,7 +1,7 @@ import * as Slot from '@rn-primitives/slot'; import * as React from 'react'; import { Text as RNText } from 'react-native'; -import { cn } from '~/lib/utils'; +import { cn } from '@/lib/utils'; const TextClassContext = React.createContext(undefined); diff --git a/packages/templates/starter-base/components/ui/tooltip.tsx b/packages/templates/starter-base/components/ui/tooltip.tsx index 1516b3d8..638dbf14 100644 --- a/packages/templates/starter-base/components/ui/tooltip.tsx +++ b/packages/templates/starter-base/components/ui/tooltip.tsx @@ -2,8 +2,8 @@ import * as TooltipPrimitive from '@rn-primitives/tooltip'; import * as React from 'react'; import { Platform, StyleSheet } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; -import { TextClassContext } from '~/components/ui/text'; -import { cn } from '~/lib/utils'; +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; const Tooltip = TooltipPrimitive.Root; diff --git a/packages/templates/starter-base/lib/android-navigation-bar.ts b/packages/templates/starter-base/lib/android-navigation-bar.ts index 78187e6b..ad163f08 100644 --- a/packages/templates/starter-base/lib/android-navigation-bar.ts +++ b/packages/templates/starter-base/lib/android-navigation-bar.ts @@ -1,6 +1,6 @@ import * as NavigationBar from 'expo-navigation-bar'; import { Platform } from 'react-native'; -import { NAV_THEME } from '~/lib/constants'; +import { NAV_THEME } from '@/lib/constants'; export async function setAndroidNavigationBar(theme: 'light' | 'dark') { if (Platform.OS !== 'android') return; diff --git a/packages/templates/starter-base/tsconfig.json b/packages/templates/starter-base/tsconfig.json index 7819c6e8..d1781a54 100644 --- a/packages/templates/starter-base/tsconfig.json +++ b/packages/templates/starter-base/tsconfig.json @@ -4,7 +4,7 @@ "strict": true, "baseUrl": ".", "paths": { - "~/*": [ + "@/*": [ "*" ] } From 869974b2a9c164690b374736d7a6ca0ad4acc5bb Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Thu, 5 Jun 2025 15:23:30 -0400 Subject: [PATCH 046/467] fix(docs): imports from reusables --- apps/docs/components/command-tabs.tsx | 4 ++- apps/docs/components/reusables.tsx | 2 +- apps/docs/content/docs/meta.json | 6 ++-- apps/docs/lib/file-generator.ts | 3 +- apps/docs/previews/accordion.tsx | 4 +-- apps/docs/previews/alert-dialog.tsx | 6 ++-- apps/docs/previews/alert/alert-default.tsx | 4 +-- .../docs/previews/alert/alert-destructive.tsx | 4 +-- apps/docs/previews/aspect-ratio.tsx | 2 +- apps/docs/previews/avatar.tsx | 4 +-- apps/docs/previews/badge/badge-default.tsx | 4 +-- .../docs/previews/badge/badge-destructive.tsx | 4 +-- apps/docs/previews/badge/badge-outline.tsx | 4 +-- apps/docs/previews/badge/badge-secondary.tsx | 4 +-- .../previews/button/button-destructive.tsx | 4 +-- apps/docs/previews/button/button-ghost.tsx | 4 +-- apps/docs/previews/button/button-icon.tsx | 4 +-- apps/docs/previews/button/button-link.tsx | 4 +-- apps/docs/previews/button/button-loading.tsx | 6 ++-- apps/docs/previews/button/button-outline.tsx | 4 +-- apps/docs/previews/button/button-primary.tsx | 4 +-- .../docs/previews/button/button-secondary.tsx | 4 +-- .../docs/previews/button/button-with-icon.tsx | 6 ++-- apps/docs/previews/card/card-default.tsx | 12 ++++---- apps/docs/previews/card/card-example.tsx | 12 ++++---- .../previews/checkbox/checkbox-default.tsx | 4 +-- .../collapsible/collapsible-native.tsx | 10 +++++-- .../previews/collapsible/collapsible-web.tsx | 12 +++++--- .../context-menu/context-menu-native.tsx | 4 +-- .../context-menu/context-menu-web.tsx | 4 +-- apps/docs/previews/dialog/dialog-native.tsx | 10 +++---- apps/docs/previews/dialog/dialog-web.tsx | 10 +++---- .../dropdown-menu/dropdown-menu-native.tsx | 28 +++++++++---------- .../dropdown-menu/dropdown-menu-web.tsx | 28 +++++++++---------- .../previews/hover-card/hover-card-native.tsx | 10 +++---- .../previews/hover-card/hover-card-web.tsx | 10 +++---- apps/docs/previews/input.tsx | 2 +- apps/docs/previews/label/label-default.tsx | 4 +-- apps/docs/previews/menubar/menubar-native.tsx | 4 +-- apps/docs/previews/menubar/menubar-web.tsx | 4 +-- .../navigation-menu-native.tsx | 6 ++-- .../navigation-menu/navigation-menu-web.tsx | 6 ++-- apps/docs/tsconfig.json | 7 +++-- .../reusables/src/components/ui/accordion.tsx | 4 +-- 44 files changed, 149 insertions(+), 137 deletions(-) diff --git a/apps/docs/components/command-tabs.tsx b/apps/docs/components/command-tabs.tsx index 62851e3e..f3be9ce3 100644 --- a/apps/docs/components/command-tabs.tsx +++ b/apps/docs/components/command-tabs.tsx @@ -18,7 +18,9 @@ export function CommandTabs({ args }: { args: string[] }) {
-                {[...COMMAND[manager], '@react-native-reusables', ...args].join(' ')}
+                
+                  {[...COMMAND[manager], '@react-native-reusables/cli@latest', ...args].join(' ')}
+                
               
diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index 9d97eb85..0083340d 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -1,6 +1,6 @@ 'use client'; -import { Lib, Ui } from '@rnr/reusables'; +import { Lib, Ui } from '@/index'; export const { Accordion, diff --git a/apps/docs/content/docs/meta.json b/apps/docs/content/docs/meta.json index 43cf1db9..8d610a8a 100644 --- a/apps/docs/content/docs/meta.json +++ b/apps/docs/content/docs/meta.json @@ -9,22 +9,20 @@ "!installation", "!icons", "!portal", - "!cli", "[DoorOpen][Introduction](/docs)", "[FolderDown][Installation](/docs/installation)", "[Library][Icons](/docs/icons)", "[Replace][Portal](/docs/portal)", - "[SquareTerminal][CLI](/docs/cli)", "---Customization---", "!components-json", "!theming", "[Braces][component.json](/docs/components-json)", "[Palette][Theming](/docs/theming)", - "------", - "recipes", "---Components---", "!/(components)", ".../(components)", + "------", + "recipes", "..." ] } diff --git a/apps/docs/lib/file-generator.ts b/apps/docs/lib/file-generator.ts index 02e084d0..5e34d3d6 100644 --- a/apps/docs/lib/file-generator.ts +++ b/apps/docs/lib/file-generator.ts @@ -61,5 +61,6 @@ function fixImports(value: string) { .replace('./text', '@/components/ui/text') .replaceAll('../../components', '@/components') .replaceAll('../../lib', '@/lib') - .replaceAll('@docs/components/react-native', 'react-native'); + .replaceAll('@docs/components/react-native', 'react-native') + .replaceAll('@rnr/', '@/'); } diff --git a/apps/docs/previews/accordion.tsx b/apps/docs/previews/accordion.tsx index 1a2a2cfe..30e7bdf2 100644 --- a/apps/docs/previews/accordion.tsx +++ b/apps/docs/previews/accordion.tsx @@ -3,8 +3,8 @@ import { AccordionContent, AccordionItem, AccordionTrigger, -} from '@/components/ui/accordion'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/accordion'; +import { Text } from '@rnr/components/ui/text'; export function AccordionPreview() { return ( diff --git a/apps/docs/previews/alert-dialog.tsx b/apps/docs/previews/alert-dialog.tsx index 7928d2d9..191329fe 100644 --- a/apps/docs/previews/alert-dialog.tsx +++ b/apps/docs/previews/alert-dialog.tsx @@ -8,9 +8,9 @@ import { AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, -} from '@/components/ui/alert-dialog'; -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/alert-dialog'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function AlertDialogPreview() { return ( diff --git a/apps/docs/previews/alert/alert-default.tsx b/apps/docs/previews/alert/alert-default.tsx index 556226e2..592bbac3 100644 --- a/apps/docs/previews/alert/alert-default.tsx +++ b/apps/docs/previews/alert/alert-default.tsx @@ -1,5 +1,5 @@ -import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; -import { Terminal } from '@/lib/icons/Terminal'; +import { Alert, AlertDescription, AlertTitle } from '@rnr/components/ui/alert'; +import { Terminal } from '@rnr/lib/icons/Terminal'; export function AlertPreview() { return ( diff --git a/apps/docs/previews/alert/alert-destructive.tsx b/apps/docs/previews/alert/alert-destructive.tsx index f34875f5..d1b98d46 100644 --- a/apps/docs/previews/alert/alert-destructive.tsx +++ b/apps/docs/previews/alert/alert-destructive.tsx @@ -1,5 +1,5 @@ -import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; -import { AlertCircle } from '@/lib/icons/AlertCircle'; +import { Alert, AlertDescription, AlertTitle } from '@rnr/components/ui/alert'; +import { AlertCircle } from '@rnr/lib/icons/AlertCircle'; export function AlertDestructive() { return ( diff --git a/apps/docs/previews/aspect-ratio.tsx b/apps/docs/previews/aspect-ratio.tsx index 44b3747d..a3870f28 100644 --- a/apps/docs/previews/aspect-ratio.tsx +++ b/apps/docs/previews/aspect-ratio.tsx @@ -1,4 +1,4 @@ -import { AspectRatio } from '@/components/ui/aspect-ratio'; +import { AspectRatio } from '@rnr/components/ui/aspect-ratio'; import { Image } from '@docs/components/react-native'; export function AspectRatioPreview() { diff --git a/apps/docs/previews/avatar.tsx b/apps/docs/previews/avatar.tsx index 873efd8e..07de7f11 100644 --- a/apps/docs/previews/avatar.tsx +++ b/apps/docs/previews/avatar.tsx @@ -1,5 +1,5 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { Text } from '@/components/ui/text'; +import { Avatar, AvatarFallback, AvatarImage } from '@rnr/components/ui/avatar'; +import { Text } from '@rnr/components/ui/text'; const SOURCE = { uri: 'https://github.com/mrzachnugent.png' }; diff --git a/apps/docs/previews/badge/badge-default.tsx b/apps/docs/previews/badge/badge-default.tsx index 7c9f4d60..f3a506b1 100644 --- a/apps/docs/previews/badge/badge-default.tsx +++ b/apps/docs/previews/badge/badge-default.tsx @@ -1,5 +1,5 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; +import { Badge } from '@rnr/components/ui/badge'; +import { Text } from '@rnr/components/ui/text'; export function BadgePreview() { return ( diff --git a/apps/docs/previews/badge/badge-destructive.tsx b/apps/docs/previews/badge/badge-destructive.tsx index 3d1379d6..3366e240 100644 --- a/apps/docs/previews/badge/badge-destructive.tsx +++ b/apps/docs/previews/badge/badge-destructive.tsx @@ -1,5 +1,5 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; +import { Badge } from '@rnr/components/ui/badge'; +import { Text } from '@rnr/components/ui/text'; export function BadgeDestructivePreview() { return ( diff --git a/apps/docs/previews/badge/badge-outline.tsx b/apps/docs/previews/badge/badge-outline.tsx index c4122380..bdd9325a 100644 --- a/apps/docs/previews/badge/badge-outline.tsx +++ b/apps/docs/previews/badge/badge-outline.tsx @@ -1,5 +1,5 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; +import { Badge } from '@rnr/components/ui/badge'; +import { Text } from '@rnr/components/ui/text'; export function BadgeOutlinePreview() { return ( diff --git a/apps/docs/previews/badge/badge-secondary.tsx b/apps/docs/previews/badge/badge-secondary.tsx index 794f1b3e..dc717ab0 100644 --- a/apps/docs/previews/badge/badge-secondary.tsx +++ b/apps/docs/previews/badge/badge-secondary.tsx @@ -1,5 +1,5 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; +import { Badge } from '@rnr/components/ui/badge'; +import { Text } from '@rnr/components/ui/text'; export function BadgeSecondaryPreview() { return ( diff --git a/apps/docs/previews/button/button-destructive.tsx b/apps/docs/previews/button/button-destructive.tsx index d0e1480f..e73c4a38 100644 --- a/apps/docs/previews/button/button-destructive.tsx +++ b/apps/docs/previews/button/button-destructive.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function ButtonDestructivePreview() { return ( diff --git a/apps/docs/previews/button/button-ghost.tsx b/apps/docs/previews/button/button-ghost.tsx index 2cf8c121..5335c0ef 100644 --- a/apps/docs/previews/button/button-ghost.tsx +++ b/apps/docs/previews/button/button-ghost.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function ButtonGhostPreview() { return ( diff --git a/apps/docs/previews/button/button-icon.tsx b/apps/docs/previews/button/button-icon.tsx index 782b9d47..f53200c6 100644 --- a/apps/docs/previews/button/button-icon.tsx +++ b/apps/docs/previews/button/button-icon.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { ChevronRight } from '@/lib/icons/ChevronRight'; +import { Button } from '@rnr/components/ui/button'; +import { ChevronRight } from '@rnr/lib/icons/ChevronRight'; export function ButtonIconPreview() { return ( diff --git a/apps/docs/previews/button/button-link.tsx b/apps/docs/previews/button/button-link.tsx index 846c5223..f8afb189 100644 --- a/apps/docs/previews/button/button-link.tsx +++ b/apps/docs/previews/button/button-link.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function ButtonLinkPreview() { return ( diff --git a/apps/docs/previews/button/button-loading.tsx b/apps/docs/previews/button/button-loading.tsx index c062e4e8..32df7a4b 100644 --- a/apps/docs/previews/button/button-loading.tsx +++ b/apps/docs/previews/button/button-loading.tsx @@ -1,6 +1,6 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; -import { Loader2 } from '@/lib/icons/Loader2'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; +import { Loader2 } from '@rnr/lib/icons/Loader2'; import { View } from '@docs/components/react-native'; export function ButtonLoadingPreview() { diff --git a/apps/docs/previews/button/button-outline.tsx b/apps/docs/previews/button/button-outline.tsx index ad4b2933..128cc852 100644 --- a/apps/docs/previews/button/button-outline.tsx +++ b/apps/docs/previews/button/button-outline.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function ButtonOutlinePreview() { return ( diff --git a/apps/docs/previews/button/button-primary.tsx b/apps/docs/previews/button/button-primary.tsx index 293608ca..2fa37405 100644 --- a/apps/docs/previews/button/button-primary.tsx +++ b/apps/docs/previews/button/button-primary.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function ButtonPreview() { return ( diff --git a/apps/docs/previews/button/button-secondary.tsx b/apps/docs/previews/button/button-secondary.tsx index 61e80580..6b4b0707 100644 --- a/apps/docs/previews/button/button-secondary.tsx +++ b/apps/docs/previews/button/button-secondary.tsx @@ -1,5 +1,5 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; export function ButtonSecondaryPreview() { return ( diff --git a/apps/docs/previews/button/button-with-icon.tsx b/apps/docs/previews/button/button-with-icon.tsx index 3795d6af..656cb54f 100644 --- a/apps/docs/previews/button/button-with-icon.tsx +++ b/apps/docs/previews/button/button-with-icon.tsx @@ -1,6 +1,6 @@ -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; -import { Mail } from '@/lib/icons/Mail'; +import { Button } from '@rnr/components/ui/button'; +import { Text } from '@rnr/components/ui/text'; +import { Mail } from '@rnr/lib/icons/Mail'; export function ButtonWithIconPreview() { return ( diff --git a/apps/docs/previews/card/card-default.tsx b/apps/docs/previews/card/card-default.tsx index 56491de5..7cb79722 100644 --- a/apps/docs/previews/card/card-default.tsx +++ b/apps/docs/previews/card/card-default.tsx @@ -1,5 +1,5 @@ import { View } from '@docs/components/react-native'; -import { Button } from '@/components/ui/button'; +import { Button } from '@rnr/components/ui/button'; import { Card, CardContent, @@ -7,17 +7,17 @@ import { CardFooter, CardHeader, CardTitle, -} from '@/components/ui/card'; -import { Input } from '@/components/ui/input'; -import { Label } from '@/components/ui/label'; +} from '@rnr/components/ui/card'; +import { Input } from '@rnr/components/ui/input'; +import { Label } from '@rnr/components/ui/label'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, -} from '@/components/ui/select'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/select'; +import { Text } from '@rnr/components/ui/text'; export function CardPreview() { return ( diff --git a/apps/docs/previews/card/card-example.tsx b/apps/docs/previews/card/card-example.tsx index a021ba40..7c08bb95 100644 --- a/apps/docs/previews/card/card-example.tsx +++ b/apps/docs/previews/card/card-example.tsx @@ -1,5 +1,5 @@ import { View } from '@docs/components/react-native'; -import { Button } from '@/components/ui/button'; +import { Button } from '@rnr/components/ui/button'; import { Card, CardContent, @@ -7,11 +7,11 @@ import { CardFooter, CardHeader, CardTitle, -} from '@/components/ui/card'; -import { Switch } from '@/components/ui/switch'; -import { Text } from '@/components/ui/text'; -import { Check } from '@/lib/icons/Check'; -import { Sparkles } from '@/lib/icons/Sparkles'; +} from '@rnr/components/ui/card'; +import { Switch } from '@rnr/components/ui/switch'; +import { Text } from '@rnr/components/ui/text'; +import { Check } from '@rnr/lib/icons/Check'; +import { Sparkles } from '@rnr/lib/icons/Sparkles'; const NOTIFICATIONS = [ { diff --git a/apps/docs/previews/checkbox/checkbox-default.tsx b/apps/docs/previews/checkbox/checkbox-default.tsx index cf2c6e28..5ad09758 100644 --- a/apps/docs/previews/checkbox/checkbox-default.tsx +++ b/apps/docs/previews/checkbox/checkbox-default.tsx @@ -1,6 +1,6 @@ import { View } from '@docs/components/react-native'; -import { Checkbox } from '@/components/ui/checkbox'; -import { Label } from '@/components/ui/label'; +import { Checkbox } from '@rnr/components/ui/checkbox'; +import { Label } from '@rnr/components/ui/label'; export function CheckboxPreview() { return ( diff --git a/apps/docs/previews/collapsible/collapsible-native.tsx b/apps/docs/previews/collapsible/collapsible-native.tsx index 27afeecb..07dd5691 100644 --- a/apps/docs/previews/collapsible/collapsible-native.tsx +++ b/apps/docs/previews/collapsible/collapsible-native.tsx @@ -1,8 +1,12 @@ import { Platform, Text, View } from 'react-native'; import Animated, { FadeInDown, LinearTransition } from 'react-native-reanimated'; -import { Button } from '@/components/ui/button'; -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; -import { ChevronsUpDown } from '@/lib/icons/ChevronsUpDown'; +import { Button } from '@rnr/components/ui/button'; +import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger, +} from '@rnr/components/ui/collapsible'; +import { ChevronsUpDown } from '@rnr/lib/icons/ChevronsUpDown'; export function CollapsiblePreview() { return ( diff --git a/apps/docs/previews/collapsible/collapsible-web.tsx b/apps/docs/previews/collapsible/collapsible-web.tsx index eb29b4dc..1b598afc 100644 --- a/apps/docs/previews/collapsible/collapsible-web.tsx +++ b/apps/docs/previews/collapsible/collapsible-web.tsx @@ -1,8 +1,12 @@ import { View } from '@docs/components/react-native'; -import { Button } from '@/components/ui/button'; -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; -import { Text } from '@/components/ui/text'; -import { ChevronsUpDown } from '@/lib/icons/ChevronsUpDown'; +import { Button } from '@rnr/components/ui/button'; +import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger, +} from '@rnr/components/ui/collapsible'; +import { Text } from '@rnr/components/ui/text'; +import { ChevronsUpDown } from '@rnr/lib/icons/ChevronsUpDown'; export function CollapsiblePreview() { return ( diff --git a/apps/docs/previews/context-menu/context-menu-native.tsx b/apps/docs/previews/context-menu/context-menu-native.tsx index 553d6844..3bfad9cb 100644 --- a/apps/docs/previews/context-menu/context-menu-native.tsx +++ b/apps/docs/previews/context-menu/context-menu-native.tsx @@ -16,8 +16,8 @@ import { ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, -} from '@/components/ui/context-menu'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/context-menu'; +import { Text } from '@rnr/components/ui/text'; export function ContextMenuPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/context-menu/context-menu-web.tsx b/apps/docs/previews/context-menu/context-menu-web.tsx index db04d5b7..a4acd24d 100644 --- a/apps/docs/previews/context-menu/context-menu-web.tsx +++ b/apps/docs/previews/context-menu/context-menu-web.tsx @@ -12,8 +12,8 @@ import { ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, -} from '@/components/ui/context-menu'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/context-menu'; +import { Text } from '@rnr/components/ui/text'; // TODO(zach): update primitives for options value and onChange diff --git a/apps/docs/previews/dialog/dialog-native.tsx b/apps/docs/previews/dialog/dialog-native.tsx index bcebfb63..74927b7f 100644 --- a/apps/docs/previews/dialog/dialog-native.tsx +++ b/apps/docs/previews/dialog/dialog-native.tsx @@ -1,5 +1,5 @@ import { View } from '@docs/components/react-native'; -import { Button } from '@/components/ui/button'; +import { Button } from '@rnr/components/ui/button'; import { Dialog, DialogClose, @@ -9,10 +9,10 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@/components/ui/dialog'; -import { Label } from '@/components/ui/label'; -import { Input } from '@/components/ui/input'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/dialog'; +import { Label } from '@rnr/components/ui/label'; +import { Input } from '@rnr/components/ui/input'; +import { Text } from '@rnr/components/ui/text'; // TODO(zach): check this works on native diff --git a/apps/docs/previews/dialog/dialog-web.tsx b/apps/docs/previews/dialog/dialog-web.tsx index 241bbbc2..64d85550 100644 --- a/apps/docs/previews/dialog/dialog-web.tsx +++ b/apps/docs/previews/dialog/dialog-web.tsx @@ -1,5 +1,5 @@ import { View } from '@docs/components/react-native'; -import { Button } from '@/components/ui/button'; +import { Button } from '@rnr/components/ui/button'; import { Dialog, DialogClose, @@ -9,10 +9,10 @@ import { DialogHeader, DialogTitle, DialogTrigger, -} from '@/components/ui/dialog'; -import { Label } from '@/components/ui/label'; -import { Input } from '@/components/ui/input'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/dialog'; +import { Label } from '@rnr/components/ui/label'; +import { Input } from '@rnr/components/ui/input'; +import { Text } from '@rnr/components/ui/text'; export function DialogPreview() { return ( diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx index 98214172..1baa1495 100644 --- a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx +++ b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx @@ -1,6 +1,6 @@ import Animated, { FadeIn } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '@/components/ui/button'; +import { Button } from '@rnr/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -13,19 +13,19 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from '@/components/ui/dropdown-menu'; -import { Text } from '@/components/ui/text'; -import { Cloud } from '@/lib/icons/Cloud'; -import { Github } from '@/lib/icons/Github'; -import { LifeBuoy } from '@/lib/icons/LifeBuoy'; -import { LogOut } from '@/lib/icons/LogOut'; -import { Mail } from '@/lib/icons/Mail'; -import { MessageSquare } from '@/lib/icons/MessageSquare'; -import { Plus } from '@/lib/icons/Plus'; -import { PlusCircle } from '@/lib/icons/PlusCircle'; -import { User } from '@/lib/icons/User'; -import { UserPlus } from '@/lib/icons/UserPlus'; -import { Users } from '@/lib/icons/Users'; +} from '@rnr/components/ui/dropdown-menu'; +import { Text } from '@rnr/components/ui/text'; +import { Cloud } from '@rnr/lib/icons/Cloud'; +import { Github } from '@rnr/lib/icons/Github'; +import { LifeBuoy } from '@rnr/lib/icons/LifeBuoy'; +import { LogOut } from '@rnr/lib/icons/LogOut'; +import { Mail } from '@rnr/lib/icons/Mail'; +import { MessageSquare } from '@rnr/lib/icons/MessageSquare'; +import { Plus } from '@rnr/lib/icons/Plus'; +import { PlusCircle } from '@rnr/lib/icons/PlusCircle'; +import { User } from '@rnr/lib/icons/User'; +import { UserPlus } from '@rnr/lib/icons/UserPlus'; +import { Users } from '@rnr/lib/icons/Users'; export default function DropdownMenuPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx index b0e5d2b1..a526f06e 100644 --- a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx +++ b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx @@ -1,4 +1,4 @@ -import { Button } from '@/components/ui/button'; +import { Button } from '@rnr/components/ui/button'; import { DropdownMenu, DropdownMenuContent, @@ -11,19 +11,19 @@ import { DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, -} from '@/components/ui/dropdown-menu'; -import { Text } from '@/components/ui/text'; -import { Cloud } from '@/lib/icons/Cloud'; -import { Github } from '@/lib/icons/Github'; -import { LifeBuoy } from '@/lib/icons/LifeBuoy'; -import { LogOut } from '@/lib/icons/LogOut'; -import { Mail } from '@/lib/icons/Mail'; -import { MessageSquare } from '@/lib/icons/MessageSquare'; -import { Plus } from '@/lib/icons/Plus'; -import { PlusCircle } from '@/lib/icons/PlusCircle'; -import { User } from '@/lib/icons/User'; -import { UserPlus } from '@/lib/icons/UserPlus'; -import { Users } from '@/lib/icons/Users'; +} from '@rnr/components/ui/dropdown-menu'; +import { Text } from '@rnr/components/ui/text'; +import { Cloud } from '@rnr/lib/icons/Cloud'; +import { Github } from '@rnr/lib/icons/Github'; +import { LifeBuoy } from '@rnr/lib/icons/LifeBuoy'; +import { LogOut } from '@rnr/lib/icons/LogOut'; +import { Mail } from '@rnr/lib/icons/Mail'; +import { MessageSquare } from '@rnr/lib/icons/MessageSquare'; +import { Plus } from '@rnr/lib/icons/Plus'; +import { PlusCircle } from '@rnr/lib/icons/PlusCircle'; +import { User } from '@rnr/lib/icons/User'; +import { UserPlus } from '@rnr/lib/icons/UserPlus'; +import { Users } from '@rnr/lib/icons/Users'; export function DropdownMenuPreview() { return ( diff --git a/apps/docs/previews/hover-card/hover-card-native.tsx b/apps/docs/previews/hover-card/hover-card-native.tsx index fac273b0..bd2c030b 100644 --- a/apps/docs/previews/hover-card/hover-card-native.tsx +++ b/apps/docs/previews/hover-card/hover-card-native.tsx @@ -1,10 +1,10 @@ import { View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { Button } from '@/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; -import { Text } from '@/components/ui/text'; -import { CalendarDays } from '@/lib/icons/CalendarDays'; +import { Avatar, AvatarFallback, AvatarImage } from '@rnr/components/ui/avatar'; +import { Button } from '@rnr/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@rnr/components/ui/hover-card'; +import { Text } from '@rnr/components/ui/text'; +import { CalendarDays } from '@rnr/lib/icons/CalendarDays'; export function HoverCardPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/hover-card/hover-card-web.tsx b/apps/docs/previews/hover-card/hover-card-web.tsx index 41660a01..fe9f3c75 100644 --- a/apps/docs/previews/hover-card/hover-card-web.tsx +++ b/apps/docs/previews/hover-card/hover-card-web.tsx @@ -1,9 +1,9 @@ import { View } from '@docs/components/react-native'; -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { Button } from '@/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; -import { Text } from '@/components/ui/text'; -import { CalendarDays } from '@/lib/icons/CalendarDays'; +import { Avatar, AvatarFallback, AvatarImage } from '@rnr/components/ui/avatar'; +import { Button } from '@rnr/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@rnr/components/ui/hover-card'; +import { Text } from '@rnr/components/ui/text'; +import { CalendarDays } from '@rnr/lib/icons/CalendarDays'; export function HoverCardPreview() { return ( diff --git a/apps/docs/previews/input.tsx b/apps/docs/previews/input.tsx index d5f7a9e2..600b51cd 100644 --- a/apps/docs/previews/input.tsx +++ b/apps/docs/previews/input.tsx @@ -1,4 +1,4 @@ -import { Input } from '@/components/ui/input'; +import { Input } from '@rnr/components/ui/input'; export function InputPreview() { return ( diff --git a/apps/docs/previews/label/label-default.tsx b/apps/docs/previews/label/label-default.tsx index 83c40c42..8e340e27 100644 --- a/apps/docs/previews/label/label-default.tsx +++ b/apps/docs/previews/label/label-default.tsx @@ -1,6 +1,6 @@ import { View } from '@docs/components/react-native'; -import { Checkbox } from '@/components/ui/checkbox'; -import { Label } from '@/components/ui/label'; +import { Checkbox } from '@rnr/components/ui/checkbox'; +import { Label } from '@rnr/components/ui/label'; export function LabelPreview() { return ( diff --git a/apps/docs/previews/menubar/menubar-native.tsx b/apps/docs/previews/menubar/menubar-native.tsx index b3eb5f4d..d3128b6f 100644 --- a/apps/docs/previews/menubar/menubar-native.tsx +++ b/apps/docs/previews/menubar/menubar-native.tsx @@ -17,8 +17,8 @@ import { MenubarSubContent, MenubarSubTrigger, MenubarTrigger, -} from '@/components/ui/menubar'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/menubar'; +import { Text } from '@rnr/components/ui/text'; // TODO(zach): review this diff --git a/apps/docs/previews/menubar/menubar-web.tsx b/apps/docs/previews/menubar/menubar-web.tsx index 782c5777..bac9d71c 100644 --- a/apps/docs/previews/menubar/menubar-web.tsx +++ b/apps/docs/previews/menubar/menubar-web.tsx @@ -12,8 +12,8 @@ import { MenubarSubContent, MenubarSubTrigger, MenubarTrigger, -} from '@/components/ui/menubar'; -import { Text } from '@/components/ui/text'; +} from '@rnr/components/ui/menubar'; +import { Text } from '@rnr/components/ui/text'; // TODO(zach): fix primitive + double enter animation diff --git a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx index 2cd10316..8d9e60b5 100644 --- a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx +++ b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx @@ -11,9 +11,9 @@ import { NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, -} from '@/components/ui/navigation-menu'; -import { Text } from '@/components/ui/text'; -import { Sparkles } from '@/lib/icons/Sparkles'; +} from '@rnr/components/ui/navigation-menu'; +import { Text } from '@rnr/components/ui/text'; +import { Sparkles } from '@rnr/lib/icons/Sparkles'; export function NavigationMenuPreview() { const insets = useSafeAreaInsets(); diff --git a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx index 21d6e6d4..30199f51 100644 --- a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx +++ b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx @@ -6,9 +6,9 @@ import { NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, -} from '@/components/ui/navigation-menu'; -import { Text } from '@/components/ui/text'; -import { Sparkles } from '@/lib/icons/Sparkles'; +} from '@rnr/components/ui/navigation-menu'; +import { Text } from '@rnr/components/ui/text'; +import { Sparkles } from '@rnr/lib/icons/Sparkles'; // TODO(zach) diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 93fc8358..2064f98e 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -24,11 +24,14 @@ "@docs/*": [ "./*" ], - "@/components/ui/*": [ + "@rnr/components/ui/*": [ "./components/reusables" ], - "@/lib/icons/*": [ + "@rnr/lib/icons/*": [ "./components/reusables" + ], + "@/*": [ + "../../packages/reusables/src/*" ] }, "plugins": [ diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index b1170ea6..1047b0a2 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -77,7 +77,7 @@ function AccordionTrigger({ ); return ( - + {children} - + From 6769109e88f278dea1baa46030f1fdcae9579731 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 6 Jun 2025 13:26:46 -0400 Subject: [PATCH 047/467] feat(reusables): add icon component --- .../components/deprecated-ui/accordion.tsx | 2 +- .../deprecated-ui/bottom-sheet.native.tsx | 2 +- .../components/deprecated-ui/bottom-sheet.tsx | 2 +- .../src/components/deprecated-ui/checkbox.tsx | 2 +- .../src/components/deprecated-ui/combobox.tsx | 4 +- .../src/components/deprecated-ui/command.tsx | 3 +- .../src/components/deprecated-ui/form.tsx | 3 +- .../src/components/deprecated-ui/select.tsx | 3 +- .../src/components/deprecated-ui/toast.tsx | 4 +- .../reusables/src/components/ui/accordion.tsx | 15 ++++--- .../reusables/src/components/ui/checkbox.tsx | 6 ++- .../src/components/ui/context-menu.tsx | 18 ++++---- .../reusables/src/components/ui/dialog.tsx | 8 ++-- .../src/components/ui/dropdown-menu.tsx | 18 ++++---- packages/reusables/src/components/ui/form.tsx | 9 ++-- packages/reusables/src/components/ui/icon.tsx | 43 +++++++++++++++++++ .../reusables/src/components/ui/menubar.tsx | 18 ++++---- .../src/components/ui/navigation-menu.tsx | 8 ++-- .../reusables/src/components/ui/select.tsx | 15 +++---- 19 files changed, 112 insertions(+), 71 deletions(-) create mode 100644 packages/reusables/src/components/ui/icon.tsx diff --git a/packages/reusables/src/components/deprecated-ui/accordion.tsx b/packages/reusables/src/components/deprecated-ui/accordion.tsx index 3c335721..1b91305a 100644 --- a/packages/reusables/src/components/deprecated-ui/accordion.tsx +++ b/packages/reusables/src/components/deprecated-ui/accordion.tsx @@ -1,4 +1,4 @@ -import { ChevronDown } from '../../lib/icons/ChevronDown'; +import { ChevronDown } from 'lucide-react-native'; import * as React from 'react'; import { LayoutChangeEvent, Pressable, View } from 'react-native'; import Animated, { diff --git a/packages/reusables/src/components/deprecated-ui/bottom-sheet.native.tsx b/packages/reusables/src/components/deprecated-ui/bottom-sheet.native.tsx index 40aa664d..7ff3b00b 100644 --- a/packages/reusables/src/components/deprecated-ui/bottom-sheet.native.tsx +++ b/packages/reusables/src/components/deprecated-ui/bottom-sheet.native.tsx @@ -18,7 +18,7 @@ import * as React from 'react'; import { GestureResponderEvent, Keyboard, Pressable, View, ViewStyle } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { Button } from '../../components/deprecated-ui/button'; -import { X } from '../../lib/icons/X'; +import { X } from 'lucide-react-native'; import { useColorScheme } from '../../lib/useColorScheme'; import { cn } from '../../lib/utils'; diff --git a/packages/reusables/src/components/deprecated-ui/bottom-sheet.tsx b/packages/reusables/src/components/deprecated-ui/bottom-sheet.tsx index a99144e6..04e1914e 100644 --- a/packages/reusables/src/components/deprecated-ui/bottom-sheet.tsx +++ b/packages/reusables/src/components/deprecated-ui/bottom-sheet.tsx @@ -13,7 +13,7 @@ import React, { useCallback } from 'react'; import { GestureResponderEvent, Keyboard, Pressable, View, ViewStyle } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { Button } from '../../components/deprecated-ui/button'; -import { X } from '../../lib/icons/X'; +import { X } from 'lucide-react-native'; import { cn } from '../../lib/utils'; // !IMPORTANT: This file is only for web. BottomSheet is not available for web yet. diff --git a/packages/reusables/src/components/deprecated-ui/checkbox.tsx b/packages/reusables/src/components/deprecated-ui/checkbox.tsx index eef66b9f..9ba8f605 100644 --- a/packages/reusables/src/components/deprecated-ui/checkbox.tsx +++ b/packages/reusables/src/components/deprecated-ui/checkbox.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { Pressable } from 'react-native'; import Animated, { useSharedValue, withTiming } from 'react-native-reanimated'; -import { Check } from '../../lib/icons/Check'; +import { Check } from 'lucide-react-native'; import { cn } from '../../lib/utils'; interface CheckboxProps { diff --git a/packages/reusables/src/components/deprecated-ui/combobox.tsx b/packages/reusables/src/components/deprecated-ui/combobox.tsx index 4c70861d..7d1e1e0e 100644 --- a/packages/reusables/src/components/deprecated-ui/combobox.tsx +++ b/packages/reusables/src/components/deprecated-ui/combobox.tsx @@ -11,9 +11,7 @@ import { useBottomSheet, } from '../../components/deprecated-ui/bottom-sheet'; import { Button, buttonTextVariants, buttonVariants } from '../../components/deprecated-ui/button'; -import { Check } from '../../lib/icons/Check'; -import { ChevronsUpDown } from '../../lib/icons/ChevronsUpDown'; -import { Search } from '../../lib/icons/Search'; +import { Check, ChevronsUpDown, Search } from 'lucide-react-native'; import { cn } from '../../lib/utils'; // TODO: refactor and move to UI diff --git a/packages/reusables/src/components/deprecated-ui/command.tsx b/packages/reusables/src/components/deprecated-ui/command.tsx index e3f16356..568708c8 100644 --- a/packages/reusables/src/components/deprecated-ui/command.tsx +++ b/packages/reusables/src/components/deprecated-ui/command.tsx @@ -4,8 +4,7 @@ import React, { useImperativeHandle } from 'react'; import { GestureResponderEvent, Modal, Pressable, Text, View } from 'react-native'; import Animated, { FadeInUp, SlideInUp } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Search } from '../../lib/icons/Search'; -import { X } from '../../lib/icons/X'; +import { Search, X } from 'lucide-react-native'; import { useKeyboard } from '../../lib/keyboard'; import { cn, isTextChildren } from '../../lib/utils'; import { Button } from './button'; diff --git a/packages/reusables/src/components/deprecated-ui/form.tsx b/packages/reusables/src/components/deprecated-ui/form.tsx index f3bb0352..92965933 100644 --- a/packages/reusables/src/components/deprecated-ui/form.tsx +++ b/packages/reusables/src/components/deprecated-ui/form.tsx @@ -37,8 +37,7 @@ import { } from '../../components/deprecated-ui/select'; import { Switch } from '../../components/deprecated-ui/switch'; import { Textarea } from '../../components/deprecated-ui/textarea'; -import { Calendar as CalendarIcon } from '../../lib/icons/Calendar'; -import { X } from '../../lib/icons/X'; +import { Calendar as CalendarIcon, X } from 'lucide-react-native'; import { cn } from '../../lib/utils'; import { Checkbox } from './checkbox'; diff --git a/packages/reusables/src/components/deprecated-ui/select.tsx b/packages/reusables/src/components/deprecated-ui/select.tsx index c58f8226..27e9a09e 100644 --- a/packages/reusables/src/components/deprecated-ui/select.tsx +++ b/packages/reusables/src/components/deprecated-ui/select.tsx @@ -7,8 +7,7 @@ import { PopoverContent, PopoverTrigger, } from '../../components/deprecated-ui/popover'; -import { Check } from '../../lib/icons/Check'; -import { ChevronDown } from '../../lib/icons/ChevronDown'; +import { Check, ChevronDown } from 'lucide-react-native'; import { cn } from '../../lib/utils'; import { Button, buttonTextVariants } from './button'; diff --git a/packages/reusables/src/components/deprecated-ui/toast.tsx b/packages/reusables/src/components/deprecated-ui/toast.tsx index 03bdd285..a7968ec4 100644 --- a/packages/reusables/src/components/deprecated-ui/toast.tsx +++ b/packages/reusables/src/components/deprecated-ui/toast.tsx @@ -2,9 +2,7 @@ import { Pressable } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import Toast, { ToastConfig } from 'react-native-toast-message'; import { Alert, AlertDescription, AlertTitle } from '../../components/deprecated-ui/alert'; -import { AlertTriangle } from '../../lib/icons/AlertTriangle'; -import { CheckSquare } from '../../lib/icons/CheckSquare'; -import { Info } from '../../lib/icons/Info'; +import { AlertTriangle, CheckSquare, Info } from 'lucide-react-native'; /** * Temporary fix for warning when accessing useLayoutEffect on the server. See issue diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index 1047b0a2..f3749220 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -1,7 +1,8 @@ +import { Icon } from '@/components/ui/icon'; import { TextClassContext } from '@/components/ui/text'; -import { ChevronDown } from '@/lib/icons/ChevronDown'; import { cn } from '@/lib/utils'; import * as AccordionPrimitive from '@rn-primitives/accordion'; +import { ChevronDown } from 'lucide-react-native'; import * as React from 'react'; import { Platform, Pressable, View } from 'react-native'; import Animated, { @@ -86,9 +87,9 @@ function AccordionTrigger({ className )} > - {children} + <>{children} - + @@ -122,7 +123,11 @@ function AccordionContent({ function InnerContent({ children, className }: { children: React.ReactNode; className?: string }) { if (Platform.OS === 'web') { - return {children}; + return ( + + <>{children} + + ); } return ( - {children} + <>{children} ); } diff --git a/packages/reusables/src/components/ui/checkbox.tsx b/packages/reusables/src/components/ui/checkbox.tsx index d0196cfd..882c9808 100644 --- a/packages/reusables/src/components/ui/checkbox.tsx +++ b/packages/reusables/src/components/ui/checkbox.tsx @@ -1,4 +1,5 @@ -import { Check } from '@/lib/icons/Check'; +import { Icon } from '@/components/ui/icon'; +import { Check } from 'lucide-react-native'; import { cn } from '@/lib/utils'; import * as CheckboxPrimitive from '@rn-primitives/checkbox'; import * as React from 'react'; @@ -20,7 +21,8 @@ function Checkbox({ {...props} > - - {children} - + <>{children} + ); @@ -164,10 +162,10 @@ function ContextMenuCheckboxItem({ > - + - {children} + <>{children} ); } @@ -194,7 +192,7 @@ function ContextMenuRadioItem({ - {children} + <>{children} ); } diff --git a/packages/reusables/src/components/ui/dialog.tsx b/packages/reusables/src/components/ui/dialog.tsx index 520572d6..d6c21d1f 100644 --- a/packages/reusables/src/components/ui/dialog.tsx +++ b/packages/reusables/src/components/ui/dialog.tsx @@ -1,6 +1,7 @@ -import { X } from '@/lib/icons/X'; +import { Icon } from '@/components/ui/icon'; import { cn } from '@/lib/utils'; import * as DialogPrimitive from '@rn-primitives/dialog'; +import { X } from 'lucide-react-native'; import * as React from 'react'; import { Platform, StyleSheet, View, type ViewProps } from 'react-native'; import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; @@ -47,7 +48,7 @@ function DialogOverlayNative({ {...props} > - {children} + <>{children} ); @@ -88,7 +89,8 @@ function DialogContent({ 'absolute right-4 top-4 p-0.5 web:group rounded-sm opacity-70 web:ring-offset-background web:transition-opacity web:hover:opacity-100 web:focus:outline-none web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 web:disabled:pointer-events-none' } > - diff --git a/packages/reusables/src/components/ui/dropdown-menu.tsx b/packages/reusables/src/components/ui/dropdown-menu.tsx index 8460c7ae..d009ea22 100644 --- a/packages/reusables/src/components/ui/dropdown-menu.tsx +++ b/packages/reusables/src/components/ui/dropdown-menu.tsx @@ -1,8 +1,6 @@ import { TextClassContext } from '@/components/ui/text'; -import { Check } from '@/lib/icons/Check'; -import { ChevronDown } from '@/lib/icons/ChevronDown'; -import { ChevronRight } from '@/lib/icons/ChevronRight'; -import { ChevronUp } from '@/lib/icons/ChevronUp'; +import { Icon } from '@/components/ui/icon'; +import { Check, ChevronDown, ChevronRight, ChevronUp } from 'lucide-react-native'; import { cn } from '@/lib/utils'; import * as DropdownMenuPrimitive from '@rn-primitives/dropdown-menu'; import * as React from 'react'; @@ -40,7 +38,7 @@ function DropdownMenuSubTrigger({ children?: React.ReactNode; }) { const { open } = DropdownMenuPrimitive.useSubContext(); - const Icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown; + const icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown; return ( - {children} - + <>{children} + ); @@ -173,10 +171,10 @@ function DropdownMenuCheckboxItem({ > - + - {children} + <>{children} ); } @@ -203,7 +201,7 @@ function DropdownMenuRadioItem({ - {children} + <>{children} ); } diff --git a/packages/reusables/src/components/ui/form.tsx b/packages/reusables/src/components/ui/form.tsx index 83dbd02a..1f7e1dd1 100644 --- a/packages/reusables/src/components/ui/form.tsx +++ b/packages/reusables/src/components/ui/form.tsx @@ -13,6 +13,7 @@ import { Calendar } from '@/components/deprecated-ui/calendar'; import { Combobox, ComboboxOption } from '@/components/deprecated-ui/combobox'; import { Button, buttonTextVariants } from '@/components/ui/button'; import { Checkbox } from '@/components/ui/checkbox'; +import { Icon } from '@/components/ui/icon'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { RadioGroup } from '@/components/ui/radio-group'; @@ -20,9 +21,8 @@ import { Select, type Option } from '@/components/ui/select'; import { Switch } from '@/components/ui/switch'; import { Text } from '@/components/ui/text'; import { Textarea } from '@/components/ui/textarea'; -import { Calendar as CalendarIcon } from '@/lib/icons/Calendar'; -import { X } from '@/lib/icons/X'; import { cn } from '@/lib/utils'; +import { Calendar as CalendarIcon, X } from 'lucide-react-native'; import * as React from 'react'; import { Controller, @@ -363,7 +363,8 @@ const FormDatePicker = React.forwardRef< > {({ pressed }) => ( <> - - + )} diff --git a/packages/reusables/src/components/ui/icon.tsx b/packages/reusables/src/components/ui/icon.tsx new file mode 100644 index 00000000..c6f52c0b --- /dev/null +++ b/packages/reusables/src/components/ui/icon.tsx @@ -0,0 +1,43 @@ +import { cn } from '@/lib'; +import type { LucideIcon, LucideProps } from 'lucide-react-native'; +import { cssInterop } from 'nativewind'; + +type IconProps = LucideProps & { + as: LucideIcon; +}; + +/** + * A wrapper component for Lucide icons with NativeWind `className` support via `cssInterop`. + * + * This component allows you to render any Lucide icon while applying utility classes + * using `nativewind`. It avoids the need to wrap or configure each icon individually. + * + * @component + * @example + * ```tsx + * import { ArrowRight } from 'lucide-react-native'; + * import { Icon } from '@/components/ui/icon'; + * + * + * ``` + * + * @param {LucideIcon} as - The Lucide icon component to render. + * @param {string} className - Utility classes to style the icon using NativeWind. + * @param {number} size - Icon size (defaults to 14). + * @param {...LucideProps} ...props - Additional Lucide icon props passed to the "as" icon. + */ +function Icon({ as: IconComponent, className, size = 14, ...props }: IconProps) { + return ; +} + +cssInterop(Icon, { + className: { + target: 'style', + nativeStyleToProp: { + color: true, + opacity: true, + }, + }, +}); + +export { Icon }; diff --git a/packages/reusables/src/components/ui/menubar.tsx b/packages/reusables/src/components/ui/menubar.tsx index 955caa14..b913c32a 100644 --- a/packages/reusables/src/components/ui/menubar.tsx +++ b/packages/reusables/src/components/ui/menubar.tsx @@ -1,10 +1,8 @@ +import { Icon } from '@/components/ui/icon'; import { TextClassContext } from '@/components/ui/text'; -import { Check } from '@/lib/icons/Check'; -import { ChevronDown } from '@/lib/icons/ChevronDown'; -import { ChevronRight } from '@/lib/icons/ChevronRight'; -import { ChevronUp } from '@/lib/icons/ChevronUp'; import { cn } from '@/lib/utils'; import * as MenubarPrimitive from '@rn-primitives/menubar'; +import { Check, ChevronDown, ChevronRight, ChevronUp } from 'lucide-react-native'; import * as React from 'react'; import { Platform, Text, type TextProps, View } from 'react-native'; @@ -68,7 +66,7 @@ function MenubarSubTrigger({ children?: React.ReactNode; }) { const { open } = MenubarPrimitive.useSubContext(); - const Icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown; + const icon = Platform.OS === 'web' ? ChevronRight : open ? ChevronUp : ChevronDown; return ( - {children} - + <>{children} + ); @@ -182,10 +180,10 @@ function MenubarCheckboxItem({ > - + - {children} + <>{children} ); } @@ -212,7 +210,7 @@ function MenubarRadioItem({ - {children} + <>{children} ); } diff --git a/packages/reusables/src/components/ui/navigation-menu.tsx b/packages/reusables/src/components/ui/navigation-menu.tsx index f624cf8e..72c5af78 100644 --- a/packages/reusables/src/components/ui/navigation-menu.tsx +++ b/packages/reusables/src/components/ui/navigation-menu.tsx @@ -1,7 +1,8 @@ -import { ChevronDown } from '@/lib/icons/ChevronDown'; +import { Icon } from '@/components/ui/icon'; import { cn } from '@/lib/utils'; import * as NavigationMenuPrimitive from '@rn-primitives/navigation-menu'; import { cva } from 'class-variance-authority'; +import { ChevronDown } from 'lucide-react-native'; import * as React from 'react'; import { Platform, View } from 'react-native'; import Animated, { @@ -89,9 +90,10 @@ function NavigationMenuTrigger({ )} {...props} > - {children} + <>{children} - - {children} - + <>{children} + ); } @@ -52,7 +51,7 @@ function SelectScrollUpButton({ className, ...props }: SelectPrimitive.ScrollUpB className={cn('flex web:cursor-default items-center justify-center py-1', className)} {...props} > - + ); } @@ -69,7 +68,7 @@ function SelectScrollDownButton({ className, ...props }: SelectPrimitive.ScrollD className={cn('flex web:cursor-default items-center justify-center py-1', className)} {...props} > - + ); } @@ -157,7 +156,7 @@ function SelectItem({ > - + From f717a83a9267348006ecb2302dda451f6794f70f Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 6 Jun 2025 14:50:23 -0400 Subject: [PATCH 048/467] fix(reusables): icon class names being applied --- packages/reusables/src/components/ui/icon.tsx | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/reusables/src/components/ui/icon.tsx b/packages/reusables/src/components/ui/icon.tsx index c6f52c0b..d38f945c 100644 --- a/packages/reusables/src/components/ui/icon.tsx +++ b/packages/reusables/src/components/ui/icon.tsx @@ -1,11 +1,17 @@ -import { cn } from '@/lib'; +import { cn } from '@/lib/utils'; import type { LucideIcon, LucideProps } from 'lucide-react-native'; -import { cssInterop } from 'nativewind'; +import { remapProps } from 'nativewind'; type IconProps = LucideProps & { as: LucideIcon; }; +function IconImpl({ as: IconComponent, ...props }: IconProps) { + return ; +} + +remapProps(IconImpl, { className: 'style' }); + /** * A wrapper component for Lucide icons with NativeWind `className` support via `cssInterop`. * @@ -27,17 +33,14 @@ type IconProps = LucideProps & { * @param {...LucideProps} ...props - Additional Lucide icon props passed to the "as" icon. */ function Icon({ as: IconComponent, className, size = 14, ...props }: IconProps) { - return ; + return ( + + ); } -cssInterop(Icon, { - className: { - target: 'style', - nativeStyleToProp: { - color: true, - opacity: true, - }, - }, -}); - export { Icon }; From 70f232d5541928961894b8a5335077996048c369 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Fri, 6 Jun 2025 14:50:49 -0400 Subject: [PATCH 049/467] feat(reusables): add examples from docs to reusables --- apps/showcase/app/alert.tsx | 3 +- apps/showcase/app/select.tsx | 20 +- .../reusables/src/components/ui/alert.tsx | 10 +- .../reusables/src/components/ui/checkbox.tsx | 2 +- packages/reusables/src/examples/accordion.tsx | 41 ++++ .../reusables/src/examples/alert-dialog.tsx | 42 ++++ .../src/examples/alert/alert-default.tsx | 11 + .../src/examples/alert/alert-destructive.tsx | 11 + .../reusables/src/examples/aspect-ratio.tsx | 16 ++ packages/reusables/src/examples/avatar.tsx | 15 ++ .../src/examples/badge/badge-default.tsx | 10 + .../src/examples/badge/badge-destructive.tsx | 10 + .../src/examples/badge/badge-outline.tsx | 10 + .../src/examples/badge/badge-secondary.tsx | 10 + .../examples/button/button-destructive.tsx | 10 + .../src/examples/button/button-ghost.tsx | 10 + .../src/examples/button/button-icon.tsx | 11 + .../src/examples/button/button-link.tsx | 10 + .../src/examples/button/button-loading.tsx | 16 ++ .../src/examples/button/button-outline.tsx | 10 + .../src/examples/button/button-primary.tsx | 10 + .../src/examples/button/button-secondary.tsx | 10 + .../src/examples/button/button-with-icon.tsx | 13 + .../src/examples/card/card-default.tsx | 70 ++++++ .../src/examples/card/card-example.tsx | 75 ++++++ .../examples/checkbox/checkbox-default.tsx | 17 ++ .../collapsible/collapsible-native.tsx | 54 ++++ .../examples/collapsible/collapsible-web.tsx | 41 ++++ .../context-menu/context-menu-native.tsx | 110 +++++++++ .../context-menu/context-menu-web.tsx | 110 +++++++++ .../src/examples/dialog/dialog-native.tsx | 59 +++++ .../src/examples/dialog/dialog-web.tsx | 63 +++++ .../dropdown-menu/dropdown-menu-native.tsx | 114 +++++++++ .../dropdown-menu/dropdown-menu-web.tsx | 102 ++++++++ .../examples/hover-card/hover-card-native.tsx | 50 ++++ .../examples/hover-card/hover-card-web.tsx | 43 ++++ packages/reusables/src/examples/input.tsx | 12 + .../src/examples/label/label-default.tsx | 16 ++ .../src/examples/menubar/menubar-native.tsx | 230 ++++++++++++++++++ .../src/examples/menubar/menubar-web.tsx | 191 +++++++++++++++ .../navigation-menu-native.tsx | 167 +++++++++++++ .../navigation-menu/navigation-menu-web.tsx | 143 +++++++++++ 42 files changed, 1961 insertions(+), 17 deletions(-) create mode 100644 packages/reusables/src/examples/accordion.tsx create mode 100644 packages/reusables/src/examples/alert-dialog.tsx create mode 100644 packages/reusables/src/examples/alert/alert-default.tsx create mode 100644 packages/reusables/src/examples/alert/alert-destructive.tsx create mode 100644 packages/reusables/src/examples/aspect-ratio.tsx create mode 100644 packages/reusables/src/examples/avatar.tsx create mode 100644 packages/reusables/src/examples/badge/badge-default.tsx create mode 100644 packages/reusables/src/examples/badge/badge-destructive.tsx create mode 100644 packages/reusables/src/examples/badge/badge-outline.tsx create mode 100644 packages/reusables/src/examples/badge/badge-secondary.tsx create mode 100644 packages/reusables/src/examples/button/button-destructive.tsx create mode 100644 packages/reusables/src/examples/button/button-ghost.tsx create mode 100644 packages/reusables/src/examples/button/button-icon.tsx create mode 100644 packages/reusables/src/examples/button/button-link.tsx create mode 100644 packages/reusables/src/examples/button/button-loading.tsx create mode 100644 packages/reusables/src/examples/button/button-outline.tsx create mode 100644 packages/reusables/src/examples/button/button-primary.tsx create mode 100644 packages/reusables/src/examples/button/button-secondary.tsx create mode 100644 packages/reusables/src/examples/button/button-with-icon.tsx create mode 100644 packages/reusables/src/examples/card/card-default.tsx create mode 100644 packages/reusables/src/examples/card/card-example.tsx create mode 100644 packages/reusables/src/examples/checkbox/checkbox-default.tsx create mode 100644 packages/reusables/src/examples/collapsible/collapsible-native.tsx create mode 100644 packages/reusables/src/examples/collapsible/collapsible-web.tsx create mode 100644 packages/reusables/src/examples/context-menu/context-menu-native.tsx create mode 100644 packages/reusables/src/examples/context-menu/context-menu-web.tsx create mode 100644 packages/reusables/src/examples/dialog/dialog-native.tsx create mode 100644 packages/reusables/src/examples/dialog/dialog-web.tsx create mode 100644 packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx create mode 100644 packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx create mode 100644 packages/reusables/src/examples/hover-card/hover-card-native.tsx create mode 100644 packages/reusables/src/examples/hover-card/hover-card-web.tsx create mode 100644 packages/reusables/src/examples/input.tsx create mode 100644 packages/reusables/src/examples/label/label-default.tsx create mode 100644 packages/reusables/src/examples/menubar/menubar-native.tsx create mode 100644 packages/reusables/src/examples/menubar/menubar-web.tsx create mode 100644 packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx create mode 100644 packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx diff --git a/apps/showcase/app/alert.tsx b/apps/showcase/app/alert.tsx index aba901bb..e14dcbac 100644 --- a/apps/showcase/app/alert.tsx +++ b/apps/showcase/app/alert.tsx @@ -1,7 +1,6 @@ import { View } from 'react-native'; import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; -import { AlertTriangle } from '@/lib/icons/AlertTriangle'; -import { Terminal } from '@/lib/icons/Terminal'; +import { AlertTriangle, Terminal } from 'lucide-react-native'; export default function AlertScreen() { return ( diff --git a/apps/showcase/app/select.tsx b/apps/showcase/app/select.tsx index f9ca7d46..757407d2 100644 --- a/apps/showcase/app/select.tsx +++ b/apps/showcase/app/select.tsx @@ -41,10 +41,12 @@ export default function SelectScreen() { { - // Temporary fix for https://github.com/mrzachnugent/react-native-reusables/issues/343#issuecomment-2779827475 - triggerRef.current?.open(); - }} + onTouchStart={Platform.select({ + web: () => { + // Temporary fix for https://github.com/mrzachnugent/react-native-reusables/issues/343#issuecomment-2779827475 + triggerRef.current?.open(); + }, + })} > { - // Temporary fix for https://github.com/mrzachnugent/react-native-reusables/issues/343#issuecomment-2779827475 - triggerScollableRef.current?.open(); - }} + onTouchStart={Platform.select({ + web: () => { + // Temporary fix for https://github.com/mrzachnugent/react-native-reusables/issues/343#issuecomment-2779827475 + triggerScollableRef.current?.open(); + }, + })} > {children} diff --git a/packages/reusables/src/components/ui/checkbox.tsx b/packages/reusables/src/components/ui/checkbox.tsx index 882c9808..344eb8d2 100644 --- a/packages/reusables/src/components/ui/checkbox.tsx +++ b/packages/reusables/src/components/ui/checkbox.tsx @@ -1,7 +1,7 @@ import { Icon } from '@/components/ui/icon'; -import { Check } from 'lucide-react-native'; import { cn } from '@/lib/utils'; import * as CheckboxPrimitive from '@rn-primitives/checkbox'; +import { Check } from 'lucide-react-native'; import * as React from 'react'; import { Platform } from 'react-native'; diff --git a/packages/reusables/src/examples/accordion.tsx b/packages/reusables/src/examples/accordion.tsx new file mode 100644 index 00000000..1a2a2cfe --- /dev/null +++ b/packages/reusables/src/examples/accordion.tsx @@ -0,0 +1,41 @@ +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from '@/components/ui/accordion'; +import { Text } from '@/components/ui/text'; + +export function AccordionPreview() { + return ( + + + + Is it accessible? + + + Yes. It adheres to the WAI-ARIA design pattern. + + + + + What are universal components? + + + + In the world of React Native, universal components are components that work on both web + and native platforms. + + + + + + Is this component universal? + + + Yes. Try it out on the web, iOS, and/or Android. + + + + ); +} diff --git a/packages/reusables/src/examples/alert-dialog.tsx b/packages/reusables/src/examples/alert-dialog.tsx new file mode 100644 index 00000000..7928d2d9 --- /dev/null +++ b/packages/reusables/src/examples/alert-dialog.tsx @@ -0,0 +1,42 @@ +import { + AlertDialog, + AlertDialogAction, + AlertDialogCancel, + AlertDialogContent, + AlertDialogDescription, + AlertDialogFooter, + AlertDialogHeader, + AlertDialogTitle, + AlertDialogTrigger, +} from '@/components/ui/alert-dialog'; +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function AlertDialogPreview() { + return ( + + + + + + + Are you absolutely sure? + + This action cannot be undone. This will permanently delete your account and remove your + data from our servers. + + + + + Cancel + + + Continue + + + + + ); +} diff --git a/packages/reusables/src/examples/alert/alert-default.tsx b/packages/reusables/src/examples/alert/alert-default.tsx new file mode 100644 index 00000000..07240917 --- /dev/null +++ b/packages/reusables/src/examples/alert/alert-default.tsx @@ -0,0 +1,11 @@ +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { Terminal } from 'lucide-react-native'; + +export function AlertPreview() { + return ( + + Heads up! + You can use a terminal to run commands on your computer. + + ); +} diff --git a/packages/reusables/src/examples/alert/alert-destructive.tsx b/packages/reusables/src/examples/alert/alert-destructive.tsx new file mode 100644 index 00000000..f2a95153 --- /dev/null +++ b/packages/reusables/src/examples/alert/alert-destructive.tsx @@ -0,0 +1,11 @@ +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { AlertCircle } from 'lucide-react-native'; + +export function AlertDestructive() { + return ( + + Error + Your session has expired. Please log in again. + + ); +} diff --git a/packages/reusables/src/examples/aspect-ratio.tsx b/packages/reusables/src/examples/aspect-ratio.tsx new file mode 100644 index 00000000..a7f35160 --- /dev/null +++ b/packages/reusables/src/examples/aspect-ratio.tsx @@ -0,0 +1,16 @@ +import { AspectRatio } from '@/components/ui/aspect-ratio'; +import { Image } from 'react-native'; + +export function AspectRatioPreview() { + return ( + + Photo by Drew Beamer + + ); +} diff --git a/packages/reusables/src/examples/avatar.tsx b/packages/reusables/src/examples/avatar.tsx new file mode 100644 index 00000000..873efd8e --- /dev/null +++ b/packages/reusables/src/examples/avatar.tsx @@ -0,0 +1,15 @@ +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Text } from '@/components/ui/text'; + +const SOURCE = { uri: 'https://github.com/mrzachnugent.png' }; + +export function AvatarPreview() { + return ( + + + + ZN + + + ); +} diff --git a/packages/reusables/src/examples/badge/badge-default.tsx b/packages/reusables/src/examples/badge/badge-default.tsx new file mode 100644 index 00000000..7c9f4d60 --- /dev/null +++ b/packages/reusables/src/examples/badge/badge-default.tsx @@ -0,0 +1,10 @@ +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; + +export function BadgePreview() { + return ( + + Badge + + ); +} diff --git a/packages/reusables/src/examples/badge/badge-destructive.tsx b/packages/reusables/src/examples/badge/badge-destructive.tsx new file mode 100644 index 00000000..3d1379d6 --- /dev/null +++ b/packages/reusables/src/examples/badge/badge-destructive.tsx @@ -0,0 +1,10 @@ +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; + +export function BadgeDestructivePreview() { + return ( + + Destructive + + ); +} diff --git a/packages/reusables/src/examples/badge/badge-outline.tsx b/packages/reusables/src/examples/badge/badge-outline.tsx new file mode 100644 index 00000000..c4122380 --- /dev/null +++ b/packages/reusables/src/examples/badge/badge-outline.tsx @@ -0,0 +1,10 @@ +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; + +export function BadgeOutlinePreview() { + return ( + + Outline + + ); +} diff --git a/packages/reusables/src/examples/badge/badge-secondary.tsx b/packages/reusables/src/examples/badge/badge-secondary.tsx new file mode 100644 index 00000000..794f1b3e --- /dev/null +++ b/packages/reusables/src/examples/badge/badge-secondary.tsx @@ -0,0 +1,10 @@ +import { Badge } from '@/components/ui/badge'; +import { Text } from '@/components/ui/text'; + +export function BadgeSecondaryPreview() { + return ( + + Secondary + + ); +} diff --git a/packages/reusables/src/examples/button/button-destructive.tsx b/packages/reusables/src/examples/button/button-destructive.tsx new file mode 100644 index 00000000..d0e1480f --- /dev/null +++ b/packages/reusables/src/examples/button/button-destructive.tsx @@ -0,0 +1,10 @@ +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function ButtonDestructivePreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-ghost.tsx b/packages/reusables/src/examples/button/button-ghost.tsx new file mode 100644 index 00000000..2cf8c121 --- /dev/null +++ b/packages/reusables/src/examples/button/button-ghost.tsx @@ -0,0 +1,10 @@ +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function ButtonGhostPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-icon.tsx b/packages/reusables/src/examples/button/button-icon.tsx new file mode 100644 index 00000000..2c9e8ff0 --- /dev/null +++ b/packages/reusables/src/examples/button/button-icon.tsx @@ -0,0 +1,11 @@ +import { Button } from '@/components/ui/button'; +import { Icon } from '@/components/ui/icon'; +import { ChevronRight } from 'lucide-react-native'; + +export function ButtonIconPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-link.tsx b/packages/reusables/src/examples/button/button-link.tsx new file mode 100644 index 00000000..846c5223 --- /dev/null +++ b/packages/reusables/src/examples/button/button-link.tsx @@ -0,0 +1,10 @@ +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function ButtonLinkPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-loading.tsx b/packages/reusables/src/examples/button/button-loading.tsx new file mode 100644 index 00000000..57f47cc3 --- /dev/null +++ b/packages/reusables/src/examples/button/button-loading.tsx @@ -0,0 +1,16 @@ +import { Button } from '@/components/ui/button'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { Loader2 } from 'lucide-react-native'; +import { View } from 'react-native'; + +export function ButtonLoadingPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-outline.tsx b/packages/reusables/src/examples/button/button-outline.tsx new file mode 100644 index 00000000..ad4b2933 --- /dev/null +++ b/packages/reusables/src/examples/button/button-outline.tsx @@ -0,0 +1,10 @@ +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function ButtonOutlinePreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-primary.tsx b/packages/reusables/src/examples/button/button-primary.tsx new file mode 100644 index 00000000..293608ca --- /dev/null +++ b/packages/reusables/src/examples/button/button-primary.tsx @@ -0,0 +1,10 @@ +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function ButtonPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-secondary.tsx b/packages/reusables/src/examples/button/button-secondary.tsx new file mode 100644 index 00000000..61e80580 --- /dev/null +++ b/packages/reusables/src/examples/button/button-secondary.tsx @@ -0,0 +1,10 @@ +import { Button } from '@/components/ui/button'; +import { Text } from '@/components/ui/text'; + +export function ButtonSecondaryPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/button/button-with-icon.tsx b/packages/reusables/src/examples/button/button-with-icon.tsx new file mode 100644 index 00000000..7dc012f2 --- /dev/null +++ b/packages/reusables/src/examples/button/button-with-icon.tsx @@ -0,0 +1,13 @@ +import { Button } from '@/components/ui/button'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { Mail } from 'lucide-react-native'; + +export function ButtonWithIconPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/card/card-default.tsx b/packages/reusables/src/examples/card/card-default.tsx new file mode 100644 index 00000000..45192a0b --- /dev/null +++ b/packages/reusables/src/examples/card/card-default.tsx @@ -0,0 +1,70 @@ +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select'; +import { Text } from '@/components/ui/text'; +import { View } from 'react-native'; + +export function CardPreview() { + return ( + + {/* TODO: remove when checked that above works: */} + + Create project + Deploy your new project in one-click. + + + + + + + + + + + + + + + + + + + ); +} diff --git a/packages/reusables/src/examples/card/card-example.tsx b/packages/reusables/src/examples/card/card-example.tsx new file mode 100644 index 00000000..60ac5af0 --- /dev/null +++ b/packages/reusables/src/examples/card/card-example.tsx @@ -0,0 +1,75 @@ +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Icon } from '@/components/ui/icon'; +import { Switch } from '@/components/ui/switch'; +import { Text } from '@/components/ui/text'; +import { Check, Sparkles } from 'lucide-react-native'; +import * as React from 'react'; +import { View } from 'react-native'; + +const NOTIFICATIONS = [ + { + title: 'Your call has been confirmed.', + description: '1 hour ago', + }, + { + title: 'You have a new message!', + description: '1 hour ago', + }, + { + title: 'Your subscription is expiring soon!', + description: '2 hours ago', + }, +]; + +export function CardExample() { + const [checked, setChecked] = React.useState(false); + return ( + + + Notifications + You have 3 unread messages. + + + + + + Push Notifications + + Send notifications to device. + + + + + + {NOTIFICATIONS.map((notification, index) => ( + + + + + + + {notification.title} + + {notification.description} + + + ))} + + + + + + + ); +} diff --git a/packages/reusables/src/examples/checkbox/checkbox-default.tsx b/packages/reusables/src/examples/checkbox/checkbox-default.tsx new file mode 100644 index 00000000..09c73135 --- /dev/null +++ b/packages/reusables/src/examples/checkbox/checkbox-default.tsx @@ -0,0 +1,17 @@ +import { Checkbox } from '@/components/ui/checkbox'; +import { Label } from '@/components/ui/label'; +import * as React from 'react'; +import { View } from 'react-native'; + +export function CheckboxPreview() { + const [checked, setChecked] = React.useState(false); + + return ( + + + + + ); +} diff --git a/packages/reusables/src/examples/collapsible/collapsible-native.tsx b/packages/reusables/src/examples/collapsible/collapsible-native.tsx new file mode 100644 index 00000000..f10c53c4 --- /dev/null +++ b/packages/reusables/src/examples/collapsible/collapsible-native.tsx @@ -0,0 +1,54 @@ +import { Button } from '@/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; +import { Icon } from '@/components/ui/icon'; +import { ChevronsUpDown } from 'lucide-react-native'; +import { Platform, Text, View } from 'react-native'; +import Animated, { FadeInDown, LinearTransition } from 'react-native-reanimated'; + +export function CollapsiblePreview() { + return ( + + + + + + @peduarte starred 3 repositories + + + + + + + @radix-ui/primitives + + + @radix-ui/react + @stitches/core + + + + + ); +} + +function CollapsibleItem({ children, delay }: { children: string; delay: number }) { + if (Platform.OS === 'web') { + return ( + + {children} + + ); + } + + return ( + + {children} + + ); +} diff --git a/packages/reusables/src/examples/collapsible/collapsible-web.tsx b/packages/reusables/src/examples/collapsible/collapsible-web.tsx new file mode 100644 index 00000000..1405e965 --- /dev/null +++ b/packages/reusables/src/examples/collapsible/collapsible-web.tsx @@ -0,0 +1,41 @@ +import { Button } from '@/components/ui/button'; +import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { ChevronsUpDown } from 'lucide-react-native'; +import { View } from 'react-native'; + +export function CollapsiblePreview() { + return ( + + + + @peduarte starred 3 repositories + + + + + + + @radix-ui/primitives + + + @radix-ui/react + @stitches/core + + + ); +} + +function CollapsibleItem({ children }: { children: string }) { + return ( + + {children} + + ); +} diff --git a/packages/reusables/src/examples/context-menu/context-menu-native.tsx b/packages/reusables/src/examples/context-menu/context-menu-native.tsx new file mode 100644 index 00000000..ba74752e --- /dev/null +++ b/packages/reusables/src/examples/context-menu/context-menu-native.tsx @@ -0,0 +1,110 @@ +import { + ContextMenu, + ContextMenuCheckboxItem, + ContextMenuContent, + ContextMenuItem, + ContextMenuLabel, + ContextMenuRadioGroup, + ContextMenuRadioItem, + ContextMenuSeparator, + ContextMenuShortcut, + ContextMenuSub, + ContextMenuSubContent, + ContextMenuSubTrigger, + ContextMenuTrigger, +} from '@/components/ui/context-menu'; +import { Text } from '@/components/ui/text'; +import * as React from 'react'; +import { Platform } from 'react-native'; +import Animated, { FadeIn } from 'react-native-reanimated'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + +// TODO(zach): use only 1 component for context menu + +export function ContextMenuPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + const [checkboxValue, setCheckboxValue] = React.useState(false); + const [subCheckboxValue, setSubCheckboxValue] = React.useState(false); + const [radioValue, setRadioValue] = React.useState('pedro'); + + return ( + + + + {Platform.OS === 'web' ? 'Right click here' : 'Long press here'} + + + + + + Back + ⌘[ + + + Forward + ⌘] + + + Reload + ⌘R + + + + + More Tools + + + + + Save Page As... + ⇧⌘S + + + Create Shortcut... + + + + + Developer Tools + + + + + + + + Show Bookmarks Bar + ⌘⇧B + + + Show Full URLs + + + + People + + + Elmer Fudd + + + Foghorn Leghorn + + + + + ); +} diff --git a/packages/reusables/src/examples/context-menu/context-menu-web.tsx b/packages/reusables/src/examples/context-menu/context-menu-web.tsx new file mode 100644 index 00000000..eb383c81 --- /dev/null +++ b/packages/reusables/src/examples/context-menu/context-menu-web.tsx @@ -0,0 +1,110 @@ +import { + ContextMenu, + ContextMenuCheckboxItem, + ContextMenuContent, + ContextMenuItem, + ContextMenuLabel, + ContextMenuRadioGroup, + ContextMenuRadioItem, + ContextMenuSeparator, + ContextMenuShortcut, + ContextMenuSub, + ContextMenuSubContent, + ContextMenuSubTrigger, + ContextMenuTrigger, +} from '@/components/ui/context-menu'; +import { Text } from '@/components/ui/text'; +import * as React from 'react'; + +// TODO(zach): use only 1 component for context menu + +export function ContextMenuPreview() { + const [checkedValues, setCheckedValues] = React.useState({ + showBookmarksBar: false, + showFullUrls: false, + }); + const [value, setValue] = React.useState('pedro'); + + return ( + + + + + + + + Back + ⌘[ + + + Forward + ⌘] + + + Reload + ⌘R + + + + + More Tools + + + + Save Page As... + ⇧⌘S + + + Create Shortcut... + + + + + Developer Tools + + + + + + + setCheckedValues({ + ...checkedValues, + showBookmarksBar: !checkedValues.showBookmarksBar, + }) + } + closeOnPress={false} + > + Show Bookmarks Bar + ⌘⇧B + + + setCheckedValues({ ...checkedValues, showFullUrls: !checkedValues.showFullUrls }) + } + closeOnPress={false} + > + Show Full URLs + + + + People + + + Elmer Fudd + + + Foghorn Leghorn + + + + + ); +} diff --git a/packages/reusables/src/examples/dialog/dialog-native.tsx b/packages/reusables/src/examples/dialog/dialog-native.tsx new file mode 100644 index 00000000..ecc73297 --- /dev/null +++ b/packages/reusables/src/examples/dialog/dialog-native.tsx @@ -0,0 +1,59 @@ +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Text } from '@/components/ui/text'; +import { View } from 'react-native'; + +// TODO(zach): use only 1 component for dialog + +export function DialogPreview() { + return ( + + + + + + + Edit profile + + {"Make changes to your profile here. Click save when you're done."} + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/packages/reusables/src/examples/dialog/dialog-web.tsx b/packages/reusables/src/examples/dialog/dialog-web.tsx new file mode 100644 index 00000000..0b9b0446 --- /dev/null +++ b/packages/reusables/src/examples/dialog/dialog-web.tsx @@ -0,0 +1,63 @@ +import { Button } from '@/components/ui/button'; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, + DialogTrigger, +} from '@/components/ui/dialog'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Text } from '@/components/ui/text'; +import { View } from 'react-native'; + +// TODO(zach): use only 1 component for dialog + +export function DialogPreview() { + return ( + + + + + + + Edit profile + + {"Make changes to your profile here. Click save when you're done."} + + + + +
+ +
+ +
+ +
+ +
+ +
+
+ + + + + + +
+
+ ); +} diff --git a/packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx b/packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx new file mode 100644 index 00000000..c6446fe8 --- /dev/null +++ b/packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx @@ -0,0 +1,114 @@ +import { Button } from '@/components/ui/button'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { + Cloud, + Github, + LifeBuoy, + LogOut, + Mail, + MessageSquare, + Plus, + PlusCircle, + User, + UserPlus, + Users, +} from 'lucide-react-native'; +import Animated, { FadeIn } from 'react-native-reanimated'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + +// TODO(zach): use only 1 component for dropdown menu + +export default function DropdownMenuPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + + return ( + + + + + + My Account + + + + + Profile + + + + Team + + + + + Invite users + + + + + + Email + + + + Message + + + + + More... + + + + + + + New Team + ⌘+T + + + + + + GitHub + + + + Support + + + + API + + + + + Log out + ⇧⌘Q + + + + ); +} diff --git a/packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx b/packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx new file mode 100644 index 00000000..38a146cf --- /dev/null +++ b/packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx @@ -0,0 +1,102 @@ +import { Button } from '@/components/ui/button'; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { + Cloud, + Github, + LifeBuoy, + LogOut, + Mail, + MessageSquare, + Plus, + PlusCircle, + User, + UserPlus, + Users, +} from 'lucide-react-native'; + +// TODO(zach): use only 1 component for dropdown menu + +export function DropdownMenuPreview() { + return ( + + + + + + My Account + + + + + Profile + + + + Team + + + + + Invite users + + + + + Email + + + + Message + + + + + More... + + + + + + New Team + ⌘+T + + + + + + GitHub + + + + Support + + + + API + + + + + Log out + ⇧⌘Q + + + + ); +} diff --git a/packages/reusables/src/examples/hover-card/hover-card-native.tsx b/packages/reusables/src/examples/hover-card/hover-card-native.tsx new file mode 100644 index 00000000..e252f6cc --- /dev/null +++ b/packages/reusables/src/examples/hover-card/hover-card-native.tsx @@ -0,0 +1,50 @@ +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { CalendarDays } from 'lucide-react-native'; +import { View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + +export function HoverCardPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + return ( + + + + + + + + + + + VA + + + + @nextjs + + The React Framework – created and maintained by @vercel. + + + + + Joined December 2021 + + + + + + + ); +} diff --git a/packages/reusables/src/examples/hover-card/hover-card-web.tsx b/packages/reusables/src/examples/hover-card/hover-card-web.tsx new file mode 100644 index 00000000..5c72e8da --- /dev/null +++ b/packages/reusables/src/examples/hover-card/hover-card-web.tsx @@ -0,0 +1,43 @@ +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; +import { Button } from '@/components/ui/button'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { CalendarDays } from 'lucide-react-native'; +import { View } from 'react-native'; + +// TODO(zach): use only 1 component for hover card + +export function HoverCardPreview() { + return ( + + + + + + + + + + VA + + + + @nextjs + + The React Framework – created and maintained by @vercel. + + + + + Joined December 2021 + + + + + + + ); +} diff --git a/packages/reusables/src/examples/input.tsx b/packages/reusables/src/examples/input.tsx new file mode 100644 index 00000000..d5f7a9e2 --- /dev/null +++ b/packages/reusables/src/examples/input.tsx @@ -0,0 +1,12 @@ +import { Input } from '@/components/ui/input'; + +export function InputPreview() { + return ( + + ); +} diff --git a/packages/reusables/src/examples/label/label-default.tsx b/packages/reusables/src/examples/label/label-default.tsx new file mode 100644 index 00000000..92a4fe29 --- /dev/null +++ b/packages/reusables/src/examples/label/label-default.tsx @@ -0,0 +1,16 @@ +import { Checkbox } from '@/components/ui/checkbox'; +import { Label } from '@/components/ui/label'; +import * as React from 'react'; +import { View } from 'react-native'; + +export function LabelPreview() { + const [checked, setChecked] = React.useState(false); + return ( + + + + + ); +} diff --git a/packages/reusables/src/examples/menubar/menubar-native.tsx b/packages/reusables/src/examples/menubar/menubar-native.tsx new file mode 100644 index 00000000..5d0324eb --- /dev/null +++ b/packages/reusables/src/examples/menubar/menubar-native.tsx @@ -0,0 +1,230 @@ +import { + Menubar, + MenubarCheckboxItem, + MenubarContent, + MenubarItem, + MenubarMenu, + MenubarRadioGroup, + MenubarRadioItem, + MenubarSeparator, + MenubarShortcut, + MenubarSub, + MenubarSubContent, + MenubarSubTrigger, + MenubarTrigger, +} from '@/components/ui/menubar'; +import { Text } from '@/components/ui/text'; +import { useNavigation } from 'expo-router'; +import * as React from 'react'; +import { Pressable, StyleSheet, View } from 'react-native'; +import Animated, { FadeIn } from 'react-native-reanimated'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + +// TODO(zach): use only 1 component for menubar + +export function MenubarPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + const [value, setValue] = React.useState(); + const [isSubOpen, setIsSubOpen] = React.useState(false); + const [isSubOpen2, setIsSubOpen2] = React.useState(false); + const [isChecked, setIsChecked] = React.useState(false); + const [isChecked2, setIsChecked2] = React.useState(false); + const [radio, setRadio] = React.useState('michael'); + const navigation = useNavigation(); + React.useEffect(() => { + const sub = navigation.addListener('blur', () => { + onValueChange(undefined); + }); + + return sub; + }, []); + + function closeSubs() { + setIsSubOpen(false); + setIsSubOpen2(false); + } + + function onValueChange(val: string | undefined) { + if (typeof val === 'string') { + setValue(val); + return; + } + closeSubs(); + setValue(undefined); + } + + return ( + + {!!value && ( + { + onValueChange(undefined); + }} + style={StyleSheet.absoluteFillObject} + /> + )} + + + + File + + + + New Tab + ⌘T + + + New Window + ⌘N + + + New Incognito Window + + + + + Share + + + + + Email link + + + Messages + + + Notes + + + + + + + Print... + ⌘P + + + + + + Edit + + + + Undo + ⌘Z + + + Redo + ⇧⌘Z + + + + + Find + + + + + Search the web + + + + Find... + + + Find Next + + + Find Previous + + + + + + + Cut + + + Copy + + + Paste + + + + + + View + + + + Always Show Bookmarks Bar + + + Always Show Full URLs + + + + Reload + ⌘R + + + Force Reload + ⇧⌘R + + + + Toggle Fullscreen + + + + Hide Sidebar + + + + + + Profiles + + + + + Andy + + + Michael + + + Creed + + + + + Edit... + + + + Add Profile... + + + + + + ); +} diff --git a/packages/reusables/src/examples/menubar/menubar-web.tsx b/packages/reusables/src/examples/menubar/menubar-web.tsx new file mode 100644 index 00000000..785ff97c --- /dev/null +++ b/packages/reusables/src/examples/menubar/menubar-web.tsx @@ -0,0 +1,191 @@ +import { + Menubar, + MenubarCheckboxItem, + MenubarContent, + MenubarItem, + MenubarMenu, + MenubarRadioGroup, + MenubarRadioItem, + MenubarSeparator, + MenubarShortcut, + MenubarSub, + MenubarSubContent, + MenubarSubTrigger, + MenubarTrigger, +} from '@/components/ui/menubar'; +import { Text } from '@/components/ui/text'; +import * as React from 'react'; + +// TODO(zach): fix primitive + double enter animation + +// TODO(zach): use only 1 component for menubar + +export function MenubarPreview() { + const [value, setValue] = React.useState('file'); + const [checkedValues, setCheckedValues] = React.useState({ + showBookmarksBar: false, + showFullUrls: false, + }); + const [radioValue, setRadioValue] = React.useState('andy'); + return ( + + + + File + + + + New Tab + ⌘T + + + New Window + ⌘N + + + New Incognito Window + + + + + Share + + + + Email link + + + Messages + + + Notes + + + + + + Print... + ⌘P + + + + + + Edit + + + + Undo + ⌘Z + + + Redo + ⇧⌘Z + + + + + Find + + + + Search the web + + + + Find... + + + Find Next + + + Find Previous + + + + + + Cut + + + Copy + + + Paste + + + + + + View + + + + setCheckedValues({ + ...checkedValues, + showBookmarksBar: !checkedValues.showBookmarksBar, + }) + } + closeOnPress={false} + > + Always Show Bookmarks Bar + + + setCheckedValues({ ...checkedValues, showFullUrls: !checkedValues.showFullUrls }) + } + closeOnPress={false} + > + Always Show Full URLs + + + + Reload + ⌘R + + + Force Reload + ⇧⌘R + + + + Toggle Fullscreen + + + + Hide Sidebar + + + + + + Profiles + + + + + Andy + + + Michael + + + Creed + + + + + Edit... + + + + Add Profile... + + + + + ); +} diff --git a/packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx b/packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx new file mode 100644 index 00000000..0033f46f --- /dev/null +++ b/packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx @@ -0,0 +1,167 @@ +import { Icon } from '@/components/ui/icon'; +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + navigationMenuTriggerStyle, +} from '@/components/ui/navigation-menu'; +import { Text } from '@/components/ui/text'; +import type { TextRef } from '@rn-primitives/types'; +import { useNavigation } from 'expo-router'; +import { Sparkles } from 'lucide-react-native'; +import * as React from 'react'; +import { View } from 'react-native'; +import { useSafeAreaInsets } from 'react-native-safe-area-context'; + +// TODO(zach): use only 1 component for navigation menu + +export function NavigationMenuPreview() { + const insets = useSafeAreaInsets(); + const contentInsets = { + top: insets.top, + bottom: insets.bottom, + left: 12, + right: 12, + }; + const [value, setValue] = React.useState(); + const navigation = useNavigation(); + + function closeAll() { + setValue(''); + } + + React.useEffect(() => { + const sub = navigation.addListener('blur', () => { + closeAll(); + }); + + return sub; + }, []); + + return ( + + + + + Getting started + + + + + + + + + react-native-reusables + + + Universal components that you can copy and paste into your apps. Accessible. + Customizable. Open Source. + + + + + + Re-usable components built using Radix UI on the web and Tailwind CSS. + + + How to install dependencies and structure your app. + + + Styles for headings, paragraphs, lists...etc + + + + + + + Components + + + + {COMPONENTS.map((component) => ( + + {component.description} + + ))} + + + + + + Documentation + + + + + ); +} + +const ListItem = React.forwardRef< + TextRef, + React.ComponentPropsWithoutRef & { title: string; href: string } +>(({ title, children, ...props }, ref) => { + return ( + + + + {title} + + + {children} + + + + ); +}); +ListItem.displayName = 'ListItem'; + +const COMPONENTS: { title: string; href: string; description: string }[] = [ + { + title: 'Alert Dialog', + href: '/alert-dialog/alert-dialog-universal', + description: + 'A modal dialog that interrupts the user with important content and expects a response.', + }, + { + title: 'Hover Card', + href: '/hover-card/hover-card-universal', + description: 'For sighted users to preview content available behind a link.', + }, + { + title: 'Progress', + href: '/progress/progress-universal', + description: + 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', + }, + { + title: 'Scroll-area', + href: '/scroll-area/scroll-area-universal', + description: 'Visually or semantically separates content.', + }, + { + title: 'Tabs', + href: '/tabs/tabs-universal', + description: + 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', + }, + { + title: 'Tooltip', + href: '/tooltip/tooltip-universal', + description: + 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', + }, +]; diff --git a/packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx b/packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx new file mode 100644 index 00000000..f90527ab --- /dev/null +++ b/packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx @@ -0,0 +1,143 @@ +import { Icon } from '@/components/ui/icon'; +import { + NavigationMenu, + NavigationMenuContent, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, +} from '@/components/ui/navigation-menu'; +import { Text } from '@/components/ui/text'; +import { Sparkles } from 'lucide-react-native'; +import * as React from 'react'; +import { View } from 'react-native'; + +// TODO(zach): use only 1 component for navigation menu + +// TODO(zach) + +export function NavigationMenuPreview() { + const [value, setValue] = React.useState('getting-started'); + return ( + + + + + Getting started + + + + + + + + + react-native-reusables + + + Universal components that you can copy and paste into your apps. Accessible. + Customizable. Open Source. + + + + + + Re-usable components built using Radix UI on the web and Tailwind CSS. + + + How to install dependencies and structure your app. + + + Styles for headings, paragraphs, lists...etc + + + + + + + Components + + + + {COMPONENTS.map((component) => ( + + {component.description} + + ))} + + + + + + Documentation + + + + + ); +} + +function ListItem({ + title, + children, + ...props +}: React.ComponentPropsWithoutRef & { title: string; href: string }) { + return ( + + + + {title} + + + {children} + + + + ); +} + +const COMPONENTS: { title: string; href: string; description: string }[] = [ + { + title: 'Alert Dialog', + href: '/alert-dialog/alert-dialog-universal', + description: + 'A modal dialog that interrupts the user with important content and expects a response.', + }, + { + title: 'Hover Card', + href: '/hover-card/hover-card-universal', + description: 'For sighted users to preview content available behind a link.', + }, + { + title: 'Progress', + href: '/progress/progress-universal', + description: + 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', + }, + { + title: 'Scroll-area', + href: '/scroll-area/scroll-area-universal', + description: 'Visually or semantically separates content.', + }, + { + title: 'Tabs', + href: '/tabs/tabs-universal', + description: + 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', + }, + { + title: 'Tooltip', + href: '/tooltip/tooltip-universal', + description: + 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', + }, +]; From d0708e6b9b4d75b5ff8e4d1c574126b518243f4f Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 7 Jun 2025 15:32:18 -0400 Subject: [PATCH 050/467] feat(docs): use examples from reusables package --- apps/docs/app/layout.tsx | 5 +- apps/docs/components/reusables.tsx | 514 ++++++++++-------- .../content/docs/(components)/accordion.mdx | 6 +- .../docs/(components)/alert-dialog.mdx | 6 +- apps/docs/content/docs/(components)/alert.mdx | 13 +- .../docs/(components)/aspect-ratio.mdx | 6 +- .../docs/content/docs/(components)/avatar.mdx | 6 +- apps/docs/content/docs/(components)/badge.mdx | 23 +- .../docs/content/docs/(components)/button.mdx | 48 +- apps/docs/content/docs/(components)/card.mdx | 11 +- .../content/docs/(components)/checkbox.mdx | 6 +- .../content/docs/(components)/collapsible.mdx | 6 +- .../docs/(components)/context-menu.mdx | 6 +- .../docs/content/docs/(components)/dialog.mdx | 6 +- .../docs/(components)/dropdown-menu.mdx | 6 +- .../content/docs/(components)/hover-card.mdx | 6 +- apps/docs/content/docs/(components)/input.mdx | 6 +- apps/docs/content/docs/(components)/label.mdx | 6 +- .../content/docs/(components)/menubar.mdx | 6 +- .../docs/(components)/navigation-menu.mdx | 6 +- apps/docs/next.config.mjs | 4 + apps/docs/previews/accordion.tsx | 41 -- apps/docs/previews/alert-dialog.tsx | 42 -- apps/docs/previews/alert/alert-default.tsx | 11 - .../docs/previews/alert/alert-destructive.tsx | 11 - apps/docs/previews/aspect-ratio.tsx | 16 - apps/docs/previews/avatar.tsx | 15 - apps/docs/previews/badge/badge-default.tsx | 10 - .../docs/previews/badge/badge-destructive.tsx | 10 - apps/docs/previews/badge/badge-outline.tsx | 10 - apps/docs/previews/badge/badge-secondary.tsx | 10 - .../previews/button/button-destructive.tsx | 10 - apps/docs/previews/button/button-ghost.tsx | 10 - apps/docs/previews/button/button-icon.tsx | 10 - apps/docs/previews/button/button-link.tsx | 10 - apps/docs/previews/button/button-loading.tsx | 15 - apps/docs/previews/button/button-outline.tsx | 10 - apps/docs/previews/button/button-primary.tsx | 10 - .../docs/previews/button/button-secondary.tsx | 10 - .../docs/previews/button/button-with-icon.tsx | 12 - apps/docs/previews/card/card-default.tsx | 69 --- apps/docs/previews/card/card-example.tsx | 74 --- .../previews/checkbox/checkbox-default.tsx | 15 - .../collapsible/collapsible-native.tsx | 57 -- .../previews/collapsible/collapsible-web.tsx | 44 -- .../context-menu/context-menu-native.tsx | 108 ---- .../context-menu/context-menu-web.tsx | 88 --- apps/docs/previews/dialog/dialog-native.tsx | 59 -- apps/docs/previews/dialog/dialog-web.tsx | 61 --- .../dropdown-menu/dropdown-menu-native.tsx | 109 ---- .../dropdown-menu/dropdown-menu-web.tsx | 97 ---- .../previews/hover-card/hover-card-native.tsx | 48 -- .../previews/hover-card/hover-card-web.tsx | 40 -- apps/docs/previews/input.tsx | 12 - apps/docs/previews/label/label-default.tsx | 15 - apps/docs/previews/menubar/menubar-native.tsx | 230 -------- apps/docs/previews/menubar/menubar-web.tsx | 167 ------ .../navigation-menu-native.tsx | 164 ------ .../navigation-menu/navigation-menu-web.tsx | 138 ----- .../reusables/src/components/ui/dialog.tsx | 2 +- .../checkbox-default.tsx => checkbox.tsx} | 0 ...collapsible-native.tsx => collapsible.tsx} | 0 .../examples/collapsible/collapsible-web.tsx | 41 -- ...ntext-menu-native.tsx => context-menu.tsx} | 4 +- .../context-menu/context-menu-web.tsx | 110 ---- .../{dialog/dialog-native.tsx => dialog.tsx} | 2 - .../src/examples/dialog/dialog-web.tsx | 63 --- ...down-menu-native.tsx => dropdown-menu.tsx} | 4 +- .../dropdown-menu/dropdown-menu-web.tsx | 102 ---- .../hover-card-native.tsx => hover-card.tsx} | 2 +- .../examples/hover-card/hover-card-web.tsx | 43 -- packages/reusables/src/examples/index.ts | 31 ++ .../{label/label-default.tsx => label.tsx} | 0 .../menubar-native.tsx => menubar.tsx} | 27 +- .../src/examples/menubar/menubar-web.tsx | 191 ------- ...on-menu-native.tsx => navigation-menu.tsx} | 24 +- .../navigation-menu/navigation-menu-web.tsx | 143 ----- packages/reusables/src/index.ts | 5 +- 78 files changed, 436 insertions(+), 2928 deletions(-) delete mode 100644 apps/docs/previews/accordion.tsx delete mode 100644 apps/docs/previews/alert-dialog.tsx delete mode 100644 apps/docs/previews/alert/alert-default.tsx delete mode 100644 apps/docs/previews/alert/alert-destructive.tsx delete mode 100644 apps/docs/previews/aspect-ratio.tsx delete mode 100644 apps/docs/previews/avatar.tsx delete mode 100644 apps/docs/previews/badge/badge-default.tsx delete mode 100644 apps/docs/previews/badge/badge-destructive.tsx delete mode 100644 apps/docs/previews/badge/badge-outline.tsx delete mode 100644 apps/docs/previews/badge/badge-secondary.tsx delete mode 100644 apps/docs/previews/button/button-destructive.tsx delete mode 100644 apps/docs/previews/button/button-ghost.tsx delete mode 100644 apps/docs/previews/button/button-icon.tsx delete mode 100644 apps/docs/previews/button/button-link.tsx delete mode 100644 apps/docs/previews/button/button-loading.tsx delete mode 100644 apps/docs/previews/button/button-outline.tsx delete mode 100644 apps/docs/previews/button/button-primary.tsx delete mode 100644 apps/docs/previews/button/button-secondary.tsx delete mode 100644 apps/docs/previews/button/button-with-icon.tsx delete mode 100644 apps/docs/previews/card/card-default.tsx delete mode 100644 apps/docs/previews/card/card-example.tsx delete mode 100644 apps/docs/previews/checkbox/checkbox-default.tsx delete mode 100644 apps/docs/previews/collapsible/collapsible-native.tsx delete mode 100644 apps/docs/previews/collapsible/collapsible-web.tsx delete mode 100644 apps/docs/previews/context-menu/context-menu-native.tsx delete mode 100644 apps/docs/previews/context-menu/context-menu-web.tsx delete mode 100644 apps/docs/previews/dialog/dialog-native.tsx delete mode 100644 apps/docs/previews/dialog/dialog-web.tsx delete mode 100644 apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx delete mode 100644 apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx delete mode 100644 apps/docs/previews/hover-card/hover-card-native.tsx delete mode 100644 apps/docs/previews/hover-card/hover-card-web.tsx delete mode 100644 apps/docs/previews/input.tsx delete mode 100644 apps/docs/previews/label/label-default.tsx delete mode 100644 apps/docs/previews/menubar/menubar-native.tsx delete mode 100644 apps/docs/previews/menubar/menubar-web.tsx delete mode 100644 apps/docs/previews/navigation-menu/navigation-menu-native.tsx delete mode 100644 apps/docs/previews/navigation-menu/navigation-menu-web.tsx rename packages/reusables/src/examples/{checkbox/checkbox-default.tsx => checkbox.tsx} (100%) rename packages/reusables/src/examples/{collapsible/collapsible-native.tsx => collapsible.tsx} (100%) delete mode 100644 packages/reusables/src/examples/collapsible/collapsible-web.tsx rename packages/reusables/src/examples/{context-menu/context-menu-native.tsx => context-menu.tsx} (98%) delete mode 100644 packages/reusables/src/examples/context-menu/context-menu-web.tsx rename packages/reusables/src/examples/{dialog/dialog-native.tsx => dialog.tsx} (97%) delete mode 100644 packages/reusables/src/examples/dialog/dialog-web.tsx rename packages/reusables/src/examples/{dropdown-menu/dropdown-menu-native.tsx => dropdown-menu.tsx} (97%) delete mode 100644 packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx rename packages/reusables/src/examples/{hover-card/hover-card-native.tsx => hover-card.tsx} (98%) delete mode 100644 packages/reusables/src/examples/hover-card/hover-card-web.tsx create mode 100644 packages/reusables/src/examples/index.ts rename packages/reusables/src/examples/{label/label-default.tsx => label.tsx} (100%) rename packages/reusables/src/examples/{menubar/menubar-native.tsx => menubar.tsx} (94%) delete mode 100644 packages/reusables/src/examples/menubar/menubar-web.tsx rename packages/reusables/src/examples/{navigation-menu/navigation-menu-native.tsx => navigation-menu.tsx} (94%) delete mode 100644 packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx index d8040914..edfb0a11 100644 --- a/apps/docs/app/layout.tsx +++ b/apps/docs/app/layout.tsx @@ -1,3 +1,4 @@ +import { SafeAreaProvider } from '@docs/components/reusables'; import './global.css'; import { RootProvider } from 'fumadocs-ui/provider'; import { Inter } from 'next/font/google'; @@ -11,7 +12,9 @@ export default function Layout({ children }: { children: ReactNode }) { return ( - {children} + + {children} + ); diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index 0083340d..fdc92b78 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -1,244 +1,280 @@ 'use client'; -import { Lib, Ui } from '@/index'; +export * from '@/components/ui'; +export * from '@/lib'; +export * from '@/examples'; +export { SafeAreaProvider } from 'react-native-safe-area-context'; -export const { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, - Alert, - AlertDescription, - AlertDialog, - AlertDialogAction, - AlertDialogCancel, - AlertDialogContent, - AlertDialogDescription, - AlertDialogFooter, - AlertDialogHeader, - AlertDialogOverlay, - AlertDialogPortal, - AlertDialogTitle, - AlertDialogTrigger, - AlertTitle, - AspectRatio, - Avatar, - AvatarFallback, - AvatarImage, - Badge, - BlockQuote, - Button, - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, - Checkbox, - Code, - Collapsible, - CollapsibleContent, - CollapsibleTrigger, - ContextMenu, - ContextMenuCheckboxItem, - ContextMenuContent, - ContextMenuGroup, - ContextMenuItem, - ContextMenuLabel, - ContextMenuRadioGroup, - ContextMenuRadioItem, - ContextMenuSeparator, - ContextMenuShortcut, - ContextMenuSub, - ContextMenuSubContent, - ContextMenuSubTrigger, - ContextMenuTrigger, - DataTable, - Dialog, - DialogClose, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogOverlay, - DialogPortal, - DialogTitle, - DialogTrigger, - DropdownMenu, - DropdownMenuCheckboxItem, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuPortal, - DropdownMenuRadioGroup, - DropdownMenuRadioItem, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, - Form, - FormCheckbox, - FormCombobox, - FormDatePicker, - FormDescription, - FormField, - FormInput, - FormItem, - FormLabel, - FormMessage, - FormRadioGroup, - FormSelect, - FormSwitch, - FormTextarea, - H1, - H2, - H3, - H4, - HoverCard, - HoverCardContent, - HoverCardTrigger, - Input, - Label, - Large, - Lead, - Menubar, - MenubarContent, - MenubarGroup, - MenubarCheckboxItem, - MenubarItem, - MenubarLabel, - MenubarMenu, - MenubarPortal, - MenubarRadioGroup, - MenubarRadioItem, - MenubarSeparator, - MenubarShortcut, - MenubarSub, - MenubarSubContent, - MenubarSubTrigger, - MenubarTrigger, - Muted, - NavigationMenu, - NavigationMenuContent, - NavigationMenuIndicator, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, - NavigationMenuViewport, - P, - Popover, - PopoverContent, - PopoverTrigger, - Progress, - RadioGroup, - RadioGroupItem, - Select, - SelectContent, - SelectGroup, - SelectItem, - SelectLabel, - SelectScrollDownButton, - SelectScrollUpButton, - SelectSeparator, - SelectTrigger, - SelectValue, - Separator, - Skeleton, - Small, - Switch, - Table, - TableBody, - TableCell, - TableFooter, - TableHead, - TableHeader, - TableRow, - Tabs, - TabsContent, - TabsList, - TabsTrigger, - Text, - TextClassContext, - Textarea, - Toggle, - Tooltip, - TooltipContent, - TooltipTrigger, - ToggleGroup, - ToggleGroupIcon, - ToggleGroupItem, - ToggleIcon, - badgeTextVariants, - badgeVariants, - buttonTextVariants, - buttonVariants, - navigationMenuTriggerStyle, - toggleTextVariants, - toggleVariants, - useFormField, -} = Ui; +// export const { +// Accordion, +// AccordionContent, +// AccordionItem, +// AccordionTrigger, +// Alert, +// AlertDescription, +// AlertDialog, +// AlertDialogAction, +// AlertDialogCancel, +// AlertDialogContent, +// AlertDialogDescription, +// AlertDialogFooter, +// AlertDialogHeader, +// AlertDialogOverlay, +// AlertDialogPortal, +// AlertDialogTitle, +// AlertDialogTrigger, +// AlertTitle, +// AspectRatio, +// Avatar, +// AvatarFallback, +// AvatarImage, +// Badge, +// BlockQuote, +// Button, +// Card, +// CardContent, +// CardDescription, +// CardFooter, +// CardHeader, +// CardTitle, +// Checkbox, +// Code, +// Collapsible, +// CollapsibleContent, +// CollapsibleTrigger, +// ContextMenu, +// ContextMenuCheckboxItem, +// ContextMenuContent, +// ContextMenuGroup, +// ContextMenuItem, +// ContextMenuLabel, +// ContextMenuRadioGroup, +// ContextMenuRadioItem, +// ContextMenuSeparator, +// ContextMenuShortcut, +// ContextMenuSub, +// ContextMenuSubContent, +// ContextMenuSubTrigger, +// ContextMenuTrigger, +// DataTable, +// Dialog, +// DialogClose, +// DialogContent, +// DialogDescription, +// DialogFooter, +// DialogHeader, +// DialogOverlay, +// DialogPortal, +// DialogTitle, +// DialogTrigger, +// DropdownMenu, +// DropdownMenuCheckboxItem, +// DropdownMenuContent, +// DropdownMenuGroup, +// DropdownMenuItem, +// DropdownMenuLabel, +// DropdownMenuPortal, +// DropdownMenuRadioGroup, +// DropdownMenuRadioItem, +// DropdownMenuSeparator, +// DropdownMenuShortcut, +// DropdownMenuSub, +// DropdownMenuSubContent, +// DropdownMenuSubTrigger, +// DropdownMenuTrigger, +// Form, +// FormCheckbox, +// FormCombobox, +// FormDatePicker, +// FormDescription, +// FormField, +// FormInput, +// FormItem, +// FormLabel, +// FormMessage, +// FormRadioGroup, +// FormSelect, +// FormSwitch, +// FormTextarea, +// H1, +// H2, +// H3, +// H4, +// HoverCard, +// HoverCardContent, +// HoverCardTrigger, +// Input, +// Label, +// Large, +// Lead, +// Menubar, +// MenubarContent, +// MenubarGroup, +// MenubarCheckboxItem, +// MenubarItem, +// MenubarLabel, +// MenubarMenu, +// MenubarPortal, +// MenubarRadioGroup, +// MenubarRadioItem, +// MenubarSeparator, +// MenubarShortcut, +// MenubarSub, +// MenubarSubContent, +// MenubarSubTrigger, +// MenubarTrigger, +// Muted, +// NavigationMenu, +// NavigationMenuContent, +// NavigationMenuIndicator, +// NavigationMenuItem, +// NavigationMenuLink, +// NavigationMenuList, +// NavigationMenuTrigger, +// NavigationMenuViewport, +// P, +// Popover, +// PopoverContent, +// PopoverTrigger, +// Progress, +// RadioGroup, +// RadioGroupItem, +// Select, +// SelectContent, +// SelectGroup, +// SelectItem, +// SelectLabel, +// SelectScrollDownButton, +// SelectScrollUpButton, +// SelectSeparator, +// SelectTrigger, +// SelectValue, +// Separator, +// Skeleton, +// Small, +// Switch, +// Table, +// TableBody, +// TableCell, +// TableFooter, +// TableHead, +// TableHeader, +// TableRow, +// Tabs, +// TabsContent, +// TabsList, +// TabsTrigger, +// Text, +// TextClassContext, +// Textarea, +// Toggle, +// Tooltip, +// TooltipContent, +// TooltipTrigger, +// ToggleGroup, +// ToggleGroupIcon, +// ToggleGroupItem, +// ToggleIcon, +// badgeTextVariants, +// badgeVariants, +// buttonTextVariants, +// buttonVariants, +// navigationMenuTriggerStyle, +// toggleTextVariants, +// toggleVariants, +// useFormField, +// } = Ui; -const { Icons } = Lib; +// export const { +// AccordionPreview, +// AlertPreview, +// AlertDestructive, +// AspectRatioPreview, +// AvatarPreview, +// AlertDialogPreview, +// BadgeDestructivePreview, +// BadgeOutlinePreview, +// BadgePreview, +// BadgeSecondaryPreview, +// ButtonDestructivePreview, +// ButtonGhostPreview, +// ButtonIconPreview, +// ButtonLinkPreview, +// ButtonLoadingPreview, +// ButtonOutlinePreview, +// ButtonPreview, +// ButtonSecondaryPreview, +// ButtonWithIconPreview, +// CardExample, +// CardPreview, +// CheckboxPreview, +// CollapsiblePreview, +// ContextMenuPreview, +// DialogPreview, +// HoverCardPreview, +// InputPreview, +// LabelPreview, +// MenubarPreview, +// NavigationMenuPreview, +// } = Examples; -export const { - Terminal, - AlertCircle, - ChevronRight, - Mail, - Loader2, - Check, - Sparkles, - ChevronsDownUp, - ChevronsUpDown, - Cloud, - Github, - LifeBuoy, - LogOut, - MessageSquare, - Plus, - PlusCircle, - UserPlus, - Users, - Activity, - Airplay, - AlarmClockIcon, - AlertTriangle, - AlignCenter, - AlignJustify, - AlignLeft, - AlignRight, - ArrowDown, - ArrowUp, - Baby, - BadgeAlert, - Bold, - Calendar, - CalendarDays, - CheckSquare, - ChevronDown, - ChevronLeft, - ChevronUp, - CircleUserRound, - Code: CodeIcon, - Copy, - Database, - Ear, - Fan, - GalleryHorizontal, - Info, - Italic, - Lamp, - LayoutPanelLeft, - MenuSquare, - MoonStar, - Search, - Sun, - Table: TabelIcon, - Underline, - User, - X, -} = Icons; +// const { Icons } = Lib; + +// export const { +// Terminal, +// AlertCircle, +// ChevronRight, +// Mail, +// Loader2, +// Check, +// Sparkles, +// ChevronsDownUp, +// ChevronsUpDown, +// Cloud, +// Github, +// LifeBuoy, +// LogOut, +// MessageSquare, +// Plus, +// PlusCircle, +// UserPlus, +// Users, +// Activity, +// Airplay, +// AlarmClockIcon, +// AlertTriangle, +// AlignCenter, +// AlignJustify, +// AlignLeft, +// AlignRight, +// ArrowDown, +// ArrowUp, +// Baby, +// BadgeAlert, +// Bold, +// Calendar, +// CalendarDays, +// CheckSquare, +// ChevronDown, +// ChevronLeft, +// ChevronUp, +// CircleUserRound, +// Code: CodeIcon, +// Copy, +// Database, +// Ear, +// Fan, +// GalleryHorizontal, +// Info, +// Italic, +// Lamp, +// LayoutPanelLeft, +// MenuSquare, +// MoonStar, +// Search, +// Sun, +// Table: TabelIcon, +// Underline, +// User, +// X, +// } = Icons; diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index e515ae3d..ff2f574c 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -3,13 +3,13 @@ title: Accordion description: A vertically stacked set of interactive headings that each reveal a section of content. --- -import accordionPreview from "!!raw-loader!@docs/previews/accordion"; +import accordionPreview from "!!raw-loader!@/examples/accordion"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { AccordionPreview } from "@docs/previews/accordion"; +import { AccordionPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -27,7 +26,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/alert/alert-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/alert/alert-default.tsx", "codeblock": { "lang": "tsx" } @@ -105,7 +104,7 @@ import { Terminal } from '@/lib/icons/Terminal'; ```json doc-gen:file { - "file": "./previews/alert/alert-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/alert/alert-default.tsx", "codeblock": { "lang": "tsx" } @@ -130,7 +129,7 @@ import { Terminal } from '@/lib/icons/Terminal'; ```json doc-gen:file { - "file": "./previews/alert/alert-destructive.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/alert/alert-destructive.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/aspect-ratio.mdx b/apps/docs/content/docs/(components)/aspect-ratio.mdx index 3b16d46c..6ed176f2 100644 --- a/apps/docs/content/docs/(components)/aspect-ratio.mdx +++ b/apps/docs/content/docs/(components)/aspect-ratio.mdx @@ -3,13 +3,13 @@ title: Aspect Ratio description: Displays content within a desired ratio. --- -import aspectRatioPreview from "!!raw-loader!@docs/previews/aspect-ratio"; +import aspectRatioPreview from "!!raw-loader!@/examples/aspect-ratio"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { AspectRatioPreview } from "@docs/previews/aspect-ratio"; +import { AspectRatioPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -32,7 +29,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/badge/badge-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-default.tsx", "codeblock": { "lang": "tsx" } @@ -137,7 +134,7 @@ import { badgeVariants, badgeTextVariants } from "@/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge/badge-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-default.tsx", "codeblock": { "lang": "tsx" } @@ -162,7 +159,7 @@ import { badgeVariants, badgeTextVariants } from "@/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge/badge-secondary.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-secondary.tsx", "codeblock": { "lang": "tsx" } @@ -188,7 +185,7 @@ import { badgeVariants, badgeTextVariants } from "@/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge/badge-outline.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-outline.tsx", "codeblock": { "lang": "tsx" } @@ -214,7 +211,7 @@ import { badgeVariants, badgeTextVariants } from "@/components/ui/badge" ```json doc-gen:file { - "file": "./previews/badge/badge-destructive.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-destructive.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/button.mdx b/apps/docs/content/docs/(components)/button.mdx index a0c241f1..31820266 100644 --- a/apps/docs/content/docs/(components)/button.mdx +++ b/apps/docs/content/docs/(components)/button.mdx @@ -3,29 +3,21 @@ title: Button description: Displays a button or a component that looks like a button. --- -import buttonPreview from "!!raw-loader!@docs/previews/button/button-primary"; -import buttonDestructivePreview from "!!raw-loader!@docs/previews/button/button-destructive"; -import buttonOutlinePreview from "!!raw-loader!@docs/previews/button/button-outline"; -import buttonSecondaryPreview from "!!raw-loader!@docs/previews/button/button-secondary"; -import buttonGhostPreview from "!!raw-loader!@docs/previews/button/button-ghost"; -import buttonLinkPreview from "!!raw-loader!@docs/previews/button/button-link"; -import buttonIconPreview from "!!raw-loader!@docs/previews/button/button-icon"; -import buttonWithIconPreview from "!!raw-loader!@docs/previews/button/button-with-icon"; -import buttonLoadingPreview from "!!raw-loader!@docs/previews/button/button-loading"; +import buttonPreview from "!!raw-loader!@/examples/button/button-primary"; +import buttonDestructivePreview from "!!raw-loader!@/examples/button/button-destructive"; +import buttonOutlinePreview from "!!raw-loader!@/examples/button/button-outline"; +import buttonSecondaryPreview from "!!raw-loader!@/examples/button/button-secondary"; +import buttonGhostPreview from "!!raw-loader!@/examples/button/button-ghost"; +import buttonLinkPreview from "!!raw-loader!@/examples/button/button-link"; +import buttonIconPreview from "!!raw-loader!@/examples/button/button-icon"; +import buttonWithIconPreview from "!!raw-loader!@/examples/button/button-with-icon"; +import buttonLoadingPreview from "!!raw-loader!@/examples/button/button-loading"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { ButtonPreview } from "@docs/previews/button/button-primary"; -import { ButtonDestructivePreview } from "@docs/previews/button/button-destructive"; -import { ButtonOutlinePreview } from "@docs/previews/button/button-outline"; -import { ButtonSecondaryPreview } from "@docs/previews/button/button-secondary"; -import { ButtonGhostPreview } from "@docs/previews/button/button-ghost"; -import { ButtonLinkPreview } from "@docs/previews/button/button-link"; -import { ButtonIconPreview } from "@docs/previews/button/button-icon"; -import { ButtonWithIconPreview } from "@docs/previews/button/button-with-icon"; -import { ButtonLoadingPreview } from "@docs/previews/button/button-loading"; +import { ButtonPreview, ButtonDestructivePreview, ButtonOutlinePreview, ButtonSecondaryPreview, ButtonGhostPreview, ButtonLinkPreview, ButtonIconPreview, ButtonWithIconPreview, ButtonLoadingPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -42,7 +34,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/button/button-primary.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-primary.tsx", "codeblock": { "lang": "tsx" } @@ -157,7 +149,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-primary.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-primary.tsx", "codeblock": { "lang": "tsx" } @@ -182,7 +174,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-secondary.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-secondary.tsx", "codeblock": { "lang": "tsx" } @@ -208,7 +200,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-destructive.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-destructive.tsx", "codeblock": { "lang": "tsx" } @@ -234,7 +226,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-outline.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-outline.tsx", "codeblock": { "lang": "tsx" } @@ -260,7 +252,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-ghost.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-ghost.tsx", "codeblock": { "lang": "tsx" } @@ -286,7 +278,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-link.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-link.tsx", "codeblock": { "lang": "tsx" } @@ -312,7 +304,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-icon.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-icon.tsx", "codeblock": { "lang": "tsx" } @@ -338,7 +330,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-with-icon.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-with-icon.tsx", "codeblock": { "lang": "tsx" } @@ -364,7 +356,7 @@ Alternatively, you can set the `asChild` parameter and nest the link component. ```json doc-gen:file { - "file": "./previews/button/button-loading.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/button/button-loading.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/card.mdx b/apps/docs/content/docs/(components)/card.mdx index 5f96b8c1..41bc07a5 100644 --- a/apps/docs/content/docs/(components)/card.mdx +++ b/apps/docs/content/docs/(components)/card.mdx @@ -3,15 +3,14 @@ title: Card description: Displays a card with header, content, and footer. --- -import cardPreview from "!!raw-loader!@docs/previews/card/card-default"; -import cardExample from "!!raw-loader!@docs/previews/card/card-example"; +import cardPreview from "!!raw-loader!@/examples/card/card-default"; +import cardExample from "!!raw-loader!@/examples/card/card-example"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { CardPreview } from "@docs/previews/card/card-default"; -import { CardExample } from "@docs/previews/card/card-example"; +import { CardPreview, CardExample } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -28,7 +27,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/card/card-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/card/card-default.tsx", "codeblock": { "lang": "tsx" } @@ -133,7 +132,7 @@ import { Text } from '@/components/ui/text'; ```json doc-gen:file { - "file": "./previews/card/card-example.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/card/card-example.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/checkbox.mdx b/apps/docs/content/docs/(components)/checkbox.mdx index 50ca8c93..50f7e6ec 100644 --- a/apps/docs/content/docs/(components)/checkbox.mdx +++ b/apps/docs/content/docs/(components)/checkbox.mdx @@ -3,13 +3,13 @@ title: Checkbox description: A control that allows the user to toggle between checked and not checked. --- -import checkboxPreview from "!!raw-loader!@docs/previews/avatar"; +import checkboxPreview from "!!raw-loader!@/examples/checkbox"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { CheckboxPreview } from "@docs/previews/checkbox/checkbox-default"; +import { CheckboxPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps'; @@ -33,7 +33,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/input.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/input.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/label.mdx b/apps/docs/content/docs/(components)/label.mdx index c7e26606..3469e94a 100644 --- a/apps/docs/content/docs/(components)/label.mdx +++ b/apps/docs/content/docs/(components)/label.mdx @@ -3,13 +3,13 @@ title: Label description: Renders an accessible label associated with controls. --- -import labelPreview from "!!raw-loader!@docs/previews/label/label-default"; +import labelPreview from "!!raw-loader!@/examples/label"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { LabelPreview } from "@docs/previews/label/label-default"; +import { LabelPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -29,7 +29,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./previews/label/label-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/label.tsx", "codeblock": { "lang": "tsx" } diff --git a/apps/docs/content/docs/(components)/menubar.mdx b/apps/docs/content/docs/(components)/menubar.mdx index 565d9bdc..1a04ea68 100644 --- a/apps/docs/content/docs/(components)/menubar.mdx +++ b/apps/docs/content/docs/(components)/menubar.mdx @@ -3,14 +3,14 @@ title: Menubar description: A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands. --- -import menubarPreview from "!!raw-loader!@docs/previews/menubar/menubar-web"; +import menubarPreview from "!!raw-loader!@/examples/menubar"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PortalInfoAlert } from '@docs/components/portal-info-alert'; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { MenubarPreview } from "@docs/previews/menubar/menubar-web"; +import { MenubarPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps'; - - - Is it accessible? - - - Yes. It adheres to the WAI-ARIA design pattern. - - - - - What are universal components? - - - - In the world of React Native, universal components are components that work on both web - and native platforms. - - - - - - Is this component universal? - - - Yes. Try it out on the web, iOS, and/or Android. - - - - ); -} diff --git a/apps/docs/previews/alert-dialog.tsx b/apps/docs/previews/alert-dialog.tsx deleted file mode 100644 index 191329fe..00000000 --- a/apps/docs/previews/alert-dialog.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { - AlertDialog, - AlertDialogAction, - AlertDialogCancel, - AlertDialogContent, - AlertDialogDescription, - AlertDialogFooter, - AlertDialogHeader, - AlertDialogTitle, - AlertDialogTrigger, -} from '@rnr/components/ui/alert-dialog'; -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function AlertDialogPreview() { - return ( - - - - - - - Are you absolutely sure? - - This action cannot be undone. This will permanently delete your account and remove your - data from our servers. - - - - - Cancel - - - Continue - - - - - ); -} diff --git a/apps/docs/previews/alert/alert-default.tsx b/apps/docs/previews/alert/alert-default.tsx deleted file mode 100644 index 592bbac3..00000000 --- a/apps/docs/previews/alert/alert-default.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Alert, AlertDescription, AlertTitle } from '@rnr/components/ui/alert'; -import { Terminal } from '@rnr/lib/icons/Terminal'; - -export function AlertPreview() { - return ( - - Heads up! - You can use a terminal to run commands on your computer. - - ); -} diff --git a/apps/docs/previews/alert/alert-destructive.tsx b/apps/docs/previews/alert/alert-destructive.tsx deleted file mode 100644 index d1b98d46..00000000 --- a/apps/docs/previews/alert/alert-destructive.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Alert, AlertDescription, AlertTitle } from '@rnr/components/ui/alert'; -import { AlertCircle } from '@rnr/lib/icons/AlertCircle'; - -export function AlertDestructive() { - return ( - - Error - Your session has expired. Please log in again. - - ); -} diff --git a/apps/docs/previews/aspect-ratio.tsx b/apps/docs/previews/aspect-ratio.tsx deleted file mode 100644 index a3870f28..00000000 --- a/apps/docs/previews/aspect-ratio.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { AspectRatio } from '@rnr/components/ui/aspect-ratio'; -import { Image } from '@docs/components/react-native'; - -export function AspectRatioPreview() { - return ( - - Photo by Drew Beamer - - ); -} diff --git a/apps/docs/previews/avatar.tsx b/apps/docs/previews/avatar.tsx deleted file mode 100644 index 07de7f11..00000000 --- a/apps/docs/previews/avatar.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@rnr/components/ui/avatar'; -import { Text } from '@rnr/components/ui/text'; - -const SOURCE = { uri: 'https://github.com/mrzachnugent.png' }; - -export function AvatarPreview() { - return ( - - - - ZN - - - ); -} diff --git a/apps/docs/previews/badge/badge-default.tsx b/apps/docs/previews/badge/badge-default.tsx deleted file mode 100644 index f3a506b1..00000000 --- a/apps/docs/previews/badge/badge-default.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@rnr/components/ui/badge'; -import { Text } from '@rnr/components/ui/text'; - -export function BadgePreview() { - return ( - - Badge - - ); -} diff --git a/apps/docs/previews/badge/badge-destructive.tsx b/apps/docs/previews/badge/badge-destructive.tsx deleted file mode 100644 index 3366e240..00000000 --- a/apps/docs/previews/badge/badge-destructive.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@rnr/components/ui/badge'; -import { Text } from '@rnr/components/ui/text'; - -export function BadgeDestructivePreview() { - return ( - - Destructive - - ); -} diff --git a/apps/docs/previews/badge/badge-outline.tsx b/apps/docs/previews/badge/badge-outline.tsx deleted file mode 100644 index bdd9325a..00000000 --- a/apps/docs/previews/badge/badge-outline.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@rnr/components/ui/badge'; -import { Text } from '@rnr/components/ui/text'; - -export function BadgeOutlinePreview() { - return ( - - Outline - - ); -} diff --git a/apps/docs/previews/badge/badge-secondary.tsx b/apps/docs/previews/badge/badge-secondary.tsx deleted file mode 100644 index dc717ab0..00000000 --- a/apps/docs/previews/badge/badge-secondary.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@rnr/components/ui/badge'; -import { Text } from '@rnr/components/ui/text'; - -export function BadgeSecondaryPreview() { - return ( - - Secondary - - ); -} diff --git a/apps/docs/previews/button/button-destructive.tsx b/apps/docs/previews/button/button-destructive.tsx deleted file mode 100644 index e73c4a38..00000000 --- a/apps/docs/previews/button/button-destructive.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function ButtonDestructivePreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-ghost.tsx b/apps/docs/previews/button/button-ghost.tsx deleted file mode 100644 index 5335c0ef..00000000 --- a/apps/docs/previews/button/button-ghost.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function ButtonGhostPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-icon.tsx b/apps/docs/previews/button/button-icon.tsx deleted file mode 100644 index f53200c6..00000000 --- a/apps/docs/previews/button/button-icon.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { ChevronRight } from '@rnr/lib/icons/ChevronRight'; - -export function ButtonIconPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-link.tsx b/apps/docs/previews/button/button-link.tsx deleted file mode 100644 index f8afb189..00000000 --- a/apps/docs/previews/button/button-link.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function ButtonLinkPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-loading.tsx b/apps/docs/previews/button/button-loading.tsx deleted file mode 100644 index 32df7a4b..00000000 --- a/apps/docs/previews/button/button-loading.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; -import { Loader2 } from '@rnr/lib/icons/Loader2'; -import { View } from '@docs/components/react-native'; - -export function ButtonLoadingPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-outline.tsx b/apps/docs/previews/button/button-outline.tsx deleted file mode 100644 index 128cc852..00000000 --- a/apps/docs/previews/button/button-outline.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function ButtonOutlinePreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-primary.tsx b/apps/docs/previews/button/button-primary.tsx deleted file mode 100644 index 2fa37405..00000000 --- a/apps/docs/previews/button/button-primary.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function ButtonPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-secondary.tsx b/apps/docs/previews/button/button-secondary.tsx deleted file mode 100644 index 6b4b0707..00000000 --- a/apps/docs/previews/button/button-secondary.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; - -export function ButtonSecondaryPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/button/button-with-icon.tsx b/apps/docs/previews/button/button-with-icon.tsx deleted file mode 100644 index 656cb54f..00000000 --- a/apps/docs/previews/button/button-with-icon.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { Text } from '@rnr/components/ui/text'; -import { Mail } from '@rnr/lib/icons/Mail'; - -export function ButtonWithIconPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/card/card-default.tsx b/apps/docs/previews/card/card-default.tsx deleted file mode 100644 index 7cb79722..00000000 --- a/apps/docs/previews/card/card-default.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Button } from '@rnr/components/ui/button'; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from '@rnr/components/ui/card'; -import { Input } from '@rnr/components/ui/input'; -import { Label } from '@rnr/components/ui/label'; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@rnr/components/ui/select'; -import { Text } from '@rnr/components/ui/text'; - -export function CardPreview() { - return ( - - - Create project - Deploy your new project in one-click. - - - - - - - - - - - - - - - - - - - ); -} diff --git a/apps/docs/previews/card/card-example.tsx b/apps/docs/previews/card/card-example.tsx deleted file mode 100644 index 7c08bb95..00000000 --- a/apps/docs/previews/card/card-example.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Button } from '@rnr/components/ui/button'; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from '@rnr/components/ui/card'; -import { Switch } from '@rnr/components/ui/switch'; -import { Text } from '@rnr/components/ui/text'; -import { Check } from '@rnr/lib/icons/Check'; -import { Sparkles } from '@rnr/lib/icons/Sparkles'; - -const NOTIFICATIONS = [ - { - title: 'Your call has been confirmed.', - description: '1 hour ago', - }, - { - title: 'You have a new message!', - description: '1 hour ago', - }, - { - title: 'Your subscription is expiring soon!', - description: '2 hours ago', - }, -]; - -export function CardExample() { - return ( - - - Notifications - You have 3 unread messages. - - - - - - Push Notifications - - Send notifications to device. - - - {/* TODO */} - - - - {NOTIFICATIONS.map((notification, index) => ( - - - - - - - {notification.title} - - {notification.description} - - - ))} - - - - - - - ); -} diff --git a/apps/docs/previews/checkbox/checkbox-default.tsx b/apps/docs/previews/checkbox/checkbox-default.tsx deleted file mode 100644 index 5ad09758..00000000 --- a/apps/docs/previews/checkbox/checkbox-default.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Checkbox } from '@rnr/components/ui/checkbox'; -import { Label } from '@rnr/components/ui/label'; - -export function CheckboxPreview() { - return ( - - {/* TODO */} - - - - ); -} diff --git a/apps/docs/previews/collapsible/collapsible-native.tsx b/apps/docs/previews/collapsible/collapsible-native.tsx deleted file mode 100644 index 07dd5691..00000000 --- a/apps/docs/previews/collapsible/collapsible-native.tsx +++ /dev/null @@ -1,57 +0,0 @@ -import { Platform, Text, View } from 'react-native'; -import Animated, { FadeInDown, LinearTransition } from 'react-native-reanimated'; -import { Button } from '@rnr/components/ui/button'; -import { - Collapsible, - CollapsibleContent, - CollapsibleTrigger, -} from '@rnr/components/ui/collapsible'; -import { ChevronsUpDown } from '@rnr/lib/icons/ChevronsUpDown'; - -export function CollapsiblePreview() { - return ( - - - - - - @peduarte starred 3 repositories - - - - - - - @radix-ui/primitives - - - @radix-ui/react - @stitches/core - - - - - ); -} - -function CollapsibleItem({ children, delay }: { children: string; delay: number }) { - if (Platform.OS === 'web') { - return ( - - {children} - - ); - } - - return ( - - {children} - - ); -} diff --git a/apps/docs/previews/collapsible/collapsible-web.tsx b/apps/docs/previews/collapsible/collapsible-web.tsx deleted file mode 100644 index 1b598afc..00000000 --- a/apps/docs/previews/collapsible/collapsible-web.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Button } from '@rnr/components/ui/button'; -import { - Collapsible, - CollapsibleContent, - CollapsibleTrigger, -} from '@rnr/components/ui/collapsible'; -import { Text } from '@rnr/components/ui/text'; -import { ChevronsUpDown } from '@rnr/lib/icons/ChevronsUpDown'; - -export function CollapsiblePreview() { - return ( - - - - @peduarte starred 3 repositories - - - - - - - @radix-ui/primitives - - - @radix-ui/react - @stitches/core - - - ); -} - -function CollapsibleItem({ children }: { children: string }) { - return ( - - {children} - - ); -} diff --git a/apps/docs/previews/context-menu/context-menu-native.tsx b/apps/docs/previews/context-menu/context-menu-native.tsx deleted file mode 100644 index 3bfad9cb..00000000 --- a/apps/docs/previews/context-menu/context-menu-native.tsx +++ /dev/null @@ -1,108 +0,0 @@ -import * as React from 'react'; -import { Platform } from 'react-native'; -import Animated, { FadeIn } from 'react-native-reanimated'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { - ContextMenu, - ContextMenuCheckboxItem, - ContextMenuContent, - ContextMenuItem, - ContextMenuLabel, - ContextMenuRadioGroup, - ContextMenuRadioItem, - ContextMenuSeparator, - ContextMenuShortcut, - ContextMenuSub, - ContextMenuSubContent, - ContextMenuSubTrigger, - ContextMenuTrigger, -} from '@rnr/components/ui/context-menu'; -import { Text } from '@rnr/components/ui/text'; - -export function ContextMenuPreview() { - const insets = useSafeAreaInsets(); - const contentInsets = { - top: insets.top, - bottom: insets.bottom, - left: 12, - right: 12, - }; - const [checkboxValue, setCheckboxValue] = React.useState(false); - const [subCheckboxValue, setSubCheckboxValue] = React.useState(false); - const [radioValue, setRadioValue] = React.useState('pedro'); - - return ( - - - - {Platform.OS === 'web' ? 'Right click here' : 'Long press here'} - - - - - - Back - ⌘[ - - - Forward - ⌘] - - - Reload - ⌘R - - - - - More Tools - - - - - Save Page As... - ⇧⌘S - - - Create Shortcut... - - - - - Developer Tools - - - - - - - - Show Bookmarks Bar - ⌘⇧B - - - Show Full URLs - - - - People - - - Elmer Fudd - - - Foghorn Leghorn - - - - - ); -} diff --git a/apps/docs/previews/context-menu/context-menu-web.tsx b/apps/docs/previews/context-menu/context-menu-web.tsx deleted file mode 100644 index a4acd24d..00000000 --- a/apps/docs/previews/context-menu/context-menu-web.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { - ContextMenu, - ContextMenuCheckboxItem, - ContextMenuContent, - ContextMenuItem, - ContextMenuLabel, - ContextMenuRadioGroup, - ContextMenuRadioItem, - ContextMenuSeparator, - ContextMenuShortcut, - ContextMenuSub, - ContextMenuSubContent, - ContextMenuSubTrigger, - ContextMenuTrigger, -} from '@rnr/components/ui/context-menu'; -import { Text } from '@rnr/components/ui/text'; - -// TODO(zach): update primitives for options value and onChange - -export function ContextMenuPreview() { - return ( - - - - - - - - Back - ⌘[ - - - Forward - ⌘] - - - Reload - ⌘R - - - - - More Tools - - - - Save Page As... - ⇧⌘S - - - Create Shortcut... - - - - - Developer Tools - - - - - - - Show Bookmarks Bar - ⌘⇧B - - - Show Full URLs - - - - People - - - Elmer Fudd - - - Foghorn Leghorn - - - - - ); -} diff --git a/apps/docs/previews/dialog/dialog-native.tsx b/apps/docs/previews/dialog/dialog-native.tsx deleted file mode 100644 index 74927b7f..00000000 --- a/apps/docs/previews/dialog/dialog-native.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Button } from '@rnr/components/ui/button'; -import { - Dialog, - DialogClose, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, - DialogTrigger, -} from '@rnr/components/ui/dialog'; -import { Label } from '@rnr/components/ui/label'; -import { Input } from '@rnr/components/ui/input'; -import { Text } from '@rnr/components/ui/text'; - -// TODO(zach): check this works on native - -export function DialogPreview() { - return ( - - - - - - - Edit profile - - {"Make changes to your profile here. Click save when you're done."} - - - - - - - - - - - - - - - - - - - - - ); -} diff --git a/apps/docs/previews/dialog/dialog-web.tsx b/apps/docs/previews/dialog/dialog-web.tsx deleted file mode 100644 index 64d85550..00000000 --- a/apps/docs/previews/dialog/dialog-web.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Button } from '@rnr/components/ui/button'; -import { - Dialog, - DialogClose, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, - DialogTrigger, -} from '@rnr/components/ui/dialog'; -import { Label } from '@rnr/components/ui/label'; -import { Input } from '@rnr/components/ui/input'; -import { Text } from '@rnr/components/ui/text'; - -export function DialogPreview() { - return ( - - - - - - - Edit profile - - {"Make changes to your profile here. Click save when you're done."} - - - - -
- -
- -
- -
- -
- -
-
- - - - - - -
-
- ); -} diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx deleted file mode 100644 index 1baa1495..00000000 --- a/apps/docs/previews/dropdown-menu/dropdown-menu-native.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import Animated, { FadeIn } from 'react-native-reanimated'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Button } from '@rnr/components/ui/button'; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, -} from '@rnr/components/ui/dropdown-menu'; -import { Text } from '@rnr/components/ui/text'; -import { Cloud } from '@rnr/lib/icons/Cloud'; -import { Github } from '@rnr/lib/icons/Github'; -import { LifeBuoy } from '@rnr/lib/icons/LifeBuoy'; -import { LogOut } from '@rnr/lib/icons/LogOut'; -import { Mail } from '@rnr/lib/icons/Mail'; -import { MessageSquare } from '@rnr/lib/icons/MessageSquare'; -import { Plus } from '@rnr/lib/icons/Plus'; -import { PlusCircle } from '@rnr/lib/icons/PlusCircle'; -import { User } from '@rnr/lib/icons/User'; -import { UserPlus } from '@rnr/lib/icons/UserPlus'; -import { Users } from '@rnr/lib/icons/Users'; - -export default function DropdownMenuPreview() { - const insets = useSafeAreaInsets(); - const contentInsets = { - top: insets.top, - bottom: insets.bottom, - left: 12, - right: 12, - }; - - return ( - - - - - - My Account - - - - - Profile - - - - Team - - - - - Invite users - - - - - - Email - - - - Message - - - - - More... - - - - - - - New Team - ⌘+T - - - - - - GitHub - - - - Support - - - - API - - - - - Log out - ⇧⌘Q - - - - ); -} diff --git a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx b/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx deleted file mode 100644 index a526f06e..00000000 --- a/apps/docs/previews/dropdown-menu/dropdown-menu-web.tsx +++ /dev/null @@ -1,97 +0,0 @@ -import { Button } from '@rnr/components/ui/button'; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, -} from '@rnr/components/ui/dropdown-menu'; -import { Text } from '@rnr/components/ui/text'; -import { Cloud } from '@rnr/lib/icons/Cloud'; -import { Github } from '@rnr/lib/icons/Github'; -import { LifeBuoy } from '@rnr/lib/icons/LifeBuoy'; -import { LogOut } from '@rnr/lib/icons/LogOut'; -import { Mail } from '@rnr/lib/icons/Mail'; -import { MessageSquare } from '@rnr/lib/icons/MessageSquare'; -import { Plus } from '@rnr/lib/icons/Plus'; -import { PlusCircle } from '@rnr/lib/icons/PlusCircle'; -import { User } from '@rnr/lib/icons/User'; -import { UserPlus } from '@rnr/lib/icons/UserPlus'; -import { Users } from '@rnr/lib/icons/Users'; - -export function DropdownMenuPreview() { - return ( - - - - - - My Account - - - - - Profile - - - - Team - - - - - Invite users - - - - - Email - - - - Message - - - - - More... - - - - - - New Team - ⌘+T - - - - - - GitHub - - - - Support - - - - API - - - - - Log out - ⇧⌘Q - - - - ); -} diff --git a/apps/docs/previews/hover-card/hover-card-native.tsx b/apps/docs/previews/hover-card/hover-card-native.tsx deleted file mode 100644 index bd2c030b..00000000 --- a/apps/docs/previews/hover-card/hover-card-native.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { View } from 'react-native'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { Avatar, AvatarFallback, AvatarImage } from '@rnr/components/ui/avatar'; -import { Button } from '@rnr/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@rnr/components/ui/hover-card'; -import { Text } from '@rnr/components/ui/text'; -import { CalendarDays } from '@rnr/lib/icons/CalendarDays'; - -export function HoverCardPreview() { - const insets = useSafeAreaInsets(); - const contentInsets = { - top: insets.top, - bottom: insets.bottom, - left: 12, - right: 12, - }; - return ( - - - - - - - - - - VA - - - - @nextjs - - The React Framework – created and maintained by @vercel. - - - - - Joined December 2021 - - - - - - - ); -} diff --git a/apps/docs/previews/hover-card/hover-card-web.tsx b/apps/docs/previews/hover-card/hover-card-web.tsx deleted file mode 100644 index fe9f3c75..00000000 --- a/apps/docs/previews/hover-card/hover-card-web.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Avatar, AvatarFallback, AvatarImage } from '@rnr/components/ui/avatar'; -import { Button } from '@rnr/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@rnr/components/ui/hover-card'; -import { Text } from '@rnr/components/ui/text'; -import { CalendarDays } from '@rnr/lib/icons/CalendarDays'; - -export function HoverCardPreview() { - return ( - - - - - - - - - - VA - - - - @nextjs - - The React Framework – created and maintained by @vercel. - - - - - Joined December 2021 - - - - - - - ); -} diff --git a/apps/docs/previews/input.tsx b/apps/docs/previews/input.tsx deleted file mode 100644 index 600b51cd..00000000 --- a/apps/docs/previews/input.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Input } from '@rnr/components/ui/input'; - -export function InputPreview() { - return ( - - ); -} diff --git a/apps/docs/previews/label/label-default.tsx b/apps/docs/previews/label/label-default.tsx deleted file mode 100644 index 8e340e27..00000000 --- a/apps/docs/previews/label/label-default.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { Checkbox } from '@rnr/components/ui/checkbox'; -import { Label } from '@rnr/components/ui/label'; - -export function LabelPreview() { - return ( - - {/* TODO */} - - - - ); -} diff --git a/apps/docs/previews/menubar/menubar-native.tsx b/apps/docs/previews/menubar/menubar-native.tsx deleted file mode 100644 index d3128b6f..00000000 --- a/apps/docs/previews/menubar/menubar-native.tsx +++ /dev/null @@ -1,230 +0,0 @@ -import { useNavigation } from 'expo-router'; -import * as React from 'react'; -import { Pressable, StyleSheet, View } from 'react-native'; -import Animated, { FadeIn } from 'react-native-reanimated'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { - Menubar, - MenubarCheckboxItem, - MenubarContent, - MenubarItem, - MenubarMenu, - MenubarRadioGroup, - MenubarRadioItem, - MenubarSeparator, - MenubarShortcut, - MenubarSub, - MenubarSubContent, - MenubarSubTrigger, - MenubarTrigger, -} from '@rnr/components/ui/menubar'; -import { Text } from '@rnr/components/ui/text'; - -// TODO(zach): review this - -export function MenubarPreview() { - const insets = useSafeAreaInsets(); - const contentInsets = { - top: insets.top, - bottom: insets.bottom, - left: 12, - right: 12, - }; - const [value, setValue] = React.useState(); - const [isSubOpen, setIsSubOpen] = React.useState(false); - const [isSubOpen2, setIsSubOpen2] = React.useState(false); - const [isChecked, setIsChecked] = React.useState(false); - const [isChecked2, setIsChecked2] = React.useState(false); - const [radio, setRadio] = React.useState('michael'); - const navigation = useNavigation(); - React.useEffect(() => { - const sub = navigation.addListener('blur', () => { - onValueChange(undefined); - }); - - return sub; - }, []); - - function closeSubs() { - setIsSubOpen(false); - setIsSubOpen2(false); - } - - function onValueChange(val: string | undefined) { - if (typeof val === 'string') { - setValue(val); - return; - } - closeSubs(); - setValue(undefined); - } - - return ( - - {!!value && ( - { - onValueChange(undefined); - }} - style={StyleSheet.absoluteFillObject} - /> - )} - - - - File - - - - New Tab - ⌘T - - - New Window - ⌘N - - - New Incognito Window - - - - - Share - - - - - Email link - - - Messages - - - Notes - - - - - - - Print... - ⌘P - - - - - - Edit - - - - Undo - ⌘Z - - - Redo - ⇧⌘Z - - - - - Find - - - - - Search the web - - - - Find... - - - Find Next - - - Find Previous - - - - - - - Cut - - - Copy - - - Paste - - - - - - View - - - - Always Show Bookmarks Bar - - - Always Show Full URLs - - - - Reload - ⌘R - - - Force Reload - ⇧⌘R - - - - Toggle Fullscreen - - - - Hide Sidebar - - - - - - Profiles - - - - - Andy - - - Michael - - - Creed - - - - - Edit... - - - - Add Profile... - - - - - - ); -} diff --git a/apps/docs/previews/menubar/menubar-web.tsx b/apps/docs/previews/menubar/menubar-web.tsx deleted file mode 100644 index bac9d71c..00000000 --- a/apps/docs/previews/menubar/menubar-web.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import { - Menubar, - MenubarCheckboxItem, - MenubarContent, - MenubarItem, - MenubarMenu, - MenubarRadioGroup, - MenubarRadioItem, - MenubarSeparator, - MenubarShortcut, - MenubarSub, - MenubarSubContent, - MenubarSubTrigger, - MenubarTrigger, -} from '@rnr/components/ui/menubar'; -import { Text } from '@rnr/components/ui/text'; - -// TODO(zach): fix primitive + double enter animation - -export function MenubarPreview() { - return ( - - - - File - - - - New Tab - ⌘T - - - New Window - ⌘N - - - New Incognito Window - - - - - Share - - - - Email link - - - Messages - - - Notes - - - - - - Print... - ⌘P - - - - - - Edit - - - - Undo - ⌘Z - - - Redo - ⇧⌘Z - - - - - Find - - - - Search the web - - - - Find... - - - Find Next - - - Find Previous - - - - - - Cut - - - Copy - - - Paste - - - - - - View - - - - Always Show Bookmarks Bar - - - Always Show Full URLs - - - - Reload - ⌘R - - - Force Reload - ⇧⌘R - - - - Toggle Fullscreen - - - - Hide Sidebar - - - - - - Profiles - - - - - Andy - - - Michael - - - Creed - - - - - Edit... - - - - Add Profile... - - - - - ); -} diff --git a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx b/apps/docs/previews/navigation-menu/navigation-menu-native.tsx deleted file mode 100644 index 8d9e60b5..00000000 --- a/apps/docs/previews/navigation-menu/navigation-menu-native.tsx +++ /dev/null @@ -1,164 +0,0 @@ -import type { TextRef } from '@rn-primitives/types'; -import { useNavigation } from 'expo-router'; -import * as React from 'react'; -import { View } from 'react-native'; -import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { - NavigationMenu, - NavigationMenuContent, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, - navigationMenuTriggerStyle, -} from '@rnr/components/ui/navigation-menu'; -import { Text } from '@rnr/components/ui/text'; -import { Sparkles } from '@rnr/lib/icons/Sparkles'; - -export function NavigationMenuPreview() { - const insets = useSafeAreaInsets(); - const contentInsets = { - top: insets.top, - bottom: insets.bottom, - left: 12, - right: 12, - }; - const [value, setValue] = React.useState(); - const navigation = useNavigation(); - - function closeAll() { - setValue(''); - } - - React.useEffect(() => { - const sub = navigation.addListener('blur', () => { - closeAll(); - }); - - return sub; - }, []); - - return ( - - - - - Getting started - - - - - - - - - react-native-reusables - - - Universal components that you can copy and paste into your apps. Accessible. - Customizable. Open Source. - - - - - - Re-usable components built using Radix UI on the web and Tailwind CSS. - - - How to install dependencies and structure your app. - - - Styles for headings, paragraphs, lists...etc - - - - - - - Components - - - - {COMPONENTS.map((component) => ( - - {component.description} - - ))} - - - - - - Documentation - - - - - ); -} - -const ListItem = React.forwardRef< - TextRef, - React.ComponentPropsWithoutRef & { title: string; href: string } ->(({ title, children, ...props }, ref) => { - return ( - - - - {title} - - - {children} - - - - ); -}); -ListItem.displayName = 'ListItem'; - -const COMPONENTS: { title: string; href: string; description: string }[] = [ - { - title: 'Alert Dialog', - href: '/alert-dialog/alert-dialog-universal', - description: - 'A modal dialog that interrupts the user with important content and expects a response.', - }, - { - title: 'Hover Card', - href: '/hover-card/hover-card-universal', - description: 'For sighted users to preview content available behind a link.', - }, - { - title: 'Progress', - href: '/progress/progress-universal', - description: - 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', - }, - { - title: 'Scroll-area', - href: '/scroll-area/scroll-area-universal', - description: 'Visually or semantically separates content.', - }, - { - title: 'Tabs', - href: '/tabs/tabs-universal', - description: - 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', - }, - { - title: 'Tooltip', - href: '/tooltip/tooltip-universal', - description: - 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', - }, -]; diff --git a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx b/apps/docs/previews/navigation-menu/navigation-menu-web.tsx deleted file mode 100644 index 30199f51..00000000 --- a/apps/docs/previews/navigation-menu/navigation-menu-web.tsx +++ /dev/null @@ -1,138 +0,0 @@ -import { View } from '@docs/components/react-native'; -import { - NavigationMenu, - NavigationMenuContent, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, -} from '@rnr/components/ui/navigation-menu'; -import { Text } from '@rnr/components/ui/text'; -import { Sparkles } from '@rnr/lib/icons/Sparkles'; - -// TODO(zach) - -export function NavigationMenuPreview() { - return ( - - - - - Getting started - - - - - - - - - react-native-reusables - - - Universal components that you can copy and paste into your apps. Accessible. - Customizable. Open Source. - - - - - - Re-usable components built using Radix UI on the web and Tailwind CSS. - - - How to install dependencies and structure your app. - - - Styles for headings, paragraphs, lists...etc - - - - - - - Components - - - - {COMPONENTS.map((component) => ( - - {component.description} - - ))} - - - - - - Documentation - - - - - ); -} - -function ListItem({ - title, - children, - ...props -}: React.ComponentPropsWithoutRef & { title: string; href: string }) { - return ( - - - - {title} - - - {children} - - - - ); -} - -const COMPONENTS: { title: string; href: string; description: string }[] = [ - { - title: 'Alert Dialog', - href: '/alert-dialog/alert-dialog-universal', - description: - 'A modal dialog that interrupts the user with important content and expects a response.', - }, - { - title: 'Hover Card', - href: '/hover-card/hover-card-universal', - description: 'For sighted users to preview content available behind a link.', - }, - { - title: 'Progress', - href: '/progress/progress-universal', - description: - 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', - }, - { - title: 'Scroll-area', - href: '/scroll-area/scroll-area-universal', - description: 'Visually or semantically separates content.', - }, - { - title: 'Tabs', - href: '/tabs/tabs-universal', - description: - 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', - }, - { - title: 'Tooltip', - href: '/tooltip/tooltip-universal', - description: - 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', - }, -]; diff --git a/packages/reusables/src/components/ui/dialog.tsx b/packages/reusables/src/components/ui/dialog.tsx index d6c21d1f..d143d0b1 100644 --- a/packages/reusables/src/components/ui/dialog.tsx +++ b/packages/reusables/src/components/ui/dialog.tsx @@ -24,7 +24,7 @@ function DialogOverlayWeb({ return ( - - - @peduarte starred 3 repositories - - - - - - - @radix-ui/primitives - - - @radix-ui/react - @stitches/core - - - ); -} - -function CollapsibleItem({ children }: { children: string }) { - return ( - - {children} - - ); -} diff --git a/packages/reusables/src/examples/context-menu/context-menu-native.tsx b/packages/reusables/src/examples/context-menu.tsx similarity index 98% rename from packages/reusables/src/examples/context-menu/context-menu-native.tsx rename to packages/reusables/src/examples/context-menu.tsx index ba74752e..e4cb7965 100644 --- a/packages/reusables/src/examples/context-menu/context-menu-native.tsx +++ b/packages/reusables/src/examples/context-menu.tsx @@ -19,8 +19,6 @@ import { Platform } from 'react-native'; import Animated, { FadeIn } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -// TODO(zach): use only 1 component for context menu - export function ContextMenuPreview() { const insets = useSafeAreaInsets(); const contentInsets = { @@ -34,7 +32,7 @@ export function ContextMenuPreview() { const [radioValue, setRadioValue] = React.useState('pedro'); return ( - + {Platform.OS === 'web' ? 'Right click here' : 'Long press here'} diff --git a/packages/reusables/src/examples/context-menu/context-menu-web.tsx b/packages/reusables/src/examples/context-menu/context-menu-web.tsx deleted file mode 100644 index eb383c81..00000000 --- a/packages/reusables/src/examples/context-menu/context-menu-web.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import { - ContextMenu, - ContextMenuCheckboxItem, - ContextMenuContent, - ContextMenuItem, - ContextMenuLabel, - ContextMenuRadioGroup, - ContextMenuRadioItem, - ContextMenuSeparator, - ContextMenuShortcut, - ContextMenuSub, - ContextMenuSubContent, - ContextMenuSubTrigger, - ContextMenuTrigger, -} from '@/components/ui/context-menu'; -import { Text } from '@/components/ui/text'; -import * as React from 'react'; - -// TODO(zach): use only 1 component for context menu - -export function ContextMenuPreview() { - const [checkedValues, setCheckedValues] = React.useState({ - showBookmarksBar: false, - showFullUrls: false, - }); - const [value, setValue] = React.useState('pedro'); - - return ( - - - - - - - - Back - ⌘[ - - - Forward - ⌘] - - - Reload - ⌘R - - - - - More Tools - - - - Save Page As... - ⇧⌘S - - - Create Shortcut... - - - - - Developer Tools - - - - - - - setCheckedValues({ - ...checkedValues, - showBookmarksBar: !checkedValues.showBookmarksBar, - }) - } - closeOnPress={false} - > - Show Bookmarks Bar - ⌘⇧B - - - setCheckedValues({ ...checkedValues, showFullUrls: !checkedValues.showFullUrls }) - } - closeOnPress={false} - > - Show Full URLs - - - - People - - - Elmer Fudd - - - Foghorn Leghorn - - - - - ); -} diff --git a/packages/reusables/src/examples/dialog/dialog-native.tsx b/packages/reusables/src/examples/dialog.tsx similarity index 97% rename from packages/reusables/src/examples/dialog/dialog-native.tsx rename to packages/reusables/src/examples/dialog.tsx index ecc73297..1b4835a9 100644 --- a/packages/reusables/src/examples/dialog/dialog-native.tsx +++ b/packages/reusables/src/examples/dialog.tsx @@ -14,8 +14,6 @@ import { Label } from '@/components/ui/label'; import { Text } from '@/components/ui/text'; import { View } from 'react-native'; -// TODO(zach): use only 1 component for dialog - export function DialogPreview() { return ( diff --git a/packages/reusables/src/examples/dialog/dialog-web.tsx b/packages/reusables/src/examples/dialog/dialog-web.tsx deleted file mode 100644 index 0b9b0446..00000000 --- a/packages/reusables/src/examples/dialog/dialog-web.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import { Button } from '@/components/ui/button'; -import { - Dialog, - DialogClose, - DialogContent, - DialogDescription, - DialogFooter, - DialogHeader, - DialogTitle, - DialogTrigger, -} from '@/components/ui/dialog'; -import { Input } from '@/components/ui/input'; -import { Label } from '@/components/ui/label'; -import { Text } from '@/components/ui/text'; -import { View } from 'react-native'; - -// TODO(zach): use only 1 component for dialog - -export function DialogPreview() { - return ( - - - - - - - Edit profile - - {"Make changes to your profile here. Click save when you're done."} - - - - -
- -
- -
- -
- -
- -
-
- - - - - - -
-
- ); -} diff --git a/packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx b/packages/reusables/src/examples/dropdown-menu.tsx similarity index 97% rename from packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx rename to packages/reusables/src/examples/dropdown-menu.tsx index c6446fe8..2e465adb 100644 --- a/packages/reusables/src/examples/dropdown-menu/dropdown-menu-native.tsx +++ b/packages/reusables/src/examples/dropdown-menu.tsx @@ -30,9 +30,7 @@ import { import Animated, { FadeIn } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -// TODO(zach): use only 1 component for dropdown menu - -export default function DropdownMenuPreview() { +export function DropdownMenuPreview() { const insets = useSafeAreaInsets(); const contentInsets = { top: insets.top, diff --git a/packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx b/packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx deleted file mode 100644 index 38a146cf..00000000 --- a/packages/reusables/src/examples/dropdown-menu/dropdown-menu-web.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import { Button } from '@/components/ui/button'; -import { - DropdownMenu, - DropdownMenuContent, - DropdownMenuGroup, - DropdownMenuItem, - DropdownMenuLabel, - DropdownMenuSeparator, - DropdownMenuShortcut, - DropdownMenuSub, - DropdownMenuSubContent, - DropdownMenuSubTrigger, - DropdownMenuTrigger, -} from '@/components/ui/dropdown-menu'; -import { Icon } from '@/components/ui/icon'; -import { Text } from '@/components/ui/text'; -import { - Cloud, - Github, - LifeBuoy, - LogOut, - Mail, - MessageSquare, - Plus, - PlusCircle, - User, - UserPlus, - Users, -} from 'lucide-react-native'; - -// TODO(zach): use only 1 component for dropdown menu - -export function DropdownMenuPreview() { - return ( - - - - - - My Account - - - - - Profile - - - - Team - - - - - Invite users - - - - - Email - - - - Message - - - - - More... - - - - - - New Team - ⌘+T - - - - - - GitHub - - - - Support - - - - API - - - - - Log out - ⇧⌘Q - - - - ); -} diff --git a/packages/reusables/src/examples/hover-card/hover-card-native.tsx b/packages/reusables/src/examples/hover-card.tsx similarity index 98% rename from packages/reusables/src/examples/hover-card/hover-card-native.tsx rename to packages/reusables/src/examples/hover-card.tsx index e252f6cc..b4b9afdd 100644 --- a/packages/reusables/src/examples/hover-card/hover-card-native.tsx +++ b/packages/reusables/src/examples/hover-card.tsx @@ -17,9 +17,9 @@ export function HoverCardPreview() { }; return ( - diff --git a/packages/reusables/src/examples/hover-card/hover-card-web.tsx b/packages/reusables/src/examples/hover-card/hover-card-web.tsx deleted file mode 100644 index 5c72e8da..00000000 --- a/packages/reusables/src/examples/hover-card/hover-card-web.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { Button } from '@/components/ui/button'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from '@/components/ui/hover-card'; -import { Icon } from '@/components/ui/icon'; -import { Text } from '@/components/ui/text'; -import { CalendarDays } from 'lucide-react-native'; -import { View } from 'react-native'; - -// TODO(zach): use only 1 component for hover card - -export function HoverCardPreview() { - return ( - - - - - - - - - - VA - - - - @nextjs - - The React Framework – created and maintained by @vercel. - - - - - Joined December 2021 - - - - - - - ); -} diff --git a/packages/reusables/src/examples/index.ts b/packages/reusables/src/examples/index.ts new file mode 100644 index 00000000..e8d5b747 --- /dev/null +++ b/packages/reusables/src/examples/index.ts @@ -0,0 +1,31 @@ +export * from './accordion'; +export * from './alert/alert-default'; +export * from './alert/alert-destructive'; +export * from './alert-dialog'; +export * from './aspect-ratio'; +export * from './avatar'; +export * from './badge/badge-default'; +export * from './badge/badge-destructive'; +export * from './badge/badge-outline'; +export * from './badge/badge-secondary'; +export * from './button/button-destructive'; +export * from './button/button-ghost'; +export * from './button/button-icon'; +export * from './button/button-link'; +export * from './button/button-loading'; +export * from './button/button-outline'; +export * from './button/button-primary'; +export * from './button/button-secondary'; +export * from './button/button-with-icon'; +export * from './card/card-default'; +export * from './card/card-example'; +export * from './checkbox'; +export * from './collapsible'; +export * from './context-menu'; +export * from './dialog'; +export * from './dropdown-menu'; +export * from './hover-card'; +export * from './input'; +export * from './label'; +export * from './menubar'; +export * from './navigation-menu'; diff --git a/packages/reusables/src/examples/label/label-default.tsx b/packages/reusables/src/examples/label.tsx similarity index 100% rename from packages/reusables/src/examples/label/label-default.tsx rename to packages/reusables/src/examples/label.tsx diff --git a/packages/reusables/src/examples/menubar/menubar-native.tsx b/packages/reusables/src/examples/menubar.tsx similarity index 94% rename from packages/reusables/src/examples/menubar/menubar-native.tsx rename to packages/reusables/src/examples/menubar.tsx index 5d0324eb..db5e8445 100644 --- a/packages/reusables/src/examples/menubar/menubar-native.tsx +++ b/packages/reusables/src/examples/menubar.tsx @@ -14,14 +14,11 @@ import { MenubarTrigger, } from '@/components/ui/menubar'; import { Text } from '@/components/ui/text'; -import { useNavigation } from 'expo-router'; import * as React from 'react'; import { Pressable, StyleSheet, View } from 'react-native'; import Animated, { FadeIn } from 'react-native-reanimated'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -// TODO(zach): use only 1 component for menubar - export function MenubarPreview() { const insets = useSafeAreaInsets(); const contentInsets = { @@ -36,14 +33,24 @@ export function MenubarPreview() { const [isChecked, setIsChecked] = React.useState(false); const [isChecked2, setIsChecked2] = React.useState(false); const [radio, setRadio] = React.useState('michael'); - const navigation = useNavigation(); - React.useEffect(() => { - const sub = navigation.addListener('blur', () => { - onValueChange(undefined); - }); - return sub; - }, []); + /** + * NOTE: + * On mobile, we need to close the menu before navigating to a new screen + * since the portal overlays all screens. + * + * For example: + * ```tsx + const navigation = useNavigation(); + React.useEffect(() => { + const sub = navigation.addListener('blur', () => { + onValueChange(undefined); + }); + + return sub; + }, []); + * ``` + */ function closeSubs() { setIsSubOpen(false); diff --git a/packages/reusables/src/examples/menubar/menubar-web.tsx b/packages/reusables/src/examples/menubar/menubar-web.tsx deleted file mode 100644 index 785ff97c..00000000 --- a/packages/reusables/src/examples/menubar/menubar-web.tsx +++ /dev/null @@ -1,191 +0,0 @@ -import { - Menubar, - MenubarCheckboxItem, - MenubarContent, - MenubarItem, - MenubarMenu, - MenubarRadioGroup, - MenubarRadioItem, - MenubarSeparator, - MenubarShortcut, - MenubarSub, - MenubarSubContent, - MenubarSubTrigger, - MenubarTrigger, -} from '@/components/ui/menubar'; -import { Text } from '@/components/ui/text'; -import * as React from 'react'; - -// TODO(zach): fix primitive + double enter animation - -// TODO(zach): use only 1 component for menubar - -export function MenubarPreview() { - const [value, setValue] = React.useState('file'); - const [checkedValues, setCheckedValues] = React.useState({ - showBookmarksBar: false, - showFullUrls: false, - }); - const [radioValue, setRadioValue] = React.useState('andy'); - return ( - - - - File - - - - New Tab - ⌘T - - - New Window - ⌘N - - - New Incognito Window - - - - - Share - - - - Email link - - - Messages - - - Notes - - - - - - Print... - ⌘P - - - - - - Edit - - - - Undo - ⌘Z - - - Redo - ⇧⌘Z - - - - - Find - - - - Search the web - - - - Find... - - - Find Next - - - Find Previous - - - - - - Cut - - - Copy - - - Paste - - - - - - View - - - - setCheckedValues({ - ...checkedValues, - showBookmarksBar: !checkedValues.showBookmarksBar, - }) - } - closeOnPress={false} - > - Always Show Bookmarks Bar - - - setCheckedValues({ ...checkedValues, showFullUrls: !checkedValues.showFullUrls }) - } - closeOnPress={false} - > - Always Show Full URLs - - - - Reload - ⌘R - - - Force Reload - ⇧⌘R - - - - Toggle Fullscreen - - - - Hide Sidebar - - - - - - Profiles - - - - - Andy - - - Michael - - - Creed - - - - - Edit... - - - - Add Profile... - - - - - ); -} diff --git a/packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx b/packages/reusables/src/examples/navigation-menu.tsx similarity index 94% rename from packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx rename to packages/reusables/src/examples/navigation-menu.tsx index 0033f46f..aeed936b 100644 --- a/packages/reusables/src/examples/navigation-menu/navigation-menu-native.tsx +++ b/packages/reusables/src/examples/navigation-menu.tsx @@ -10,14 +10,11 @@ import { } from '@/components/ui/navigation-menu'; import { Text } from '@/components/ui/text'; import type { TextRef } from '@rn-primitives/types'; -import { useNavigation } from 'expo-router'; import { Sparkles } from 'lucide-react-native'; import * as React from 'react'; import { View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -// TODO(zach): use only 1 component for navigation menu - export function NavigationMenuPreview() { const insets = useSafeAreaInsets(); const contentInsets = { @@ -27,19 +24,26 @@ export function NavigationMenuPreview() { right: 12, }; const [value, setValue] = React.useState(); - const navigation = useNavigation(); function closeAll() { setValue(''); } - React.useEffect(() => { - const sub = navigation.addListener('blur', () => { - closeAll(); - }); + /** + * NOTE: + * On mobile, we need to close the menu before navigating to a new screen + * since the portal overlays all screens. + * + * For example: + * ```tsx + const navigation = useNavigation(); + React.useEffect(() => { + const sub = navigation.addListener('blur', closeAll); - return sub; - }, []); + return sub; + }, []); + * ``` + */ return ( diff --git a/packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx b/packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx deleted file mode 100644 index f90527ab..00000000 --- a/packages/reusables/src/examples/navigation-menu/navigation-menu-web.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { Icon } from '@/components/ui/icon'; -import { - NavigationMenu, - NavigationMenuContent, - NavigationMenuItem, - NavigationMenuLink, - NavigationMenuList, - NavigationMenuTrigger, -} from '@/components/ui/navigation-menu'; -import { Text } from '@/components/ui/text'; -import { Sparkles } from 'lucide-react-native'; -import * as React from 'react'; -import { View } from 'react-native'; - -// TODO(zach): use only 1 component for navigation menu - -// TODO(zach) - -export function NavigationMenuPreview() { - const [value, setValue] = React.useState('getting-started'); - return ( - - - - - Getting started - - - - - - - - - react-native-reusables - - - Universal components that you can copy and paste into your apps. Accessible. - Customizable. Open Source. - - - - - - Re-usable components built using Radix UI on the web and Tailwind CSS. - - - How to install dependencies and structure your app. - - - Styles for headings, paragraphs, lists...etc - - - - - - - Components - - - - {COMPONENTS.map((component) => ( - - {component.description} - - ))} - - - - - - Documentation - - - - - ); -} - -function ListItem({ - title, - children, - ...props -}: React.ComponentPropsWithoutRef & { title: string; href: string }) { - return ( - - - - {title} - - - {children} - - - - ); -} - -const COMPONENTS: { title: string; href: string; description: string }[] = [ - { - title: 'Alert Dialog', - href: '/alert-dialog/alert-dialog-universal', - description: - 'A modal dialog that interrupts the user with important content and expects a response.', - }, - { - title: 'Hover Card', - href: '/hover-card/hover-card-universal', - description: 'For sighted users to preview content available behind a link.', - }, - { - title: 'Progress', - href: '/progress/progress-universal', - description: - 'Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.', - }, - { - title: 'Scroll-area', - href: '/scroll-area/scroll-area-universal', - description: 'Visually or semantically separates content.', - }, - { - title: 'Tabs', - href: '/tabs/tabs-universal', - description: - 'A set of layered sections of content—known as tab panels—that are displayed one at a time.', - }, - { - title: 'Tooltip', - href: '/tooltip/tooltip-universal', - description: - 'A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.', - }, -]; diff --git a/packages/reusables/src/index.ts b/packages/reusables/src/index.ts index 735fc712..edf1de53 100644 --- a/packages/reusables/src/index.ts +++ b/packages/reusables/src/index.ts @@ -1,3 +1,6 @@ export * as Ui from '@/components/ui'; -export * as DeprecatedUi from '@/components/deprecated-ui'; export * as Lib from '@/lib'; +export * as Examples from '@/examples'; + +// TODO: Remove this +export * as DeprecatedUi from '@/components/deprecated-ui'; From c12255d98e20d1aa58ee78212128ff92ef240592 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 13:32:42 -0400 Subject: [PATCH 051/467] fix(docs): build errors --- apps/docs/components/portal-info-alert.tsx | 7 ++++--- apps/docs/next.config.mjs | 7 +++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/docs/components/portal-info-alert.tsx b/apps/docs/components/portal-info-alert.tsx index 57de5cdb..5492e0ff 100644 --- a/apps/docs/components/portal-info-alert.tsx +++ b/apps/docs/components/portal-info-alert.tsx @@ -1,5 +1,6 @@ -import { Alert, AlertTitle, AlertDescription } from '@docs/components/ui/alert'; +import { Alert, AlertDescription, AlertTitle } from '@docs/components/ui/alert'; import { InfoIcon } from 'lucide-react'; +import Link from 'next/link'; export function PortalInfoAlert() { return ( @@ -8,9 +9,9 @@ export function PortalInfoAlert() { Note A{' '} - + PortalHost - {' '} + {' '} is required at the root of your project for this to work on native platforms. diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 0bec8f9e..862b1745 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -37,6 +37,13 @@ const config = { experimental: { forceSwcTransforms: true, }, + // TODO: + eslint: { + ignoreDuringBuilds: true, + }, + typescript: { + ignoreBuildErrors: true, + }, }; export default withMDX(withExpo(config)); From cbaf84fe917ef61ad1e693417974600c2ba39d1c Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 13:33:34 -0400 Subject: [PATCH 052/467] fix(docs): accordion to match --- .../preview-card/preview-card-client.tsx | 2 +- .../content/docs/(components)/accordion.mdx | 11 +++--- .../reusables/src/components/ui/accordion.tsx | 6 ++-- packages/reusables/src/examples/accordion.tsx | 36 ++++++++++++++----- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/apps/docs/components/preview-card/preview-card-client.tsx b/apps/docs/components/preview-card/preview-card-client.tsx index 37a8ec9a..32050528 100644 --- a/apps/docs/components/preview-card/preview-card-client.tsx +++ b/apps/docs/components/preview-card/preview-card-client.tsx @@ -51,7 +51,7 @@ export function PreviewCardClient({ } return ( -
+
@@ -57,7 +56,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Update `tailwind.config.js` + **Update `tailwind.config.js`** Add the following animations to your tailwind.config.js file: @@ -92,7 +91,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Install the following dependency: + **Install the following dependency:** ``` npx expo install @rn-primitives/accordion @@ -101,7 +100,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Copy and paste the following code into your project. + **Copy and paste the following code into your project.** ```json doc-gen:file { @@ -126,12 +125,12 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Update the import paths to match your project setup. + **Update the import paths to match your project setup.** - #### Update `tailwind.config.js` + **Update `tailwind.config.js`** Add the following animations to your tailwind.config.js file: diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index f3749220..718ea8a8 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -83,7 +83,7 @@ function AccordionTrigger({ @@ -107,10 +107,10 @@ function AccordionContent({ }) { const { isExpanded } = AccordionPrimitive.useItemContext(); return ( - + + - Is it accessible? + Product Information - - Yes. It adheres to the WAI-ARIA design pattern. + + + Our flagship product combines cutting-edge technology with sleek design. Built with + premium materials, it offers unparalleled performance and reliability. + + + Key features include advanced processing capabilities, and an intuitive user interface + designed for both beginners and experts. + - What are universal components? + Shipping Details - In the world of React Native, universal components are components that work on both web - and native platforms. + We offer worldwide shipping through trusted courier partners. Standard delivery takes + 3-5 business days, while express shipping ensures delivery within 1-2 business days. + + + All orders are carefully packaged and fully insured. Track your shipment in real-time + through our dedicated tracking portal. - Is this component universal? + Return Policy - Yes. Try it out on the web, iOS, and/or Android. + + We stand behind our products with a comprehensive 30-day return policy. If you're + not completely satisfied, simply return the item in its original condition. + + + Our hassle-free return process includes free return shipping and full refunds processed + within 48 hours of receiving the returned item. + From 7fe7b117db00d7f9410f5add299d7f1c93d8c986 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 13:44:01 -0400 Subject: [PATCH 053/467] fix(docs): build errors attempt 2 --- apps/docs/next.config.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index 862b1745..c1197ce8 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -37,6 +37,7 @@ const config = { experimental: { forceSwcTransforms: true, }, + distDir: 'dist', // TODO: eslint: { ignoreDuringBuilds: true, From e67a1a90b1fb778121248c15c1573f734c76ea12 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 14:27:20 -0400 Subject: [PATCH 054/467] feat: change inline rem to 16 --- apps/showcase/metro.config.js | 2 +- packages/templates/starter-base/metro.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/showcase/metro.config.js b/apps/showcase/metro.config.js index 4c9f31e2..11591f5c 100644 --- a/apps/showcase/metro.config.js +++ b/apps/showcase/metro.config.js @@ -23,4 +23,4 @@ config.resolver = { sourceExts: [...resolver.sourceExts, 'mjs', 'cjs'], }; -module.exports = withNativeWind(config, { input: './global.css' }); +module.exports = withNativeWind(config, { input: './global.css', inlineRem: 16 }); diff --git a/packages/templates/starter-base/metro.config.js b/packages/templates/starter-base/metro.config.js index f3321ba3..9a443d8b 100644 --- a/packages/templates/starter-base/metro.config.js +++ b/packages/templates/starter-base/metro.config.js @@ -3,4 +3,4 @@ const { withNativeWind } = require('nativewind/metro'); const config = getDefaultConfig(__dirname); -module.exports = withNativeWind(config, { input: './global.css' }); +module.exports = withNativeWind(config, { input: './global.css', inlineRem: 16 }); From acee6ab491adbe3eab7180432a7f7992f889490c Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 14:30:09 -0400 Subject: [PATCH 055/467] fix(docs): build error attempt 3 --- apps/docs/vercel.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 apps/docs/vercel.json diff --git a/apps/docs/vercel.json b/apps/docs/vercel.json new file mode 100644 index 00000000..a667db8c --- /dev/null +++ b/apps/docs/vercel.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://openapi.vercel.sh/vercel.json", + "framework": "nextjs" +} From a7937e8f11026b311fd8362aa117e71e3d00c0a7 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 14:30:39 -0400 Subject: [PATCH 056/467] fix(docs): ignore dist --- apps/docs/.gitignore | 1 + apps/docs/tsconfig.json | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/docs/.gitignore b/apps/docs/.gitignore index 55a12ae7..2ad76110 100644 --- a/apps/docs/.gitignore +++ b/apps/docs/.gitignore @@ -12,6 +12,7 @@ /out/ /build *.tsbuildinfo +/dist # misc .DS_Store diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 2064f98e..fba648f4 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -38,17 +38,18 @@ { "name": "next" } - ], + ] }, "include": [ - "next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", + "global.d.ts", "nativewind-env.d.ts", - "global.d.ts" + "next-env.d.ts", + "dist/types/**/*.ts" ], "exclude": [ "node_modules" ] -} \ No newline at end of file +} From 8d34c7603da7aa53a6c4e222ac4c9b2accd2eef7 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 14:31:40 -0400 Subject: [PATCH 057/467] fix: update accordion and accordion example --- apps/showcase/app/accordion.tsx | 45 +---------- .../reusables/src/components/ui/accordion.tsx | 81 ++++++++++--------- packages/reusables/src/examples/accordion.tsx | 4 +- 3 files changed, 49 insertions(+), 81 deletions(-) diff --git a/apps/showcase/app/accordion.tsx b/apps/showcase/app/accordion.tsx index b46e88e2..d67bc80b 100644 --- a/apps/showcase/app/accordion.tsx +++ b/apps/showcase/app/accordion.tsx @@ -1,49 +1,10 @@ +import { AccordionPreview } from '@/examples/accordion'; import { View } from 'react-native'; -import { - Accordion, - AccordionContent, - AccordionItem, - AccordionTrigger, -} from '@/components/ui/accordion'; -import { Text } from '@/components/ui/text'; export default function AccordionScreen() { return ( - - - - - Is it accessible? - - - Yes. It adheres to the WAI-ARIA design pattern. - - - - - What are universal components? - - - - In the world of React Native, universal components are components that work on both - web and native platforms. - - - - - - Is this component universal? - - - Yes. Try it out on the web, iOS, and/or Android. - - - + + ); } diff --git a/packages/reusables/src/components/ui/accordion.tsx b/packages/reusables/src/components/ui/accordion.tsx index 718ea8a8..b576287a 100644 --- a/packages/reusables/src/components/ui/accordion.tsx +++ b/packages/reusables/src/components/ui/accordion.tsx @@ -6,12 +6,9 @@ import { ChevronDown } from 'lucide-react-native'; import * as React from 'react'; import { Platform, Pressable, View } from 'react-native'; import Animated, { - Extrapolation, - FadeIn, FadeOutUp, LayoutAnimationConfig, LinearTransition, - interpolate, useAnimatedStyle, useDerivedValue, withTiming, @@ -36,6 +33,7 @@ function Accordion({ } function AccordionItem({ + children, className, value, ...props @@ -43,13 +41,23 @@ function AccordionItem({ ref?: React.RefObject; }) { return ( - - - + + + {children} + + ); } @@ -72,24 +80,35 @@ function AccordionTrigger({ const chevronStyle = useAnimatedStyle( () => ({ transform: [{ rotate: `${progress.value * 180}deg` }], - opacity: interpolate(progress.value, [0, 1], [1, 0.8], Extrapolation.CLAMP), }), [progress] ); return ( - + svg]:rotate-180', + }), className )} > <>{children} - + @@ -107,37 +126,25 @@ function AccordionContent({ }) { const { isExpanded } = AccordionPrimitive.useItemContext(); return ( - + - {children} + + {children} + ); } -function InnerContent({ children, className }: { children: React.ReactNode; className?: string }) { - if (Platform.OS === 'web') { - return ( - - <>{children} - - ); - } - return ( - - <>{children} - - ); -} - export { Accordion, AccordionContent, AccordionItem, AccordionTrigger }; diff --git a/packages/reusables/src/examples/accordion.tsx b/packages/reusables/src/examples/accordion.tsx index 39554ada..a81816e5 100644 --- a/packages/reusables/src/examples/accordion.tsx +++ b/packages/reusables/src/examples/accordion.tsx @@ -28,7 +28,7 @@ export function AccordionPreview() { Shipping Details - + We offer worldwide shipping through trusted courier partners. Standard delivery takes 3-5 business days, while express shipping ensures delivery within 1-2 business days. @@ -43,7 +43,7 @@ export function AccordionPreview() { Return Policy - + We stand behind our products with a comprehensive 30-day return policy. If you're not completely satisfied, simply return the item in its original condition. From 55b4e4a60022fb95871157bfd7cffca0b3a74e96 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 14:37:52 -0400 Subject: [PATCH 058/467] fix(docs): build error attempt 4 --- apps/docs/next.config.mjs | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/docs/next.config.mjs b/apps/docs/next.config.mjs index c1197ce8..862b1745 100644 --- a/apps/docs/next.config.mjs +++ b/apps/docs/next.config.mjs @@ -37,7 +37,6 @@ const config = { experimental: { forceSwcTransforms: true, }, - distDir: 'dist', // TODO: eslint: { ignoreDuringBuilds: true, From 7abd49b1409ad4ea71a784a32c275477300b870d Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sun, 8 Jun 2025 15:18:18 -0400 Subject: [PATCH 059/467] feat(docs): minor adjustments to landing page --- apps/docs/app/(home)/page.tsx | 29 ++++++++------- apps/docs/app/layout.config.tsx | 7 ++-- apps/docs/components/icons/rnr-icon.tsx | 47 ++++--------------------- apps/docs/components/ui/button.tsx | 22 ++++++------ 4 files changed, 34 insertions(+), 71 deletions(-) diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index d06760d8..6f90e9e5 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -3,21 +3,20 @@ import Link from 'next/link'; export default function HomePage() { return ( -
-
-
-

- A port of{' '} - - shadcn/ui - -

-

- Bringing shadcn/ui to React Native. Beautifully crafted components with NativeWind, open - source, and almost as easy to use. -

-
-
+
+
+

+ Build your Universal Component Library +

+

+ Bringing{' '} + + shadcn/ui + {' '} + to React Native. Beautifully crafted components with NativeWind, open source, and{' '} + almost as easy to use. +

+
diff --git a/apps/docs/app/layout.config.tsx b/apps/docs/app/layout.config.tsx index b06ac1d9..7ed9865f 100644 --- a/apps/docs/app/layout.config.tsx +++ b/apps/docs/app/layout.config.tsx @@ -13,11 +13,8 @@ export const baseOptions: BaseLayoutProps = { nav: { title: (
- -

RNR

+ +

Reusables

), }, diff --git a/apps/docs/components/icons/rnr-icon.tsx b/apps/docs/components/icons/rnr-icon.tsx index 80da4e94..cb4436c4 100644 --- a/apps/docs/components/icons/rnr-icon.tsx +++ b/apps/docs/components/icons/rnr-icon.tsx @@ -2,59 +2,24 @@ import { cn } from '@docs/lib/utils'; export function RnrIcon({ className, - strokeWidth = 24, reactPathClassName, ...props }: React.ComponentProps<'svg'> & { reactPathClassName?: string }) { return ( - - - - - - - - - - - ); } diff --git a/apps/docs/components/ui/button.tsx b/apps/docs/components/ui/button.tsx index 19a7d359..4b9e1084 100644 --- a/apps/docs/components/ui/button.tsx +++ b/apps/docs/components/ui/button.tsx @@ -5,22 +5,24 @@ import { cva, type VariantProps } from 'class-variance-authority'; import { cn } from '@docs/lib/utils'; const buttonVariants = cva( - 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", { variants: { variant: { - default: 'bg-primary text-primary-foreground hover:bg-primary/90', - destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90', - outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground', - secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', - ghost: 'hover:bg-accent hover:text-accent-foreground', + default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90', + destructive: + 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', link: 'text-primary underline-offset-4 hover:underline', }, size: { - default: 'h-10 px-4 py-2', - sm: 'h-9 rounded-md px-3', - lg: 'h-11 rounded-md px-8', - icon: 'h-10 w-10', + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', }, }, defaultVariants: { From 5ca376c16d14917ac168eac18062e8439cac1253 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 21 Jun 2025 05:14:36 -0400 Subject: [PATCH 060/467] feat(docs): add preview to toc --- apps/docs/app/global.css | 4 ++++ apps/docs/content/docs/(components)/accordion.mdx | 3 +++ 2 files changed, 7 insertions(+) diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index c77c173e..eba341f3 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -67,4 +67,8 @@ body { @apply font-sans antialiased; } +} + +html { + scroll-behavior: smooth; } \ No newline at end of file diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index 5ca97219..7707266b 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -26,6 +26,9 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code +
+ ## Preview +
}/>
From 47a2d783cb9b8f3d30ff1432aa180769ac67dd11 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 21 Jun 2025 06:06:16 -0400 Subject: [PATCH 061/467] fix: icon css interop --- packages/reusables/src/components/ui/icon.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/reusables/src/components/ui/icon.tsx b/packages/reusables/src/components/ui/icon.tsx index d38f945c..0edaff24 100644 --- a/packages/reusables/src/components/ui/icon.tsx +++ b/packages/reusables/src/components/ui/icon.tsx @@ -1,6 +1,6 @@ import { cn } from '@/lib/utils'; import type { LucideIcon, LucideProps } from 'lucide-react-native'; -import { remapProps } from 'nativewind'; +import { cssInterop } from 'nativewind'; type IconProps = LucideProps & { as: LucideIcon; @@ -10,7 +10,7 @@ function IconImpl({ as: IconComponent, ...props }: IconProps) { return ; } -remapProps(IconImpl, { className: 'style' }); +cssInterop(IconImpl, { className: 'style' }); /** * A wrapper component for Lucide icons with NativeWind `className` support via `cssInterop`. From 96bf886a3742d3f19d7362ff90015a6a2389acc1 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 21 Jun 2025 06:06:56 -0400 Subject: [PATCH 062/467] fix(docs): update desctructive color and radius --- apps/docs/app/global.css | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index eba341f3..68f49d4e 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -20,11 +20,10 @@ --accent: 0 0% 96.1%; --accent-foreground: 0 0% 9%; --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; --ring: 0 0% 3.9%; - --radius: 0.5rem; + --radius: 0.625rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; --chart-3: 197 37% 24%; @@ -47,8 +46,7 @@ --muted-foreground: 0 0% 63.9%; --accent: 0 0% 14.9%; --accent-foreground: 0 0% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 0% 98%; + --destructive: 0 70.9% 59.4%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; --ring: 0 0% 83.1%; From 325a92741a8dadd4b9ab66f45732ff13b931cee3 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Sat, 21 Jun 2025 06:07:17 -0400 Subject: [PATCH 063/467] feat: update alert + alert preview --- apps/docs/components/reusables.tsx | 274 ------------------ apps/docs/content/docs/(components)/alert.mdx | 66 +---- apps/showcase/app/alert.tsx | 18 +- .../reusables/src/components/ui/alert.tsx | 27 +- packages/reusables/src/examples/alert.tsx | 33 +++ .../src/examples/alert/alert-default.tsx | 11 - .../src/examples/alert/alert-destructive.tsx | 11 - packages/reusables/src/examples/index.ts | 3 +- 8 files changed, 65 insertions(+), 378 deletions(-) create mode 100644 packages/reusables/src/examples/alert.tsx delete mode 100644 packages/reusables/src/examples/alert/alert-default.tsx delete mode 100644 packages/reusables/src/examples/alert/alert-destructive.tsx diff --git a/apps/docs/components/reusables.tsx b/apps/docs/components/reusables.tsx index fdc92b78..29caec41 100644 --- a/apps/docs/components/reusables.tsx +++ b/apps/docs/components/reusables.tsx @@ -4,277 +4,3 @@ export * from '@/components/ui'; export * from '@/lib'; export * from '@/examples'; export { SafeAreaProvider } from 'react-native-safe-area-context'; - -// export const { -// Accordion, -// AccordionContent, -// AccordionItem, -// AccordionTrigger, -// Alert, -// AlertDescription, -// AlertDialog, -// AlertDialogAction, -// AlertDialogCancel, -// AlertDialogContent, -// AlertDialogDescription, -// AlertDialogFooter, -// AlertDialogHeader, -// AlertDialogOverlay, -// AlertDialogPortal, -// AlertDialogTitle, -// AlertDialogTrigger, -// AlertTitle, -// AspectRatio, -// Avatar, -// AvatarFallback, -// AvatarImage, -// Badge, -// BlockQuote, -// Button, -// Card, -// CardContent, -// CardDescription, -// CardFooter, -// CardHeader, -// CardTitle, -// Checkbox, -// Code, -// Collapsible, -// CollapsibleContent, -// CollapsibleTrigger, -// ContextMenu, -// ContextMenuCheckboxItem, -// ContextMenuContent, -// ContextMenuGroup, -// ContextMenuItem, -// ContextMenuLabel, -// ContextMenuRadioGroup, -// ContextMenuRadioItem, -// ContextMenuSeparator, -// ContextMenuShortcut, -// ContextMenuSub, -// ContextMenuSubContent, -// ContextMenuSubTrigger, -// ContextMenuTrigger, -// DataTable, -// Dialog, -// DialogClose, -// DialogContent, -// DialogDescription, -// DialogFooter, -// DialogHeader, -// DialogOverlay, -// DialogPortal, -// DialogTitle, -// DialogTrigger, -// DropdownMenu, -// DropdownMenuCheckboxItem, -// DropdownMenuContent, -// DropdownMenuGroup, -// DropdownMenuItem, -// DropdownMenuLabel, -// DropdownMenuPortal, -// DropdownMenuRadioGroup, -// DropdownMenuRadioItem, -// DropdownMenuSeparator, -// DropdownMenuShortcut, -// DropdownMenuSub, -// DropdownMenuSubContent, -// DropdownMenuSubTrigger, -// DropdownMenuTrigger, -// Form, -// FormCheckbox, -// FormCombobox, -// FormDatePicker, -// FormDescription, -// FormField, -// FormInput, -// FormItem, -// FormLabel, -// FormMessage, -// FormRadioGroup, -// FormSelect, -// FormSwitch, -// FormTextarea, -// H1, -// H2, -// H3, -// H4, -// HoverCard, -// HoverCardContent, -// HoverCardTrigger, -// Input, -// Label, -// Large, -// Lead, -// Menubar, -// MenubarContent, -// MenubarGroup, -// MenubarCheckboxItem, -// MenubarItem, -// MenubarLabel, -// MenubarMenu, -// MenubarPortal, -// MenubarRadioGroup, -// MenubarRadioItem, -// MenubarSeparator, -// MenubarShortcut, -// MenubarSub, -// MenubarSubContent, -// MenubarSubTrigger, -// MenubarTrigger, -// Muted, -// NavigationMenu, -// NavigationMenuContent, -// NavigationMenuIndicator, -// NavigationMenuItem, -// NavigationMenuLink, -// NavigationMenuList, -// NavigationMenuTrigger, -// NavigationMenuViewport, -// P, -// Popover, -// PopoverContent, -// PopoverTrigger, -// Progress, -// RadioGroup, -// RadioGroupItem, -// Select, -// SelectContent, -// SelectGroup, -// SelectItem, -// SelectLabel, -// SelectScrollDownButton, -// SelectScrollUpButton, -// SelectSeparator, -// SelectTrigger, -// SelectValue, -// Separator, -// Skeleton, -// Small, -// Switch, -// Table, -// TableBody, -// TableCell, -// TableFooter, -// TableHead, -// TableHeader, -// TableRow, -// Tabs, -// TabsContent, -// TabsList, -// TabsTrigger, -// Text, -// TextClassContext, -// Textarea, -// Toggle, -// Tooltip, -// TooltipContent, -// TooltipTrigger, -// ToggleGroup, -// ToggleGroupIcon, -// ToggleGroupItem, -// ToggleIcon, -// badgeTextVariants, -// badgeVariants, -// buttonTextVariants, -// buttonVariants, -// navigationMenuTriggerStyle, -// toggleTextVariants, -// toggleVariants, -// useFormField, -// } = Ui; - -// export const { -// AccordionPreview, -// AlertPreview, -// AlertDestructive, -// AspectRatioPreview, -// AvatarPreview, -// AlertDialogPreview, -// BadgeDestructivePreview, -// BadgeOutlinePreview, -// BadgePreview, -// BadgeSecondaryPreview, -// ButtonDestructivePreview, -// ButtonGhostPreview, -// ButtonIconPreview, -// ButtonLinkPreview, -// ButtonLoadingPreview, -// ButtonOutlinePreview, -// ButtonPreview, -// ButtonSecondaryPreview, -// ButtonWithIconPreview, -// CardExample, -// CardPreview, -// CheckboxPreview, -// CollapsiblePreview, -// ContextMenuPreview, -// DialogPreview, -// HoverCardPreview, -// InputPreview, -// LabelPreview, -// MenubarPreview, -// NavigationMenuPreview, -// } = Examples; - -// const { Icons } = Lib; - -// export const { -// Terminal, -// AlertCircle, -// ChevronRight, -// Mail, -// Loader2, -// Check, -// Sparkles, -// ChevronsDownUp, -// ChevronsUpDown, -// Cloud, -// Github, -// LifeBuoy, -// LogOut, -// MessageSquare, -// Plus, -// PlusCircle, -// UserPlus, -// Users, -// Activity, -// Airplay, -// AlarmClockIcon, -// AlertTriangle, -// AlignCenter, -// AlignJustify, -// AlignLeft, -// AlignRight, -// ArrowDown, -// ArrowUp, -// Baby, -// BadgeAlert, -// Bold, -// Calendar, -// CalendarDays, -// CheckSquare, -// ChevronDown, -// ChevronLeft, -// ChevronUp, -// CircleUserRound, -// Code: CodeIcon, -// Copy, -// Database, -// Ear, -// Fan, -// GalleryHorizontal, -// Info, -// Italic, -// Lamp, -// LayoutPanelLeft, -// MenuSquare, -// MoonStar, -// Search, -// Sun, -// Table: TabelIcon, -// Underline, -// User, -// X, -// } = Icons; diff --git a/apps/docs/content/docs/(components)/alert.mdx b/apps/docs/content/docs/(components)/alert.mdx index ac71d37a..1d38303d 100644 --- a/apps/docs/content/docs/(components)/alert.mdx +++ b/apps/docs/content/docs/(components)/alert.mdx @@ -3,13 +3,12 @@ title: Alert description: Displays a callout for user attention. --- -import alertPreview from "!!raw-loader!@/examples/alert/alert-default"; -import alertDestructivePreview from "!!raw-loader!@/examples/alert/alert-destructive"; +import alertPreview from "!!raw-loader!@/examples/alert"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { AlertPreview, AlertDestructive } from "@docs/components/reusables"; +import { AlertPreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -20,13 +19,16 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code +
+ ## Preview +
}/>
```json doc-gen:file { - "file": "./node_modules/@rnr/reusables/src/examples/alert/alert-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/alert.tsx", "codeblock": { "lang": "tsx" } @@ -50,7 +52,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Copy and paste the following code into your project. + **Copy and paste the following code into your project.** ```json doc-gen:file { @@ -65,7 +67,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Update the import paths to match your project setup. + **Update the import paths to match your project setup.** @@ -86,54 +88,4 @@ import { Terminal } from '@/lib/icons/Terminal'; You can use a terminal to run commands on your computer. -``` - -### Examples - -#### Default - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/alert/alert-default.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - - -
- -#### Destructive - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/alert/alert-destructive.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - \ No newline at end of file +``` \ No newline at end of file diff --git a/apps/showcase/app/alert.tsx b/apps/showcase/app/alert.tsx index e14dcbac..f991ad78 100644 --- a/apps/showcase/app/alert.tsx +++ b/apps/showcase/app/alert.tsx @@ -1,22 +1,10 @@ +import { AlertPreview } from '@/examples'; import { View } from 'react-native'; -import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; -import { AlertTriangle, Terminal } from 'lucide-react-native'; export default function AlertScreen() { return ( - - - Heads up! - - You can use a terminal to run commands on your computer. - - - - Danger! - - High voltage. Do not touch. Risk of electric shock. Keep away from children. - - + + ); } diff --git a/packages/reusables/src/components/ui/alert.tsx b/packages/reusables/src/components/ui/alert.tsx index ab571e0e..7e682cae 100644 --- a/packages/reusables/src/components/ui/alert.tsx +++ b/packages/reusables/src/components/ui/alert.tsx @@ -7,7 +7,7 @@ import * as React from 'react'; import { View, type ViewProps } from 'react-native'; const alertVariants = cva( - 'relative bg-background w-full rounded-lg border border-border px-4 py-3', + 'relative bg-background w-full rounded-lg border border-border px-4 pt-3.5 pb-2', { variants: { variant: { @@ -37,9 +37,15 @@ function Alert({ iconClassName?: string; }) { return ( - + - + ) { return ( ); } function AlertDescription({ className, ...props }: React.ComponentProps) { + const textClass = React.useContext(TextClassContext); return ( - + ); } diff --git a/packages/reusables/src/examples/alert.tsx b/packages/reusables/src/examples/alert.tsx new file mode 100644 index 00000000..1ce54516 --- /dev/null +++ b/packages/reusables/src/examples/alert.tsx @@ -0,0 +1,33 @@ +import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; +import { Text } from '@/components/ui/text'; +import { AlertCircleIcon, CheckCircle2Icon, Terminal } from 'lucide-react-native'; +import { View } from 'react-native'; + +export function AlertPreview() { + return ( + + + Success! Your changes have been saved + This is an alert with icon, title and description. + + + This Alert has no description. + + + Unable to process your payment. + Please verify your billing information and try again. + + + Check your card details + + + Ensure sufficient funds + + + Verify billing address + + + + + ); +} diff --git a/packages/reusables/src/examples/alert/alert-default.tsx b/packages/reusables/src/examples/alert/alert-default.tsx deleted file mode 100644 index 07240917..00000000 --- a/packages/reusables/src/examples/alert/alert-default.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; -import { Terminal } from 'lucide-react-native'; - -export function AlertPreview() { - return ( - - Heads up! - You can use a terminal to run commands on your computer. - - ); -} diff --git a/packages/reusables/src/examples/alert/alert-destructive.tsx b/packages/reusables/src/examples/alert/alert-destructive.tsx deleted file mode 100644 index f2a95153..00000000 --- a/packages/reusables/src/examples/alert/alert-destructive.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; -import { AlertCircle } from 'lucide-react-native'; - -export function AlertDestructive() { - return ( - - Error - Your session has expired. Please log in again. - - ); -} diff --git a/packages/reusables/src/examples/index.ts b/packages/reusables/src/examples/index.ts index e8d5b747..96802a7c 100644 --- a/packages/reusables/src/examples/index.ts +++ b/packages/reusables/src/examples/index.ts @@ -1,6 +1,5 @@ export * from './accordion'; -export * from './alert/alert-default'; -export * from './alert/alert-destructive'; +export * from './alert'; export * from './alert-dialog'; export * from './aspect-ratio'; export * from './avatar'; From fd6928887fb30334500d72fb9dd2a64c7b73d32d Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 09:55:34 -0400 Subject: [PATCH 064/467] chore: update to new york css variabes --- apps/showcase/global.css | 63 ++++++++++++---------- packages/templates/starter-base/global.css | 63 ++++++++++++---------- 2 files changed, 72 insertions(+), 54 deletions(-) diff --git a/apps/showcase/global.css b/apps/showcase/global.css index 1259622a..38096447 100644 --- a/apps/showcase/global.css +++ b/apps/showcase/global.css @@ -5,45 +5,54 @@ @layer base { :root { --background: 0 0% 100%; - --foreground: 240 10% 3.9%; + --foreground: 0 0% 3.9%; --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; + --card-foreground: 0 0% 3.9%; --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 5.9% 10%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --radius: 0.625rem; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; } .dark:root { - --background: 240 10% 3.9%; + --background: 0 0% 3.9%; --foreground: 0 0% 98%; - --card: 240 10% 3.9%; + --card: 0 0% 3.9%; --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; + --popover: 0 0% 3.9%; --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; --accent-foreground: 0 0% 98%; - --destructive: 0 72% 51%; - --destructive-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; + --destructive: 0 70.9% 59.4%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; } } diff --git a/packages/templates/starter-base/global.css b/packages/templates/starter-base/global.css index 1259622a..38096447 100644 --- a/packages/templates/starter-base/global.css +++ b/packages/templates/starter-base/global.css @@ -5,45 +5,54 @@ @layer base { :root { --background: 0 0% 100%; - --foreground: 240 10% 3.9%; + --foreground: 0 0% 3.9%; --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; + --card-foreground: 0 0% 3.9%; --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; + --popover-foreground: 0 0% 3.9%; + --primary: 0 0% 9%; --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; + --secondary: 0 0% 96.1%; + --secondary-foreground: 0 0% 9%; + --muted: 0 0% 96.1%; + --muted-foreground: 0 0% 45.1%; + --accent: 0 0% 96.1%; + --accent-foreground: 0 0% 9%; --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 5.9% 10%; + --border: 0 0% 89.8%; + --input: 0 0% 89.8%; + --ring: 0 0% 3.9%; + --radius: 0.625rem; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; } .dark:root { - --background: 240 10% 3.9%; + --background: 0 0% 3.9%; --foreground: 0 0% 98%; - --card: 240 10% 3.9%; + --card: 0 0% 3.9%; --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; + --popover: 0 0% 3.9%; --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; + --primary-foreground: 0 0% 9%; + --secondary: 0 0% 14.9%; --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; + --muted: 0 0% 14.9%; + --muted-foreground: 0 0% 63.9%; + --accent: 0 0% 14.9%; --accent-foreground: 0 0% 98%; - --destructive: 0 72% 51%; - --destructive-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; + --destructive: 0 70.9% 59.4%; + --border: 0 0% 14.9%; + --input: 0 0% 14.9%; + --ring: 0 0% 83.1%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; } } From d31a517d44f67eb265cb391c85f51395be5b9bd4 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 12:42:58 -0400 Subject: [PATCH 065/467] feat: update button --- .../reusables/src/components/ui/button.tsx | 80 ++++++++++++------- 1 file changed, 52 insertions(+), 28 deletions(-) diff --git a/packages/reusables/src/components/ui/button.tsx b/packages/reusables/src/components/ui/button.tsx index 0cc29d71..c945ae87 100644 --- a/packages/reusables/src/components/ui/button.tsx +++ b/packages/reusables/src/components/ui/button.tsx @@ -2,26 +2,47 @@ import { TextClassContext } from '@/components/ui/text'; import { cn } from '@/lib/utils'; import { cva, type VariantProps } from 'class-variance-authority'; import * as React from 'react'; -import { Pressable } from 'react-native'; +import { Platform, Pressable } from 'react-native'; const buttonVariants = cva( - 'group flex flex-row gap-2 items-center justify-center rounded-md web:whitespace-nowrap web:ring-offset-background web:transition-colors web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 web:[&_svg]:pointer-events-none web:[&_svg]:size-4 web:[&_svg]:shrink-0', + cn( + 'group inline-flex flex-row items-center justify-center gap-2 rounded-md shrink-0', + Platform.select({ + web: "whitespace-nowrap transition-all disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + }) + ), { variants: { variant: { - default: 'bg-primary web:hover:opacity-90 active:opacity-90', - destructive: 'bg-destructive web:hover:opacity-90 active:opacity-90', - outline: - 'border border-input bg-background web:hover:bg-accent web:hover:text-accent-foreground active:bg-accent', - secondary: 'bg-secondary web:hover:opacity-80 active:opacity-80', - ghost: 'web:hover:bg-accent web:hover:text-accent-foreground active:bg-accent', - link: 'web:underline-offset-4 web:hover:underline web:focus:underline', + default: cn( + 'bg-primary shadow-xs active:bg-primary/90', + Platform.select({ web: 'hover:bg-primary/90' }) + ), + destructive: cn( + 'bg-destructive shadow-xs active:bg-destructive/90 dark:bg-destructive/60', + Platform.select({ + web: 'hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40', + }) + ), + outline: cn( + 'border border-border bg-background shadow-xs active:bg-accent dark:bg-input/30 dark:border-input dark:active:bg-input/50', + Platform.select({ web: 'hover:bg-accent dark:hover:bg-input/50' }) + ), + secondary: cn( + 'bg-secondary shadow-xs active:bg-secondary/80', + Platform.select({ web: 'hover:bg-secondary/80' }) + ), + ghost: cn( + 'active:bg-accent dark:active:bg-accent/50', + Platform.select({ web: 'hover:bg-accent dark:hover:bg-accent/50' }) + ), + link: '', }, size: { - default: 'h-10 px-4 py-2 native:h-12 native:px-5 native:py-3', - sm: 'h-9 rounded-md px-3', - lg: 'h-11 rounded-md px-8 native:h-14', - icon: 'h-10 w-10', + default: cn('h-9 px-4 py-2', Platform.select({ web: 'has-[>svg]:px-3' })), + sm: cn('h-8 rounded-md gap-1.5 px-3', Platform.select({ web: 'has-[>svg]:px-2.5' })), + lg: cn('h-10 rounded-md px-6', Platform.select({ web: 'has-[>svg]:px-4' })), + icon: 'size-9', }, }, defaultVariants: { @@ -32,21 +53,30 @@ const buttonVariants = cva( ); const buttonTextVariants = cva( - 'text-sm native:text-base font-medium text-foreground web:transition-colors', + cn( + 'text-sm font-medium text-foreground', + Platform.select({ web: 'transition-colors pointer-events-none' }) + ), { variants: { variant: { default: 'text-primary-foreground', - destructive: 'text-destructive-foreground', - outline: 'group-active:text-accent-foreground', - secondary: 'text-secondary-foreground group-active:text-secondary-foreground', + destructive: 'text-white', + outline: cn( + 'group-active:text-accent-foreground', + Platform.select({ web: 'group-hover:text-accent-foreground' }) + ), + secondary: 'text-secondary-foreground', ghost: 'group-active:text-accent-foreground', - link: 'text-primary group-active:underline', + link: cn( + 'text-primary group-active:underline', + Platform.select({ web: 'underline-offset-4 hover:underline' }) + ), }, size: { default: '', sm: '', - lg: 'native:text-lg', + lg: '', icon: '', }, }, @@ -59,17 +89,11 @@ const buttonTextVariants = cva( type ButtonProps = React.ComponentProps & VariantProps; -function Button({ ref, className, variant, size, ...props }: ButtonProps) { +function Button({ className, variant, size, ...props }: ButtonProps) { return ( - + From 3394bf9354006a6ea0bdad6422106bc95948f7da Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 12:43:14 -0400 Subject: [PATCH 066/467] fix: accordion example padding --- apps/showcase/app/accordion.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/showcase/app/accordion.tsx b/apps/showcase/app/accordion.tsx index d67bc80b..6714e1f3 100644 --- a/apps/showcase/app/accordion.tsx +++ b/apps/showcase/app/accordion.tsx @@ -3,7 +3,7 @@ import { View } from 'react-native'; export default function AccordionScreen() { return ( - + ); From 2375a3b8a2475e22beae5e164b5a370053e4f66b Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 13:07:11 -0400 Subject: [PATCH 067/467] feat: add native only animated view + update alert dialog --- .../src/components/ui/alert-dialog.tsx | 59 +++++++------------ .../ui/native-only-animated-view.tsx | 21 +++++++ 2 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 packages/reusables/src/components/ui/native-only-animated-view.tsx diff --git a/packages/reusables/src/components/ui/alert-dialog.tsx b/packages/reusables/src/components/ui/alert-dialog.tsx index 4bb92d1b..f1aeee71 100644 --- a/packages/reusables/src/components/ui/alert-dialog.tsx +++ b/packages/reusables/src/components/ui/alert-dialog.tsx @@ -1,10 +1,11 @@ import { buttonTextVariants, buttonVariants } from '@/components/ui/button'; +import { NativeOnlyAnimatedView } from '@/components/ui/native-only-animated-view'; import { TextClassContext } from '@/components/ui/text'; import { cn } from '@/lib/utils'; import * as AlertDialogPrimitive from '@rn-primitives/alert-dialog'; import * as React from 'react'; import { Platform, View, type ViewProps } from 'react-native'; -import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; +import { FadeIn, FadeOut } from 'react-native-reanimated'; const AlertDialog = AlertDialogPrimitive.Root; @@ -12,26 +13,7 @@ const AlertDialogTrigger = AlertDialogPrimitive.Trigger; const AlertDialogPortal = AlertDialogPrimitive.Portal; -function AlertDialogOverlayWeb({ - className, - ...props -}: AlertDialogPrimitive.OverlayProps & { - ref?: React.RefObject; -}) { - const { open } = AlertDialogPrimitive.useRootContext(); - return ( - - ); -} - -function AlertDialogOverlayNative({ +function AlertDialogOverlay({ className, children, ...props @@ -41,24 +23,21 @@ function AlertDialogOverlayNative({ return ( - + {children} - + ); } -const AlertDialogOverlay = Platform.select({ - web: AlertDialogOverlayWeb, - default: AlertDialogOverlayNative, -}); - function AlertDialogContent({ className, portalHost, @@ -74,10 +53,10 @@ function AlertDialogContent({ ; + return ( + + + + ); } function AlertDialogFooter({ className, ...props }: ViewProps) { return ( ); @@ -108,7 +91,7 @@ function AlertDialogTitle({ }) { return ( ); @@ -122,7 +105,7 @@ function AlertDialogDescription({ }) { return ( ); diff --git a/packages/reusables/src/components/ui/native-only-animated-view.tsx b/packages/reusables/src/components/ui/native-only-animated-view.tsx new file mode 100644 index 00000000..7bffda38 --- /dev/null +++ b/packages/reusables/src/components/ui/native-only-animated-view.tsx @@ -0,0 +1,21 @@ +import { Platform } from 'react-native'; +import Animated from 'react-native-reanimated'; + +/** + * This component is used to wrap animated views that should only be animated on native. + * @param props - The props for the animated view. + * @returns The animated view if the platform is native, otherwise the children. + * @example + * + * I am only animated on native + * + */ +function NativeOnlyAnimatedView(props: React.ComponentProps) { + if (Platform.OS === 'web') { + return <>{props.children as React.ReactNode}; + } else { + return ; + } +} + +export { NativeOnlyAnimatedView }; From 3a1f379f9f4e7ef5e06252dacc471bec7b0dea74 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 13:28:22 -0400 Subject: [PATCH 068/467] fix(showcase): use alert dialog preview --- apps/showcase/app/alert-dialog.tsx | 39 ++---------------------------- 1 file changed, 2 insertions(+), 37 deletions(-) diff --git a/apps/showcase/app/alert-dialog.tsx b/apps/showcase/app/alert-dialog.tsx index bb2b6669..bbedae47 100644 --- a/apps/showcase/app/alert-dialog.tsx +++ b/apps/showcase/app/alert-dialog.tsx @@ -1,45 +1,10 @@ +import { AlertDialogPreview } from '@/examples'; import { View } from 'react-native'; -import { - AlertDialog, - AlertDialogAction, - AlertDialogCancel, - AlertDialogContent, - AlertDialogDescription, - AlertDialogFooter, - AlertDialogHeader, - AlertDialogTitle, - AlertDialogTrigger, -} from '@/components/ui/alert-dialog'; -import { Button } from '@/components/ui/button'; -import { Text } from '@/components/ui/text'; export default function AlertDialogScreen() { return ( - - - - - - - Are you absolutely sure? - - This action cannot be undone. This will permanently delete your account and remove - your data from our servers. - - - - - Cancel - - - Continue - - - - + ); } From ce06e8b60905d38900587ee7139fa53ebffaa355 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 13:29:08 -0400 Subject: [PATCH 069/467] fix: update aspect ratio preview --- apps/showcase/app/aspect-ratio.tsx | 13 +++---------- packages/reusables/src/examples/aspect-ratio.tsx | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/apps/showcase/app/aspect-ratio.tsx b/apps/showcase/app/aspect-ratio.tsx index b18ff16e..cf30e2d2 100644 --- a/apps/showcase/app/aspect-ratio.tsx +++ b/apps/showcase/app/aspect-ratio.tsx @@ -1,17 +1,10 @@ import { View } from 'react-native'; -import { AspectRatio } from '@/components/ui/aspect-ratio'; -import { H1 } from '@/components/ui/typography'; +import { AspectRatioPreview } from '@/examples/aspect-ratio'; export default function AspectRatioScreen() { return ( - - - - -

16:9

-
-
-
+ + ); } diff --git a/packages/reusables/src/examples/aspect-ratio.tsx b/packages/reusables/src/examples/aspect-ratio.tsx index a7f35160..f2624ffe 100644 --- a/packages/reusables/src/examples/aspect-ratio.tsx +++ b/packages/reusables/src/examples/aspect-ratio.tsx @@ -3,7 +3,7 @@ import { Image } from 'react-native'; export function AspectRatioPreview() { return ( - + Date: Mon, 23 Jun 2025 13:29:49 -0400 Subject: [PATCH 070/467] fix: icon component interop for size class + update component and primitives list --- apps/showcase/app/(tabs)/components/index.tsx | 37 ++++++++++-------- .../app/(tabs)/components/primitives.tsx | 39 ++++++++++--------- packages/reusables/src/components/ui/icon.tsx | 10 ++++- 3 files changed, 50 insertions(+), 36 deletions(-) diff --git a/apps/showcase/app/(tabs)/components/index.tsx b/apps/showcase/app/(tabs)/components/index.tsx index 1946c0d5..8961c243 100644 --- a/apps/showcase/app/(tabs)/components/index.tsx +++ b/apps/showcase/app/(tabs)/components/index.tsx @@ -1,14 +1,15 @@ +import { Button } from '@/components/ui/button'; +import { Icon } from '@/components/ui/icon'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import { useScrollToTop } from '@react-navigation/native'; import { FlashList } from '@shopify/flash-list'; +import { COMPONENTS } from '@showcase/lib/constants'; import { Link } from 'expo-router'; +import { ChevronRight } from 'lucide-react-native'; import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '@/components/ui/button'; -import { Input } from '@/components/ui/input'; -import { Text } from '@/components/ui/text'; -import { COMPONENTS } from '@showcase/lib/constants'; -import { ChevronRight } from '@/lib/icons/ChevronRight'; -import { cn } from '@/lib/utils'; export default function ComponentsScreen() { const [search, setSearch] = React.useState(''); @@ -20,33 +21,35 @@ export default function ComponentsScreen() { : COMPONENTS.filter((item) => item.toLowerCase().includes(search.toLowerCase())); return ( - - - + + + } renderItem={({ item, index }) => ( )} diff --git a/apps/showcase/app/(tabs)/components/primitives.tsx b/apps/showcase/app/(tabs)/components/primitives.tsx index c51706d9..4854c8b3 100644 --- a/apps/showcase/app/(tabs)/components/primitives.tsx +++ b/apps/showcase/app/(tabs)/components/primitives.tsx @@ -1,14 +1,15 @@ +import { Button } from '@/components/ui/button'; +import { Icon } from '@/components/ui/icon'; +import { Input } from '@/components/ui/input'; +import { Text } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import { useScrollToTop } from '@react-navigation/native'; import { FlashList } from '@shopify/flash-list'; +import { PRIMITIVES } from '@showcase/lib/constants'; import { Link } from 'expo-router'; +import { ExternalLink } from 'lucide-react-native'; import * as React from 'react'; import { View } from 'react-native'; -import { Button } from '@/components/ui/button'; -import { Input } from '@/components/ui/input'; -import { Text } from '@/components/ui/text'; -import { PRIMITIVES } from '@showcase/lib/constants'; -import { ExternalLink } from '@/lib/icons/ExternalLink'; -import { cn } from '@/lib/utils'; export default function PrimitivesScreen() { const [search, setSearch] = React.useState(''); @@ -20,33 +21,35 @@ export default function PrimitivesScreen() { : PRIMITIVES.filter((item) => item.toLowerCase().includes(search.toLowerCase())); return ( - - - + + + } renderItem={({ item, index }) => ( - + )} diff --git a/packages/reusables/src/components/ui/icon.tsx b/packages/reusables/src/components/ui/icon.tsx index 0edaff24..358ae547 100644 --- a/packages/reusables/src/components/ui/icon.tsx +++ b/packages/reusables/src/components/ui/icon.tsx @@ -10,7 +10,15 @@ function IconImpl({ as: IconComponent, ...props }: IconProps) { return ; } -cssInterop(IconImpl, { className: 'style' }); +cssInterop(IconImpl, { + className: { + target: 'style', + nativeStyleToProp: { + height: 'size', + width: 'size', + }, + }, +}); /** * A wrapper component for Lucide icons with NativeWind `className` support via `cssInterop`. From 81cd525f884772e0c122305b0ad1f783b48384dc Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 13:44:25 -0400 Subject: [PATCH 071/467] feat: update avatar --- apps/showcase/app/avatar.tsx | 12 ++---------- packages/reusables/src/components/ui/avatar.tsx | 8 +++----- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/apps/showcase/app/avatar.tsx b/apps/showcase/app/avatar.tsx index ebf71797..61aa1939 100644 --- a/apps/showcase/app/avatar.tsx +++ b/apps/showcase/app/avatar.tsx @@ -1,18 +1,10 @@ import { View } from 'react-native'; -import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; -import { Text } from '@/components/ui/text'; - -const GITHUB_AVATAR_URI = 'https://github.com/mrzachnugent.png'; +import { AvatarPreview } from '@/examples/avatar'; export default function AvatarScreen() { return ( - - - - ZN - - + ); } diff --git a/packages/reusables/src/components/ui/avatar.tsx b/packages/reusables/src/components/ui/avatar.tsx index 93439b8d..a2b9db17 100644 --- a/packages/reusables/src/components/ui/avatar.tsx +++ b/packages/reusables/src/components/ui/avatar.tsx @@ -10,7 +10,7 @@ function Avatar({ }) { return ( ); @@ -22,9 +22,7 @@ function AvatarImage({ }: AvatarPrimitive.ImageProps & { ref?: React.RefObject; }) { - return ( - - ); + return ; } function AvatarFallback({ @@ -36,7 +34,7 @@ function AvatarFallback({ return ( Date: Mon, 23 Jun 2025 15:52:46 -0400 Subject: [PATCH 072/467] feat: improve avatar example --- apps/showcase/tailwind.config.js | 5 ++ packages/reusables/src/examples/avatar.tsx | 58 ++++++++++++++++--- .../templates/starter-base/tailwind.config.js | 5 ++ 3 files changed, 60 insertions(+), 8 deletions(-) diff --git a/apps/showcase/tailwind.config.js b/apps/showcase/tailwind.config.js index 42fd1299..94681893 100644 --- a/apps/showcase/tailwind.config.js +++ b/apps/showcase/tailwind.config.js @@ -46,6 +46,11 @@ module.exports = { foreground: 'hsl(var(--card-foreground))', }, }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, borderWidth: { hairline: hairlineWidth(), }, diff --git a/packages/reusables/src/examples/avatar.tsx b/packages/reusables/src/examples/avatar.tsx index 873efd8e..4f6ebf74 100644 --- a/packages/reusables/src/examples/avatar.tsx +++ b/packages/reusables/src/examples/avatar.tsx @@ -1,15 +1,57 @@ import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Text } from '@/components/ui/text'; - -const SOURCE = { uri: 'https://github.com/mrzachnugent.png' }; +import { View } from 'react-native'; export function AvatarPreview() { return ( - - - - ZN - - + + + + + ZN + + + + + + CN + + + + + + + ZN + + + + + + LR + + + + + + ER + + + + ); } diff --git a/packages/templates/starter-base/tailwind.config.js b/packages/templates/starter-base/tailwind.config.js index 872bd221..dae84dbc 100644 --- a/packages/templates/starter-base/tailwind.config.js +++ b/packages/templates/starter-base/tailwind.config.js @@ -42,6 +42,11 @@ module.exports = { foreground: 'hsl(var(--card-foreground))', }, }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, borderWidth: { hairline: hairlineWidth(), }, From 835dd07246b94b2cd2c2cb0ca863c1c37116e025 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 23 Jun 2025 16:24:12 -0400 Subject: [PATCH 073/467] feat: update badge + fix missing poc adjustments --- .../content/docs/(components)/accordion.mdx | 1 + .../docs/(components)/alert-dialog.mdx | 9 +- .../docs/(components)/aspect-ratio.mdx | 7 +- .../docs/content/docs/(components)/avatar.mdx | 7 +- apps/docs/content/docs/(components)/badge.mdx | 121 ++---------------- apps/showcase/app/badge.tsx | 16 +-- .../reusables/src/components/ui/badge.tsx | 30 +++-- .../reusables/src/components/ui/button.tsx | 2 +- packages/reusables/src/examples/accordion.tsx | 2 +- packages/reusables/src/examples/badge.tsx | 41 ++++++ .../src/examples/badge/badge-default.tsx | 10 -- .../src/examples/badge/badge-destructive.tsx | 10 -- .../src/examples/badge/badge-outline.tsx | 10 -- .../src/examples/badge/badge-secondary.tsx | 10 -- packages/reusables/src/examples/index.ts | 5 +- 15 files changed, 94 insertions(+), 187 deletions(-) create mode 100644 packages/reusables/src/examples/badge.tsx delete mode 100644 packages/reusables/src/examples/badge/badge-default.tsx delete mode 100644 packages/reusables/src/examples/badge/badge-destructive.tsx delete mode 100644 packages/reusables/src/examples/badge/badge-outline.tsx delete mode 100644 packages/reusables/src/examples/badge/badge-secondary.tsx diff --git a/apps/docs/content/docs/(components)/accordion.mdx b/apps/docs/content/docs/(components)/accordion.mdx index 7707266b..34df2052 100644 --- a/apps/docs/content/docs/(components)/accordion.mdx +++ b/apps/docs/content/docs/(components)/accordion.mdx @@ -14,6 +14,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; diff --git a/apps/docs/content/docs/(components)/alert-dialog.mdx b/apps/docs/content/docs/(components)/alert-dialog.mdx index 13d8f062..5cd80628 100644 --- a/apps/docs/content/docs/(components)/alert-dialog.mdx +++ b/apps/docs/content/docs/(components)/alert-dialog.mdx @@ -28,6 +28,9 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code +
+ ## Preview +
}/>
@@ -58,7 +61,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Install the following dependency: + **Install the following dependency:** ``` npx expo install @rn-primitives/alert-dialog @@ -67,7 +70,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Copy and paste the following code into your project. + **Copy and paste the following code into your project.** ```json doc-gen:file { @@ -102,7 +105,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Update the import paths to match your project setup. + **Update the import paths to match your project setup.** diff --git a/apps/docs/content/docs/(components)/aspect-ratio.mdx b/apps/docs/content/docs/(components)/aspect-ratio.mdx index 6ed176f2..b89562bb 100644 --- a/apps/docs/content/docs/(components)/aspect-ratio.mdx +++ b/apps/docs/content/docs/(components)/aspect-ratio.mdx @@ -27,6 +27,9 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code +
+ ## Preview +
}/>
@@ -57,7 +60,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Install the following dependency: + **Install the following dependency:** ``` npx expo install @rn-primitives/aspect-ratio @@ -66,7 +69,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Copy and paste the following code into your project. + **Copy and paste the following code into your project.** ```json doc-gen:file { diff --git a/apps/docs/content/docs/(components)/avatar.mdx b/apps/docs/content/docs/(components)/avatar.mdx index 10563694..ea61543c 100644 --- a/apps/docs/content/docs/(components)/avatar.mdx +++ b/apps/docs/content/docs/(components)/avatar.mdx @@ -27,6 +27,9 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code +
+ ## Preview +
}/>
@@ -57,7 +60,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Install the following dependency: + **Install the following dependency:** ``` npx expo install @rn-primitives/avatar @@ -66,7 +69,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Copy and paste the following code into your project. + **Copy and paste the following code into your project.** ```json doc-gen:file { diff --git a/apps/docs/content/docs/(components)/badge.mdx b/apps/docs/content/docs/(components)/badge.mdx index 65b890ab..2718d1c8 100644 --- a/apps/docs/content/docs/(components)/badge.mdx +++ b/apps/docs/content/docs/(components)/badge.mdx @@ -3,16 +3,13 @@ title: Badge description: Displays a badge or a component that looks like a badge. --- -import badgePreview from "!!raw-loader!@/examples/badge/badge-default"; -import badgeDestructivePreview from "!!raw-loader!@/examples/badge/badge-destructive"; -import badgeOutlinePreview from "!!raw-loader!@/examples/badge/badge-outline"; -import badgeSecondaryPreview from "!!raw-loader!@/examples/badge/badge-secondary"; +import badgePreview from "!!raw-loader!@/examples/badge"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; import { PreviewCard } from "@docs/components/preview-card"; import { SectionTabs, SectionTabsContent, SectionTabsList, SectionTabsTrigger } from "@docs/components/section-tabs"; -import { BadgePreview, BadgeDestructivePreview, BadgeOutlinePreview, BadgeSecondaryPreview } from "@docs/components/reusables"; +import { BadgePreview } from "@docs/components/reusables"; import { Step, Steps } from 'fumadocs-ui/components/steps';
@@ -23,13 +20,16 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; Code +
+ ## Preview +
}/>
```json doc-gen:file { - "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/badge.tsx", "codeblock": { "lang": "tsx" } @@ -53,7 +53,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Install the following dependencies: + **Install the following dependencies:** ``` npx expo install @rn-primitives/badge @rn-primitives/types @rn-primitives/slot @@ -62,7 +62,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; - #### Copy and paste the following code into your project. + **Copy and paste the following code into your project.** ```json doc-gen:file { @@ -116,107 +116,4 @@ import { badgeVariants, badgeTextVariants } from "@/components/ui/badge" Badge -``` - -### Examples - -#### Default - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-default.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - - -
- -#### Secondary - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-secondary.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - - - -
- -#### Outline - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-outline.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - - - -
- -#### Destructive - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/badge/badge-destructive.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - - \ No newline at end of file +``` \ No newline at end of file diff --git a/apps/showcase/app/badge.tsx b/apps/showcase/app/badge.tsx index cf8e22e3..0cbf726a 100644 --- a/apps/showcase/app/badge.tsx +++ b/apps/showcase/app/badge.tsx @@ -1,22 +1,10 @@ +import { BadgePreview } from '@/examples/badge'; import { View } from 'react-native'; -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; export default function BadgeScreen() { return ( - - Default - - - Secondary - - - Destructive - - - Outline - + ); } diff --git a/packages/reusables/src/components/ui/badge.tsx b/packages/reusables/src/components/ui/badge.tsx index d44e2397..1c6a52d0 100644 --- a/packages/reusables/src/components/ui/badge.tsx +++ b/packages/reusables/src/components/ui/badge.tsx @@ -2,17 +2,31 @@ import { TextClassContext } from '@/components/ui/text'; import { cn } from '@/lib/utils'; import * as Slot from '@rn-primitives/slot'; import { cva, type VariantProps } from 'class-variance-authority'; -import { View, ViewProps } from 'react-native'; +import { Platform, View, ViewProps } from 'react-native'; const badgeVariants = cva( - 'web:inline-flex items-center rounded-full border border-border px-2.5 py-0.5 web:transition-colors web:focus:outline-none web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2', + cn( + 'group flex-row items-center justify-center rounded-md border border-border px-2 py-0.5 w-fit shrink-0 gap-1 overflow-hidden', + Platform.select({ + web: 'whitespace-nowrap [&>svg]:size-3 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow]', + }) + ), { variants: { variant: { - default: 'border-transparent bg-primary web:hover:opacity-80 active:opacity-80', - secondary: 'border-transparent bg-secondary web:hover:opacity-80 active:opacity-80', - destructive: 'border-transparent bg-destructive web:hover:opacity-80 active:opacity-80', - outline: 'text-foreground', + default: cn( + 'border-transparent bg-primary', + Platform.select({ web: '[a&]:hover:bg-primary/90' }) + ), + secondary: cn( + 'border-transparent bg-secondary', + Platform.select({ web: '[a&]:hover:bg-secondary/90' }) + ), + destructive: cn( + 'border-transparent bg-destructive', + Platform.select({ web: '[a&]:hover:bg-destructive/90' }) + ), + outline: Platform.select({ web: '[a&]:hover:bg-accent [a&]:hover:text-accent-foreground' }), }, }, defaultVariants: { @@ -21,12 +35,12 @@ const badgeVariants = cva( } ); -const badgeTextVariants = cva('text-xs font-semibold ', { +const badgeTextVariants = cva('text-xs font-medium', { variants: { variant: { default: 'text-primary-foreground', secondary: 'text-secondary-foreground', - destructive: 'text-destructive-foreground', + destructive: 'text-white', outline: 'text-foreground', }, }, diff --git a/packages/reusables/src/components/ui/button.tsx b/packages/reusables/src/components/ui/button.tsx index c945ae87..82119074 100644 --- a/packages/reusables/src/components/ui/button.tsx +++ b/packages/reusables/src/components/ui/button.tsx @@ -6,7 +6,7 @@ import { Platform, Pressable } from 'react-native'; const buttonVariants = cva( cn( - 'group inline-flex flex-row items-center justify-center gap-2 rounded-md shrink-0', + 'group flex-row items-center justify-center gap-2 rounded-md shrink-0', Platform.select({ web: "whitespace-nowrap transition-all disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", }) diff --git a/packages/reusables/src/examples/accordion.tsx b/packages/reusables/src/examples/accordion.tsx index a81816e5..45f84f77 100644 --- a/packages/reusables/src/examples/accordion.tsx +++ b/packages/reusables/src/examples/accordion.tsx @@ -8,7 +8,7 @@ import { Text } from '@/components/ui/text'; export function AccordionPreview() { return ( - + Product Information diff --git a/packages/reusables/src/examples/badge.tsx b/packages/reusables/src/examples/badge.tsx new file mode 100644 index 00000000..7a605a40 --- /dev/null +++ b/packages/reusables/src/examples/badge.tsx @@ -0,0 +1,41 @@ +import { Badge } from '@/components/ui'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { BadgeCheckIcon } from 'lucide-react-native'; +import { View } from 'react-native'; + +export function BadgePreview() { + return ( + + + + Badge + + + Secondary + + + Destructive + + + Outline + + + + + + Verified + + + 8 + + + 99 + + + 20+ + + + + ); +} diff --git a/packages/reusables/src/examples/badge/badge-default.tsx b/packages/reusables/src/examples/badge/badge-default.tsx deleted file mode 100644 index 7c9f4d60..00000000 --- a/packages/reusables/src/examples/badge/badge-default.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; - -export function BadgePreview() { - return ( - - Badge - - ); -} diff --git a/packages/reusables/src/examples/badge/badge-destructive.tsx b/packages/reusables/src/examples/badge/badge-destructive.tsx deleted file mode 100644 index 3d1379d6..00000000 --- a/packages/reusables/src/examples/badge/badge-destructive.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; - -export function BadgeDestructivePreview() { - return ( - - Destructive - - ); -} diff --git a/packages/reusables/src/examples/badge/badge-outline.tsx b/packages/reusables/src/examples/badge/badge-outline.tsx deleted file mode 100644 index c4122380..00000000 --- a/packages/reusables/src/examples/badge/badge-outline.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; - -export function BadgeOutlinePreview() { - return ( - - Outline - - ); -} diff --git a/packages/reusables/src/examples/badge/badge-secondary.tsx b/packages/reusables/src/examples/badge/badge-secondary.tsx deleted file mode 100644 index 794f1b3e..00000000 --- a/packages/reusables/src/examples/badge/badge-secondary.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { Badge } from '@/components/ui/badge'; -import { Text } from '@/components/ui/text'; - -export function BadgeSecondaryPreview() { - return ( - - Secondary - - ); -} diff --git a/packages/reusables/src/examples/index.ts b/packages/reusables/src/examples/index.ts index 96802a7c..6e036319 100644 --- a/packages/reusables/src/examples/index.ts +++ b/packages/reusables/src/examples/index.ts @@ -3,10 +3,7 @@ export * from './alert'; export * from './alert-dialog'; export * from './aspect-ratio'; export * from './avatar'; -export * from './badge/badge-default'; -export * from './badge/badge-destructive'; -export * from './badge/badge-outline'; -export * from './badge/badge-secondary'; +export * from './badge'; export * from './button/button-destructive'; export * from './button/button-ghost'; export * from './button/button-icon'; From f427765cd720b983190726d8e282105f99bbc268 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 30 Jun 2025 12:48:55 -0400 Subject: [PATCH 074/467] feat(docs): update card and example + input and label --- apps/docs/app/global.css | 4 +- apps/docs/content/docs/(components)/card.mdx | 27 +--- apps/docs/tailwind.config.js | 150 +++++++++--------- apps/showcase/app/card.tsx | 23 +-- .../reusables/src/components/ui/button.tsx | 2 +- packages/reusables/src/components/ui/card.tsx | 15 +- .../reusables/src/components/ui/input.tsx | 18 ++- .../reusables/src/components/ui/label.tsx | 13 +- packages/reusables/src/examples/card.tsx | 54 +++++++ .../src/examples/card/card-default.tsx | 70 -------- .../src/examples/card/card-example.tsx | 75 --------- packages/reusables/src/examples/index.ts | 3 +- 12 files changed, 164 insertions(+), 290 deletions(-) create mode 100644 packages/reusables/src/examples/card.tsx delete mode 100644 packages/reusables/src/examples/card/card-default.tsx delete mode 100644 packages/reusables/src/examples/card/card-example.tsx diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index 68f49d4e..c152fa58 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -22,7 +22,7 @@ --destructive: 0 84.2% 60.2%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; - --ring: 0 0% 3.9%; + --ring: 0 0% 63%; --radius: 0.625rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; @@ -49,7 +49,7 @@ --destructive: 0 70.9% 59.4%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; - --ring: 0 0% 83.1%; + --ring: 300 0% 45%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; diff --git a/apps/docs/content/docs/(components)/card.mdx b/apps/docs/content/docs/(components)/card.mdx index 41bc07a5..eaeb54e9 100644 --- a/apps/docs/content/docs/(components)/card.mdx +++ b/apps/docs/content/docs/(components)/card.mdx @@ -3,8 +3,7 @@ title: Card description: Displays a card with header, content, and footer. --- -import cardPreview from "!!raw-loader!@/examples/card/card-default"; -import cardExample from "!!raw-loader!@/examples/card/card-example"; +import cardPreview from "!!raw-loader!@/examples/card"; import { CommandTabs } from "@docs/components/command-tabs"; import { CopyButton } from "@docs/components/copy-button"; import { ExternalLinks } from "@docs/components/external-links"; @@ -27,7 +26,7 @@ import { Step, Steps } from 'fumadocs-ui/components/steps'; ```json doc-gen:file { - "file": "./node_modules/@rnr/reusables/src/examples/card/card-default.tsx", + "file": "./node_modules/@rnr/reusables/src/examples/card.tsx", "codeblock": { "lang": "tsx" } @@ -118,25 +117,3 @@ import { Text } from '@/components/ui/text'; ``` -### Example - - - - Preview - Code - - - }/> - - - - ```json doc-gen:file - { - "file": "./node_modules/@rnr/reusables/src/examples/card/card-example.tsx", - "codeblock": { - "lang": "tsx" - } - } - ``` - - diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js index 31d66824..d0c74dec 100644 --- a/apps/docs/tailwind.config.js +++ b/apps/docs/tailwind.config.js @@ -2,8 +2,8 @@ import { createPreset } from 'fumadocs-ui/tailwind-plugin'; /** @type {import('tailwindcss').Config} */ const config = { - darkMode: ['class'], - content: [ + darkMode: ['class'], + content: [ './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './content/**/*.{md,mdx}', @@ -14,83 +14,81 @@ const config = { presets: [ // eslint-disable-next-line @typescript-eslint/no-require-imports require('nativewind/preset'), - createPreset({ - preset: 'black', - }), + createPreset({ preset: 'black' }), ], important: 'html', theme: { - extend: { - colors: { - border: 'hsl(var(--border))', - input: 'hsl(var(--input))', - ring: 'hsl(var(--ring))', - background: 'hsl(var(--background))', - foreground: 'hsl(var(--foreground))', - primary: { - DEFAULT: 'hsl(var(--primary))', - foreground: 'hsl(var(--primary-foreground))' - }, - secondary: { - DEFAULT: 'hsl(var(--secondary))', - foreground: 'hsl(var(--secondary-foreground))' - }, - destructive: { - DEFAULT: 'hsl(var(--destructive))', - foreground: 'hsl(var(--destructive-foreground))' - }, - muted: { - DEFAULT: 'hsl(var(--muted))', - foreground: 'hsl(var(--muted-foreground))' - }, - accent: { - DEFAULT: 'hsl(var(--accent))', - foreground: 'hsl(var(--accent-foreground))' - }, - popover: { - DEFAULT: 'hsl(var(--popover))', - foreground: 'hsl(var(--popover-foreground))' - }, - card: { - DEFAULT: 'hsl(var(--card))', - foreground: 'hsl(var(--card-foreground))' - }, - chart: { - '1': 'hsl(var(--chart-1))', - '2': 'hsl(var(--chart-2))', - '3': 'hsl(var(--chart-3))', - '4': 'hsl(var(--chart-4))', - '5': 'hsl(var(--chart-5))' - } - }, - keyframes: { - 'accordion-down': { - from: { - height: '0' - }, - to: { - height: 'var(--radix-accordion-content-height)' - } - }, - 'accordion-up': { - from: { - height: 'var(--radix-accordion-content-height)' - }, - to: { - height: '0' - } - } - }, - animation: { - 'accordion-down': 'accordion-down 0.2s ease-out', - 'accordion-up': 'accordion-up 0.2s ease-out' - }, - borderRadius: { - lg: 'var(--radius)', - md: 'calc(var(--radius) - 2px)', - sm: 'calc(var(--radius) - 4px)' - } - } + extend: { + colors: { + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + chart: { + 1: 'hsl(var(--chart-1))', + 2: 'hsl(var(--chart-2))', + 3: 'hsl(var(--chart-3))', + 4: 'hsl(var(--chart-4))', + 5: 'hsl(var(--chart-5))', + }, + }, + keyframes: { + 'accordion-down': { + from: { + height: '0', + }, + to: { + height: 'var(--radix-accordion-content-height)', + }, + }, + 'accordion-up': { + from: { + height: 'var(--radix-accordion-content-height)', + }, + to: { + height: '0', + }, + }, + }, + animation: { + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, + }, }, plugins: [ // eslint-disable-next-line @typescript-eslint/no-require-imports diff --git a/apps/showcase/app/card.tsx b/apps/showcase/app/card.tsx index d02adf29..27492b02 100644 --- a/apps/showcase/app/card.tsx +++ b/apps/showcase/app/card.tsx @@ -1,29 +1,10 @@ import { View } from 'react-native'; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from '@/components/ui/card'; -import { Text } from '@/components/ui/text'; +import { CardPreview } from '@/examples/card'; export default function CardScreen() { return ( - - - Card Title - Card Description - - - Card Content - - - Card Footer - - + ); } diff --git a/packages/reusables/src/components/ui/button.tsx b/packages/reusables/src/components/ui/button.tsx index 82119074..c9724337 100644 --- a/packages/reusables/src/components/ui/button.tsx +++ b/packages/reusables/src/components/ui/button.tsx @@ -70,7 +70,7 @@ const buttonTextVariants = cva( ghost: 'group-active:text-accent-foreground', link: cn( 'text-primary group-active:underline', - Platform.select({ web: 'underline-offset-4 hover:underline' }) + Platform.select({ web: 'group-hover:underline underline-offset-4 hover:underline' }) ), }, size: { diff --git a/packages/reusables/src/components/ui/card.tsx b/packages/reusables/src/components/ui/card.tsx index f794c33e..dea0d120 100644 --- a/packages/reusables/src/components/ui/card.tsx +++ b/packages/reusables/src/components/ui/card.tsx @@ -12,7 +12,7 @@ function Card({ return ( ; }) { - return ; + return ; } function CardTitle({ @@ -39,10 +39,7 @@ function CardTitle({ ); @@ -54,7 +51,7 @@ function CardDescription({ }: TextProps & { ref?: React.RefObject; }) { - return ; + return ; } function CardContent({ @@ -65,7 +62,7 @@ function CardContent({ }) { return ( - + ); } @@ -76,7 +73,7 @@ function CardFooter({ }: ViewProps & { ref?: React.RefObject; }) { - return ; + return ; } export { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle }; diff --git a/packages/reusables/src/components/ui/input.tsx b/packages/reusables/src/components/ui/input.tsx index e5913760..e1e7451c 100644 --- a/packages/reusables/src/components/ui/input.tsx +++ b/packages/reusables/src/components/ui/input.tsx @@ -1,6 +1,6 @@ import { cn } from '@/lib/utils'; import * as React from 'react'; -import { TextInput, type TextInputProps } from 'react-native'; +import { Platform, TextInput, type TextInputProps } from 'react-native'; function Input({ className, @@ -12,11 +12,21 @@ function Input({ return ( ); diff --git a/packages/reusables/src/components/ui/label.tsx b/packages/reusables/src/components/ui/label.tsx index e3cf703a..fa0644a8 100644 --- a/packages/reusables/src/components/ui/label.tsx +++ b/packages/reusables/src/components/ui/label.tsx @@ -1,6 +1,7 @@ import { cn } from '@/lib/utils'; import * as LabelPrimitive from '@rn-primitives/label'; import * as React from 'react'; +import { Platform } from 'react-native'; function Label({ className, @@ -14,17 +15,19 @@ function Label({ }) { return ( diff --git a/packages/reusables/src/examples/card.tsx b/packages/reusables/src/examples/card.tsx new file mode 100644 index 00000000..685d10fb --- /dev/null +++ b/packages/reusables/src/examples/card.tsx @@ -0,0 +1,54 @@ +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Text } from '@/components/ui/text'; +import { View } from 'react-native'; + +export function CardPreview() { + return ( + + + + Login to your account + Enter your email below to login to your account + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/packages/reusables/src/examples/card/card-default.tsx b/packages/reusables/src/examples/card/card-default.tsx deleted file mode 100644 index 45192a0b..00000000 --- a/packages/reusables/src/examples/card/card-default.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import { Button } from '@/components/ui/button'; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from '@/components/ui/card'; -import { Input } from '@/components/ui/input'; -import { Label } from '@/components/ui/label'; -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select'; -import { Text } from '@/components/ui/text'; -import { View } from 'react-native'; - -export function CardPreview() { - return ( - - {/* TODO: remove when checked that above works: */} - - Create project - Deploy your new project in one-click. - - - - - - - - - - - - - - - - - - - ); -} diff --git a/packages/reusables/src/examples/card/card-example.tsx b/packages/reusables/src/examples/card/card-example.tsx deleted file mode 100644 index 60ac5af0..00000000 --- a/packages/reusables/src/examples/card/card-example.tsx +++ /dev/null @@ -1,75 +0,0 @@ -import { Button } from '@/components/ui/button'; -import { - Card, - CardContent, - CardDescription, - CardFooter, - CardHeader, - CardTitle, -} from '@/components/ui/card'; -import { Icon } from '@/components/ui/icon'; -import { Switch } from '@/components/ui/switch'; -import { Text } from '@/components/ui/text'; -import { Check, Sparkles } from 'lucide-react-native'; -import * as React from 'react'; -import { View } from 'react-native'; - -const NOTIFICATIONS = [ - { - title: 'Your call has been confirmed.', - description: '1 hour ago', - }, - { - title: 'You have a new message!', - description: '1 hour ago', - }, - { - title: 'Your subscription is expiring soon!', - description: '2 hours ago', - }, -]; - -export function CardExample() { - const [checked, setChecked] = React.useState(false); - return ( - - - Notifications - You have 3 unread messages. - - - - - - Push Notifications - - Send notifications to device. - - - - - - {NOTIFICATIONS.map((notification, index) => ( - - - - - - - {notification.title} - - {notification.description} - - - ))} - - - - - - - ); -} diff --git a/packages/reusables/src/examples/index.ts b/packages/reusables/src/examples/index.ts index 6e036319..ac3ee833 100644 --- a/packages/reusables/src/examples/index.ts +++ b/packages/reusables/src/examples/index.ts @@ -13,8 +13,7 @@ export * from './button/button-outline'; export * from './button/button-primary'; export * from './button/button-secondary'; export * from './button/button-with-icon'; -export * from './card/card-default'; -export * from './card/card-example'; +export * from './card'; export * from './checkbox'; export * from './collapsible'; export * from './context-menu'; From 5f0623839fc489bdfa9c3acbda5193b987bbb3a1 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 30 Jun 2025 13:46:02 -0400 Subject: [PATCH 075/467] fix: update ring css colors --- apps/showcase/global.css | 4 ++-- packages/templates/starter-base/global.css | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/showcase/global.css b/apps/showcase/global.css index 38096447..2991c7e3 100644 --- a/apps/showcase/global.css +++ b/apps/showcase/global.css @@ -21,7 +21,7 @@ --destructive: 0 84.2% 60.2%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; - --ring: 0 0% 3.9%; + --ring: 0 0% 63%; --radius: 0.625rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; @@ -48,7 +48,7 @@ --destructive: 0 70.9% 59.4%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; - --ring: 0 0% 83.1%; + --ring: 300 0% 45%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; diff --git a/packages/templates/starter-base/global.css b/packages/templates/starter-base/global.css index 38096447..6ec7a5c3 100644 --- a/packages/templates/starter-base/global.css +++ b/packages/templates/starter-base/global.css @@ -21,7 +21,7 @@ --destructive: 0 84.2% 60.2%; --border: 0 0% 89.8%; --input: 0 0% 89.8%; - --ring: 0 0% 3.9%; + --ring: 0 0% 63%; --radius: 0.625rem; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; @@ -48,7 +48,7 @@ --destructive: 0 70.9% 59.4%; --border: 0 0% 14.9%; --input: 0 0% 14.9%; - --ring: 0 0% 83.1%; + --ring: 300 0% 45%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; From e6bda7110544bcb9bfe52bfe2524da89d6ef5834 Mon Sep 17 00:00:00 2001 From: Zach Nugent Date: Mon, 30 Jun 2025 13:47:01 -0400 Subject: [PATCH 076/467] feat: update checkbox + minor card doc adjustment --- apps/docs/content/docs/(components)/card.mdx | 2 +- apps/showcase/app/checkbox.tsx | 13 +-- .../reusables/src/components/ui/checkbox.tsx | 16 +++- .../reusables/src/components/ui/label.tsx | 5 +- packages/reusables/src/examples/checkbox.tsx | 94 +++++++++++++++++-- 5 files changed, 109 insertions(+), 21 deletions(-) diff --git a/apps/docs/content/docs/(components)/card.mdx b/apps/docs/content/docs/(components)/card.mdx index eaeb54e9..aeac77a0 100644 --- a/apps/docs/content/docs/(components)/card.mdx +++ b/apps/docs/content/docs/(components)/card.mdx @@ -103,7 +103,7 @@ import { Text } from '@/components/ui/text'; ``` ```tsx - + Card Title Card Description diff --git a/apps/showcase/app/checkbox.tsx b/apps/showcase/app/checkbox.tsx index 7c6cc531..9f344e93 100644 --- a/apps/showcase/app/checkbox.tsx +++ b/apps/showcase/app/checkbox.tsx @@ -1,18 +1,11 @@ import * as React from 'react'; import { View } from 'react-native'; -import { Checkbox } from '@/components/ui/checkbox'; -import { Label } from '@/components/ui/label'; +import { CheckboxPreview } from '@/examples/checkbox'; export default function CheckboxScreen() { - const [checked, setChecked] = React.useState(false); return ( - - - - - + + ); } diff --git a/packages/reusables/src/components/ui/checkbox.tsx b/packages/reusables/src/components/ui/checkbox.tsx index 344eb8d2..0ae2b7e9 100644 --- a/packages/reusables/src/components/ui/checkbox.tsx +++ b/packages/reusables/src/components/ui/checkbox.tsx @@ -7,20 +7,30 @@ import { Platform } from 'react-native'; function Checkbox({ className, + checkedClassName, + indicatorClassName, ...props }: CheckboxPrimitive.RootProps & { + checkedClassName?: string; + indicatorClassName?: string; ref?: React.RefObject; }) { return ( - + ; @@ -19,12 +20,14 @@ function Label({ 'flex flex-row items-center gap-2 select-none', Platform.select({ web: 'leading-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50', - }) + }), + disabled && 'opacity-50' )} onPress={onPress} onLongPress={onLongPress} onPressIn={onPressIn} onPressOut={onPressOut} + disabled={disabled} > { + setState((prev) => ({ + ...prev, + [key]: !prev[key], + })); + }; + } return ( - - -