diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 237000a..cd82184 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,10 +8,12 @@ Thank you for your interest in contributing to `rnr-registry-template`! We welco 1. Fork the repository to your GitHub account. 2. Clone the forked repository to your local machine: + ```bash git clone https://github.com/your-username/rnr-registry-template.git cd rnr-registry-template ``` + 3. Create a new branch: ```bash @@ -41,18 +43,18 @@ Please follow the coding style and guidelines used in the project. If there are ## Issue Tracker -Check the [issue tracker](https://github.com/gabimoncha/rnr-registry-template/issues) for existing issues or open a new issue to discuss and coordinate your contribution with the maintainers. +Check the [issue tracker](https://github.com/next-dev-team/next-dev/issues) for existing issues or open a new issue to discuss and coordinate your contribution with the maintainers. ## Code of Conduct -Please review and adhere to our [Code of Conduct](https://github.com/gabimoncha/rnr-registry-template/blob/main/CODE_OF_CONDUCT.md). Be respectful and considerate towards others. +Please review and adhere to our [Code of Conduct](https://github.com/next-dev-team/next-dev/blob/main/CODE_OF_CONDUCT.md). Be respectful and considerate towards others. ## License -By contributing to this project, you agree that your contributions will be licensed under the [LICENSE](https://github.com/gabimoncha/rnr-registry-template/blob/main/LICENSE) file of this repository. +By contributing to this project, you agree that your contributions will be licensed under the [LICENSE](https://github.com/next-dev-team/next-dev/blob/main/LICENSE) file of this repository. ## Contact -If you have any questions or need further assistance, feel free to contact us at hello@foundedlabs.com. +If you have any questions or need further assistance, feel free to contact us at . **We appreciate your contributions and look forward to working with you!** diff --git a/apps/docs/app/(home)/layout.tsx b/apps/docs/app/(home)/layout.tsx index 892d24a..2b537a2 100644 --- a/apps/docs/app/(home)/layout.tsx +++ b/apps/docs/app/(home)/layout.tsx @@ -16,7 +16,7 @@ export default function Layout({ children }: { children: ReactNode }) { <> diff --git a/apps/docs/app/docs/[[...slug]]/page.tsx b/apps/docs/app/docs/[[...slug]]/page.tsx index f00f3e5..4b17d91 100644 --- a/apps/docs/app/docs/[[...slug]]/page.tsx +++ b/apps/docs/app/docs/[[...slug]]/page.tsx @@ -123,7 +123,7 @@ function Footer({ url }: { url: string }) { {' '} to React Native. Source on{' '} diff --git a/apps/docs/app/docs/layout.tsx b/apps/docs/app/docs/layout.tsx index 6c9f702..6ee1c15 100644 --- a/apps/docs/app/docs/layout.tsx +++ b/apps/docs/app/docs/layout.tsx @@ -18,12 +18,12 @@ export default function Layout({ children }: { children: ReactNode }) {
-

Registry Template

+

Next Dev

), }} sidebar={SIDEBAR_PROPS} - githubUrl="https://github.com/gabimoncha/rnr-registry-template"> + githubUrl="https://github.com/next-dev-team/next-dev"> {children} diff --git a/apps/docs/components/utils.tsx b/apps/docs/components/utils.tsx index 7589658..e0f2cfa 100644 --- a/apps/docs/components/utils.tsx +++ b/apps/docs/components/utils.tsx @@ -442,4 +442,4 @@ export function ObjectUtilityPlayground() { )} ); -} +} \ No newline at end of file diff --git a/apps/docs/content/docs/changelog.mdx b/apps/docs/content/docs/changelog.mdx index d456588..c13c925 100644 --- a/apps/docs/content/docs/changelog.mdx +++ b/apps/docs/content/docs/changelog.mdx @@ -3,6 +3,6 @@ title: Changelog description: Latest updates and announcements. --- -## August 2025 - Initial Release +## Nov 2025 - Initial Release New React Native Reusables registry template. diff --git a/apps/docs/content/docs/components/form-advanced.mdx b/apps/docs/content/docs/components/form-advanced.mdx new file mode 100644 index 0000000..a457b98 --- /dev/null +++ b/apps/docs/content/docs/components/form-advanced.mdx @@ -0,0 +1,219 @@ +--- +title: Advanced Form Patterns +description: Advanced form patterns including dynamic fields, custom validation, and field dependencies using rc-field-form. +--- + +import { + FormFieldTypesPreview, + FormCustomValidationPreview, + FormDynamicFieldsPreview, + FormFieldDependenciesPreview, + FormAsyncValidationPreview +} from '@docs/components/examples'; + + + +
+ +## Field Types Example + +Demonstrates various input field types including text, email, phone, password, and textarea fields. + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-field-types.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Custom Validation Example + +Shows how to implement custom validation rules with complex business logic and field dependencies. + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-custom-validation.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Dynamic Fields Example + +Demonstrates how to create forms with dynamically added and removed fields. + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-dynamic-fields.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Field Dependencies Example + +Shows how to create conditional fields and validation based on other field values. + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-field-dependencies.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Async Validation Example + +Demonstrates asynchronous validation with simulated API calls for username, email, and phone validation. + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-async-validation.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Key Concepts + +### Custom Validators + +Custom validators receive three parameters: `rule`, `value`, and `callback`. They should return a Promise that resolves when validation passes or rejects with an error message when validation fails. + +```tsx +const validateUsername = async (_: any, value: string) => { + if (!value) { + return Promise.reject(new Error('Username is required')); + } + // Additional validation logic + return Promise.resolve(); +}; + + + + +``` + +### Field Dependencies + +Use `dependencies` to make one field depend on another. The dependent field will re-validate when the dependency changes. + +```tsx + + + +``` + +### Dynamic Fields + +Manage arrays of fields using React state and render them dynamically with proper field names. + +```tsx +{emails.map((_, index) => ( + + + +))} +``` + +### Async Validation + +Async validators can perform API calls or other asynchronous operations. Use `validateTrigger="onBlur"` to validate on field blur instead of every change. + +```tsx + + + +``` + +## Best Practices + +1. **Use `validateTrigger="onBlur"`** for async validation to avoid excessive API calls +2. **Provide clear error messages** that help users understand what they need to fix +3. **Use field dependencies** to create conditional validation logic +4. **Handle loading states** during async validation to improve user experience +5. **Validate on the client first** before making async calls to reduce server load +6. **Use proper TypeScript types** for better development experience and error catching diff --git a/apps/docs/content/docs/components/form-field-guide.mdx b/apps/docs/content/docs/components/form-field-guide.mdx new file mode 100644 index 0000000..575526d --- /dev/null +++ b/apps/docs/content/docs/components/form-field-guide.mdx @@ -0,0 +1,544 @@ +--- +title: Form Field Components +description: Comprehensive guide to form field components using rc-field-form with React Native. +--- + +import { + FormBasicPreview, + FormFieldTypesPreview, + FormCustomValidationPreview, + FormDynamicFieldsPreview +} from '@docs/components/examples'; + + + +
+ +## Overview + +This guide covers the comprehensive usage of form field components built with `rc-field-form` for React Native applications. The form system provides powerful validation, field management, and state handling capabilities. + +## Core Concepts + +### Field Names + +Field names support dot notation for nested objects and arrays: + +```tsx +// Simple field + + + + +// Nested object + + + + +// Array field + + + +``` + +### Validation Rules + +The form supports multiple validation rule types: + +```tsx + + + +``` + +### Custom Validators + +Create custom validation functions for complex business logic: + +```tsx +const validatePassword = async (_: any, value: string) => { + if (!value) { + return Promise.reject(new Error('Password is required')); + } + + if (value.length < 8) { + return Promise.reject(new Error('Password must be at least 8 characters')); + } + + // Check for complexity + const hasUpperCase = /[A-Z]/.test(value); + const hasLowerCase = /[a-z]/.test(value); + const hasNumbers = /\d/.test(value); + const hasSpecialChar = /[!@#$%^&*]/.test(value); + + if (!hasUpperCase || !hasLowerCase || !hasNumbers || !hasSpecialChar) { + return Promise.reject(new Error('Password must contain uppercase, lowercase, numbers, and special characters')); + } + + return Promise.resolve(); +}; +``` + +## Field Types Example + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-field-types.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Custom Validation Example + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-custom-validation.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Dynamic Fields Example + + + + Preview + Code + + + } /> + + + ```json doc-gen:file + { + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-dynamic-fields.tsx", + "codeblock": { + "lang": "tsx" + } + } + ``` + + + +## Form Methods + +### useForm Hook + +The `useForm` hook provides access to form methods: + +```tsx +const [form] = Form.useForm(); + +// Form instance methods +form.submit(); // Submit the form +form.resetFields(); // Reset all fields +form.setFieldsValue(values); // Set multiple field values +form.getFieldValue(name); // Get single field value +form.getFieldsValue(); // Get all field values +form.validateFields(); // Validate all fields +form.setFields([{ name, errors: ['Error message'] }]); // Set field errors +``` + +### Form.Item Methods + +```tsx +// Watch field changes +const username = Form.useWatch('username', form); + +// Watch multiple fields +const [username, email] = Form.useWatch(['username', 'email'], form); + +// Watch all fields +const allValues = Form.useWatch([], form); +``` + +## Advanced Patterns + +### Field Dependencies + +Make fields depend on other field values: + +```tsx + + + + + ({ + validator(_, value) { + const country = getFieldValue('country'); + + if (country === 'USA') { + return /^\d{5}(-\d{4})?$/.test(value) + ? Promise.resolve() + : Promise.reject(new Error('Invalid US ZIP code')); + } + + if (country === 'Canada') { + return /^[A-Z]\d[A-Z] \d[A-Z]\d$/.test(value) + ? Promise.resolve() + : Promise.reject(new Error('Invalid Canadian postal code')); + } + + return Promise.resolve(); + }, + }), + ]} +> + + +``` + +### Async Validation + +Implement server-side validation: + +```tsx +const checkUsernameAvailability = async (username: string) => { + // Simulate API call + await new Promise(resolve => setTimeout(resolve, 1000)); + + // Simulate taken usernames + const takenUsernames = ['admin', 'user', 'test']; + + if (takenUsernames.includes(username.toLowerCase())) { + throw new Error('Username is already taken'); + } + + return true; +}; + + { + if (!value) return Promise.resolve(); + + try { + await checkUsernameAvailability(value); + return Promise.resolve(); + } catch (error) { + return Promise.reject(error); + } + }, + }, + ]} + validateTrigger="onBlur" // Validate on blur to avoid excessive API calls +> + + +``` + +### Dynamic Field Management + +Add and remove fields dynamically: + +```tsx +const [emails, setEmails] = useState(['']); + +const addEmail = () => { + setEmails([...emails, '']); +}; + +const removeEmail = (index: number) => { + const newEmails = emails.filter((_, i) => i !== index); + setEmails(newEmails); + + // Update form values + const currentEmails = form.getFieldValue('emails') || []; + const updatedEmails = currentEmails.filter((_: any, i: number) => i !== index); + form.setFieldsValue({ emails: updatedEmails }); +}; + +// Render dynamic fields +{emails.map((_, index) => ( + + + + + + {emails.length > 1 && ( + + )} + +))} +``` + +## Best Practices + +### 1. Validation Timing + +- Use `validateTrigger="onBlur"` for async validation to avoid excessive API calls +- Use `validateTrigger="onChange"` for simple client-side validation +- Use `validateTrigger="onSubmit"` for complex validation that should only run on form submission + +### 2. Error Handling + +```tsx +// Set custom errors +form.setFields([ + { name: 'username', errors: ['Username is already taken'] }, + { name: 'email', errors: ['Invalid email format'] }, +]); + +// Clear specific field errors +form.setFields([{ name: 'username', errors: [] }]); + +// Clear all errors +form.setFields([]); +``` + +### 3. Performance Optimization + +```tsx +// Use shouldUpdate to control re-renders + + prevValues.country !== currentValues.country +}> + {({ getFieldValue }) => { + const country = getFieldValue('country'); + return country === 'USA' ? ( + + + + ) : null; + }} + +``` + +### 4. TypeScript Integration + +```tsx +interface FormValues { + username: string; + email: string; + password: string; + profile: { + firstName: string; + lastName: string; + age: number; + }; + emails: string[]; +} + +const [form] = Form.useForm(); + +// Type-safe form methods +form.setFieldsValue({ + username: 'john_doe', + email: 'john@example.com', + profile: { + firstName: 'John', + lastName: 'Doe', + age: 25, + }, + emails: ['john@example.com', 'john.work@example.com'], +}); +``` + +## Common Patterns + +### Login Form + +```tsx +
+ + + + + + + + + +
+``` + +### Registration Form with Password Confirmation + +```tsx +const validateConfirmPassword = async (_: any, value: string) => { + if (!value) { + return Promise.reject(new Error('Please confirm your password')); + } + + const password = form.getFieldValue('password'); + if (value !== password) { + return Promise.reject(new Error('Passwords do not match')); + } + + return Promise.resolve(); +}; + + + + +``` + +### Contact Form with Multiple Field Types + +```tsx +
+ + + + + + + + + + + + + + + + + +
+``` + +## Troubleshooting + +### Common Issues + +1. **Fields not updating**: Ensure you're using the correct field name format +2. **Validation not triggering**: Check `validateTrigger` prop and field dependencies +3. **Async validation hanging**: Always return a Promise from custom validators +4. **Dynamic fields losing state**: Properly manage field arrays and update form values + +### Debug Tips + +```tsx +// Log form values on change + + {({ getFieldsValue }) => { + console.log('Form values:', getFieldsValue()); + return null; + }} + + +// Check field errors + + {({ getFieldError }) => { + const errors = getFieldError('username'); + console.log('Username errors:', errors); + return null; + }} + +``` \ No newline at end of file diff --git a/apps/docs/content/docs/components/form.mdx b/apps/docs/content/docs/components/form.mdx index 6dfe3b5..1cbc0d3 100644 --- a/apps/docs/content/docs/components/form.mdx +++ b/apps/docs/content/docs/components/form.mdx @@ -8,6 +8,7 @@ import { FormBasicPreview, FormWithValidationPreview } from '@docs/components/ex @@ -27,7 +28,7 @@ import { FormBasicPreview, FormWithValidationPreview } from '@docs/components/ex ```json doc-gen:file { - "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-basic.tsx", + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-basic.tsx", "codeblock": { "lang": "tsx" } @@ -61,7 +62,7 @@ import { FormBasicPreview, FormWithValidationPreview } from '@docs/components/ex ```json doc-gen:file { - "file": "./node_modules/@rnr/rnr-ui/reusables/components/ui/text.tsx", + "file": "./node_modules/@rnr/rnr-ui/reusables/components/ui/text.tsx", "codeblock": { "lang": "tsx", "meta": "title=\"@/components/ui/text.tsx\"" @@ -71,7 +72,7 @@ import { FormBasicPreview, FormWithValidationPreview } from '@docs/components/ex ```json doc-gen:file { - "file": "./node_modules/@rnr/rnr-ui/reusables/components/ui/label.tsx", + "file": "./node_modules/@rnr/rnr-ui/reusables/components/ui/label.tsx", "codeblock": { "lang": "tsx", "meta": "title=\"@/components/ui/label.tsx\"" @@ -81,7 +82,7 @@ import { FormBasicPreview, FormWithValidationPreview } from '@docs/components/ex ```json doc-gen:file { - "file": "./node_modules/@rnr/rnr-ui/src/components/ui/forms.tsx", + "file": "./node_modules/@rnr/rnr-ui/src/components/ui/forms.tsx", "codeblock": { "lang": "tsx", "meta": "title=\"@/components/ui/forms.tsx\"" @@ -100,7 +101,7 @@ import { FormBasicPreview, FormWithValidationPreview } from '@docs/components/ex -### Usage +## Basic Usage ```tsx import { Form } from '@/components/ui/forms'; @@ -120,7 +121,7 @@ const [form] = Form.useForm(); ``` -### Advanced Usage with Validation +## Advanced Usage with Validation @@ -133,7 +134,7 @@ const [form] = Form.useForm(); ```json doc-gen:file { - "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-with-validation.tsx", + "file": "./node_modules/@rnr/rnr-ui/src/examples/form/form-with-validation.tsx", "codeblock": { "lang": "tsx" } @@ -141,3 +142,66 @@ const [form] = Form.useForm(); ``` + +## Key Features + +### Form.Item Props + +| Prop | Type | Description | +|------|------|-------------| +| `name` | `string \| string[]` | Field name, supports nested names with dot notation | +| `label` | `string` | Field label text | +| `rules` | `Rule[]` | Validation rules for the field | +| `dependencies` | `string[]` | Field dependencies for conditional validation | +| `validateTrigger` | `string` | When to trigger validation (default: "onChange") | +| `noStyle` | `boolean` | Remove default form item styling | + +### Validation Rules + +```tsx +rules={[ + { required: true, message: 'This field is required' }, + { min: 6, message: 'Minimum 6 characters required' }, + { max: 20, message: 'Maximum 20 characters allowed' }, + { pattern: /^[a-zA-Z0-9_]+$/, message: 'Only alphanumeric characters and underscores' }, + { type: 'email', message: 'Please enter a valid email' }, + { validator: customValidator }, // Custom validation function +]} +``` + +### Form Methods + +```tsx +const [form] = Form.useForm(); + +// Submit form +form.submit(); + +// Reset fields +form.resetFields(); + +// Set field value +form.setFieldsValue({ name: 'John' }); + +// Get field value +const value = form.getFieldValue('name'); + +// Validate fields +form.validateFields().then(() => { + // Validation passed +}).catch(() => { + // Validation failed +}); +``` + +## Advanced Patterns + +For more advanced form patterns including: + +- **Field Types**: Different input types (text, email, phone, password, textarea) +- **Custom Validation**: Complex business logic validation +- **Dynamic Fields**: Forms with add/remove field functionality +- **Field Dependencies**: Conditional fields and validation +- **Async Validation**: Server-side validation with API calls + +See the [Advanced Form Patterns](/docs/components/form-advanced) documentation. diff --git a/apps/docs/content/docs/installation.mdx b/apps/docs/content/docs/installation.mdx index c7c30dc..6bae9f5 100644 --- a/apps/docs/content/docs/installation.mdx +++ b/apps/docs/content/docs/installation.mdx @@ -5,9 +5,9 @@ description: Getting Started with React Native Reusables Registry Template ## Getting Started with the template -Go to this repository's [github page](https://github.com/gabimoncha/rnr-registry-template) and click on the `Use this template` button. This will create a new repository with the template. +Go to this repository's [github page](https://github.com/next-dev-team/next-dev) and click on the `Use this template` button. This will create a new repository with the template. -### Install the dependencies: +### Install the dependencies diff --git a/apps/docs/package.json b/apps/docs/package.json index 6b7095c..14045cc 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -24,13 +24,13 @@ "fumadocs-mdx": "11.7.3", "fumadocs-ui": "14.7.7", "lucide-react": "^0.471.1", - "nativewind": "^4.1.23", + "nativewind": "^4.2.1", "next": "15.4.5", "qrcode.react": "^4.2.0", "raf": "^3.4.1", - "react": "19.0.0", - "react-dom": "19.0.0", - "react-native": "0.79.5", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-native": "0.81.5", "react-native-web": "~0.21.0", "remark-variables": "^1.4.9", "shadcn": "2.9.2", @@ -41,8 +41,8 @@ "@rnr/config": "workspace:*", "@types/mdx": "^2.0.13", "@types/node": "22.10.5", - "@types/react": "19.0.14", - "@types/react-dom": "19.1.5", + "@types/react": "^19.1.0", + "@types/react-dom": "^19.1.0", "autoprefixer": "^10.4.20", "eslint": "^9.39.1", "eslint-config-next": "15.4.5", diff --git a/apps/docs/registry.json b/apps/docs/registry.json index 336a5a6..8a73444 100644 --- a/apps/docs/registry.json +++ b/apps/docs/registry.json @@ -11,7 +11,7 @@ "author": "@gabimoncha", "files": [ { - "path": "./node_modules/@rnr/rnr-ui/src/components/ui/red-button.tsx", + "path": "./node_modules/@rnr/rnr-ui/src/components/ui/red-button.tsx", "type": "registry:component" } ], @@ -28,7 +28,7 @@ "author": "@gabimoncha", "files": [ { - "path": "./node_modules/@rnr/rnr-ui/src/blocks/multiple-buttons.tsx", + "path": "./node_modules/@rnr/rnr-ui/src/blocks/multiple-buttons.tsx", "type": "registry:block" } ], @@ -46,7 +46,7 @@ "author": "@gabimoncha", "files": [ { - "path": "./node_modules/@rnr/rnr-ui/src/components/ui/forms.tsx", + "path": "./node_modules/@rnr/rnr-ui/src/components/ui/forms.tsx", "type": "registry:component" } ], @@ -54,6 +54,91 @@ "https://reactnativereusables.com/r/new-york/text.json", "https://reactnativereusables.com/r/new-york/label.json" ] + }, + { + "name": "form-field-types", + "type": "registry:example", + "title": "Form Field Types", + "description": "Example showing various form field types including text, email, phone, password, and textarea.", + "author": "@gabimoncha", + "files": [ + { + "path": "./node_modules/@rnr/rnr-ui/src/examples/form/form-field-types.tsx", + "type": "registry:example" + } + ], + "registryDependencies": [ + "https://reactnativereusables.com/r/new-york/form.json", + "https://reactnativereusables.com/r/new-york/button.json" + ] + }, + { + "name": "form-custom-validation", + "type": "registry:example", + "title": "Form Custom Validation", + "description": "Example showing custom validation rules with complex business logic.", + "author": "@gabimoncha", + "files": [ + { + "path": "./node_modules/@rnr/rnr-ui/src/examples/form/form-custom-validation.tsx", + "type": "registry:example" + } + ], + "registryDependencies": [ + "https://reactnativereusables.com/r/new-york/form.json", + "https://reactnativereusables.com/r/new-york/button.json" + ] + }, + { + "name": "form-dynamic-fields", + "type": "registry:example", + "title": "Form Dynamic Fields", + "description": "Example showing forms with dynamically added and removed fields.", + "author": "@gabimoncha", + "files": [ + { + "path": "./node_modules/@rnr/rnr-ui/src/examples/form/form-dynamic-fields.tsx", + "type": "registry:example" + } + ], + "registryDependencies": [ + "https://reactnativereusables.com/r/new-york/form.json", + "https://reactnativereusables.com/r/new-york/button.json" + ] + }, + { + "name": "form-field-dependencies", + "type": "registry:example", + "title": "Form Field Dependencies", + "description": "Example showing conditional fields and validation based on other field values.", + "author": "@gabimoncha", + "files": [ + { + "path": "./node_modules/@rnr/rnr-ui/src/examples/form/form-field-dependencies.tsx", + "type": "registry:example" + } + ], + "registryDependencies": [ + "https://reactnativereusables.com/r/new-york/form.json", + "https://reactnativereusables.com/r/new-york/button.json" + ] + }, + { + "name": "form-async-validation", + "type": "registry:example", + "title": "Form Async Validation", + "description": "Example showing asynchronous validation with simulated API calls.", + "author": "@gabimoncha", + "files": [ + { + "path": "./node_modules/@rnr/rnr-ui/src/examples/form/form-async-validation.tsx", + "type": "registry:example" + } + ], + "registryDependencies": [ + "https://reactnativereusables.com/r/new-york/form.json", + "https://reactnativereusables.com/r/new-york/button.json" + ] } ] } diff --git a/apps/showcase/.gitignore b/apps/showcase/.gitignore index 1379465..0b37b6e 100644 --- a/apps/showcase/.gitignore +++ b/apps/showcase/.gitignore @@ -7,8 +7,6 @@ node_modules/ .expo/ dist/ web-build/ -ios/ -android/ # Native *.orig.* diff --git a/apps/showcase/.npmrc b/apps/showcase/.npmrc new file mode 100644 index 0000000..d279723 --- /dev/null +++ b/apps/showcase/.npmrc @@ -0,0 +1,2 @@ +node-linker=hoisted +enable-pre-post-scripts=true \ No newline at end of file diff --git a/apps/showcase/.prettierrc b/apps/showcase/.prettierrc new file mode 100644 index 0000000..4543304 --- /dev/null +++ b/apps/showcase/.prettierrc @@ -0,0 +1,9 @@ +{ + "printWidth": 100, + "tabWidth": 2, + "singleQuote": true, + "bracketSameLine": true, + "trailingComma": "es5", + "plugins": ["prettier-plugin-tailwindcss"], + "tailwindFunctions": ["cva"] +} diff --git a/apps/showcase/README.md b/apps/showcase/README.md new file mode 100644 index 0000000..cb5de98 --- /dev/null +++ b/apps/showcase/README.md @@ -0,0 +1,73 @@ +# Minimal Template + +This is a [React Native](https://reactnative.dev/) project built with [Expo](https://expo.dev/) and [React Native Reusables](https://reactnativereusables.com). + +It was initialized using the following command: + +```bash +npx @react-native-reusables/cli@latest init -t showcase +``` + +## Getting Started + +To run the development server: + +```bash + npm run dev + # or + yarn dev + # or + pnpm dev + # or + bun dev +``` + +This will start the Expo Dev Server. Open the app in: + +- **iOS**: press `i` to launch in the iOS simulator _(Mac only)_ +- **Android**: press `a` to launch in the Android emulator +- **Web**: press `w` to run in a browser + +You can also scan the QR code using the [Expo Go](https://expo.dev/go) app on your device. This project fully supports running in Expo Go for quick testing on physical devices. + +## Adding components + +You can add more reusable components using the CLI: + +```bash +npx react-native-reusables/cli@latest add [...components] +``` + +> e.g. `npx react-native-reusables/cli@latest add input textarea` + +If you don't specify any component names, you'll be prompted to select which components to add interactively. Use the `--all` flag to install all available components at once. + +## Project Features + +- ⚛️ Built with [Expo Router](https://expo.dev/router) +- 🎨 Styled with [Tailwind CSS](https://tailwindcss.com/) via [Nativewind](https://www.nativewind.dev/) +- 📦 UI powered by [React Native Reusables](https://github.com/founded-labs/react-native-reusables) +- 🚀 New Architecture enabled +- 🔥 Edge to Edge enabled +- 📱 Runs on iOS, Android, and Web + +## Learn More + +To dive deeper into the technologies used: + +- [React Native Docs](https://reactnative.dev/docs/getting-started) +- [Expo Docs](https://docs.expo.dev/) +- [Nativewind Docs](https://www.nativewind.dev/) +- [React Native Reusables](https://reactnativereusables.com) + +## Deploy with EAS + +The easiest way to deploy your app is with [Expo Application Services (EAS)](https://expo.dev/eas). + +- [EAS Build](https://docs.expo.dev/build/introduction/) +- [EAS Updates](https://docs.expo.dev/eas-update/introduction/) +- [EAS Submit](https://docs.expo.dev/submit/introduction/) + +--- + +If you enjoy using React Native Reusables, please consider giving it a ⭐ on [GitHub](https://github.com/founded-labs/react-native-reusables). Your support means a lot! diff --git a/apps/showcase/app.config.ts b/apps/showcase/app.config.ts deleted file mode 100644 index 7bfa20c..0000000 --- a/apps/showcase/app.config.ts +++ /dev/null @@ -1,112 +0,0 @@ -import type { ConfigContext, ExpoConfig } from 'expo/config'; - -export default ({ config }: ConfigContext): ExpoConfig => { - const { NAME, SLUG } = getConfig(); - - return { - ...config, - name: NAME, - slug: SLUG, - version: '0.0.1', - orientation: 'portrait', - icon: './assets/images/icon.png', - scheme: SLUG, - userInterfaceStyle: 'automatic', - newArchEnabled: true, - runtimeVersion: { - policy: 'appVersion', - }, - updates: { - url: 'https://u.expo.dev/ceb86f7d-1fed-4feb-98cb-2f2ba6223741', - }, - splash: { - image: './assets/images/splash.png', - resizeMode: 'contain', - backgroundColor: '#0A0A0A', - }, - assetBundlePatterns: ['**/*'], - ios: { - supportsTablet: true, - bundleIdentifier: 'com.reactnativereusables.app', - associatedDomains: ['applinks:reactnativereusables.com'], - infoPlist: { - ITSAppUsesNonExemptEncryption: false, - }, - }, - android: { - edgeToEdgeEnabled: true, - adaptiveIcon: { - foregroundImage: './assets/images/adaptive-icon.png', - backgroundColor: '#0A0A0A', - }, - package: 'com.reactnativereusables.app', - intentFilters: [ - { - action: 'VIEW', - autoVerify: true, - data: [ - { - scheme: 'https', - host: 'reactnativereusables.com', - pathPrefix: '/showcase/links', - }, - ], - category: ['BROWSABLE', 'DEFAULT'], - }, - ], - }, - web: { - bundler: 'metro', - output: 'static', - favicon: './assets/images/favicon.png', - }, - plugins: [ - 'expo-router', - [ - 'expo-font', - { - fonts: [ - '../../node_modules/@expo-google-fonts/geist/900Black/Geist_900Black.ttf', - '../../node_modules/@expo-google-fonts/geist/800ExtraBold/Geist_800ExtraBold.ttf', - '../../node_modules/@expo-google-fonts/geist/700Bold/Geist_700Bold.ttf', - '../../node_modules/@expo-google-fonts/geist/600SemiBold/Geist_600SemiBold.ttf', - '../../node_modules/@expo-google-fonts/geist/500Medium/Geist_500Medium.ttf', - '../../node_modules/@expo-google-fonts/geist/400Regular/Geist_400Regular.ttf', - '../../node_modules/@expo-google-fonts/geist/300Light/Geist_300Light.ttf', - '../../node_modules/@expo-google-fonts/geist/200ExtraLight/Geist_200ExtraLight.ttf', - '../../node_modules/@expo-google-fonts/geist/100Thin/Geist_100Thin.ttf', - ], - }, - ], - [ - 'react-native-edge-to-edge', - { - android: { - parentTheme: 'Material3', - enforceNavigationBarContrast: false, - }, - }, - ], - ], - experiments: { - typedRoutes: true, - }, - extra: { - router: { - origin: false, - }, - eas: { - projectId: 'ceb86f7d-1fed-4feb-98cb-2f2ba6223741', - }, - }, - }; -}; - -function getConfig() { - const IS_DEV = process.env.ENV === 'development'; - - const NAME = IS_DEV ? 'Dev React Native Reusables' : 'React Native Reusables'; - const SLUG = IS_DEV ? 'devreactnativereusablesshowcase' : 'reactnativereusablesshowcase'; - - return { NAME, SLUG }; -} diff --git a/apps/showcase/app.json b/apps/showcase/app.json new file mode 100644 index 0000000..6409718 --- /dev/null +++ b/apps/showcase/app.json @@ -0,0 +1,41 @@ +{ + "expo": { + "name": "showcase", + "slug": "showcase", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/images/icon.png", + "scheme": "showcase", + "userInterfaceStyle": "automatic", + "newArchEnabled": true, + "splash": { + "image": "./assets/images/splash.png", + "resizeMode": "contain", + "backgroundColor": "#ffffff" + }, + "assetBundlePatterns": [ + "**/*" + ], + "ios": { + "supportsTablet": true + }, + "android": { + "edgeToEdgeEnabled": true, + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#ffffff" + } + }, + "web": { + "bundler": "metro", + "output": "static", + "favicon": "./assets/images/favicon.png" + }, + "plugins": [ + "expo-router" + ], + "experiments": { + "typedRoutes": true + } + } +} \ No newline at end of file diff --git a/apps/showcase/app/+html.tsx b/apps/showcase/app/+html.tsx index d491c71..7b2020e 100644 --- a/apps/showcase/app/+html.tsx +++ b/apps/showcase/app/+html.tsx @@ -1,5 +1,5 @@ import { ScrollViewStyleReset } from 'expo-router/html'; -import type { PropsWithChildren } from 'react'; +import { type PropsWithChildren } from 'react'; // This file is web-only and used to configure the root HTML for every // web page during static rendering. diff --git a/apps/showcase/app/+not-found.tsx b/apps/showcase/app/+not-found.tsx index f6c84bd..8b55067 100644 --- a/apps/showcase/app/+not-found.tsx +++ b/apps/showcase/app/+not-found.tsx @@ -1,16 +1,16 @@ -import { Text } from '@showcase/components/ui/text'; import { Link, Stack } from 'expo-router'; import { View } from 'react-native'; +import { Text } from '@/components/ui/text'; export default function NotFoundScreen() { return ( <> - - This screen doesn't exist. - + + This screen doesn't exist. + - Go Home + Go to home screen! diff --git a/apps/showcase/app/_layout.tsx b/apps/showcase/app/_layout.tsx index b2918ed..771bc9c 100644 --- a/apps/showcase/app/_layout.tsx +++ b/apps/showcase/app/_layout.tsx @@ -1,84 +1,25 @@ -import '../global.css'; +import '@/global.css'; +import { NAV_THEME } from '@/lib/theme'; import { ThemeProvider } from '@react-navigation/native'; -import { HeaderRightView } from '@showcase/components/header-right-view'; -import { Text } from '@showcase/components/ui/text'; -import { useGeistFont } from '@showcase/hooks/use-geist-font'; -import { NAV_THEME } from '@showcase/lib/theme'; +import { PortalHost } from '@rn-primitives/portal'; import { Stack } from 'expo-router'; -import * as SplashScreen from 'expo-splash-screen'; import { StatusBar } from 'expo-status-bar'; import { useColorScheme } from 'nativewind'; -import * as React from 'react'; -import { GestureHandlerRootView } from 'react-native-gesture-handler'; - -SplashScreen.preventAutoHideAsync(); export { // Catch any errors thrown by the Layout component. ErrorBoundary, } from 'expo-router'; -export const unstable_settings = { - // Ensure that reloading on `/modal` keeps a back button present. - initialRouteName: 'index', -}; - export default function RootLayout() { - const [loaded, error] = useGeistFont(); const { colorScheme } = useColorScheme(); - React.useEffect(() => { - if (loaded || error) { - SplashScreen.hideAsync(); - } - }, [loaded, error]); - - if (!loaded && !error) { - return null; - } - return ( - + - - - {toOptions(props.children.split('/').pop())} - - ); - }, - headerRight: () => , - }}> - - - + + ); } - -function toOptions(name: string) { - const title = name - .split('-') - .map((str: string) => str.replace(/\b\w/g, (char) => char.toUpperCase())) - .join(' '); - return title; -} diff --git a/apps/showcase/app/components/example-block.tsx b/apps/showcase/app/components/example-block.tsx deleted file mode 100644 index f068a47..0000000 --- a/apps/showcase/app/components/example-block.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { PreviewCarousel } from '@showcase/components/preview-carousel'; -import * as React from 'react'; -import { MultipleButtons } from '@/rnr-ui/blocks/multiple-buttons'; - -const exampleBlockPreviews = [{ name: 'Multiple Buttons', component: MultipleButtons }]; - -export default function ExampleBlockScreen() { - return ; -} diff --git a/apps/showcase/app/components/example-component.tsx b/apps/showcase/app/components/example-component.tsx deleted file mode 100644 index 37f2763..0000000 --- a/apps/showcase/app/components/example-component.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { PreviewCarousel } from '@showcase/components/preview-carousel'; -import * as React from 'react'; -import { RedButtonPreview, RedButtonSecondaryPreview } from '@/rnr-ui/examples/red-button'; - -const exampleComponentPreviews = [ - { name: 'Default', component: RedButtonPreview }, - { name: 'Secondary', component: RedButtonSecondaryPreview }, -]; - -export default function ExampleComponentScreen() { - return ; -} diff --git a/apps/showcase/app/components/form.tsx b/apps/showcase/app/components/form.tsx deleted file mode 100644 index 0cf232d..0000000 --- a/apps/showcase/app/components/form.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { PreviewCarousel } from '@showcase/components/preview-carousel'; -import * as React from 'react'; -import { FormBasicPreview, FormWithValidationPreview } from '@/rnr-ui/examples'; - -const formPreviews = [ - { name: 'Basic', component: FormBasicPreview }, - { name: 'With Validation', component: FormWithValidationPreview }, -]; - -export default function FormScreen() { - return ; -} - diff --git a/apps/showcase/app/index.tsx b/apps/showcase/app/index.tsx index 35ca629..7e176d5 100644 --- a/apps/showcase/app/index.tsx +++ b/apps/showcase/app/index.tsx @@ -1,90 +1,77 @@ -import { useScrollToTop } from '@react-navigation/native'; -import { FlashList } from '@shopify/flash-list'; -import { Button } from '@showcase/components/ui/button'; -import { Icon } from '@showcase/components/ui/icon'; -import { Input } from '@showcase/components/ui/input'; -import { Text } from '@showcase/components/ui/text'; -import { COMPONENTS } from '@showcase/lib/constants'; -import { cn } from '@showcase/lib/utils'; -import { Link } from 'expo-router'; -import { ChevronRight } from 'lucide-react-native'; -import { cssInterop } from 'nativewind'; +import { Button } from '@/components/ui/button'; +import { Icon } from '@/components/ui/icon'; +import { Text } from '@/components/ui/text'; +import { Link, Stack } from 'expo-router'; +import { MoonStarIcon, StarIcon, SunIcon } from 'lucide-react-native'; +import { useColorScheme } from 'nativewind'; import * as React from 'react'; -import { Platform, View } from 'react-native'; +import { Image, type ImageStyle, View } from 'react-native'; -cssInterop(FlashList, { - className: 'style', - contentContainerClassName: 'contentContainerStyle', -}); +const LOGO = { + light: require('@/assets/images/react-native-reusables-light.png'), + dark: require('@/assets/images/react-native-reusables-dark.png'), +}; -export default function ComponentsScreen() { - const [search, setSearch] = React.useState(''); - const [isAtTop, setIsAtTop] = React.useState(true); - const isAtTopRef = React.useRef(true); - const flashListRef = React.useRef(null); - useScrollToTop(flashListRef); +const SCREEN_OPTIONS = { + title: 'React Native Reusables', + headerTransparent: true, + headerRight: () => , +}; - const data = !search - ? COMPONENTS - : COMPONENTS.filter((item) => item.name.toLowerCase().includes(search.toLowerCase())); +const IMAGE_STYLE: ImageStyle = { + height: 76, + width: 76, +}; - return ( - - { - const isScrollAtTop = nativeEvent.contentOffset.y <= 0; - if (isScrollAtTop !== isAtTopRef.current) { - isAtTopRef.current = isScrollAtTop; - setIsAtTop(isScrollAtTop); - } - }, - })} - contentInsetAdjustmentBehavior="automatic" - contentContainerClassName="px-4 pb-2" - estimatedItemSize={49} - keyboardShouldPersistTaps="handled" - keyboardDismissMode="on-drag" - showsVerticalScrollIndicator={false} - ListHeaderComponent={Platform.select({ - native: ( - - - - ), - })} - renderItem={({ item, index }) => ( - - - )} - ListFooterComponent={} - /> - + + + + + + + ); +} + +const THEME_ICONS = { + light: SunIcon, + dark: MoonStarIcon, +}; + +function ThemeToggle() { + const { colorScheme, toggleColorScheme } = useColorScheme(); + + return ( + ); } diff --git a/apps/showcase/assets/images/react-native-reusables-dark.png b/apps/showcase/assets/images/react-native-reusables-dark.png new file mode 100644 index 0000000..14bdc36 Binary files /dev/null and b/apps/showcase/assets/images/react-native-reusables-dark.png differ diff --git a/apps/showcase/assets/images/react-native-reusables-light.png b/apps/showcase/assets/images/react-native-reusables-light.png new file mode 100644 index 0000000..ccad54b Binary files /dev/null and b/apps/showcase/assets/images/react-native-reusables-light.png differ diff --git a/apps/showcase/assets/images/theme-toggle-dark.png b/apps/showcase/assets/images/theme-toggle-dark.png deleted file mode 100644 index b2cab37..0000000 Binary files a/apps/showcase/assets/images/theme-toggle-dark.png and /dev/null differ diff --git a/apps/showcase/assets/images/theme-toggle-light.png b/apps/showcase/assets/images/theme-toggle-light.png deleted file mode 100644 index a734eb2..0000000 Binary files a/apps/showcase/assets/images/theme-toggle-light.png and /dev/null differ diff --git a/apps/showcase/babel.config.js b/apps/showcase/babel.config.js index 93b1777..7d507e1 100644 --- a/apps/showcase/babel.config.js +++ b/apps/showcase/babel.config.js @@ -1,3 +1,6 @@ -module.exports = { - presets: [['babel-preset-expo', { jsxImportSource: 'nativewind' }], 'nativewind/babel'], +module.exports = function (api) { + api.cache(true); + return { + presets: [['babel-preset-expo', { jsxImportSource: 'nativewind' }], 'nativewind/babel'], + }; }; diff --git a/apps/showcase/components.json b/apps/showcase/components.json index b504c96..a45eb48 100644 --- a/apps/showcase/components.json +++ b/apps/showcase/components.json @@ -10,10 +10,10 @@ "cssVariables": true }, "aliases": { - "components": "@showcase/components", - "utils": "@showcase/lib/utils", - "ui": "@showcase/components/ui", - "lib": "@showcase/lib", - "hooks": "@showcase/hooks" + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" } } diff --git a/apps/showcase/components/header-right-view.tsx b/apps/showcase/components/header-right-view.tsx deleted file mode 100644 index 55b4212..0000000 --- a/apps/showcase/components/header-right-view.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { ThemeToggle } from '@showcase/components/theme-toggle'; -import { Button } from '@showcase/components/ui/button'; -import { Text } from '@showcase/components/ui/text'; -import * as Updates from 'expo-updates'; -import * as React from 'react'; -import { ActivityIndicator } from 'react-native'; - -export function HeaderRightView() { - const { isUpdateAvailable, isUpdatePending, isDownloading } = Updates.useUpdates(); - - async function onReload() { - try { - if (!isUpdatePending) { - await Updates.fetchUpdateAsync(); - } - await Updates.reloadAsync(); - } catch (error) { - console.error(error); - } - } - - if (isUpdateAvailable) { - return ( - - ); - } - - return ; -} diff --git a/apps/showcase/components/preview-carousel.tsx b/apps/showcase/components/preview-carousel.tsx deleted file mode 100644 index 76ca7a1..0000000 --- a/apps/showcase/components/preview-carousel.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { Button } from '@showcase/components/ui/button'; -import { Icon } from '@showcase/components/ui/icon'; -import { cn } from '@showcase/lib/utils'; -import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react-native'; -import * as React from 'react'; -import { useState } from 'react'; -import { - Dimensions, - FlatList, - type ListRenderItemInfo, - type NativeScrollEvent, - type NativeSyntheticEvent, - View, -} from 'react-native'; - -const windowWidth = Dimensions.get('window').width; - -type PreviewCarouselProps = { - previews: { - name: string; - component: (props: unknown) => React.JSX.Element; - }[]; - removeBottomSafeArea?: boolean; -}; - -function PreviewCarousel({ previews, removeBottomSafeArea = false }: PreviewCarouselProps) { - const [index, setIndex] = useState(0); - const ref = React.useRef(null); - - function onScroll(ev: NativeSyntheticEvent) { - const index = Math.round(ev.nativeEvent.contentOffset.x / windowWidth); - setIndex(index); - } - - function onPreviewPress() { - ref.current?.scrollToIndex({ index: Math.max(0, index - 1) }); - } - - function onNextPress() { - ref.current?.scrollToIndex({ - index: Math.min(previews.length - 1, index + 1), - }); - } - - return ( - <> - - - - - - - - - - - - - ); -} - -export { PreviewCarousel }; - -function renderItem({ - item, -}: ListRenderItemInfo<{ - name: string; - component: (props: unknown) => React.JSX.Element; -}>) { - const Component = item.component; - return ( - - - - ); -} - -function keyExtractor(item: { name: string }) { - return item.name; -} diff --git a/apps/showcase/components/theme-toggle.tsx b/apps/showcase/components/theme-toggle.tsx deleted file mode 100644 index 3fee12d..0000000 --- a/apps/showcase/components/theme-toggle.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { Button } from '@showcase/components/ui/button'; -import * as Haptics from 'expo-haptics'; -import { useColorScheme } from 'nativewind'; -import { Image, type ImageStyle } from 'react-native'; - -const THEME_TOGGLE_IMAGES = { - light: require('@showcase/assets/images/theme-toggle-light.png'), - dark: require('@showcase/assets/images/theme-toggle-dark.png'), -}; - -const IMAGE_STYLE: ImageStyle = { - height: 22, - width: 22, -}; - -export function ThemeToggle() { - const { colorScheme, setColorScheme } = useColorScheme(); - - function toggleColorScheme() { - Haptics.impactAsync(Haptics.ImpactFeedbackStyle.Heavy); - const newTheme = colorScheme === 'dark' ? 'light' : 'dark'; - setColorScheme(newTheme); - } - - return ( - - ); -} diff --git a/apps/showcase/components/ui/button.tsx b/apps/showcase/components/ui/button.tsx index 0bf2932..e05c743 100644 --- a/apps/showcase/components/ui/button.tsx +++ b/apps/showcase/components/ui/button.tsx @@ -1,5 +1,5 @@ -import { TextClassContext } from '@showcase/components/ui/text'; -import { cn } from '@showcase/lib/utils'; +import { TextClassContext } from '@/components/ui/text'; +import { cn } from '@/lib/utils'; import { cva, type VariantProps } from 'class-variance-authority'; import { Platform, Pressable } from 'react-native'; @@ -7,30 +7,30 @@ const buttonVariants = cva( cn( 'group shrink-0 flex-row items-center justify-center gap-2 rounded-md shadow-none', Platform.select({ - web: "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap outline-none transition-all focus-visible:ring-[3px] disabled:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", + web: "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap outline-none transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", }) ), { variants: { variant: { default: cn( - 'bg-primary active:bg-primary/90 shadow-sm shadow-black/5', + 'bg-primary shadow-sm shadow-black/5 active:bg-primary/90', Platform.select({ web: 'hover:bg-primary/90' }) ), destructive: cn( - 'bg-destructive active:bg-destructive/90 dark:bg-destructive/60 shadow-sm shadow-black/5', + 'bg-destructive shadow-sm shadow-black/5 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 bg-background active:bg-accent dark:bg-input/30 dark:border-input dark:active:bg-input/50 border shadow-sm shadow-black/5', + 'border border-border bg-background shadow-sm shadow-black/5 active:bg-accent dark:border-input dark:bg-input/30 dark:active:bg-input/50', Platform.select({ web: 'hover:bg-accent dark:hover:bg-input/50', }) ), secondary: cn( - 'bg-secondary active:bg-secondary/80 shadow-sm shadow-black/5', + 'bg-secondary shadow-sm shadow-black/5 active:bg-secondary/80', Platform.select({ web: 'hover:bg-secondary/80' }) ), ghost: cn( @@ -55,7 +55,7 @@ const buttonVariants = cva( const buttonTextVariants = cva( cn( - 'text-foreground text-sm font-medium', + 'text-sm font-medium text-foreground', Platform.select({ web: 'pointer-events-none transition-colors' }) ), { diff --git a/apps/showcase/components/ui/icon.tsx b/apps/showcase/components/ui/icon.tsx index 49ae794..0aef17d 100644 --- a/apps/showcase/components/ui/icon.tsx +++ b/apps/showcase/components/ui/icon.tsx @@ -1,4 +1,4 @@ -import { cn } from '@showcase/lib/utils'; +import { cn } from '@/lib/utils'; import type { LucideIcon, LucideProps } from 'lucide-react-native'; import { cssInterop } from 'nativewind'; diff --git a/apps/showcase/components/ui/input.tsx b/apps/showcase/components/ui/input.tsx deleted file mode 100644 index ebc0e67..0000000 --- a/apps/showcase/components/ui/input.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { cn } from '@showcase/lib/utils'; -import { Platform, TextInput, type TextInputProps } from 'react-native'; - -function Input({ - className, - placeholderClassName, - ...props -}: TextInputProps & React.RefAttributes) { - return ( - - ); -} - -export { Input }; diff --git a/apps/showcase/components/ui/text.tsx b/apps/showcase/components/ui/text.tsx index 1db0015..35b3ef1 100644 --- a/apps/showcase/components/ui/text.tsx +++ b/apps/showcase/components/ui/text.tsx @@ -1,4 +1,4 @@ -import { cn } from '@showcase/lib/utils'; +import { cn } from '@/lib/utils'; import * as Slot from '@rn-primitives/slot'; import { cva, type VariantProps } from 'class-variance-authority'; import * as React from 'react'; @@ -6,7 +6,7 @@ import { Platform, Text as RNText, type Role } from 'react-native'; const textVariants = cva( cn( - 'text-foreground text-base', + 'text-base text-foreground', Platform.select({ web: 'select-text', }) @@ -20,7 +20,7 @@ const textVariants = cva( Platform.select({ web: 'scroll-m-20 text-balance' }) ), h2: cn( - 'border-border border-b pb-2 text-3xl font-semibold tracking-tight', + 'border-b border-border pb-2 text-3xl font-semibold tracking-tight', Platform.select({ web: 'scroll-m-20 first:mt-0' }) ), h3: cn('text-2xl font-semibold tracking-tight', Platform.select({ web: 'scroll-m-20' })), @@ -28,12 +28,12 @@ const textVariants = cva( p: 'mt-3 leading-7 sm:mt-6', blockquote: 'mt-4 border-l-2 pl-3 italic sm:mt-6 sm:pl-6', code: cn( - 'bg-muted relative rounded px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold' + 'relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold' ), - lead: 'text-muted-foreground text-xl', + lead: 'text-xl text-muted-foreground', large: 'text-lg font-semibold', small: 'text-sm font-medium leading-none', - muted: 'text-muted-foreground text-sm', + muted: 'text-sm text-muted-foreground', }, }, defaultVariants: { diff --git a/apps/showcase/hooks/use-geist-font.tsx b/apps/showcase/hooks/use-geist-font.tsx deleted file mode 100644 index 5f89013..0000000 --- a/apps/showcase/hooks/use-geist-font.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { useFonts } from '@expo-google-fonts/geist/useFonts'; -import { Geist_100Thin } from '@expo-google-fonts/geist/100Thin'; -import { Geist_200ExtraLight } from '@expo-google-fonts/geist/200ExtraLight'; -import { Geist_300Light } from '@expo-google-fonts/geist/300Light'; -import { Geist_400Regular } from '@expo-google-fonts/geist/400Regular'; -import { Geist_500Medium } from '@expo-google-fonts/geist/500Medium'; -import { Geist_600SemiBold } from '@expo-google-fonts/geist/600SemiBold'; -import { Geist_700Bold } from '@expo-google-fonts/geist/700Bold'; -import { Geist_800ExtraBold } from '@expo-google-fonts/geist/800ExtraBold'; -import { Geist_900Black } from '@expo-google-fonts/geist/900Black'; - -function useGeistFont() { - return useFonts({ - Geist_100Thin, - Geist_200ExtraLight, - Geist_300Light, - Geist_400Regular, - Geist_500Medium, - Geist_600SemiBold, - Geist_700Bold, - Geist_800ExtraBold, - Geist_900Black, - }); -} - -export { useGeistFont }; diff --git a/apps/showcase/index.js b/apps/showcase/index.js deleted file mode 100644 index 81def0f..0000000 --- a/apps/showcase/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import { registerRootComponent } from 'expo'; -import { ExpoRoot } from 'expo-router'; - -// Must be exported or Fast Refresh won't update the context -export function App() { - const ctx = require.context('./app'); - return ; -} - -registerRootComponent(App); diff --git a/apps/showcase/lib/constants.ts b/apps/showcase/lib/constants.ts deleted file mode 100644 index 0a7c71e..0000000 --- a/apps/showcase/lib/constants.ts +++ /dev/null @@ -1,5 +0,0 @@ -export const COMPONENTS = [ - { slug: 'example-component', name: 'Example Component' }, - { slug: 'example-block', name: 'Example Block' }, - { slug: 'form', name: 'Form' }, -] as const; diff --git a/apps/showcase/lib/theme.ts b/apps/showcase/lib/theme.ts index 076274e..3d69b31 100644 --- a/apps/showcase/lib/theme.ts +++ b/apps/showcase/lib/theme.ts @@ -1,5 +1,5 @@ import { DarkTheme, DefaultTheme, type Theme } from '@react-navigation/native'; - + export const THEME = { light: { background: 'hsl(0 0% 100%)', @@ -54,7 +54,7 @@ export const THEME = { chart5: 'hsl(340 75% 55%)', }, }; - + export const NAV_THEME: Record<'light' | 'dark', Theme> = { light: { ...DefaultTheme, @@ -66,12 +66,6 @@ export const NAV_THEME: Record<'light' | 'dark', Theme> = { primary: THEME.light.primary, text: THEME.light.foreground, }, - fonts: { - bold: { fontFamily: 'Geist-Medium', fontWeight: '500' }, - medium: { fontFamily: 'Geist-Medium', fontWeight: '500' }, - regular: { fontFamily: 'Geist', fontWeight: '400' }, - heavy: { fontFamily: 'Geist-SemiBold', fontWeight: '600' }, - }, }, dark: { ...DarkTheme, @@ -83,11 +77,5 @@ export const NAV_THEME: Record<'light' | 'dark', Theme> = { primary: THEME.dark.primary, text: THEME.dark.foreground, }, - fonts: { - bold: { fontFamily: 'Geist-Medium', fontWeight: '500' }, - medium: { fontFamily: 'Geist-Medium', fontWeight: '500' }, - regular: { fontFamily: 'Geist', fontWeight: '400' }, - heavy: { fontFamily: 'Geist-SemiBold', fontWeight: '600' }, - }, }, -}; +}; \ No newline at end of file diff --git a/apps/showcase/metro.config.js b/apps/showcase/metro.config.js index 11591f5..9a443d8 100644 --- a/apps/showcase/metro.config.js +++ b/apps/showcase/metro.config.js @@ -1,26 +1,6 @@ const { getDefaultConfig } = require('expo/metro-config'); const { withNativeWind } = require('nativewind/metro'); -const path = require('path'); -// Find the project and workspace directories -const projectRoot = __dirname; -// This can be replaced with `find-yarn-workspace-root` -const monorepoRoot = path.resolve(projectRoot, '../..'); - -const config = getDefaultConfig(projectRoot); - -// 1. Watch all files within the monorepo -config.watchFolders = [monorepoRoot]; -// 2. Let Metro know where to resolve packages and in what order -config.resolver.nodeModulesPaths = [ - path.resolve(projectRoot, 'node_modules'), - path.resolve(monorepoRoot, 'node_modules'), -]; - -const { resolver } = config; -config.resolver = { - ...resolver, - sourceExts: [...resolver.sourceExts, 'mjs', 'cjs'], -}; +const config = getDefaultConfig(__dirname); module.exports = withNativeWind(config, { input: './global.css', inlineRem: 16 }); diff --git a/apps/showcase/nativewind-env.d.ts b/apps/showcase/nativewind-env.d.ts index 9583462..a13e313 100644 --- a/apps/showcase/nativewind-env.d.ts +++ b/apps/showcase/nativewind-env.d.ts @@ -1,3 +1 @@ /// - -// NOTE: This file should not be edited and should be committed with your source code. It is generated by NativeWind. diff --git a/apps/showcase/package.json b/apps/showcase/package.json index 669aba2..998262a 100644 --- a/apps/showcase/package.json +++ b/apps/showcase/package.json @@ -1,54 +1,49 @@ { - "name": "@rnr/showcase", - "main": "index.js", - "version": "0.0.1", + "name": "showcase", + "main": "expo-router/entry", + "version": "1.0.0", "scripts": { - "dev": "ENV=development expo start --clear", - "start": "ENV=development expo start --clear", - "testflight": "eas build -p ios --submit", - "build:web": "npx expo export -p web", - "serve:web": "npx serve dist --single", - "clean": "rm -rf .expo node_modules", - "postinstall": "npx tailwindcss -i ./global.css -o ./node_modules/.cache/nativewind/global.css", - "registry": "shadcn build --output ./public/r" + "dev": "expo start -c", + "android": "expo start -c --android", + "ios": "expo start -c --ios", + "web": "expo start -c --web", + "clean": "rm -rf .expo node_modules" }, "dependencies": { - "@expo-google-fonts/geist": "^0.4.0", + "@expo/metro-runtime": "^6.1.2", "@react-navigation/native": "^7.0.0", - "@rn-primitives/slot": "~1.2.0", - "@rnr/rnr-ui": "workspace:*", - "@rnr/utils": "workspace:*", - "@shopify/flash-list": "1.7.6", - "class-variance-authority": "^0.7.0", - "clsx": "^2.1.0", - "expo": "^53.0.20", - "expo-font": "~13.3.2", - "expo-haptics": "~14.1.4", - "expo-linking": "~7.1.7", - "expo-router": "~5.1.4", - "expo-splash-screen": "~0.30.10", - "expo-status-bar": "~2.2.3", - "expo-updates": "~0.28.17", - "lucide-react-native": "^0.511.0", - "nativewind": "^4.1.23", - "react": "19.0.0", - "react-dom": "19.0.0", - "react-native": "0.79.5", - "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.11.1", - "react-native-svg": "15.11.2", - "react-native-web": "~0.21.0", - "shadcn": "2.9.2", - "tailwind-merge": "^2.2.1", + "@rn-primitives/portal": "~1.3.0", + "@rn-primitives/slot": "^1.2.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "expo": "^54.0.0", + "expo-linking": "~8.0.8", + "expo-router": "~6.0.10", + "expo-splash-screen": "~31.0.10", + "expo-status-bar": "~3.0.8", + "expo-system-ui": "~6.0.7", + "lucide-react-native": "^0.545.0", + "nativewind": "^4.2.1", + "react": "19.1.0", + "react-dom": "19.1.0", + "react-native": "0.81.5", + "react-native-reanimated": "~4.1.1", + "react-native-safe-area-context": "~5.6.0", + "react-native-screens": "~4.16.0", + "react-native-svg": "15.12.1", + "react-native-web": "^0.21.0", + "react-native-worklets": "0.5.1", + "tailwind-merge": "^3.3.1", + "tailwindcss": "^3.4.14", "tailwindcss-animate": "^1.0.7" }, "devDependencies": { "@babel/core": "^7.26.0", - "@types/react": "~19.0.14", - "tailwindcss": "^3.4.14", - "typescript": "^5.8.3" + "@types/react": "^19.1.0", + "@types/react-dom": "^19.1.0", + "prettier": "^3.6.2", + "prettier-plugin-tailwindcss": "^0.6.14", + "typescript": "~5.9.2" }, "private": true } diff --git a/apps/showcase/plugins/geistFontPlugin.js b/apps/showcase/plugins/geistFontPlugin.js deleted file mode 100644 index 0b9acf0..0000000 --- a/apps/showcase/plugins/geistFontPlugin.js +++ /dev/null @@ -1,21 +0,0 @@ -const plugin = require('tailwindcss/plugin'); - -module.exports = plugin(function ({ addUtilities }) { - addUtilities({ - '.font-sans': { - fontFamily: 'Geist', - }, - }); - - addUtilities({ - '.font-thin': { fontFamily: 'Geist-Thin' }, - '.font-extralight': { fontFamily: 'Geist-ExtraLight' }, - '.font-light': { fontFamily: 'Geist-Light' }, - '.font-normal': { fontFamily: 'Geist' }, - '.font-medium': { fontFamily: 'Geist-Medium' }, - '.font-semibold': { fontFamily: 'Geist-SemiBold' }, - '.font-bold': { fontFamily: 'Geist-Bold' }, - '.font-extrabold': { fontFamily: 'Geist-ExtraBold' }, - '.font-black': { fontFamily: 'Geist-Black' }, - }); -}); diff --git a/apps/showcase/public/r/example-block.json b/apps/showcase/public/r/example-block.json deleted file mode 100644 index 8d62bed..0000000 --- a/apps/showcase/public/r/example-block.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema/registry-item.json", - "name": "example-block", - "type": "registry:block", - "title": "Example Block", - "author": "@gabimoncha", - "description": "Displays a set of buttons which are always red.", - "registryDependencies": [ - "https://reactnativereusables.com/r/new-york/text.json", - "https://reactnativereusables.com/r/new-york/button.json", - "https://reactnativereusables.com/r/new-york/card.json" - ], - "files": [ - { - "path": "./node_modules/@rnr/rnr-ui/src/blocks/multiple-buttons.tsx", - "content": "import { View } from 'react-native';\nimport { RedButton } from '@/rnr-ui/components/ui/red-button';\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '~/components/ui/card';\n\nexport function MultipleButtons() {\n return (\n \n \n \n Multiple Buttons\n \n Multiple buttons with different variants\n \n \n \n \n {}} label=\"Primary Red Button\" />\n {}} label=\"Secondary Red Button\" />\n {}} label=\"Outline Red Button\" />\n {}} label=\"Ghost Red Button\" />\n {}} label=\"Red Button Link\" />\n \n \n \n \n );\n}\n", - "type": "registry:block" - } - ] -} \ No newline at end of file diff --git a/apps/showcase/public/r/example-component.json b/apps/showcase/public/r/example-component.json deleted file mode 100644 index c4212a6..0000000 --- a/apps/showcase/public/r/example-component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema/registry-item.json", - "name": "example-component", - "type": "registry:component", - "title": "Example Component", - "author": "@gabimoncha", - "description": "Displays a button which is always red.", - "registryDependencies": [ - "https://reactnativereusables.com/r/new-york/text.json", - "https://reactnativereusables.com/r/new-york/button.json" - ], - "files": [ - { - "path": "./node_modules/@rnr/rnr-ui/src/components/ui/red-button.tsx", - "content": "import { cva } from 'class-variance-authority';\nimport { Platform } from 'react-native';\nimport { Button, type ButtonProps } from '~/components/ui/button';\nimport { Text } from '~/components/ui/text';\nimport { cn } from '~/lib/utils';\n\nconst redButtonVariants = cva('', {\n variants: {\n variant: {\n default: cn(\n 'bg-red-500 active:bg-red-500/90',\n Platform.select({\n web: 'hover:bg-red-500/90',\n })\n ),\n destructive: cn(\n 'bg-red-700 active:bg-red-700/90',\n Platform.select({\n web: 'hover:bg-red-700/90',\n })\n ),\n outline: 'border-red-400 dark:border-red-400',\n secondary: cn(\n 'bg-red-200 active:bg-red-200/80',\n Platform.select({\n web: 'hover:bg-red-200/80',\n })\n ),\n ghost: 'active:bg-red-500/10 dark:active:bg-red-500/10',\n link: '',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\nconst redButtonTextVariants = cva('', {\n variants: {\n variant: {\n default: '',\n destructive: '',\n outline: cn(\n 'group-active:text-red-400',\n Platform.select({ web: 'group-hover:text-red-400' })\n ),\n secondary: 'text-black',\n ghost: '',\n link: 'text-red-400',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n});\n\ntype RedButtonProps = ButtonProps & {\n label: string;\n};\n\nfunction RedButton({ label, className, ...props }: RedButtonProps) {\n return (\n \n );\n}\n\nexport { RedButton, redButtonVariants, redButtonTextVariants };\nexport type { RedButtonProps };\n", - "type": "registry:component" - } - ] -} \ No newline at end of file diff --git a/apps/showcase/public/r/form.json b/apps/showcase/public/r/form.json deleted file mode 100644 index 61339a2..0000000 --- a/apps/showcase/public/r/form.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema/registry-item.json", - "name": "form", - "type": "registry:component", - "title": "Form", - "author": "@gabimoncha", - "description": "A form component with validation and field management using rc-field-form.", - "registryDependencies": [ - "https://reactnativereusables.com/r/new-york/text.json", - "https://reactnativereusables.com/r/new-york/label.json" - ], - "files": [ - { - "path": "./node_modules/@rnr/rnr-ui/src/components/ui/forms.tsx", - "content": "import FormRc, { Field } from 'rc-field-form';\nimport { FieldProps } from 'rc-field-form/es/Field';\nimport React from 'react';\nimport { View } from 'react-native';\nimport { Label } from '~/components/ui/label';\nimport { Text } from '~/components/ui/text';\n\nfunction FormItem({\n name,\n label,\n children,\n ...restProps\n}: FieldProps & {\n label?: string;\n}) {\n const hasRequired = restProps.rules?.some((rule: any) => rule.required);\n return (\n \n {(control, meta, form) => {\n const hasError = meta.errors && meta.errors.length > 0;\n const errorMessage = meta.errors?.[0];\n\n // Handle function children - pass control, meta, form exactly like rc-field-form\n const childNode =\n typeof children === 'function'\n ? children(control, meta, form)\n : React.isValidElement(children)\n ? React.cloneElement(\n children as React.ReactElement,\n {\n ...control,\n // Map React Native TextInput props\n value: control.value ?? '',\n onChangeText: (text: string) => control.onChange(text),\n onBlur: control.onBlur,\n // Add error styling if needed\n className: hasError\n ? `${(children as any).props?.className || ''} border-destructive`.trim()\n : (children as any).props?.className,\n } as any\n )\n : children;\n\n // Only add UI wrapper if label or error exists\n if (!label && !errorMessage) {\n return childNode;\n }\n\n return (\n \n {label && (\n \n )}\n {childNode}\n {errorMessage && (\n \n {errorMessage}\n \n )}\n \n );\n }}\n \n );\n}\n\n// Create Form component with Item attached\nconst Form = FormRc as typeof FormRc & {\n Item: typeof FormItem;\n useForm: typeof FormRc.useForm;\n};\n\nForm.Item = FormItem;\nForm.useForm = FormRc.useForm;\n\nexport { Form };\n", - "type": "registry:component" - } - ] -} \ No newline at end of file diff --git a/apps/showcase/public/r/utils-hello-demo.json b/apps/showcase/public/r/utils-hello-demo.json deleted file mode 100644 index 6d01b65..0000000 --- a/apps/showcase/public/r/utils-hello-demo.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema/registry-item.json", - "name": "utils-hello-demo", - "type": "registry:component", - "title": "Utils Hello Demo", - "author": "@rnr", - "description": "Demo component showcasing the hello utility function from @rnr/utils package.", - "registryDependencies": [], - "files": [ - { - "path": "./node_modules/@rnr/utils/src/demo/HelloDemo.tsx", - "content": "import React, { useState } from 'react';\nimport { View, Text, Button, StyleSheet, TextInput } from 'react-native';\nimport { hello, helloAsync } from '../hello';\n\nexport function HelloDemo() {\n const [greeting, setGreeting] = useState('');\n const [loading, setLoading] = useState(false);\n const [name, setName] = useState('React Native');\n\n const handleHello = () => {\n const message = hello(name);\n setGreeting(message);\n };\n\n const handleHelloAsync = async () => {\n setLoading(true);\n try {\n const message = await helloAsync(name);\n setGreeting(message);\n } finally {\n setLoading(false);\n }\n };\n\n return (\n \n Utils Hello Demo\n \n \n \n {greeting ? {greeting} : null}\n \n + + + + ); +} \ No newline at end of file diff --git a/packages/rnr-ui/src/examples/form/form-custom-validation.tsx b/packages/rnr-ui/src/examples/form/form-custom-validation.tsx new file mode 100644 index 0000000..f87f1de --- /dev/null +++ b/packages/rnr-ui/src/examples/form/form-custom-validation.tsx @@ -0,0 +1,116 @@ +import { Form } from '@/rnr-ui/components/ui/forms'; +import { TextInput, View } from 'react-native'; +import { Button } from '~/components/ui/button'; + +export function FormCustomValidationPreview() { + const [form] = Form.useForm(); + + const onFinish = (values: any) => { + console.log('Form values:', values); + }; + + // Custom validator functions + const validateUsername = (_: any, value: string) => { + if (!value) { + return Promise.reject(new Error('Username is required')); + } + if (value.length < 3) { + return Promise.reject(new Error('Username must be at least 3 characters')); + } + if (!/^[a-zA-Z0-9_]+$/.test(value)) { + return Promise.reject(new Error('Username can only contain letters, numbers, and underscores')); + } + return Promise.resolve(); + }; + + const validateAge = (_: any, value: string) => { + if (!value) { + return Promise.reject(new Error('Age is required')); + } + const age = parseInt(value, 10); + if (isNaN(age)) { + return Promise.reject(new Error('Please enter a valid number')); + } + if (age < 18) { + return Promise.reject(new Error('You must be at least 18 years old')); + } + if (age > 120) { + return Promise.reject(new Error('Please enter a valid age')); + } + return Promise.resolve(); + }; + + const validateConfirmPassword = (_: any, value: string) => { + if (!value) { + return Promise.reject(new Error('Please confirm your password')); + } + const password = form.getFieldValue('password'); + if (value !== password) { + return Promise.reject(new Error('Passwords do not match')); + } + return Promise.resolve(); + }; + + return ( + +
+ {/* Username with custom validation */} + + + + + {/* Age with custom validation */} + + + + + {/* Password */} + + + + + {/* Confirm Password with custom validation */} + + + + + + + +
+
+ ); +} \ No newline at end of file diff --git a/packages/rnr-ui/src/examples/form/form-dynamic-fields.tsx b/packages/rnr-ui/src/examples/form/form-dynamic-fields.tsx new file mode 100644 index 0000000..da5787e --- /dev/null +++ b/packages/rnr-ui/src/examples/form/form-dynamic-fields.tsx @@ -0,0 +1,92 @@ +import { Form } from '@/rnr-ui/components/ui/forms'; +import { TextInput, View, Text } from 'react-native'; +import { Button } from '~/components/ui/button'; +import { useState } from 'react'; + +export function FormDynamicFieldsPreview() { + const [form] = Form.useForm(); + const [emails, setEmails] = useState(['']); + + const onFinish = (values: any) => { + console.log('Form values:', values); + }; + + const addEmail = () => { + setEmails([...emails, '']); + }; + + const removeEmail = (index: number) => { + const newEmails = emails.filter((_, i) => i !== index); + setEmails(newEmails); + + // Remove from form values + const currentEmails = form.getFieldValue('emails') || []; + const updatedEmails = currentEmails.filter((_: any, i: number) => i !== index); + form.setFieldsValue({ emails: updatedEmails }); + }; + + return ( + +
+ {/* Static fields */} + + + + + + + + + {/* Dynamic email fields */} + Email Addresses + + {emails.map((_, index) => ( + + + + + + + + {emails.length > 1 && ( + + )} + + ))} + + + + + + +
+
+ ); +} diff --git a/packages/rnr-ui/src/examples/form/form-field-dependencies.tsx b/packages/rnr-ui/src/examples/form/form-field-dependencies.tsx new file mode 100644 index 0000000..b08d50c --- /dev/null +++ b/packages/rnr-ui/src/examples/form/form-field-dependencies.tsx @@ -0,0 +1,104 @@ +import { Form } from '@/rnr-ui/components/ui/forms'; +import { TextInput, View } from 'react-native'; +import { Button } from '~/components/ui/button'; + +export function FormFieldDependenciesPreview() { + const [form] = Form.useForm(); + + const onFinish = (values: any) => { + console.log('Form values:', values); + }; + + // Watch for country changes + const country = Form.useWatch('country', form); + + return ( + +
+ {/* Country Selection */} + + + + + {/* Conditional fields based on country */} + {country === 'USA' && ( + + + + )} + + {country === 'Canada' && ( + + + + )} + + {country === 'UK' && ( + + + + )} + + {/* Conditional validation */} + + + + + + + +
+
+ ); +} \ No newline at end of file diff --git a/packages/rnr-ui/src/examples/form/form-field-types.tsx b/packages/rnr-ui/src/examples/form/form-field-types.tsx new file mode 100644 index 0000000..795cfcd --- /dev/null +++ b/packages/rnr-ui/src/examples/form/form-field-types.tsx @@ -0,0 +1,109 @@ +import { Form } from '@/rnr-ui/components/ui/forms'; +import { TextInput, View, Text } from 'react-native'; +import { Button } from '~/components/ui/button'; +import { useState } from 'react'; + +export function FormFieldTypesPreview() { + const [form] = Form.useForm(); + const [submittedData, setSubmittedData] = useState(null); + + const onFinish = (values: any) => { + console.log('Form values:', values); + setSubmittedData(values); + }; + + return ( + +
+ {/* Text Input */} + + + + + {/* Email Input */} + + + + + {/* Phone Input */} + + + + + {/* Password Input */} + + + + + {/* Textarea (multiline) */} + + + + + + + + + {submittedData && ( + + Submitted Data: + {JSON.stringify(submittedData, null, 2)} + + )} +
+
+ ); +} \ No newline at end of file diff --git a/packages/rnr-ui/src/examples/form/index.ts b/packages/rnr-ui/src/examples/form/index.ts index 6446fdb..ffe70ce 100644 --- a/packages/rnr-ui/src/examples/form/index.ts +++ b/packages/rnr-ui/src/examples/form/index.ts @@ -1,3 +1,8 @@ export * from './form-basic'; export * from './form-with-validation'; +export * from './form-field-types'; +export * from './form-custom-validation'; +export * from './form-dynamic-fields'; +export * from './form-field-dependencies'; +export * from './form-async-validation'; diff --git a/packages/rnr-ui/src/examples/index.ts b/packages/rnr-ui/src/examples/index.ts index f1ee010..b260666 100644 --- a/packages/rnr-ui/src/examples/index.ts +++ b/packages/rnr-ui/src/examples/index.ts @@ -2,3 +2,8 @@ export * from './red-button/red-button-primary'; export * from './red-button/red-button-secondary'; export * from './form/form-basic'; export * from './form/form-with-validation'; +export * from './form/form-field-types'; +export * from './form/form-custom-validation'; +export * from './form/form-dynamic-fields'; +export * from './form/form-field-dependencies'; +export * from './form/form-async-validation'; diff --git a/packages/utils/package.json b/packages/utils/package.json index 4dbf71a..bf3ac64 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -26,10 +26,10 @@ "@rnr/config": "workspace:*", "@tsconfig/recommended": "^1.0.1", "@types/node": "^22.10.1", - "@types/react": "~19.0.14", + "@types/react": "^19.1.0", "@vitest/coverage-v8": "^2.1.4", - "react": "19.0.0", - "react-native": "0.79.5", + "react": "19.1.0", + "react-native": "0.81.5", "vitest": "^2.1.4" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7f10ae5..6e1137b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,13 +34,13 @@ importers: dependencies: '@radix-ui/react-select': specifier: ^2.2.5 - version: 2.2.6(@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) + version: 2.2.6(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.4(@types/react@19.0.14)(react@19.0.0) + version: 1.2.4(@types/react@19.2.2)(react@19.1.0) '@radix-ui/react-tabs': specifier: ^1.1.12 - version: 1.1.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) + version: 1.1.13(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@rnr/rnr-ui': specifier: workspace:* version: link:../../packages/rnr-ui @@ -55,46 +55,46 @@ importers: version: 2.1.1 cookies-next: specifier: 6.0.0 - version: 6.0.0(next@15.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + version: 6.0.0(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) fumadocs-core: specifier: 14.7.7 - version: 14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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) + version: 14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) fumadocs-docgen: specifier: 2.1.0 version: 2.1.0 fumadocs-mdx: specifier: 11.7.3 - version: 11.7.3(fumadocs-core@14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + version: 11.7.3(fumadocs-core@14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) fumadocs-ui: specifier: 14.7.7 - version: 14.7.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(fumadocs-core@14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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.4.5(@babel/core@7.28.5)(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.18) + version: 14.7.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(fumadocs-core@14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)) lucide-react: specifier: ^0.471.1 - version: 0.471.2(react@19.0.0) + version: 0.471.2(react@19.1.0) nativewind: - specifier: ^4.1.23 - version: 4.2.1(react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.18) + specifier: ^4.2.1 + version: 4.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)) next: specifier: 15.4.5 - version: 15.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) qrcode.react: specifier: ^4.2.0 - version: 4.2.0(react@19.0.0) + version: 4.2.0(react@19.1.0) raf: specifier: ^3.4.1 version: 3.4.1 react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 19.1.0 + version: 19.1.0 react-dom: - specifier: 19.0.0 - version: 19.0.0(react@19.0.0) + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) react-native: - specifier: 0.79.5 - version: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.81.5 + version: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) react-native-web: specifier: ~0.21.0 - version: 0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) remark-variables: specifier: ^1.4.9 version: 1.4.9 @@ -106,7 +106,7 @@ importers: version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.18(yaml@2.8.1)) devDependencies: '@rnr/config': specifier: workspace:* @@ -118,11 +118,11 @@ importers: specifier: 22.10.5 version: 22.10.5 '@types/react': - specifier: 19.0.14 - version: 19.0.14 + specifier: ^19.1.0 + version: 19.2.2 '@types/react-dom': - specifier: 19.1.5 - version: 19.1.5(@types/react@19.0.14) + specifier: ^19.1.0 + version: 19.1.5(@types/react@19.2.2) autoprefixer: specifier: ^10.4.20 version: 10.4.21(postcss@8.5.6) @@ -140,115 +140,109 @@ importers: version: 4.0.2(webpack@5.102.1) tailwindcss: specifier: ^3.4.14 - version: 3.4.18 + version: 3.4.18(yaml@2.8.1) typescript: specifier: ^5.8.3 version: 5.9.3 apps/showcase: dependencies: - '@expo-google-fonts/geist': - specifier: ^0.4.0 - version: 0.4.1 + '@expo/metro-runtime': + specifier: ^6.1.2 + version: 6.1.2(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) '@react-navigation/native': specifier: ^7.0.0 - version: 7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@rn-primitives/portal': + specifier: ~1.3.0 + version: 1.3.0(@types/react@19.2.2)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)) '@rn-primitives/slot': - specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rnr/rnr-ui': - specifier: workspace:* - version: link:../../packages/rnr-ui - '@rnr/utils': - specifier: workspace:* - version: link:../../packages/utils - '@shopify/flash-list': - specifier: 1.7.6 - version: 1.7.6(@babel/runtime@7.28.4)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^1.2.0 + version: 1.2.0(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) 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 expo: - specifier: ^53.0.20 - version: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-font: - specifier: ~13.3.2 - version: 13.3.2(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@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.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ^54.0.0 + version: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) expo-linking: - specifier: ~7.1.7 - version: 7.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~8.0.8 + version: 8.0.8(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) expo-router: - specifier: ~5.1.4 - version: 5.1.7(d5257ea1f9f64f6839da01bcb4afd05f) + specifier: ~6.0.10 + version: 6.0.14(@expo/metro-runtime@6.1.2)(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(expo-constants@18.0.10)(expo-linking@8.0.8)(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.24.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) expo-splash-screen: - specifier: ~0.30.10 - version: 0.30.10(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) + specifier: ~31.0.10 + version: 31.0.10(expo@54.0.23) expo-status-bar: - specifier: ~2.2.3 - version: 2.2.3(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-updates: - specifier: ~0.28.17 - version: 0.28.17(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) + specifier: ~3.0.8 + version: 3.0.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-system-ui: + specifier: ~6.0.7 + version: 6.0.8(expo@54.0.23)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) lucide-react-native: - specifier: ^0.511.0 - version: 0.511.0(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ^0.545.0 + version: 0.545.0(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) nativewind: - specifier: ^4.1.23 - version: 4.2.1(react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.18) + specifier: ^4.2.1 + version: 4.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)) react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 19.1.0 + version: 19.1.0 react-dom: - specifier: 19.0.0 - version: 19.0.0(react@19.0.0) + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) react-native: - specifier: 0.79.5 - version: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-gesture-handler: - specifier: ~2.24.0 - version: 2.24.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: 0.81.5 + version: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) react-native-reanimated: - specifier: ~3.17.5 - version: 3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~4.1.1 + version: 4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) react-native-safe-area-context: - specifier: 5.4.0 - version: 5.4.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~5.6.0 + version: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) react-native-screens: - specifier: ^4.11.1 - version: 4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: ~4.16.0 + version: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) react-native-svg: - specifier: 15.11.2 - version: 15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + specifier: 15.12.1 + version: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) react-native-web: - specifier: ~0.21.0 - version: 0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - shadcn: - specifier: 2.9.2 - version: 2.9.2(@types/node@22.10.5)(typescript@5.9.3) + specifier: ^0.21.0 + version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react-native-worklets: + specifier: 0.5.1 + version: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) tailwind-merge: - specifier: ^2.2.1 - version: 2.6.0 + specifier: ^3.3.1 + version: 3.3.1 + tailwindcss: + specifier: ^3.4.14 + version: 3.4.18(yaml@2.8.1) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.18(yaml@2.8.1)) devDependencies: '@babel/core': specifier: ^7.26.0 version: 7.28.5 '@types/react': - specifier: ~19.0.14 - version: 19.0.14 - tailwindcss: - specifier: ^3.4.14 - version: 3.4.18 + specifier: ^19.1.0 + version: 19.2.2 + '@types/react-dom': + specifier: ^19.1.0 + version: 19.1.5(@types/react@19.2.2) + prettier: + specifier: ^3.6.2 + version: 3.6.2 + prettier-plugin-tailwindcss: + specifier: ^0.6.14 + version: 0.6.14(prettier@3.6.2) typescript: - specifier: ^5.8.3 + specifier: ~5.9.2 version: 5.9.3 packages/config: @@ -273,13 +267,13 @@ importers: dependencies: '@react-navigation/native': specifier: ^7.0.0 - version: 7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.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.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@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.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) '@rn-primitives/slot': specifier: ~1.2.0 - version: 1.2.0(react-native-web@0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + version: 1.2.0(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -287,39 +281,45 @@ importers: specifier: ^2.1.0 version: 2.1.1 nativewind: - specifier: ^4.1.23 - version: 4.2.1(react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.18) + specifier: ^4.2.1 + version: 4.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)) rc-field-form: specifier: ^2.7.1 - version: 2.7.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react-dom: - specifier: '*' - version: 19.0.0(react@19.0.0) + version: 2.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-native-web: specifier: '*' - version: 0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tailwind-merge: specifier: ^2.2.1 version: 2.6.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.4.18) + version: 1.0.7(tailwindcss@3.4.18(yaml@2.8.1)) devDependencies: '@tsconfig/recommended': specifier: ^1.0.1 version: 1.0.11 '@types/react': - specifier: ~19.0.14 - version: 19.0.14 + specifier: ^19.1.0 + version: 19.2.2 + '@types/react-dom': + specifier: ^19.1.0 + version: 19.1.5(@types/react@19.2.2) react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 19.1.0 + version: 19.1.0 + react-dom: + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) react-native: - specifier: 0.79.5 - version: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.81.5 + version: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-worklets: + specifier: 0.5.1 + version: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) tailwindcss: specifier: ^3.4.14 - version: 3.4.18 + version: 3.4.18(yaml@2.8.1) packages/utils: devDependencies: @@ -333,17 +333,17 @@ importers: specifier: ^22.10.1 version: 22.10.5 '@types/react': - specifier: ~19.0.14 - version: 19.0.14 + specifier: ^19.1.0 + version: 19.2.2 '@vitest/coverage-v8': specifier: ^2.1.4 version: 2.1.9(vitest@2.1.9(@types/node@22.10.5)(lightningcss@1.27.0)(msw@2.12.0(@types/node@22.10.5)(typescript@5.9.3))(terser@5.44.1)) react: - specifier: 19.0.0 - version: 19.0.0 + specifier: 19.1.0 + version: 19.1.0 react-native: - specifier: 0.79.5 - version: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + specifier: 0.81.5 + version: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) vitest: specifier: ^2.1.4 version: 2.1.9(@types/node@22.10.5)(lightningcss@1.27.0)(msw@2.12.0(@types/node@22.10.5)(typescript@5.9.3))(terser@5.44.1) @@ -641,6 +641,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-class-static-block@7.28.3': + resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + '@babel/plugin-transform-classes@7.28.4': resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} engines: {node: '>=6.9.0'} @@ -1215,51 +1221,87 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@expo-google-fonts/geist@0.4.1': - resolution: {integrity: sha512-UOBwoTJkKC0ViMOS8gjlQyUcT/5PX0phCroz/8z0DP1+7FcoD1RGGeG//nVQYWbT3y/ze4XoE63gSunml9Wdbw==} - - '@expo/cli@0.24.22': - resolution: {integrity: sha512-cEg6/F8ZWjoVkEwm0rXKReWbsCUROFbLFBYht+d5RzHnDwJoTX4QWJKx4m+TGNDPamRUIGw36U4z41Fvev0XmA==} + '@expo/cli@54.0.16': + resolution: {integrity: sha512-hY/OdRaJMs5WsVPuVSZ+RLH3VObJmL/pv5CGCHEZHN2PxZjSZSdctyKV8UcFBXTF0yIKNAJ9XLs1dlNYXHh4Cw==} hasBin: true + peerDependencies: + expo: '*' + expo-router: '*' + react-native: '*' + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true '@expo/code-signing-certificates@0.0.5': resolution: {integrity: sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==} - '@expo/config-plugins@10.1.2': - resolution: {integrity: sha512-IMYCxBOcnuFStuK0Ay+FzEIBKrwW8OVUMc65+v0+i7YFIIe8aL342l7T4F8lR4oCfhXn7d6M5QPgXvjtc/gAcw==} + '@expo/config-plugins@54.0.2': + resolution: {integrity: sha512-jD4qxFcURQUVsUFGMcbo63a/AnviK8WUGard+yrdQE3ZrB/aurn68SlApjirQQLEizhjI5Ar2ufqflOBlNpyPg==} - '@expo/config-types@53.0.5': - resolution: {integrity: sha512-kqZ0w44E+HEGBjy+Lpyn0BVL5UANg/tmNixxaRMLS6nf37YsDrLk2VMAmeKMMk5CKG0NmOdVv3ngeUjRQMsy9g==} + '@expo/config-types@54.0.8': + resolution: {integrity: sha512-lyIn/x/Yz0SgHL7IGWtgTLg6TJWC9vL7489++0hzCHZ4iGjVcfZmPTUfiragZ3HycFFj899qN0jlhl49IHa94A==} - '@expo/config@11.0.13': - resolution: {integrity: sha512-TnGb4u/zUZetpav9sx/3fWK71oCPaOjZHoVED9NaEncktAd0Eonhq5NUghiJmkUGt3gGSjRAEBXiBbbY9/B1LA==} + '@expo/config@12.0.10': + resolution: {integrity: sha512-lJMof5Nqakq1DxGYlghYB/ogSBjmv4Fxn1ovyDmcjlRsQdFCXgu06gEUogkhPtc9wBt9WlTTfqENln5HHyLW6w==} '@expo/devcert@1.2.0': resolution: {integrity: sha512-Uilcv3xGELD5t/b0eM4cxBFEKQRIivB3v7i+VhWLV/gL98aw810unLKKJbGAxAIhY6Ipyz8ChWibFsKFXYwstA==} - '@expo/env@1.0.7': - resolution: {integrity: sha512-qSTEnwvuYJ3umapO9XJtrb1fAqiPlmUUg78N0IZXXGwQRt+bkp0OBls+Y5Mxw/Owj8waAM0Z3huKKskRADR5ow==} + '@expo/devtools@0.1.7': + resolution: {integrity: sha512-dfIa9qMyXN+0RfU6SN4rKeXZyzKWsnz6xBSDccjL4IRiE+fQ0t84zg0yxgN4t/WK2JU5v6v4fby7W7Crv9gJvA==} + peerDependencies: + react: '*' + react-native: '*' + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true - '@expo/fingerprint@0.13.4': - resolution: {integrity: sha512-MYfPYBTMfrrNr07DALuLhG6EaLVNVrY/PXjEzsjWdWE4ZFn0yqI0IdHNkJG7t1gePT8iztHc7qnsx+oo/rDo6w==} + '@expo/env@2.0.7': + resolution: {integrity: sha512-BNETbLEohk3HQ2LxwwezpG8pq+h7Fs7/vAMP3eAtFT1BCpprLYoBBFZH7gW4aqGfqOcVP4Lc91j014verrYNGg==} + + '@expo/fingerprint@0.15.3': + resolution: {integrity: sha512-8YPJpEYlmV171fi+t+cSLMX1nC5ngY9j2FiN70dHldLpd6Ct6ouGhk96svJ4BQZwsqwII2pokwzrDAwqo4Z0FQ==} hasBin: true - '@expo/image-utils@0.7.6': - resolution: {integrity: sha512-GKnMqC79+mo/1AFrmAcUcGfbsXXTRqOMNS1umebuevl3aaw+ztsYEFEiuNhHZW7PQ3Xs3URNT513ZxKhznDscw==} + '@expo/image-utils@0.8.7': + resolution: {integrity: sha512-SXOww4Wq3RVXLyOaXiCCuQFguCDh8mmaHBv54h/R29wGl4jRY8GEyQEx8SypV/iHt1FbzsU/X3Qbcd9afm2W2w==} '@expo/json-file@10.0.7': resolution: {integrity: sha512-z2OTC0XNO6riZu98EjdNHC05l51ySeTto6GP7oSQrCvQgG9ARBwD1YvMQaVZ9wU7p/4LzSf1O7tckL3B45fPpw==} - '@expo/json-file@9.1.5': - resolution: {integrity: sha512-prWBhLUlmcQtvN6Y7BpW2k9zXGd3ySa3R6rAguMJkp1z22nunLN64KYTUWfijFlprFoxm9r2VNnGkcbndAlgKA==} + '@expo/mcp-tunnel@0.1.0': + resolution: {integrity: sha512-rJ6hl0GnIZj9+ssaJvFsC7fwyrmndcGz+RGFzu+0gnlm78X01957yjtHgjcmnQAgL5hWEOR6pkT0ijY5nU5AWw==} + peerDependencies: + '@modelcontextprotocol/sdk': ^1.13.2 + peerDependenciesMeta: + '@modelcontextprotocol/sdk': + optional: true - '@expo/metro-config@0.20.17': - resolution: {integrity: sha512-lpntF2UZn5bTwrPK6guUv00Xv3X9mkN3YYla+IhEHiYXWyG7WKOtDU0U4KR8h3ubkZ6SPH3snDyRyAzMsWtZFA==} + '@expo/metro-config@54.0.9': + resolution: {integrity: sha512-CRI4WgFXrQ2Owyr8q0liEBJveUIF9DcYAKadMRsJV7NxGNBdrIIKzKvqreDfsGiRqivbLsw6UoNb3UE7/SvPfg==} + peerDependencies: + expo: '*' + peerDependenciesMeta: + expo: + optional: true - '@expo/metro-runtime@5.0.5': - resolution: {integrity: sha512-P8UFTi+YsmiD1BmdTdiIQITzDMcZgronsA3RTQ4QKJjHM3bas11oGzLQOnFaIZnlEV8Rrr3m1m+RHxvnpL+t/A==} + '@expo/metro-runtime@6.1.2': + resolution: {integrity: sha512-nvM+Qv45QH7pmYvP8JB1G8JpScrWND3KrMA6ZKe62cwwNiX/BjHU28Ear0v/4bQWXlOY0mv6B8CDIm8JxXde9g==} peerDependencies: + expo: '*' + react: '*' + react-dom: '*' react-native: '*' + peerDependenciesMeta: + react-dom: + optional: true + + '@expo/metro@54.1.0': + resolution: {integrity: sha512-MgdeRNT/LH0v1wcO0TZp9Qn8zEF0X2ACI0wliPtv5kXVbXWI+yK9GyrstwLAiTXlULKVIg3HVSCCvmLu0M3tnw==} '@expo/osascript@2.3.7': resolution: {integrity: sha512-IClSOXxR0YUFxIriUJVqyYki7lLMIHrrzOaP01yxAL1G8pj2DWV5eW1y5jSzIcIfSCNhtGsshGd1tU/AYup5iQ==} @@ -1268,11 +1310,13 @@ packages: '@expo/package-manager@1.9.8': resolution: {integrity: sha512-4/I6OWquKXYnzo38pkISHCOCOXxfeEmu4uDoERq1Ei/9Ur/s9y3kLbAamEkitUkDC7gHk1INxRWEfFNzGbmOrA==} - '@expo/plist@0.3.5': - resolution: {integrity: sha512-9RYVU1iGyCJ7vWfg3e7c/NVyMFs8wbl+dMWZphtFtsqyN9zppGREU3ctlD3i8KUE0sCUTVnLjCWr+VeUIDep2g==} + '@expo/plist@0.4.7': + resolution: {integrity: sha512-dGxqHPvCZKeRKDU1sJZMmuyVtcASuSYh1LPFVaM1DuffqPL36n6FMEL0iUqq2Tx3xhWk8wCnWl34IKplUjJDdA==} - '@expo/prebuild-config@9.0.12': - resolution: {integrity: sha512-AKH5Scf+gEMgGxZZaimrJI2wlUJlRoqzDNn7/rkhZa5gUTnO4l6slKak2YdaH+nXlOWCNfAQWa76NnpQIfmv6Q==} + '@expo/prebuild-config@54.0.6': + resolution: {integrity: sha512-xowuMmyPNy+WTNq+YX0m0EFO/Knc68swjThk4dKivgZa8zI1UjvFXOBIOp8RX4ljCXLzwxQJM5oBBTvyn+59ZA==} + peerDependencies: + expo: '*' '@expo/schema-utils@0.1.7': resolution: {integrity: sha512-jWHoSuwRb5ZczjahrychMJ3GWZu54jK9ulNdh1d4OzAEq672K9E5yOlnlBsfIHWHGzUAT+0CL7Yt1INiXTz68g==} @@ -1280,9 +1324,6 @@ packages: '@expo/sdk-runtime-versions@1.0.0': resolution: {integrity: sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==} - '@expo/server@0.6.3': - resolution: {integrity: sha512-Ea7NJn9Xk1fe4YeJ86rObHSv/bm3u/6WiQPXEqXJ2GrfYpVab2Swoh9/PnSM3KjR64JAgKjArDn1HiPjITCfHA==} - '@expo/spawn-async@1.7.2': resolution: {integrity: sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==} engines: {node: '>=12'} @@ -1290,10 +1331,10 @@ packages: '@expo/sudo-prompt@9.3.2': resolution: {integrity: sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw==} - '@expo/vector-icons@14.1.0': - resolution: {integrity: sha512-7T09UE9h8QDTsUeMGymB4i+iqvtEeaO5VvUjryFB4tugDTG/bkzViWA74hm5pfjjDEhYMXWaX112mcvhccmIwQ==} + '@expo/vector-icons@15.0.3': + resolution: {integrity: sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA==} peerDependencies: - expo-font: '*' + expo-font: '>=14.0.4' react: '*' react-native: '*' @@ -2174,79 +2215,65 @@ packages: resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} engines: {node: '>=14.x'} - '@react-native/assets-registry@0.79.5': - resolution: {integrity: sha512-N4Kt1cKxO5zgM/BLiyzuuDNquZPiIgfktEQ6TqJ/4nKA8zr4e8KJgU6Tb2eleihDO4E24HmkvGc73naybKRz/w==} - engines: {node: '>=18'} - - '@react-native/babel-plugin-codegen@0.79.6': - resolution: {integrity: sha512-CS5OrgcMPixOyUJ/Sk/HSsKsKgyKT5P7y3CojimOQzWqRZBmoQfxdST4ugj7n1H+ebM2IKqbgovApFbqXsoX0g==} - engines: {node: '>=18'} + '@react-native/assets-registry@0.81.5': + resolution: {integrity: sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w==} + engines: {node: '>= 20.19.4'} - '@react-native/babel-preset@0.79.6': - resolution: {integrity: sha512-H+FRO+r2Ql6b5IwfE0E7D52JhkxjeGSBSUpCXAI5zQ60zSBJ54Hwh2bBJOohXWl4J+C7gKYSAd2JHMUETu+c/A==} - engines: {node: '>=18'} - peerDependencies: - '@babel/core': '*' + '@react-native/babel-plugin-codegen@0.81.5': + resolution: {integrity: sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ==} + engines: {node: '>= 20.19.4'} - '@react-native/codegen@0.79.5': - resolution: {integrity: sha512-FO5U1R525A1IFpJjy+KVznEinAgcs3u7IbnbRJUG9IH/MBXi2lEU2LtN+JarJ81MCfW4V2p0pg6t/3RGHFRrlQ==} - engines: {node: '>=18'} + '@react-native/babel-preset@0.81.5': + resolution: {integrity: sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA==} + engines: {node: '>= 20.19.4'} peerDependencies: '@babel/core': '*' - '@react-native/codegen@0.79.6': - resolution: {integrity: sha512-iRBX8Lgbqypwnfba7s6opeUwVyaR23mowh9ILw7EcT2oLz3RqMmjJdrbVpWhGSMGq2qkPfqAH7bhO8C7O+xfjQ==} - engines: {node: '>=18'} + '@react-native/codegen@0.81.5': + resolution: {integrity: sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g==} + engines: {node: '>= 20.19.4'} peerDependencies: '@babel/core': '*' - '@react-native/community-cli-plugin@0.79.5': - resolution: {integrity: sha512-ApLO1ARS8JnQglqS3JAHk0jrvB+zNW3dvNJyXPZPoygBpZVbf8sjvqeBiaEYpn8ETbFWddebC4HoQelDndnrrA==} - engines: {node: '>=18'} + '@react-native/community-cli-plugin@0.81.5': + resolution: {integrity: sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw==} + engines: {node: '>= 20.19.4'} peerDependencies: '@react-native-community/cli': '*' + '@react-native/metro-config': '*' peerDependenciesMeta: '@react-native-community/cli': optional: true + '@react-native/metro-config': + optional: true - '@react-native/debugger-frontend@0.79.5': - resolution: {integrity: sha512-WQ49TRpCwhgUYo5/n+6GGykXmnumpOkl4Lr2l2o2buWU9qPOwoiBqJAtmWEXsAug4ciw3eLiVfthn5ufs0VB0A==} - engines: {node: '>=18'} - - '@react-native/debugger-frontend@0.79.6': - resolution: {integrity: sha512-lIK/KkaH7ueM22bLO0YNaQwZbT/oeqhaghOvmZacaNVbJR1Cdh/XAqjT8FgCS+7PUnbxA8B55NYNKGZG3O2pYw==} - engines: {node: '>=18'} - - '@react-native/dev-middleware@0.79.5': - resolution: {integrity: sha512-U7r9M/SEktOCP/0uS6jXMHmYjj4ESfYCkNAenBjFjjsRWekiHE+U/vRMeO+fG9gq4UCcBAUISClkQCowlftYBw==} - engines: {node: '>=18'} + '@react-native/debugger-frontend@0.81.5': + resolution: {integrity: sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w==} + engines: {node: '>= 20.19.4'} - '@react-native/dev-middleware@0.79.6': - resolution: {integrity: sha512-BK3GZBa9c7XSNR27EDRtxrgyyA3/mf1j3/y+mPk7Ac0Myu85YNrXnC9g3mL5Ytwo0g58TKrAIgs1fF2Q5Mn6mQ==} - engines: {node: '>=18'} + '@react-native/dev-middleware@0.81.5': + resolution: {integrity: sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA==} + engines: {node: '>= 20.19.4'} - '@react-native/gradle-plugin@0.79.5': - resolution: {integrity: sha512-K3QhfFNKiWKF3HsCZCEoWwJPSMcPJQaeqOmzFP4RL8L3nkpgUwn74PfSCcKHxooVpS6bMvJFQOz7ggUZtNVT+A==} - engines: {node: '>=18'} + '@react-native/gradle-plugin@0.81.5': + resolution: {integrity: sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg==} + engines: {node: '>= 20.19.4'} - '@react-native/js-polyfills@0.79.5': - resolution: {integrity: sha512-a2wsFlIhvd9ZqCD5KPRsbCQmbZi6KxhRN++jrqG0FUTEV5vY7MvjjUqDILwJd2ZBZsf7uiDuClCcKqA+EEdbvw==} - engines: {node: '>=18'} + '@react-native/js-polyfills@0.81.5': + resolution: {integrity: sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w==} + engines: {node: '>= 20.19.4'} '@react-native/normalize-colors@0.74.89': resolution: {integrity: sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg==} - '@react-native/normalize-colors@0.79.5': - resolution: {integrity: sha512-nGXMNMclZgzLUxijQQ38Dm3IAEhgxuySAWQHnljFtfB0JdaMwpe0Ox9H7Tp2OgrEA+EMEv+Od9ElKlHwGKmmvQ==} + '@react-native/normalize-colors@0.81.5': + resolution: {integrity: sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g==} - '@react-native/normalize-colors@0.79.6': - resolution: {integrity: sha512-0v2/ruY7eeKun4BeKu+GcfO+SHBdl0LJn4ZFzTzjHdWES0Cn+ONqKljYaIv8p9MV2Hx/kcdEvbY4lWI34jC/mQ==} - - '@react-native/virtualized-lists@0.79.5': - resolution: {integrity: sha512-EUPM2rfGNO4cbI3olAbhPkIt3q7MapwCwAJBzUfWlZ/pu0PRNOnMQ1IvaXTf3TpeozXV52K1OdprLEI/kI5eUA==} - engines: {node: '>=18'} + '@react-native/virtualized-lists@0.81.5': + resolution: {integrity: sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw==} + engines: {node: '>= 20.19.4'} peerDependencies: - '@types/react': ^19.0.0 + '@types/react': ^19.1.0 react: '*' react-native: '*' peerDependenciesMeta: @@ -2309,6 +2336,18 @@ packages: react-native-web: optional: true + '@rn-primitives/portal@1.3.0': + resolution: {integrity: sha512-a2DSce7TcSfcs0cCngLadAJOvx/+mdH9NRu+GxkX8NPRsGGhJvDEOqouMgDqLwx7z9mjXoUaZcwaVcemUSW9/A==} + peerDependencies: + react: '*' + react-native: '*' + react-native-web: '*' + peerDependenciesMeta: + react-native: + optional: true + react-native-web: + optional: true + '@rn-primitives/slot@1.2.0': resolution: {integrity: sha512-cpbn+JLjSeq3wcA4uqgFsUimMrWYWx2Ks7r5rkwd1ds1utxynsGkLOKpYVQkATwWrYhtcoF1raxIKEqXuMN+/w==} peerDependencies: @@ -2476,13 +2515,6 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@shopify/flash-list@1.7.6': - resolution: {integrity: sha512-0kuuAbWgy4YSlN05mt0ScvxK8uiDixMsICWvDed+LTxvZ5+5iRyt3M8cRLUroB8sfiZlJJZWlxHrx0frBpsYOQ==} - peerDependencies: - '@babel/runtime': '*' - react: '*' - react-native: '*' - '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -2575,8 +2607,8 @@ packages: peerDependencies: '@types/react': ^19.0.0 - '@types/react@19.0.14': - resolution: {integrity: sha512-ixLZ7zG7j1fM0DijL9hDArwhwcCb4vqmePgwtV0GfnkHRSCUEv4LvzarcTdhoqgyMznUx/EhoTUv31CKZzkQlw==} + '@types/react@19.2.2': + resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -2960,9 +2992,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - arg@4.1.0: - resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==} - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -3088,11 +3117,14 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-react-native-web@0.19.13: - resolution: {integrity: sha512-4hHoto6xaN23LCyZgL9LJZc3olmAxd7b6jDzlZnKXAh4rRAbZRKNBJoOOdp46OBqgy+K0t0guTj5/mhA8inymQ==} + babel-plugin-react-compiler@1.0.0: + resolution: {integrity: sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==} - babel-plugin-syntax-hermes-parser@0.25.1: - resolution: {integrity: sha512-IVNpGzboFLfXZUAwkLFcI/bnqVbwky0jP3eBno4HKtqvQJAHBLdgxiG6lQ4to0+Q/YCN3PO0od5NZwIKyY4REQ==} + babel-plugin-react-native-web@0.21.2: + resolution: {integrity: sha512-SPD0J6qjJn8231i0HZhlAGH6NORe+QvRSQM2mwQEzJ2Fb3E4ruWTiiicPlHjmeWShDXLcvoorOCXjeR7k/lyWA==} + + babel-plugin-syntax-hermes-parser@0.29.1: + resolution: {integrity: sha512-2WFYnoWGdmih1I1J5eIqxATOeycOqRwYxAQBu3cUu/rhwInwHUg7k60AFNbuGjSDL8tje5GDrAnxzRLcu2pYcA==} babel-plugin-transform-flow-enums@0.0.2: resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} @@ -3102,12 +3134,16 @@ packages: peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 - babel-preset-expo@13.2.4: - resolution: {integrity: sha512-3IKORo3KR+4qtLdCkZNDj8KeA43oBn7RRQejFGWfiZgu/NeaRUSri8YwYjZqybm7hn3nmMv9OLahlvXBX23o5Q==} + babel-preset-expo@54.0.7: + resolution: {integrity: sha512-JENWk0bvxW4I1ftveO8GRtX2t2TH6N4Z0TPvIHxroZ/4SswUfyNsUNbbP7Fm4erj3ar/JHGri5kTZ+s3xdjHZw==} peerDependencies: - babel-plugin-react-compiler: ^19.0.0-beta-e993439-20250405 + '@babel/runtime': ^7.20.0 + expo: '*' + react-refresh: '>=0.14.0 <1.0.0' peerDependenciesMeta: - babel-plugin-react-compiler: + '@babel/runtime': + optional: true + expo: optional: true babel-preset-jest@29.6.3: @@ -3212,18 +3248,6 @@ packages: 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'} - - caller-path@2.0.0: - resolution: {integrity: sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==} - engines: {node: '>=4'} - - callsites@2.0.0: - resolution: {integrity: sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==} - engines: {node: '>=4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -3452,10 +3476,6 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} - cosmiconfig@5.2.1: - resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} - engines: {node: '>=4'} - cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -3951,113 +3971,115 @@ packages: resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} engines: {node: '>=12.0.0'} - expo-asset@11.1.7: - resolution: {integrity: sha512-b5P8GpjUh08fRCf6m5XPVAh7ra42cQrHBIMgH2UXP+xsj4Wufl6pLy6jRF5w6U7DranUMbsXm8TOyq4EHy7ADg==} + expo-asset@12.0.9: + resolution: {integrity: sha512-vrdRoyhGhBmd0nJcssTSk1Ypx3Mbn/eXaaBCQVkL0MJ8IOZpAObAjfD5CTy8+8RofcHEQdh3wwZVCs7crvfOeg==} peerDependencies: expo: '*' react: '*' react-native: '*' - expo-constants@17.1.7: - resolution: {integrity: sha512-byBjGsJ6T6FrLlhOBxw4EaiMXrZEn/MlUYIj/JAd+FS7ll5X/S4qVRbIimSJtdW47hXMq0zxPfJX6njtA56hHA==} + expo-constants@18.0.10: + resolution: {integrity: sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw==} peerDependencies: expo: '*' react-native: '*' - expo-eas-client@0.14.4: - resolution: {integrity: sha512-TSL1BbBFIuXchJmPgbPnB7cGpOOuSGJcQ/L7gij/+zPjExwvKm5ckA5dlSulwoFhH8zQt4vb7bfISPSAWQVWBw==} - - expo-file-system@18.1.11: - resolution: {integrity: sha512-HJw/m0nVOKeqeRjPjGdvm+zBi5/NxcdPf8M8P3G2JFvH5Z8vBWqVDic2O58jnT1OFEy0XXzoH9UqFu7cHg9DTQ==} + expo-file-system@19.0.17: + resolution: {integrity: sha512-WwaS01SUFrxBnExn87pg0sCTJjZpf2KAOzfImG0o8yhkU7fbYpihpl/oocXBEsNbj58a8hVt1Y4CVV5c1tzu/g==} peerDependencies: expo: '*' react-native: '*' - expo-font@13.3.2: - resolution: {integrity: sha512-wUlMdpqURmQ/CNKK/+BIHkDA5nGjMqNlYmW0pJFXY/KE/OG80Qcavdu2sHsL4efAIiNGvYdBS10WztuQYU4X0A==} + expo-font@14.0.9: + resolution: {integrity: sha512-xCoQbR/36qqB6tew/LQ6GWICpaBmHLhg/Loix5Rku/0ZtNaXMJv08M9o1AcrdiGTn/Xf/BnLu6DgS45cWQEHZg==} peerDependencies: expo: '*' react: '*' + react-native: '*' - expo-haptics@14.1.4: - resolution: {integrity: sha512-QZdE3NMX74rTuIl82I+n12XGwpDWKb8zfs5EpwsnGi/D/n7O2Jd4tO5ivH+muEG/OCJOMq5aeaVDqqaQOhTkcA==} - peerDependencies: - expo: '*' - - expo-json-utils@0.15.0: - resolution: {integrity: sha512-duRT6oGl80IDzH2LD2yEFWNwGIC2WkozsB6HF3cDYNoNNdUvFk6uN3YiwsTsqVM/D0z6LEAQ01/SlYvN+Fw0JQ==} - - expo-keep-awake@14.1.4: - resolution: {integrity: sha512-wU9qOnosy4+U4z/o4h8W9PjPvcFMfZXrlUoKTMBW7F4pLqhkkP/5G4EviPZixv4XWFMjn1ExQ5rV6BX8GwJsWA==} + expo-keep-awake@15.0.7: + resolution: {integrity: sha512-CgBNcWVPnrIVII5G54QDqoE125l+zmqR4HR8q+MQaCfHet+dYpS5vX5zii/RMayzGN4jPgA4XYIQ28ePKFjHoA==} peerDependencies: expo: '*' react: '*' - expo-linking@7.1.7: - resolution: {integrity: sha512-ZJaH1RIch2G/M3hx2QJdlrKbYFUTOjVVW4g39hfxrE5bPX9xhZUYXqxqQtzMNl1ylAevw9JkgEfWbBWddbZ3UA==} + expo-linking@8.0.8: + resolution: {integrity: sha512-MyeMcbFDKhXh4sDD1EHwd0uxFQNAc6VCrwBkNvvvufUsTYFq3glTA9Y8a+x78CPpjNqwNAamu74yIaIz7IEJyg==} peerDependencies: react: '*' react-native: '*' - expo-manifests@0.16.6: - resolution: {integrity: sha512-1A+do6/mLUWF9xd3uCrlXr9QFDbjbfqAYmUy8UDLOjof1lMrOhyeC4Yi6WexA/A8dhZEpIxSMCKfn7G4aHAh4w==} - peerDependencies: - expo: '*' - - expo-modules-autolinking@2.1.14: - resolution: {integrity: sha512-nT5ERXwc+0ZT/pozDoJjYZyUQu5RnXMk9jDGm5lg+PiKvsrCTSA/2/eftJGMxLkTjVI2MXp5WjSz3JRjbA7UXA==} + expo-modules-autolinking@3.0.21: + resolution: {integrity: sha512-pOtPDLln3Ju8DW1zRW4OwZ702YqZ8g+kM/tEY1sWfv22kWUtxkvK+ytRDRpRdnKEnC28okbhWqeMnmVkSFzP6Q==} hasBin: true - expo-modules-core@2.5.0: - resolution: {integrity: sha512-aIbQxZE2vdCKsolQUl6Q9Farlf8tjh/ROR4hfN1qT7QBGPl1XrJGnaOKkcgYaGrlzCPg/7IBe0Np67GzKMZKKQ==} + expo-modules-core@3.0.25: + resolution: {integrity: sha512-0P8PT8UV6c5/+p8zeVM/FXvBgn/ErtGcMaasqUgbzzBUg94ktbkIrij9t9reGCrir03BYt/Bcpv+EQtYC8JOug==} + peerDependencies: + react: '*' + react-native: '*' - expo-router@5.1.7: - resolution: {integrity: sha512-E7hIqTZs4Cub4sbYPeednfYPi+2cyRGMdqc5IYBJ/vC+WBKoYJ8C9eU13ZLbPz//ZybSo2Dsm7v89uFIlO2Gow==} + expo-router@6.0.14: + resolution: {integrity: sha512-vizLO4SgnMEL+PPs2dXr+etEOuksjue7yUQBCtfCEdqoDkQlB0r35zI7rS34Wt53sxKWSlM2p+038qQEpxtiFw==} peerDependencies: - '@react-navigation/drawer': ^7.3.9 - '@testing-library/jest-native': '*' + '@expo/metro-runtime': ^6.1.2 + '@react-navigation/drawer': ^7.5.0 + '@testing-library/react-native': '>= 12.0.0' expo: '*' - expo-constants: '*' - expo-linking: '*' + expo-constants: ^18.0.10 + expo-linking: ^8.0.8 + react: '*' + react-dom: '*' + react-native: '*' + react-native-gesture-handler: '*' react-native-reanimated: '*' - react-native-safe-area-context: '*' + react-native-safe-area-context: '>= 5.4.0' react-native-screens: '*' + react-native-web: '*' + react-server-dom-webpack: '>= 19.0.0' peerDependenciesMeta: '@react-navigation/drawer': optional: true - '@testing-library/jest-native': + '@testing-library/react-native': + optional: true + react-dom: + optional: true + react-native-gesture-handler: optional: true react-native-reanimated: optional: true + react-native-web: + optional: true + react-server-dom-webpack: + optional: true - expo-splash-screen@0.30.10: - resolution: {integrity: sha512-Tt9va/sLENQDQYeOQ6cdLdGvTZ644KR3YG9aRlnpcs2/beYjOX1LHT510EGzVN9ljUTg+1ebEo5GGt2arYtPjw==} + expo-server@1.0.4: + resolution: {integrity: sha512-IN06r3oPxFh3plSXdvBL7dx0x6k+0/g0bgxJlNISs6qL5Z+gyPuWS750dpTzOeu37KyBG0RcyO9cXUKzjYgd4A==} + engines: {node: '>=20.16.0'} + + expo-splash-screen@31.0.10: + resolution: {integrity: sha512-i6g9IK798mae4yvflstQ1HkgahIJ6exzTCTw4vEdxV0J2SwiW3Tj+CwRjf0te7Zsb+7dDQhBTmGZwdv00VER2A==} peerDependencies: expo: '*' - expo-status-bar@2.2.3: - resolution: {integrity: sha512-+c8R3AESBoduunxTJ8353SqKAKpxL6DvcD8VKBuh81zzJyUUbfB4CVjr1GufSJEKsMzNPXZU+HJwXx7Xh7lx8Q==} + expo-status-bar@3.0.8: + resolution: {integrity: sha512-L248XKPhum7tvREoS1VfE0H6dPCaGtoUWzRsUv7hGKdiB4cus33Rc0sxkWkoQ77wE8stlnUlL5lvmT0oqZ3ZBw==} peerDependencies: react: '*' react-native: '*' - expo-structured-headers@4.1.0: - resolution: {integrity: sha512-2X+aUNzC/qaw7/WyUhrVHNDB0uQ5rE12XA2H/rJXaAiYQSuOeU90ladaN0IJYV9I2XlhYrjXLktLXWbO7zgbag==} - - expo-updates-interface@1.1.0: - resolution: {integrity: sha512-DeB+fRe0hUDPZhpJ4X4bFMAItatFBUPjw/TVSbJsaf3Exeami+2qbbJhWkcTMoYHOB73nOIcaYcWXYJnCJXO0w==} - peerDependencies: - expo: '*' - - expo-updates@0.28.17: - resolution: {integrity: sha512-OiKDrKk6EoBRP9AoK7/4tyj9lVtHw2IfaETIFeUCHMgx5xjgKGX/jjSwqhk8N9BJgLDIy0oD0Sb0MaEbSBb3lg==} - hasBin: true + expo-system-ui@6.0.8: + resolution: {integrity: sha512-DzJYqG2fibBSLzPDL4BybGCiilYOtnI1OWhcYFwoM4k0pnEzMBt1Vj8Z67bXglDDuz2HCQPGNtB3tQft5saKqQ==} peerDependencies: expo: '*' - react: '*' + react-native: '*' + react-native-web: '*' + peerDependenciesMeta: + react-native-web: + optional: true - expo@53.0.23: - resolution: {integrity: sha512-6TOLuNCP3AsSkXBJA5W6U/7wpZUop3Q6BxHMtRD2OOgT7CCPvnYgJdnTzqU+gD1hMfcryD8Ejq9RdHbLduXohg==} + expo@54.0.23: + resolution: {integrity: sha512-b4uQoiRwQ6nwqsT2709RS15CWYNGF3eJtyr1KyLw9WuMAK7u4jjofkhRiO0+3o1C2NbV+WooyYTOZGubQQMBaQ==} hasBin: true peerDependencies: '@expo/dom-webview': '*' @@ -4354,6 +4376,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -4425,18 +4451,18 @@ packages: headers-polyfill@4.0.3: resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - hermes-estree@0.29.1: resolution: {integrity: sha512-jl+x31n4/w+wEqm0I2r4CMimukLbLQEYpisys5oCre611CI5fc9TxhqkBBCJ1edDG4Kza0f7CgNz8xVMLZQOmQ==} - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} + hermes-estree@0.32.0: + resolution: {integrity: sha512-KWn3BqnlDOl97Xe1Yviur6NbgIZ+IP+UVSpshlZWkq+EtoHg6/cwiDj/osP9PCEgFE15KBm1O55JRwbMEm5ejQ==} hermes-parser@0.29.1: resolution: {integrity: sha512-xBHWmUtRC5e/UL0tI7Ivt2riA/YBq9+SiYFU7C1oBa/j2jYGlIF9043oak1F47ihuDIxQ5nbsKueYJDRY02UgA==} + hermes-parser@0.32.0: + resolution: {integrity: sha512-g4nBOWFpuiTqjR3LZdRxKUkij9iyveWeuks7INEsMX741f3r9xxrOe8TeQfUxtda0eXmiIFiMQzoeSQEno33Hw==} + hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -4493,10 +4519,6 @@ packages: engines: {node: '>=16.x'} hasBin: true - import-fresh@2.0.0: - resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} - engines: {node: '>=4'} - import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -4586,10 +4608,6 @@ packages: is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - is-directory@0.3.1: - resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} - engines: {node: '>=0.10.0'} - is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -4806,9 +4824,6 @@ packages: 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==} @@ -4994,8 +5009,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react-native@0.511.0: - resolution: {integrity: sha512-brCrakogilGx3inT0em8HUU11dsxyu62+P6sjqU7WKgkfcIc8Q0Ya3zDcBQ8EG3c1HsCSvgFT5tWLetVFAsqhQ==} + lucide-react-native@0.545.0: + resolution: {integrity: sha512-v9MC1CJ5jJkBbGvO+jrq9Iqe58pS8FvmdIO1NEr7mzQEx7E2VGfXkl1iaJsKpDSqofYhv4Xrks2I2ewF66HIDA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-native: '*' @@ -5110,62 +5125,120 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - metro-babel-transformer@0.82.5: - resolution: {integrity: sha512-W/scFDnwJXSccJYnOFdGiYr9srhbHPdxX9TvvACOFsIXdLilh3XuxQl/wXW6jEJfgIb0jTvoTlwwrqvuwymr6Q==} - engines: {node: '>=18.18'} + metro-babel-transformer@0.83.2: + resolution: {integrity: sha512-rirY1QMFlA1uxH3ZiNauBninwTioOgwChnRdDcbB4tgRZ+bGX9DiXoh9QdpppiaVKXdJsII932OwWXGGV4+Nlw==} + engines: {node: '>=20.19.4'} - metro-cache-key@0.82.5: - resolution: {integrity: sha512-qpVmPbDJuRLrT4kcGlUouyqLGssJnbTllVtvIgXfR7ZuzMKf0mGS+8WzcqzNK8+kCyakombQWR0uDd8qhWGJcA==} - engines: {node: '>=18.18'} + metro-babel-transformer@0.83.3: + resolution: {integrity: sha512-1vxlvj2yY24ES1O5RsSIvg4a4WeL7PFXgKOHvXTXiW0deLvQr28ExXj6LjwCCDZ4YZLhq6HddLpZnX4dEdSq5g==} + engines: {node: '>=20.19.4'} - metro-cache@0.82.5: - resolution: {integrity: sha512-AwHV9607xZpedu1NQcjUkua8v7HfOTKfftl6Vc9OGr/jbpiJX6Gpy8E/V9jo/U9UuVYX2PqSUcVNZmu+LTm71Q==} - engines: {node: '>=18.18'} + metro-cache-key@0.83.2: + resolution: {integrity: sha512-3EMG/GkGKYoTaf5RqguGLSWRqGTwO7NQ0qXKmNBjr0y6qD9s3VBXYlwB+MszGtmOKsqE9q3FPrE5Nd9Ipv7rZw==} + engines: {node: '>=20.19.4'} - metro-config@0.82.5: - resolution: {integrity: sha512-/r83VqE55l0WsBf8IhNmc/3z71y2zIPe5kRSuqA5tY/SL/ULzlHUJEMd1szztd0G45JozLwjvrhAzhDPJ/Qo/g==} - engines: {node: '>=18.18'} + metro-cache-key@0.83.3: + resolution: {integrity: sha512-59ZO049jKzSmvBmG/B5bZ6/dztP0ilp0o988nc6dpaDsU05Cl1c/lRf+yx8m9WW/JVgbmfO5MziBU559XjI5Zw==} + engines: {node: '>=20.19.4'} - metro-core@0.82.5: - resolution: {integrity: sha512-OJL18VbSw2RgtBm1f2P3J5kb892LCVJqMvslXxuxjAPex8OH7Eb8RBfgEo7VZSjgb/LOf4jhC4UFk5l5tAOHHA==} - engines: {node: '>=18.18'} + metro-cache@0.83.2: + resolution: {integrity: sha512-Z43IodutUZeIS7OTH+yQFjc59QlFJ6s5OvM8p2AP9alr0+F8UKr8ADzFzoGKoHefZSKGa4bJx7MZJLF6GwPDHQ==} + engines: {node: '>=20.19.4'} - metro-file-map@0.82.5: - resolution: {integrity: sha512-vpMDxkGIB+MTN8Af5hvSAanc6zXQipsAUO+XUx3PCQieKUfLwdoa8qaZ1WAQYRpaU+CJ8vhBcxtzzo3d9IsCIQ==} - engines: {node: '>=18.18'} + metro-cache@0.83.3: + resolution: {integrity: sha512-3jo65X515mQJvKqK3vWRblxDEcgY55Sk3w4xa6LlfEXgQ9g1WgMh9m4qVZVwgcHoLy0a2HENTPCCX4Pk6s8c8Q==} + engines: {node: '>=20.19.4'} - metro-minify-terser@0.82.5: - resolution: {integrity: sha512-v6Nx7A4We6PqPu/ta1oGTqJ4Usz0P7c+3XNeBxW9kp8zayS3lHUKR0sY0wsCHInxZlNAEICx791x+uXytFUuwg==} - engines: {node: '>=18.18'} + metro-config@0.83.2: + resolution: {integrity: sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g==} + engines: {node: '>=20.19.4'} - metro-resolver@0.82.5: - resolution: {integrity: sha512-kFowLnWACt3bEsuVsaRNgwplT8U7kETnaFHaZePlARz4Fg8tZtmRDUmjaD68CGAwc0rwdwNCkWizLYpnyVcs2g==} - engines: {node: '>=18.18'} + metro-config@0.83.3: + resolution: {integrity: sha512-mTel7ipT0yNjKILIan04bkJkuCzUUkm2SeEaTads8VfEecCh+ltXchdq6DovXJqzQAXuR2P9cxZB47Lg4klriA==} + engines: {node: '>=20.19.4'} - metro-runtime@0.82.5: - resolution: {integrity: sha512-rQZDoCUf7k4Broyw3Ixxlq5ieIPiR1ULONdpcYpbJQ6yQ5GGEyYjtkztGD+OhHlw81LCR2SUAoPvtTus2WDK5g==} - engines: {node: '>=18.18'} + metro-core@0.83.2: + resolution: {integrity: sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw==} + engines: {node: '>=20.19.4'} - metro-source-map@0.82.5: - resolution: {integrity: sha512-wH+awTOQJVkbhn2SKyaw+0cd+RVSCZ3sHVgyqJFQXIee/yLs3dZqKjjeKKhhVeudgjXo7aE/vSu/zVfcQEcUfw==} - engines: {node: '>=18.18'} + metro-core@0.83.3: + resolution: {integrity: sha512-M+X59lm7oBmJZamc96usuF1kusd5YimqG/q97g4Ac7slnJ3YiGglW5CsOlicTR5EWf8MQFxxjDoB6ytTqRe8Hw==} + engines: {node: '>=20.19.4'} - metro-symbolicate@0.82.5: - resolution: {integrity: sha512-1u+07gzrvYDJ/oNXuOG1EXSvXZka/0JSW1q2EYBWerVKMOhvv9JzDGyzmuV7hHbF2Hg3T3S2uiM36sLz1qKsiw==} - engines: {node: '>=18.18'} + metro-file-map@0.83.2: + resolution: {integrity: sha512-cMSWnEqZrp/dzZIEd7DEDdk72PXz6w5NOKriJoDN9p1TDQ5nAYrY2lHi8d6mwbcGLoSlWmpPyny9HZYFfPWcGQ==} + engines: {node: '>=20.19.4'} + + metro-file-map@0.83.3: + resolution: {integrity: sha512-jg5AcyE0Q9Xbbu/4NAwwZkmQn7doJCKGW0SLeSJmzNB9Z24jBe0AL2PHNMy4eu0JiKtNWHz9IiONGZWq7hjVTA==} + engines: {node: '>=20.19.4'} + + metro-minify-terser@0.83.2: + resolution: {integrity: sha512-zvIxnh7U0JQ7vT4quasKsijId3dOAWgq+ip2jF/8TMrPUqQabGrs04L2dd0haQJ+PA+d4VvK/bPOY8X/vL2PWw==} + engines: {node: '>=20.19.4'} + + metro-minify-terser@0.83.3: + resolution: {integrity: sha512-O2BmfWj6FSfzBLrNCXt/rr2VYZdX5i6444QJU0fFoc7Ljg+Q+iqebwE3K0eTvkI6TRjELsXk1cjU+fXwAR4OjQ==} + engines: {node: '>=20.19.4'} + + metro-resolver@0.83.2: + resolution: {integrity: sha512-Yf5mjyuiRE/Y+KvqfsZxrbHDA15NZxyfg8pIk0qg47LfAJhpMVEX+36e6ZRBq7KVBqy6VDX5Sq55iHGM4xSm7Q==} + engines: {node: '>=20.19.4'} + + metro-resolver@0.83.3: + resolution: {integrity: sha512-0js+zwI5flFxb1ktmR///bxHYg7OLpRpWZlBBruYG8OKYxeMP7SV0xQ/o/hUelrEMdK4LJzqVtHAhBm25LVfAQ==} + engines: {node: '>=20.19.4'} + + metro-runtime@0.83.2: + resolution: {integrity: sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A==} + engines: {node: '>=20.19.4'} + + metro-runtime@0.83.3: + resolution: {integrity: sha512-JHCJb9ebr9rfJ+LcssFYA2x1qPYuSD/bbePupIGhpMrsla7RCwC/VL3yJ9cSU+nUhU4c9Ixxy8tBta+JbDeZWw==} + engines: {node: '>=20.19.4'} + + metro-source-map@0.83.2: + resolution: {integrity: sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA==} + engines: {node: '>=20.19.4'} + + metro-source-map@0.83.3: + resolution: {integrity: sha512-xkC3qwUBh2psVZgVavo8+r2C9Igkk3DibiOXSAht1aYRRcztEZNFtAMtfSB7sdO2iFMx2Mlyu++cBxz/fhdzQg==} + engines: {node: '>=20.19.4'} + + metro-symbolicate@0.83.2: + resolution: {integrity: sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw==} + engines: {node: '>=20.19.4'} hasBin: true - metro-transform-plugins@0.82.5: - resolution: {integrity: sha512-57Bqf3rgq9nPqLrT2d9kf/2WVieTFqsQ6qWHpEng5naIUtc/Iiw9+0bfLLWSAw0GH40iJ4yMjFcFJDtNSYynMA==} - engines: {node: '>=18.18'} + metro-symbolicate@0.83.3: + resolution: {integrity: sha512-F/YChgKd6KbFK3eUR5HdUsfBqVsanf5lNTwFd4Ca7uuxnHgBC3kR/Hba/RGkenR3pZaGNp5Bu9ZqqP52Wyhomw==} + engines: {node: '>=20.19.4'} + hasBin: true - metro-transform-worker@0.82.5: - resolution: {integrity: sha512-mx0grhAX7xe+XUQH6qoHHlWedI8fhSpDGsfga7CpkO9Lk9W+aPitNtJWNGrW8PfjKEWbT9Uz9O50dkI8bJqigw==} - engines: {node: '>=18.18'} + metro-transform-plugins@0.83.2: + resolution: {integrity: sha512-5WlW25WKPkiJk2yA9d8bMuZrgW7vfA4f4MBb9ZeHbTB3eIAoNN8vS8NENgG/X/90vpTB06X66OBvxhT3nHwP6A==} + engines: {node: '>=20.19.4'} - metro@0.82.5: - resolution: {integrity: sha512-8oAXxL7do8QckID/WZEKaIFuQJFUTLzfVcC48ghkHhNK2RGuQq8Xvf4AVd+TUA0SZtX0q8TGNXZ/eba1ckeGCg==} - engines: {node: '>=18.18'} + metro-transform-plugins@0.83.3: + resolution: {integrity: sha512-eRGoKJU6jmqOakBMH5kUB7VitEWiNrDzBHpYbkBXW7C5fUGeOd2CyqrosEzbMK5VMiZYyOcNFEphvxk3OXey2A==} + engines: {node: '>=20.19.4'} + + metro-transform-worker@0.83.2: + resolution: {integrity: sha512-G5DsIg+cMZ2KNfrdLnWMvtppb3+Rp1GMyj7Bvd9GgYc/8gRmvq1XVEF9XuO87Shhb03kFhGqMTgZerz3hZ1v4Q==} + engines: {node: '>=20.19.4'} + + metro-transform-worker@0.83.3: + resolution: {integrity: sha512-Ztekew9t/gOIMZX1tvJOgX7KlSLL5kWykl0Iwu2cL2vKMKVALRl1hysyhUw0vjpAvLFx+Kfq9VLjnHIkW32fPA==} + engines: {node: '>=20.19.4'} + + metro@0.83.2: + resolution: {integrity: sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw==} + engines: {node: '>=20.19.4'} + hasBin: true + + metro@0.83.3: + resolution: {integrity: sha512-+rP+/GieOzkt97hSJ0MrPOuAH/jpaS21ZDvL9DJ35QYRDlQcwzcvUlGUf79AnQxq/2NPiS/AULhhM4TKutIt8Q==} + engines: {node: '>=20.19.4'} hasBin: true micromark-core-commonmark@2.0.3: @@ -5483,9 +5556,13 @@ packages: nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - ob1@0.82.5: - resolution: {integrity: sha512-QyQQ6e66f+Ut/qUVjEce0E/wux5nAGLXYZDn1jr15JWstHsCH3l6VVrg8NKDptW9NEiBXKOJeGF/ydxeSDF3IQ==} - engines: {node: '>=18.18'} + ob1@0.83.2: + resolution: {integrity: sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg==} + engines: {node: '>=20.19.4'} + + ob1@0.83.3: + resolution: {integrity: sha512-egUxXCDwoWG06NGCS5s5AdcpnumHKJlfd3HH06P3m9TEMwwScfcY35wpQxbm9oHof+dM/lVH9Rfyu1elTVelSA==} + engines: {node: '>=20.19.4'} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -5614,10 +5691,6 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} - parse-json@4.0.0: - resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} - engines: {node: '>=4'} - parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -5947,10 +6020,10 @@ packages: react-devtools-core@6.1.5: resolution: {integrity: sha512-ePrwPfxAnB+7hgnEr8vpKxL9cmnp7F322t8oqcPshbIQQhDKgFDW4tjhF2wjVbdXF9O/nyuy3sQWd9JGpiLPvA==} - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} peerDependencies: - react: ^19.0.0 + react: ^19.1.0 react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -5992,51 +6065,40 @@ packages: react-native-svg: optional: true - react-native-edge-to-edge@1.6.0: - resolution: {integrity: sha512-2WCNdE3Qd6Fwg9+4BpbATUxCLcouF6YRY7K+J36KJ4l3y+tWN6XCqAC4DuoGblAAbb2sLkhEDp4FOlbOIot2Og==} - peerDependencies: - react: '*' - react-native: '*' - react-native-gesture-handler@2.24.0: resolution: {integrity: sha512-ZdWyOd1C8axKJHIfYxjJKCcxjWEpUtUWgTOVY2wynbiveSQDm8X/PDyAKXSer/GOtIpjudUbACOndZXCN3vHsw==} peerDependencies: react: '*' react-native: '*' - react-native-is-edge-to-edge@1.1.7: - resolution: {integrity: sha512-EH6i7E8epJGIcu7KpfXYXiV2JFIYITtq+rVS8uEb+92naMRBdxhTuS8Wn2Q7j9sqyO0B+Xbaaf9VdipIAmGW4w==} - peerDependencies: - react: '*' - react-native: '*' - react-native-is-edge-to-edge@1.2.1: resolution: {integrity: sha512-FLbPWl/MyYQWz+KwqOZsSyj2JmLKglHatd3xLZWskXOpRaio4LfEDEz8E/A6uD8QoTHW6Aobw1jbEwK7KMgR7Q==} peerDependencies: react: '*' react-native: '*' - react-native-reanimated@3.17.5: - resolution: {integrity: sha512-SxBK7wQfJ4UoWoJqQnmIC7ZjuNgVb9rcY5Xc67upXAFKftWg0rnkknTw6vgwnjRcvYThrjzUVti66XoZdDJGtw==} + react-native-reanimated@4.1.3: + resolution: {integrity: sha512-GP8wsi1u3nqvC1fMab/m8gfFwFyldawElCcUSBJQgfrXeLmsPPUOpDw44lbLeCpcwUuLa05WTVePdTEwCLTUZg==} peerDependencies: '@babel/core': ^7.0.0-0 react: '*' react-native: '*' + react-native-worklets: '>=0.5.0' - react-native-safe-area-context@5.4.0: - resolution: {integrity: sha512-JaEThVyJcLhA+vU0NU8bZ0a1ih6GiF4faZ+ArZLqpYbL6j7R3caRqj+mE3lEtKCuHgwjLg3bCxLL1GPUJZVqUA==} + react-native-safe-area-context@5.6.2: + resolution: {integrity: sha512-4XGqMNj5qjUTYywJqpdWZ9IG8jgkS3h06sfVjfw5yZQZfWnRFXczi0GnYyFyCc2EBps/qFmoCH8fez//WumdVg==} peerDependencies: react: '*' react-native: '*' - react-native-screens@4.18.0: - resolution: {integrity: sha512-mRTLWL7Uc1p/RFNveEIIrhP22oxHduC2ZnLr/2iHwBeYpGXR0rJZ7Bgc0ktxQSHRjWTPT70qc/7yd4r9960PBQ==} + react-native-screens@4.16.0: + resolution: {integrity: sha512-yIAyh7F/9uWkOzCi1/2FqvNvK6Wb9Y1+Kzn16SuGfN9YFJDTbwlzGRvePCNTOX0recpLQF3kc2FmvMUhyTCH1Q==} peerDependencies: react: '*' react-native: '*' - react-native-svg@15.11.2: - resolution: {integrity: sha512-+YfF72IbWQUKzCIydlijV1fLuBsQNGMT6Da2kFlo1sh+LE3BIm/2Q7AR1zAAR6L0BFLi1WaQPLfFUC9bNZpOmw==} + react-native-svg@15.12.1: + resolution: {integrity: sha512-vCuZJDf8a5aNC2dlMovEv4Z0jjEUET53lm/iILFnFewa15b4atjVxU6Wirm6O9y6dEsdjDZVD7Q3QM4T1wlI8g==} peerDependencies: react: '*' react-native: '*' @@ -6047,13 +6109,27 @@ packages: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - react-native@0.79.5: - resolution: {integrity: sha512-jVihwsE4mWEHZ9HkO1J2eUZSwHyDByZOqthwnGrVZCh6kTQBCm4v8dicsyDa6p0fpWNE5KicTcpX/XXl0ASJFg==} - engines: {node: '>=18'} + react-native-worklets@0.5.1: + resolution: {integrity: sha512-lJG6Uk9YuojjEX/tQrCbcbmpdLCSFxDK1rJlkDhgqkVi1KZzG7cdcBFQRqyNOOzR9Y0CXNuldmtWTGOyM0k0+w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + react: '*' + react-native: '*' + + react-native-worklets@0.6.1: + resolution: {integrity: sha512-URca8l7c7Uog7gv4mcg9KILdJlnbvwdS5yfXQYf5TDkD2W1VY1sduEKrD+sA3lUPXH/TG1vmXAvNxCNwPMYgGg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + react: '*' + react-native: '*' + + react-native@0.81.5: + resolution: {integrity: sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw==} + engines: {node: '>= 20.19.4'} hasBin: true peerDependencies: - '@types/react': ^19.0.0 - react: ^19.0.0 + '@types/react': ^19.1.0 + react: ^19.1.0 peerDependenciesMeta: '@types/react': optional: true @@ -6092,8 +6168,8 @@ packages: '@types/react': optional: true - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} read-cache@1.0.0: @@ -6129,12 +6205,6 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - recyclerlistview@4.2.3: - resolution: {integrity: sha512-STR/wj/FyT8EMsBzzhZ1l2goYirMkIgfV3gYEPxI3Kf3lOnu6f7Dryhyw7/IkQrgX5xtTcDrZMqytvteH9rL3g==} - peerDependencies: - 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'} @@ -6210,10 +6280,6 @@ packages: resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} engines: {node: '>= 4.0.0'} - resolve-from@3.0.0: - resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==} - engines: {node: '>=4'} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -6222,6 +6288,10 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} @@ -6297,8 +6367,8 @@ packages: sax@1.4.3: resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -6320,6 +6390,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + semver@7.7.3: resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} @@ -6648,6 +6723,9 @@ packages: tailwind-merge@2.6.0: resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} + tailwind-merge@3.3.1: + resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} + tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: @@ -6785,9 +6863,6 @@ packages: ts-morph@18.0.0: resolution: {integrity: sha512-Kg5u0mk19PIIe4islUI/HWRvm9bC1lHejK4S0oh1zaZ77TMZAEmQC0sHQYiu2RgCQFZKXz1fMVi/7nOOeirznA==} - ts-object-utils@0.0.5: - resolution: {integrity: sha512-iV0GvHqOmilbIKJsfyfJY9/dNHCs969z3so90dQWsO1eMMozvTpnB1MEaUbb3FYtZTGjv5sIy/xmslEz0Rg2TA==} - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -6892,10 +6967,6 @@ packages: resolution: {integrity: sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==} engines: {node: '>=18.17'} - undici@7.16.0: - resolution: {integrity: sha512-QEg3HPMll0o3t2ourKwOeUAZ159Kn9mx5pnzHRQO8+Wixmh88YdZRiIwat0iNzNNXn0yoEtXJqFpyW7eM8BV7g==} - engines: {node: '>=20.18.1'} - unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -7009,6 +7080,12 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vaul@1.1.2: + resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + vfile-message@4.0.3: resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} @@ -7241,6 +7318,11 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} + hasBin: true + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -7268,6 +7350,24 @@ packages: zod@4.1.12: resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} + zustand@5.0.8: + resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -7610,6 +7710,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -7893,6 +8001,7 @@ snapshots: '@egjs/hammerjs@2.0.17': dependencies: '@types/hammerjs': 2.0.46 + optional: true '@emnapi/core@1.7.0': dependencies: @@ -8103,29 +8212,28 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@expo-google-fonts/geist@0.4.1': {} - - '@expo/cli@0.24.22(graphql@16.12.0)': + '@expo/cli@54.0.16(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(expo@54.0.23)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))': dependencies: '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) - '@babel/runtime': 7.28.4 '@expo/code-signing-certificates': 0.0.5 - '@expo/config': 11.0.13 - '@expo/config-plugins': 10.1.2 + '@expo/config': 12.0.10 + '@expo/config-plugins': 54.0.2 '@expo/devcert': 1.2.0 - '@expo/env': 1.0.7 - '@expo/image-utils': 0.7.6 - '@expo/json-file': 9.1.5 - '@expo/metro-config': 0.20.17 + '@expo/env': 2.0.7 + '@expo/image-utils': 0.8.7 + '@expo/json-file': 10.0.7 + '@expo/mcp-tunnel': 0.1.0(@modelcontextprotocol/sdk@1.21.0) + '@expo/metro': 54.1.0 + '@expo/metro-config': 54.0.9(expo@54.0.23) '@expo/osascript': 2.3.7 '@expo/package-manager': 1.9.8 - '@expo/plist': 0.3.5 - '@expo/prebuild-config': 9.0.12 + '@expo/plist': 0.4.7 + '@expo/prebuild-config': 54.0.6(expo@54.0.23) '@expo/schema-utils': 0.1.7 '@expo/spawn-async': 1.7.2 '@expo/ws-tunnel': 1.0.6 '@expo/xcpretty': 4.3.2 - '@react-native/dev-middleware': 0.79.6 + '@react-native/dev-middleware': 0.81.5 '@urql/core': 5.2.0(graphql@16.12.0) '@urql/exchange-retry': 1.3.2(@urql/core@5.2.0(graphql@16.12.0)) accepts: 1.3.8 @@ -8139,6 +8247,8 @@ snapshots: connect: 3.7.0 debug: 4.4.3 env-editor: 0.4.2 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-server: 1.0.4 freeport-async: 2.0.0 getenv: 2.0.0 glob: 10.4.5 @@ -8169,7 +8279,11 @@ snapshots: undici: 6.22.0 wrap-ansi: 7.0.0 ws: 8.18.3 + optionalDependencies: + expo-router: 6.0.14(@expo/metro-runtime@6.1.2)(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(expo-constants@18.0.10)(expo-linking@8.0.8)(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.24.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) transitivePeerDependencies: + - '@modelcontextprotocol/sdk' - bufferutil - graphql - supports-color @@ -8180,11 +8294,11 @@ snapshots: node-forge: 1.3.1 nullthrows: 1.1.1 - '@expo/config-plugins@10.1.2': + '@expo/config-plugins@54.0.2': dependencies: - '@expo/config-types': 53.0.5 - '@expo/json-file': 9.1.5 - '@expo/plist': 0.3.5 + '@expo/config-types': 54.0.8 + '@expo/json-file': 10.0.7 + '@expo/plist': 0.4.7 '@expo/sdk-runtime-versions': 1.0.0 chalk: 4.1.2 debug: 4.4.3 @@ -8199,14 +8313,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/config-types@53.0.5': {} + '@expo/config-types@54.0.8': {} - '@expo/config@11.0.13': + '@expo/config@12.0.10': dependencies: '@babel/code-frame': 7.10.4 - '@expo/config-plugins': 10.1.2 - '@expo/config-types': 53.0.5 - '@expo/json-file': 9.1.5 + '@expo/config-plugins': 54.0.2 + '@expo/config-types': 54.0.8 + '@expo/json-file': 10.0.7 deepmerge: 4.3.1 getenv: 2.0.0 glob: 10.4.5 @@ -8227,7 +8341,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/env@1.0.7': + '@expo/devtools@0.1.7(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': + dependencies: + chalk: 4.1.2 + optionalDependencies: + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + + '@expo/env@2.0.7': dependencies: chalk: 4.1.2 debug: 4.4.3 @@ -8237,13 +8358,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/fingerprint@0.13.4': + '@expo/fingerprint@0.15.3': dependencies: '@expo/spawn-async': 1.7.2 arg: 5.0.2 chalk: 4.1.2 debug: 4.4.3 - find-up: 5.0.0 getenv: 2.0.0 glob: 10.4.5 ignore: 5.3.2 @@ -8254,7 +8374,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@expo/image-utils@0.7.6': + '@expo/image-utils@0.8.7': dependencies: '@expo/spawn-async': 1.7.2 chalk: 4.1.2 @@ -8262,6 +8382,7 @@ snapshots: jimp-compact: 0.16.1 parse-png: 2.1.0 resolve-from: 5.0.0 + resolve-global: 1.0.0 semver: 7.7.3 temp-dir: 2.0.0 unique-string: 2.0.0 @@ -8271,38 +8392,77 @@ snapshots: '@babel/code-frame': 7.10.4 json5: 2.2.3 - '@expo/json-file@9.1.5': + '@expo/mcp-tunnel@0.1.0(@modelcontextprotocol/sdk@1.21.0)': dependencies: - '@babel/code-frame': 7.10.4 - json5: 2.2.3 + ws: 8.18.3 + zod: 3.25.76 + zod-to-json-schema: 3.24.6(zod@3.25.76) + optionalDependencies: + '@modelcontextprotocol/sdk': 1.21.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate - '@expo/metro-config@0.20.17': + '@expo/metro-config@54.0.9(expo@54.0.23)': dependencies: + '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 '@babel/generator': 7.28.5 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - '@expo/config': 11.0.13 - '@expo/env': 1.0.7 - '@expo/json-file': 9.1.5 + '@expo/config': 12.0.10 + '@expo/env': 2.0.7 + '@expo/json-file': 10.0.7 + '@expo/metro': 54.1.0 '@expo/spawn-async': 1.7.2 + browserslist: 4.27.0 chalk: 4.1.2 debug: 4.4.3 dotenv: 16.4.7 dotenv-expand: 11.0.7 getenv: 2.0.0 glob: 10.4.5 + hermes-parser: 0.29.1 jsc-safe-url: 0.2.4 lightningcss: 1.27.0 minimatch: 9.0.5 postcss: 8.4.49 resolve-from: 5.0.0 + optionalDependencies: + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate - '@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))': + '@expo/metro-runtime@6.1.2(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + anser: 1.4.10 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + pretty-format: 29.7.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + stacktrace-parser: 0.1.11 + whatwg-fetch: 3.6.20 + optionalDependencies: + react-dom: 19.1.0(react@19.1.0) + + '@expo/metro@54.1.0': + dependencies: + metro: 0.83.2 + metro-babel-transformer: 0.83.2 + metro-cache: 0.83.2 + metro-cache-key: 0.83.2 + metro-config: 0.83.2 + metro-core: 0.83.2 + metro-file-map: 0.83.2 + metro-resolver: 0.83.2 + metro-runtime: 0.83.2 + metro-source-map: 0.83.2 + metro-transform-plugins: 0.83.2 + metro-transform-worker: 0.83.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate '@expo/osascript@2.3.7': dependencies: @@ -8318,21 +8478,22 @@ snapshots: ora: 3.4.0 resolve-workspace-root: 2.0.0 - '@expo/plist@0.3.5': + '@expo/plist@0.4.7': dependencies: '@xmldom/xmldom': 0.8.11 base64-js: 1.5.1 xmlbuilder: 15.1.1 - '@expo/prebuild-config@9.0.12': + '@expo/prebuild-config@54.0.6(expo@54.0.23)': dependencies: - '@expo/config': 11.0.13 - '@expo/config-plugins': 10.1.2 - '@expo/config-types': 53.0.5 - '@expo/image-utils': 0.7.6 - '@expo/json-file': 9.1.5 - '@react-native/normalize-colors': 0.79.6 + '@expo/config': 12.0.10 + '@expo/config-plugins': 54.0.2 + '@expo/config-types': 54.0.8 + '@expo/image-utils': 0.8.7 + '@expo/json-file': 10.0.7 + '@react-native/normalize-colors': 0.81.5 debug: 4.4.3 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) resolve-from: 5.0.0 semver: 7.7.3 xml2js: 0.6.0 @@ -8343,26 +8504,17 @@ snapshots: '@expo/sdk-runtime-versions@1.0.0': {} - '@expo/server@0.6.3': - dependencies: - abort-controller: 3.0.0 - debug: 4.4.3 - source-map-support: 0.5.21 - undici: 7.16.0 - transitivePeerDependencies: - - supports-color - '@expo/spawn-async@1.7.2': dependencies: cross-spawn: 7.0.6 '@expo/sudo-prompt@9.3.2': {} - '@expo/vector-icons@14.1.0(expo-font@13.3.2(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@expo/vector-icons@15.0.3(expo-font@14.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - expo-font: 13.3.2(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + expo-font: 14.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) '@expo/ws-tunnel@1.0.6': {} @@ -8382,11 +8534,11 @@ snapshots: '@floating-ui/core': 1.7.3 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@floating-ui/react-dom@2.1.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/dom': 1.7.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) '@floating-ui/utils@0.2.10': {} @@ -8797,409 +8949,409 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-accordion@1.2.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)': + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-collapsible': 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) - '@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) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@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)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.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) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-collapsible@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)': + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-presence': 1.1.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) - '@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) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@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)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-context@1.1.2(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-dialog@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)': + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 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) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-presence': 1.1.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) - '@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) - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) aria-hidden: 1.2.6 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.7.1(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-direction@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-dismissable-layer@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)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@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)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-id@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-label@2.1.8(@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)': + '@radix-ui/react-label@2.1.8(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.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) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-navigation-menu@1.2.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)': + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@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) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 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) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-presence': 1.1.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) - '@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) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@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) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-popover@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)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 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) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-popper': 1.2.8(@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) - '@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) - '@radix-ui/react-presence': 1.1.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) - '@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) - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) aria-hidden: 1.2.6 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.7.1(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) - - '@radix-ui/react-popper@1.2.8(@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.6(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.14))(@types/react@19.0.14)(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.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.0.14)(react@19.0.0) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@floating-ui/react-dom': 2.1.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.2)(react@19.1.0) '@radix-ui/rect': 1.1.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@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)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.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) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-presence@1.1.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)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@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)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-primitive@2.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)': + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.4(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-roving-focus@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)': + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@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) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-scroll-area@1.2.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)': + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-presence': 1.1.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) - '@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) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-select@2.2.6(@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)': + '@radix-ui/react-select@2.2.6(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/number': 1.1.1 '@radix-ui/primitive': 1.1.3 - '@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) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 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) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.0.14)(react@19.0.0) - '@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) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-popper': 1.2.8(@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) - '@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) - '@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) - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@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) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) aria-hidden: 1.2.6 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.7.1(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-slot@1.2.0(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-slot@1.2.0(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-slot@1.2.3(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-slot@1.2.4(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-slot@1.2.4(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-tabs@1.1.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)': + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-context': 1.1.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-presence': 1.1.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) - '@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) - '@radix-ui/react-roving-focus': 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) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 - react: 19.0.0 + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@radix-ui/react-use-size@1.1.1(@types/react@19.0.14)(react@19.0.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.2)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.14)(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@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)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.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) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 - '@types/react-dom': 19.1.5(@types/react@19.0.14) + '@types/react': 19.2.2 + '@types/react-dom': 19.1.5(@types/react@19.2.2) '@radix-ui/rect@1.1.1': {} @@ -9207,17 +9359,17 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 - '@react-native/assets-registry@0.79.5': {} + '@react-native/assets-registry@0.81.5': {} - '@react-native/babel-plugin-codegen@0.79.6(@babel/core@7.28.5)': + '@react-native/babel-plugin-codegen@0.81.5(@babel/core@7.28.5)': dependencies: '@babel/traverse': 7.28.5 - '@react-native/codegen': 0.79.6(@babel/core@7.28.5) + '@react-native/codegen': 0.81.5(@babel/core@7.28.5) transitivePeerDependencies: - '@babel/core' - supports-color - '@react-native/babel-preset@0.79.6(@babel/core@7.28.5)': + '@react-native/babel-preset@0.81.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) @@ -9260,77 +9412,47 @@ snapshots: '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) '@babel/template': 7.27.2 - '@react-native/babel-plugin-codegen': 0.79.6(@babel/core@7.28.5) - babel-plugin-syntax-hermes-parser: 0.25.1 + '@react-native/babel-plugin-codegen': 0.81.5(@babel/core@7.28.5) + babel-plugin-syntax-hermes-parser: 0.29.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) react-refresh: 0.14.2 transitivePeerDependencies: - supports-color - '@react-native/codegen@0.79.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - glob: 7.2.3 - hermes-parser: 0.25.1 - invariant: 2.2.4 - nullthrows: 1.1.1 - yargs: 17.7.2 - - '@react-native/codegen@0.79.6(@babel/core@7.28.5)': + '@react-native/codegen@0.81.5(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 '@babel/parser': 7.28.5 glob: 7.2.3 - hermes-parser: 0.25.1 + hermes-parser: 0.29.1 invariant: 2.2.4 nullthrows: 1.1.1 yargs: 17.7.2 - '@react-native/community-cli-plugin@0.79.5': + '@react-native/community-cli-plugin@0.81.5': dependencies: - '@react-native/dev-middleware': 0.79.5 - chalk: 4.1.2 - debug: 2.6.9 + '@react-native/dev-middleware': 0.81.5 + debug: 4.4.3 invariant: 2.2.4 - metro: 0.82.5 - metro-config: 0.82.5 - metro-core: 0.82.5 + metro: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 semver: 7.7.3 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - '@react-native/debugger-frontend@0.79.5': {} - - '@react-native/debugger-frontend@0.79.6': {} + '@react-native/debugger-frontend@0.81.5': {} - '@react-native/dev-middleware@0.79.5': + '@react-native/dev-middleware@0.81.5': dependencies: '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.79.5 + '@react-native/debugger-frontend': 0.81.5 chrome-launcher: 0.15.2 chromium-edge-launcher: 0.2.0 connect: 3.7.0 - debug: 2.6.9 - invariant: 2.2.4 - nullthrows: 1.1.1 - open: 7.4.2 - serve-static: 1.16.2 - ws: 6.2.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - - '@react-native/dev-middleware@0.79.6': - dependencies: - '@isaacs/ttlcache': 1.4.1 - '@react-native/debugger-frontend': 0.79.6 - chrome-launcher: 0.15.2 - chromium-edge-launcher: 0.2.0 - connect: 3.7.0 - debug: 2.6.9 + debug: 4.4.3 invariant: 2.2.4 nullthrows: 1.1.1 open: 7.4.2 @@ -9341,115 +9463,125 @@ snapshots: - supports-color - utf-8-validate - '@react-native/gradle-plugin@0.79.5': {} + '@react-native/gradle-plugin@0.81.5': {} - '@react-native/js-polyfills@0.79.5': {} + '@react-native/js-polyfills@0.81.5': {} '@react-native/normalize-colors@0.74.89': {} - '@react-native/normalize-colors@0.79.5': {} - - '@react-native/normalize-colors@0.79.6': {} + '@react-native/normalize-colors@0.81.5': {} - '@react-native/virtualized-lists@0.79.5(@types/react@19.0.14)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-native/virtualized-lists@0.81.5(@types/react@19.2.2)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@react-navigation/bottom-tabs@7.8.1(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/bottom-tabs@7.8.1(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.8.1(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.8.1(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) color: 4.2.3 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.1.0 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/core@7.13.0(react@19.0.0)': + '@react-navigation/core@7.13.0(react@19.1.0)': dependencies: '@react-navigation/routers': 7.5.1 escape-string-regexp: 4.0.0 fast-deep-equal: 3.1.3 nanoid: 3.3.11 query-string: 7.1.3 - react: 19.0.0 + react: 19.1.0 react-is: 19.2.0 - use-latest-callback: 0.2.6(react@19.0.0) - use-sync-external-store: 1.6.0(react@19.0.0) + use-latest-callback: 0.2.6(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/elements@2.8.1(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/elements@2.8.1(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/native': 7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/native': 7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) color: 4.2.3 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - use-latest-callback: 0.2.6(react@19.0.0) - use-sync-external-store: 1.6.0(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + use-latest-callback: 0.2.6(react@19.1.0) + use-sync-external-store: 1.6.0(react@19.1.0) - '@react-navigation/native-stack@7.6.2(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/native-stack@7.6.2(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/elements': 2.8.1(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-navigation/elements': 2.8.1(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) color: 4.2.3 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-safe-area-context: 5.4.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) sf-symbols-typescript: 2.1.0 warn-once: 0.1.1 transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - '@react-navigation/core': 7.13.0(react@19.0.0) + '@react-navigation/core': 7.13.0(react@19.1.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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - use-latest-callback: 0.2.6(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + use-latest-callback: 0.2.6(react@19.1.0) '@react-navigation/routers@7.5.1': dependencies: nanoid: 3.3.11 - '@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.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@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.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-label': 2.1.8(@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.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@rn-primitives/types': 1.2.0(react-native-web@0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react: 19.0.0 + '@radix-ui/react-label': 2.1.8(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@rn-primitives/slot': 1.2.0(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@rn-primitives/types': 1.2.0(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react: 19.1.0 optionalDependencies: - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-web: 0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@types/react' - '@types/react-dom' - react-dom - '@rn-primitives/slot@1.2.0(react-native-web@0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/portal@1.3.0(@types/react@19.2.2)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0))': dependencies: - react: 19.0.0 + react: 19.1.0 + zustand: 5.0.8(@types/react@19.2.2)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)) optionalDependencies: - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-web: 0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - immer + - use-sync-external-store + + '@rn-primitives/slot@1.2.0(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@rn-primitives/types@1.2.0(react-native-web@0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': + '@rn-primitives/types@1.2.0(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)': dependencies: - react: 19.0.0 + react: 19.1.0 optionalDependencies: - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-web: 0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@rollup/rollup-android-arm-eabi@4.52.5': optional: true @@ -9570,14 +9702,6 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@shopify/flash-list@1.7.6(@babel/runtime@7.28.4)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)': - dependencies: - '@babel/runtime': 7.28.4 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - recyclerlistview: 4.2.3(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - tslib: 2.8.1 - '@sinclair/typebox@0.27.8': {} '@sinonjs/commons@3.0.1': @@ -9653,7 +9777,8 @@ snapshots: dependencies: '@types/node': 22.10.5 - '@types/hammerjs@2.0.46': {} + '@types/hammerjs@2.0.46': + optional: true '@types/hast@3.0.4': dependencies: @@ -9685,11 +9810,11 @@ snapshots: dependencies: undici-types: 6.20.0 - '@types/react-dom@19.1.5(@types/react@19.0.14)': + '@types/react-dom@19.1.5(@types/react@19.2.2)': dependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - '@types/react@19.0.14': + '@types/react@19.2.2': dependencies: csstype: 3.1.3 @@ -10102,8 +10227,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - arg@4.1.0: {} - arg@5.0.2: {} argparse@1.0.10: @@ -10275,11 +10398,15 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-react-native-web@0.19.13: {} + babel-plugin-react-compiler@1.0.0: + dependencies: + '@babel/types': 7.28.5 + + babel-plugin-react-native-web@0.21.2: {} - babel-plugin-syntax-hermes-parser@0.25.1: + babel-plugin-syntax-hermes-parser@0.29.1: dependencies: - hermes-parser: 0.25.1 + hermes-parser: 0.29.1 babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.28.5): dependencies: @@ -10306,12 +10433,13 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) - babel-preset-expo@13.2.4(@babel/core@7.28.5): + babel-preset-expo@54.0.7(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.23)(react-refresh@0.14.2): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) '@babel/plugin-proposal-export-default-from': 7.27.1(@babel/core@7.28.5) '@babel/plugin-syntax-export-default-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-flow-strip-types': 7.27.1(@babel/core@7.28.5) '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) @@ -10322,13 +10450,17 @@ snapshots: '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) '@babel/preset-react': 7.28.5(@babel/core@7.28.5) '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - '@react-native/babel-preset': 0.79.6(@babel/core@7.28.5) - babel-plugin-react-native-web: 0.19.13 - babel-plugin-syntax-hermes-parser: 0.25.1 + '@react-native/babel-preset': 0.81.5(@babel/core@7.28.5) + babel-plugin-react-compiler: 1.0.0 + babel-plugin-react-native-web: 0.21.2 + babel-plugin-syntax-hermes-parser: 0.29.1 babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.28.5) debug: 4.4.3 react-refresh: 0.14.2 resolve-from: 5.0.0 + optionalDependencies: + '@babel/runtime': 7.28.4 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - supports-color @@ -10449,16 +10581,6 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 - caller-callsite@2.0.0: - dependencies: - callsites: 2.0.0 - - caller-path@2.0.0: - dependencies: - caller-callsite: 2.0.0 - - callsites@2.0.0: {} - callsites@3.1.0: {} camelcase-css@2.0.1: {} @@ -10661,11 +10783,11 @@ snapshots: cookie@1.0.2: {} - cookies-next@6.0.0(next@15.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0): + cookies-next@6.0.0(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: cookie: 1.0.2 - next: 15.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 + next: 15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 core-js-compat@3.46.0: dependencies: @@ -10678,13 +10800,6 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig@5.2.1: - dependencies: - import-fresh: 2.0.0 - is-directory: 0.3.1 - js-yaml: 3.14.1 - parse-json: 4.0.0 - cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.1 @@ -11343,178 +11458,167 @@ snapshots: expect-type@1.2.2: {} - expo-asset@11.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-asset@12.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - '@expo/image-utils': 0.7.6 - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + '@expo/image-utils': 0.8.7 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.10(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-constants@17.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)): + expo-constants@18.0.10(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)): dependencies: - '@expo/config': 11.0.13 - '@expo/env': 1.0.7 - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + '@expo/config': 12.0.10 + '@expo/env': 2.0.7 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) transitivePeerDependencies: - supports-color - expo-eas-client@0.14.4: {} - - expo-file-system@18.1.11(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)): + expo-file-system@19.0.17(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)): dependencies: - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) - expo-font@13.3.2(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-font@14.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) fontfaceobserver: 2.3.0 - react: 19.0.0 - - expo-haptics@14.1.4(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): - dependencies: - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) - expo-json-utils@0.15.0: {} - - expo-keep-awake@14.1.4(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-keep-awake@15.0.7(expo@54.0.23)(react@19.1.0): dependencies: - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react: 19.0.0 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react: 19.1.0 - expo-linking@7.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo-linking@8.0.8(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - expo-constants: 17.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) + expo-constants: 18.0.10(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) invariant: 2.2.4 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) transitivePeerDependencies: - expo - supports-color - expo-manifests@0.16.6(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): - dependencies: - '@expo/config': 11.0.13 - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-json-utils: 0.15.0 - transitivePeerDependencies: - - supports-color - - expo-modules-autolinking@2.1.14: + expo-modules-autolinking@3.0.21: dependencies: '@expo/spawn-async': 1.7.2 chalk: 4.1.2 commander: 7.2.0 - find-up: 5.0.0 - glob: 10.4.5 require-from-string: 2.0.2 resolve-from: 5.0.0 - expo-modules-core@2.5.0: + expo-modules-core@3.0.25(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: invariant: 2.2.4 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) - expo-router@5.1.7(d5257ea1f9f64f6839da01bcb4afd05f): + expo-router@6.0.14(@expo/metro-runtime@6.1.2)(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(expo-constants@18.0.10)(expo-linking@8.0.8)(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native-gesture-handler@2.24.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - '@expo/metro-runtime': 5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) + '@expo/metro-runtime': 6.1.2(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) '@expo/schema-utils': 0.1.7 - '@expo/server': 0.6.3 - '@radix-ui/react-slot': 1.2.0(@types/react@19.0.14)(react@19.0.0) - '@react-navigation/bottom-tabs': 7.8.1(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native': 7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - '@react-navigation/native-stack': 7.6.2(@react-navigation/native@7.1.19(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-screens@4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.0(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-navigation/bottom-tabs': 7.8.1(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@react-navigation/native': 7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@react-navigation/native-stack': 7.6.2(@react-navigation/native@7.1.19(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) client-only: 0.0.1 - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) - expo-linking: 7.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + debug: 4.4.3 + escape-string-regexp: 4.0.0 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.10(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) + expo-linking: 8.0.8(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-server: 1.0.4 + fast-deep-equal: 3.1.3 invariant: 2.2.4 + nanoid: 3.3.11 + query-string: 7.1.3 + react: 19.1.0 react-fast-compare: 3.2.2 - react-native-is-edge-to-edge: 1.2.1(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-screens: 4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-screens: 4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) semver: 7.6.3 server-only: 0.0.1 + sf-symbols-typescript: 2.1.0 shallowequal: 1.1.0 + use-latest-callback: 0.2.6(react@19.1.0) + vaul: 1.1.2(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) optionalDependencies: - react-native-reanimated: 3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-dom: 19.1.0(react@19.1.0) + react-native-gesture-handler: 2.24.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@react-native-masked-view/masked-view' - '@types/react' - - react - - react-native + - '@types/react-dom' - supports-color - expo-splash-screen@0.30.10(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-server@1.0.4: {} + + expo-splash-screen@31.0.10(expo@54.0.23): dependencies: - '@expo/prebuild-config': 9.0.12 - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@expo/prebuild-config': 54.0.6(expo@54.0.23) + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo-status-bar@2.2.3(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): - dependencies: - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-is-edge-to-edge: 1.2.1(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - - expo-structured-headers@4.1.0: {} - - expo-updates-interface@1.1.0(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)): + expo-status-bar@3.0.8(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) - expo-updates@0.28.17(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0): + expo-system-ui@6.0.8(expo@54.0.23)(react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)): dependencies: - '@expo/code-signing-certificates': 0.0.5 - '@expo/config': 11.0.13 - '@expo/config-plugins': 10.1.2 - '@expo/spawn-async': 1.7.2 - arg: 4.1.0 - chalk: 4.1.2 - expo: 53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-eas-client: 0.14.4 - expo-manifests: 0.16.6(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - expo-structured-headers: 4.1.0 - expo-updates-interface: 1.1.0(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)) - glob: 10.4.5 - ignore: 5.3.2 - react: 19.0.0 - resolve-from: 5.0.0 + '@react-native/normalize-colors': 0.81.5 + debug: 4.4.3 + expo: 54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + optionalDependencies: + react-native-web: 0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + expo@54.0.23(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.28.4 - '@expo/cli': 0.24.22(graphql@16.12.0) - '@expo/config': 11.0.13 - '@expo/config-plugins': 10.1.2 - '@expo/fingerprint': 0.13.4 - '@expo/metro-config': 0.20.17 - '@expo/vector-icons': 14.1.0(expo-font@13.3.2(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - babel-preset-expo: 13.2.4(@babel/core@7.28.5) - expo-asset: 11.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - expo-constants: 17.1.7(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) - expo-file-system: 18.1.11(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) - expo-font: 13.3.2(expo@53.0.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@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.23(@babel/core@7.28.5)(@expo/metro-runtime@5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)))(graphql@16.12.0)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react@19.0.0) - expo-modules-autolinking: 2.1.14 - expo-modules-core: 2.5.0 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-edge-to-edge: 1.6.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@expo/cli': 54.0.16(@modelcontextprotocol/sdk@1.21.0)(expo-router@6.0.14)(expo@54.0.23)(graphql@16.12.0)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) + '@expo/config': 12.0.10 + '@expo/config-plugins': 54.0.2 + '@expo/devtools': 0.1.7(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@expo/fingerprint': 0.15.3 + '@expo/metro': 54.1.0 + '@expo/metro-config': 54.0.9(expo@54.0.23) + '@expo/vector-icons': 15.0.3(expo-font@14.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + '@ungap/structured-clone': 1.3.0 + babel-preset-expo: 54.0.7(@babel/core@7.28.5)(@babel/runtime@7.28.4)(expo@54.0.23)(react-refresh@0.14.2) + expo-asset: 12.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-constants: 18.0.10(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) + expo-file-system: 19.0.17(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0)) + expo-font: 14.0.9(expo@54.0.23)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + expo-keep-awake: 15.0.7(expo@54.0.23)(react@19.1.0) + expo-modules-autolinking: 3.0.21 + expo-modules-core: 3.0.25(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + pretty-format: 29.7.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-refresh: 0.14.2 whatwg-url-without-unicode: 8.0.0-3 optionalDependencies: - '@expo/metro-runtime': 5.0.5(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0)) + '@expo/metro-runtime': 6.1.2(expo@54.0.23)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@babel/core' - - babel-plugin-react-compiler + - '@modelcontextprotocol/sdk' - bufferutil + - expo-router - graphql - supports-color - utf-8-validate @@ -11702,7 +11806,7 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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-core@14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@orama/orama': 2.1.1 @@ -11713,16 +11817,16 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 image-size: 1.2.1 negotiator: 1.0.0 - react-remove-scroll: 2.7.1(@types/react@19.0.14)(react@19.0.0) + react-remove-scroll: 2.7.1(@types/react@19.2.2)(react@19.1.0) remark: 15.0.1 remark-gfm: 4.0.1 scroll-into-view-if-needed: 3.1.0 shiki: 2.5.0 unist-util-visit: 5.0.0 optionalDependencies: - next: 15.4.5(@babel/core@7.28.5)(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) + next: 15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: - '@types/react' - supports-color @@ -11736,14 +11840,14 @@ snapshots: unist-util-visit: 5.0.0 zod: 3.25.76 - fumadocs-mdx@11.7.3(fumadocs-core@14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0): + fumadocs-mdx@11.7.3(fumadocs-core@14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.0.0 chokidar: 4.0.3 esbuild: 0.25.12 estree-util-value-to-estree: 3.5.0 - fumadocs-core: 14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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-core: 14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) js-yaml: 4.1.0 lru-cache: 11.2.2 picocolors: 1.1.1 @@ -11752,35 +11856,35 @@ snapshots: unist-util-visit: 5.0.0 zod: 4.1.12 optionalDependencies: - next: 15.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 + next: 15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 transitivePeerDependencies: - supports-color - fumadocs-ui@14.7.7(@types/react-dom@19.1.5(@types/react@19.0.14))(@types/react@19.0.14)(fumadocs-core@14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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.4.5(@babel/core@7.28.5)(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.18): + fumadocs-ui@14.7.7(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(fumadocs-core@14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)): dependencies: - '@radix-ui/react-accordion': 1.2.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) - '@radix-ui/react-collapsible': 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) - '@radix-ui/react-dialog': 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) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-navigation-menu': 1.2.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) - '@radix-ui/react-popover': 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) - '@radix-ui/react-scroll-area': 1.2.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) - '@radix-ui/react-slot': 1.2.4(@types/react@19.0.14)(react@19.0.0) - '@radix-ui/react-tabs': 1.1.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) + '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-navigation-menu': 1.2.14(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-scroll-area': 1.2.10(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) class-variance-authority: 0.7.1 - fumadocs-core: 14.7.7(@types/react@19.0.14)(next@15.4.5(@babel/core@7.28.5)(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-core: 14.7.7(@types/react@19.2.2)(next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) lodash.merge: 4.6.2 - lucide-react: 0.473.0(react@19.0.0) - next: 15.4.5(@babel/core@7.28.5)(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) + lucide-react: 0.473.0(react@19.1.0) + next: 15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next-themes: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.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.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-medium-image-zoom: 5.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) tailwind-merge: 2.6.0 optionalDependencies: - tailwindcss: 3.4.18 + tailwindcss: 3.4.18(yaml@2.8.1) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -11872,6 +11976,10 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-dirs@0.1.1: + dependencies: + ini: 1.3.8 + globals@14.0.0: {} globalthis@1.0.4: @@ -11976,21 +12084,22 @@ snapshots: headers-polyfill@4.0.3: {} - hermes-estree@0.25.1: {} - hermes-estree@0.29.1: {} - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 + hermes-estree@0.32.0: {} hermes-parser@0.29.1: dependencies: hermes-estree: 0.29.1 + hermes-parser@0.32.0: + dependencies: + hermes-estree: 0.32.0 + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 + optional: true hosted-git-info@7.0.2: dependencies: @@ -12044,11 +12153,6 @@ snapshots: dependencies: queue: 6.0.2 - import-fresh@2.0.0: - dependencies: - caller-path: 2.0.0 - resolve-from: 3.0.0 - import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -12144,8 +12248,6 @@ snapshots: is-decimal@2.0.1: {} - is-directory@0.3.1: {} - is-docker@2.2.1: {} is-extglob@2.1.1: {} @@ -12389,8 +12491,6 @@ snapshots: 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: {} @@ -12544,19 +12644,19 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react-native@0.511.0(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + lucide-react-native@0.545.0(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-svg: 15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) - lucide-react@0.471.2(react@19.0.0): + lucide-react@0.471.2(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 - lucide-react@0.473.0(react@19.0.0): + lucide-react@0.473.0(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 magic-string@0.30.21: dependencies: @@ -12761,50 +12861,93 @@ snapshots: merge2@1.4.1: {} - metro-babel-transformer@0.82.5: + metro-babel-transformer@0.83.2: dependencies: '@babel/core': 7.28.5 flow-enums-runtime: 0.0.6 - hermes-parser: 0.29.1 + hermes-parser: 0.32.0 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - metro-cache-key@0.82.5: + metro-babel-transformer@0.83.3: dependencies: + '@babel/core': 7.28.5 + flow-enums-runtime: 0.0.6 + hermes-parser: 0.32.0 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-cache-key@0.83.2: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache-key@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-cache@0.83.2: + dependencies: + exponential-backoff: 3.1.3 flow-enums-runtime: 0.0.6 + https-proxy-agent: 7.0.6 + metro-core: 0.83.2 + transitivePeerDependencies: + - supports-color - metro-cache@0.82.5: + metro-cache@0.83.3: dependencies: exponential-backoff: 3.1.3 flow-enums-runtime: 0.0.6 https-proxy-agent: 7.0.6 - metro-core: 0.82.5 + metro-core: 0.83.3 + transitivePeerDependencies: + - supports-color + + metro-config@0.83.2: + dependencies: + connect: 3.7.0 + flow-enums-runtime: 0.0.6 + jest-validate: 29.7.0 + metro: 0.83.2 + metro-cache: 0.83.2 + metro-core: 0.83.2 + metro-runtime: 0.83.2 + yaml: 2.8.1 transitivePeerDependencies: + - bufferutil - supports-color + - utf-8-validate - metro-config@0.82.5: + metro-config@0.83.3: dependencies: connect: 3.7.0 - cosmiconfig: 5.2.1 flow-enums-runtime: 0.0.6 jest-validate: 29.7.0 - metro: 0.82.5 - metro-cache: 0.82.5 - metro-core: 0.82.5 - metro-runtime: 0.82.5 + metro: 0.83.3 + metro-cache: 0.83.3 + metro-core: 0.83.3 + metro-runtime: 0.83.3 + yaml: 2.8.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro-core@0.82.5: + metro-core@0.83.2: dependencies: flow-enums-runtime: 0.0.6 lodash.throttle: 4.1.1 - metro-resolver: 0.82.5 + metro-resolver: 0.83.2 - metro-file-map@0.82.5: + metro-core@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + lodash.throttle: 4.1.1 + metro-resolver: 0.83.3 + + metro-file-map@0.83.2: dependencies: debug: 4.4.3 fb-watchman: 2.0.2 @@ -12818,47 +12961,101 @@ snapshots: transitivePeerDependencies: - supports-color - metro-minify-terser@0.82.5: + metro-file-map@0.83.3: + dependencies: + debug: 4.4.3 + fb-watchman: 2.0.2 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + invariant: 2.2.4 + jest-worker: 29.7.0 + micromatch: 4.0.8 + nullthrows: 1.1.1 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + + metro-minify-terser@0.83.2: dependencies: flow-enums-runtime: 0.0.6 terser: 5.44.1 - metro-resolver@0.82.5: + metro-minify-terser@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + terser: 5.44.1 + + metro-resolver@0.83.2: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-resolver@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + + metro-runtime@0.83.2: dependencies: + '@babel/runtime': 7.28.4 flow-enums-runtime: 0.0.6 - metro-runtime@0.82.5: + metro-runtime@0.83.3: dependencies: '@babel/runtime': 7.28.4 flow-enums-runtime: 0.0.6 - metro-source-map@0.82.5: + metro-source-map@0.83.2: dependencies: '@babel/traverse': 7.28.5 '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.5' '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-symbolicate: 0.82.5 + metro-symbolicate: 0.83.2 nullthrows: 1.1.1 - ob1: 0.82.5 + ob1: 0.83.2 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-symbolicate@0.82.5: + metro-source-map@0.83.3: dependencies: + '@babel/traverse': 7.28.5 + '@babel/traverse--for-generate-function-map': '@babel/traverse@7.28.5' + '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 invariant: 2.2.4 - metro-source-map: 0.82.5 + metro-symbolicate: 0.83.3 nullthrows: 1.1.1 + ob1: 0.83.3 source-map: 0.5.7 vlq: 1.0.1 transitivePeerDependencies: - supports-color - metro-transform-plugins@0.82.5: + metro-symbolicate@0.83.2: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.83.2 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-symbolicate@0.83.3: + dependencies: + flow-enums-runtime: 0.0.6 + invariant: 2.2.4 + metro-source-map: 0.83.3 + nullthrows: 1.1.1 + source-map: 0.5.7 + vlq: 1.0.1 + transitivePeerDependencies: + - supports-color + + metro-transform-plugins@0.83.2: dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 @@ -12869,27 +13066,58 @@ snapshots: transitivePeerDependencies: - supports-color - metro-transform-worker@0.82.5: + metro-transform-plugins@0.83.3: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + flow-enums-runtime: 0.0.6 + nullthrows: 1.1.1 + transitivePeerDependencies: + - supports-color + + metro-transform-worker@0.83.2: dependencies: '@babel/core': 7.28.5 '@babel/generator': 7.28.5 '@babel/parser': 7.28.5 '@babel/types': 7.28.5 flow-enums-runtime: 0.0.6 - metro: 0.82.5 - metro-babel-transformer: 0.82.5 - metro-cache: 0.82.5 - metro-cache-key: 0.82.5 - metro-minify-terser: 0.82.5 - metro-source-map: 0.82.5 - metro-transform-plugins: 0.82.5 + metro: 0.83.2 + metro-babel-transformer: 0.83.2 + metro-cache: 0.83.2 + metro-cache-key: 0.83.2 + metro-minify-terser: 0.83.2 + metro-source-map: 0.83.2 + metro-transform-plugins: 0.83.2 nullthrows: 1.1.1 transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - metro@0.82.5: + metro-transform-worker@0.83.3: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + flow-enums-runtime: 0.0.6 + metro: 0.83.3 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-minify-terser: 0.83.3 + metro-source-map: 0.83.3 + metro-transform-plugins: 0.83.3 + nullthrows: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.83.2: dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.28.5 @@ -12906,24 +13134,71 @@ snapshots: error-stack-parser: 2.1.4 flow-enums-runtime: 0.0.6 graceful-fs: 4.2.11 - hermes-parser: 0.29.1 + hermes-parser: 0.32.0 + image-size: 1.2.1 + invariant: 2.2.4 + jest-worker: 29.7.0 + jsc-safe-url: 0.2.4 + lodash.throttle: 4.1.1 + metro-babel-transformer: 0.83.2 + metro-cache: 0.83.2 + metro-cache-key: 0.83.2 + metro-config: 0.83.2 + metro-core: 0.83.2 + metro-file-map: 0.83.2 + metro-resolver: 0.83.2 + metro-runtime: 0.83.2 + metro-source-map: 0.83.2 + metro-symbolicate: 0.83.2 + metro-transform-plugins: 0.83.2 + metro-transform-worker: 0.83.2 + mime-types: 2.1.35 + nullthrows: 1.1.1 + serialize-error: 2.1.0 + source-map: 0.5.7 + throat: 5.0.0 + ws: 7.5.10 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + metro@0.83.3: + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + accepts: 1.3.8 + chalk: 4.1.2 + ci-info: 2.0.0 + connect: 3.7.0 + debug: 4.4.3 + error-stack-parser: 2.1.4 + flow-enums-runtime: 0.0.6 + graceful-fs: 4.2.11 + hermes-parser: 0.32.0 image-size: 1.2.1 invariant: 2.2.4 jest-worker: 29.7.0 jsc-safe-url: 0.2.4 lodash.throttle: 4.1.1 - metro-babel-transformer: 0.82.5 - metro-cache: 0.82.5 - metro-cache-key: 0.82.5 - metro-config: 0.82.5 - metro-core: 0.82.5 - metro-file-map: 0.82.5 - metro-resolver: 0.82.5 - metro-runtime: 0.82.5 - metro-source-map: 0.82.5 - metro-symbolicate: 0.82.5 - metro-transform-plugins: 0.82.5 - metro-transform-worker: 0.82.5 + metro-babel-transformer: 0.83.3 + metro-cache: 0.83.3 + metro-cache-key: 0.83.3 + metro-config: 0.83.3 + metro-core: 0.83.3 + metro-file-map: 0.83.3 + metro-resolver: 0.83.3 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 + metro-symbolicate: 0.83.3 + metro-transform-plugins: 0.83.3 + metro-transform-worker: 0.83.3 mime-types: 2.1.35 nullthrows: 1.1.1 serialize-error: 2.1.0 @@ -13290,12 +13565,26 @@ snapshots: napi-postinstall@0.3.4: {} - nativewind@4.2.1(react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.18): + nativewind@4.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)): + dependencies: + comment-json: 4.4.1 + debug: 4.4.3 + react-native-css-interop: 0.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)) + tailwindcss: 3.4.18(yaml@2.8.1) + transitivePeerDependencies: + - react + - react-native + - react-native-reanimated + - react-native-safe-area-context + - react-native-svg + - supports-color + + nativewind@4.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)): dependencies: comment-json: 4.4.1 debug: 4.4.3 - react-native-css-interop: 0.2.1(react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.18) - tailwindcss: 3.4.18 + react-native-css-interop: 0.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)) + tailwindcss: 3.4.18(yaml@2.8.1) transitivePeerDependencies: - react - react-native @@ -13316,20 +13605,20 @@ snapshots: nested-error-stacks@2.0.1: {} - next-themes@0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - next@15.4.5(@babel/core@7.28.5)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.4.5(@babel/core@7.28.5)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.4.5 '@swc/helpers': 0.5.15 caniuse-lite: 1.0.30001754 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.28.5)(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.1.0) optionalDependencies: '@next/swc-darwin-arm64': 15.4.5 '@next/swc-darwin-x64': 15.4.5 @@ -13339,6 +13628,7 @@ snapshots: '@next/swc-linux-x64-musl': 15.4.5 '@next/swc-win32-arm64-msvc': 15.4.5 '@next/swc-win32-x64-msvc': 15.4.5 + babel-plugin-react-compiler: 1.0.0 sharp: 0.34.4 transitivePeerDependencies: - '@babel/core' @@ -13385,7 +13675,11 @@ snapshots: nullthrows@1.1.1: {} - ob1@0.82.5: + ob1@0.83.2: + dependencies: + flow-enums-runtime: 0.0.6 + + ob1@0.83.3: dependencies: flow-enums-runtime: 0.0.6 @@ -13566,11 +13860,6 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 - parse-json@4.0.0: - dependencies: - error-ex: 1.3.4 - json-parse-better-errors: 1.0.2 - parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 @@ -13649,12 +13938,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.1): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 1.21.7 postcss: 8.5.6 + yaml: 2.8.1 postcss-nested@6.2.0(postcss@8.5.6): dependencies: @@ -13741,9 +14031,9 @@ snapshots: qrcode-terminal@0.11.0: {} - qrcode.react@4.2.0(react@19.0.0): + qrcode.react@4.2.0(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 qs@6.14.0: dependencies: @@ -13785,19 +14075,19 @@ snapshots: schema-utils: 3.3.0 webpack: 5.102.1 - rc-field-form@2.7.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + rc-field-form@2.7.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.28.4 '@rc-component/async-validator': 5.0.4 - rc-util: 5.44.4(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) + rc-util: 5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - rc-util@5.44.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + rc-util@5.44.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.28.4 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) react-is: 18.3.1 rc@1.2.8: @@ -13815,16 +14105,16 @@ snapshots: - bufferutil - utf-8-validate - react-dom@19.0.0(react@19.0.0): + react-dom@19.1.0(react@19.1.0): dependencies: - react: 19.0.0 - scheduler: 0.25.0 + react: 19.1.0 + scheduler: 0.26.0 react-fast-compare@3.2.2: {} - react-freeze@1.0.4(react@19.0.0): + react-freeze@1.0.4(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 react-is@16.13.1: {} @@ -13832,93 +14122,98 @@ snapshots: react-is@19.2.0: {} - react-medium-image-zoom@5.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-medium-image-zoom@5.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) - react-native-css-interop@0.2.1(react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0)(tailwindcss@3.4.18): + react-native-css-interop@0.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)): dependencies: '@babel/helper-module-imports': 7.27.1 '@babel/traverse': 7.28.5 '@babel/types': 7.28.5 debug: 4.4.3 lightningcss: 1.27.0 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-reanimated: 3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) semver: 7.7.3 - tailwindcss: 3.4.18 + tailwindcss: 3.4.18(yaml@2.8.1) optionalDependencies: - react-native-safe-area-context: 5.4.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - react-native-svg: 15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + react-native-safe-area-context: 5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-svg: 15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - supports-color - react-native-edge-to-edge@1.6.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-css-interop@0.2.1(react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.18(yaml@2.8.1)): dependencies: - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + '@babel/helper-module-imports': 7.27.1 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + debug: 4.4.3 + lightningcss: 1.27.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-reanimated: 4.1.3(@babel/core@7.28.5)(react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + semver: 7.7.3 + tailwindcss: 3.4.18(yaml@2.8.1) + transitivePeerDependencies: + - supports-color - react-native-gesture-handler@2.24.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-gesture-handler@2.24.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.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.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + optional: true - react-native-is-edge-to-edge@1.1.7(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-is-edge-to-edge@1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) - react-native-is-edge-to-edge@1.2.1(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + '@babel/core': 7.28.5 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-worklets: 0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + semver: 7.7.2 - react-native-reanimated@3.17.5(@babel/core@7.28.5)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-reanimated@4.1.3(@babel/core@7.28.5)(react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: '@babel/core': 7.28.5 - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) - '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) - convert-source-map: 2.0.0 - invariant: 2.2.4 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) - react-native-is-edge-to-edge: 1.1.7(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) - transitivePeerDependencies: - - supports-color + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + react-native-worklets: 0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) + semver: 7.7.2 - react-native-safe-area-context@5.4.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) - react-native-screens@4.18.0(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-screens@4.16.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: - react: 19.0.0 - react-freeze: 1.0.4(react@19.0.0) - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-freeze: 1.0.4(react@19.1.0) + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + react-native-is-edge-to-edge: 1.2.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) warn-once: 0.1.1 - react-native-svg@15.11.2(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0): + react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): dependencies: css-select: 5.2.2 css-tree: 1.1.3 - react: 19.0.0 - react-native: 0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) warn-once: 0.1.1 - react-native-web@0.21.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-native-web@0.21.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.28.4 '@react-native/normalize-colors': 0.74.89 @@ -13927,90 +14222,127 @@ snapshots: memoize-one: 6.0.0 nullthrows: 1.1.1 postcss-value-parser: 4.2.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) styleq: 0.1.3 transitivePeerDependencies: - encoding - react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0): + react-native-worklets@0.5.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) + convert-source-map: 2.0.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + react-native-worklets@0.6.1(@babel/core@7.28.5)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-typescript': 7.28.5(@babel/core@7.28.5) + convert-source-map: 2.0.0 + react: 19.1.0 + react-native: 0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0) + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + + react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0): dependencies: '@jest/create-cache-key-function': 29.7.0 - '@react-native/assets-registry': 0.79.5 - '@react-native/codegen': 0.79.5(@babel/core@7.28.5) - '@react-native/community-cli-plugin': 0.79.5 - '@react-native/gradle-plugin': 0.79.5 - '@react-native/js-polyfills': 0.79.5 - '@react-native/normalize-colors': 0.79.5 - '@react-native/virtualized-lists': 0.79.5(@types/react@19.0.14)(react-native@0.79.5(@babel/core@7.28.5)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) + '@react-native/assets-registry': 0.81.5 + '@react-native/codegen': 0.81.5(@babel/core@7.28.5) + '@react-native/community-cli-plugin': 0.81.5 + '@react-native/gradle-plugin': 0.81.5 + '@react-native/js-polyfills': 0.81.5 + '@react-native/normalize-colors': 0.81.5 + '@react-native/virtualized-lists': 0.81.5(@types/react@19.2.2)(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.2.2)(react@19.1.0))(react@19.1.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 babel-jest: 29.7.0(@babel/core@7.28.5) - babel-plugin-syntax-hermes-parser: 0.25.1 + babel-plugin-syntax-hermes-parser: 0.29.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.5 - metro-source-map: 0.82.5 + metro-runtime: 0.83.3 + metro-source-map: 0.83.3 nullthrows: 1.1.1 pretty-format: 29.7.0 promise: 8.3.0 - react: 19.0.0 + react: 19.1.0 react-devtools-core: 6.1.5 react-refresh: 0.14.2 regenerator-runtime: 0.13.11 - scheduler: 0.25.0 + scheduler: 0.26.0 semver: 7.7.3 stacktrace-parser: 0.1.11 whatwg-fetch: 3.6.20 ws: 6.2.3 yargs: 17.7.2 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 transitivePeerDependencies: - '@babel/core' - '@react-native-community/cli' + - '@react-native/metro-config' - bufferutil - supports-color - utf-8-validate react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@19.0.14)(react@19.0.0): + react-remove-scroll-bar@2.3.8(@types/react@19.2.2)(react@19.1.0): dependencies: - react: 19.0.0 - react-style-singleton: 2.2.3(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - react-remove-scroll@2.7.1(@types/react@19.0.14)(react@19.0.0): + react-remove-scroll@2.7.1(@types/react@19.2.2)(react@19.1.0): dependencies: - react: 19.0.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.0.14)(react@19.0.0) - react-style-singleton: 2.2.3(@types/react@19.0.14)(react@19.0.0) + react: 19.1.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.2)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.2.2)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.0.14)(react@19.0.0) - use-sidecar: 1.1.3(@types/react@19.0.14)(react@19.0.0) + use-callback-ref: 1.3.3(@types/react@19.2.2)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.2.2)(react@19.1.0) optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - react-style-singleton@2.2.3(@types/react@19.0.14)(react@19.0.0): + react-style-singleton@2.2.3(@types/react@19.2.2)(react@19.1.0): dependencies: get-nonce: 1.0.1 - react: 19.0.0 + react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - react@19.0.0: {} + react@19.1.0: {} read-cache@1.0.0: dependencies: @@ -14065,14 +14397,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - recyclerlistview@4.2.3(react-native@0.79.5(@babel/core@7.28.5)(@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.5(@babel/core@7.28.5)(@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 @@ -14196,12 +14520,14 @@ snapshots: rc: 1.2.8 resolve: 1.7.1 - resolve-from@3.0.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} + resolve-global@1.0.0: + dependencies: + global-dirs: 0.1.1 + resolve-pkg-maps@1.0.0: {} resolve-workspace-root@2.0.0: {} @@ -14309,7 +14635,7 @@ snapshots: sax@1.4.3: {} - scheduler@0.25.0: {} + scheduler@0.26.0: {} schema-utils@3.3.0: dependencies: @@ -14332,6 +14658,8 @@ snapshots: semver@7.6.3: {} + semver@7.7.2: {} + semver@7.7.3: {} send@0.19.0: @@ -14737,10 +15065,10 @@ snapshots: dependencies: inline-style-parser: 0.2.6 - styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.0.0): + styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.1.0): dependencies: client-only: 0.0.1 - react: 19.0.0 + react: 19.1.0 optionalDependencies: '@babel/core': 7.28.5 @@ -14777,11 +15105,13 @@ snapshots: tailwind-merge@2.6.0: {} - tailwindcss-animate@1.0.7(tailwindcss@3.4.18): + tailwind-merge@3.3.1: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.18(yaml@2.8.1)): dependencies: - tailwindcss: 3.4.18 + tailwindcss: 3.4.18(yaml@2.8.1) - tailwindcss@3.4.18: + tailwindcss@3.4.18(yaml@2.8.1): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -14800,7 +15130,7 @@ snapshots: postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(yaml@2.8.1) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 resolve: 1.22.11 @@ -14918,8 +15248,6 @@ snapshots: '@ts-morph/common': 0.19.0 code-block-writer: 12.0.0 - ts-object-utils@0.0.5: {} - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -15028,8 +15356,6 @@ snapshots: undici@6.22.0: {} - undici@7.16.0: {} - unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -15122,28 +15448,28 @@ snapshots: dependencies: punycode: 2.3.1 - use-callback-ref@1.3.3(@types/react@19.0.14)(react@19.0.0): + use-callback-ref@1.3.3(@types/react@19.2.2)(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - use-latest-callback@0.2.6(react@19.0.0): + use-latest-callback@0.2.6(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 - use-sidecar@1.1.3(@types/react@19.0.14)(react@19.0.0): + use-sidecar@1.1.3(@types/react@19.2.2)(react@19.1.0): dependencies: detect-node-es: 1.1.0 - react: 19.0.0 + react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.0.14 + '@types/react': 19.2.2 - use-sync-external-store@1.6.0(react@19.0.0): + use-sync-external-store@1.6.0(react@19.1.0): dependencies: - react: 19.0.0 + react: 19.1.0 util-deprecate@1.0.2: {} @@ -15155,6 +15481,15 @@ snapshots: vary@1.1.2: {} + vaul@1.1.2(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.1.5(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 @@ -15406,6 +15741,8 @@ snapshots: yallist@5.0.0: {} + yaml@2.8.1: {} + yargs-parser@21.1.1: {} yargs@17.7.2: @@ -15430,4 +15767,10 @@ snapshots: zod@4.1.12: {} + zustand@5.0.8(@types/react@19.2.2)(react@19.1.0)(use-sync-external-store@1.6.0(react@19.1.0)): + optionalDependencies: + '@types/react': 19.2.2 + react: 19.1.0 + use-sync-external-store: 1.6.0(react@19.1.0) + zwitch@2.0.4: {} diff --git a/test-utils-simple.js b/test-utils-simple.js deleted file mode 100644 index b20c76e..0000000 --- a/test-utils-simple.js +++ /dev/null @@ -1,14 +0,0 @@ -// Simple test to verify utils work -import { hello, helloAsync } from '@rnr/utils'; - -console.log('=== Utils Test ==='); -console.log('Testing hello function:'); -console.log('Input: "World"'); -console.log('Output:', hello('World')); - -console.log('\nTesting helloAsync function:'); -helloAsync('React Native').then(result => { - console.log('Input: "React Native"'); - console.log('Output:', result); - console.log('\n=== Test Complete ==='); -}); \ No newline at end of file diff --git a/test-utils.js b/test-utils.js deleted file mode 100644 index 502a7f1..0000000 --- a/test-utils.js +++ /dev/null @@ -1,13 +0,0 @@ -import { hello, helloAsync } from '@rnr/utils'; - -// Test the hello function -console.log('Testing hello function:'); -console.log('Input: hello("World")'); -console.log('Output:', hello('World')); - -// Test the helloAsync function -console.log('\nTesting helloAsync function:'); -helloAsync('React Native').then(result => { - console.log('Input: await helloAsync("React Native")'); - console.log('Output:', result); -}); \ No newline at end of file