From 99b0276d31bbe21e740d93b5add1f8dc2504ae8c Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 24 Apr 2025 18:21:41 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E9=9B=86=E6=88=90Ant=20Design?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=B9=B6=E4=BC=98=E5=8C=96=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.config.ts | 6 +- package.json | 4 +- pnpm-lock.yaml | 896 +++++++++++++++++++++++++++++++++++++- src/app/(app)/_layout.tsx | 6 + src/app/_layout.tsx | 33 +- src/utils/message.tsx | 50 +-- 6 files changed, 946 insertions(+), 49 deletions(-) diff --git a/app.config.ts b/app.config.ts index 29437da..c1eadde 100644 --- a/app.config.ts +++ b/app.config.ts @@ -69,7 +69,11 @@ export default ({ config }: ConfigContext): ExpoConfig => ({ [ 'expo-font', { - fonts: ['./assets/fonts/Inter.ttf'], + fonts: [ + './assets/fonts/Inter.ttf', + 'node_modules/@ant-design/icons-react-native/fonts/antoutline.ttf', + 'node_modules/@ant-design/icons-react-native/fonts/antfill.ttf', + ], }, ], 'expo-localization', diff --git a/package.json b/package.json index c05fd7b..b223969 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,8 @@ "e2e-test": "maestro test .maestro/ -e APP_ID=com.obytes.development" }, "dependencies": { + "@ant-design/icons-react-native": "^2.3.2", + "@ant-design/react-native": "^5.4.1", "@expo/metro-runtime": "^4.0.1", "@expo/vector-icons": "^14.0.4", "@gorhom/bottom-sheet": "^5.0.5", @@ -77,7 +79,7 @@ "react-native-gesture-handler": "~2.20.2", "react-native-keyboard-controller": "^1.13.2", "react-native-mmkv": "~3.1.0", - "react-native-reanimated": "~3.16.1", + "react-native-reanimated": "~3.16.7", "react-native-restart": "0.0.27", "react-native-safe-area-context": "4.12.0", "react-native-screens": "^4.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f04d0f2..1082568 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,12 @@ importers: .: dependencies: + '@ant-design/icons-react-native': + specifier: ^2.3.2 + version: 2.3.2(react@18.3.1) + '@ant-design/react-native': + specifier: ^5.4.1 + version: 5.4.1(@ant-design/icons-react-native@2.3.2(react@18.3.1))(@babel/preset-env@7.26.9(@babel/core@7.26.10))(react-dom@18.3.1(react@18.3.1))(react-native-gesture-handler@2.20.2(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native-reanimated@3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) '@expo/metro-runtime': specifier: ^4.0.1 version: 4.0.1(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1)) @@ -117,7 +123,7 @@ importers: specifier: ~3.1.0 version: 3.1.0(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) react-native-reanimated: - specifier: ~3.16.1 + specifier: ~3.16.7 version: 3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) react-native-restart: specifier: 0.0.27 @@ -289,6 +295,20 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@ant-design/icons-react-native@2.3.2': + resolution: {integrity: sha512-ULCN3+elfAsvu71Xa5KODi97Y3P2aUkJm4s8mJaPoRjiU+BR+Y6ejv3vbc40yV62EOdlAOMKhvKbFlsXMjZ2ow==} + peerDependencies: + react: '>=16.0.0' + + '@ant-design/react-native@5.4.1': + resolution: {integrity: sha512-ZdfZtyFMZ7OvSmc7EpS7RdOzJnln3TiDtAAYIS9dIOjyH5um0KT4Di2nx7McYCv7qVSr09Dqqc6Xqw6YJdhugg==} + peerDependencies: + '@ant-design/icons-react-native': '>= 2.3.2' + react: '>=17.0.1' + react-native: '>=0.67.5' + react-native-gesture-handler: '>=2.14.0' + react-native-reanimated: '>=3.10.1' + '@babel/code-frame@7.10.4': resolution: {integrity: sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==} @@ -1007,6 +1027,9 @@ packages: resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} + '@bang88/react-native-ultimate-listview@4.1.1': + resolution: {integrity: sha512-3/87AwY8YA7pvTCDHdh8JbiDXF7iQXdmNwIHC5N2CWGbhyVeBrqzft3G3cIVQWMn504JaNAUkW9oYV5DpUn6Lw==} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1210,6 +1233,18 @@ packages: resolution: {integrity: sha512-ReZxZ8pdnoI3tP/dNnJdnmAk7uLT4FjsKDGW7YeDdvdOMz2XCQSmSCM9IWlrXuWtMF9zeSB6WJtEhCQ41gQOfw==} hasBin: true + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/react-native@0.10.7': + resolution: {integrity: sha512-deSecLPrdfl8RL1yyNJlbgqDDZFPuhBtJhY2aTnOZOoJWaal2vVOad9EBVIa0QV/YordgTyFPgDI8oLfyLZuZA==} + peerDependencies: + react: '>=16.8.0' + react-native: '>=0.64.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@formatjs/ecma402-abstract@2.3.4': resolution: {integrity: sha512-qrycXDeaORzIqNhBOx0btnhpD1c+/qFIHAN9znofuMJX6QBwtbrmlpWfD4oiUUD2vJUOIYFA/gYtg2KAMGG7sA==} @@ -1728,6 +1763,14 @@ packages: peerDependencies: react: ^16.8 || ^17.0 || ^18.0 + '@rc-component/async-validator@5.0.4': + resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} + engines: {node: '>=14.x'} + + '@rc-component/mini-decimal@1.1.0': + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} + engines: {node: '>=8.x'} + '@react-native/assets-registry@0.76.9': resolution: {integrity: sha512-pN0Ws5xsjWOZ8P37efh0jqHHQmq+oNGKT4AyAoKRpxBDDDmlAmpaYjer9Qz7PpDKF+IUyRjF/+rBsM50a8JcUg==} engines: {node: '>=18'} @@ -2450,6 +2493,18 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -2468,6 +2523,10 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + array.prototype.findlast@1.2.5: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} @@ -2495,6 +2554,14 @@ packages: asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + ast-types@0.14.2: + resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} + engines: {node: '>=4'} + ast-types@0.15.2: resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} engines: {node: '>=4'} @@ -2516,6 +2583,11 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + atomically@2.0.3: resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} @@ -2597,12 +2669,19 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-runtime@6.26.0: + resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==} + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + better-opn@3.0.2: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} @@ -2645,6 +2724,10 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -2699,6 +2782,10 @@ packages: resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -2817,6 +2904,13 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -2890,6 +2984,10 @@ packages: collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2913,6 +3011,10 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2950,6 +3052,9 @@ packages: compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + component-type@1.2.2: resolution: {integrity: sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==} @@ -2991,9 +3096,17 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + core-js-compat@3.41.0: resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} + core-js@2.6.12: + resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==} + deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -3113,6 +3226,9 @@ packages: date-fns@1.30.1: resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: @@ -3195,6 +3311,18 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + del@6.1.1: resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} engines: {node: '>=10'} @@ -3663,6 +3791,10 @@ packages: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3841,10 +3973,22 @@ packages: exponential-backoff@3.1.2: resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3916,6 +4060,10 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -3965,6 +4113,10 @@ packages: flow-enums-runtime@0.0.6: resolution: {integrity: sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==} + flow-parser@0.121.0: + resolution: {integrity: sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==} + engines: {node: '>=0.4.0'} + flow-parser@0.266.1: resolution: {integrity: sha512-dON6h+yO7FGa/FO5NQCZuZHN0o3I23Ev6VYOJf9d8LpdrArHPt39wE++LLmueNV/hNY5hgWGIIrgnrDkRcXkPg==} engines: {node: '>=0.4.0'} @@ -3985,6 +4137,10 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -3997,6 +4153,10 @@ packages: resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} engines: {node: '>= 6'} + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + framer-motion@6.5.1: resolution: {integrity: sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==} peerDependencies: @@ -4095,6 +4255,10 @@ packages: get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + getenv@1.0.0: resolution: {integrity: sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==} engines: {node: '>=6'} @@ -4208,6 +4372,22 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -4411,6 +4591,10 @@ packages: resolution: {integrity: sha512-kniTIJmaZYiwa17eTtWIfm0K342seyugl6vuC8DiiyiRAJWAVlLkqGCI0Im0neo0TkXw+pRcKaBPRdcKHnQJ6Q==} engines: {node: '>=0.10.0'} + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -4455,6 +4639,10 @@ packages: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} @@ -4463,6 +4651,14 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + is-directory@0.3.1: resolution: {integrity: sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==} engines: {node: '>=0.10.0'} @@ -4477,6 +4673,14 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -4550,6 +4754,10 @@ packages: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4652,6 +4860,10 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -4660,12 +4872,19 @@ packages: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -4918,6 +5137,12 @@ packages: jsc-safe-url@0.2.4: resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} + jscodeshift@0.11.0: + resolution: {integrity: sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + jscodeshift@0.14.0: resolution: {integrity: sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==} hasBin: true @@ -4991,6 +5216,14 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -5219,6 +5452,9 @@ packages: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + lodash.assignwith@4.2.0: + resolution: {integrity: sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==} + lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -5305,6 +5541,14 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + marky@1.2.5: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} @@ -5402,6 +5646,10 @@ packages: engines: {node: '>=18.18'} hasBin: true + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -5496,6 +5744,10 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -5539,6 +5791,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + nativewind@4.1.23: resolution: {integrity: sha512-oLX3suGI6ojQqWxdQezOSM5GmJ4KvMnMtmaSMN9Ggb5j7ysFt4nHxb1xs8RDjZR7BWc+bsetNJU8IQdQMHqRpg==} engines: {node: '>=16'} @@ -5595,6 +5851,9 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + normalize-css-color@1.0.2: + resolution: {integrity: sha512-jPJ/V7Cp1UytdidsPqviKEElFQJs22hUUgK5BOPHTwOonNCk7/2qOxhhqzEajmFrWJowADFfOFh1V+aWkRfy+w==} + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -5652,6 +5911,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -5664,6 +5927,10 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + object.assign@4.1.7: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} @@ -5680,6 +5947,10 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} @@ -5855,6 +6126,10 @@ packages: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -5981,6 +6256,10 @@ packages: popmotion@11.0.3: resolution: {integrity: sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==} + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -6126,6 +6405,19 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} + rc-field-form@2.7.0: + resolution: {integrity: sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + + rc-util@5.44.4: + resolution: {integrity: sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -6183,6 +6475,15 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-native-codegen@0.0.7: + resolution: {integrity: sha512-dwNgR8zJ3ALr480QnAmpTiqvFo+rDtq6V5oCggKhYFlRjzOmVSFn3YD41u8ltvKS5G2nQ8gCs2vReFFnRGLYng==} + + react-native-collapsible@1.6.2: + resolution: {integrity: sha512-MCOBVJWqHNjnDaGkvxX997VONmJeebh6wyJxnHEgg0L1PrlcXU1e/bo6eK+CDVFuMrCafw8Qh4DOv/C4V/+Iew==} + peerDependencies: + react: '*' + react-native: '*' + react-native-css-interop@0.1.22: resolution: {integrity: sha512-Mu01e+H9G+fxSWvwtgWlF5MJBJC4VszTCBXopIpeR171lbeBInHb8aHqoqRPxmJpi3xIHryzqKFOJYAdk7PBxg==} engines: {node: '>=18'} @@ -6247,6 +6548,12 @@ packages: react: '*' react-native: '*' + react-native-modal-popover@2.1.3: + resolution: {integrity: sha512-2UrLzBNNTlR6uisJTWyDg6qFC0Qi8Fx3a6UrPS0bQBlUpo0MRPRVMCK5t8RIrTI6EoK1FMbnm+u8UOOboBJWgw==} + peerDependencies: + react: '>16.0.0' + react-native: '>0.50.0' + react-native-reanimated@3.16.7: resolution: {integrity: sha512-qoUUQOwE1pHlmQ9cXTJ2MX9FQ9eHllopCLiWOkDkp6CER95ZWeXhJCP4cSm6AD4jigL5jHcZf/SkWrg8ttZUsw==} peerDependencies: @@ -6363,6 +6670,10 @@ packages: readline@1.3.0: resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + recast@0.20.5: + resolution: {integrity: sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==} + engines: {node: '>= 4'} + recast@0.21.5: resolution: {integrity: sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==} engines: {node: '>= 4'} @@ -6388,6 +6699,9 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + regenerator-runtime@0.11.1: + resolution: {integrity: sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==} + regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} @@ -6397,6 +6711,10 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -6431,6 +6749,10 @@ packages: remove-trailing-slash@0.1.1: resolution: {integrity: sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==} + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + repeat-string@1.6.1: resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} engines: {node: '>=0.10'} @@ -6472,6 +6794,10 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + resolve-workspace-root@2.0.0: resolution: {integrity: sha512-IsaBUZETJD5WsI11Wt8PKHwaIe45or6pwNc8yflvLJ4DWtImK9kuLoH5kUva/2Mmx/RdIyr4aONNSa2v9LTJsw==} @@ -6503,6 +6829,10 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6560,6 +6890,9 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + safe-regex@2.1.1: resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} @@ -6643,6 +6976,10 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -6732,16 +7069,36 @@ packages: resolution: {integrity: sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==} engines: {node: '>=8.0.0'} + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + source-map@0.5.6: resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} engines: {node: '>=0.10.0'} @@ -6770,6 +7127,10 @@ packages: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -6807,6 +7168,10 @@ packages: resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} engines: {node: '>=6'} + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -7100,10 +7465,22 @@ packages: tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -7282,6 +7659,10 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -7317,6 +7698,10 @@ packages: unrs-resolver@1.4.1: resolution: {integrity: sha512-MhPB3wBI5BR8TGieTb08XuYlE8oFVEXdSAgat3psdlRyejl8ojQ8iqPcjh094qCZ1r+TnkxzP6BeCd/umfHckQ==} + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -7330,6 +7715,10 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} @@ -7343,12 +7732,20 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + utif2@4.1.0: resolution: {integrity: sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w==} util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -7679,6 +8076,37 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 + '@ant-design/icons-react-native@2.3.2(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@ant-design/react-native@5.4.1(@ant-design/icons-react-native@2.3.2(react@18.3.1))(@babel/preset-env@7.26.9(@babel/core@7.26.10))(react-dom@18.3.1(react@18.3.1))(react-native-gesture-handler@2.20.2(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native-reanimated@3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1)': + dependencies: + '@ant-design/icons-react-native': 2.3.2(react@18.3.1) + '@bang88/react-native-ultimate-listview': 4.1.1 + '@floating-ui/react-native': 0.10.7(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) + '@rc-component/mini-decimal': 1.1.0 + babel-runtime: 6.26.0 + classnames: 2.5.1 + dayjs: 1.11.13 + lodash.assignwith: 4.2.0 + lodash.mergewith: 4.6.2 + normalize-css-color: 1.0.2 + rc-field-form: 2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 5.44.4(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.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1) + react-native-codegen: 0.0.7(@babel/preset-env@7.26.9(@babel/core@7.26.10)) + react-native-collapsible: 1.6.2(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) + react-native-gesture-handler: 2.20.2(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) + react-native-modal-popover: 2.1.3(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) + react-native-reanimated: 3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1) + utility-types: 3.11.0 + transitivePeerDependencies: + - '@babel/preset-env' + - react-dom + - supports-color + '@babel/code-frame@7.10.4': dependencies: '@babel/highlight': 7.25.9 @@ -8581,6 +9009,8 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@bang88/react-native-ultimate-listview@4.1.1': {} + '@bcoe/v8-coverage@0.2.3': {} '@commitlint/cli@19.8.0(@types/node@22.14.0)(typescript@5.8.3)': @@ -9044,6 +9474,18 @@ snapshots: find-up: 5.0.0 js-yaml: 4.1.0 + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-native@0.10.7(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/core': 1.6.9 + react: 18.3.1 + react-native: 0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1) + + '@floating-ui/utils@0.2.9': {} + '@formatjs/ecma402-abstract@2.3.4': dependencies: '@formatjs/fast-memoize': 2.2.7 @@ -9732,6 +10174,14 @@ snapshots: '@radix-ui/react-compose-refs': 1.0.0(react@18.3.1) react: 18.3.1 + '@rc-component/async-validator@5.0.4': + dependencies: + '@babel/runtime': 7.27.0 + + '@rc-component/mini-decimal@1.1.0': + dependencies: + '@babel/runtime': 7.27.0 + '@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.10))': @@ -10580,6 +11030,12 @@ snapshots: aria-query@5.3.2: {} + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -10600,6 +11056,8 @@ snapshots: array-union@2.1.0: {} + array-unique@0.3.2: {} + array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 @@ -10653,6 +11111,12 @@ snapshots: asap@2.0.6: {} + assign-symbols@1.0.0: {} + + ast-types@0.14.2: + dependencies: + tslib: 2.8.1 + ast-types@0.15.2: dependencies: tslib: 2.8.1 @@ -10667,6 +11131,8 @@ snapshots: at-least-node@1.0.0: {} + atob@2.1.2: {} + atomically@2.0.3: dependencies: stubborn-fs: 1.2.5 @@ -10807,10 +11273,25 @@ snapshots: babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10) + babel-runtime@6.26.0: + dependencies: + core-js: 2.6.12 + regenerator-runtime: 0.11.1 + balanced-match@1.0.2: {} base64-js@1.5.1: {} + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + better-opn@3.0.2: dependencies: open: 8.4.2 @@ -10859,6 +11340,21 @@ snapshots: dependencies: balanced-match: 1.0.2 + braces@2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -10924,6 +11420,18 @@ snapshots: tar: 6.2.1 unique-filename: 3.0.0 + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -11049,6 +11557,15 @@ snapshots: cjs-module-lexer@1.4.3: {} + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + classnames@2.5.1: {} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -11109,6 +11626,11 @@ snapshots: collect-v8-coverage@1.0.2: {} + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -11133,6 +11655,8 @@ snapshots: colorette@2.0.20: {} + colors@1.4.0: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -11164,6 +11688,8 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 + component-emitter@1.3.1: {} + component-type@1.2.2: {} compressible@2.0.18: @@ -11222,10 +11748,14 @@ snapshots: convert-source-map@2.0.0: {} + copy-descriptor@0.1.1: {} + core-js-compat@3.41.0: dependencies: browserslist: 4.24.4 + core-js@2.6.12: {} + core-util-is@1.0.3: {} cosmiconfig-typescript-loader@6.1.0(@types/node@22.14.0)(cosmiconfig@9.0.0(typescript@5.8.3))(typescript@5.8.3): @@ -11364,6 +11894,8 @@ snapshots: date-fns@1.30.1: {} + dayjs@1.11.13: {} + debug@2.6.9: dependencies: ms: 2.0.0 @@ -11420,6 +11952,19 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.7 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.3 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + del@6.1.1: dependencies: globby: 11.1.0 @@ -12058,6 +12603,18 @@ snapshots: exit@0.1.2: {} + expand-brackets@2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 @@ -12308,12 +12865,34 @@ snapshots: exponential-backoff@3.1.2: {} + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 + extglob@2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -12395,6 +12974,13 @@ snapshots: dependencies: minimatch: 5.1.6 + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -12455,6 +13041,8 @@ snapshots: flow-enums-runtime@0.0.6: {} + flow-parser@0.121.0: {} + flow-parser@0.266.1: {} follow-redirects@1.15.9: {} @@ -12465,6 +13053,8 @@ snapshots: dependencies: is-callable: 1.2.7 + for-in@1.0.2: {} + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -12484,6 +13074,10 @@ snapshots: es-set-tostringtag: 2.1.0 mime-types: 2.1.35 + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + framer-motion@6.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@motionone/dom': 10.12.0 @@ -12595,6 +13189,8 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-value@2.0.6: {} + getenv@1.0.0: {} gifwrap@0.10.1: @@ -12717,6 +13313,25 @@ snapshots: dependencies: has-symbols: 1.1.0 + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -12938,6 +13553,10 @@ snapshots: irregular-plurals@1.4.0: {} + is-accessor-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -12985,6 +13604,10 @@ snapshots: dependencies: hasown: 2.0.2 + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + is-data-view@1.0.2: dependencies: call-bound: 1.0.4 @@ -12996,12 +13619,28 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-descriptor@0.1.7: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.3: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + is-directory@0.3.1: {} is-docker@2.2.1: {} is-docker@3.0.0: {} + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -13059,6 +13698,10 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + is-number@7.0.0: {} is-obj@2.0.0: {} @@ -13140,6 +13783,8 @@ snapshots: call-bound: 1.0.4 get-intrinsic: 1.3.0 + is-windows@1.0.2: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -13148,10 +13793,16 @@ snapshots: dependencies: is-inside-container: 1.0.0 + isarray@1.0.0: {} + isarray@2.0.5: {} isexe@2.0.0: {} + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + isobject@3.0.1: {} isomorphic-fetch@3.0.0: @@ -13656,6 +14307,31 @@ snapshots: jsc-safe-url@0.2.4: {} + jscodeshift@0.11.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)): + dependencies: + '@babel/core': 7.26.10 + '@babel/parser': 7.27.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.10) + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.10) + '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.10) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.10) + '@babel/preset-env': 7.26.9(@babel/core@7.26.10) + '@babel/preset-flow': 7.25.9(@babel/core@7.26.10) + '@babel/preset-typescript': 7.27.0(@babel/core@7.26.10) + '@babel/register': 7.25.9(@babel/core@7.26.10) + babel-core: 7.0.0-bridge.0(@babel/core@7.26.10) + colors: 1.4.0 + flow-parser: 0.266.1 + graceful-fs: 4.2.11 + micromatch: 3.1.10 + neo-async: 2.6.2 + node-dir: 0.1.17 + recast: 0.20.5 + temp: 0.8.4 + write-file-atomic: 2.4.3 + transitivePeerDependencies: + - supports-color + jscodeshift@0.14.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)): dependencies: '@babel/core': 7.26.10 @@ -13761,6 +14437,14 @@ snapshots: dependencies: json-buffer: 3.0.1 + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + kind-of@6.0.3: {} kleur@3.0.3: {} @@ -13980,6 +14664,8 @@ snapshots: dependencies: p-locate: 6.0.0 + lodash.assignwith@4.2.0: {} + lodash.camelcase@4.3.0: {} lodash.debounce@4.0.8: {} @@ -14060,6 +14746,12 @@ snapshots: dependencies: tmpl: 1.0.5 + map-cache@0.2.2: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + marky@1.2.5: {} math-intrinsics@1.1.0: {} @@ -14260,6 +14952,24 @@ snapshots: - supports-color - utf-8-validate + micromatch@3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -14334,6 +15044,11 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + mkdirp@0.5.6: dependencies: minimist: 1.2.8 @@ -14368,6 +15083,22 @@ snapshots: nanoid@3.3.8: {} + nanomatch@1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + nativewind@4.1.23(react-native-reanimated@3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.12.0(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.4): dependencies: comment-json: 4.2.5 @@ -14414,6 +15145,8 @@ snapshots: node-releases@2.0.19: {} + normalize-css-color@1.0.2: {} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -14520,12 +15253,22 @@ snapshots: object-assign@4.1.1: {} + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + object-hash@3.0.0: {} object-inspect@1.13.4: {} object-keys@1.1.1: {} + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + object.assign@4.1.7: dependencies: call-bind: 1.0.8 @@ -14555,6 +15298,10 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + object.values@1.2.1: dependencies: call-bind: 1.0.8 @@ -14741,6 +15488,8 @@ snapshots: parseurl@1.3.3: {} + pascalcase@0.1.1: {} + path-exists@3.0.0: {} path-exists@4.0.0: {} @@ -14833,6 +15582,8 @@ snapshots: style-value-types: 5.0.0 tslib: 2.8.1 + posix-character-classes@0.1.1: {} + possible-typed-array-names@1.1.0: {} postcss-import@15.1.0(postcss@8.5.3): @@ -14968,6 +15719,21 @@ snapshots: range-parser@1.2.1: {} + rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.27.0 + '@rc-component/async-validator': 5.0.4 + rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.27.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + rc@1.2.8: dependencies: deep-extend: 0.6.0 @@ -15028,6 +15794,20 @@ snapshots: react-is@18.3.1: {} + react-native-codegen@0.0.7(@babel/preset-env@7.26.9(@babel/core@7.26.10)): + dependencies: + flow-parser: 0.121.0 + jscodeshift: 0.11.0(@babel/preset-env@7.26.9(@babel/core@7.26.10)) + nullthrows: 1.1.1 + transitivePeerDependencies: + - '@babel/preset-env' + - supports-color + + react-native-collapsible@1.6.2(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-native: 0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1) + react-native-css-interop@0.1.22(react-native-reanimated@3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native-safe-area-context@4.12.0(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native-svg@15.8.0(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1))(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.4): dependencies: '@babel/helper-module-imports': 7.25.9 @@ -15095,6 +15875,13 @@ snapshots: react: 18.3.1 react-native: 0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1) + react-native-modal-popover@2.1.3(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1): + dependencies: + lodash: 4.17.21 + prop-types: 15.8.1 + react: 18.3.1 + react-native: 0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1) + react-native-reanimated@3.16.7(@babel/core@7.26.10)(react-native@0.76.9(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@18.3.20)(react@18.3.1))(react@18.3.1): dependencies: '@babel/core': 7.26.10 @@ -15286,6 +16073,13 @@ snapshots: readline@1.3.0: {} + recast@0.20.5: + dependencies: + ast-types: 0.14.2 + esprima: 4.0.1 + source-map: 0.6.1 + tslib: 2.8.1 + recast@0.21.5: dependencies: ast-types: 0.15.2 @@ -15323,6 +16117,8 @@ snapshots: regenerate@1.4.2: {} + regenerator-runtime@0.11.1: {} + regenerator-runtime@0.13.11: {} regenerator-runtime@0.14.1: {} @@ -15331,6 +16127,11 @@ snapshots: dependencies: '@babel/runtime': 7.27.0 + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + regexp-tree@0.1.27: {} regexp.prototype.flags@1.5.4: @@ -15371,6 +16172,8 @@ snapshots: remove-trailing-slash@0.1.1: {} + repeat-element@1.1.4: {} + repeat-string@1.6.1: {} require-directory@2.1.1: {} @@ -15399,6 +16202,8 @@ snapshots: resolve-pkg-maps@1.0.0: {} + resolve-url@0.2.1: {} + resolve-workspace-root@2.0.0: {} resolve.exports@2.0.3: {} @@ -15434,6 +16239,8 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 + ret@0.1.15: {} + reusify@1.1.0: {} rfdc@1.4.1: {} @@ -15487,6 +16294,10 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + safe-regex@2.1.1: dependencies: regexp-tree: 0.1.27 @@ -15604,6 +16415,13 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + setimmediate@1.0.5: {} setprototypeof@1.2.0: {} @@ -15690,8 +16508,39 @@ snapshots: slugify@1.6.6: {} + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + source-map-js@1.2.1: {} + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + source-map-support@0.5.13: dependencies: buffer-from: 1.1.2 @@ -15702,6 +16551,8 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 + source-map-url@0.4.1: {} + source-map@0.5.6: {} source-map@0.5.7: {} @@ -15724,6 +16575,10 @@ snapshots: split-on-first@1.1.0: {} + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + split2@4.2.0: {} split@1.0.1: @@ -15763,6 +16618,11 @@ snapshots: dependencies: type-fest: 0.7.1 + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + statuses@1.5.0: {} statuses@2.0.1: {} @@ -16082,10 +16942,26 @@ snapshots: tmpl@1.0.5: {} + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + toidentifier@1.0.1: {} token-types@4.2.1: @@ -16239,6 +17115,13 @@ snapshots: unicorn-magic@0.3.0: {} + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + unique-filename@3.0.0: dependencies: unique-slug: 4.0.0 @@ -16279,6 +17162,11 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.4.1 '@unrs/resolver-binding-win32-x64-msvc': 1.4.1 + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + update-browserslist-db@1.1.3(browserslist@4.24.4): dependencies: browserslist: 4.24.4 @@ -16302,6 +17190,8 @@ snapshots: dependencies: punycode: 2.3.1 + urix@0.1.0: {} + url-parse@1.5.10: dependencies: querystringify: 2.2.0 @@ -16315,12 +17205,16 @@ snapshots: dependencies: react: 18.3.1 + use@3.1.1: {} + utif2@4.1.0: dependencies: pako: 1.0.11 util-deprecate@1.0.2: {} + utility-types@3.11.0: {} + utils-merge@1.0.1: {} uuid@7.0.3: {} diff --git a/src/app/(app)/_layout.tsx b/src/app/(app)/_layout.tsx index 455454d..a9f46ff 100644 --- a/src/app/(app)/_layout.tsx +++ b/src/app/(app)/_layout.tsx @@ -1,4 +1,5 @@ /* eslint-disable react/no-unstable-nested-components */ +import { useFonts } from 'expo-font'; import { Redirect, SplashScreen, Tabs } from 'expo-router'; import React, { useCallback, useEffect } from 'react'; import { StyleSheet, TouchableOpacity, View } from 'react-native'; @@ -30,6 +31,11 @@ export default function TabLayout() { await SplashScreen.hideAsync(); }, []); + useFonts({ + antoutline: require('@ant-design/icons-react-native/fonts/antoutline.ttf'), + antfill: require('@ant-design/icons-react-native/fonts/antfill.ttf'), + }); + useEffect(() => { if (status !== 'idle') { setTimeout(hideSplash, 1000); diff --git a/src/app/_layout.tsx b/src/app/_layout.tsx index 96e054f..535c9a9 100644 --- a/src/app/_layout.tsx +++ b/src/app/_layout.tsx @@ -1,6 +1,8 @@ +/* eslint-disable max-lines-per-function */ // Import global CSS file import '../../global.css'; +import { Provider, Toast } from '@ant-design/react-native'; import { BottomSheetModalProvider } from '@gorhom/bottom-sheet'; import { ThemeProvider } from '@react-navigation/native'; import { Stack } from 'expo-router'; @@ -30,23 +32,26 @@ SplashScreen.setOptions({ duration: 500, fade: true, }); +Toast.config({ duration: 2 }); export default function RootLayout() { return ( - - - - - - - + + + + + + + + + ); } diff --git a/src/utils/message.tsx b/src/utils/message.tsx index 9f59089..0685110 100644 --- a/src/utils/message.tsx +++ b/src/utils/message.tsx @@ -1,50 +1,36 @@ // src/utils/message.tsx -import { ActivityIndicator } from 'react-native'; -import { hideMessage, showMessage } from 'react-native-flash-message'; +import { Toast } from '@ant-design/react-native'; + +import { FontAwesome } from '@/components/ui/icons'; /** * @message 提示内容 */ -export const info = (message: string) => { - showMessage({ - message, - type: 'info', - }); +export const info = (message: string, icon: string = '') => { + if (icon) + Toast.show({ + content: '上传中', + icon: , + }); + else Toast.show(message); }; - /** * @message 提示内容 */ -export const error = (message: string) => { - showMessage({ - message, - type: 'danger', - }); -}; +export const success = (message: string) => Toast.success(message); +/** + * @message 提示内容 + */ +export const error = (message: string) => Toast.fail(message); /** * @message 加载提示内容 * @param message 提示文字 */ -export const loading = (message: string = '加载中...') => { - showMessage({ - message, - type: 'default', - icon: () => ( - - ), - duration: 0, // 不自动隐藏 - hideOnPress: false, - }); -}; +export const loading = (message: string = '加载中...') => + Toast.loading({ content: message, duration: 15 }); /** * 隐藏加载提示 */ -export const hideLoading = () => { - hideMessage(); -}; +export const hideLoading = () => Toast.removeAll(); -- Gitee From 5e48a97e15113771b5c1f07c397f05792c848516 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 24 Apr 2025 18:23:53 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix(=E7=99=BB=E5=BD=95):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E7=99=BB=E5=BD=95=E8=A1=A8=E5=8D=95=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在登录表单提交时禁用按钮,防止重复提交 - 将错误提示从 `error` 改为 `info`,提升用户体验 - 更新加载提示文案为“用户验证中...” --- src/components/login-form.tsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx index 53ca042..40046ed 100644 --- a/src/components/login-form.tsx +++ b/src/components/login-form.tsx @@ -54,14 +54,15 @@ export const LoginForm = () => { // 处理登录 const handleLogin = async () => { if (!username) { - message.error('用户名/手机号不能为空!'); + message.info('用户名/手机号不能为空!'); return; } if (!password) { - message.error('密码不能为空!'); + message.info('密码不能为空!'); return; } - message.loading('数据提交中...'); + message.loading('用户验证中...'); + setSubmitBtnDisable(true); const { Success, Data } = await loginApi({ UserAccount: username, Password: password, @@ -74,7 +75,7 @@ export const LoginForm = () => { refresh: 'refresh-token', }); router.push('/'); - } + } else setSubmitBtnDisable(false); }; // 状态管理 @@ -84,6 +85,7 @@ export const LoginForm = () => { // 添加焦点状态 const [usernameFocused, setUsernameFocused] = useState(false); const [passwordFocused, setPasswordFocused] = useState(false); + const [submitBtnDisable, setSubmitBtnDisable] = useState(false); // const [rememberMe, setRememberMe] = useState(false); return ( @@ -195,7 +197,7 @@ export const LoginForm = () => { 登 录 -- Gitee From 9253fd00318e069fb272f2b3bc61e1012059524c Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 24 Apr 2025 18:23:53 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix(http):=20=E4=BF=AE=E5=A4=8D=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=A4=84=E7=90=86=E4=B8=AD=E8=BF=94=E5=9B=9E=E5=80=BC?= =?UTF-8?q?=E5=92=8CPromise.reject=E7=9A=84=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在请求处理逻辑中,修复了同时使用`return`和`Promise.reject`导致的冲突问题,确保错误处理逻辑一致且不会中断流程。 --- src/api/common/http.tsx | 7 +++++-- src/components/login-form.tsx | 12 +++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/api/common/http.tsx b/src/api/common/http.tsx index e24f649..09c0ff2 100644 --- a/src/api/common/http.tsx +++ b/src/api/common/http.tsx @@ -70,14 +70,17 @@ class RequestHttp { const { data } = response; // tryHideFullScreenLoading(); // login failure + message.hideLoading(); if (data.Status === ResultEnum.OVERDUE) { message.error(data.Message); - return Promise.reject(data); + Promise.reject(data); + return data; } // Global error information interception (to prevent data stream from being returned when downloading files, and report errors directly without code) if (data.Status && data.Status !== ResultEnum.SUCCESS) { message.error(data.Message); - return Promise.reject(data); + Promise.reject(data); + return data; } // Successful request (no need to handle failure logic on the page unless there are special circumstances) return data; diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx index 53ca042..40046ed 100644 --- a/src/components/login-form.tsx +++ b/src/components/login-form.tsx @@ -54,14 +54,15 @@ export const LoginForm = () => { // 处理登录 const handleLogin = async () => { if (!username) { - message.error('用户名/手机号不能为空!'); + message.info('用户名/手机号不能为空!'); return; } if (!password) { - message.error('密码不能为空!'); + message.info('密码不能为空!'); return; } - message.loading('数据提交中...'); + message.loading('用户验证中...'); + setSubmitBtnDisable(true); const { Success, Data } = await loginApi({ UserAccount: username, Password: password, @@ -74,7 +75,7 @@ export const LoginForm = () => { refresh: 'refresh-token', }); router.push('/'); - } + } else setSubmitBtnDisable(false); }; // 状态管理 @@ -84,6 +85,7 @@ export const LoginForm = () => { // 添加焦点状态 const [usernameFocused, setUsernameFocused] = useState(false); const [passwordFocused, setPasswordFocused] = useState(false); + const [submitBtnDisable, setSubmitBtnDisable] = useState(false); // const [rememberMe, setRememberMe] = useState(false); return ( @@ -195,7 +197,7 @@ export const LoginForm = () => { 登 录 -- Gitee From 7f5c9aa2cc99c55722224c87a07140decf8cf74b Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 24 Apr 2025 23:12:21 +0800 Subject: [PATCH 4/5] =?UTF-8?q?refactor(segmented-control):=20=E5=B0=86?= =?UTF-8?q?=E5=88=86=E6=AE=B5=E6=8E=A7=E5=88=B6=E5=99=A8=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E5=88=B0=E7=8B=AC=E7=AB=8B=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将分段控制器组件从 `inventory.tsx` 提取到独立的 `segmented-control.tsx` 文件,以便复用和维护。同时优化了样式配置,支持自定义颜色和动画效果。 --- src/app/(app)/inventory.tsx | 76 +-------------- src/components/index.ts | 1 + src/components/segmented-control.tsx | 139 +++++++++++++++++++++++++++ 3 files changed, 143 insertions(+), 73 deletions(-) create mode 100644 src/components/segmented-control.tsx diff --git a/src/app/(app)/inventory.tsx b/src/app/(app)/inventory.tsx index ebd2cbc..c52284d 100644 --- a/src/app/(app)/inventory.tsx +++ b/src/app/(app)/inventory.tsx @@ -1,7 +1,6 @@ import { FontAwesome } from '@expo/vector-icons'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useState } from 'react'; import { - Animated, StatusBar, StyleSheet, Text, @@ -10,14 +9,9 @@ import { View, } from 'react-native'; +import { SegmentedControl, type SegmentedControlOption } from '@/components'; import { NavHeader, SafeAreaView, ScrollView } from '@/components/ui'; -// 分段控制器选项类型 -type SegmentedControlOption = { - key: string; - label: string; -}; - // 状态徽章组件 // type StatusBadgeProps = { // status: string; @@ -112,70 +106,6 @@ const AlertItem: React.FC = ({ name, message, type }) => { ); }; -// 分段控制器组件 -type SegmentedControlProps = { - options: SegmentedControlOption[]; - selectedIndex: number; - onChange: (index: number) => void; -}; - -const SegmentedControl: React.FC = ({ - options, - selectedIndex, - onChange, -}) => { - const [containerWidth, setContainerWidth] = useState(0); - const slideAnim = useRef(new Animated.Value(0)).current; - - useEffect(() => { - if (containerWidth > 0) { - const optionWidth = containerWidth / options.length; - Animated.timing(slideAnim, { - toValue: selectedIndex * optionWidth, - duration: 300, - useNativeDriver: false, - }).start(); - } - }, [selectedIndex, containerWidth]); - - return ( - setContainerWidth(e.nativeEvent.layout.width)} - > - - 0 ? containerWidth / options.length : 0, - transform: [{ translateX: slideAnim }], - }, - ]} - /> - {options.map((option, index) => ( - onChange(index)} - > - - {option.label} - - - ))} - - - ); -}; - const Inventory: React.FC = () => { // const navigation = useNavigation(); @@ -632,7 +562,7 @@ const styles = StyleSheet.create({ marginTop: 16, }, segmentedControlContainer: { - backgroundColor: '#f5f5f5', + // backgroundColor: '#000', }, flex1: { flex: 1, diff --git a/src/components/index.ts b/src/components/index.ts index f73ca95..fe7987a 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1 +1,2 @@ export { default as RefreshListView } from './refresh-list-view'; +export { SegmentedControl, SegmentedControlOption } from './segmented-control'; diff --git a/src/components/segmented-control.tsx b/src/components/segmented-control.tsx new file mode 100644 index 0000000..aff4b0a --- /dev/null +++ b/src/components/segmented-control.tsx @@ -0,0 +1,139 @@ +import { useEffect, useMemo, useRef, useState } from 'react'; +import { + Animated, + type LayoutChangeEvent, + StyleSheet, + Text, + TouchableOpacity, + View, +} from 'react-native'; + +// 分段控制器选项类型 +export type SegmentedControlOption = { + key: string; + label: string; +}; +// 分段控制器组件 +type SegmentedControlProps = { + options: SegmentedControlOption[]; + selectedIndex: number; + onChange: (index: number) => void; + activeColor?: string; + inactiveColor?: string; + backgroundColor?: string; + sliderColor?: string; +}; + +export const SegmentedControl: React.FC = ({ + options, + selectedIndex, + onChange, + activeColor = '#0066ff', + inactiveColor = '#6b7280', + backgroundColor = '#e5e7eb', + sliderColor = 'white', +}) => { + const [containerWidth, setContainerWidth] = useState(0); + const slideAnim = useRef(new Animated.Value(0)).current; + + // 计算每个选项的宽度 + const optionWidth = useMemo(() => { + return containerWidth > 0 ? containerWidth / options.length : 0; + }, [containerWidth, options.length]); + + // 处理容器布局变化 + const handleLayout = (e: LayoutChangeEvent) => { + const { width } = e.nativeEvent.layout; + setContainerWidth(width); + }; + + // 当选中索引或容器宽度变化时,更新滑块位置 + useEffect(() => { + if (containerWidth > 0) { + Animated.spring(slideAnim, { + toValue: selectedIndex * optionWidth, + // duration: 250, // 移除这一行,因为它不是 SpringAnimationConfig 的有效属性 + useNativeDriver: false, + friction: 8, + tension: 50, + }).start(); + } + }, [selectedIndex, containerWidth, optionWidth, slideAnim]); + + return ( + + + + {options.map((option, index) => { + const isSelected = index === selectedIndex; + return ( + onChange(index)} + activeOpacity={0.7} + > + + {option.label} + + + ); + })} + + + ); +}; + +const styles = StyleSheet.create({ + segmentedControlContainer: { + // backgroundColor: '#f5f5f5', + borderRadius: 8, + }, + segmentedControl: { + flexDirection: 'row', + borderRadius: 8, + padding: 2, + position: 'relative', + height: 40, + }, + segmentedControlOption: { + flex: 1, + justifyContent: 'center', + alignItems: 'center', + zIndex: 1, + }, + segmentedControlSlider: { + position: 'absolute', + top: 2, + bottom: 2, + borderRadius: 6, + shadowColor: '#000', + shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.1, + shadowRadius: 1, + elevation: 1, + }, + segmentedControlText: { + fontSize: 14, + }, +}); -- Gitee From cc65763e372b3b09194463620a9fccb2ff3e3a2c Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 24 Apr 2025 23:37:13 +0800 Subject: [PATCH 5/5] =?UTF-8?q?refactor(=E7=BB=84=E4=BB=B6):=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E9=87=8D=E5=A4=8D=E7=9A=84SegmentedControl=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=B9=B6=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8=E5=85=B1?= =?UTF-8?q?=E4=BA=AB=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit inventory.tsx、order.tsx和production.tsx 统一使用从@/components导入的共享组件,以减少代码重复并提高维护性。 --- src/app/(app)/inventory.tsx | 38 ----------- src/app/(app)/order.tsx | 115 ++------------------------------- src/app/(app)/production.tsx | 120 ++++------------------------------- 3 files changed, 17 insertions(+), 256 deletions(-) diff --git a/src/app/(app)/inventory.tsx b/src/app/(app)/inventory.tsx index c52284d..5b4576e 100644 --- a/src/app/(app)/inventory.tsx +++ b/src/app/(app)/inventory.tsx @@ -561,9 +561,6 @@ const styles = StyleSheet.create({ flex: 1, marginTop: 16, }, - segmentedControlContainer: { - // backgroundColor: '#000', - }, flex1: { flex: 1, }, @@ -644,41 +641,6 @@ const styles = StyleSheet.create({ reportItem: { marginTop: 12, }, - segmentedControl: { - flexDirection: 'row', - backgroundColor: '#e5e7eb', - borderRadius: 8, - padding: 2, - position: 'relative', - height: 40, - }, - segmentedControlOption: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - zIndex: 1, - }, - segmentedControlSlider: { - position: 'absolute', - top: 2, - bottom: 2, - borderRadius: 6, - backgroundColor: 'white', - shadowColor: '#000', - shadowOffset: { width: 0, height: 1 }, - shadowOpacity: 0.1, - shadowRadius: 1, - elevation: 1, - }, - segmentedControlText: { - fontSize: 14, - color: '#6b7280', - fontWeight: '500', - }, - segmentedControlActiveText: { - color: '#0066ff', - fontWeight: '600', - }, card: { backgroundColor: 'white', borderRadius: 16, diff --git a/src/app/(app)/order.tsx b/src/app/(app)/order.tsx index 6e7f4da..9deb625 100644 --- a/src/app/(app)/order.tsx +++ b/src/app/(app)/order.tsx @@ -1,7 +1,6 @@ import { FontAwesome } from '@expo/vector-icons'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useState } from 'react'; import { - Animated, StatusBar, StyleSheet, Text, @@ -10,14 +9,9 @@ import { View, } from 'react-native'; +import { SegmentedControl, type SegmentedControlOption } from '@/components'; import { NavHeader, SafeAreaView, ScrollView } from '@/components/ui'; -// 分段控制器选项类型 -type SegmentedControlOption = { - key: string; - label: string; -}; - // 状态徽章组件 type StatusBadgeProps = { status: string; @@ -85,70 +79,6 @@ const OrderItem: React.FC = ({ ); -// 分段控制器组件 -type SegmentedControlProps = { - options: SegmentedControlOption[]; - selectedIndex: number; - onChange: (index: number) => void; -}; - -const SegmentedControl: React.FC = ({ - options, - selectedIndex, - onChange, -}) => { - const [containerWidth, setContainerWidth] = useState(0); - const slideAnim = useRef(new Animated.Value(0)).current; - - useEffect(() => { - if (containerWidth > 0) { - const optionWidth = containerWidth / options.length; - Animated.timing(slideAnim, { - toValue: selectedIndex * optionWidth, - duration: 300, - useNativeDriver: false, - }).start(); - } - }, [selectedIndex, containerWidth]); - - return ( - setContainerWidth(e.nativeEvent.layout.width)} - > - - 0 ? containerWidth / options.length : 0, - transform: [{ translateX: slideAnim }], - }, - ]} - /> - {options.map((option, index) => ( - onChange(index)} - > - - {option.label} - - - ))} - - - ); -}; - const Orders: React.FC = () => { // const navigation = useNavigation(); @@ -426,46 +356,13 @@ const styles = StyleSheet.create({ flex: 1, padding: 16, }, - segmentedControlContainer: { - marginBottom: 16, - }, - segmentedControl: { - flexDirection: 'row', - backgroundColor: 'rgba(0, 0, 0, 0.06)', - borderRadius: 8, - padding: 2, - position: 'relative', - overflow: 'hidden', - }, - segmentedControlSlider: { - position: 'absolute', - top: 2, - bottom: 2, - backgroundColor: 'white', - borderRadius: 6, - shadowColor: '#000', - shadowOffset: { width: 0, height: 1 }, - shadowOpacity: 0.1, - shadowRadius: 1, - elevation: 1, - }, - segmentedControlOption: { + scrollView: { flex: 1, - paddingVertical: 8, - paddingHorizontal: 4, - alignItems: 'center', - justifyContent: 'center', - zIndex: 1, - }, - segmentedControlText: { - fontSize: 14, - fontWeight: '500', - color: '#666666', - }, - segmentedControlActiveText: { - color: '#000000', + marginTop: 16, }, card: { + marginTop: 16, + backgroundColor: '#ffffff', borderRadius: 16, padding: 16, diff --git a/src/app/(app)/production.tsx b/src/app/(app)/production.tsx index 1869693..fcba93d 100644 --- a/src/app/(app)/production.tsx +++ b/src/app/(app)/production.tsx @@ -1,7 +1,6 @@ import { FontAwesome } from '@expo/vector-icons'; -import React, { useEffect, useRef, useState } from 'react'; +import React, { useState } from 'react'; import { - Animated, StatusBar, StyleSheet, Text, @@ -9,16 +8,11 @@ import { View, } from 'react-native'; +import { SegmentedControl, type SegmentedControlOption } from '@/components'; import { NavHeader, SafeAreaView, ScrollView } from '@/components/ui'; import ReportDateSelector from '../report-date-selector'; -// 分段控制器选项类型 -type SegmentedControlOption = { - key: string; - label: string; -}; - // 进度条组件 type ProgressBarProps = { progress: number; @@ -167,69 +161,6 @@ const ProcessNode: React.FC = ({ icon, label, status }) => { ); }; -// 分段控制器组件 -type SegmentedControlProps = { - options: SegmentedControlOption[]; - selectedIndex: number; - onChange: (index: number) => void; -}; - -const SegmentedControl: React.FC = ({ - options, - selectedIndex, - onChange, -}) => { - const [containerWidth, setContainerWidth] = useState(0); - const slideAnim = useRef(new Animated.Value(0)).current; - - useEffect(() => { - if (containerWidth > 0) { - const optionWidth = containerWidth / options.length; - Animated.timing(slideAnim, { - toValue: selectedIndex * optionWidth, - duration: 300, - useNativeDriver: false, - }).start(); - } - }, [selectedIndex, containerWidth]); - - return ( - setContainerWidth(e.nativeEvent.layout.width)} - > - - 0 ? containerWidth / options.length : 0, - transform: [{ translateX: slideAnim }], - }, - ]} - /> - {options.map((option, index) => ( - onChange(index)} - > - - {option.label} - - - ))} - - - ); -}; - const Production: React.FC = () => { // const navigation = useNavigation(); @@ -274,7 +205,10 @@ const Production: React.FC = () => { /> {/* 选项卡内容 */} - + {selectedTabIndex === 0 && ( {/* 生产概览 */} @@ -1101,6 +1035,11 @@ const styles = StyleSheet.create({ headerButton: { marginLeft: 16, }, + + scrollView: { + flex: 1, + marginTop: 16, + }, floatingButton: { position: 'absolute', right: 24, @@ -1123,43 +1062,6 @@ const styles = StyleSheet.create({ paddingTop: 16, paddingBottom: 16, }, - segmentedControlContainer: { - marginBottom: 16, - }, - segmentedControl: { - flexDirection: 'row', - backgroundColor: 'rgba(0, 0, 0, 0.06)', - borderRadius: 8, - padding: 2, - position: 'relative', - height: 36, - }, - segmentedControlSlider: { - position: 'absolute', - top: 2, - bottom: 2, - backgroundColor: 'white', - borderRadius: 6, - shadowColor: '#000', - shadowOffset: { width: 0, height: 1 }, - shadowOpacity: 0.1, - shadowRadius: 2, - elevation: 1, - }, - segmentedControlOption: { - flex: 1, - alignItems: 'center', - justifyContent: 'center', - zIndex: 1, - }, - segmentedControlOptionText: { - fontSize: 14, - fontWeight: '500', - color: '#666', - }, - segmentedControlOptionTextActive: { - color: '#000', - }, card: { backgroundColor: 'white', borderRadius: 16, -- Gitee