diff --git a/.DS_Store b/.DS_Store index 1ad257e..6e20d7a 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml deleted file mode 100644 index 1a65cff..0000000 --- a/.github/workflows/ci-build.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: CI Build - -on: - pull_request: - types: - - opened - - edited - - labeled - - unlabeled - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [18.x] - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: npm run build \ No newline at end of file diff --git a/.github/workflows/react-native-cicd.yml b/.github/workflows/react-native-cicd.yml index 7299e64..b8d2bc0 100644 --- a/.github/workflows/react-native-cicd.yml +++ b/.github/workflows/react-native-cicd.yml @@ -40,7 +40,7 @@ env: jobs: check-skip: runs-on: ubuntu-latest - if: "!contains(github.event.head_commit.message, '[skip ci]')" + if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }} steps: - name: Skip CI check run: echo "Proceeding with workflow" @@ -52,44 +52,42 @@ jobs: - name: ๐Ÿ— Checkout repository uses: actions/checkout@v4 + - name: pnpm-setup + uses: pnpm/action-setup@v2 + - name: ๐Ÿ— Setup Node.js uses: actions/setup-node@v4 with: - node-version: "20" - cache: "yarn" - - - name: ๐Ÿ“ฆ Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT + node-version: "24" + cache: "pnpm" - - name: ๐Ÿ“ฆ Setup yarn cache + - name: ๐Ÿ“ฆ Setup pnpm cache uses: actions/cache@v3 with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + path: ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-yarn- + ${{ runner.os }}-pnpm- - name: ๐Ÿ“ฆ Install dependencies - run: yarn install + run: pnpm install - name: ๐Ÿงช Run TypeScript check - run: yarn tsc + run: pnpm tsc - name: ๐Ÿงน Run ESLint - run: yarn lint + run: pnpm lint - name: ๐ŸŽจ Run Prettier check - run: yarn format:check + run: pnpm format:check - name: ๐Ÿงช Run Jest Tests - run: yarn test + run: pnpm test - name: ๐Ÿงช Run React Native Testing Library Tests - run: yarn test:rntl + run: pnpm test:rntl build-and-deploy: - needs: test if: (github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')) || github.event_name == 'workflow_dispatch' strategy: matrix: @@ -102,28 +100,27 @@ jobs: - name: ๐Ÿ— Checkout repository uses: actions/checkout@v4 + - name: pnpm-setup + uses: pnpm/action-setup@v2 + - name: ๐Ÿ— Setup Node.js uses: actions/setup-node@v4 with: - node-version: "20" - cache: "yarn" - - - name: ๐Ÿ“ฆ Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT + node-version: "24" + cache: "pnpm" - - name: ๐Ÿ“ฆ Setup yarn cache + - name: ๐Ÿ“ฆ Setup pnpm cache uses: actions/cache@v3 with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + path: ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | - ${{ runner.os }}-yarn- + ${{ runner.os }}-pnpm- - name: ๐Ÿ“ฆ Install dependencies run: | - yarn install - yarn global add eas-cli@latest + pnpm install + pnpm add -g eas-cli@latest - name: ๐Ÿ“ฑ Setup EAS build cache uses: actions/cache@v3 diff --git a/.vscode/settings.json b/.vscode/settings.json index 15d676f..898d579 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -28,6 +28,7 @@ "Flashlist", "Gluestack", "Lato", + "nativewind", "Resgrid" ], "i18n-ally.localesPaths": ["src/translations/"], diff --git a/babel.config.js b/babel.config.js index 3d4b8e3..36a0e7e 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,10 +1,7 @@ module.exports = function (api) { api.cache(true); return { - presets: [ - ['babel-preset-expo', { jsxImportSource: 'nativewind' }], - 'nativewind/babel', - ], + presets: [['babel-preset-expo', { jsxImportSource: 'nativewind' }], 'nativewind/babel'], plugins: [ [ 'module-resolver', @@ -16,20 +13,9 @@ module.exports = function (api) { '@unitools/image': '@unitools/image-expo', '@unitools/router': '@unitools/router-expo', '@unitools/link': '@unitools/link-expo', - 'tailwind.config': './tailwind.config.js', + '@tailwind.config': './tailwind.config.js', '@assets': './assets', }, - extensions: [ - '.ios.ts', - '.android.ts', - '.ts', - '.ios.tsx', - '.android.tsx', - '.tsx', - '.jsx', - '.js', - '.json', - ], }, ], 'react-native-reanimated/plugin', diff --git a/jest.config.js b/jest.config.js index 2b0241b..5e61cc3 100644 --- a/jest.config.js +++ b/jest.config.js @@ -12,8 +12,9 @@ module.exports = { '!**/cli/**', ], moduleFileExtensions: ['js', 'ts', 'tsx'], + moduleDirectories: ['node_modules', '/'], transformIgnorePatterns: [ - `node_modules/(?!(?:.pnpm/)?((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|@sentry/.*|native-base|react-native-svg))`, + `node_modules/(?!(?:.pnpm/)?((jest-)?react-native|@react-native(-community)?|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|@sentry/.*|native-base|react-native-svg|@gluestack-ui/.*|lucide-react-native|@tanstack/.*|moti|nativewind|tailwind-variants|@react-native-aria/.*))`, ], coverageReporters: ['json-summary', ['text', { file: 'coverage.txt' }]], reporters: [ diff --git a/metro.config.js b/metro.config.js index 641614d..b92b4f7 100644 --- a/metro.config.js +++ b/metro.config.js @@ -1,7 +1,7 @@ /* eslint-env node */ const { getSentryExpoConfig } = require('@sentry/react-native/metro'); -const { getDefaultConfig } = require('expo/metro-config'); +//const { getDefaultConfig } = require('expo/metro-config'); const path = require('path'); const { withNativeWind } = require('nativewind/metro'); @@ -25,4 +25,4 @@ config.resolver.extraNodeModules = { '@assets': path.resolve(__dirname, 'assets'), }; -module.exports = withNativeWind(config, { input: './global.css' }); +module.exports = withNativeWind(config, { input: './global.css', inlineRem: 16 }); diff --git a/package.json b/package.json index 5e3dab4..eb7652b 100644 --- a/package.json +++ b/package.json @@ -49,25 +49,25 @@ "@gluestack-ui/alert": "^0.1.15", "@gluestack-ui/alert-dialog": "^0.1.30", "@gluestack-ui/avatar": "^0.1.17", - "@gluestack-ui/button": "^1.0.7", + "@gluestack-ui/button": "^1.0.14", "@gluestack-ui/checkbox": "^0.1.31", "@gluestack-ui/divider": "^0.1.9", "@gluestack-ui/fab": "^0.1.21", "@gluestack-ui/form-control": "^0.1.18", - "@gluestack-ui/icon": "^0.1.25", + "@gluestack-ui/icon": "^0.1.27", "@gluestack-ui/image": "^0.1.10", - "@gluestack-ui/input": "^0.1.31", + "@gluestack-ui/input": "^0.1.38", "@gluestack-ui/link": "^0.1.22", - "@gluestack-ui/menu": "^0.2.36", + "@gluestack-ui/menu": "^0.2.43", "@gluestack-ui/modal": "^0.1.35", "@gluestack-ui/nativewind-utils": "^1.0.26", "@gluestack-ui/overlay": "^0.1.16", - "@gluestack-ui/popover": "^0.1.37", + "@gluestack-ui/popover": "^0.1.49", "@gluestack-ui/pressable": "^0.1.16", "@gluestack-ui/progress": "^0.1.16", - "@gluestack-ui/radio": "^0.1.32", - "@gluestack-ui/select": "^0.1.29", - "@gluestack-ui/slider": "^0.1.25", + "@gluestack-ui/radio": "^0.1.40", + "@gluestack-ui/select": "^0.1.31", + "@gluestack-ui/slider": "^0.1.32", "@gluestack-ui/spinner": "^0.1.14", "@gluestack-ui/switch": "^0.1.22", "@gluestack-ui/textarea": "^0.1.23", @@ -155,7 +155,6 @@ "@types/jest": "^29.5.12", "@types/lodash.memoize": "^4.1.9", "@types/react": "~18.3.12", - "@types/react-native": "^0.73.0", "@types/react-native-base64": "^0.2.2", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d653e18..ed22f17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,8 +33,8 @@ importers: specifier: ^0.1.17 version: 0.1.18(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/button': - specifier: ^1.0.7 - version: 1.0.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^1.0.14 + version: 1.0.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/checkbox': specifier: ^0.1.31 version: 0.1.37(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -48,20 +48,20 @@ importers: specifier: ^0.1.18 version: 0.1.19(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/icon': - specifier: ^0.1.25 - version: 0.1.25(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^0.1.27 + version: 0.1.27(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/image': specifier: ^0.1.10 version: 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/input': - specifier: ^0.1.31 - version: 0.1.36(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^0.1.38 + version: 0.1.38(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/link': specifier: ^0.1.22 version: 0.1.27(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/menu': - specifier: ^0.2.36 - version: 0.2.41(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^0.2.43 + version: 0.2.43(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/modal': specifier: ^0.1.35 version: 0.1.39(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -72,8 +72,8 @@ importers: specifier: ^0.1.16 version: 0.1.20(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/popover': - specifier: ^0.1.37 - version: 0.1.47(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^0.1.49 + version: 0.1.49(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/pressable': specifier: ^0.1.16 version: 0.1.21(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -81,14 +81,14 @@ importers: specifier: ^0.1.16 version: 0.1.18(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/radio': - specifier: ^0.1.32 - version: 0.1.38(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^0.1.40 + version: 0.1.40(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/select': - specifier: ^0.1.29 + specifier: ^0.1.31 version: 0.1.31(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/slider': - specifier: ^0.1.25 - version: 0.1.30(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + specifier: ^0.1.32 + version: 0.1.32(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/spinner': specifier: ^0.1.14 version: 0.1.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -136,7 +136,7 @@ importers: version: 6.10.0(expo@52.0.46(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@expo/metro-runtime@4.0.1(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1)))(react-native-webview@13.12.5(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@shopify/flash-list': specifier: 1.7.3 - version: 1.7.3(@babel/runtime@7.26.9)(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + version: 1.7.3(@babel/runtime@7.27.6)(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@tanstack/react-query': specifier: ^5.52.1 version: 5.66.11(react@18.3.1) @@ -345,9 +345,6 @@ importers: '@types/react': specifier: ~18.3.12 version: 18.3.18 - '@types/react-native': - specifier: ^0.73.0 - version: 0.73.0(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) '@types/react-native-base64': specifier: ^0.2.2 version: 0.2.2 @@ -1301,6 +1298,10 @@ packages: resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + engines: {node: '>=6.9.0'} + '@babel/template@7.26.9': resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} engines: {node: '>=6.9.0'} @@ -1325,6 +1326,10 @@ packages: resolution: {integrity: sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1545,18 +1550,33 @@ packages: '@formatjs/ecma402-abstract@2.3.3': resolution: {integrity: sha512-pJT1OkhplSmvvr6i3CWTPvC/FGC06MbN5TNBfRO6Ox62AEz90eMq+dVvtX9Bl3jxCEkS0tATzDarRZuOLw7oFg==} + '@formatjs/ecma402-abstract@2.3.4': + resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} + '@formatjs/fast-memoize@2.2.6': resolution: {integrity: sha512-luIXeE2LJbQnnzotY1f2U2m7xuQNj2DA8Vq4ce1BY9ebRZaoPB1+8eZ6nXpLzsxuW5spQxr7LdCg+CApZwkqkw==} + '@formatjs/fast-memoize@2.2.7': + resolution: {integrity: sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==} + '@formatjs/icu-messageformat-parser@2.11.1': resolution: {integrity: sha512-o0AhSNaOfKoic0Sn1GkFCK4MxdRsw7mPJ5/rBpIqdvcC7MIuyUSW8WChUEvrK78HhNpYOgqCQbINxCTumJLzZA==} + '@formatjs/icu-messageformat-parser@2.11.2': + resolution: {integrity: sha512-AfiMi5NOSo2TQImsYAg8UYddsNJ/vUEv/HaNqiFjnI3ZFfWihUtD5QtuX6kHl8+H+d3qvnE/3HZrfzgdWpsLNA==} + '@formatjs/icu-skeleton-parser@1.8.13': resolution: {integrity: sha512-N/LIdTvVc1TpJmMt2jVg0Fr1F7Q1qJPdZSCs19unMskCmVQ/sa0H9L8PWt13vq+gLdLg1+pPsvBLydL1Apahjg==} + '@formatjs/icu-skeleton-parser@1.8.14': + resolution: {integrity: sha512-i4q4V4qslThK4Ig8SxyD76cp3+QJ3sAqr7f6q9VVfeGtxG9OhiAk3y9XF6Q41OymsKzsGQ6OQQoJNY4/lI8TcQ==} + '@formatjs/intl-localematcher@0.6.0': resolution: {integrity: sha512-4rB4g+3hESy1bHSBG3tDFaMY2CH67iT7yne1e+0CLTsGLDcmoEWWpJjjpWVaYgYfYuohIRuo0E+N536gd2ZHZA==} + '@formatjs/intl-localematcher@0.6.1': + resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} + '@gluestack-ui/accordion@1.0.12': resolution: {integrity: sha512-oCOjT6X2eC0CCDKchXzTUhLiEOIcA11/+NmtHTpb3nmeL75K9btLaAjY4aJ+8bHU9aFHFrAJiTlvW18XfzpUJQ==} peerDependencies: @@ -1587,8 +1607,8 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/button@1.0.12': - resolution: {integrity: sha512-7uiAbkKk5AT7D4YU+HlCQUJVucL2qtQnLW/g+/Atc2h1XS8pWcUkB9CY30x9mHY9wWac1Q0s/BQr1iGFNSDjnw==} + '@gluestack-ui/button@1.0.14': + resolution: {integrity: sha512-Rqv5PY18jzeVACBwsVxXlyDbHjBiSXGVqY29VO6KHZGMMokCPW6MXYXT8ZpriLxMc1DRkgTtpTVYZCJBFaYTbg==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1623,8 +1643,8 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/icon@0.1.25': - resolution: {integrity: sha512-HCyiHHHZzHpP5MIy5F2hP8iBc+0yt2NNM+jhbPYeoRG4WY7wc1whaUs9EIQvj880cq/zxOQP0Bz4mnyhuKsEKQ==} + '@gluestack-ui/icon@0.1.27': + resolution: {integrity: sha512-mIsfgdVUihtRORoeDxn3kMFph5XOXK+Scnj1JXLufbt7h9kbfaZLGhYDc9cp2zpPc1Xki9SC1yXYfw8y4FAAdA==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1635,8 +1655,8 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/input@0.1.36': - resolution: {integrity: sha512-5BgJvziFKtRc7iLpBAiUkm4g0zVAPio5ptL+2+o/01JWBhKULn5y0OPZUAvSm5Ydg4ZL9uOSHAbUl2j8nA/+cQ==} + '@gluestack-ui/input@0.1.38': + resolution: {integrity: sha512-NzwDOXkkMYzBQ0h7UnhKA2h54/qlxDxMFGXykkmYOl7mc7QJc1aJaveo4yMHtpYvcQG17xLyD+Z+5CQYA76nvw==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1647,8 +1667,8 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/menu@0.2.41': - resolution: {integrity: sha512-+7/v/CDhwUg72F7EOHgQfw+1e/7qtnewPTN4oORcaBpIYoScCLnhRn+7lS7js7v2c3dwV371wtWc38MA+D3vaw==} + '@gluestack-ui/menu@0.2.43': + resolution: {integrity: sha512-RjThV7nqGOFnsdCMG/JHs2qrVvtjw3MwKJJPD0bAJa+rhBEk2n9tbEFHPR6KWWNUmSnP3aWSZldT5Y87JiVKNA==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1671,8 +1691,14 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/popover@0.1.47': - resolution: {integrity: sha512-jU6Sg1DA0THWmjA7RySNnwiH3PQ2RnUBggN8AUuvWtuBA1KBqkR/O4NknMltMGilim5FNX4IEeg8rHzdTv6KUg==} + '@gluestack-ui/overlay@0.1.22': + resolution: {integrity: sha512-ttlSjO/ysN9NuTq5JPoVwOAU8aKMaj738xTCxOVgBRr1+kbBUVpmBnygVlC6PvHvJF1A00a0ZTzw48CIVL5aNw==} + peerDependencies: + react: '>=16' + react-dom: '>=16' + + '@gluestack-ui/popover@0.1.49': + resolution: {integrity: sha512-AI73AXEPoIPGpwhQICn9BiQIJzCDGSb4RT6OQI2V3TKlBYM+RodZvK0RKMipEsROBQwNWbcJoPJRkH9jwDVrBA==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1689,14 +1715,14 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/provider@0.1.17': - resolution: {integrity: sha512-6SEzaH53pcYkYQjZmC46z0lx08GuJXiYlSPEzvkR+u7jhnDCulZAAEpYCv/bWvnSNGcffm68ip+3WWZej7CGUw==} + '@gluestack-ui/provider@0.1.19': + resolution: {integrity: sha512-+MbL2VpGK7kkSNccgNeMay/nslDA4BzgjHFWwnys+dSvyCMgt7yfSxrfWziTvAyaQ4cRkq/lXCfJK0B1nuCZ4A==} peerDependencies: react: '>=16' react-dom: '>=16' - '@gluestack-ui/radio@0.1.38': - resolution: {integrity: sha512-g8ujswUctEkxXJ0r6xIOW4PQ7KnTo4PdBjNT693iVu0xifFoRpzSMwyIBymPpw/9BekekEGY6rGlHlsAw1d3aw==} + '@gluestack-ui/radio@0.1.40': + resolution: {integrity: sha512-UJ6i3qpbBVsSWrxQi889yXczPjmfhfHCplMK2n4xkEfsYcjDVKpronVfqbJ41gf27fBzyLJFnCec3uPL4+obSA==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1713,8 +1739,8 @@ packages: react: '>=16' react-dom: '>=16' - '@gluestack-ui/slider@0.1.30': - resolution: {integrity: sha512-2sffbk3FRh+FF7croGey96Ta/aZhv9K2U+p+z1OYDlfY2/IvS/VklYJXwyYzOxz/HfDJAgNNFs+9B2nASlsCGA==} + '@gluestack-ui/slider@0.1.32': + resolution: {integrity: sha512-g0e7dAGOYYARlL3cdHe3mhN71j85TnqUgK/xOYWjVDE0U+atIXxxTVEXeO0ZPGJ3YUOUUAInIVGaa0xvnjEkYg==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -1761,6 +1787,12 @@ packages: react: '>=16' react-dom: '>=16' + '@gluestack-ui/utils@0.1.15': + resolution: {integrity: sha512-LRBMv+tr+bV4falMYS2zSt94PxL0vpvUN6F9d6oTqOYKhkiAkU6k2ROfNlT323m0CoTQto1LkJhPxULisQ2oeQ==} + peerDependencies: + react: '>=16' + react-dom: '>=16' + '@gorhom/bottom-sheet@5.1.1': resolution: {integrity: sha512-Y8FiuRmeZYaP+ZGQ0axDwWrrKqVp4ByYRs1D2fTJTxHMt081MHHRQsqmZ3SK7AFp3cSID+vTqnD8w/KAASpy+w==} peerDependencies: @@ -1927,15 +1959,27 @@ packages: '@internationalized/date@3.7.0': resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} + '@internationalized/date@3.8.2': + resolution: {integrity: sha512-/wENk7CbvLbkUvX1tu0mwq49CVkkWpkXubGel6birjRPyo6uQ4nQpnq5xZu823zRCwwn82zgHrvgF1vZyvmVgA==} + '@internationalized/message@3.1.6': resolution: {integrity: sha512-JxbK3iAcTIeNr1p0WIFg/wQJjIzJt9l/2KNY/48vXV7GRGZSv3zMxJsce008fZclk2cDC8y0Ig3odceHO7EfNQ==} + '@internationalized/message@3.1.8': + resolution: {integrity: sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==} + '@internationalized/number@3.6.0': resolution: {integrity: sha512-PtrRcJVy7nw++wn4W2OuePQQfTqDzfusSuY1QTtui4wa7r+rGVtR75pO8CyKvHvzyQYi3Q1uO5sY0AsB4e65Bw==} + '@internationalized/number@3.6.3': + resolution: {integrity: sha512-p+Zh1sb6EfrfVaS86jlHGQ9HA66fJhV9x5LiE5vCbZtXEHAuhcmUZUdZ4WrFpUBfNalr2OkAJI5AcKEQF+Lebw==} + '@internationalized/string@3.2.5': resolution: {integrity: sha512-rKs71Zvl2OKOHM+mzAFMIyqR5hI1d1O6BBkMK2/lkfg3fkmVh9Eeg0awcA8W2WqYqDOv6a86DIOlFpggwLtbuw==} + '@internationalized/string@3.2.7': + resolution: {integrity: sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==} + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2399,14 +2443,32 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/dialog@3.5.26': + resolution: {integrity: sha512-X4KKf0OPHIje+68I0GRDkIcg+qsrBEQskl72aX7GQy6oNBta3ZTxQJrK2HTYdBDJnr1ADQdxYi+pZ5zPYDjODA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/focus@3.19.1': resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/form@3.0.12': - resolution: {integrity: sha512-8uvPYEd3GDyGt5NRJIzdWW1Ry5HLZq37vzRZKUW8alZ2upFMH3KJJG55L9GP59KiF6zBrYBebvI/YK1Ye1PE1g==} + '@react-aria/focus@3.20.4': + resolution: {integrity: sha512-E9M/kPYvF1fBZpkRXsKqMhvBVEyTY7vmkHeXLJo6tInKQOjYyYs0VeWlnGnxBjQIAH7J7ZKAORfTFQQHyhoueQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/form@3.0.17': + resolution: {integrity: sha512-d7Cic5OGBqI/OMUuHlPrPn6udSvjdpurrrwbnSYzrGlVhDmKLUdrLTtBL8O1MPzluAyW52azqJXSpsjwh288KA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/i18n@3.12.10': + resolution: {integrity: sha512-1j00soQ2W0nTgzaaIsGFdMF/5aN60AEdCJPhmXGZiuWdWzMxObN9LQ9vdzYPTjTqyqMdSaSp9DZKs5I26Xovpw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2423,8 +2485,14 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/label@3.7.14': - resolution: {integrity: sha512-EN1Md2YvcC4sMqBoggsGYUEGlTNqUfJZWzduSt29fbQp1rKU2KlybTe+TWxKq/r2fFd+4JsRXxMeJiwB3w2AQA==} + '@react-aria/interactions@3.25.2': + resolution: {integrity: sha512-BWyZXBT4P17b9C9HfOIT2glDFMH9nUCfQF7vZ5FEeXNBudH/8OcSbzyBUG4Dg3XPtkOem5LP59ocaizkl32Tvg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/label@3.7.19': + resolution: {integrity: sha512-ZJIj/BKf66q52idy24ErzX77vDGuyQn4neWtu51RRSk4npI3pJqEPsdkPCdo2dlBCo/Uc1pfuLGg2hY3N/ni9Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2441,8 +2509,14 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/radio@3.10.11': - resolution: {integrity: sha512-R150HsBFPr1jLMShI4aBM8heCa1k6h0KEvnFRfTAOBu+B9hMSZOPB+d6GQOwGPysNlbset90Kej8G15FGHjqiA==} + '@react-aria/overlays@3.27.2': + resolution: {integrity: sha512-lWerY4caK2+AXzdPhUqAov3Di2mSfIKdaEEj+99iXeH85zzs2cbWZRvvCwwVGQ0GprypxETz1jb1Wq/55xDALw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/radio@3.11.4': + resolution: {integrity: sha512-kxML2cuI4/5AlSSzOAwXVXoouvrICxGdWbs0ze0IHaGkw6p3oKa5By6I6tT0+8/Kxy6ZFeCL+l/PU6K/ysAdAA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2453,8 +2527,14 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-aria/slider@3.7.15': - resolution: {integrity: sha512-v9tujsuvJYRX0vE/vMYBzTT9FXbzrLsjkOrouNq+UdBIr7wRjIWTHHM0j+khb2swyCWNTbdv6Ce316Zqx2qWFg==} + '@react-aria/selection@3.24.2': + resolution: {integrity: sha512-YIdCYe1yXXfbZ0snUMWrQpOxtJO0+eHHp3+PSqZ/dyvLqMlTlYnOv2j5lc36sN0r1YWfN8OEpxzK3jHdD4M6yA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/slider@3.7.20': + resolution: {integrity: sha512-ciRfI0ya89pm4R+2RE7vLhu5OjdsAQfzghVI5Eh5AHpwjajMJ41O4Vkyt2ci5KTcjwg80CFftAWmF02w2hKR5Q==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2465,6 +2545,12 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/ssr@3.9.9': + resolution: {integrity: sha512-2P5thfjfPy/np18e5wD4WPt8ydNXhij1jwA8oehxZTFqlgVMGXzcWKxTb4RtJrLFsqPO7RUQTiY8QJk0M4Vy2g==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/toggle@3.10.11': resolution: {integrity: sha512-J3jO3KJiUbaYVDEpeXSBwqcyKxpi9OreiHRGiaxb6VwB+FWCj7Gb2WKajByXNyfs8jc6kX9VUFaXa7jze60oEQ==} peerDependencies: @@ -2477,12 +2563,24 @@ packages: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/utils@3.29.1': + resolution: {integrity: sha512-yXMFVJ73rbQ/yYE/49n5Uidjw7kh192WNN9PNQGV0Xoc7EJUlSOxqhnpHmYTyO0EotJ8fdM1fMH8durHjUSI8g==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/visually-hidden@3.8.19': resolution: {integrity: sha512-MZgCCyQ3sdG94J5iJz7I7Ai3IxoN0U5d/+EaUnA1mfK7jf2fSYQBqi6Eyp8sWUYzBTLw4giXB5h0RGAnWzk9hA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-aria/visually-hidden@3.8.24': + resolution: {integrity: sha512-vhGhALs/PGdTs/7GD2hsy7CF1LBF9QlL57HkRSu8kfiuiA7rqRTqYg6q723OvaFsspj3DCxP2MLQhvvZSWe7Ng==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-native-aria/accordion@0.0.2': resolution: {integrity: sha512-2Wa/YDBc2aCunTLpqwxTfCwn1t63KSAIoXd0hqrUGJJF+N2bEs2Hqs9ZgyKJ/hzFxCknVPMqo0fEVE1H23Z5+g==} peerDependencies: @@ -2501,6 +2599,12 @@ packages: react: '*' react-native: '*' + '@react-native-aria/dialog@0.0.5': + resolution: {integrity: sha512-ZThiWyymf3WiA2EdjStV32pTL3RjAb7H/CL0Zsd1wKNuw1lU9HX6h4UIUpt0MZhcFCUnZjCovNtU9IRwbbdj/Q==} + peerDependencies: + react: '*' + react-native: '*' + '@react-native-aria/focus@0.2.9': resolution: {integrity: sha512-zVgOIzKwnsyyurUxlZnzUKB2ekK/cmK64sQJIKKUlkJKVxd2EAFf7Sjz/NVEoMhTODN3qGRASTv9bMk/pBzzVA==} peerDependencies: @@ -2513,8 +2617,14 @@ packages: react: '*' react-native: '*' - '@react-native-aria/menu@0.2.13': - resolution: {integrity: sha512-W7PgA1W7a+yW84PtkejXSEQsWFqGdtkpNCPesOxSMTzAn6GPsrB/tDlALIR/vUbFOPoblkeDWqnGCLxhOKZbxg==} + '@react-native-aria/interactions@0.2.16': + resolution: {integrity: sha512-tJ7mhG0P6cElLTcL4yfV3HSfqdD8tpAwHKjtamyeua8i6tsu7BOxGmfGmPQ5ueJl7/mHqf8xyTv1xGW288CKXQ==} + peerDependencies: + react: '*' + react-native: '*' + + '@react-native-aria/menu@0.2.15': + resolution: {integrity: sha512-ezuz3EAPVERL5YPut0wQmcRwIyWNoAMkA9ItVI9mFWhyvUJRt1rNNA0sG580KzTwAx/1vezJmCMBhkDLeTDYjg==} peerDependencies: react: '*' react-native: '*' @@ -2526,14 +2636,21 @@ packages: react-dom: '*' react-native: '*' - '@react-native-aria/radio@0.2.11': - resolution: {integrity: sha512-xO6ATAVqX0iXxVSo2oar5BJsvO363MTYIX5Y50ew5BUEpP0j0raZ3NlbaBDQ1wYiBb1PLNQp83jSZ59g7qFwqg==} + '@react-native-aria/overlays@0.3.15': + resolution: {integrity: sha512-ialIMsXmiQe6A2cWv4O62nJs8raAEkC27BYUu0Z6BEWbhYn+3MhrujxFzsozJ6bwDZgsfNOqtfwk1ScXJxXjkQ==} + peerDependencies: + react: '*' + react-dom: '*' + react-native: '*' + + '@react-native-aria/radio@0.2.13': + resolution: {integrity: sha512-80FQ+k10738MOnFwOyP3RvAGUAdozYY54vUZNNg2z7MH6GaKyok538cDIzVa9p4cCL58CU8Te8vnd+ItOR3nBg==} peerDependencies: react: '*' react-native: '*' - '@react-native-aria/slider@0.2.11': - resolution: {integrity: sha512-GVT0VOEosf7jk5B6nU0stxitnHbAWLjmarOgkun0/Nnkc0/RwRaf+hfdPGA8rZqNS01CIgooJSrxfIfyNgybpg==} + '@react-native-aria/slider@0.2.12': + resolution: {integrity: sha512-xh528Ddwyyl7MbTNGkTlQnzLId6xZ3mLPyT9bM/oQ2rGCFufL7cznKYk41QGBLaMBJ4n2ig0MAVIijoJU+/HkQ==} peerDependencies: react: '*' react-native: '*' @@ -2550,6 +2667,12 @@ packages: react: '*' react-native: '*' + '@react-native-aria/utils@0.2.12': + resolution: {integrity: sha512-752/tQ5fjDdc/3Gw8cKqml4NucfiFrO8wPmlg0bBgaCvfQDJaUMi4grme3/fBPCUoK2wk9/yJHfwkv45Gi5Eew==} + peerDependencies: + react: '*' + react-native: '*' + '@react-native/assets-registry@0.76.9': resolution: {integrity: sha512-pN0Ws5xsjWOZ8P37efh0jqHHQmq+oNGKT4AyAoKRpxBDDDmlAmpaYjer9Qz7PpDKF+IUyRjF/+rBsM50a8JcUg==} engines: {node: '>=18'} @@ -2680,6 +2803,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/collections@3.12.5': + resolution: {integrity: sha512-5SIb+6nF9cyu+WXqZ6io56BtdOu8FjSQQaaLCCpfAC6fc6zHRk8by0WreRmvJ5/Kn8oq2FNJtCNRvluM0Z01UA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/color@3.8.2': resolution: {integrity: sha512-GXwLmv1Eos2OwOiRsGFrXBKx8+uZh2q0qzLZEVYrWsedNhIdTm7nnpwO68nCYZPHkqhv6rhhVSlOOFmDLY++ow==} peerDependencies: @@ -2713,11 +2841,19 @@ packages: '@react-stately/flags@3.0.5': resolution: {integrity: sha512-6wks4csxUwPCp23LgJSnkBRhrWpd9jGd64DjcCTNB2AHIFu7Ab1W59pJpUL6TW7uAxVxdNKjgn6D1hlBy8qWsA==} + '@react-stately/flags@3.1.2': + resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} + '@react-stately/form@3.1.1': resolution: {integrity: sha512-qavrz5X5Mdf/Q1v/QJRxc0F8UTNEyRCNSM1we/nnF7GV64+aYSDLOtaRGmzq+09RSwo1c8ZYnIkK5CnwsPhTsQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/form@3.1.5': + resolution: {integrity: sha512-wOs0SVXFgNr1aIdywiNH1MhxrFlN5YxBr1k9y3Z7lX+pc/MGRJFTgfDDw5JDxvwLH9joJ9ciniCdWep9L/TqcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/grid@3.10.1': resolution: {integrity: sha512-MOIy//AdxZxIXIzvWSKpvMvaPEMZGQNj+/cOsElHepv/Veh0psNURZMh2TP6Mr0+MnDTZbX+5XIeinGkWYO3JQ==} peerDependencies: @@ -2733,6 +2869,11 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/menu@3.9.5': + resolution: {integrity: sha512-Y+PqHBaQToo6ooCB4i4RoNfRiHbd4iozmLWePBrF4d/zBzJ9p+/5O6XIWFxLw4O128Tg3tSMGuwrxfecPDYHzA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/numberfield@3.9.9': resolution: {integrity: sha512-hZsLiGGHTHmffjFymbH1qVmA633rU2GNjMFQTuSsN4lqqaP8fgxngd5pPCoTCUFEkUgWjdHenw+ZFByw8lIE+g==} peerDependencies: @@ -2743,11 +2884,21 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/overlays@3.6.17': + resolution: {integrity: sha512-bkGYU4NPC/LgX9OGHLG8hpf9QDoazlb6fKfD+b5o7GtOdctBqCR287T/IBOQyvHqpySqrQ8XlyaGxJPGIcCiZw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/radio@3.10.10': resolution: {integrity: sha512-9x3bpq87uV8iYA4NaioTTWjriQSlSdp+Huqlxll0T3W3okpyraTTejE91PbIoRTUmL5qByIh2WzxYmr4QdBgAA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/radio@3.10.14': + resolution: {integrity: sha512-Y7xizUWJ0YJ8pEtqMeKOibX21B5dk56fHgMHXYLeUEm43y5muWQft2YvP0/n4mlkP2Isbk96kPbv7/ez3Gi+lA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/searchfield@3.5.9': resolution: {integrity: sha512-7/aO/oLJ4czKEji0taI/lbHKqPJRag9p3YmRaZ4yqjIMpKxzmJCWQcov5lzWeFhG/1hINKndYlxFnVIKV/urpg==} peerDependencies: @@ -2763,8 +2914,13 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-stately/slider@3.6.1': - resolution: {integrity: sha512-8kij5O82Xe233vZZ6qNGqPXidnlNQiSnyF1q613c7ktFmzAyGjkIWVUapHi23T1fqm7H2Rs3RWlmwE9bo2KecA==} + '@react-stately/selection@3.20.3': + resolution: {integrity: sha512-TLyjodgFHn5fynQnRmZ5YX1HRY0KC7XBW0Nf2+q9mWk4gUxYm7RVXyYZvMIG1iKqinPYtySPRHdNzyXq9P9sxQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/slider@3.6.5': + resolution: {integrity: sha512-XnHSHbXeHiE5J7nsXQvlXaKaNn1Z4jO1aQyiZsolK1NXW6VMKVeAgZUBG45k7xQW06aRbjREMmiIz02mW8fajQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -2793,16 +2949,31 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/tree@3.9.0': + resolution: {integrity: sha512-VpWAh36tbMHJ1CtglPQ81KPdpCfqFz9yAC6nQuL1x6Tmbs9vNEKloGILMI9/4qLzC+3nhCVJj6hN+xqS5/cMTg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/utils@3.10.5': resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-stately/utils@3.10.7': + resolution: {integrity: sha512-cWvjGAocvy4abO9zbr6PW6taHgF24Mwy/LbQ4TC4Aq3tKdKDntxyD+sh7AkSRfJRT2ccMVaHVv2+FfHThd3PKQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/button@3.10.2': resolution: {integrity: sha512-h8SB/BLoCgoBulCpyzaoZ+miKXrolK9XC48+n1dKJXT8g4gImrficurDW6+PRTQWaRai0Q0A6bu8UibZOU4syg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/button@3.12.2': + resolution: {integrity: sha512-QLoSCX8E7NFIdkVMa65TPieve0rKeltfcIxiMtrphjfNn+83L0IHMcbhjf4r4W19c/zqGbw3E53Hx8mNukoTUw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/calendar@3.6.0': resolution: {integrity: sha512-BtFh4BFwvsYlsaSqUOVxlqXZSlJ6u4aozgO3PwHykhpemwidlzNwm9qDZhcMWPioNF/w2cU/6EqhvEKUHDnFZg==} peerDependencies: @@ -2833,11 +3004,21 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/dialog@3.5.19': + resolution: {integrity: sha512-+FIyFnoKIGNL20zG8Sye7rrRxmt5HoeaCaHhDCTtNtv8CZEhm3Z+kNd4gylgWAxZRhDtBRWko+ADqfN5gQrgKg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/grid@3.2.11': resolution: {integrity: sha512-Mww9nrasppvPbsBi+uUqFnf7ya8fXN0cTVzDNG+SveD8mhW+sbtuy+gPtEpnFD2Oyi8qLuObefzt4gdekJX2Yw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/menu@3.10.2': + resolution: {integrity: sha512-TVQFGttaNCcIvy1MKavb9ZihJmng46uUtVF9oTG/VI/C4YEdzekteI6iSsXbjv5ZAvOKQR+S25IWCbK2W0YCjQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/menu@3.9.14': resolution: {integrity: sha512-RJW/S8IPwbRuohJ/A9HJ7W8QaAY816tm7Nv6+H/TLXG76zu2AS5vEgq+0TcCAWvJJwUdLDpJWJMlo0iIoIBtcg==} peerDependencies: @@ -2853,6 +3034,16 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/overlays@3.8.16': + resolution: {integrity: sha512-Aj9jIFwALk9LiOV/s3rVie+vr5qWfaJp/6aGOuc2StSNDTHvj1urSAr3T0bT8wDlkrqnlS4JjEGE40ypfOkbAA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/radio@3.8.10': + resolution: {integrity: sha512-hLOu2CXxzxQqkEkXSM71jEJMnU5HvSzwQ+DbJISDjgfgAKvZZHMQX94Fht2Vj+402OdI77esl3pJ1tlSLyV5VQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + '@react-types/radio@3.8.6': resolution: {integrity: sha512-woTQYdRFjPzuml4qcIf+2zmycRuM5w3fDS5vk6CQmComVUjOFPtD28zX3Z9kc9lSNzaBQz9ONZfFqkZ1gqfICA==} peerDependencies: @@ -2873,8 +3064,13 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@react-types/slider@3.7.8': - resolution: {integrity: sha512-utW1o9KT70hqFwu1zqMtyEWmP0kSATk4yx+Fm/peSR4iZa+BasRqH83yzir5GKc8OfqfE1kmEsSlO98/k986+w==} + '@react-types/shared@3.30.0': + resolution: {integrity: sha512-COIazDAx1ncDg046cTJ8SFYsX8aS3lB/08LDnbkH/SkdYrFPWDlXMrO/sUam8j1WWM+PJ+4d1mj7tODIKNiFog==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/slider@3.7.12': + resolution: {integrity: sha512-kOQLrENLpQzmu6TfavdW1yfEc8VPitT4ZNMKOK0h7x3LskEWjptxcZ4IBowEpqHwk0eMbI9lRE/3tsShGUoLwQ==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 @@ -3077,6 +3273,9 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@tanstack/query-core@5.66.11': resolution: {integrity: sha512-ZEYxgHUcohj3sHkbRaw0gYwFxjY5O6M3IXOYXEun7E1rqNhsP8fOtqjJTKPZpVHcdIdrmX4lzZctT4+pts0OgA==} @@ -3182,8 +3381,8 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/geojson-vt@3.2.5': resolution: {integrity: sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==} @@ -3520,6 +3719,11 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -3884,6 +4088,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.25.0: + resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} @@ -3976,6 +4185,9 @@ packages: caniuse-lite@1.0.30001701: resolution: {integrity: sha512-faRs/AW3jA9nTwmJBSO1PQ6L/EOgsB5HMQQq4iCu5zhPgVVgO/pZRHlmatwijZKetFw8/Pr4q6dEN8sJuq8qTw==} + caniuse-lite@1.0.30001721: + resolution: {integrity: sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==} + centra@2.7.0: resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} @@ -4237,6 +4449,9 @@ packages: core-js-compat@3.42.0: resolution: {integrity: sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==} + core-js-compat@3.43.0: + resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4600,6 +4815,9 @@ packages: electron-to-chromium@1.5.109: resolution: {integrity: sha512-AidaH9JETVRr9DIPGfp1kAarm/W6hRJTPuCnkF+2MqhF4KaAgRIcBc8nvjk+YMXZhwfISof/7WG29eS4iGxQLQ==} + electron-to-chromium@1.5.165: + resolution: {integrity: sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw==} + elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} @@ -5764,6 +5982,9 @@ packages: intl-messageformat@10.7.15: resolution: {integrity: sha512-LRyExsEsefQSBjU2p47oAheoKz+EOJxSLDdjOaEjdriajfHsMXOmV/EhMvYSg9bAgCUHasuAC+mcUBe/95PfIg==} + intl-messageformat@10.7.16: + resolution: {integrity: sha512-UmdmHUmp5CIKKjSoE10la5yfU+AYJAaiYLsodbjL4lji83JNvgOQUjGaGhGrpFCb0Uh7sl7qfP1IyILa8Z40ug==} + invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -8648,6 +8869,11 @@ packages: engines: {node: '>=10'} hasBin: true + terser@5.41.0: + resolution: {integrity: sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==} + engines: {node: '>=10'} + hasBin: true + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -10333,7 +10559,7 @@ snapshots: babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.26.9) babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.9) babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.26.9) - core-js-compat: 3.42.0 + core-js-compat: 3.43.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -10349,7 +10575,7 @@ snapshots: dependencies: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.27.3 + '@babel/types': 7.27.6 esutils: 2.0.3 '@babel/preset-react@7.26.3(@babel/core@7.26.9)': @@ -10388,6 +10614,8 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.27.6': {} + '@babel/template@7.26.9': dependencies: '@babel/code-frame': 7.26.2 @@ -10434,6 +10662,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.27.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@bcoe/v8-coverage@0.2.3': {} '@bufbuild/protobuf@1.10.1': {} @@ -10953,25 +11186,51 @@ snapshots: decimal.js: 10.5.0 tslib: 2.8.1 + '@formatjs/ecma402-abstract@2.3.4': + dependencies: + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/intl-localematcher': 0.6.1 + decimal.js: 10.5.0 + tslib: 2.8.1 + '@formatjs/fast-memoize@2.2.6': dependencies: tslib: 2.8.1 + '@formatjs/fast-memoize@2.2.7': + dependencies: + tslib: 2.8.1 + '@formatjs/icu-messageformat-parser@2.11.1': dependencies: '@formatjs/ecma402-abstract': 2.3.3 '@formatjs/icu-skeleton-parser': 1.8.13 tslib: 2.8.1 + '@formatjs/icu-messageformat-parser@2.11.2': + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/icu-skeleton-parser': 1.8.14 + tslib: 2.8.1 + '@formatjs/icu-skeleton-parser@1.8.13': dependencies: '@formatjs/ecma402-abstract': 2.3.3 tslib: 2.8.1 + '@formatjs/icu-skeleton-parser@1.8.14': + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + tslib: 2.8.1 + '@formatjs/intl-localematcher@0.6.0': dependencies: tslib: 2.8.1 + '@formatjs/intl-localematcher@0.6.1': + dependencies: + tslib: 2.8.1 + '@gluestack-ui/accordion@1.0.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -11023,11 +11282,11 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/button@1.0.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/button@1.0.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/utils': 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -11077,9 +11336,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@gluestack-ui/icon@0.1.25(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/icon@0.1.27(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@gluestack-ui/provider': 0.1.17(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/provider': 0.1.19(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -11097,12 +11356,12 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/input@0.1.36(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/input@0.1.38(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gluestack-ui/form-control': 0.1.19(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/utils': 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -11118,17 +11377,17 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/menu@0.2.41(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/menu@0.2.43(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gluestack-ui/hooks': 0.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@gluestack-ui/overlay': 0.1.20(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/overlay': 0.1.22(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/utils': 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-aria/menu': 3.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/overlays': 3.25.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/menu': 0.2.13(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/overlays': 0.3.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/menu': 0.2.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/overlays': 0.3.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-stately/utils': 3.10.5(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11170,15 +11429,25 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/popover@0.1.47(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/overlay@0.1.22(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/overlays': 0.3.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - react-native + + '@gluestack-ui/popover@0.1.49(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gluestack-ui/hooks': 0.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@gluestack-ui/overlay': 0.1.20(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/dialog': 0.0.4(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/overlay': 0.1.22(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/utils': 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/dialog': 0.0.5(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/overlays': 0.3.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/overlays': 0.3.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -11202,9 +11471,9 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/provider@0.1.17(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/provider@0.1.19(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tsconfig: 7.0.0 @@ -11212,14 +11481,14 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/radio@0.1.38(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/radio@0.1.40(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gluestack-ui/form-control': 0.1.19(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@gluestack-ui/utils': 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-aria/visually-hidden': 3.8.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/radio': 0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/radio': 0.2.13(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-stately/radio': 3.10.10(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -11245,15 +11514,15 @@ snapshots: transitivePeerDependencies: - react-native - '@gluestack-ui/slider@0.1.30(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@gluestack-ui/slider@0.1.32(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gluestack-ui/form-control': 0.1.19(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@gluestack-ui/hooks': 0.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@gluestack-ui/utils': 0.1.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/slider': 0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-stately/slider': 3.6.1(react@18.3.1) + '@gluestack-ui/utils': 0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/slider': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-stately/slider': 3.6.5(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -11330,6 +11599,14 @@ snapshots: transitivePeerDependencies: - react-native + '@gluestack-ui/utils@0.1.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-native-aria/focus': 0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - react-native + '@gorhom/bottom-sheet@5.1.1(@types/react-native@0.73.0(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(@types/react@18.3.18)(react-native-gesture-handler@2.20.2(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native-reanimated@3.16.7(@babel/core@7.26.9)(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@gorhom/portal': 1.0.14(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -11484,20 +11761,37 @@ snapshots: '@internationalized/date@3.7.0': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + + '@internationalized/date@3.8.2': + dependencies: + '@swc/helpers': 0.5.17 '@internationalized/message@3.1.6': dependencies: '@swc/helpers': 0.5.15 intl-messageformat: 10.7.15 + '@internationalized/message@3.1.8': + dependencies: + '@swc/helpers': 0.5.17 + intl-messageformat: 10.7.16 + '@internationalized/number@3.6.0': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + + '@internationalized/number@3.6.3': + dependencies: + '@swc/helpers': 0.5.17 '@internationalized/string@3.2.5': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + + '@internationalized/string@3.2.7': + dependencies: + '@swc/helpers': 0.5.17 '@isaacs/cliui@8.0.2': dependencies: @@ -12157,7 +12451,7 @@ snapshots: '@react-aria/checkbox@3.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.9 - '@react-aria/label': 3.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/toggle': 3.10.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/checkbox': 3.6.11(react@18.3.1) @@ -12169,32 +12463,66 @@ snapshots: '@react-aria/dialog@3.5.21(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/overlays': 3.25.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-types/dialog': 3.5.15(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/dialog@3.5.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/dialog': 3.5.19(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) '@react-aria/focus@3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 clsx: 2.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/form@3.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/focus@3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-stately/form': 3.1.1(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/form@3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/form': 3.1.5(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/i18n@3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@internationalized/date': 3.8.2 + '@internationalized/message': 3.1.8 + '@internationalized/number': 3.6.3 + '@internationalized/string': 3.2.7 + '@react-aria/ssr': 3.9.9(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12215,16 +12543,26 @@ snapshots: dependencies: '@react-aria/ssr': 3.9.7(react@18.3.1) '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/label@3.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/interactions@3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-aria/ssr': 3.9.9(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/flags': 3.1.2 + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/label@3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12254,7 +12592,7 @@ snapshots: '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/ssr': 3.9.7(react@18.3.1) '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/visually-hidden': 3.8.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/overlays': 3.6.13(react@18.3.1) '@react-types/button': 3.10.2(react@18.3.1) '@react-types/overlays': 3.8.12(react@18.3.1) @@ -12263,18 +12601,34 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/radio@3.10.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/form': 3.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.12.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/label': 3.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-stately/radio': 3.10.10(react@18.3.1) - '@react-types/radio': 3.8.6(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-aria/overlays@3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/ssr': 3.9.9(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/visually-hidden': 3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/overlays': 3.6.17(react@18.3.1) + '@react-types/button': 3.12.2(react@18.3.1) + '@react-types/overlays': 3.8.16(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/radio@3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/form': 3.0.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/radio': 3.10.14(react@18.3.1) + '@react-types/radio': 3.8.10(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12290,43 +12644,70 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@react-aria/slider@3.7.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@react-aria/selection@3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/i18n': 3.12.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/label': 3.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-stately/slider': 3.6.1(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@react-types/slider': 3.7.8(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/selection': 3.20.3(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/slider@3.7.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/i18n': 3.12.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-stately/slider': 3.6.5(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@react-types/slider': 3.7.12(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) '@react-aria/ssr@3.9.7(react@18.3.1)': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + react: 18.3.1 + + '@react-aria/ssr@3.9.9(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-aria/toggle@3.10.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-stately/toggle': 3.8.1(react@18.3.1) '@react-types/checkbox': 3.9.1(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) '@react-aria/utils@3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/ssr': 3.9.7(react@18.3.1) - '@react-stately/utils': 3.10.5(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/utils@3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.9(react@18.3.1) + '@react-stately/flags': 3.1.2 + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 clsx: 2.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12340,6 +12721,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-aria/visually-hidden@3.8.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@react-native-aria/accordion@0.0.2(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 @@ -12368,6 +12758,17 @@ snapshots: transitivePeerDependencies: - react-dom + '@react-native-aria/dialog@0.0.5(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/dialog': 3.5.26(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/utils': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-types/dialog': 3.5.19(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + react: 18.3.1 + react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) + transitivePeerDependencies: + - react-dom + '@react-native-aria/focus@0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -12386,19 +12787,29 @@ snapshots: transitivePeerDependencies: - react-dom - '@react-native-aria/menu@0.2.13(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@react-native-aria/interactions@0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/utils': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) + transitivePeerDependencies: + - react-dom + + '@react-native-aria/menu@0.2.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/menu': 3.17.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/selection': 3.22.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/overlays': 0.3.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/utils': 0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-stately/collections': 3.12.1(react@18.3.1) - '@react-stately/menu': 3.9.1(react@18.3.1) - '@react-stately/tree': 3.8.7(react@18.3.1) - '@react-types/menu': 3.9.14(react@18.3.1) + '@react-aria/selection': 3.24.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/overlays': 0.3.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/utils': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-stately/collections': 3.12.5(react@18.3.1) + '@react-stately/menu': 3.9.5(react@18.3.1) + '@react-stately/tree': 3.9.0(react@18.3.1) + '@react-types/menu': 3.10.2(react@18.3.1) react: 18.3.1 react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) transitivePeerDependencies: @@ -12416,28 +12827,40 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) - '@react-native-aria/radio@0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@react-native-aria/overlays@0.3.15(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/radio': 3.10.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-native-aria/utils': 0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/overlays': 3.27.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/utils': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-stately/overlays': 3.6.17(react@18.3.1) + '@react-types/overlays': 3.8.16(react@18.3.1) + dom-helpers: 5.2.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) + + '@react-native-aria/radio@0.2.13(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/radio': 3.11.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/interactions': 0.2.16(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-native-aria/utils': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-stately/radio': 3.10.10(react@18.3.1) - '@react-types/radio': 3.8.6(react@18.3.1) + '@react-types/radio': 3.8.10(react@18.3.1) react: 18.3.1 react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) transitivePeerDependencies: - react-dom - '@react-native-aria/slider@0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@react-native-aria/slider@0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/label': 3.7.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/slider': 3.7.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@react-native-aria/utils': 0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) - '@react-stately/slider': 3.6.1(react@18.3.1) + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.25.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/label': 3.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/slider': 3.7.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-native-aria/utils': 0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) + '@react-stately/slider': 3.6.5(react@18.3.1) react: 18.3.1 react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) transitivePeerDependencies: @@ -12445,7 +12868,7 @@ snapshots: '@react-native-aria/toggle@0.2.9(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.20.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@react-native-aria/interactions': 0.2.14(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) '@react-native-aria/utils': 0.2.11(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -12465,6 +12888,15 @@ snapshots: transitivePeerDependencies: - react-dom + '@react-native-aria/utils@0.2.12(react-dom@18.3.1(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.9(react@18.3.1) + '@react-aria/utils': 3.29.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) + transitivePeerDependencies: + - react-dom + '@react-native/assets-registry@0.76.9': {} '@react-native/babel-plugin-codegen@0.76.9(@babel/preset-env@7.26.9(@babel/core@7.26.9))': @@ -12673,7 +13105,7 @@ snapshots: '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/calendar': 3.6.0(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/checkbox@3.6.11(react@18.3.1)': @@ -12688,7 +13120,13 @@ snapshots: '@react-stately/collections@3.12.1(react@18.3.1)': dependencies: '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + react: 18.3.1 + + '@react-stately/collections@3.12.5(react@18.3.1)': + dependencies: + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/color@3.8.2(react@18.3.1)': @@ -12697,11 +13135,11 @@ snapshots: '@internationalized/string': 3.2.5 '@react-stately/form': 3.1.1(react@18.3.1) '@react-stately/numberfield': 3.9.9(react@18.3.1) - '@react-stately/slider': 3.6.1(react@18.3.1) + '@react-stately/slider': 3.6.5(react@18.3.1) '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/color': 3.0.2(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/combobox@3.10.2(react@18.3.1)': @@ -12714,13 +13152,13 @@ snapshots: '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/combobox': 3.13.2(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/data@3.12.1(react@18.3.1)': dependencies: '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/datepicker@3.12.0(react@18.3.1)': @@ -12732,26 +13170,30 @@ snapshots: '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/datepicker': 3.10.0(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/disclosure@3.0.1(react@18.3.1)': dependencies: '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/dnd@3.5.1(react@18.3.1)': dependencies: '@react-stately/selection': 3.19.0(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/flags@3.0.5': dependencies: - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + + '@react-stately/flags@3.1.2': + dependencies: + '@swc/helpers': 0.5.17 '@react-stately/form@3.1.1(react@18.3.1)': dependencies: @@ -12759,13 +13201,19 @@ snapshots: '@swc/helpers': 0.5.15 react: 18.3.1 + '@react-stately/form@3.1.5(react@18.3.1)': + dependencies: + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + '@react-stately/grid@3.10.1(react@18.3.1)': dependencies: '@react-stately/collections': 3.12.1(react@18.3.1) '@react-stately/selection': 3.19.0(react@18.3.1) '@react-types/grid': 3.2.11(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/list@3.11.2(react@18.3.1)': @@ -12774,7 +13222,7 @@ snapshots: '@react-stately/selection': 3.19.0(react@18.3.1) '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/menu@3.9.1(react@18.3.1)': @@ -12782,7 +13230,15 @@ snapshots: '@react-stately/overlays': 3.6.13(react@18.3.1) '@react-types/menu': 3.9.14(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + react: 18.3.1 + + '@react-stately/menu@3.9.5(react@18.3.1)': + dependencies: + '@react-stately/overlays': 3.6.17(react@18.3.1) + '@react-types/menu': 3.10.2(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/numberfield@3.9.9(react@18.3.1)': @@ -12791,14 +13247,21 @@ snapshots: '@react-stately/form': 3.1.1(react@18.3.1) '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/numberfield': 3.8.8(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/overlays@3.6.13(react@18.3.1)': dependencies: - '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-stately/utils': 3.10.7(react@18.3.1) '@react-types/overlays': 3.8.12(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + react: 18.3.1 + + '@react-stately/overlays@3.6.17(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/overlays': 3.8.16(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/radio@3.10.10(react@18.3.1)': @@ -12810,11 +13273,20 @@ snapshots: '@swc/helpers': 0.5.15 react: 18.3.1 + '@react-stately/radio@3.10.14(react@18.3.1)': + dependencies: + '@react-stately/form': 3.1.5(react@18.3.1) + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/radio': 3.8.10(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + '@react-stately/searchfield@3.5.9(react@18.3.1)': dependencies: '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/searchfield': 3.5.11(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/select@3.6.10(react@18.3.1)': @@ -12824,7 +13296,7 @@ snapshots: '@react-stately/overlays': 3.6.13(react@18.3.1) '@react-types/select': 3.9.9(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/selection@3.19.0(react@18.3.1)': @@ -12832,15 +13304,23 @@ snapshots: '@react-stately/collections': 3.12.1(react@18.3.1) '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 - '@react-stately/slider@3.6.1(react@18.3.1)': + '@react-stately/selection@3.20.3(react@18.3.1)': dependencies: - '@react-stately/utils': 3.10.5(react@18.3.1) - '@react-types/shared': 3.27.0(react@18.3.1) - '@react-types/slider': 3.7.8(react@18.3.1) - '@swc/helpers': 0.5.15 + '@react-stately/collections': 3.12.5(react@18.3.1) + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 + react: 18.3.1 + + '@react-stately/slider@3.6.5(react@18.3.1)': + dependencies: + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@react-types/slider': 3.7.12(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/table@3.13.1(react@18.3.1)': @@ -12853,7 +13333,7 @@ snapshots: '@react-types/grid': 3.2.11(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) '@react-types/table': 3.10.4(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/tabs@3.7.1(react@18.3.1)': @@ -12861,7 +13341,7 @@ snapshots: '@react-stately/list': 3.11.2(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) '@react-types/tabs': 3.3.12(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/toggle@3.8.1(react@18.3.1)': @@ -12876,7 +13356,7 @@ snapshots: dependencies: '@react-stately/overlays': 3.6.13(react@18.3.1) '@react-types/tooltip': 3.4.14(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/tree@3.8.7(react@18.3.1)': @@ -12885,7 +13365,16 @@ snapshots: '@react-stately/selection': 3.19.0(react@18.3.1) '@react-stately/utils': 3.10.5(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) - '@swc/helpers': 0.5.15 + '@swc/helpers': 0.5.17 + react: 18.3.1 + + '@react-stately/tree@3.9.0(react@18.3.1)': + dependencies: + '@react-stately/collections': 3.12.5(react@18.3.1) + '@react-stately/selection': 3.20.3(react@18.3.1) + '@react-stately/utils': 3.10.7(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + '@swc/helpers': 0.5.17 react: 18.3.1 '@react-stately/utils@3.10.5(react@18.3.1)': @@ -12893,11 +13382,21 @@ snapshots: '@swc/helpers': 0.5.15 react: 18.3.1 + '@react-stately/utils@3.10.7(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.17 + react: 18.3.1 + '@react-types/button@3.10.2(react@18.3.1)': dependencies: '@react-types/shared': 3.27.0(react@18.3.1) react: 18.3.1 + '@react-types/button@3.12.2(react@18.3.1)': + dependencies: + '@react-types/shared': 3.30.0(react@18.3.1) + react: 18.3.1 + '@react-types/calendar@3.6.0(react@18.3.1)': dependencies: '@internationalized/date': 3.7.0 @@ -12912,7 +13411,7 @@ snapshots: '@react-types/color@3.0.2(react@18.3.1)': dependencies: '@react-types/shared': 3.27.0(react@18.3.1) - '@react-types/slider': 3.7.8(react@18.3.1) + '@react-types/slider': 3.7.12(react@18.3.1) react: 18.3.1 '@react-types/combobox@3.13.2(react@18.3.1)': @@ -12924,7 +13423,7 @@ snapshots: dependencies: '@internationalized/date': 3.7.0 '@react-types/calendar': 3.6.0(react@18.3.1) - '@react-types/overlays': 3.8.12(react@18.3.1) + '@react-types/overlays': 3.8.16(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) react: 18.3.1 @@ -12934,11 +13433,23 @@ snapshots: '@react-types/shared': 3.27.0(react@18.3.1) react: 18.3.1 + '@react-types/dialog@3.5.19(react@18.3.1)': + dependencies: + '@react-types/overlays': 3.8.16(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + react: 18.3.1 + '@react-types/grid@3.2.11(react@18.3.1)': dependencies: '@react-types/shared': 3.27.0(react@18.3.1) react: 18.3.1 + '@react-types/menu@3.10.2(react@18.3.1)': + dependencies: + '@react-types/overlays': 3.8.16(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + react: 18.3.1 + '@react-types/menu@3.9.14(react@18.3.1)': dependencies: '@react-types/overlays': 3.8.12(react@18.3.1) @@ -12952,7 +13463,17 @@ snapshots: '@react-types/overlays@3.8.12(react@18.3.1)': dependencies: - '@react-types/shared': 3.27.0(react@18.3.1) + '@react-types/shared': 3.30.0(react@18.3.1) + react: 18.3.1 + + '@react-types/overlays@3.8.16(react@18.3.1)': + dependencies: + '@react-types/shared': 3.30.0(react@18.3.1) + react: 18.3.1 + + '@react-types/radio@3.8.10(react@18.3.1)': + dependencies: + '@react-types/shared': 3.30.0(react@18.3.1) react: 18.3.1 '@react-types/radio@3.8.6(react@18.3.1)': @@ -12975,9 +13496,13 @@ snapshots: dependencies: react: 18.3.1 - '@react-types/slider@3.7.8(react@18.3.1)': + '@react-types/shared@3.30.0(react@18.3.1)': dependencies: - '@react-types/shared': 3.27.0(react@18.3.1) + react: 18.3.1 + + '@react-types/slider@3.7.12(react@18.3.1)': + dependencies: + '@react-types/shared': 3.30.0(react@18.3.1) react: 18.3.1 '@react-types/table@3.10.4(react@18.3.1)': @@ -12998,7 +13523,7 @@ snapshots: '@react-types/tooltip@3.4.14(react@18.3.1)': dependencies: - '@react-types/overlays': 3.8.12(react@18.3.1) + '@react-types/overlays': 3.8.16(react@18.3.1) '@react-types/shared': 3.27.0(react@18.3.1) react: 18.3.1 @@ -13135,9 +13660,9 @@ snapshots: dependencies: '@sentry/core': 8.54.0 - '@shopify/flash-list@1.7.3(@babel/runtime@7.26.9)(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': + '@shopify/flash-list@1.7.3(@babel/runtime@7.27.6)(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.26.9 + '@babel/runtime': 7.27.6 react: 18.3.1 react-native: 0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1) recyclerlistview: 4.2.1(react-native@0.76.9(@babel/core@7.26.9)(@babel/preset-env@7.26.9(@babel/core@7.26.9))(@types/react@18.3.18)(react@18.3.1))(react@18.3.1) @@ -13179,6 +13704,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@swc/helpers@0.5.17': + dependencies: + tslib: 2.8.1 + '@tanstack/query-core@5.66.11': {} '@tanstack/react-query@5.66.11(react@18.3.1)': @@ -13327,14 +13856,14 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: '@types/eslint': 9.6.1 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/eslint@9.6.1': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 - '@types/estree@1.0.7': {} + '@types/estree@1.0.8': {} '@types/geojson-vt@3.2.5': dependencies: @@ -13422,6 +13951,7 @@ snapshots: - react - supports-color - utf-8-validate + optional: true '@types/react@18.3.18': dependencies: @@ -13750,6 +14280,8 @@ snapshots: acorn@8.14.1: {} + acorn@8.15.0: {} + agent-base@6.0.2: dependencies: debug: 4.4.1 @@ -14066,7 +14598,7 @@ snapshots: dependencies: '@babel/core': 7.26.9 '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.26.9) - core-js-compat: 3.42.0 + core-js-compat: 3.43.0 transitivePeerDependencies: - supports-color @@ -14199,6 +14731,13 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) + browserslist@4.25.0: + dependencies: + caniuse-lite: 1.0.30001721 + electron-to-chromium: 1.5.165 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.0) + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 @@ -14292,6 +14831,8 @@ snapshots: caniuse-lite@1.0.30001701: {} + caniuse-lite@1.0.30001721: {} + centra@2.7.0: dependencies: follow-redirects: 1.15.9 @@ -14565,6 +15106,10 @@ snapshots: dependencies: browserslist: 4.24.4 + core-js-compat@3.43.0: + dependencies: + browserslist: 4.25.0 + core-util-is@1.0.3: {} cosmiconfig-typescript-loader@6.1.0(@types/node@22.13.5)(cosmiconfig@9.0.0(typescript@5.8.2))(typescript@5.8.2): @@ -14835,7 +15380,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.26.9 + '@babel/runtime': 7.27.6 csstype: 3.1.3 dom-serializer@2.0.0: @@ -14894,6 +15439,8 @@ snapshots: electron-to-chromium@1.5.109: {} + electron-to-chromium@1.5.165: {} + elegant-spinner@1.0.1: {} emittery@0.13.1: {} @@ -16387,6 +16934,13 @@ snapshots: '@formatjs/icu-messageformat-parser': 2.11.1 tslib: 2.8.1 + intl-messageformat@10.7.16: + dependencies: + '@formatjs/ecma402-abstract': 2.3.4 + '@formatjs/fast-memoize': 2.2.7 + '@formatjs/icu-messageformat-parser': 2.11.2 + tslib: 2.8.1 + invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -18879,7 +19433,7 @@ snapshots: '@react-stately/searchfield': 3.5.9(react@18.3.1) '@react-stately/select': 3.6.10(react@18.3.1) '@react-stately/selection': 3.19.0(react@18.3.1) - '@react-stately/slider': 3.6.1(react@18.3.1) + '@react-stately/slider': 3.6.5(react@18.3.1) '@react-stately/table': 3.13.1(react@18.3.1) '@react-stately/tabs': 3.7.1(react@18.3.1) '@react-stately/toggle': 3.8.1(react@18.3.1) @@ -19774,7 +20328,7 @@ snapshots: jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 - terser: 5.40.0 + terser: 5.41.0 webpack: 5.98.0 terser@5.40.0: @@ -19784,6 +20338,13 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + terser@5.41.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -20044,6 +20605,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.1.3(browserslist@4.25.0): + dependencies: + browserslist: 4.25.0 + escalade: 3.2.0 + picocolors: 1.1.1 + update-notifier@7.3.1: dependencies: boxen: 8.0.1 @@ -20158,12 +20725,12 @@ snapshots: webpack@5.98.0: dependencies: '@types/eslint-scope': 3.7.7 - '@types/estree': 1.0.7 + '@types/estree': 1.0.8 '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.14.1 - browserslist: 4.24.4 + acorn: 8.15.0 + browserslist: 4.25.0 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.1 es-module-lexer: 1.7.0 diff --git a/src/app/call/new/index.tsx b/src/app/call/new/index.tsx index 87693b2..97ef8d0 100644 --- a/src/app/call/new/index.tsx +++ b/src/app/call/new/index.tsx @@ -46,7 +46,6 @@ export default function NewCall() { const { t } = useTranslation(); const { colorScheme } = useColorScheme(); const { callPriorities, isLoading, error, fetchCallPriorities } = useCallsStore(); - const { user } = useAuthStore(); const toast = useToast(); const [showLocationPicker, setShowLocationPicker] = useState(false); const [selectedLocation, setSelectedLocation] = useState<{ diff --git a/src/components/common/zero-state-example.tsx b/src/components/common/zero-state-example.tsx index a21bb7d..58cba64 100644 --- a/src/components/common/zero-state-example.tsx +++ b/src/components/common/zero-state-example.tsx @@ -2,7 +2,8 @@ import React from 'react'; import { View } from 'react-native'; import ZeroState from './zero-state'; import { FileX, WifiOff, Search, AlertCircle } from 'lucide-react-native'; -import { Button, HStack } from '@gluestack/ui'; +import { Button } from '@/components/ui/button'; +import { HStack } from '@/components/ui/hstack'; const ZeroStateExamples: React.FC = () => { return ( diff --git a/src/components/common/zero-state.test.tsx b/src/components/common/zero-state.test.tsx index 882334a..b5ef387 100644 --- a/src/components/common/zero-state.test.tsx +++ b/src/components/common/zero-state.test.tsx @@ -1,9 +1,10 @@ -import { Button } from '@gluestack/ui'; import { render, screen } from '@testing-library/react-native'; import { AlertCircle, FileX } from 'lucide-react-native'; import React from 'react'; import ZeroState from './zero-state'; +import { Button } from '@/components/ui/button'; +import { describe, expect, it, jest } from '@jest/globals'; // Mock the translation hook jest.mock('react-i18next', () => ({ diff --git a/src/components/contacts/contact-details-sheet.tsx b/src/components/contacts/contact-details-sheet.tsx index bbb0e1f..6bf1456 100644 --- a/src/components/contacts/contact-details-sheet.tsx +++ b/src/components/contacts/contact-details-sheet.tsx @@ -11,7 +11,7 @@ import { useContactsStore } from '@/stores/contacts/store'; export const ContactDetailsSheet: React.FC = () => { const { t } = useTranslation(); - const { contacts, selectedContactId, isDetailsOpen, closeDetails, removeContact } = useContactsStore(); + const { contacts, selectedContactId, isDetailsOpen, closeDetails } = useContactsStore(); const selectedContact = React.useMemo(() => { if (!selectedContactId) return null; @@ -20,7 +20,7 @@ export const ContactDetailsSheet: React.FC = () => { const handleDelete = async () => { if (selectedContactId) { - await removeContact(selectedContactId); + //await removeContact(selectedContactId); closeDetails(); } }; @@ -28,7 +28,7 @@ export const ContactDetailsSheet: React.FC = () => { if (!selectedContact) return null; return ( - {}}> + { }}> diff --git a/src/components/settings/items-container.tsx b/src/components/settings/items-container.tsx index 3193bcc..77175d3 100644 --- a/src/components/settings/items-container.tsx +++ b/src/components/settings/items-container.tsx @@ -1,6 +1,7 @@ import React from 'react'; -import { Text, View } from '@/components/ui'; +import { Text } from '@/components/ui/text'; +import { View } from '@/components/ui/view'; import type { TxKeyPath } from '@/lib'; type Props = { @@ -11,7 +12,7 @@ type Props = { export const ItemsContainer = ({ children, title }: Props) => { return ( <> - {title && } + {title && {title}} { {children} diff --git a/src/components/toast/toast.tsx b/src/components/toast/toast.tsx index 1bf9f60..c8ee52a 100644 --- a/src/components/toast/toast.tsx +++ b/src/components/toast/toast.tsx @@ -40,7 +40,6 @@ export const ToastMessage: React.FC<{ removeToast(id)} action={type} > diff --git a/src/components/ui/ThemeToggle.tsx b/src/components/ui/ThemeToggle.tsx deleted file mode 100644 index 6f57d97..0000000 --- a/src/components/ui/ThemeToggle.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react'; -import { View, Text, TouchableOpacity } from 'react-native'; -import { useTheme } from '../../theme/ThemeProvider'; - -export const ThemeToggle: React.FC = () => { - const { themeType, setThemeType, isDark } = useTheme(); - - return ( - - Theme: - - - setThemeType('light')} - className={`px-3 py-2 ${themeType === 'light' ? - (isDark ? 'bg-neutral-600' : 'bg-white') : 'bg-transparent'}`} - > - Light - - - setThemeType('dark')} - className={`px-3 py-2 ${themeType === 'dark' ? - (isDark ? 'bg-neutral-600' : 'bg-white') : 'bg-transparent'}`} - > - Dark - - - setThemeType('system')} - className={`px-3 py-2 ${themeType === 'system' ? - (isDark ? 'bg-neutral-600' : 'bg-white') : 'bg-transparent'}`} - > - System - - - - ); -}; \ No newline at end of file diff --git a/src/components/ui/accordion/index.tsx b/src/components/ui/accordion/index.tsx index ca4711a..51f629b 100644 --- a/src/components/ui/accordion/index.tsx +++ b/src/components/ui/accordion/index.tsx @@ -1,17 +1,14 @@ 'use client'; -import React, { useMemo } from 'react'; +import { H3 } from '@expo/html-elements'; import { createAccordion } from '@gluestack-ui/accordion'; -import { Svg } from 'react-native-svg'; -import { View, Pressable, Text, Platform, TextProps } from 'react-native'; -import { tva } from '@gluestack-ui/nativewind-utils/tva'; import type { VariantProps } from '@gluestack-ui/nativewind-utils'; -import { - withStyleContext, - useStyleContext, -} from '@gluestack-ui/nativewind-utils/withStyleContext'; +import { tva } from '@gluestack-ui/nativewind-utils/tva'; +import { useStyleContext, withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext'; import { withStyleContextAndStates } from '@gluestack-ui/nativewind-utils/withStyleContextAndStates'; -import { H3 } from '@expo/html-elements'; import { cssInterop } from 'nativewind'; +import React, { useMemo } from 'react'; +import { Platform, Pressable, Text, type TextProps, View } from 'react-native'; +import { Svg } from 'react-native-svg'; const SCOPE = 'ACCORDION'; /** Styles */ @@ -53,11 +50,11 @@ const accordionIconStyle = tva({ parentVariants: { size: { '2xs': 'h-3 w-3', - 'xs': 'h-3.5 w-3.5', - 'sm': 'h-4 w-4', - 'md': 'h-[18px] w-[18px]', - 'lg': 'h-5 w-5', - 'xl': 'h-6 w-6', + xs: 'h-3.5 w-3.5', + sm: 'h-4 w-4', + md: 'h-[18px] w-[18px]', + lg: 'h-5 w-5', + xl: 'h-6 w-6', }, }, }); @@ -92,23 +89,8 @@ type IPrimitiveIcon = { className?: string; }; -const PrimitiveIcon = React.forwardRef< - React.ElementRef, - IPrimitiveIcon & React.ComponentPropsWithoutRef ->( - ( - { - height, - width, - fill, - color, - size, - stroke = 'currentColor', - as: AsComp, - ...props - }, - ref - ) => { +const PrimitiveIcon = React.forwardRef, IPrimitiveIcon & React.ComponentPropsWithoutRef>( + ({ height, width, fill, color, size, stroke = 'currentColor', as: AsComp, ...props }, ref) => { const sizeProps = useMemo(() => { if (size) return { size }; if (height && width) return { height, width }; @@ -117,41 +99,18 @@ const PrimitiveIcon = React.forwardRef< return {}; }, [size, height, width]); - const colorProps = - stroke === 'currentColor' && color !== undefined ? color : stroke; + const colorProps = stroke === 'currentColor' && color !== undefined ? color : stroke; if (AsComp) { - return ( - - ); + return ; } - return ( - - ); + return ; } ); -const Root = - Platform.OS === 'web' - ? withStyleContext(View, SCOPE) - : withStyleContextAndStates(View, SCOPE); +const Root = Platform.OS === 'web' ? withStyleContext(View, SCOPE) : withStyleContextAndStates(View, SCOPE); -const Header = ( - Platform.OS === 'web' ? H3 : View -) as React.ComponentType; +const Header = (Platform.OS === 'web' ? H3 : View) as React.ComponentType; /** Creator */ const UIAccordion = createAccordion({ @@ -188,64 +147,32 @@ cssInterop(UIAccordion.Icon, { }, }); -type IAccordionProps = React.ComponentPropsWithoutRef & - VariantProps; +type IAccordionProps = React.ComponentPropsWithoutRef & VariantProps; -type IAccordionItemProps = React.ComponentPropsWithoutRef< - typeof UIAccordion.Item -> & - VariantProps; +type IAccordionItemProps = React.ComponentPropsWithoutRef & VariantProps; -type IAccordionContentProps = React.ComponentPropsWithoutRef< - typeof UIAccordion.Content -> & - VariantProps; +type IAccordionContentProps = React.ComponentPropsWithoutRef & VariantProps; -type IAccordionContentTextProps = React.ComponentPropsWithoutRef< - typeof UIAccordion.ContentText -> & - VariantProps; +type IAccordionContentTextProps = React.ComponentPropsWithoutRef & VariantProps; type IAccordionIconProps = VariantProps & React.ComponentPropsWithoutRef & { as?: React.ElementType; }; -type IAccordionHeaderProps = React.ComponentPropsWithoutRef< - typeof UIAccordion.Header -> & - VariantProps; +type IAccordionHeaderProps = React.ComponentPropsWithoutRef & VariantProps; -type IAccordionTriggerProps = React.ComponentPropsWithoutRef< - typeof UIAccordion.Trigger -> & - VariantProps; +type IAccordionTriggerProps = React.ComponentPropsWithoutRef & VariantProps; -type IAccordionTitleTextProps = React.ComponentPropsWithoutRef< - typeof UIAccordion.TitleText -> & - VariantProps; +type IAccordionTitleTextProps = React.ComponentPropsWithoutRef & VariantProps; /** Components */ -const Accordion = React.forwardRef< - React.ElementRef, - IAccordionProps ->(({ className, variant = 'filled', size = 'md', ...props }, ref) => { - return ( - - ); +const Accordion = React.forwardRef, IAccordionProps>(({ className, variant = 'filled', size = 'md', ...props }, ref) => { + return ; }); -const AccordionItem = React.forwardRef< - React.ElementRef, - IAccordionItemProps ->(({ className, ...props }, ref) => { +const AccordionItem = React.forwardRef, IAccordionItemProps>(({ className, ...props }, ref) => { const { variant } = useStyleContext(SCOPE); return ( , - IAccordionContentProps ->(({ className, ...props }, ref) => { +const AccordionContent = React.forwardRef, IAccordionContentProps>(({ className, ...props }, ref) => { return ( , - IAccordionContentTextProps ->(({ className, ...props }, ref) => { +const AccordionContentText = React.forwardRef, IAccordionContentTextProps>(({ className, ...props }, ref) => { const { size } = useStyleContext(SCOPE); return ( , - IAccordionIconProps ->(({ size, className, ...props }, ref) => { +const AccordionIcon = React.forwardRef, IAccordionIconProps>(({ size, className, ...props }, ref) => { const { size: parentSize } = useStyleContext(SCOPE); if (typeof size === 'number') { - return ( - - ); - } else if ( - (props.height !== undefined || props.width !== undefined) && - size === undefined - ) { - return ( - - ); + return ; + } else if ((props.height !== undefined || props.width !== undefined) && size === undefined) { + return ; } return ( , - IAccordionHeaderProps ->(({ className, ...props }, ref) => { +const AccordionHeader = React.forwardRef, IAccordionHeaderProps>(({ className, ...props }, ref) => { return ( , - IAccordionTriggerProps ->(({ className, ...props }, ref) => { +const AccordionTrigger = React.forwardRef, IAccordionTriggerProps>(({ className, ...props }, ref) => { return ( ); }); -const AccordionTitleText = React.forwardRef< - React.ElementRef, - IAccordionTitleTextProps ->(({ className, ...props }, ref) => { +const AccordionTitleText = React.forwardRef, IAccordionTitleTextProps>(({ className, ...props }, ref) => { const { size } = useStyleContext(SCOPE); return ( >, ItemText: Text, DragIndicator: View, IndicatorWrapper: View, diff --git a/src/components/ui/button/index.tsx b/src/components/ui/button/index.tsx index ae3912b..ac72120 100644 --- a/src/components/ui/button/index.tsx +++ b/src/components/ui/button/index.tsx @@ -3,10 +3,7 @@ import { createButton } from '@gluestack-ui/button'; import { PrimitiveIcon, UIIcon } from '@gluestack-ui/icon'; import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; -import { - useStyleContext, - withStyleContext, -} from '@gluestack-ui/nativewind-utils/withStyleContext'; +import { useStyleContext, withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext'; import { cssInterop } from 'nativewind'; import React from 'react'; import { ActivityIndicator, Pressable, Text, View } from 'react-native'; @@ -43,18 +40,16 @@ const buttonStyle = tva({ primary: 'bg-primary-500 data-[hover=true]:bg-primary-600 data-[active=true]:bg-primary-700 border-primary-300 data-[hover=true]:border-primary-400 data-[active=true]:border-primary-500 data-[focus-visible=true]:web:ring-indicator-info', secondary: - 'bg-secondary-500 border-secondary-300 data-[hover=true]:bg-secondary-600 data-[hover=true]:border-secondary-400 data-[active=true]:bg-secondary-700 data-[active=true]:border-secondary-500 data-[focus-visible=true]:web:ring-indicator-info', + 'bg-secondary-500 border-secondary-300 data-[hover=true]:bg-secondary-600 data-[hover=true]:border-secondary-400 data-[active=true]:bg-secondary-700 data-[active=true]:border-secondary-700 data-[focus-visible=true]:web:ring-indicator-info', positive: 'bg-success-500 border-success-300 data-[hover=true]:bg-success-600 data-[hover=true]:border-success-400 data-[active=true]:bg-success-700 data-[active=true]:border-success-500 data-[focus-visible=true]:web:ring-indicator-info', negative: 'bg-error-500 border-error-300 data-[hover=true]:bg-error-600 data-[hover=true]:border-error-400 data-[active=true]:bg-error-700 data-[active=true]:border-error-500 data-[focus-visible=true]:web:ring-indicator-info', - default: - 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', + default: 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', }, variant: { link: 'px-0', - outline: - 'bg-transparent border data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', + outline: 'bg-transparent border data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', solid: '', }, @@ -70,50 +65,42 @@ const buttonStyle = tva({ { action: 'primary', variant: 'link', - class: - 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', + class: 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', }, { action: 'secondary', variant: 'link', - class: - 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', + class: 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', }, { action: 'positive', variant: 'link', - class: - 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', + class: 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', }, { action: 'negative', variant: 'link', - class: - 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', + class: 'px-0 bg-transparent data-[hover=true]:bg-transparent data-[active=true]:bg-transparent', }, { action: 'primary', variant: 'outline', - class: - 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', + class: 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', }, { action: 'secondary', variant: 'outline', - class: - 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', + class: 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', }, { action: 'positive', variant: 'outline', - class: - 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', + class: 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', }, { action: 'negative', variant: 'outline', - class: - 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', + class: 'bg-transparent data-[hover=true]:bg-background-50 data-[active=true]:bg-transparent', }, ], }); @@ -122,20 +109,15 @@ const buttonTextStyle = tva({ base: 'text-typography-0 font-semibold web:select-none', parentVariants: { action: { - primary: - 'text-primary-600 data-[hover=true]:text-primary-600 data-[active=true]:text-primary-700', - secondary: - 'text-secondary-600 data-[hover=true]:text-secondary-600 data-[active=true]:text-secondary-700', - positive: - 'text-success-600 data-[hover=true]:text-success-600 data-[active=true]:text-success-700', - negative: - 'text-error-600 data-[hover=true]:text-error-600 data-[active=true]:text-error-700', + primary: 'text-primary-600 data-[hover=true]:text-primary-600 data-[active=true]:text-primary-700', + secondary: 'text-typography-500 data-[hover=true]:text-typography-600 data-[active=true]:text-typography-700', + positive: 'text-success-600 data-[hover=true]:text-success-600 data-[active=true]:text-success-700', + negative: 'text-error-600 data-[hover=true]:text-error-600 data-[active=true]:text-error-700', }, variant: { link: 'data-[hover=true]:underline data-[active=true]:underline', outline: '', - solid: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + solid: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, size: { xs: 'text-xs', @@ -149,50 +131,42 @@ const buttonTextStyle = tva({ { variant: 'solid', action: 'primary', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, { variant: 'solid', action: 'secondary', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-800 data-[hover=true]:text-typography-800 data-[active=true]:text-typography-800', }, { variant: 'solid', action: 'positive', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, { variant: 'solid', action: 'negative', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, { variant: 'outline', action: 'primary', - class: - 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', + class: 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', }, { variant: 'outline', action: 'secondary', - class: - 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', + class: 'text-typography-500 data-[hover=true]:text-primary-600 data-[active=true]:text-typography-700', }, { variant: 'outline', action: 'positive', - class: - 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', + class: 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', }, { variant: 'outline', action: 'negative', - class: - 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', + class: 'text-primary-500 data-[hover=true]:text-primary-500 data-[active=true]:text-primary-500', }, ], }); @@ -203,8 +177,7 @@ const buttonIconStyle = tva({ variant: { link: 'data-[hover=true]:underline data-[active=true]:underline', outline: '', - solid: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + solid: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, size: { xs: 'h-3.5 w-3.5', @@ -214,41 +187,33 @@ const buttonIconStyle = tva({ xl: 'h-5 w-5', }, action: { - primary: - 'text-primary-600 data-[hover=true]:text-primary-600 data-[active=true]:text-primary-700', - secondary: - 'text-secondary-600 data-[hover=true]:text-secondary-600 data-[active=true]:text-secondary-700', - positive: - 'text-success-600 data-[hover=true]:text-success-600 data-[active=true]:text-success-700', + primary: 'text-primary-600 data-[hover=true]:text-primary-600 data-[active=true]:text-primary-700', + secondary: 'text-typography-500 data-[hover=true]:text-typography-600 data-[active=true]:text-typography-700', + positive: 'text-success-600 data-[hover=true]:text-success-600 data-[active=true]:text-success-700', - negative: - 'text-error-600 data-[hover=true]:text-error-600 data-[active=true]:text-error-700', + negative: 'text-error-600 data-[hover=true]:text-error-600 data-[active=true]:text-error-700', }, }, parentCompoundVariants: [ { variant: 'solid', action: 'primary', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, { variant: 'solid', action: 'secondary', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-800 data-[hover=true]:text-typography-800 data-[active=true]:text-typography-800', }, { variant: 'solid', action: 'positive', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, { variant: 'solid', action: 'negative', - class: - 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', + class: 'text-typography-0 data-[hover=true]:text-typography-0 data-[active=true]:text-typography-0', }, ], }); @@ -269,46 +234,25 @@ const buttonGroupStyle = tva({ isAttached: { true: 'gap-0', }, + flexDirection: { + row: 'flex-row', + column: 'flex-col', + 'row-reverse': 'flex-row-reverse', + 'column-reverse': 'flex-col-reverse', + }, }, }); -type IButtonProps = Omit< - React.ComponentPropsWithoutRef, - 'context' -> & - VariantProps & { className?: string }; +type IButtonProps = Omit, 'context'> & VariantProps & { className?: string }; -const Button = React.forwardRef< - React.ElementRef, - IButtonProps ->( - ( - { className, variant = 'solid', size = 'md', action = 'primary', ...props }, - ref - ) => { - return ( - - ); - } -); +const Button = React.forwardRef, IButtonProps>(function Button({ className, variant = 'solid', size = 'md', action = 'primary', ...props }, ref) { + return ; +}); -type IButtonTextProps = React.ComponentPropsWithoutRef & - VariantProps & { className?: string }; +type IButtonTextProps = React.ComponentPropsWithoutRef & VariantProps & { className?: string }; -const ButtonText = React.forwardRef< - React.ElementRef, - IButtonTextProps ->(({ className, variant, size, action, ...props }, ref) => { - const { - variant: parentVariant, - size: parentSize, - action: parentAction, - } = useStyleContext(SCOPE); +const ButtonText = React.forwardRef, IButtonTextProps>(function ButtonText({ className, variant, size, action, ...props }, ref) { + const { variant: parentVariant, size: parentSize, action: parentAction } = useStyleContext(SCOPE); return ( & VariantProps & { className?: string | undefined; as?: React.ElementType; + height?: number; + width?: number; }; -const ButtonIcon = React.forwardRef< - React.ElementRef, - IButtonIcon ->(({ className, size, ...props }, ref) => { - const { - variant: parentVariant, - size: parentSize, - action: parentAction, - } = useStyleContext(SCOPE); +const ButtonIcon = React.forwardRef, IButtonIcon>(function ButtonIcon({ className, size, ...props }, ref) { + const { variant: parentVariant, size: parentSize, action: parentAction } = useStyleContext(SCOPE); if (typeof size === 'number') { - return ( - - ); - } else if ( - (props.height !== undefined || props.width !== undefined) && - size === undefined - ) { - return ( - - ); + return ; + } else if ((props.height !== undefined || props.width !== undefined) && size === undefined) { + return ; } return ( & - VariantProps; +type IButtonGroupProps = React.ComponentPropsWithoutRef & VariantProps; -const ButtonGroup = React.forwardRef< - React.ElementRef, - IButtonGroupProps ->(({ className, space = 'md', isAttached = false, ...props }, ref) => { +const ButtonGroup = React.forwardRef, IButtonGroupProps>(function ButtonGroup({ className, space = 'md', isAttached = false, flexDirection = 'column', ...props }, ref) { return ( diff --git a/src/components/ui/checkbox/index.tsx b/src/components/ui/checkbox/index.tsx index aaaa8f0..8e04ea0 100644 --- a/src/components/ui/checkbox/index.tsx +++ b/src/components/ui/checkbox/index.tsx @@ -1,5 +1,5 @@ 'use client'; -import React, { useMemo } from 'react'; +import React, { ComponentType, RefAttributes, useMemo } from 'react'; import { createCheckbox } from '@gluestack-ui/checkbox'; import { View, Pressable, Text } from 'react-native'; import type { TextProps, ViewProps } from 'react-native'; @@ -83,11 +83,11 @@ const UICheckbox = createCheckbox({ Platform.OS === 'web' ? withStyleContext(View, SCOPE) : withStyleContextAndStates(Pressable, SCOPE), - Group: Platform.OS === 'web' ? View : withStates(View), - Icon: Platform.OS === 'web' ? IconWrapper : withStates(IconWrapper), - Label: Platform.OS === 'web' ? LabelWrapper : withStates(LabelWrapper), + Group: Platform.OS === 'web' ? View : withStates(View) as ComponentType>, + Icon: Platform.OS === 'web' ? IconWrapper : withStates(IconWrapper) as ComponentType>, + Label: Platform.OS === 'web' ? LabelWrapper : withStates(LabelWrapper) as ComponentType>, Indicator: - Platform.OS === 'web' ? IndicatorWrapper : withStates(IndicatorWrapper), + Platform.OS === 'web' ? IndicatorWrapper : withStates(IndicatorWrapper) as ComponentType>, }); cssInterop(UICheckbox, { className: 'style' }); diff --git a/src/components/ui/gluestack-ui-provider/index.tsx b/src/components/ui/gluestack-ui-provider/index.tsx index 307aff8..907943c 100644 --- a/src/components/ui/gluestack-ui-provider/index.tsx +++ b/src/components/ui/gluestack-ui-provider/index.tsx @@ -2,35 +2,20 @@ import { OverlayProvider } from '@gluestack-ui/overlay'; import { ToastProvider } from '@gluestack-ui/toast'; import { colorScheme as colorSchemeNW } from 'nativewind'; import React from 'react'; -import { - type ColorSchemeName, - useColorScheme, - View, - type ViewProps, -} from 'react-native'; +import { type ColorSchemeName, useColorScheme, View, type ViewProps } from 'react-native'; import { config } from './config'; type ModeType = 'light' | 'dark' | 'system'; -const getColorSchemeName = ( - colorScheme: ColorSchemeName, - mode: ModeType -): 'light' | 'dark' => { +const getColorSchemeName = (colorScheme: ColorSchemeName, mode: ModeType): 'light' | 'dark' => { if (mode === 'system') { return colorScheme ?? 'light'; } return mode; }; -export function GluestackUIProvider({ - mode = 'light', - ...props -}: { - mode?: 'light' | 'dark' | 'system'; - children?: React.ReactNode; - style?: ViewProps['style']; -}) { +export function GluestackUIProvider({ mode = 'light', ...props }: { mode?: 'light' | 'dark' | 'system'; children?: React.ReactNode; style?: ViewProps['style'] }) { const colorScheme = useColorScheme(); const colorSchemeName = getColorSchemeName(colorScheme, mode); @@ -41,6 +26,7 @@ export function GluestackUIProvider({ { return style; }; -export const useSafeLayoutEffect = - typeof window !== 'undefined' ? useLayoutEffect : useEffect; +export const useSafeLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect; -export function GluestackUIProvider({ - mode = 'light', - ...props -}: { - mode?: 'light' | 'dark' | 'system'; - children?: React.ReactNode; -}) { +export function GluestackUIProvider({ mode = 'light', ...props }: { mode?: 'light' | 'dark' | 'system'; children?: React.ReactNode }) { let cssVariablesWithMode = ``; Object.keys(config).forEach((configKey) => { - cssVariablesWithMode += - configKey === 'dark' ? `\n .dark {\n ` : `\n:root {\n`; - const cssVariables = Object.keys( - config[configKey as keyof typeof config] - ).reduce((acc: string, curr: string) => { + cssVariablesWithMode += configKey === 'dark' ? `\n .dark {\n ` : `\n:root {\n`; + const cssVariables = Object.keys(config[configKey as keyof typeof config]).reduce((acc: string, curr: string) => { acc += `${curr}:${config[configKey as keyof typeof config][curr]}; `; return acc; }, ''); diff --git a/src/components/ui/gluestack-ui-provider/script.ts b/src/components/ui/gluestack-ui-provider/script.ts index 732d136..0ad02b0 100644 --- a/src/components/ui/gluestack-ui-provider/script.ts +++ b/src/components/ui/gluestack-ui-provider/script.ts @@ -2,9 +2,7 @@ export const script = (mode: string) => { const documentElement = document.documentElement; function getSystemColorMode() { - return window.matchMedia('(prefers-color-scheme: dark)').matches - ? 'dark' - : 'light'; + return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; } try { diff --git a/src/components/ui/grid/index.tsx b/src/components/ui/grid/index.tsx index 7c087a7..1305e0e 100644 --- a/src/components/ui/grid/index.tsx +++ b/src/components/ui/grid/index.tsx @@ -13,8 +13,9 @@ import { cssInterop } from 'nativewind'; import { useBreakpointValue, getBreakPointValue, -} from '@gluestack-ui/nativewind-utils/useBreakpointValue'; -const { width } = Dimensions.get('window'); +} from '@/components/ui/utils/use-break-point-value'; + +const { width: DEVICE_WIDTH } = Dimensions.get('window'); const GridContext = createContext({}); @@ -117,13 +118,16 @@ type IGridProps = ViewProps & paddingRight?: number; paddingStart?: number; paddingEnd?: number; + borderWidth?: number; + borderLeftWidth?: number; + borderRightWidth?: number; _extra: { className: string; }; }; -const Grid = forwardRef, IGridProps>( - ({ className, _extra, children, ...props }, ref) => { +const Grid = forwardRef, IGridProps>( + function Grid({ className, _extra, children, ...props }, ref) { const [calculatedWidth, setCalculatedWidth] = useState(null); const gridClass = _extra?.className; @@ -137,7 +141,7 @@ const Grid = forwardRef, IGridProps>( const colSpan2 = getBreakPointValue( generateResponsiveColSpans({ gridItemClassName }), - width + DEVICE_WIDTH ); const colSpan = colSpan2 ? colSpan2 : 1; @@ -161,7 +165,7 @@ const Grid = forwardRef, IGridProps>( const childrenWithProps = React.Children.map(children, (child, index) => { if (React.isValidElement(child)) { - return React.cloneElement(child, { index } as any); + return React.cloneElement(child, { key: index, index: index } as any); } return child; @@ -182,6 +186,10 @@ const Grid = forwardRef, IGridProps>( }; }, [calculatedWidth, itemsPerRow, responsiveNumColumns, props]); + const borderLeftWidth = props?.borderLeftWidth || props?.borderWidth || 0; + const borderRightWidth = props?.borderRightWidth || props?.borderWidth || 0; + const borderWidthToSubtract = borderLeftWidth + borderRightWidth; + return ( , IGridProps>( className={gridStyle({ class: className + ' ' + gridClassMerged, })} - onLayout={(event: any) => { + onLayout={(event) => { const paddingLeftToSubtract = props?.paddingStart || props?.paddingLeft || props?.padding || 0; const paddingRightToSubtract = props?.paddingEnd || props?.paddingRight || props?.padding || 0; - const width = - event.nativeEvent.layout.width - + const gridWidth = + Math.floor(event.nativeEvent.layout.width) - paddingLeftToSubtract - - paddingRightToSubtract; + paddingRightToSubtract - + borderWidthToSubtract; - setCalculatedWidth(width); + setCalculatedWidth(gridWidth); }} {...props} > @@ -212,7 +221,6 @@ const Grid = forwardRef, IGridProps>( } ); -//@ts-ignore cssInterop(Grid, { className: { target: 'style', @@ -226,6 +234,9 @@ cssInterop(Grid, { paddingRight: 'paddingRight', paddingStart: 'paddingStart', paddingEnd: 'paddingEnd', + borderWidth: 'borderWidth', + borderLeftWidth: 'borderLeftWidth', + borderRightWidth: 'borderRightWidth', }, }, }); @@ -238,8 +249,8 @@ type IGridItemProps = ViewProps & }; }; -const GridItem = forwardRef, IGridItemProps>( - ({ className, _extra, ...props }, ref) => { +const GridItem = forwardRef, IGridItemProps>( + function GridItem({ className, _extra, ...props }, ref) { const [flexBasisValue, setFlexBasisValue] = useState< number | string | null >('auto'); @@ -254,10 +265,9 @@ const GridItem = forwardRef, IGridItemProps>( } = useContext(GridContext); const gridItemClass = _extra?.className; - const responsiveColSpan: number = - useBreakpointValue( - generateResponsiveColSpans({ gridItemClassName: gridItemClass }) - ) ?? 1; + const responsiveColSpan = (useBreakpointValue( + generateResponsiveColSpans({ gridItemClassName: gridItemClass }) + ) ?? 1) as number; useEffect(() => { if ( @@ -271,7 +281,7 @@ const GridItem = forwardRef, IGridItemProps>( return itemsPerRow[key].includes(props?.index); }); - const rowColsCount = itemsPerRow[row as string].length; + const rowColsCount = itemsPerRow[row as string]?.length; const space = columnGap || gap || 0; @@ -286,7 +296,7 @@ const GridItem = forwardRef, IGridItemProps>( (((calculatedWidth - gutterOffset) * responsiveColSpan) / numColumns / calculatedWidth) * - 100, + 100, 100 ) + '%'; @@ -305,16 +315,15 @@ const GridItem = forwardRef, IGridItemProps>( return ( , IGridItemProps>( Grid.displayName = 'Grid'; GridItem.displayName = 'GridItem'; -export { Grid, GridItem }; +export { Grid, GridItem }; \ No newline at end of file diff --git a/src/components/ui/grid/index.web.tsx b/src/components/ui/grid/index.web.tsx index 24423e5..ccfab7e 100644 --- a/src/components/ui/grid/index.web.tsx +++ b/src/components/ui/grid/index.web.tsx @@ -1,7 +1,7 @@ +import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import React from 'react'; -import { gridStyle, gridItemStyle } from './styles'; -import type { VariantProps } from '@gluestack-ui/nativewind-utils'; +import { gridItemStyle, gridStyle } from './styles'; type IGridProps = React.ComponentPropsWithoutRef<'div'> & VariantProps & { @@ -19,21 +19,19 @@ type IGridProps = React.ComponentPropsWithoutRef<'div'> & }; }; -const Grid = React.forwardRef( - ({ className, _extra, ...props }, ref) => { - const gridClass = _extra?.className; - const finalGridClass = gridClass ?? ''; - return ( -
- ); - } -); +const Grid = React.forwardRef(function Grid({ className, _extra, ...props }, ref) { + const gridClass = _extra?.className; + const finalGridClass = gridClass ?? ''; + return ( +
+ ); +}); type IGridItemProps = React.ComponentPropsWithoutRef<'div'> & VariantProps & { @@ -42,22 +40,20 @@ type IGridItemProps = React.ComponentPropsWithoutRef<'div'> & className: string; }; }; -const GridItem = React.forwardRef( - ({ className, _extra, ...props }, ref) => { - const gridItemClass = _extra?.className; +const GridItem = React.forwardRef(function GridItem({ className, _extra, ...props }, ref) { + const gridItemClass = _extra?.className; - const finalGridItemClass = gridItemClass ?? ''; - return ( -
- ); - } -); + const finalGridItemClass = gridItemClass ?? ''; + return ( +
+ ); +}); Grid.displayName = 'Grid'; GridItem.displayName = 'GridItem'; diff --git a/src/components/ui/grid/styles.tsx b/src/components/ui/grid/styles.tsx index 4eba853..a21f4ac 100644 --- a/src/components/ui/grid/styles.tsx +++ b/src/components/ui/grid/styles.tsx @@ -1,9 +1,7 @@ -import { tva } from '@gluestack-ui/nativewind-utils/tva'; import { isWeb } from '@gluestack-ui/nativewind-utils/IsWeb'; +import { tva } from '@gluestack-ui/nativewind-utils/tva'; -const gridBaseStyle = isWeb - ? 'grid grid-cols-12' - : 'box-border flex-row flex-wrap justify-start'; +const gridBaseStyle = isWeb ? 'grid grid-cols-12' : 'box-border flex-row flex-wrap justify-start'; const gridItemBaseStyle = isWeb ? 'w-auto col-span-1' : ''; export const gridStyle = tva({ diff --git a/src/components/ui/heading/index.tsx b/src/components/ui/heading/index.tsx index 226ab2f..a8d8470 100644 --- a/src/components/ui/heading/index.tsx +++ b/src/components/ui/heading/index.tsx @@ -1,8 +1,8 @@ import React, { forwardRef, memo } from 'react'; import { H1, H2, H3, H4, H5, H6 } from '@expo/html-elements'; -import { cssInterop } from 'nativewind'; import { headingStyle } from './styles'; import type { VariantProps } from '@gluestack-ui/nativewind-utils'; +import { cssInterop } from 'nativewind'; type IHeadingProps = VariantProps & React.ComponentPropsWithoutRef & { @@ -17,8 +17,8 @@ cssInterop(H5, { className: 'style' }); cssInterop(H6, { className: 'style' }); const MappedHeading = memo( - forwardRef, IHeadingProps>( - ( + forwardRef, IHeadingProps>( + function MappedHeading( { size, className, @@ -32,7 +32,7 @@ const MappedHeading = memo( ...props }, ref - ) => { + ) { switch (size) { case '5xl': case '4xl': @@ -51,6 +51,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -69,6 +70,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -87,6 +89,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -105,6 +108,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -123,6 +127,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -142,6 +147,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -160,6 +166,7 @@ const MappedHeading = memo( class: className, })} {...props} + // @ts-expect-error : type issue ref={ref} /> ); @@ -169,44 +176,45 @@ const MappedHeading = memo( ); const Heading = memo( - forwardRef, IHeadingProps>( - ({ className, size = 'lg', as: AsComp, ...props }, ref) => { - const { - isTruncated, - bold, - underline, - strikeThrough, - sub, - italic, - highlight, - } = props; - - if (AsComp) { - return ( - - ); - } + forwardRef, IHeadingProps>(function Heading( + { className, size = 'lg', as: AsComp, ...props }, + ref + ) { + const { + isTruncated, + bold, + underline, + strikeThrough, + sub, + italic, + highlight, + } = props; + if (AsComp) { return ( - + ); } - ) + + return ( + + ); + }) ); Heading.displayName = 'Heading'; -export { Heading }; +export { Heading }; \ No newline at end of file diff --git a/src/components/ui/heading/index.web.tsx b/src/components/ui/heading/index.web.tsx index 2806c70..220ff1b 100644 --- a/src/components/ui/heading/index.web.tsx +++ b/src/components/ui/heading/index.web.tsx @@ -7,173 +7,81 @@ type IHeadingProps = VariantProps & }; const MappedHeading = memo( - forwardRef( - ( - { - size, - className, - isTruncated, - bold, - underline, - strikeThrough, - sub, - italic, - highlight, - ...props - }, - ref - ) => { - switch (size) { - case '5xl': - case '4xl': - case '3xl': - return ( -

- ); - case '2xl': - return ( -

- ); - case 'xl': - return ( -

- ); - case 'lg': - return ( -

- ); - case 'md': - return ( -

- ); - case 'sm': - case 'xs': - return ( -
- ); - default: - return ( -

- ); - } - } - ) -); - -const Heading = memo( - forwardRef( - ({ className, size = 'lg', as: AsComp, ...props }, ref) => { - const { - isTruncated, - bold, - underline, - strikeThrough, - sub, - italic, - highlight, - } = props; - - if (AsComp) { + forwardRef(function MappedHeading( + { + size, + className, + isTruncated, + bold, + underline, + strikeThrough, + sub, + italic, + highlight, + ...props + }, + ref + ) { + switch (size) { + case '5xl': + case '4xl': + case '3xl': + return ( +

+ ); + case '2xl': + return ( +

+ ); + case 'xl': + return ( +

+ ); + case 'lg': return ( - ); - } + case 'md': + return ( +
+ ); + case 'sm': + case 'xs': + return ( +
+ ); + default: + return ( +

+ ); + } + }) +); +const Heading = memo( + forwardRef(function Heading( + { className, size = 'lg', as: AsComp, ...props }, + ref + ) { + const { + isTruncated, + bold, + underline, + strikeThrough, + sub, + italic, + highlight, + } = props; + + if (AsComp) { return ( - + ); } - ) + + return ( + + ); + }) ); Heading.displayName = 'Heading'; -export { Heading }; +export { Heading }; \ No newline at end of file diff --git a/src/components/ui/heading/styles.tsx b/src/components/ui/heading/styles.tsx index 0724bfb..37c13df 100644 --- a/src/components/ui/heading/styles.tsx +++ b/src/components/ui/heading/styles.tsx @@ -40,4 +40,4 @@ export const headingStyle = tva({ 'xs': 'text-sm', }, }, -}); +}); \ No newline at end of file diff --git a/src/components/ui/icon/index.tsx b/src/components/ui/icon/index.tsx index fb71c3a..0fe08bd 100644 --- a/src/components/ui/icon/index.tsx +++ b/src/components/ui/icon/index.tsx @@ -1,66 +1,29 @@ 'use client'; +import React from 'react'; import { createIcon } from '@gluestack-ui/icon'; -import { type VariantProps } from '@gluestack-ui/nativewind-utils'; +import { Path } from 'react-native-svg'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; import { cssInterop } from 'nativewind'; -import React, { useMemo } from 'react'; -import { Path, Svg } from 'react-native-svg'; - -type IPrimitiveIcon = { - height?: number | string; - width?: number | string; - fill?: string; - color?: string; - size?: number | string; - stroke?: string; - as?: React.ElementType; - className?: string; -}; - -const PrimitiveIcon = React.forwardRef< - React.ElementRef, - IPrimitiveIcon ->(({ height, width, fill, color, size, stroke, as: AsComp, ...props }, ref) => { - const sizeProps = useMemo(() => { - if (size) return { size }; - if (height && width) return { height, width }; - if (height) return { height }; - if (width) return { width }; - return {}; - }, [size, height, width]); - - let colorProps = {}; - if (color) { - colorProps = { ...colorProps, color: color }; - } - if (stroke) { - colorProps = { ...colorProps, stroke: stroke }; - } - if (fill) { - colorProps = { ...colorProps, fill: fill }; - } - if (AsComp) { - return ; - } - return ( - - ); -}); +import { VariantProps } from '@gluestack-ui/nativewind-utils'; +import { PrimitiveIcon, IPrimitiveIcon, Svg } from '@gluestack-ui/icon'; export const UIIcon = createIcon({ Root: PrimitiveIcon, -}); +}) as React.ForwardRefExoticComponent< + React.ComponentPropsWithoutRef & + React.RefAttributes> +>; const iconStyle = tva({ - base: 'text-typography-950 fill-none', + base: 'text-typography-950 fill-none pointer-events-none', variants: { size: { '2xs': 'h-3 w-3', - xs: 'h-3.5 w-3.5', - sm: 'h-4 w-4', - md: 'h-[18px] w-[18px]', - lg: 'h-5 w-5', - xl: 'h-6 w-6', + 'xs': 'h-3.5 w-3.5', + 'sm': 'h-4 w-4', + 'md': 'h-[18px] w-[18px]', + 'lg': 'h-5 w-5', + 'xl': 'h-6 w-6', }, }, }); @@ -72,7 +35,7 @@ cssInterop(UIIcon, { height: true, width: true, fill: true, - color: true, + color: 'classNameColor', stroke: true, }, }, @@ -82,8 +45,8 @@ type IIConProps = IPrimitiveIcon & VariantProps & React.ComponentPropsWithoutRef; -export const Icon = React.forwardRef, IIConProps>( - ({ size = 'md', className, ...props }, ref) => { +const Icon = React.forwardRef, IIConProps>( + function Icon({ size = 'md', className, ...props }, ref) { if (typeof size === 'number') { return ( , IIConProps>( } ); +export { Icon }; + type ParameterTypes = Omit[0], 'Root'>; const createIconUI = ({ ...props }: ParameterTypes) => { - const UIIconCreateIcon = createIcon({ Root: Svg, ...props }); - - return React.forwardRef>( - ( - { - className, - size, - ...props - }: VariantProps & - React.ComponentPropsWithoutRef, - ref - ) => { - return ( - - ); - } - ); + const UIIconCreateIcon = createIcon({ + Root: Svg, + ...props, + }) as React.ForwardRefExoticComponent< + React.ComponentPropsWithoutRef & + React.RefAttributes> + >; + + return React.forwardRef>(function UIIcon( + { + className, + size, + ...inComingProps + }: VariantProps & + React.ComponentPropsWithoutRef, + ref + ) { + return ( + + ); + }); }; export { createIconUI as createIcon }; // All Icons @@ -288,7 +256,7 @@ ArrowDownIcon.displayName = 'ArrowDownIcon'; ArrowRightIcon.displayName = 'ArrowRightIcon'; ArrowLeftIcon.displayName = 'ArrowLeftIcon'; -export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon }; +export { ArrowUpIcon, ArrowDownIcon, ArrowRightIcon, ArrowLeftIcon }; const AtSignIcon = createIcon({ Root: Svg, @@ -454,7 +422,7 @@ const CheckCircleIcon = createIcon({ CheckIcon.displayName = 'CheckIcon'; CheckCircleIcon.displayName = 'CheckCircleIcon'; -export { CheckCircleIcon, CheckIcon }; +export { CheckIcon, CheckCircleIcon }; const ChevronUpIcon = createIcon({ Root: Svg, @@ -593,13 +561,13 @@ ChevronsRightIcon.displayName = 'ChevronsRightIcon'; ChevronsUpDownIcon.displayName = 'ChevronsUpDownIcon'; export { + ChevronUpIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsLeftIcon, ChevronsRightIcon, ChevronsUpDownIcon, - ChevronUpIcon, }; const CircleIcon = createIcon({ @@ -697,7 +665,7 @@ const CloseCircleIcon = createIcon({ CloseIcon.displayName = 'CloseIcon'; CloseCircleIcon.displayName = 'CloseCircleIcon'; -export { CloseCircleIcon, CloseIcon }; +export { CloseIcon, CloseCircleIcon }; const CopyIcon = createIcon({ Root: Svg, @@ -1044,7 +1012,7 @@ const ExternalLinkIcon = createIcon({ }); ExternalLinkIcon.displayName = 'ExternalLinkIcon'; -export { ExternalLinkIcon, LinkIcon }; +export { LinkIcon, ExternalLinkIcon }; const LoaderIcon = createIcon({ Root: Svg, @@ -1332,7 +1300,7 @@ const Repeat1Icon = createIcon({ }); Repeat1Icon.displayName = 'Repeat1Icon'; -export { Repeat1Icon, RepeatIcon }; +export { RepeatIcon, Repeat1Icon }; const SearchIcon = createIcon({ Root: Svg, @@ -1614,4 +1582,4 @@ const UnlockIcon = createIcon({ }); UnlockIcon.displayName = 'UnlockIcon'; -export { UnlockIcon }; +export { UnlockIcon }; \ No newline at end of file diff --git a/src/components/ui/icon/index.web.tsx b/src/components/ui/icon/index.web.tsx index 0896a28..7109522 100644 --- a/src/components/ui/icon/index.web.tsx +++ b/src/components/ui/icon/index.web.tsx @@ -1,94 +1,16 @@ -import React, { useMemo } from 'react'; +'use client'; +import React from 'react'; import { createIcon } from '@gluestack-ui/icon'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; import { VariantProps } from '@gluestack-ui/nativewind-utils'; - -const accessClassName = (style: any) => { - const obj = style[0]; - const keys = Object.keys(obj); //will return an array of keys - return obj[keys[1]]; -}; - -const Svg = React.forwardRef< - React.ElementRef<'svg'>, - React.ComponentPropsWithoutRef<'svg'> ->(({ style, className, ...props }, ref) => { - const calculateClassName = useMemo(() => { - return className === undefined ? accessClassName(style) : className; - }, [className, style]); - - return ; -}); - -type IPrimitiveIcon = { - height?: number | string; - width?: number | string; - fill?: string; - color?: string; - size?: number | string; - stroke?: string; - as?: React.ElementType; - className?: string; -}; - -const PrimitiveIcon = React.forwardRef< - React.ElementRef<'svg'>, - React.ComponentPropsWithoutRef<'svg'> & IPrimitiveIcon ->( - ( - { - height, - width, - fill, - color, - size, - stroke = 'currentColor', - as: AsComp, - ...props - }, - ref - ) => { - const sizeProps = useMemo(() => { - if (size) return { size }; - if (height && width) return { height, width }; - if (height) return { height }; - if (width) return { width }; - return {}; - }, [size, height, width]); - - const colorProps = - stroke === 'currentColor' && color !== undefined ? color : stroke; - - if (AsComp) { - return ( - - ); - } - return ( - - ); - } -); +import { PrimitiveIcon, Svg } from '@gluestack-ui/icon'; export const UIIcon = createIcon({ Root: PrimitiveIcon, }); const iconStyle = tva({ - base: 'text-typography-950 fill-none', + base: 'text-typography-950 fill-none pointer-events-none', variants: { size: { '2xs': 'h-3 w-3', @@ -102,16 +24,17 @@ const iconStyle = tva({ }); export const Icon = React.forwardRef< - React.ElementRef, + React.ComponentRef, React.ComponentPropsWithoutRef & - VariantProps & { - height?: number | string; - width?: number | string; - } ->(({ size = 'md', className, ...props }, ref) => { + VariantProps & { + height?: number | string; + width?: number | string; + } +>(function Icon({ size = 'md', className, ...props }, ref) { if (typeof size === 'number') { return ( [0], 'Root'>; -const createIconUI = ({ ...props }: ParameterTypes) => { - const UIIcon = createIcon({ Root: Svg, ...props }); +const accessClassName = (style: any) => { + const styleObject = Array.isArray(style) ? style[0] : style; + const keys = Object.keys(styleObject); + return styleObject[keys[1]]; +}; +const createIconUI = ({ ...props }: ParameterTypes) => { + const NewUIIcon = createIcon({ Root: Svg, ...props }); return React.forwardRef< - React.ElementRef, + React.ComponentRef, React.ComponentPropsWithoutRef & - VariantProps & { - height?: number | string; - width?: number | string; - } - >(({ className, size, ...props }, ref) => { + VariantProps & { + height?: number | string; + width?: number | string; + } + >(function UIIcon({ className, ...inComingprops }, ref) { + const calculateClassName = React.useMemo(() => { + return className === undefined + ? accessClassName(inComingprops?.style) + : className; + }, [className, inComingprops?.style]); return ( - ); }); }; + export { createIconUI as createIcon }; // All Icons @@ -1634,4 +1571,4 @@ const UnlockIcon = createIcon({ }); UnlockIcon.displayName = 'UnlockIcon'; -export { UnlockIcon }; +export { UnlockIcon }; \ No newline at end of file diff --git a/src/components/ui/input/index.tsx b/src/components/ui/input/index.tsx index 1cd6386..522df05 100644 --- a/src/components/ui/input/index.tsx +++ b/src/components/ui/input/index.tsx @@ -1,76 +1,33 @@ 'use client'; +import { PrimitiveIcon, UIIcon } from '@gluestack-ui/icon'; import { createInput } from '@gluestack-ui/input'; import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; -import { withStates } from '@gluestack-ui/nativewind-utils/withStates'; -import { - useStyleContext, - withStyleContext, -} from '@gluestack-ui/nativewind-utils/withStyleContext'; -import { withStyleContextAndStates } from '@gluestack-ui/nativewind-utils/withStyleContextAndStates'; +import { useStyleContext, withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext'; import { cssInterop } from 'nativewind'; -import React, { useMemo } from 'react'; -import { Platform, Pressable, TextInput, View } from 'react-native'; -import { Svg } from 'react-native-svg'; -const SCOPE = 'INPUT'; - -type IPrimitiveIcon = { - height?: number | string; - width?: number | string; - fill?: string; - color?: string; - size?: number | string; - stroke?: string; - as?: React.ElementType; - className?: string; -}; - -const PrimitiveIcon = React.forwardRef< - React.ElementRef, - IPrimitiveIcon ->(({ height, width, fill, color, size, stroke, as: AsComp, ...props }, ref) => { - const sizeProps = useMemo(() => { - if (size) return { size }; - if (height && width) return { height, width }; - if (height) return { height }; - if (width) return { width }; - return {}; - }, [size, height, width]); - - let colorProps = {}; - if (color) { - colorProps = { ...colorProps, color: color }; - } - if (stroke) { - colorProps = { ...colorProps, stroke: stroke }; - } - if (fill) { - colorProps = { ...colorProps, fill: fill }; - } - if (AsComp) { - return ; - } - return ( - - ); -}); +import React from 'react'; +import { Pressable, TextInput, View } from 'react-native'; -const InputWrapper = React.forwardRef< - React.ElementRef, - React.ComponentProps ->(({ ...props }, ref) => { - return ; -}); +const SCOPE = 'INPUT'; const UIInput = createInput({ - // @ts-ignore - Root: - Platform.OS === 'web' - ? withStyleContext(InputWrapper, SCOPE) - : withStyleContextAndStates(InputWrapper, SCOPE), - Icon: PrimitiveIcon, + Root: withStyleContext(View, SCOPE), + Icon: UIIcon, Slot: Pressable, - Input: Platform.OS === 'web' ? TextInput : withStates(TextInput), + Input: TextInput, +}); + +cssInterop(PrimitiveIcon, { + className: { + target: 'style', + nativeStyleToProp: { + height: true, + width: true, + fill: true, + color: 'classNameColor', + stroke: true, + }, + }, }); const inputStyle = tva({ @@ -116,7 +73,7 @@ const inputSlotStyle = tva({ }); const inputFieldStyle = tva({ - base: 'flex-1 text-typography-900 py-auto px-3 placeholder:text-typography-500 h-full ios:leading-[0px] web:cursor-text web:data-[disabled=true]:cursor-not-allowed', + base: 'flex-1 text-typography-900 py-0 px-3 placeholder:text-typography-500 h-full ios:leading-[0px] web:cursor-text web:data-[disabled=true]:cursor-not-allowed', parentVariants: { variant: { @@ -141,70 +98,25 @@ const inputFieldStyle = tva({ }, }); -cssInterop(InputWrapper, { className: 'style' }); -cssInterop(UIInput.Slot, { className: 'style' }); -cssInterop(UIInput.Input, { - className: { target: 'style', nativeStyleToProp: { textAlign: true } }, -}); -cssInterop(UIInput.Icon, { - className: { - target: 'style', - nativeStyleToProp: { - height: true, - width: true, - // @ts-ignore - fill: true, - color: true, - stroke: true, - }, - }, +type IInputProps = React.ComponentProps & VariantProps & { className?: string }; +const Input = React.forwardRef, IInputProps>(function Input({ className, variant = 'outline', size = 'md', ...props }, ref) { + return ; }); -type IInputProps = React.ComponentProps & - VariantProps & { className?: string }; -const Input = React.forwardRef, IInputProps>( - ({ className, variant = 'outline', size = 'md', ...props }, ref) => { - return ( - - ); - } -); - -type IInputIconProps = React.ComponentProps & { - className?: string; -}; +type IInputIconProps = React.ComponentProps & + VariantProps & { + className?: string; + height?: number; + width?: number; + }; -const InputIcon = React.forwardRef< - React.ElementRef, - IInputIconProps ->(({ className, size, ...props }, ref) => { +const InputIcon = React.forwardRef, IInputIconProps>(function InputIcon({ className, size, ...props }, ref) { const { size: parentSize } = useStyleContext(SCOPE); if (typeof size === 'number') { - return ( - - ); - } else if ( - (props.height !== undefined || props.width !== undefined) && - size === undefined - ) { - return ( - - ); + return ; + } else if ((props.height !== undefined || props.width !== undefined) && size === undefined) { + return ; } return ( & - VariantProps & { className?: string }; +type IInputSlotProps = React.ComponentProps & VariantProps & { className?: string }; -const InputSlot = React.forwardRef< - React.ElementRef, - IInputSlotProps ->(({ className, ...props }, ref) => { +const InputSlot = React.forwardRef, IInputSlotProps>(function InputSlot({ className, ...props }, ref) { return ( & - VariantProps & { className?: string }; +type IInputFieldProps = React.ComponentProps & VariantProps & { className?: string }; -const InputField = React.forwardRef< - React.ElementRef, - IInputFieldProps ->(({ className, ...props }, ref) => { +const InputField = React.forwardRef, IInputFieldProps>(function InputField({ className, ...props }, ref) { const { variant: parentVariant, size: parentSize } = useStyleContext(SCOPE); return ( diff --git a/src/components/ui/menu/index.tsx b/src/components/ui/menu/index.tsx index eca7e09..cddede6 100644 --- a/src/components/ui/menu/index.tsx +++ b/src/components/ui/menu/index.tsx @@ -1,12 +1,20 @@ 'use client'; +import React from 'react'; import { createMenu } from '@gluestack-ui/menu'; -import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; -import { withStates } from '@gluestack-ui/nativewind-utils/withStates'; -import { AnimatePresence, Motion } from '@legendapp/motion'; import { cssInterop } from 'nativewind'; -import React from 'react'; -import { Platform, Pressable, Text, View } from 'react-native'; +import { Pressable, Text, View, ViewStyle } from 'react-native'; +import { + Motion, + AnimatePresence, + MotionComponentProps, +} from '@legendapp/motion'; +import type { VariantProps } from '@gluestack-ui/nativewind-utils'; + +type IMotionViewProps = React.ComponentProps & + MotionComponentProps; + +const MotionView = Motion.View as React.ComponentType; const menuStyle = tva({ base: 'rounded-md bg-background-0 border border-outline-100 p-1 shadow-hard-5', @@ -44,11 +52,11 @@ const menuItemLabelStyle = tva({ }, size: { '2xs': 'text-2xs', - xs: 'text-xs', - sm: 'text-sm', - md: 'text-base', - lg: 'text-lg', - xl: 'text-xl', + 'xs': 'text-xs', + 'sm': 'text-sm', + 'md': 'text-base', + 'lg': 'text-lg', + 'xl': 'text-xl', '2xl': 'text-2xl', '3xl': 'text-3xl', '4xl': 'text-4xl', @@ -68,10 +76,10 @@ const menuItemLabelStyle = tva({ }); const BackdropPressable = React.forwardRef< - React.ElementRef, + React.ComponentRef, React.ComponentPropsWithoutRef & - VariantProps ->(({ className, ...props }, ref) => { + VariantProps +>(function BackdropPressable({ className, ...props }, ref) { return ( & { } & React.ComponentPropsWithoutRef; const Item = React.forwardRef< - React.ElementRef, + React.ComponentRef, IMenuItemProps ->(({ className, ...props }, ref) => { +>(function Item({ className, ...props }, ref) { return ( { - return ( - - ); - } -); +const Separator = React.forwardRef< + React.ComponentRef, + React.ComponentPropsWithoutRef & + VariantProps +>(function Separator({ className, ...props }, ref) { + return ( + + ); +}); export const UIMenu = createMenu({ - Root: Motion.View, - Item: Platform.OS === 'web' ? Item : withStates(Item), + Root: MotionView, + Item: Item, Label: Text, Backdrop: BackdropPressable, AnimatePresence: AnimatePresence, Separator: Separator, }); -cssInterop(UIMenu, { className: 'style' }); -cssInterop(UIMenu.ItemLabel, { className: 'style' }); +cssInterop(MotionView, { className: 'style' }); type IMenuProps = React.ComponentProps & VariantProps & { className?: string }; type IMenuItemLabelProps = React.ComponentProps & VariantProps & { className?: string }; -const Menu = React.forwardRef, IMenuProps>( - ({ className, ...props }, ref) => { +const Menu = React.forwardRef, IMenuProps>( + function Menu({ className, ...props }, ref) { return ( , IMenuProps>( const MenuItem = UIMenu.Item; const MenuItemLabel = React.forwardRef< - React.ElementRef, + React.ComponentRef, IMenuItemLabelProps ->( - ( - { - className, - isTruncated, - bold, - underline, - strikeThrough, - size = 'md', - sub, - italic, - highlight, - ...props - }, - ref - ) => { - return ( - - ); - } -); +>(function MenuItemLabel( + { + className, + isTruncated, + bold, + underline, + strikeThrough, + size = 'md', + sub, + italic, + highlight, + ...props + }, + ref +) { + return ( + + ); +}); const MenuSeparator = UIMenu.Separator; Menu.displayName = 'Menu'; MenuItem.displayName = 'MenuItem'; MenuItemLabel.displayName = 'MenuItemLabel'; -MenuSeparator.displayName = 'MenuSeperator'; -export { Menu, MenuItem, MenuItemLabel, MenuSeparator }; +MenuSeparator.displayName = 'MenuSeparator'; +export { Menu, MenuItem, MenuItemLabel, MenuSeparator }; \ No newline at end of file diff --git a/src/components/ui/popover/index.tsx b/src/components/ui/popover/index.tsx index 3854379..1998420 100644 --- a/src/components/ui/popover/index.tsx +++ b/src/components/ui/popover/index.tsx @@ -1,58 +1,37 @@ 'use client'; -import React from 'react'; -import { View, Pressable, Platform, ScrollView } from 'react-native'; -import { - Motion, - createMotionAnimatedComponent, - AnimatePresence, -} from '@legendapp/motion'; -import { createPopover } from '@gluestack-ui/popover'; +import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; -import { - withStyleContext, - useStyleContext, -} from '@gluestack-ui/nativewind-utils/withStyleContext'; -import { withStates } from '@gluestack-ui/nativewind-utils/withStates'; -import { withStyleContextAndStates } from '@gluestack-ui/nativewind-utils/withStyleContextAndStates'; +import { useStyleContext, withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext'; +import { createPopover } from '@gluestack-ui/popover'; +import { AnimatePresence, createMotionAnimatedComponent, Motion, type MotionComponentProps } from '@legendapp/motion'; import { cssInterop } from 'nativewind'; -import type { VariantProps } from '@gluestack-ui/nativewind-utils'; +import React from 'react'; +import { Pressable, ScrollView, View, type ViewStyle } from 'react-native'; + +type IAnimatedPressableProps = React.ComponentProps & MotionComponentProps; + +const AnimatedPressable = createMotionAnimatedComponent(Pressable) as React.ComponentType; -const AnimatedPressable = createMotionAnimatedComponent(Pressable); const SCOPE = 'POPOVER'; -const ArrowWrapper = React.forwardRef(({ ...props }, ref) => { - return ; -}) as React.ForwardRefExoticComponent< - React.ElementRef & - React.ComponentProps ->; + +type IMotionViewProps = React.ComponentProps & MotionComponentProps; + +const MotionView = Motion.View as React.ComponentType; + const UIPopover = createPopover({ - Root: (Platform.OS === 'web' - ? withStyleContext(View, SCOPE) - : withStyleContextAndStates(View, SCOPE)) as ReturnType< - typeof withStyleContext - >, - Arrow: Platform.OS === 'web' ? Motion.View : withStates(ArrowWrapper), + Root: withStyleContext(View, SCOPE), + Arrow: MotionView, Backdrop: AnimatedPressable, Body: ScrollView, CloseButton: Pressable, - Content: Motion.View, + Content: MotionView, Footer: View, Header: View, AnimatePresence: AnimatePresence, }); -cssInterop(UIPopover, { className: 'style' }); -cssInterop(ArrowWrapper, { className: 'style' }); -cssInterop(UIPopover.Content, { className: 'style' }); -cssInterop(UIPopover.Header, { className: 'style' }); -cssInterop(UIPopover.Footer, { className: 'style' }); -cssInterop(UIPopover.Body, { - className: 'style', - contentContainerClassName: 'contentContainerStyle', - indicatorClassName: 'indicatorStyle', -}); -cssInterop(UIPopover.Backdrop, { className: 'style' }); -cssInterop(UIPopover.CloseButton, { className: 'style' }); +cssInterop(MotionView, { className: 'style' }); +cssInterop(AnimatedPressable, { className: 'style' }); const popoverStyle = tva({ base: 'group/popover w-full h-full justify-center items-center web:pointer-events-none', @@ -71,30 +50,18 @@ const popoverArrowStyle = tva({ base: 'bg-background-0 z-[1] border absolute overflow-hidden h-3.5 w-3.5 border-outline-100', variants: { placement: { - 'top left': - 'data-[flip=false]:border-t-transparent data-[flip=false]:border-l-transparent data-[flip=true]:border-b-transparent data-[flip=true]:border-r-transparent', - 'top': - 'data-[flip=false]:border-t-transparent data-[flip=false]:border-l-transparent data-[flip=true]:border-b-transparent data-[flip=true]:border-r-transparent', - 'top right': - 'data-[flip=false]:border-t-transparent data-[flip=false]:border-l-transparent data-[flip=true]:border-b-transparent data-[flip=true]:border-r-transparent', - 'bottom': - 'data-[flip=false]:border-b-transparent data-[flip=false]:border-r-transparent data-[flip=true]:border-t-transparent data-[flip=true]:border-l-transparent', - 'bottom left': - 'data-[flip=false]:border-b-transparent data-[flip=false]:border-r-transparent data-[flip=true]:border-t-transparent data-[flip=true]:border-l-transparent', - 'bottom right': - 'data-[flip=false]:border-b-transparent data-[flip=false]:border-r-transparent data-[flip=true]:border-t-transparent data-[flip=true]:border-l-transparent', - 'left': - 'data-[flip=false]:border-l-transparent data-[flip=false]:border-b-transparent data-[flip=true]:border-r-transparent data-[flip=true]:border-t-transparent', - 'left top': - 'data-[flip=false]:border-l-transparent data-[flip=false]:border-b-transparent data-[flip=true]:border-r-transparent data-[flip=true]:border-t-transparent', - 'left bottom': - 'data-[flip=false]:border-l-transparent data-[flip=false]:border-b-transparent data-[flip=true]:border-r-transparent data-[flip=true]:border-t-transparent', - 'right': - 'data-[flip=false]:border-r-transparent data-[flip=false]:border-t-transparent data-[flip=true]:border-l-transparent data-[flip=true]:border-b-transparent', - 'right top': - 'data-[flip=false]:border-r-transparent data-[flip=false]:border-t-transparent data-[flip=true]:border-l-transparent data-[flip=true]:border-b-transparent', - 'right bottom': - 'data-[flip=false]:border-r-transparent data-[flip=false]:border-t-transparent data-[flip=true]:border-l-transparent data-[flip=true]:border-b-transparent', + 'top left': 'data-[flip=false]:border-t-0 data-[flip=false]:border-l-0 data-[flip=true]:border-b-0 data-[flip=true]:border-r-0', + top: 'data-[flip=false]:border-t-0 data-[flip=false]:border-l-0 data-[flip=true]:border-b-0 data-[flip=true]:border-r-0', + 'top right': 'data-[flip=false]:border-t-0 data-[flip=false]:border-l-0 data-[flip=true]:border-b-0 data-[flip=true]:border-r-0', + bottom: 'data-[flip=false]:border-b-0 data-[flip=false]:border-r-0 data-[flip=true]:border-t-0 data-[flip=true]:border-l-0', + 'bottom left': 'data-[flip=false]:border-b-0 data-[flip=false]:border-r-0 data-[flip=true]:border-t-0 data-[flip=true]:border-l-0', + 'bottom right': 'data-[flip=false]:border-b-0 data-[flip=false]:border-r-0 data-[flip=true]:border-t-0 data-[flip=true]:border-l-0', + left: 'data-[flip=false]:border-l-0 data-[flip=false]:border-b-0 data-[flip=true]:border-r-0 data-[flip=true]:border-t-0', + 'left top': 'data-[flip=false]:border-l-0 data-[flip=false]:border-b-0 data-[flip=true]:border-r-0 data-[flip=true]:border-t-0', + 'left bottom': 'data-[flip=false]:border-l-0 data-[flip=false]:border-b-0 data-[flip=true]:border-r-0 data-[flip=true]:border-t-0', + right: 'data-[flip=false]:border-r-0 data-[flip=false]:border-t-0 data-[flip=true]:border-l-0 data-[flip=true]:border-b-0', + 'right top': 'data-[flip=false]:border-r-0 data-[flip=false]:border-t-0 data-[flip=true]:border-l-0 data-[flip=true]:border-b-0', + 'right bottom': 'data-[flip=false]:border-r-0 data-[flip=false]:border-t-0 data-[flip=true]:border-l-0 data-[flip=true]:border-b-0', }, }, }); @@ -132,53 +99,27 @@ const popoverFooterStyle = tva({ base: 'flex-row justify-between items-center', }); -type IPopoverProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverArrowProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverArrowProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverContentProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverContentProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverHeaderProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverHeaderProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverFooterProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverFooterProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverBodyProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverBodyProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverBackdropProps = React.ComponentProps & - VariantProps & { className?: string }; +type IPopoverBackdropProps = React.ComponentProps & VariantProps & { className?: string }; -type IPopoverCloseButtonProps = React.ComponentProps< - typeof UIPopover.CloseButton -> & - VariantProps & { className?: string }; +type IPopoverCloseButtonProps = React.ComponentProps & VariantProps & { className?: string }; -const Popover = React.forwardRef< - React.ElementRef, - IPopoverProps ->(({ className, size = 'md', placement = 'bottom', ...props }, ref) => { - return ( - - ); +const Popover = React.forwardRef, IPopoverProps>(function Popover({ className, size = 'md', placement = 'bottom', ...props }, ref) { + return ; }); -const PopoverContent = React.forwardRef< - React.ElementRef, - IPopoverContentProps ->(({ className, size, ...props }, ref) => { +const PopoverContent = React.forwardRef, IPopoverContentProps>(function PopoverContent({ className, size, ...props }, ref) { const { size: parentSize } = useStyleContext(SCOPE); return ( @@ -208,10 +149,7 @@ const PopoverContent = React.forwardRef< ); }); -const PopoverArrow = React.forwardRef< - React.ElementRef, - IPopoverArrowProps ->(({ className, ...props }, ref) => { +const PopoverArrow = React.forwardRef, IPopoverArrowProps>(function PopoverArrow({ className, ...props }, ref) { const { placement } = useStyleContext(SCOPE); return ( , - IPopoverBackdropProps ->(({ className, ...props }, ref) => { +const PopoverBackdrop = React.forwardRef, IPopoverBackdropProps>(function PopoverBackdrop({ className, ...props }, ref) { return ( , - IPopoverBodyProps ->(({ className, ...props }, ref) => { +const PopoverBody = React.forwardRef, IPopoverBodyProps>(function PopoverBody({ className, ...props }, ref) { return ( , - IPopoverCloseButtonProps ->(({ className, ...props }, ref) => { +const PopoverCloseButton = React.forwardRef, IPopoverCloseButtonProps>(function PopoverCloseButton({ className, ...props }, ref) { return ( , - IPopoverFooterProps ->(({ className, ...props }, ref) => { +const PopoverFooter = React.forwardRef, IPopoverFooterProps>(function PopoverFooter({ className, ...props }, ref) { return ( , - IPopoverHeaderProps ->(({ className, ...props }, ref) => { +const PopoverHeader = React.forwardRef, IPopoverHeaderProps>(function PopoverHeader({ className, ...props }, ref) { return ( , - React.ComponentProps ->(({ ...props }, ref) => { - return ; -}); - -const LabelWrapper = React.forwardRef< - React.ElementRef, - React.ComponentProps ->(({ ...props }, ref) => { - return ; -}); +const SCOPE = 'Radio'; -const IconWrapper = React.forwardRef< - React.ElementRef, - React.ComponentProps ->(({ ...props }, ref) => { - return ; +const UIRadio = createRadio({ + Root: (Platform.OS === 'web' + ? withStyleContext(View, SCOPE) + : withStyleContext(Pressable, SCOPE)) as ReturnType< + typeof withStyleContext + >, + Group: View, + Icon: UIIcon, + Indicator: View, + Label: Text, }); -type IPrimitiveIcon = { - height?: number | string; - width?: number | string; - fill?: string; - color?: string; - size?: number | string; - stroke?: string; - as?: React.ElementType; - className?: string; -}; - -const PrimitiveIcon = React.forwardRef< - React.ElementRef, - IPrimitiveIcon ->(({ height, width, fill, color, size, stroke, as: AsComp, ...props }, ref) => { - const sizeProps = useMemo(() => { - if (size) return { size }; - if (height && width) return { height, width }; - if (height) return { height }; - if (width) return { width }; - return {}; - }, [size, height, width]); - - let colorProps = {}; - if (color) { - colorProps = { ...colorProps, color: color }; - } - if (stroke) { - colorProps = { ...colorProps, stroke: stroke }; - } - if (fill) { - colorProps = { ...colorProps, fill: fill }; - } - if (AsComp) { - return ; - } - return ( - - ); +cssInterop(PrimitiveIcon, { + className: { + target: 'style', + nativeStyleToProp: { + height: true, + width: true, + fill: true, + color: 'classNameColor', + stroke: true, + }, + }, }); const radioStyle = tva({ @@ -91,7 +54,7 @@ const radioGroupStyle = tva({ }); const radioIconStyle = tva({ - base: 'rounded-full justify-center items-center text-background-800 fill-background-800', + base: 'rounded-full justify-center items-center text-primary-800 fill-primary-800', parentVariants: { size: { @@ -132,43 +95,10 @@ const radioLabelStyle = tva({ }, }); -const SCOPE = 'Radio'; - -const UIRadio = createRadio({ - Root: (Platform.OS === 'web' - ? withStyleContext(View, SCOPE) - : withStyleContextAndStates(Pressable, SCOPE)) as ReturnType< - typeof withStyleContextAndStates - >, - Group: View, - Icon: Platform.OS === 'web' ? IconWrapper : withStates(IconWrapper), - Indicator: - Platform.OS === 'web' ? IndicatorWrapper : withStates(IndicatorWrapper), - Label: Platform.OS === 'web' ? LabelWrapper : withStates(LabelWrapper), -}); - -cssInterop(UIRadio, { className: 'style' }); -cssInterop(UIRadio.Group, { className: 'style' }); -cssInterop(IndicatorWrapper, { className: 'style' }); -cssInterop(LabelWrapper, { className: 'style' }); -cssInterop(IconWrapper, { - className: { - target: 'style', - nativeStyleToProp: { - height: true, - width: true, - // @ts-ignore - fill: true, - color: true, - stroke: true, - }, - }, -}); - type IRadioProps = Omit, 'context'> & VariantProps; -const Radio = React.forwardRef, IRadioProps>( - ({ className, size = 'md', ...props }, ref) => { +const Radio = React.forwardRef, IRadioProps>( + function Radio({ className, size = 'md', ...props }, ref) { return ( , IRadioProps>( type IRadioGroupProps = React.ComponentProps & VariantProps; const RadioGroup = React.forwardRef< - React.ElementRef, + React.ComponentRef, IRadioGroupProps ->(({ className, ...props }, ref) => { +>(function RadioGroup({ className, ...props }, ref) { return ( & VariantProps; const RadioIndicator = React.forwardRef< - React.ElementRef, + React.ComponentRef, IRadioIndicatorProps ->(({ className, ...props }, ref) => { +>(function RadioIndicator({ className, ...props }, ref) { const { size } = useStyleContext(SCOPE); return ( & VariantProps; const RadioLabel = React.forwardRef< - React.ElementRef, + React.ComponentRef, IRadioLabelProps ->(({ className, ...props }, ref) => { +>(function RadioLabel({ className, ...props }, ref) { const { size } = useStyleContext(SCOPE); return ( & - VariantProps; + VariantProps & { + height?: number; + width?: number; + }; const RadioIcon = React.forwardRef< - React.ElementRef, + React.ComponentRef, IRadioIconProps ->(({ className, size, ...props }, ref) => { +>(function RadioIcon({ className, size, ...props }, ref) { const { size: parentSize } = useStyleContext(SCOPE); if (typeof size === 'number') { @@ -284,4 +217,4 @@ RadioIndicator.displayName = 'RadioIndicator'; RadioLabel.displayName = 'RadioLabel'; RadioIcon.displayName = 'RadioIcon'; -export { Radio, RadioGroup, RadioIndicator, RadioLabel, RadioIcon }; +export { Radio, RadioGroup, RadioIndicator, RadioLabel, RadioIcon }; \ No newline at end of file diff --git a/src/components/ui/select/index.tsx b/src/components/ui/select/index.tsx index 2c6ec85..a78819d 100644 --- a/src/components/ui/select/index.tsx +++ b/src/components/ui/select/index.tsx @@ -1,7 +1,8 @@ -import React, { useMemo } from 'react'; +'use client'; + +import React from 'react'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; -import { Svg } from 'react-native-svg'; -import { withStyleContextAndStates } from '@gluestack-ui/nativewind-utils/withStyleContextAndStates'; +import { PrimitiveIcon, UIIcon } from '@gluestack-ui/icon'; import { withStyleContext, useStyleContext, @@ -23,12 +24,12 @@ import { ActionsheetSectionList, ActionsheetSectionHeaderText, } from './select-actionsheet'; -import { Pressable, View, TextInput, Platform } from 'react-native'; +import { Pressable, View, TextInput } from 'react-native'; const SelectTriggerWrapper = React.forwardRef< - React.ElementRef, + React.ComponentRef, React.ComponentProps ->(({ ...props }, ref) => { +>(function SelectTriggerWrapper({ ...props }, ref) { return ; }); @@ -87,73 +88,12 @@ const selectInputStyle = tva({ }, }); -type IPrimitiveIcon = { - height?: number | string; - width?: number | string; - fill?: string; - color?: string; - size?: number | string; - stroke?: string; - as?: React.ElementType; - className?: string; - classNameColor?: string; -}; - -const PrimitiveIcon = React.forwardRef< - React.ElementRef, - IPrimitiveIcon ->( - ( - { - height, - width, - fill, - color, - classNameColor, - size, - stroke, - as: AsComp, - ...props - }, - ref - ) => { - color = color ?? classNameColor; - const sizeProps = useMemo(() => { - if (size) return { size }; - if (height && width) return { height, width }; - if (height) return { height }; - if (width) return { width }; - return {}; - }, [size, height, width]); - - let colorProps = {}; - if (fill) { - colorProps = { ...colorProps, fill: fill }; - } - if (stroke !== 'currentColor') { - colorProps = { ...colorProps, stroke: stroke }; - } else if (stroke === 'currentColor' && color !== undefined) { - colorProps = { ...colorProps, stroke: color }; - } - - if (AsComp) { - return ; - } - return ( - - ); - } -); - const UISelect = createSelect( { Root: View, - Trigger: - Platform.OS === 'web' - ? withStyleContext(SelectTriggerWrapper) - : withStyleContextAndStates(SelectTriggerWrapper), + Trigger: withStyleContext(SelectTriggerWrapper), Input: TextInput, - Icon: PrimitiveIcon, + Icon: UIIcon, }, { Portal: Actionsheet, @@ -176,8 +116,8 @@ cssInterop(UISelect.Input, { className: { target: 'style', nativeStyleToProp: { textAlign: true } }, }); cssInterop(SelectTriggerWrapper, { className: 'style' }); -//@ts-ignore -cssInterop(UISelect.Icon, { + +cssInterop(PrimitiveIcon, { className: { target: 'style', nativeStyleToProp: { @@ -194,9 +134,9 @@ type ISelectProps = VariantProps & React.ComponentProps & { className?: string }; const Select = React.forwardRef< - React.ElementRef, + React.ComponentRef, ISelectProps ->(({ className, ...props }, ref) => { +>(function Select({ className, ...props }, ref) { return ( & React.ComponentProps & { className?: string }; const SelectTrigger = React.forwardRef< - React.ElementRef, + React.ComponentRef, ISelectTriggerProps ->(({ className, size = 'md', variant = 'outline', ...props }, ref) => { +>(function SelectTrigger( + { className, size = 'md', variant = 'outline', ...props }, + ref +) { return ( & React.ComponentProps & { className?: string }; const SelectInput = React.forwardRef< - React.ElementRef, + React.ComponentRef, ISelectInputProps ->(({ className, ...props }, ref) => { +>(function SelectInput({ className, ...props }, ref) { const { size: parentSize, variant: parentVariant } = useStyleContext(); return ( & React.ComponentProps & { className?: string }; const SelectIcon = React.forwardRef< - React.ElementRef, + React.ComponentRef, ISelectIcon ->(({ className, size, ...props }, ref) => { +>(function SelectIcon({ className, size, ...props }, ref) { const { size: parentSize } = useStyleContext(); if (typeof size === 'number') { return ( @@ -270,6 +213,7 @@ const SelectIcon = React.forwardRef< /> ); } else if ( + //@ts-expect-error : web only (props?.height !== undefined || props?.width !== undefined) && size === undefined ) { @@ -308,7 +252,6 @@ const SelectContent = UISelect.Content; const SelectDragIndicator = UISelect.DragIndicator; const SelectDragIndicatorWrapper = UISelect.DragIndicatorWrapper; const SelectItem = UISelect.Item; -const SelectItemText = UISelect.ItemText; const SelectScrollView = UISelect.ScrollView; const SelectVirtualizedList = UISelect.VirtualizedList; const SelectFlatList = UISelect.FlatList; @@ -326,10 +269,9 @@ export { SelectDragIndicator, SelectDragIndicatorWrapper, SelectItem, - SelectItemText, SelectScrollView, SelectVirtualizedList, SelectFlatList, SelectSectionList, SelectSectionHeaderText, -}; +}; \ No newline at end of file diff --git a/src/components/ui/select/select-actionsheet.tsx b/src/components/ui/select/select-actionsheet.tsx index ee3f1eb..8423ffa 100644 --- a/src/components/ui/select/select-actionsheet.tsx +++ b/src/components/ui/select/select-actionsheet.tsx @@ -1,3 +1,5 @@ +'use client'; + import { H4 } from '@expo/html-elements'; import { createActionsheet } from '@gluestack-ui/actionsheet'; import { @@ -8,73 +10,38 @@ import { VirtualizedList, FlatList, SectionList, - Platform, + ViewStyle, } from 'react-native'; - +import { PrimitiveIcon, UIIcon } from '@gluestack-ui/icon'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import { withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext'; -import { withStyleContextAndStates } from '@gluestack-ui/nativewind-utils/withStyleContextAndStates'; import { cssInterop } from 'nativewind'; import { Motion, AnimatePresence, createMotionAnimatedComponent, + MotionComponentProps, } from '@legendapp/motion'; -import React, { useMemo } from 'react'; -import { Svg } from 'react-native-svg'; - -const AnimatedPressable = createMotionAnimatedComponent(Pressable); - -type IPrimitiveIcon = { - height?: number | string; - width?: number | string; - fill?: string; - color?: string; - size?: number | string; - stroke?: string; - as?: React.ElementType; - className?: string; -}; - -const PrimitiveIcon = React.forwardRef< - React.ElementRef, - IPrimitiveIcon ->(({ height, width, fill, color, size, stroke, as: AsComp, ...props }, ref) => { - const sizeProps = useMemo(() => { - if (size) return { size }; - if (height && width) return { height, width }; - if (height) return { height }; - if (width) return { width }; - return {}; - }, [size, height, width]); - - let colorProps = {}; - if (color) { - colorProps = { ...colorProps, color: color }; - } - if (stroke) { - colorProps = { ...colorProps, stroke: stroke }; - } - if (fill) { - colorProps = { ...colorProps, fill: fill }; - } - if (AsComp) { - return ; - } - return ( - - ); -}); +import React from 'react'; + +type IAnimatedPressableProps = React.ComponentProps & + MotionComponentProps; + +const AnimatedPressable = createMotionAnimatedComponent( + Pressable +) as React.ComponentType; + +type IMotionViewProps = React.ComponentProps & + MotionComponentProps; + +const MotionView = Motion.View as React.ComponentType; export const UIActionsheet = createActionsheet({ Root: View, - Content: withStyleContext(Motion.View), - Item: - Platform.OS === 'web' - ? withStyleContext(Pressable) - : withStyleContextAndStates(Pressable), + Content: withStyleContext(MotionView), + Item: withStyleContext(Pressable), ItemText: Text, DragIndicator: View, IndicatorWrapper: View, @@ -84,7 +51,7 @@ export const UIActionsheet = createActionsheet({ FlatList: FlatList, SectionList: SectionList, SectionHeaderText: H4, - Icon: PrimitiveIcon, + Icon: UIIcon, AnimatePresence: AnimatePresence, }); @@ -117,7 +84,18 @@ cssInterop(UIActionsheet.FlatList, { }); cssInterop(UIActionsheet.SectionList, { className: 'style' }); cssInterop(UIActionsheet.SectionHeaderText, { className: 'style' }); -cssInterop(UIActionsheet.Icon, { className: 'style' }); +cssInterop(PrimitiveIcon, { + className: { + target: 'style', + nativeStyleToProp: { + height: true, + width: true, + fill: true, + color: 'classNameColor', + stroke: true, + }, + }, +}); const actionsheetStyle = tva({ base: 'w-full h-full web:pointer-events-none' }); @@ -148,7 +126,7 @@ const actionsheetItemTextStyle = tva({ '2xs': 'text-2xs', 'xs': 'text-xs', 'sm': 'text-sm', - 'md': 'text-md', + 'md': 'text-base', 'lg': 'text-lg', 'xl': 'text-xl', '2xl': 'text-2xl', @@ -213,7 +191,7 @@ const actionsheetSectionHeaderTextStyle = tva({ '2xl': 'text-2xl', 'xl': 'text-xl', 'lg': 'text-lg', - 'md': 'text-md', + 'md': 'text-base', 'sm': 'text-sm', 'xs': 'text-xs', }, @@ -314,12 +292,13 @@ type IActionsheetSectionHeaderTextProps = VariantProps< type IActionsheetIconProps = VariantProps & React.ComponentProps & { className?: string; + as?: React.ElementType; }; const Actionsheet = React.forwardRef< - React.ElementRef, + React.ComponentRef, IActionsheetProps ->(({ className, ...props }, ref) => { +>(function Actionsheet({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetContentProps & { className?: string } ->(({ className, ...props }, ref) => { +>(function ActionsheetContent({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetItemProps ->(({ className, ...props }, ref) => { +>(function ActionsheetItem({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetItemTextProps ->( - ( - { isTruncated, bold, underline, strikeThrough, size, className, ...props }, - ref - ) => { - return ( - - ); - } -); +>(function ActionsheetItemText( + { className, isTruncated, bold, underline, strikeThrough, size, ...props }, + ref +) { + return ( + + ); +}); const ActionsheetDragIndicator = React.forwardRef< - React.ElementRef, + React.ComponentRef, IActionsheetDragIndicatorProps ->(({ className, ...props }, ref) => { +>(function ActionsheetDragIndicator({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetDragIndicatorWrapperProps ->(({ className, ...props }, ref) => { +>(function ActionsheetDragIndicatorWrapper({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetBackdropProps ->(({ className, ...props }, ref) => { +>(function ActionsheetBackdrop({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetScrollViewProps ->(({ className, ...props }, ref) => { +>(function ActionsheetScrollView({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetVirtualizedListProps ->(({ className, ...props }, ref) => { +>(function ActionsheetVirtualizedList({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetFlatListProps ->(({ className, ...props }, ref) => { +>(function ActionsheetFlatList({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetSectionListProps ->(({ className, ...props }, ref) => { +>(function ActionsheetSectionList({ className, ...props }, ref) { return ( , + React.ComponentRef, IActionsheetSectionHeaderTextProps ->( - ( - { - className, - isTruncated, - bold, - underline, - strikeThrough, - size, - sub, - italic, - highlight, - ...props - }, - ref - ) => { - return ( - - ); - } -); +>(function ActionsheetSectionHeaderText( + { + className, + isTruncated, + bold, + underline, + strikeThrough, + size, + sub, + italic, + highlight, + ...props + }, + ref +) { + return ( + + ); +}); const ActionsheetIcon = React.forwardRef< - React.ElementRef, + React.ComponentRef, IActionsheetIconProps ->(({ className, as: AsComp, size = 'sm', ...props }, ref) => { +>(function ActionsheetIcon( + { className, as: AsComp, size = 'sm', ...props }, + ref +) { if (AsComp) { return ( = ({ }[size]; const variantStyles = { - default: isActive - ? 'border-b-2 border-primary-500 text-primary-500' - : 'border-b-2 border-transparent text-gray-500', - pills: isActive - ? 'bg-primary-500 text-white rounded-full' - : 'bg-transparent text-gray-500', - underlined: isActive - ? 'border-b-2 border-primary-500 text-primary-500' - : 'border-b-2 border-transparent text-gray-500', - segmented: isActive - ? 'bg-primary-500 text-white' - : 'bg-gray-100 text-gray-500', + default: isActive ? 'border-b-2 border-primary-500 text-primary-500' : 'border-b-2 border-transparent text-gray-500', + pills: isActive ? 'bg-primary-500 text-white rounded-full' : 'bg-transparent text-gray-500', + underlined: isActive ? 'border-b-2 border-primary-500 text-primary-500' : 'border-b-2 border-transparent text-gray-500', + segmented: isActive ? 'bg-primary-500 text-white' : 'bg-gray-100 text-gray-500', }[variant]; return `${baseStyles} ${sizeStyles} ${variantStyles} ${tabClassName}`; @@ -113,32 +106,33 @@ export const SharedTabs: React.FC = ({ return `${baseStyles} ${variantStyles} ${tabsContainerClassName}`; }; + // Convert Tailwind classes to style object + const getContainerStyle = () => { + const styles = StyleSheet.create({ + container: { + flexDirection: 'row', + flex: 1, + ...(variant === 'default' && { borderBottomWidth: 1, borderBottomColor: '#e5e7eb' }), + ...(variant === 'pills' && { gap: 8, padding: 4 }), + ...(variant === 'underlined' && { borderBottomWidth: 1, borderBottomColor: '#e5e7eb' }), + ...(variant === 'segmented' && { backgroundColor: '#f3f4f6', padding: 4, borderRadius: 8 }), + }, + }); + return styles.container; + }; + return ( {/* Tab Headers */} {scrollable ? ( - + {tabs.map((tab, index) => ( - handleTabPress(index)} - > + handleTabPress(index)}> {tab.icon && {tab.icon}} - {typeof tab.title === 'string' ? ( - {t(tab.title)} - ) : ( - {tab.title} - )} + {typeof tab.title === 'string' ? {t(tab.title)} : {tab.title}} {tab.badge !== undefined && tab.badge > 0 && ( - - - {tab.badge} - + + {tab.badge} )} @@ -147,22 +141,12 @@ export const SharedTabs: React.FC = ({ ) : ( {tabs.map((tab, index) => ( - handleTabPress(index)} - > + handleTabPress(index)}> {tab.icon && {tab.icon}} - {typeof tab.title === 'string' ? ( - {t(tab.title)} - ) : ( - {tab.title} - )} + {typeof tab.title === 'string' ? {t(tab.title)} : {tab.title}} {tab.badge !== undefined && tab.badge > 0 && ( - - - {tab.badge} - + + {tab.badge} )} @@ -171,9 +155,7 @@ export const SharedTabs: React.FC = ({ )} {/* Tab Content */} - - {tabs[currentIndex]?.content} - + {tabs[currentIndex]?.content} ); }; diff --git a/src/components/ui/slider/index.tsx b/src/components/ui/slider/index.tsx index 455ccd2..d3ba19f 100644 --- a/src/components/ui/slider/index.tsx +++ b/src/components/ui/slider/index.tsx @@ -1,8 +1,8 @@ 'use client'; import { createSlider } from '@gluestack-ui/slider'; -import { Pressable } from 'react-native'; +import { Pressable, ViewProps } from 'react-native'; import { View, Platform } from 'react-native'; -import React from 'react'; +import React, { ComponentType, RefAttributes } from 'react'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; import { withStyleContext, @@ -29,9 +29,9 @@ export const UISlider = createSlider({ Platform.OS === 'web' ? withStyleContext(View, SCOPE) : withStyleContextAndStates(View, SCOPE), - Thumb: Platform.OS === 'web' ? ThumbWrapper : withStates(View), + Thumb: Platform.OS === 'web' ? ThumbWrapper : withStates(View) as ComponentType>, Track: Pressable, - FilledTrack: Platform.OS === 'web' ? FilledTrackWrapper : withStates(View), + FilledTrack: Platform.OS === 'web' ? FilledTrackWrapper : withStates(View) as ComponentType>, ThumbInteraction: View, }); diff --git a/src/components/ui/table/index.tsx b/src/components/ui/table/index.tsx deleted file mode 100644 index 9cdd0f0..0000000 --- a/src/components/ui/table/index.tsx +++ /dev/null @@ -1,200 +0,0 @@ -import React, { createContext, useMemo, useContext } from 'react'; -import { - Table as ExpoTable, - THead as ExpoTHead, - TBody as ExpoTBody, - TFoot as ExpoTFoot, - TR as ExpoTR, - Caption as ExpoTCaption, -} from '@expo/html-elements'; -import { - tableStyle, - tableHeaderStyle, - tableBodyStyle, - tableFooterStyle, - tableHeadStyle, - tableRowStyleStyle, - tableDataStyle, - tableCaptionStyle, -} from './styles'; -import { Text, View } from 'react-native'; - -const TableHeaderContext = createContext({}); -const TableFooterContext = createContext({}); - -type ITableProps = React.ComponentProps; -type ITableHeaderProps = React.ComponentProps; -type ITableBodyProps = React.ComponentProps; -type ITableFooterProps = React.ComponentProps; -type ITableHeadProps = React.ComponentProps & { - useRNView?: boolean; -}; -type ITableRowProps = React.ComponentProps; -type ITableDataProps = React.ComponentProps & { - useRNView?: boolean; -}; -type ITableCaptionProps = React.ComponentProps; - -const Table = React.forwardRef, ITableProps>( - ({ className, ...props }, ref) => { - return ( - - ); - } -); - -const TableHeader = React.forwardRef< - React.ElementRef, - ITableHeaderProps ->(({ className, ...props }, ref) => { - const contextValue = useMemo(() => { - return { - isHeaderRow: true, - }; - }, []); - return ( - - - - ); -}); - -const TableBody = React.forwardRef< - React.ElementRef, - ITableBodyProps ->(({ className, ...props }, ref) => { - return ( - - ); -}); - -const TableFooter = React.forwardRef< - React.ElementRef, - ITableFooterProps ->(({ className, ...props }, ref) => { - const contextValue = useMemo(() => { - return { - isFooterRow: true, - }; - }, []); - return ( - - - - ); -}); - -const TableHead = React.forwardRef< - React.ElementRef, - ITableHeadProps ->(({ useRNView = false, className, ...props }, ref) => { - if (useRNView) { - return ( - - ); - } else { - return ( - - ); - } -}); - -const TableRow = React.forwardRef< - React.ElementRef, - ITableRowProps ->(({ className, ...props }, ref) => { - const { isHeaderRow } = useContext(TableHeaderContext); - const { isFooterRow } = useContext(TableFooterContext); - - return ( - - ); -}); - -const TableData = React.forwardRef< - React.ElementRef, - ITableDataProps ->(({ useRNView = false, className, ...props }, ref) => { - if (useRNView) { - return ( - - ); - } else { - return ( - - ); - } -}); - -const TableCaption = React.forwardRef< - React.ElementRef, - ITableCaptionProps ->(({ className, ...props }, ref) => { - return ( - - ); -}); - -Table.displayName = 'Table'; -TableHeader.displayName = 'TableHeader'; -TableBody.displayName = 'TableBody'; -TableFooter.displayName = 'TableFooter'; -TableHead.displayName = 'TableHead'; -TableRow.displayName = 'TableRow'; -TableData.displayName = 'TableData'; -TableCaption.displayName = 'TableCaption'; - -export { - Table, - TableHeader, - TableBody, - TableFooter, - TableHead, - TableRow, - TableData, - TableCaption, -}; diff --git a/src/components/ui/table/index.web.tsx b/src/components/ui/table/index.web.tsx deleted file mode 100644 index a6a3a79..0000000 --- a/src/components/ui/table/index.web.tsx +++ /dev/null @@ -1,142 +0,0 @@ -import React, { createContext, useMemo, useContext } from 'react'; -import { - tableStyle, - tableHeaderStyle, - tableBodyStyle, - tableFooterStyle, - tableHeadStyle, - tableRowStyleStyle, - tableDataStyle, - tableCaptionStyle, -} from './styles'; - -const TableHeaderContext = createContext({}); -const TableFooterContext = createContext({}); - -const Table = React.forwardRef(({ className, ...props }: any, ref?: any) => { - return ( - - ); -}); - -const TableHeader = React.forwardRef( - ({ className, ...props }: any, ref?: any) => { - const contextValue = useMemo(() => { - return { - isHeaderRow: true, - }; - }, []); - return ( - - - - ); - } -); - -const TableBody = React.forwardRef( - ({ className, ...props }: any, ref?: any) => { - return ( - - ); - } -); - -const TableFooter = React.forwardRef( - ({ className, ...props }: any, ref?: any) => { - const contextValue = useMemo(() => { - return { - isFooterRow: true, - }; - }, []); - return ( - - - - ); - } -); - -const TableHead = React.forwardRef( - ({ className, ...props }: any, ref?: any) => { - return ( - - ); -}); - -const TableData = React.forwardRef( - ({ className, ...props }: any, ref?: any) => { - return ( -
- ); - } -); - -const TableRow = React.forwardRef(({ className, ...props }: any, ref?: any) => { - const { isHeaderRow } = useContext(TableHeaderContext); - const { isFooterRow } = useContext(TableFooterContext); - return ( -
- ); - } -); - -const TableCaption = React.forwardRef( - ({ className, ...props }: any, ref?: any) => { - return ( -
- ); - } -); - -Table.displayName = 'Table'; -TableHeader.displayName = 'TableHeader'; -TableBody.displayName = 'TableBody'; -TableFooter.displayName = 'TableFooter'; -TableHead.displayName = 'TableHead'; -TableRow.displayName = 'TableRow'; -TableData.displayName = 'TableData'; -TableCaption.displayName = 'TableCaption'; - -export { - Table, - TableHeader, - TableBody, - TableFooter, - TableHead, - TableRow, - TableData, - TableCaption, -}; diff --git a/src/components/ui/table/styles.tsx b/src/components/ui/table/styles.tsx deleted file mode 100644 index 984a9d5..0000000 --- a/src/components/ui/table/styles.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { tva } from '@gluestack-ui/nativewind-utils/tva'; -import { isWeb } from '@gluestack-ui/nativewind-utils/IsWeb'; - -const captionTableStyle = isWeb ? 'caption-bottom' : ''; - -export const tableStyle = tva({ - base: `table border-collapse border-collapse w-[800px]`, -}); - -export const tableHeaderStyle = tva({ - base: '', -}); - -export const tableBodyStyle = tva({ - base: '', -}); - -export const tableFooterStyle = tva({ - base: '', -}); - -export const tableHeadStyle = tva({ - base: 'flex-1 px-6 py-[14px] text-left font-bold text-[16px] leading-[22px] text-typography-800 font-roboto', -}); - -export const tableRowStyleStyle = tva({ - base: 'border-0 border-b border-solid border-outline-200 bg-background-0', - variants: { - isHeaderRow: { - true: '', - }, - isFooterRow: { - true: 'border-b-0 ', - }, - }, -}); - -export const tableDataStyle = tva({ - base: 'flex-1 px-6 py-[14px] text-left text-[16px] font-medium leading-[22px] text-typography-800 font-roboto', -}); - -export const tableCaptionStyle = tva({ - base: `${captionTableStyle} px-6 py-[14px] text-[16px] font-normal leading-[22px] text-typography-800 bg-background-50 font-roboto`, -}); diff --git a/src/components/ui/toast/index.tsx b/src/components/ui/toast/index.tsx index 889654d..46b991c 100644 --- a/src/components/ui/toast/index.tsx +++ b/src/components/ui/toast/index.tsx @@ -1,20 +1,21 @@ 'use client'; -import React from 'react'; -import { createToastHook } from '@gluestack-ui/toast'; -import { AccessibilityInfo, Text, View } from 'react-native'; +import type { VariantProps } from '@gluestack-ui/nativewind-utils'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; +import { useStyleContext, withStyleContext } from '@gluestack-ui/nativewind-utils/withStyleContext'; +import { createToastHook } from '@gluestack-ui/toast'; +import { AnimatePresence, Motion, type MotionComponentProps } from '@legendapp/motion'; import { cssInterop } from 'nativewind'; -import { Motion, AnimatePresence } from '@legendapp/motion'; -import { - withStyleContext, - useStyleContext, -} from '@gluestack-ui/nativewind-utils/withStyleContext'; -import type { VariantProps } from '@gluestack-ui/nativewind-utils'; +import React from 'react'; +import { AccessibilityInfo, Text, View, type ViewStyle } from 'react-native'; + +type IMotionViewProps = React.ComponentProps & MotionComponentProps; + +const MotionView = Motion.View as React.ComponentType; -const useToast = createToastHook(Motion.View, AnimatePresence); +const useToast = createToastHook(MotionView, AnimatePresence); const SCOPE = 'TOAST'; -cssInterop(Motion.View, { className: 'style' }); +cssInterop(MotionView, { className: 'style' }); const toastStyle = tva({ base: 'p-4 m-1 rounded-md gap-1 web:pointer-events-auto shadow-hard-5 border-outline-100', @@ -147,29 +148,16 @@ type IToastProps = React.ComponentProps & { className?: string; } & VariantProps; -const Toast = React.forwardRef, IToastProps>( - ({ className, variant = 'solid', action = 'muted', ...props }, ref) => { - return ( - - ); - } -); +const Toast = React.forwardRef, IToastProps>(function Toast({ className, variant = 'solid', action = 'muted', ...props }, ref) { + return ; +}); type IToastTitleProps = React.ComponentProps & { className?: string; } & VariantProps; -const ToastTitle = React.forwardRef< - React.ElementRef, - IToastTitleProps ->(({ className, size = 'md', children, ...props }, ref) => { - const { variant: parentVariant, action: parentAction } = - useStyleContext(SCOPE); +const ToastTitle = React.forwardRef, IToastTitleProps>(function ToastTitle({ className, size = 'md', children, ...props }, ref) { + const { variant: parentVariant, action: parentAction } = useStyleContext(SCOPE); React.useEffect(() => { // Issue from react-native side // Hack for now, will fix this later @@ -201,10 +189,7 @@ type IToastDescriptionProps = React.ComponentProps & { className?: string; } & VariantProps; -const ToastDescription = React.forwardRef< - React.ElementRef, - IToastDescriptionProps ->(({ className, size = 'md', ...props }, ref) => { +const ToastDescription = React.forwardRef, IToastDescriptionProps>(function ToastDescription({ className, size = 'md', ...props }, ref) { const { variant: parentVariant } = useStyleContext(SCOPE); return ( >; + +const resolveScreenWidth: Record = { + default: 0, +}; + +Object.entries(screenSize).forEach(([key, value]) => { + if (typeof value === 'string') { + resolveScreenWidth[key] = parseInt(value.replace('px', ''), 10); + } +}); + +export const getBreakPointValue = (values: BreakPointValue, width: number): unknown => { + if (typeof values !== 'object') return values; + + let finalBreakPointResolvedValue: unknown; + const mediaQueriesBreakpoints: MediaQueriesBreakpoints[] = [ + { + key: 'default', + breakpoint: 0, + isValid: true, + }, + ]; + Object.keys(resolveScreenWidth).forEach((key) => { + const isValid = isValidBreakpoint(resolveScreenWidth[key], width); + + mediaQueriesBreakpoints.push({ + key: key, + breakpoint: resolveScreenWidth[key], + isValid: isValid, + }); + }); + + mediaQueriesBreakpoints.sort((a: MediaQueriesBreakpoints, b: MediaQueriesBreakpoints) => a.breakpoint - b.breakpoint); + + mediaQueriesBreakpoints.forEach((breakpoint: MediaQueriesBreakpoints, index: number) => { + breakpoint.value = values.hasOwnProperty(breakpoint.key) ? values[breakpoint.key] : mediaQueriesBreakpoints[index - 1]?.value || mediaQueriesBreakpoints[0]?.value; + }); + + const lastValidObject = getLastValidObject(mediaQueriesBreakpoints); + + if (!lastValidObject) { + finalBreakPointResolvedValue = values; + } else { + finalBreakPointResolvedValue = lastValidObject.value; + } + return finalBreakPointResolvedValue; +}; + +export function useBreakpointValue(values: BreakPointValue): unknown { + const { width } = useWindowDimensions(); + + const [currentBreakPointValue, setCurrentBreakPointValue] = useState(getBreakPointValue(values, width)); + + useEffect(() => { + if (typeof values === 'object') { + const finalBreakPointResolvedValue = getBreakPointValue(values, width); + setCurrentBreakPointValue(finalBreakPointResolvedValue); + } + }, [values, width]); + + if (typeof values !== 'object') return values; + + return currentBreakPointValue; +} + +export function isValidBreakpoint(breakPointWidth: number, width: number = Dimensions.get('window')?.width || 0) { + const windowWidth = width; + + return windowWidth >= breakPointWidth; +} + +function getLastValidObject( + mediaQueries: { + key: breakpoints; + breakpoint: number; + isValid: boolean; + value?: unknown; + }[] +) { + for (let i = mediaQueries.length - 1; i >= 0; i--) { + if (mediaQueries[i].isValid) { + return mediaQueries[i]; + } + } + return null; // No valid object found +} diff --git a/src/components/ui/vstack/index.tsx b/src/components/ui/vstack/index.tsx index ccace57..d3d690f 100644 --- a/src/components/ui/vstack/index.tsx +++ b/src/components/ui/vstack/index.tsx @@ -4,20 +4,11 @@ import { View } from 'react-native'; import { vstackStyle } from './styles'; -type IVStackProps = React.ComponentProps & - VariantProps; +type IVStackProps = React.ComponentProps & VariantProps; -const VStack = React.forwardRef, IVStackProps>( - ({ className, space, reversed, ...props }, ref) => { - return ( - - ); - } -); +const VStack = React.forwardRef, IVStackProps>(function VStack({ className, space, reversed, ...props }, ref) { + return ; +}); VStack.displayName = 'VStack'; diff --git a/src/components/ui/vstack/index.web.tsx b/src/components/ui/vstack/index.web.tsx index 2f76b46..90061d6 100644 --- a/src/components/ui/vstack/index.web.tsx +++ b/src/components/ui/vstack/index.web.tsx @@ -1,22 +1,13 @@ -import React from 'react'; import type { VariantProps } from '@gluestack-ui/nativewind-utils'; +import React from 'react'; import { vstackStyle } from './styles'; -type IVStackProps = React.ComponentProps<'div'> & - VariantProps; +type IVStackProps = React.ComponentProps<'div'> & VariantProps; -const VStack = React.forwardRef, IVStackProps>( - ({ className, space, reversed, ...props }, ref) => { - return ( -
- ); - } -); +const VStack = React.forwardRef, IVStackProps>(function VStack({ className, space, reversed, ...props }, ref) { + return
; +}); VStack.displayName = 'VStack'; diff --git a/src/components/ui/vstack/styles.tsx b/src/components/ui/vstack/styles.tsx index abc5dbe..ac5d68d 100644 --- a/src/components/ui/vstack/styles.tsx +++ b/src/components/ui/vstack/styles.tsx @@ -1,19 +1,17 @@ import { isWeb } from '@gluestack-ui/nativewind-utils/IsWeb'; import { tva } from '@gluestack-ui/nativewind-utils/tva'; -const baseStyle = isWeb - ? 'flex flex-col relative z-0 box-border border-0 list-none min-w-0 min-h-0 bg-transparent items-stretch m-0 p-0 text-decoration-none' - : ''; +const baseStyle = isWeb ? 'flex flex-col relative z-0 box-border border-0 list-none min-w-0 min-h-0 bg-transparent items-stretch m-0 p-0 text-decoration-none' : ''; export const vstackStyle = tva({ base: `flex-col ${baseStyle}`, variants: { space: { - 'xs': 'gap-1', - 'sm': 'gap-2', - 'md': 'gap-3', - 'lg': 'gap-4', - 'xl': 'gap-5', + xs: 'gap-1', + sm: 'gap-2', + md: 'gap-3', + lg: 'gap-4', + xl: 'gap-5', '2xl': 'gap-6', '3xl': 'gap-7', '4xl': 'gap-8', diff --git a/src/features/livekit-call/components/LiveKitCallModal.tsx b/src/features/livekit-call/components/LiveKitCallModal.tsx index 861684c..6efd533 100644 --- a/src/features/livekit-call/components/LiveKitCallModal.tsx +++ b/src/features/livekit-call/components/LiveKitCallModal.tsx @@ -1,24 +1,17 @@ -import { - Actionsheet, - ActionsheetBackdrop, - ActionsheetContent, - ActionsheetDragIndicator, - ActionsheetDragIndicatorWrapper, - Box, - Button, - ButtonText, - Heading, - HStack, - ScrollView, - Spinner, - Text, - VStack, -} from '@gluestack-ui/themed'; -import { CircleIcon, Radio, RadioGroup, RadioIcon, RadioIndicator, RadioLabel } from '@gluestack-ui/themed'; -import { AlertTriangle, CheckCircle, Mic, MicOff, PhoneMissed } from 'lucide-react-native'; // Example icons +import { AlertTriangle, CheckCircle, CircleIcon, Mic, MicOff, PhoneMissed } from 'lucide-react-native'; import React, { useEffect, useState } from 'react'; +import { ScrollView } from 'react-native'; import { type RoomInfo, useLiveKitCallStore } from '../store/useLiveKitCallStore'; +import { Actionsheet, ActionsheetBackdrop, ActionsheetContent, ActionsheetDragIndicatorWrapper, ActionsheetDragIndicator } from '@/components/ui/actionsheet'; +import { Box } from '@/components/ui/box'; +import { Button, ButtonText } from '@/components/ui/button'; +import { Heading } from '@/components/ui/heading'; +import { HStack } from '@/components/ui/hstack'; +import { Radio, RadioGroup, RadioIndicator, RadioLabel } from '@/components/ui/radio'; +import { Spinner } from '@/components/ui/spinner'; +import { Text } from '@/components/ui/text'; +import { VStack } from '@/components/ui/vstack'; interface LiveKitCallModalProps { isOpen: boolean; @@ -74,74 +67,74 @@ const LiveKitCallModal: React.FC = ({ const selectedRoomName = availableRooms.find((r) => r.id === selectedRoomForJoining)?.name || selectedRoomForJoining; return ( - + - + {isConnecting ? ( - + Connecting to {selectedRoomName || 'room'}... ) : error ? ( - - - + + + Connection Error - {error} + {error} ) : isConnected && currentRoomId ? ( - + - - + + Connected - You are in room: {currentRoomName} + You are in room: {currentRoomName} {localParticipant && Your ID: {localParticipant.identity}} - + ) : ( - - + + Join a Voice Call - + Select a room to join: - + actions.setSelectedRoomForJoining(nextValue)} accessibilityLabel="Select a room"> {availableRooms.map((room: RoomInfo) => ( - - + + {room.name} @@ -149,7 +142,7 @@ const LiveKitCallModal: React.FC = ({ - diff --git a/src/lib/storage/index.tsx b/src/lib/storage/index.tsx index 31e5a98..7606f6e 100644 --- a/src/lib/storage/index.tsx +++ b/src/lib/storage/index.tsx @@ -15,9 +15,9 @@ if (Platform.OS === 'web') { } const IS_FIRST_TIME = 'IS_FIRST_TIME'; -export function getItem(key: string): T { +export function getItem(key: string): T | null { const value = storage.getString(key); - return value ? JSON.parse(value) || null : null; + return value ? JSON.parse(value) : null; } export async function setItem(key: string, value: T) { diff --git a/src/lib/use-theme-config.tsx b/src/lib/use-theme-config.tsx deleted file mode 100644 index ccebf9f..0000000 --- a/src/lib/use-theme-config.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import type { Theme } from '@react-navigation/native'; -import { - DarkTheme as _DarkTheme, - DefaultTheme, -} from '@react-navigation/native'; -import { useColorScheme } from 'nativewind'; - -import colors from '@/components/ui/colors'; - -const DarkTheme: Theme = { - ..._DarkTheme, - colors: { - ..._DarkTheme.colors, - primary: colors.primary[200], - background: colors.charcoal[950], - text: colors.charcoal[100], - border: colors.charcoal[500], - card: colors.charcoal[850], - }, -}; - -const LightTheme: Theme = { - ...DefaultTheme, - colors: { - ...DefaultTheme.colors, - primary: colors.primary[400], - background: colors.white, - }, -}; - -export function useThemeConfig() { - const { colorScheme } = useColorScheme(); - - if (colorScheme === 'dark') return DarkTheme; - - return LightTheme; -} diff --git a/src/models/v4/callPriorities/callPrioritiesResult.ts b/src/models/v4/callPriorities/callPrioritiesResult.ts index 917d6d3..abed404 100644 --- a/src/models/v4/callPriorities/callPrioritiesResult.ts +++ b/src/models/v4/callPriorities/callPrioritiesResult.ts @@ -1,13 +1,6 @@ -import { ICacheable } from "../../cacheable"; import { BaseV4Request } from "../baseV4Request"; import { CallPriorityResultData } from "./callPriorityResultData"; -export class CallPrioritiesResult extends BaseV4Request implements ICacheable { - public cacheKey: string = 'CallPrioritiesResult'; - public cacheTime: number = 20160; - public cacheSavedOn: Date | undefined = undefined; - public cacheHitFailed: boolean = false; - public cacheType: number = 1; - +export class CallPrioritiesResult extends BaseV4Request { public Data: CallPriorityResultData[] = []; } diff --git a/src/models/v4/callTypes/callTypesResult.ts b/src/models/v4/callTypes/callTypesResult.ts index 984f134..8cb43a1 100644 --- a/src/models/v4/callTypes/callTypesResult.ts +++ b/src/models/v4/callTypes/callTypesResult.ts @@ -1,13 +1,6 @@ -import { ICacheable } from "../../cacheable"; import { BaseV4Request } from "../baseV4Request"; import { CallTypeResultData } from "./callTypeResultData"; -export class CallTypesResult extends BaseV4Request implements ICacheable { - public cacheKey: string = 'CallTypesResult'; - public cacheTime: number = 20160; - public cacheSavedOn: Date | undefined = undefined; - public cacheHitFailed: boolean = false; - public cacheType: number = 1; - +export class CallTypesResult extends BaseV4Request { public Data: CallTypeResultData[] = []; } diff --git a/src/models/v4/configs/getConfigResult.ts b/src/models/v4/configs/getConfigResult.ts index 3748ae7..7d1a0df 100644 --- a/src/models/v4/configs/getConfigResult.ts +++ b/src/models/v4/configs/getConfigResult.ts @@ -1,13 +1,6 @@ -import { type ICacheable } from '../../cacheable'; import { BaseV4Request } from '../baseV4Request'; import { GetConfigResultData } from './getConfigResultData'; -export class GetConfigResult extends BaseV4Request implements ICacheable { - public cacheKey: string = 'GetConfigResult'; - public cacheTime: number = 40320; - public cacheSavedOn: Date | undefined = undefined; - public cacheHitFailed: boolean = false; - public cacheType: number = 1; - +export class GetConfigResult extends BaseV4Request { public Data: GetConfigResultData = new GetConfigResultData(); } diff --git a/src/models/v4/contacts/contactResultData.ts b/src/models/v4/contacts/contactResultData.ts index c54a19b..9ef9978 100644 --- a/src/models/v4/contacts/contactResultData.ts +++ b/src/models/v4/contacts/contactResultData.ts @@ -6,6 +6,17 @@ export enum ContactType { } export interface ContactResultData { + Mobile: any; + Address: any; + City: any; + State: any; + Zip: any; + Notes: any; + ImageUrl: any; + Name: string | undefined; + Type: ContactType; + IsImportant: any; + Phone: any; ContactId: string; ContactType: ContactType; OtherName?: string; diff --git a/src/models/v4/groups/groupsResult.ts b/src/models/v4/groups/groupsResult.ts index b9e014d..e2069ad 100644 --- a/src/models/v4/groups/groupsResult.ts +++ b/src/models/v4/groups/groupsResult.ts @@ -1,13 +1,6 @@ -import { ICacheable } from "../../cacheable"; import { BaseV4Request } from "../baseV4Request"; import { GroupResultData } from "./groupsResultData"; -export class GroupsResult extends BaseV4Request implements ICacheable { - public cacheKey: string = 'GroupsResult'; - public cacheTime: number = 20160; - public cacheSavedOn: Date | undefined = undefined; - public cacheHitFailed: boolean = false; - public cacheType: number = 1; - +export class GroupsResult extends BaseV4Request { public Data: GroupResultData[] = []; } diff --git a/src/models/v4/voice/departmentVoiceResult.ts b/src/models/v4/voice/departmentVoiceResult.ts index 3766591..a134fa7 100644 --- a/src/models/v4/voice/departmentVoiceResult.ts +++ b/src/models/v4/voice/departmentVoiceResult.ts @@ -1,13 +1,6 @@ -import { type ICacheable } from '../../cacheable'; import { BaseV4Request } from '../baseV4Request'; import { DepartmentVoiceResultData } from './departmentVoiceResultData'; -export class DepartmentVoiceResult extends BaseV4Request implements ICacheable { - public cacheKey: string = 'DepartmentVoiceResult'; - public cacheTime: number = 20160; - public cacheSavedOn: Date | undefined = undefined; - public cacheHitFailed: boolean = false; - public cacheType: number = 1; - +export class DepartmentVoiceResult extends BaseV4Request { public Data: DepartmentVoiceResultData = new DepartmentVoiceResultData(); } diff --git a/src/services/push-notification.ts b/src/services/push-notification.ts index 1ce2009..f22d994 100644 --- a/src/services/push-notification.ts +++ b/src/services/push-notification.ts @@ -171,7 +171,7 @@ class PushNotificationService { UnitId: unitId, Token: this.pushToken, Platform: Platform.OS === 'ios' ? 1 : 2, - DeviceUuid: getDeviceUuid(), + DeviceUuid: getDeviceUuid() || '', Prefix: departmentCode, }); diff --git a/tailwind.config.js b/tailwind.config.js index b8602f3..69fea54 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,21 +1,10 @@ -import gluestackPlugin from '@gluestack-ui/nativewind-utils/tailwind-plugin'; +const gluestackPlugin = require('@gluestack-ui/nativewind-utils/tailwind-plugin'); /** @type {import('tailwindcss').Config} */ module.exports = { darkMode: process.env.DARK_MODE ? process.env.DARK_MODE : 'media', - content: [ - './src/**/*.{html,js,jsx,ts,tsx}', - './src/core-components/**/**/*.{html,js,jsx,ts,tsx}', - './src/components/**/*.{html,js,jsx,ts,tsx,mdx}', - './src/hooks/**/*.{html,js,jsx,ts,tsx,mdx}', - ], + content: ['./src/**/*.{html,js,jsx,ts,tsx}', './src/components/**/*.{html,js,jsx,ts,tsx,mdx}', './src/hooks/**/*.{html,js,jsx,ts,tsx,mdx}'], presets: [require('nativewind/preset')], - safelist: [ - { - pattern: - /(bg|border|text|stroke|fill)-(primary|secondary|tertiary|error|success|warning|info|typography|outline|background|indicator)-(0|50|100|200|300|400|500|600|700|800|900|950|white|gray|black|error|warning|muted|success|info|light|dark|primary)/, - }, - ], theme: { extend: { colors: { @@ -200,4 +189,4 @@ module.exports = { }, }, plugins: [gluestackPlugin], -}; \ No newline at end of file +}; diff --git a/tsconfig.json b/tsconfig.json index d9de64f..9d719a6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,46 +10,25 @@ "moduleResolution": "node", "sourceMap": true, "target": "esnext", - "lib": [ - "esnext", - "dom" - ], + "lib": ["esnext", "dom"], "skipLibCheck": true, "resolveJsonModule": true, "baseUrl": ".", "paths": { "@/*": ["./src/*"], "@env": ["./src/lib/env.js"], - "@/assets/*": ["../../packages/shared/assets/*", "./assets/*"], + "@/assets/*": ["./assets/*"], "tailwind.config": ["./tailwind.config.js"] }, "esModuleInterop": true, "checkJs": true, - "typeRoots": [ - "./node_modules/@types", - "./types" - ] + "typeRoots": ["./node_modules/@types", "./types"] }, "ts-node": { "compilerOptions": { "module": "commonjs" } }, - "exclude": [ - "node_modules", - "babel.config.js", - "metro.config.js", - "docs", - "cli", - "android", - "ios", - "lint-staged.config.js" - ], - "include": [ - "**/*.ts", - "**/*.tsx", - ".expo/types/**/*.ts", - "expo-env.d.ts", - "nativewind-env.d.ts" - ] + "exclude": ["docs", "cli", "android", "lib", "ios", "node_modules", "storybookDocsComponents", "__tests__"], + "include": ["src/**/*.ts", "src/**/*.tsx", ".expo/types/**/*.ts", "expo-env.d.ts", "nativewind-env.d.ts"] }